Как я могу переключаться между преобразованием pdflatex и xelatex в Sublime Text 2?
Я часто переключаюсь между компиляцией "классических" документов LaTeX и XeTeX.
Sublime Text 2 имеет пакет под названием LaTeXTools, который позволяет создавать документы LaTeX с помощью простого CmdB. Ухоженная.
Файл сборки LaTeX.sublime-build
очевидно, существует в стандартной папке пакета, и вы можете скопировать его в свой User
папка, чтобы настроить его. Здесь он позволяет изменить аргументы, данные latexmk
а именно переключаться с pdflatex
в xelatex
Например, вот так:
"cmd": ["latexmk", "-cd",
//"-e", "\\$pdflatex = 'pdflatex %O -interaction=nonstopmode -synctex=1 %S'",
"-e", "\\$pdflatex = 'xelatex %O -interaction=nonstopmode -synctex=1 %S'",
//"-silent",
"-f", "-pdf"],
Теперь очень утомительно делать это каждый раз, когда я открываю другой документ - открываю настройки сборки, закомментирую одну строку, сохраняю и т. Д.
В идеале я хотел бы иметь возможность переключать двигатель
… Автоматически - TextMate, например, каким-то образом это делает, и я могу скомпилировать как документы LaTeX, так и документы XeTeX с помощью простого CmdR, хотя конфигурация TextMate установлена на
pdflatex
, Может быть, это какой-тоlatexmk.pl
Фу, я не знаю.... с помощью простого сочетания клавиш или настройки - Возможно, нажмите CmdL, CmdX или аналогичные. Это будет затем переключаться между
pdflatex
а такжеxelatex
строительство.
Как я мог это настроить?
1 ответ
Примечание: LaTeXTools для Sublime Text теперь поддерживает автоматическое определение движка, если ваш файл начинается с
%!TEX program = <program>
, где<program>
любой изpdflatex
,xelatex
или жеlualatex
, Приведенные ниже инструкции необходимы только в том случае, если вам необходимо вручную переключить двигатели по тем или иным причинам.
Возьмите LaTeX.sublime-build
файл в LaTeXTools
папка под ~/Library/Application Support/Sublime Text 2/Packages
и скопировать его в ~/Library/Application Support/Sublime Text 2/Packages/User/
, но сделайте это дважды и дайте этим файлам следующее имя:
LaTeX.sublime-build.latex
LaTeX.sublime-build.xetex
Измените файлы, чтобы использовать pdflatex
для латекса и xelatex
движки для XeTeX соответственно (как видно из вопроса).
Затем создайте новый плагин через Инструменты "Новый плагин… (сохраняя его как switch.py
на место выше):
import sublime, sublime_plugin, os, shutil, filecmp
class SwitchCommand(sublime_plugin.ApplicationCommand):
def run(self):
folder = os.path.expanduser( \
'~/Library/Application Support/Sublime Text 2/Packages/User/')
latex_src = folder + 'LaTeX.sublime-build.latex'
xetex_src = folder + 'LaTeX.sublime-build.xetex'
dest = folder + 'LaTeX.sublime-build'
if filecmp.cmp(dest, latex_src):
sublime.status_message("Switching to XeTeX")
shutil.copy(xetex_src, dest)
else:
sublime.status_message("Switching to LaTeX")
shutil.copy(latex_src, dest)
И создайте для нее сочетание клавиш в " Предпочтениях" - "Привязки клавиш" - "Пользователь":
[ {
"keys": ["super+shift+x"], "command": "switch"
} ]
Вы также можете добавить это в свое меню, добавив Main.sublime-menu
подать в ваш User
пакет:
[ {
"id":"tools", "children":
[ {
"command": "switch",
"caption": "Switch between LaTeX/XeTeX"
}
]
} ]
Теперь он сравнит текущий активный файл сборки с настройками сборки, необходимыми для XeTeX и LaTeX, и переключит их при необходимости.
Это, безусловно, может использовать некоторые улучшения, но это работает на данный момент.