Como alterar o tamanho da fonte nas listagens de código no Org-Mode / Beamer

11

Gostaria de reduzir o tamanho da fonte usada para blocos de código incluídos na minha presenação Org-Mode / Beamer. Que comando (s) posso usar para afetar apenas o conteúdo do srcbloco?

Aqui está um exemplo de trabalho mínimo: o bloco de código está próximo do fim:

#+TITLE:     <<title>>
#+AUTHOR:    Dave
#+EMAIL:     
#+DATE:      <<date>>
#+DESCRIPTION:
#+KEYWORDS:
#+LANGUAGE:  en
#+OPTIONS:   H:3 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc toc:nil \n:nil
#+INFOJS_OPT: view:nil toc:t ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
#+LINK_UP:   
#+LINK_HOME: 
#+XSLT:




#+startup: beamer
#+LATEX_CLASS: beamer
#+LATEX_CLASS_OPTIONS: [bigger]
#+LATEX_HEADER: \usepackage{pgfpages}
#+LATEX_HEADER: \pgfpagesuselayout{resize to}[letterpaper,border shrink=5mm,landscape]
#+LATEX_HEADER: \usetheme{Dresden}
#+LATEX_HEADER: \usepackage[utf8x]{inputenc}
#+LATEX_HEADER: \setbeamertemplate{itemize items}[default]
#+LATEX_HEADER: \setbeamertemplate{enumerate items}[default]
#+LATEX_HEADER: \institute{} 

#+BEAMER_FRAME_LEVEL: 2
#+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %4BEAMER_col(Col) %10BEAMER_extra(Extra)


* Presentation

** Code Example
*** Text
:PROPERTIES:
:BEAMER_env: ignoreheading 
:BEAMER_col:0.5
:END:

- Text describing code
- More text

*** Graphics
:PROPERTIES:
:BEAMER_env: ignoreheading 
:BEAMER_col:0.5
:END:

% LOOK HERE!
% I want the text in this code block to be smaller
#+begin_src python
import sys
import os
import super_cool_module

value=super_cool_module.evalauate(42)
#+end_src
Dave
fonte

Respostas:

12

Depende se você carrega o listingspacote no seu .emacsarquivo. Você pode verificar o conteúdo da variável Emacs org-latex-default-packages-alist(use a combinação de teclas C-h vpara ver a ajuda e o conteúdo de uma variável).

Se o listingspacote não estiver carregado, o modo organizacional usará o verbatimambiente LaTeX para digitar o código. Nesse caso, você pode usar o fancyvrbpacote LaTeX para digitar o código em uma fonte menor. Por exemplo, adicione o seguinte ao seu arquivo de modo organizacional:

#+LATEX_HEADER: \RequirePackage{fancyvrb}
#+LATEX_HEADER: \DefineVerbatimEnvironment{verbatim}{Verbatim}{fontsize=\scriptsize}

Isso redefine o verbatimambiente padrão .

Se o listingspacote estiver carregado, você poderá adicionar o seguinte código LaTeX ao seu arquivo organizacional para obter uma fonte menor para o código:

#+LaTeX_HEADER: \lstset{basicstyle=\scriptsize\ttfamily}

Isso definirá o estilo para usar uma fonte monoespaçada de tamanho \scriptsize.

\tinyé o menor tamanho de fonte relativo no LaTeX. A fim de aumentar o tamanho você poderia tentar: \scriptsize, \footnotesize, \small, que são todos menores que \normalsize.

ph0t0nix
fonte
Como eu consegui que o látex embutido tivesse $F=ma$um tamanho de fonte menor - para exportação em HTML ou látex?
147
Pergunta: qual é a diferença entre RequirePackagee usepackage? (Eu tenho um monte de usepackagearquivos no meu arquivo atual) #
292
@ Dave: não há muita diferença. Oficialmente, usepackageé usado em um documento normal do LaTeX e RequirePackageem pacotes ( .styarquivos) do LaTeX .
Ph0t0nix
1

Supondo que você use o pacote de listagem, o que significa que você tem no preâmbulo do arquivo no modo organizacional

#+LATEX_HEADER: \usepackage{listings}

você pode definir qualquer opção específica disponível no \lstset{}comando Para definir uma fonte de tamanho de script de látex para um snippet específico, você pode substituir as lstsetopções padrão como esta:

#+ATTR_LATEX: :options basicstyle=\ttfamily\scriptsize
#+begin_src C
   some code
#+end_src
user1551605
fonte