使用XeLaTeX編譯器+大字符集字體

LaTeX排版中的生僻漢字、偏旁部首和標點符號處理

Citation
, XML
Authors

Abstract

本文談論涉及生僻漢字、偏旁部首和標點符號排版,排版環境是Windows下MikTex,編輯器TeXworks,使用pdfLaTex和XeLaTeX。

使用TeX排版,遇到生僻漢字和漢字偏旁部首,以前往往八仙過海,各顯神通。比如,使用圖片,將漢字製作成EPS、JPG或者PNG格式,或者直接使用漢字,調整字符空間位置。

lower0.15exhbox{includegraphics[width=.85em]{image.jpg}} 或者

hbox{scalebox{0.7}[1]{扌}kern-.3emscalebox{0.6}[1]{中}}

這兩個方案都得調用usepackage{graphicx}才能正确编译。

使用Unicode方案能解決很多冷僻漢字。最受歡迎當然是Werner Lemberg開發的CJK 宏包。基本的用法如下面:

documentclass[12pt,a4paper]{article}

usepackage{CJKutf8}

begin{document}

begin{CJK}{UTF8}{bkai}

這里是一些漢字。

end{CJK}

end{document}

我使用TeXworks編輯,保存為UTF8格式,生僻漢字、偏旁和標點符號都能正常顯示,編譯也沒有報錯。但是,我在使用CJKuft8宏包+Latex生成PDF,無法顯示這些漢字偏旁和一些很冷僻的漢字,也不能直接使用漢語標點符號編譯,一定得用英文半角。前者問題出在這個宏包所使用的字體,繁體字”bsmi”和 “bkai”,簡體字 “gbsn”和”gkai”。這兩個字體可能沒有這些偏旁部首。

好多人建議使用Cyberbit字體,但是我不是很清楚是否能正確顯示漢字偏旁。從TTF字體生成和安裝一種新字體,看起來非常麻煩。

找來找去,偶然衆我碰到了簡單的解決方案。那就是使用XeLaTex編譯。字号选择最具任意性的方案可能是使用XeLaTeX,使用时只要指定要用到的字体名及字体大小即可,甚至不需要调入想CJK宏包具体的语言宏包。

documentclass{article}

usepackage{xltxtra}

setsansfont{STFangsong}

begin{document}

sffamily

這裡是一些偏旁: 扌艹宀和一些很生的字:亖

甚至直接使用標點符號: “” 、『』

end{document}

STFangsong是我的系統安裝的TTF字體,这里我只是指定了系統字體的名稱, 使用XeLaTeX就能直接調用。這樣省掉了一切麻煩,我可以拷貝粘貼任何文字, 都能順利的編譯。這樣就跟在MS Word或Open Office裡面一樣,而得到更專業的排版效果。