Як я можу переключитися між перетвореннями pdflatex на xelatex у Sublime Text 2?


9

Я часто перемикаюся між складанням "класичних" документів LaTeX і XeTeX.

Sublime Text 2 має пакет під назвою LaTeXTools, який дозволяє створювати документи LaTeX за допомогою простого CmdB. Акуратний.

Файл збірки, 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 якось робить це, і я можу компілювати як документи LaTeX, так і документи XeTeX з простим CmdR, хоча налаштування TextMate встановлено на pdflatex. Можливо, це якесь latexmk.pl-фу, я не знаю.

  • ... з простою комбінацією клавіш або настройками - Може бути , натисканням CmdL, CmdXабо подібними. Потім це буде перемикатися між pdflatexі xelatexбудувати.

Як я міг це встановити?

Відповіді:


12

Примітка: LaTeXTools для Sublime Text тепер підтримує автоматичне виявлення двигуна , якщо файл починається з %!TEX program = <program>, де <program>є якісь - або з pdflatex, xelatexабо lualatex. Наведені нижче інструкції потрібні лише в тому випадку, якщо вам потрібно вручну перемикати двигуни з будь-яких причин.


Візьміть 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

Змініть файли, щоб використовувати 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

Ви робите повну копію за замовчуванням LaTeX.sublime-build, яку потім модифікуєте, або просто включаєте відповідну osxчастину?
fgb

1
В першу чергу дякую за правки. Я зробив повну копію файлу за замовчуванням і змінив їх відповідно. Однак я дізнався, що XeLaTeX добре збирає всі джерела LaTeX, принаймні, на всі тестовані файли. Можливо, є десь на задньому плані?
slhck

Копіювання та зміна повного файлу за замовчуванням вирішило мою проблему. Цікаво, що використання просто XeLaTeX достатньо для обох. Я перевірю це в майбутньому, оскільки це, безумовно, буде краще, ніж потрібно перемикати компілятори. Дякуємо за швидку відповідь!
fgb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.