XeTeX中文解決方案(temp)


臨時記錄一下XeTeX的中文解決方案。一些包的文檔只是走馬觀花得到的解決方法,所以可能有諸多紕漏。

另個人還是比較看好LuaTeX,但是在里邊鼓搗中文還是一團糟,等探索一下再回來補充。

 

我使用的包是xeCJK, 推薦的調用方法是

\usepackage[LocalConfig=name]{xeCJK}

  

其中的LocalConfig=name表示在搜索路徑中尋找名為"xeCJK-name.cfg"的配置文件。這樣就可以復用關於中文自體的配置了。

在xeCJK中寫有:

使用TeX Live的用戶, 可以新建下列目錄, 然后再把xeCJK-<name>.cfg放在里面:
      texlive/texmf-local/tex/xelatex/xecjk
最后還需要在命令行下執行mktexlsr,刷新文件名數據庫以便TeX系統能找到它。

問題在於在類Linux系統中, 一般不會把文件寫到~以外的地方的。關於在~應該放在那里,現在能從安裝sty的guide里得到點提示。我直接把相關的命令扔在這里好了,有時間搞清楚了再整理~ 可以看出來的是TeX Live有些特別的環境變量。

 
kpsewhich -var-value=TEXMFHOME

texhash `kpsewhich -var-value=TEXMFHOME`

  

  

xeCJK的文檔有幾個奇怪的地方:復制中文出來的時候是亂碼。雖然這間接實現了保護內容的作用,但是鑒於復制英文沒有問題這顯然是個bug,況且也有違開源精神,(⊙_⊙)有時間再看看神馬情況、

 

OK 回歸正題。xeCJK設置字體有兩個常用的命令:

\setCJKmainfont{KaiTi}
\newCJKfontfamily[hei]\heiti{SimHei}

  詳細解釋看文檔, 簡要的說明是第一行設定默認的CJK字體, 第二行實際上定義了一個新的 \heiti, 可以改變當前環境的字體為SimHei。兩點說明:

為了實現\textbf \emph, 對應的字體family要有Bold & Italic face, 但是很多中文字體實際上是沒有這些face的,那么xeCJK提供了兩個選項 

AutoFakeBold=true, AutoFakeSlant=true

  來實現一個“偽”粗體和斜體。

但是中文環境中用該字體加粗和斜體是很難看的(至少我這么認為)。通常的做法是用黑體表示“加粗”來實現“重點”的作用。那么其實可以這樣:

\setCJKmainfont[BoldFont=SimHei]{KaiTi}

  OK 相信不用解釋了。

另外提到的第二個命令,個人實際上不推薦。LaTeX的思想更多的是按邏輯組織文檔而不是dive into design,所以我一般會盡量避免在文檔中出現直接控制排版的語句。遇到這樣的需要我會首先考慮是不是我的文檔組織或者邏輯的問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM