Kuruluş dosyalarımın üst kısmındaki LATEX_HEADER dağınıklığını azaltma


13

Sık sık org modunda notlar yazarım ve latekslere aktarırım. Ancak, bazı belgeler karmaşık olduğu için üstte birçok lateks paketini şöyle eklemeliyim:

#+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}...

Tüm lateks üstbilgi komutlarını (\ usepackage, makro tanımları vb.) Ayrı bir tex dosyasında saklamak mümkün mü, böylece org dosyasının üstünde tek bir satır yer alabilir miyim? Bu, çok fazla dağınıklığı azaltacak ve paketler eklememi kolaylaştıracak.

Yanıtlar:


14

Bir #+SETUPFILE:

Örneğin ./setup/setupfile.org, tüm bu ayarları bir dosyaya koyun ve ardından

#+SETUPFILE: ./setup/setupfile.org

Bu dosyada, ayrıca içerebilir #+OPTIONS:, #+AUTHORve benzer ayarları içinde tampon. Daha da kullanışlı olan, #+SETUPFILE:ilkini yüklerseniz, bu yapılandırmaların bazılarını yerel ayarlarla geçersiz kılabilmenizdir.

Ayrıca, dışa aktarma hakkındaki kuruluş kılavuzuna bakın .

Başka bir çözüm, sadece dosya içeriğini org kaynağı olarak içeren #+INCLUDE: "./setup/more-settings.org" src org(notu ") kullanmaktır . Bu biraz daha çok yönlüdür, çünkü #+INCLUDEorada (afaik) sadece bir tane olabilir #+SETUPFILE.

Son olarak, görsel dağınıklığı gizlemek için, ayrıca (bir çizgi arasındaki, yani bir çekmecede bu yerel ayarların tümünü koyabilirsiniz :DRAWER:ve bir çizgi ile :END:) ve sadece onlara gizlemek tab.


3
Pratik deneyimlerime göre, çekmece çözümü başlıklarla çalışmanın en uygun ve en hızlı yoludur.
Dieter.Wilhelm

4

Alternatif bir çözüm, değişkeni kontrol etmek / özelleştirmektir org-latex-packages-alist- ihtiyacınız olanı oraya ekleyin \usepackage{...}.

Bu değişken, içinde bildirilir ve tarafından kullanılır ox-latex, bu nedenle kuruluş yapılandırmanızda bir bildirim olmalıdır (require 'os-latex). Bu şekilde, kuruluş belgelerine başlık hariç hiçbir satır eklenmez.

Makrolara gelince, saklamak için normal bir yer yasnippet paketidir.


3

Alternatif bir çözüm, yapılandırmayı sarmak için dışa aktarılmamış bir başlık kullanmaktır:

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

Bu çözümün çekmecelere karşı avantajı, LaTeX blokları gibi karmaşık yapılandırmayı kolayca ekleyebilmenizdir

#+BEGIN_EXPORT LATEX
...
#+END_EXPORT

çekmecelerde okunmaz (varsayılan olarak).

Bu çözümün yapılandırma dosyalarına (setupfile veya include) göre avantajı, mevcut dosyaya dahil olduğu için yapılandırmayı kolayca değiştirebilmenizdir.

Son olarak, kuruluş dosyanızı açarken bu başlığın varsayılan olarak kapalı kalmasını istiyorsanız, aşağıdaki sözdizimini kullanabilirsiniz:

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

Verecek tek bir oy var - ama bu benim yeni varsayılanım oldu! Tüm bu yanıtlar, lateks dışa aktarma için önerilen en iyi uygulama olarak, elkitabına girmeli, kurulumun çoğunu emacs yapılandırmasına koymaya karşı belge odaklı bir kurulum olmalıdır.
glallen

1

#+SETUPFILE:Kabul edilen cevaba göre kullanmak yerine , sadece LaTeX çıktısıyla ilgileniyorsanız, bunun yerine aşağıdakileri ekleyebilirsiniz:

#+LATEX_HEADER: \input{header.tex}

İçinde header.tex(ya da her ne demek isterseniz), tüm LaTeX önsözünüzü bir dizi #+LATEX_HEADER:argümana gerek kalmadan koyabilirsiniz . Süper meta olmaları için ayrıca bu olabilir #+LATEX_HEADERGözlerinde farklı seçenek #+SETUPFILE.


Bu soruya yanıt olarak cevabımı düzenledi.
jdtonkin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.