標籤:

請問如何部署 OS X 上 Sublime Text 3 + LaTeX 的中文環境?

輸入中文之後編譯,在pdf上顯示為空白,因此想部署中文環境。

下面是Google找到的方法,但是在「LaTeX.sublime-build」中沒有方法里說的部分,所以現在不知道該怎麼辦。

求大神援助,謝謝!~=w=~

打開編輯"~/Library/Application Support/Sublime Text 2/Packages/LaTeXTools/LaTeX.sublime-build",將其中osx條目下的

"-e", "\$pdflatex = "%E -interaction=nonstopmode -synctex=1 %S %O""

修改為

"-e", "\$pdflatex = "xelatex -interaction=nonstopmode -synctex=1 %S %O""

保存後關閉,重新編譯一下

方法來源傳送門


同樣是 Sublime Text 3 用戶,最近剛更換 Mac,所以不請自來,回答一下。

  • 安裝好 MacTeX - TeX Users Group、Sublime Text 和 Skim。這裡 MacTeX 是實際的 TeX 發行版,Skim 是要用到的 PDF 閱讀器。

  • 給 Sublime Text 安裝 Package Control。
  • 在 Sublime Text 窗口中按下 Cammand + Shift + P,鍵入「install」之後回車,找到「LaTeXTools」這個 Sublime Text Package 並安裝。
  • 在 Sublime Text 中編輯以下文件並保存(第一行的注釋很重要),按下 Cammand + B 編譯:

%!TEX program = xelatex
documentclass[UTF8]{ctexart}
egin{document}
這裡是中文。
end{document}

  • 編譯完成後,會自動彈出 Skim 窗口預覽 PDF 文件。
  • 在 Skim 窗口中按下 Cammand + , 打開偏好設置,在「同步」標籤中找到 PDF-TeX 同步支持,選擇「Sublime Text」。
  • 在 Skim 窗口中,按下 Cammand + Shift,在需要的位置按下觸摸板,即可跳轉回 Sublime Text 到對應的代碼位置。


經過師兄 @孟晨 指正,我把正確的貼過來:

1.ctexcap 已廢棄,只做兼容性保留。

2.本身 ctexcap 也不應該和 beamer 聯用,它最初的設計是用來和標準類的衍生類聯用的。比如 ltxdoc 之類的文檔類。beamer 的話用 ctexbeamer。

3.article 的話,直接用 ctexart 就好。一般不建議用 ctex 宏包,直接換文檔類就好了。

---------------------------------我是分割線-------------------------

以下是原答案

接著 @孟晨 我師兄的再講一下:

1.Mac下,盡量不使用ctexcap這個包,因為會出現如下的錯誤

請盡量使用ctex這個包。

在article等環境下使用ctexcap是不會出現這個問題的,但是使用beamer時就會出現了。

2.由於Mac下自帶的輸入法切換是control+space,搜索是command+space,所以,進行自動補全閉合區間時,使用tab鍵會比較好一點。


在最新的Mac版的Sublime 3中,Latextools是已經安裝好的。

解決漢化問題很簡單: 先在文件開始加:%!TEX program = xelatex

同時調用package就可以了: usepackage[UTF8]{ctex}


xelatex + xeCJK 大法好!

從Windows裡面把宋體、黑體、仿宋、楷體複製到Mac OS X裡面就好了,不需要折騰各種奇特的中文環境。


配置

