Sublime Text 2でpdflatex変換とxelatex変換を切り替えるにはどうすればよいですか?


9

私はよく「クラシック」なLaTeXとXeTeX文書のコンパイルを切り替えます。

Sublime Text 2にはLaTeXToolsと呼ばれるパッケージがあり、シンプルなを介してLaTeXドキュメントを構築できますCmdB。きちんと。

ビルドファイルはLaTeX.sublime-build明らかに標準のパッケージフォルダーに存在し、それをUserフォルダーにコピーしてカスタマイズできます。ここでは、たとえば次のように、に与えられた引数を変更することができますlatexmk。つまり、からに切り替えることができます。pdflatexxelatex

"cmd": ["latexmk", "-cd",
  //"-e", "\\$pdflatex = 'pdflatex %O -interaction=nonstopmode -synctex=1 %S'",
  "-e", "\\$pdflatex = 'xelatex %O -interaction=nonstopmode -synctex=1 %S'",
  //"-silent",
  "-f", "-pdf"],

さて、別のドキュメントを開くたびにこれを行うのは非常に退屈な作業です。つまり、ビルド設定を開き、1行をコメント化し、保存するなどです。

理想的には、エンジンを切り替えられるようにしたい

  • …自動 –たとえばTextMateはなんとかしてそれを行いCmdRます。TextMate構成はに設定されていますが、LaTeXドキュメントとXeTeXドキュメントの両方を単純なでコンパイルできますpdflatex。多分それはいくつlatexmk.plかのふ、私は知りません。

  • …シンプルなキーボードショートカットまたは設定 –多分を押すCmdLなどCmdX。これにより、pdflatexxelatexビルドが切り替わります。

どうすれば設定できますか?

回答:


12

注:お使いのファイルがで始まる場合崇高テキスト用LaTeXToolsは今エンジンの自動検出をサポートしている%!TEX program = <program><program>のいずれかがあるpdflatexxelatexまたはlualatex。以下の手順は、何らかの理由で手動でエンジンを切り替える必要がある場合にのみ必要です。


LaTeX.sublime-buildLaTeXToolsフォルダにあるファイルを取得し~/Library/Application Support/Sublime Text 2/Packagesてにコピーし~/Library/Application Support/Sublime Text 2/Packages/User/ますが、2回実行して、これらのファイルに次の名前を付けます。

  • LaTeX.sublime-build.latex
  • LaTeX.sublime-build.xetex

pdflatexLaTeX xelatex用のエンジンとXeTeX用のエンジンをそれぞれ使用するようにファイルを変更します(質問を参照)。

次に、[ ツール]»[新しいプラグイン]から新しいプラグインを作成します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に必要なビルド設定が比較され、必要に応じて切り替えられます。

これは確かにいくつかの改善を使用できますが、今のところ機能します。


LaTeXToolsがLaTeX.sublime-buildユーザーパッケージフォルダーを優先していないように見えることを除いて、魅力のように機能します。かなり奇妙な...
fgb 2013

defaultの完全なコピーを作成LaTeX.sublime-buildしてから変更しますか、それとも関連osx部分のみを含めますか?
fgb 2013

1
まず、編集に感謝します。デフォルトファイルの完全なコピーを作成し、それに応じて変更しました。XeLaTeXは、少なくともテストしたすべてのファイルで、すべてのLaTeXソースを適切にコンパイルしていることがわかりました。おそらく、バックグラウンドのどこかにフォールバックがありますか?
slhck 2013

デフォルトのファイル全体をコピーして変更すると、問題が解決しました。興味深いのは、XeLaTeXだけを使用することで両方に十分であることです。コンパイラを切り替えるよりも間違いなく優れているので、これを将来チェックします。迅速な対応ありがとうございます!
fgb 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.