我刚刚创建了一个名为XeLaTeX
的构建系统,在Sublime Text的User
目录下创建了一个名为XeLaTeX.sublime-build
的文件,其内容为:
{
"cmd": ["xelatex.exe","-synctex=1","-interaction=nonstopmode","$file_base_name"]
}
如果我想将我的F1键绑定到这个特定的构建系统,我应该怎么做?注意:Ctrl + B,默认的构建系统不应该受到影响。也就是说,我可以使用Ctrl + B使用默认系统,同时也可以使用新系统F1键。
也许有另一种方法来实现这一点。将以下文本添加到Default(Windows).sublime-keymap
将执行命令:
{"keys": ["f1"], "command": "exec", "args": {"cmd": ["xelatex.exe","-synctex=1","-interaction=nonstopmode","$file_base_name"]}},
但是,这里没有定义$file_base_name
。是否有方法将当前文件(base_)名称传递给exec
?
我自己搞定了。
老实说,没有这样的方法通过键绑定传递当前文件名,也不可能使用键绑定来指定某个构建系统。因此,编写Python脚本是必要的。
只有三个步骤。
1。保存以下内容到/Data/Package/User/compile_with_xelatex.py
:
import sublime, sublime_plugin
class CompileWithXelatexCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.window().run_command('exec', {'cmd': ["xelatex.exe","-synctex=1","-interaction=nonstopmode", self.view.file_name()[:-4]]})
2。给/Data/Packages/User/Default(<your-plat>).sublime-keymap
添加一行
{"keys": ["f1"], "command": "compile_with_xelatex"},
3。用Sublime Text打开LaTeX源文件,然后按F1用XeLaTeX编译。
的确,这有点棘手,但它对我来说很有魅力。
构建系统的工作方式是在Tools -> Build System
菜单中选择它们,或者使用选择器匹配特定的语法。如果要使用选择器,请将以下行添加到XeLaTeX.sublime-build
文件中(确保在第一行之后添加逗号,
,该文件需要是有效的JSON):
"selector": "text.tex.latex"
build
命令已经绑定到CtrlB和F7,但是如果您还希望它绑定到F1,打开Preferences -> Key Bindings-User
并添加以下行,如果您已经有自定义键绑定:
{ "keys": ["f1"], "command": "build" }
如果文件为空,只需在文件的开头和结尾分别添加开始和结束方括号[ ]
,因为它也需要是有效的JSON。
LaTeXTools
),那么只需选择Tools -> Build Systems -> XeLaTeX
,一切都应该正常工作。
你的例子将工作,如果你给参数"$file_basename"而不是"$file_base_name"