參考部署MAC上的Sublime Text+LaTeX中文環境

  • 安裝MacTeX,此安裝包比較大,大概2.4G的樣子。嫌大可裝BasicTeX,不過要手動安裝latexmk,在終端下輸入sudo tlmgr install latexmk,我記得tlmgr好像不在path裡面,可能要輸入絕對路徑,我裝的是完整版的,所以對此不是很確定。


    安裝完 MacTeX,其實已經包含TexShop,可以正常使用LaTeX來進行排版了,不過我習慣用Sublime來寫東西。

  • 安裝Sublime Text 3和package control

    Package control安裝步驟

    • 打開Sublime,control+`或者View &> Show Console打開控制台
    • 輸入

      import urllib.request,os,hashlib; h = "7183a2d3e96f11eeadd761d777e62404" + "e330c659d4bb41d3bdf022e94cab3cd0"; pf = "Package Control.sublime-package"; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( "http://sublime.wbond.net/" + pf.replace(" ", "%20")).read(); dh = hashlib.sha256(by).hexdigest(); print("Error validating download (got %s instead of %s), please try manual install" % (dh, h)) if dh != h else open(os.path.join( ipp, pf), "wb" ).write(by)``

    • 等待完成

  • package control安裝好後就可以開始裝LaTexTools了。

    Sublime中Command+Shift+P,輸入install,按下enter,再輸入LatexTools,應該會自動補全,回車確認後等待安裝完成。

  • OS X下,sublime編譯PDF文件通過Skim預覽,所以我們要安裝並且配置Skim。

    配置Skim

    最新版本的LateXTools以及Skim支持默認ST2以及ST3,只需在偏好設置 &> 同步選擇Sublime Text就行了。

  • 進行到這裡,sublime的LaTeX已經基本配置完成,接下來添加中文支持。

    • 最新的LateXTools可以通過在每個tex文件最前加上%!TEX program = &

      program可選pdflatex, lualatex 或 xelatex,默認為pdflatex。

    • pdflatex不支持中文,我們需要修改為xelatex 注意上文分享的部署MAC上的Sublime Text+LaTeX中文環境 中的設置

    打開編輯~/Library/Application Support/Sublime Text 2/Packages/LaTeXTools/LaTeX.sublime-build,將其中"osx"條目下的

    "-e", "\$pdflatex = "%E -interaction=nonstopmode -synctex=1 %S %O"" 修改為

    "-e", "\$pdflatex = "xelatex -interaction=nonstopmode -synctex=1 %S %O""

    保存後關閉,重新編譯一下,中文正常啦!

    對最新的LaTexTools是不適用的,詳情參見SublimeText/LaTeXTools

    ---------------------------------------------已修復-------------------------------------------------

    按理說到了這一步,根據文檔應該已經大功告成了,但是我們遇到了一個問題,對於10.10的系統,無法通過xelatex編譯,原因不是很清楚。Github上也有許多人遇到這個問題,經過搜索找到了一個解決辦法,感謝LaTeXTools on OS X 10.10 #401下flipphillips的回復。編輯~/Library/Application Support/Sublime Text 3/Packages/LaTeXTools/目錄makePDF.py,找到proc = subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)這一行並添加env=os.environ為proc = subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE,env=os.environ)

    保存,現在就能編譯成功了。

    ---------------------------------------------已修復-------------------------------------------------

  • makePDF fix for OSX Yosemite

    # else:
    elif self.caller.plat == "osx":
    # Temporary (?) fix for Yosemite: pass environment
    proc = subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, env=os.environ)
    else: # Must be linux``

    其實就是手動修復的內容。

測試代碼

%!TEX program = xelatex
documentclass{article}
usepackage{fontspec, xunicode, xltxtra}
setmainfont{Hiragino Sans GB}
itle{Title}
author{name}
egin{document}
maketitle{title}
section{Introduction}
This is where you will write your content. 在這裡寫上內容。
end{document}


我用的sublime text 2,之前我在網上找教程的時候也看到要改這個文件,但是我也沒有發現這個文件裡面有這句話…

我的解決方案是這樣的,在每個tex源文件的開頭加上一句

% ! TEX program = xelatex

這樣就可以成功編譯含有漢字的文檔了…

這個方法是看sublime的插件LaTeXTools在github上的說明信息里找到的

https://github.com/SublimeText/LaTeXTools


看說明文檔 和How to change engine to xelatex? · Issue #356 · SublimeText/LaTeXTools · GitHub

**Build engine settings**:

NOTE: for the time being, you will need to refer to the `LaTeX.sublime-settings` file for detailed explanations. Also, since the new build system is meant to be fully customizable, if you use a third-party builder (which hopefully will become available!), you need to refer to its documentation.

- `builder`: the builder you want to use. Leave blank (`""`) or set to `"default"` or `"traditional"` for the traditional (`latexmk`/`texify`) behavior.

- `builder_path`: builders can reside anywhere Sublime Text can access. Specify a path *relative to the Sublime text Packages directory*. In particular, `User` is a good choice. If you use a third-party builder, specify the builder-provided directory.

- `builder-settings`: these are builder-specific settings. For the `default`/`traditional` builder, the following settings are useful:

* `program`: one of `pdflatex` (the default), `xelatex` or `lualatex`. This selects the TeX engine.

* `command`: the precise `latexmk` or `texify` command to be invoked. This is specified exactly as in the `cmd` entry of the old `LaTeX.sublime-build` file (which is no longer honored): it must be a list of strings. The defaults (hardcoded, not shown in the settings file) are `["latexmk", "-cd", "-e", "$pdflatex = "%E -interaction=nonstopmode -synctex=1 %S %O"", "-f", "-pdf"]` for TeXLive, and `["texify", "-b", "-p", "--tex-option="--synctex=1""]` for MiKTeX.

* In addition, there can be platform-specific settings. An important one for Windows is `distro`, which must be set to either `miktex` or `texlive`.


是的,我也發現沒有這部分。找了很久就是沒看到。

昨天看到這篇教程 Sublime Text 2 with LaTeX Skim on Mac (XeTeX支援中文) ? I try

step 3 尾端有一方法,我也試了不成功


試試 Sublime Text 使用 CTeX 中 XeTeX 進行編譯 ?


打開編輯~/Library/Application Support/Sublime Text/Packages/Users/LaTeX.sublime-settings,將其中"builder"條目改為:

"builder": "simple"

接著打開編輯~/Library/Application Support/Sublime Text/Packages/LaTeXTools/builders/simpleBuilder.py

找到其中大概第41行

pdflatex = ["pdflatex", "-interaction=nonstopmode", "-synctex=1"]

修改為

pdflatex = ["xelatex", "-interaction=nonstopmode", "-synctex=1"]


mac系統升級到EI,發現無法安裝LaTex Tools,請問要怎麼解決啊


推薦閱讀:

TeXShop 裡面的引擎(如 plain TeX, LaTeX,BibTeX)各適用於什麼情況?
LaTeX的編輯器TeXStudio能夠識別中文嗎?為何添加字體庫中沒有中文的?
LaTeX 中字體調用機制是怎樣的?
有沒有比latex更加好的寫作排版軟體,或者怎麼解決latex邊寫作還要邊編代碼的問題?
CTeX 2.0有哪些新功能?

TAG:LaTeX | SublimeText |