Sublime Text 2에서 pdflatex와 xelatex 변환간에 전환하려면 어떻게해야합니까?


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는 예를 들어 CmdR그렇게합니다. TextMate 구성이로 설정되어 있어도 간단하게 LaTeX 문서와 XeTeX 문서를 모두 컴파일 할 수 있습니다 pdflatex. 어쩌면 그것은 약간의 latexmk.pl부일 지도 모른다.

  • ... 간단한 키보드 단축키 또는 설정에 - 어쩌면 누르면 CmdL, CmdX또는 유사한. 그러면 건물 pdflatexxelatex건물 사이를 전환 합니다.

어떻게 설정할 수 있습니까?

답변:


12

참고 : 파일로 시작하는 경우 숭고한 텍스트에 대한 LaTeXTools 이제 자동 엔진 감지 기능을 지원하는 %!TEX program = <program>경우, <program>어떤이다 pdflatex, xelatex또는 lualatex. 아래 지침은 어떤 이유로 든 엔진을 수동으로 전환해야하는 경우에만 필요합니다.


아래 LaTeX.sublime-buildLaTeXTools폴더에 있는 파일을 가져 와서에 ~/Library/Application Support/Sublime Text 2/Packages복사 ~/Library/Application Support/Sublime Text 2/Packages/User/하되 두 번 수행하여 해당 파일에 다음 이름을 지정하십시오.

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

pdflatexLaTeX 용 및 xelatexXeTeX 용 엔진을 각각 사용하도록 파일을 변경하십시오 (질문에서 볼 수 있음).

그런 다음 도구»새 플러그인…을 통해 새 플러그인을 만듭니다 ( 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)

그리고 Preferences»Key Bindings – User 에서 키보드 단축키를 만드십시오 .

[ {
  "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

default의 전체 사본 LaTeX.sublime-build을 작성한 다음 수정하거나 관련 osx부분 만 포함 합니까?
fgb

1
우선 편집 해 주셔서 감사합니다. 기본 파일의 전체 사본을 작성하고 그에 따라 수정했습니다. 내가 알아 낸 것은 XeLaTeX가 적어도 테스트 한 모든 파일에서 모든 LaTeX 소스를 잘 컴파일한다는 것입니다. 어쩌면 백그라운드 어딘가에 대체가 있습니까?
slhck

전체 기본 파일을 복사하고 수정하면 문제가 해결되었습니다. XeLaTeX 만 사용하면 충분합니다. 컴파일러를 전환하는 것보다 확실히 낫기 때문에 앞으로 이것을 확인할 것입니다. 신속한 답변 감사합니다!
fgb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.