减少我的组织文件顶部的LATEX_HEADER混乱


13

我经常在组织模式下书写笔记,然后将其导出到乳胶中。但是,由于某些文档很复杂,因此需要在顶部包含许多乳胶包,如下所示:

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

是否可以将所有乳胶头命令(\ usepackage,宏定义等)存储在单独的tex文件中,这样我可以在org文件的顶部仅包含一行?这将减少很多混乱,并使我更容易添加软件包。

Answers:


14

您可以利用 #+SETUPFILE:

将所有这些设置放入文件中,例如./setup/setupfile.org,然后使用

#+SETUPFILE: ./setup/setupfile.org

在这个文件中,您还可以包括#+OPTIONS:#+AUTHOR和类似的在缓冲区设置。更有用的是,如果您先加载#+SETUPFILE:,则可以使用本地设置覆盖其中的某些配置。

另请参阅有关导出的组织手册

另一个解决方案是利用#+INCLUDE: "./setup/more-settings.org" src org(请注意"),它仅将文件内容包含为org源。这有点通用,因为可以有多个,而#+INCLUDE(afaik)只能有一个#+SETUPFILE

最后,为了视觉上隐藏杂物,您还可以将所有这些本地设置放在抽屉中(即,在的行:DRAWER:和之间的行:END:),并使用简单地隐藏它们tab


3
以我的实际经验,抽屉解决方案是使用联箱箱的最便捷,最快的方法。
Dieter.Wilhelm

4

另一种解决方案是检查/自定义变量org-latex-packages-alist,然后在其中添加所有需要的变量\usepackage{...}

该变量在中声明并由其使用ox-latex,因此您的组织配置必须有一个声明(require 'os-latex)。这样,除了标题外,没有任何行可以添加到组织文档中。

至于宏,通常使用yasnippet包(如果使用)存储。


3

一种替代解决方案是使用非导出标题来包装配置:

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

与抽屉相比,此解决方案的优势在于您可以轻松地包含复杂的配置,例如LaTeX块

#+BEGIN_EXPORT LATEX
...
#+END_EXPORT

在抽屉中不读取(默认情况下)。

与配置文件(setupfile或include)相比,此解决方案的优势在于您可以轻松更改配置,因为配置已包含在当前文件中。

最后,如果您希望在打开org文件时默认关闭此标题,则可以使用以下语法:

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

我只能投票给我-但这成了我的新默认!所有这些答案都应作为乳胶导出的最佳实践建议纳入组织手册中,作为针对文档的设置,而不是将大多数设置放入emacs配置中。
glallen

1

#+SETUPFILE:如果您仅对LaTeX输出感兴趣,则可以添加以下内容,而不是使用已接受的答案:

#+LATEX_HEADER: \input{header.tex}

在中header.tex(或任何您想称呼它的地方)中,您可以放置​​所有LaTeX序言,而无需一堆#+LATEX_HEADER:参数。要成为超级元,您还#+LATEX_HEADER可以在中使用此选项#+SETUPFILE


针对这个问题编辑了我的答案。
jdtonkin '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.