[英]Using minted (source code LaTeX package) with emacs/auctex
正如這里所解釋的,我發現minted包對於源代碼列表非常酷。
我的問題是如何使用AucTeX / emacs的鑄造包? 對於命令行,我可以使用pdflatex -shell-escape SOURCE
,但是
-shell-escape
? 我的意思是,如何改變C - c + C - c的動作 ? -shell-escape
選項以外的特殊鍵嗎? 或者,可以毫無問題地使用它嗎? -shell-escape
? Q1:您需要編輯AucTeX調用LaTeX的方式。 一種方法是將以下內容添加到.emacs文件中:
(eval-after-load "tex"
'(setcdr (assoc "LaTeX" TeX-command-list)
'("%`%l%(mode) -shell-escape%' %t"
TeX-run-TeX nil (latex-mode doctex-mode) :help "Run LaTeX")
)
)
Q2:完成更改后,使用Cc Cc對LaTeX的所有調用都將使用-shell-escape
選項。
Q3:見康拉德的回答。 請注意,此方法將為-shell-escape
編輯的所有文件啟用-shell-escape
,因此如果使用其他人包或文件,則可能存在潛在的安全風險。
我只能回答問題3:
什么是'-shell-escape'?
minted使用第三方應用程序pygmentize
來處理源代碼。 由於安全原因,LaTeX通常不允許調用其他應用程序(否則流氓包可能會調用aribtrary代碼)。 要顯式啟用調用外部應用程序,您需要啟用這個所謂的轉義到shell - 在大多數LaTeX安裝中,通過-shell-escape
開關完成。
在auctex的最新版本中,看起來設置TeX-command-extra-options
(僅用於此目的)會更加可靠,並且不會使您覆蓋各種形式的TeX-command
。 據我所知(可能是錯誤的),這不能全局設置,但必須為每個文件設置。 你可以用鈎子做到這一點。 例如,在.emacs
您可以添加以下內容:
(add-hook 'TeX-mode-hook
(lambda ()
(setq TeX-command-extra-options "-shell-escape")
)
)
而且由於你沒有完全覆蓋latex命令調用,其他功能仍然可以工作 - 比如啟用synctex
支持(setq TeX-source-correlate-mode t)
[這可能發生在鈎子之外]。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.