我正在使用minted
需要-shell-escape
将选项移交给处理器的软件包。我使用 XeLateX 作为我的处理器。我在 emacs 24.3.1 中使用 ELPA 更新了 AUCTeX;AUCTeX 现在是版本 11.88。根据这问题,我可以简单地将局部变量设置TeX-command-extra-options
为"-shell-escape".
但是,当我执行此操作并执行C-c C-c
(启动 LaTeX)时,我仍然收到相同的错误:
Package ifplatform Warning:
shell escape is disabled, so I can only detect \ifwindows.
))
! Package minted Error: You must invoke LaTeX with the -shell-escape flag.
See the minted package documentation for explanation.
Type H <return> for immediate help.
...
l.32
我做错了什么?我通过以下方式设置了变量
%%% TeX-command-extra-options: "-shell-escape"
在我的.tex
源代码中以及M-x set-variable
在缓冲区中手动执行。两者都导致相同的结果。
答案1
答案2
您无需每次都插入块,而是%%% Local Variables ... %%%End:
使用包minted
,应该有一个minted.el
lisp 包,它将由 emacs 和 AUCTeX 在您插入文件的瞬间自动加载\usepackage{minted}
。(或者,每当您加载一个已经包含的文件时,它都会被加载\usepackage{minted}
)。
AUCTeX 附带各种预定义的 .el 支持文件。不幸的是,似乎没有适用于该minted
包的文件。我尝试自己编写一个,它似乎可以工作(经过短暂且不彻底的测试)。
为了添加潜在的恶意选项,每当minted
加载 -package 时,我都会添加以下代码行:
(setq LaTeX-command-style '(("" "%(PDF)%(latex) -shell-escape %S%(PDFout)")))
它是从这篇优秀的文章中复制而来的:从 AUCTeX 向 PDFLaTeX 调用添加一个选项
我还向 emacs.SE 寻求帮助,完善我有些愚蠢的TeX-arg-minted-opts
lisp 函数,以便能够在命令或环境中插入多个选项,甚至将它们链接到适当的值表达式。如果有人感兴趣:这是 Emacs.SE 上的问题:https://emacs.stackexchange.com/questions/29617/auctex-and-package-minted
我打算将我的 lisp 包提供给 AUCTeX,将其包含在主要发行版中。如果有人对该包感兴趣,请联系我或在 Emcas.SE 上查找。