請問如何部署 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)
保存,現在就能編譯成功了。
---------------------------------------------已修復-------------------------------------------------
- 最新的LateXTools可以通過在每個tex文件最前加上%!TEX program = &
-
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 trystep 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 |