LaTeX如何混合排版中文與日文?

使用LaTeX混合排版中文與日文的最佳實踐是怎樣的?

當使用jsarticle時, 中文有部分字元不能正常顯示

(下圖中的多項式字)

documentclass[uplatex,a4paper]{jsarticle}

usepackage[uplatex]{otf}

...

各種定價模型,基本都是怎麼用一種多項式來逼近


用什麼技術不重要(upTeX、APTeX、LuaTeX-ja、XeTeX+xeCJK、pdfTeX+CJK 都容易實現),重要的是中文和日文要用不同的字體。這不僅是避免缺字的問題,而且中文和日文在一些漢字的寫法標準上是不同的。事實上,中文字體一般都有完整的日文假名和大部分常用日本漢字,但字形上的區別是無法避免的。使用思源宋體這類具有不同語言變體的字體時,也一樣要注意切換不同的字形。

考慮到排版細節,如果日文為主,建議用 Unicode 的 pTeX 系引擎(upTeX、APTeX)配合日文文檔類;如果中文為主,建議用 ctex 中文文檔類配合任一 Unicode 引擎(upTeX、APTeX 或 LuaTeX、XeTeX 均可)。

大部分文檔都是大量的一種語言中夾雜少量另一種語言,因此只要額外定義一兩個字體命令即可。

下面的例子以中文為主,夾雜少量日文,因此定義了兩個日文字體命令:

% XeLaTeX 或 LuaLaTeX 編譯
documentclass{ctexart}

ewCJKfontfamilygothic{IPAexGothic}

ewCJKfontfamilymincho{IPAexMincho}
egin{document}

section{漢語}

漢語,日韓稱中國語,書寫又可稱漢文、中文、華文、唐文,語言又稱「華語」、唐話、
中國話等,漢語是聯合國官方語言之一,屬漢藏語系的分析語,具有聲調。漢語的文字系
統——漢字是一種意音文字,表意的同時也具一定的表音功能。漢語包含書面語以及口語
兩部分,古代書面漢語稱為文言文,現代書面漢語一般指使用現代標準漢語語法、辭彙的
中文通行文體(又稱白話文)。目前全球有六分之一人口使用漢語作為母語。漢語口語主
要分為官話、吳語、閩語、粵語、湘語、客家語和贛語等七種;它們的語言學歸屬在西方
語言學界存在爭議,或被認為是獨立的語言,或被認為是漢語方言。

section{gothic 日本語}

mincho
日本語(にほんご、にっぽんご)は、主に日本國內や日本人同士の間で使われている言
語である。日本は法令によって公用語を規定していないが、法令その他の公用文は全て
日本語で記述され、各種法令において日本語を用いることが定められ、學校教育におい
ては「國語」として教えられるなど、事実上、唯一の公用語となっている。

section{漢字}

mfamily
漢字,在中國亦稱中文字、國字、唐字、方塊字,是漢字文化圈廣泛使用的一種文字,是
世界上獨有的一種指示會意文字體系,也是世界上唯一仍被廣泛使用並高度發展的語素文
字,為中國上古時代的華夏族人所發明創製,其字體也歷經過長久改進及演變。目前確切
歷史,可追溯至約公元前1300年商朝的甲骨文、籀文、金文,再到春秋戰國與秦朝的籀
文、小篆,發展至漢朝隸變,產生隸書、草書以及楷書(以及派生的行書),至唐代楷化
為今日所用的手寫字體標準——正楷,也是今日普遍使用的現代漢字。漢字在古文中只
稱「字」,少數民族為區別而稱「漢字」,指漢人使用的文字,後者稱法在近代才開始通
用。

section{gothic 仮名}

mincho
仮名(かな)とは、漢字をもとにして日本で作られた文字のこと。現在一般には平仮名
と片仮名のことを指す。表音文字の一種であり、基本的に1字が1音節をあらわす音節文
字に分類される。漢字に対して和字(わじ)ともいう。ただし和字は和製漢字を意味す
ることもある。

end{document}

upTeX 做字體切換麻煩一些,據我所知暫時還沒有類似 fontspec 這樣的工具包,也缺少預定義的漢字字體族。好在配合 ctex 包,在 zhmetrics-uptex 項目中有 6 種可用的 jfm(此外 upTeX 也自帶了兩種 upschrm-h 和 upschgt-h,這裡沒有使用它們)。下面的例子是以日文 ujarticle 為主的。字體設置部分如果有疑惑,可參考 ctex 包針對 upTeX 引擎的實現部分的源代碼。

