Использование minted (пакет исходного кода LaTeX) с emacs/auctex
как поясняется в здесь, Я считаю, что чеканный пакет довольно крут для списка исходного кода.
мой вопрос в том, как использовать чеканный пакет с AucTeX/emacs?
Для командной строки я могу использовать pdflatex -shell-escape SOURCE
, а
- Q1: как я могу изменить AucTeX, чтобы вставить
-shell-escape
? Я имею в виду, как изменить действие для C-c+C-c? - Q2 : мне нужен специальный ключ, кроме C-c+C-c на ? Или, это просто нормально использовать его без каких-либо проблем?
- Q3 : что такое
-shell-escape
для чего?
3 ответов
Q1: вам нужно отредактировать способ, которым LaTeX вызывается AucTeX. Один из способов сделать это-добавить следующее к вашему .файл 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: после внесения изменений все вызовы LaTeX с C-c C-c будут использовать .
В3: см. Конрада ответа. Обратите внимание, что этот метод позволит -shell-escape
для всех файлов, отредактированных в AucTeX, поэтому может быть потенциальной угрозой безопасности при использовании других пакетов или файлов People.
Я могу ответить только на вопрос 3:
Что такое "-shell-escape " для?
minted использует стороннее приложение,pygmentize
, для обработки исходного кода. LaTeX обычно не позволяет вызывать другие приложения по соображениям безопасности (в противном случае пакет-изгоев может вызвать код aribtrary). Чтобы явно включить вызов внешних приложений, вам нужно включить этот так называемый escape в оболочку – который на большинстве установок 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)
[что может произойти за пределами крючком].