我刚创建了一个名为XeLaTeX
的构建系统,方法是在Sublime Text的XeLaTeX.sublime-build
目录中创建一个名为User
的文件,其内容为:
{
"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
?
答案 0 :(得分:4)
我自己钉了它。
AFAIK,没有通过键绑定传递当前文件名的方法,并且不可能使用键绑定来指定某个构建系统。因此,编写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进行编译。
确实,它有点棘手,但它对我来说就像是一种魅力。
答案 1 :(得分:3)
通过在Tools -> Build System
菜单中专门选择系统或使用选择器匹配特定语法来构建系统。如果要使用选择器,请将以下行添加到XeLaTeX.sublime-build
文件中(确保在第一行之后添加逗号,
,该文件必须是有效的JSON):
"selector": "text.tex.latex"
build
命令已经绑定到 Ctrl B 和 F7 ,但是如果你还希望它绑定到 F1 ,打开Preferences -> Key Bindings-User
并添加以下行,如果您已经有自定义键绑定:
{ "keys": ["f1"], "command": "build" }
如果文件为空,则只需在文件的开头和结尾添加开始和结束方括号[ ]
,因为它也需要是有效的JSON。
现在,无论何时打开LaTeX文件, 都能能够点击 F1 进行构建。如果由于某种原因它不起作用(例如,如果你有像LaTeXTools
这样的插件安装LaTeX的其他构建系统),那么只需选择Tools -> Build Systems -> XeLaTeX
,一切都应该正常工作。
答案 2 :(得分:0)
如果您给参数“ $ file_basename”而不是“ $ file_base_name”,您的示例将起作用。