我读过了这个问题,但我正在使用traditional
LaTeXTools 中的构建器,并且我有
%!TEX program = xelatex
在我的 .tex 文件的开头,但构建器仍然使用pdflatex
而不是编译我的文件xelatex
,并且我得到了输出
TraditionalBuilder: Engine: pdflatex. Invoking latexmk... done.
我怎样才能强制构建器进行编译xelatex
?
答案1
在 SublimeText 中,您可以使用快捷方式选择不同的构建器Ctrl-Shift-B
。
答案2
我也曾对此感到困惑,但我想我终于解开了这个谜题。
我终于在 LaTeXTools 文档的“选择构建变体“:
注意:构建变体提供的设置将覆盖使用 TeX 指令或在您的设置中指定的设置。这意味着,例如,如果您选择更改程序的构建变体,%!TEX 程序指令或程序设置将被忽略。如果您想将 LaTeXTools 恢复为其默认行为,请选择 LaTeX 构建变体。
LaTeX
当我使用(not LaTeX - Traditional
or )构建时LaTeX - PDFLaTeX
,该指令确实被正确处理。例如,如果我的文件!TEX program
顶部有以下内容:.tex
%!TEX program = xelatex
我使用cmd
- shift
-进行编译b
(在 Mac 上),然后选择LaTeX
,Sublime 确实使用 进行编译XeLaTeX
。一旦我将构建系统默认设置为LaTeX
(不是LaTeX - Traditional
或LaTeX - PDFLaTeX
),在工具>用...构建,那么即使使用cmd
-也可以b
。
在搜索此问题时有很多困惑。
- 这为什么重要?在我的典型工作流程中,我会编写多个文档,每个文档都需要不同的构建器(通常
PDFLaTeX
是 或XeLaTeX
)。我想使用%!TeX
指令来指定这一点,这样我就可以使用一个快捷方式cmd
-b
进行编译,而不是使用cmd
-shift
-b
然后选择构建程序。这是一件小事,我最终会一遍又一遍地做,但它可以帮助我专注于写作,而不是花一秒钟来提醒自己我正在编译什么类型的文档。 - 为什么事情变得复杂了?我认为在某个时候我将其设置
PDFLaTeX
为我的默认构建引擎。这取代了%!TeX
指令。其他地方有很多 StackExchange 响应说“只需起诉指令”,并且当该解决方案不适用于所有人时会感到困惑。可能(像我一样)有些人没有意识到更改默认构建引擎设置会“破坏”指令。
我希望这能有所帮助。