slh*_*hck 9 latex xetex texlive sublime-text-2 macos
我经常在编译“经典”LaTeX 和 XeTeX 文档之间切换。
Sublime Text 2 有一个名为LaTeXTools的包,它允许你通过一个简单的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"],
Run Code Online (Sandbox Code Playgroud)
现在,每次打开另一个文档时都必须这样做非常乏味——打开我的构建首选项,注释掉一行,保存等。
理想情况下,我希望能够切换引擎
... 自动- 例如 TextMate 以某种方式做到这一点CmdR,尽管 TextMate 配置设置为pdflatex
. 也许是一些latexmk.pl
-fu,我不知道。
...使用简单的键盘快捷键或设置– 也许按CmdL,CmdX或类似的。这将在pdflatex
和之间切换xelatex
。
我怎么能这样设置?
slh*_*hck 12
注意: 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 的引擎(如问题所示)。
然后,通过Tools » New Plugin...创建一个新插件(保存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)
Run Code Online (Sandbox Code Playgroud)
并在Preferences » Key Bindings – User 中为它创建一个键盘快捷键:
[ {
"keys": ["super+shift+x"], "command": "switch"
} ]
Run Code Online (Sandbox Code Playgroud)
您还可以通过将Main.sublime-menu
文件添加到您的User
包来将其添加到您的菜单中:
[ {
"id":"tools", "children":
[ {
"command": "switch",
"caption": "Switch between LaTeX/XeTeX"
}
]
} ]
Run Code Online (Sandbox Code Playgroud)
现在,这会将当前活动的构建文件与 XeTeX 和 LaTeX 所需的构建设置进行比较,并在必要时切换它们。
这肯定会使用一些改进,但它目前有效。
归档时间: |
|
查看次数: |
9014 次 |
最近记录: |