% upLaTeX + dvipdfmx 編譯
documentclass{ujarticle}

DeclareKanjiFamily{JY2}{zhsong}{}
DeclareFontShape{JY2}{zhsong}{m}{n}{&<-&> upzhserif-h}{}

ewcommandsongti{kanjifamily{zhsong}selectfont}
DeclareKanjiFamily{JY2}{zhhei}{}
DeclareFontShape{JY2}{zhhei}{m}{n}{&<-&> upzhsans-h}{}

ewcommandheiti{kanjifamily{zhhei}selectfont}
special{pdf:mapline upserif-h UniGB-UTF16-H simsun.ttc}
special{pdf:mapline upsans-h UniGB-UTF16-H simhei.ttf}

egin{document}

section{日本語}

日本語(にほんご、にっぽんご)は、主に日本國內や日本人同士の間で使われている言
語である。日本は法令によって公用語を規定していないが、法令その他の公用文は全て
日本語で記述され、各種法令において日本語を用いることが定められ、學校教育におい
ては「國語」として教えられるなど、事実上、唯一の公用語となっている。

section{heiti 漢語}
songti
漢語,日韓稱中國語,書寫又可稱漢文、中文、華文、唐文,語言又稱「華語」、唐話、
中國話等,漢語是聯合國官方語言之一,屬漢藏語系的分析語,具有聲調。漢語的文字系
統——漢字是一種意音文字,表意的同時也具一定的表音功能。漢語包含書面語以及口語
兩部分,古代書面漢語稱為文言文,現代書面漢語一般指使用現代標準漢語語法、辭彙的
中文通行文體(又稱白話文)。目前全球有六分之一人口使用漢語作為母語。漢語口語主
要分為官話、吳語、閩語、粵語、湘語、客家語和贛語等七種;它們的語言學歸屬在西方
語言學界存在爭議,或被認為是獨立的語言,或被認為是漢語方言。

section{仮名}

mcfamily
仮名(かな)とは、漢字をもとにして日本で作られた文字のこと。現在一般には平仮名
と片仮名のことを指す。表音文字の一種であり、基本的に1字が1音節をあらわす音節文
字に分類される。漢字に対して和字(わじ)ともいう。ただし和字は和製漢字を意味す
ることもある。

section{heiti 漢字}
songti
漢字,在中國亦稱中文字、國字、唐字、方塊字,是漢字文化圈廣泛使用的一種文字,是
世界上獨有的一種指示會意文字體系,也是世界上唯一仍被廣泛使用並高度發展的語素文
字,為中國上古時代的華夏族人所發明創製,其字體也歷經過長久改進及演變。目前確切
歷史,可追溯至約公元前1300年商朝的甲骨文、籀文、金文,再到春秋戰國與秦朝的籀
文、小篆,發展至漢朝隸變,產生隸書、草書以及楷書(以及派生的行書),至唐代楷化
為今日所用的手寫字體標準——正楷,也是今日普遍使用的現代漢字。漢字在古文中只
稱「字」,少數民族為區別而稱「漢字」,指漢人使用的文字,後者稱法在近代才開始通
用。

end{document}

另一種簡單一些的可能的改法是使用 ctex 包設置中文部分的字體,不過 ctex 包會修改默認字體並增加一些字體鉤子,與 pTeX 系原有的用法不完全一致:

% 使用 uplatex
documentclass{ujarticle}

usepackage[scheme=plain]{ctex}

enewcommandCJKrmdefault{mc}

enewcommandCJKsfdefault{gt}

enewcommandCJKttdefault{mc}


pTeX系,見:pTeXと多言語処理。如果使用LuaTeX-ja,使用luatexja-fontspec更改字體。


推薦閱讀:

LaTeX畫矢量圖相關(字體、箭頭位置、分組)?
為何大多數 LaTeX 編輯器連中英文混排時的自動換行都不支持?
如何推薦理工專業的同學使用LaTeX排版?
如何評價「LaTeX 的編輯效率大幅低於 Word」的研究?
側重於介紹公式編輯的LaTeX中文入門書有哪些?

TAG:LaTeX | LaTeX排版與設計 |