Reduzindo a confusão de LATEX_HEADER na parte superior dos meus arquivos organizacionais


12

Costumo escrever notas no modo organizacional e exportá-las para o látex. No entanto, como alguns documentos são complexos, preciso incluir muitos pacotes de látex na parte superior, da seguinte forma:

#+LATEX_HEADER: \usepackage[margin=1.15in]{geometry}
#+LATEX_HEADER: \usepackage{parskip}
#+LATEX_HEADER_EXTRA: \usepackage{graphicx}
#+LATEX_HEADER_EXTRA: \usepackage{mdframed}
#+LATEX_HEADER_EXTRA: \usepackage{needspace}
#+LATEX_HEADER_EXTRA: \usepackage{hyperref}         
#+LATEX_HEADER_EXTRA: \usepackage{titling}
#+LATEX_HEADER_EXTRA: \usepackage{enumitem}
#+LATEX_HEADER_EXTRA: \usepackage{etoolbox}                             
#+LATEX_HEADER_EXTRA: \usepackage{color}                             
#+LATEX_HEADER_EXTRA: \usepackage{underscore}...

É possível armazenar todos os comandos de cabeçalho de látex (\ usepackage, definições de macros etc.) em um arquivo tex separado, para que eu possa incluir apenas uma única linha na parte superior do arquivo organizacional? Isso reduzirá muita confusão e facilitará a adição de pacotes.

Respostas:


13

Você pode fazer uso de um #+SETUPFILE:

Coloque todas essas configurações em um arquivo, por exemplo ./setup/setupfile.org, e depois as inclua no documento com

#+SETUPFILE: ./setup/setupfile.org

Neste arquivo, você também pode incluir #+OPTIONS:, #+AUTHORe semelhante em tampão configurações. O que é ainda mais útil é que, se você carregar o #+SETUPFILE:primeiro, poderá substituir algumas dessas configurações pelas configurações locais.

Consulte também o manual da organização sobre exportação.

Outra solução é usar #+INCLUDE: "./setup/more-settings.org" src org(observe o ") que simplesmente inclui o conteúdo do arquivo como fonte organizacional. Isso é um pouco mais versátil, pois pode haver mais de um #+INCLUDEonde (afaik) pode haver apenas um #+SETUPFILE.

Finalmente, para ocultar a confusão visualmente, você também pode colocar todas essas configurações locais em uma gaveta (ou seja, entre uma linha com :DRAWER:e uma linha com :END:) e simplesmente ocultá-las tab.


3
Na minha experiência prática, a solução de gavetas é a maneira mais conveniente e rápida de trabalhar com cabeçalhos.
Dieter.Wilhelm

4

Uma solução alternativa é verificar / personalizar a variável org-latex-packages-alist- adicione lá todas as suas necessárias \usepackage{...}.

Essa variável é declarada e usada pelo ox-latex, portanto, sua configuração organizacional deve ter uma declaração (require 'os-latex). Dessa forma, não há linhas a serem adicionadas aos documentos organizacionais, exceto o título.

Quanto às macros, um local comum para armazenar é o pacote yasnippet, se você o usar.


3

Uma solução alternativa é usar um título não exportado para quebrar a configuração:

* Configuration :ignoreheading:
#+AUTHOR:   
#+STARTUP: showall
...

A vantagem desta solução versus gavetas é que você pode incluir facilmente configurações sofisticadas, como blocos LaTeX

#+BEGIN_EXPORT LATEX
...
#+END_EXPORT

que não são lidas (por padrão) quando estão nas gavetas.

A vantagem dessa solução versus os arquivos de configuração (arquivo de configuração ou inclusão) é que você pode alterar facilmente a configuração, pois ela está incluída no arquivo atual.

Por fim, se você deseja que este título permaneça fechado por padrão ao abrir seu arquivo organizacional, você pode usar a seguinte sintaxe:

* Configuration :ignoreheading:
  :PROPERTIES:
  :VISIBILITY: folded
  :END:

Eu tenho apenas um voto positivo para dar - mas esse se tornou meu novo padrão! Todas essas respostas devem entrar no manual organizacional, como uma prática recomendada para exportação de látex, como uma instalação focada em documentos versus colocar a maior parte da instalação na configuração do emacs.
glallen

1

Em vez de usar de #+SETUPFILE:acordo com a resposta aceita, se você está apenas interessado na saída do LaTeX, adicione o seguinte:

#+LATEX_HEADER: \input{header.tex}

Em header.tex(ou o que você quiser chamar), você pode colocar todo o seu preâmbulo do LaTeX sem a necessidade de um monte de #+LATEX_HEADER:argumentos. Para ser super meta, você também pode ter essa #+LATEX_HEADERopção no seu #+SETUPFILE.


Editou minha resposta em resposta a esta pergunta.
Jdtonkin 03/07
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.