在 org-mode 中为什么 org-latex-create-formula-image-program 会提供额外信息?

在 org-mode 中为什么 org-latex-create-formula-image-program 会提供额外信息?

在我的 .emacs 中我有 (setq org-latex-create-formula-image-program 'imagemagick)

它正在工作,所以我可以预览公式,c-c c-x c-l 但我也得到了不需要的信息linktoc = all, colorlinks = true, urlcolor = DodgerBlue4, citecolor = PaleGreen1, linkcolor = black

\hypersetup{linktoc = all, colorlinks = true, urlcolor = DodgerBlue4, citecolor = PaleGreen1, linkcolor = black}这是tex 文件中的内容 \temp

如何才能得到公式?

我的操作系统是 Linux Ubuntu

答案1

我有同样的问题。一个选项是添加linktoc = all, ...到变量 org-latex-default-packages-alist => hyperref。您可以通过以下方式执行此操作:

  1. Mx 自定义变量 RET org-latex-default-packages-alist RET

  2. 然后进入包的“选项”字段hyperref并写入linktoc = all, ...

  3. 最后点击“应用并保存”按钮并重新启动

这是一种通用方法,不适用于单个文件。我测试了此过程以隐藏链接(hidelinks选项)。

答案2

看起来,当#+LATEX_HEADER: \hypersetup{...}您的 org 文件中有一行时,就会发生这种情况。当 org 生成 latex 片段时,它会生成一个小型 latex 文件,其中包含公式以及完整的 latex 标头。但它不包括 中的所有默认包org-latex-default-packages-alist,只包括带有 的包t。并且hyperref是默认不包含的包之一。然后我猜 latex 出于某种原因将 hypersetup 内容解释为文档的一部分。

除了这里的其他答案外,我还找到了一些解决方法。

  1. 从你的 org 文件中删除 hypersetup 行并改为org-latex-hyperref-template设置~/.emacs.d/init.el

    (setq org-latex-hyperref-template "\\hypersetup{linktoc=all,colorlinks=true,urlcolor=blue,linkcolor=blue}")

    (如果您不介意对所有 org 文件使用相同的选项。)

  2. 将 hypersetup 行保留在您的 org 文件中,但添加一行明确的#+LATEX_HEADER: \usepackage{hyperref}行,以便即使在生成片段时也会加载它。

  3. 进行修改org-latex-default-packages-alist,使得 hyperref 被标记为 ,t并且在生成片段时被包含在内。

相关内容