TeX Live/CJK
使用 TeX Live 对 中文 (Chinese)、日文 (Japanese) 和 韩文 (Korean) 文档进行排版的指南。
安装
通过从 texlive-lang 组中安装相应的软件包,可以获得特定语言的字体和宏包
其他字体可以通过 Fonts#Installation 中概述的方法安装。您可能还会对让 TeX Live 字体在 Fontconfig 中可用感兴趣(但这并非严格必要)。
使用基于 poppler 的 PDF 查看器(如 Evince)的用户,应安装 poppler-data 作为额外的依赖项,以正确显示包含 CJK 字符的 PDF 文档。(如果使用了来自 noto-fonts-cjk 的 CJK 字体,则此操作似乎是不必要的。)
毋庸置疑,您的 区域设置 (locale) 应具有能够处理特殊字符的字符编码(例如 UTF-8),并且您还应该安装一个输入法编辑器。本地化 (Localization) 的(简体/繁体)中文、日文和韩文子页面也包含有关区域设置和字体的信息。
排版
Overleaf 的在线文档中有涵盖不同 CJK 排版方法的文章,这些方法同样适用于 Arch Linux 上的 TeX Live 安装
- https://overleaf.com/learn/latex/Chinese
- https://overleaf.com/learn/latex/Japanese
- https://overleaf.com/learn/latex/Korean
CJK 和 CJKutf8 宏包(其中 前者提供了后者)已处于维护模式且已过时。如果可能,请改用“现代的 TeX 引擎,如 luatex, XeTeX 或 upTeX(这些都是 TeXLive 的一部分)”。字体
下表列出了 Overleaf 文章中提到的一些字体族/文件及其对应的软件包
| 语言 | 字体族/文件 | 软件包 (Package) |
|---|---|---|
| 中文 | BabelStone Han | ttf-babelstone-hanAUR |
| 日语 | IPAMincho | otf-ipafont |
| IPAGothic | ||
| TakaoMincho | otf-takaoAUR | |
| TakaoGothic | ||
| 韩语 (Korean) | UnGungseo.ttf |
texlive-langkorean |
gulim.ttf
|
在使用 ctex 或 xeCJK 时,可以使用 \setCJKtypefont{font} 设置字体。(\settypejfont{font} 可用于 pTeX 引擎。) type 的值可以是 main, sans 和 mono。对于用户/系统字体,font 是字体族 (font family);对于 TeX Live 字体,font 是字体文件 (font file)。
pTeX 引擎
Overleaf 的 Japanese#The pTeX engine 提供了一个 latexmkrc 文件,旨在与 texlive-doc 中的 latemk 工具配合使用。在 Arch Linux 上运行不带任何参数的 latexmk 将仅从示例文档生成 DVI 文件。请使用 -pdfdvi 选项以便从 DVI 文件同时生成 PDF 文件。有关更多信息,请参阅 latexmk(1) 或运行 latexmk -help。
正如 Overleaf 文章中简要提到的,upLaTeX(类似于 pLaTeX)“为 upTeX 提供了 pLaTeX2ε 宏”,而 upTeX 是 pTeX 的“Unicode 版本”。
故障排除
CTeX-kit
使用 ctex 或 xeCJK 等 CTeX-kit 集合/软件包时常见问题的解决方案。
未找到 ctexhook.sty
在编译日文或韩文文档时可能会遇到以下错误
! LaTeX Error: File `ctexhook.sty' not found.
安装 texlive-langchinese 软件包以获取 ctexhook.sty。即使对于非中文排版文档,这也是必需的。
字体缺失或不一致
日文或韩文 PDF 文档可能会出现字符缺失或字体粗细不一致的情况。当未指定 CJK 字体时,将使用默认字体 Fandol。然而,Fandol 是“为中文排版而设计”的,因此不适用于日文和韩文。请明确设置日文或韩文字体以避免此问题。
LuaLaTeX
使用 LuaLaTeX 编译文档时常见问题的解决方案。
未找到 luatexja.sty
在使用 ctex 文档类编译中文或韩文文档时,可能会遇到以下错误
! LaTeX Error: File `luatexja.sty' not found.
安装 texlive-langjapanese 软件包以获取 luatexja.sty。即使对于非日文排版文档,这也是必需的。
大字体的资源问题
当使用来自 noto-fonts-cjk 等大字体时,由于字体缓存的生成,文档编译可能会非常消耗资源且耗时。不过,随后的编译应该会快得多。一种可能的解决方法(除了使用较小的字体外)是通过移除字形名称来精简字体。请记住,这样做可能会产生后果。