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또는 유사한. 그러면 건물 pdflatex과 xelatex건물 사이를 전환 합니다.

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

답변:


12

참고 : 파일로 시작하는 경우 숭고한 텍스트에 대한 LaTeXTools 이제 자동 엔진 감지 기능을 지원하는 %!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 용 및 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.