如何在Sublime Text 2中切换pdflatex和xelatex转换?

Modified on: Wed, 10 Oct 2018 17:40:02 +0800

我经常在编译“经典”LaTeX和XeTeX文档之间切换。

Sublime Text 2有一个名为LaTeXTools的软件包,它允许您通过简单的 Cmd的 。整齐。

构建文件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会以某种方式执行此操作,我可以使用简单的 Cmd R 来编译LaTeX文档和XeTeX文档kbd>,尽管TextMate配置设置为pdflatex。也许这是一些latexmk.pl -fu,我不知道。

  • ...使用简单的键盘快捷键或设置 - 可能按 Cmd L Cmd < kbd> X 或类似的。然后,这将在pdflatexxelatex构建之间切换。

我怎么能设置它?

作者:slhck

最佳答案

  

注意: Sublime Text的LaTeXTools现在支持自动引擎检测,如果您的文件以%!TEX program = &lt;program&gt;开头,其中&lt;program&gt;pdflatexxelatexlualatex中的任何一个。只有当您因任何原因需要手动切换引擎时,才需要以下说明。


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

将文件更改为分别使用LaTeX的pdflatex和XeTeX的xelatex引擎(如问题所示)。

然后,通过工具»新插件... 创建一个新插件(将其保存为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所需的构建设置,并在必要时进行切换。

这肯定可以使用一些改进,但它目前有效。

作者:,slhck

相关问答

添加新评论