我经常在编译“经典” LaTeX 和 XeTeX 文档之间切换。
Sublime Text 2 有一个包叫做LaTeX工具它允许您通过简单的 .Neat 构建 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
-fu,我不知道。…使用简单的键盘快捷键或设置– 可以按CmdL或CmdX类似键。这将在
pdflatex
和xelatex
构建之间切换。
我该如何进行设置?
答案1
笔记:如果您的文件以 开头,LaTeXTools for 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
LaTeX 和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 所需的构建设置进行比较,并在必要时切换它们。
这肯定还需要一些改进,但目前它是有效的。