Sublime Text 2'de pdflatex ve xelatex dönüşümü arasında nasıl geçiş yapabilirim?


9

Genellikle "klasik" LaTeX ve XeTeX belgelerini derlemek arasında geçiş yapıyorum.

Sublime Text 2, LaTeX belgelerini basit bir şekilde oluşturmanıza izin veren LaTeXTools adlı bir pakete sahiptir CmdB. Temiz.

Derleme dosyası LaTeX.sublime-build, standart paket klasöründe açıkça var ve onu Userözelleştirmek için klasörünüze kopyalayabilirsiniz . Burada, verilen argümanlar değiştirmeye izin verir latexmkyani geçmek için, pdflatexhiç xelatexböyle örneğin:

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

Şimdi, başka bir belge açtığımda bunu yapmak çok sıkıcı - yapı tercihlerimi aç, bir satırda yorum yap, kaydet, vb.

İdeal olarak, motoru değiştirebilmek istiyorum

  • … Otomatik olarak - TextMate örneğin bir şekilde bunu yapar CmdRve TextMate yapılandırması ayarlanmış olmasına rağmen hem LaTeX belgelerini hem de XeTeX belgelerini basit bir şekilde derleyebilirim pdflatex. Belki biraz latexmk.pl-fu, bilmiyorum.

  • ... basit bir klavye kısayolu veya ayar ile - Belki basarak CmdL, CmdXya da benzer. Bu da arasında geçiş olacağını pdflatexve xelatexbina.

Bunu nasıl ayarlayabilirim?

Yanıtlar:


12

Not: Dosya ile başlıyorsa Sublime Text için LaTeXTools artık otomatik motor algılama destekler %!TEX program = <program>nerede, <program>herhangi biridir pdflatex, xelatexya da lualatex. Aşağıdaki talimatlar, sadece ne sebeple olursa olsun motorları manuel olarak değiştirmeniz gerektiğinde gereklidir.


LaTeX.sublime-buildDosyayı LaTeXToolsaltındaki klasöre alın ~/Library/Application Support/Sublime Text 2/Packagesve kopyalayın ~/Library/Application Support/Sublime Text 2/Packages/User/, ancak iki kez yapın ve bu dosyalara aşağıdaki adı verin:

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

Sırasıyla, pdflatexLaTeX ve xelatexXeTeX için motorları kullanmak için dosyaları değiştirin (soruda görüldüğü gibi).

Ardından, Araçlar »Yeni Eklenti… 'den yeni bir eklenti oluşturun ( switch.pyyukarıdaki konuma kaydederek ):

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)

Ve bunun için bir klavye kısayolu oluşturmak Anahtar Bağlar »Tercihler - Kullanıcı :

[ {
  "keys": ["super+shift+x"], "command": "switch"
} ]

Bunu, Main.sublime-menudosyayı Userpaketinize ekleyerek menünüze de ekleyebilirsiniz :

[ {
    "id":"tools", "children":
    [ {
        "command": "switch",
        "caption": "Switch between LaTeX/XeTeX"
      }
    ]
} ]

Bu, halihazırda aktif olan derleme dosyasını XeTeX ve LaTeX için gerekli derleme ayarlarıyla karşılaştıracak ve gerektiğinde bunları değiştirecektir.

Bu, biraz iyileştirme kullanabileceğinden emin olabilir, ancak şu an için çalışıyor.


LaTeXTools'un LaTeX.sublime-buildkullanıcı paketleri klasörümde öncelik vermiş olması dışında bir çekicilik gibi çalışıyor . Oldukça garip ...
fgb

LaTeX.sublime-buildDeğiştirdiğiniz veya tam olarak ilgili osxbölümü içeren varsayılanın tam bir kopyasını alıyor musunuz?
fgb

1
Öncelikle düzenlemeler için teşekkürler. Varsayılan dosyanın tam bir kopyasını yaptım ve buna göre değiştirdim. Düşündüğüm şey, XeLaTeX'in tüm LaTeX kaynaklarını en azından test ettiğim tüm dosyalar üzerinde iyi bir şekilde derlemesiydi. Belki arka planda bir geri dönüş vardır?
slhck

Tam varsayılan dosyayı kopyalamak ve değiştirmek sorunumu çözdü. Sadece XeLaTeX kullanmanın her ikisi için de yeterli olması ilginçtir. Gelecekte bunu derleyeceğim çünkü derleyicileri değiştirmek zorunda kalmaktan kesinlikle daha iyi olacak. Hemen yanıt verdiğiniz için teşekkür ederiz!
fgb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.