日文字体的处理可分为三层:书体种类、文档内的切换、以及各引擎的设置。以正文使用的 Mincho(明朝体) 和标题/强调使用的 Gothic(ゴシック体) 这两类书体为基础,本页依次介绍用 \mcfamily / \gtfamily 切换书体、在 (u)pLaTeX 中用 kanji-config-updmap、在 LuaLaTeX 中用 luatexja-preset 设置字体,以及实际会嵌入哪些字形文件(当前 TeX Live 的默认是 Harano Aji)。
日文书体:Mincho 与 Gothic
日文排版的基础是两种书体。Mincho(明朝体) 横画细、竖画粗,笔画末端有称为 *uroko*(“鳞”)的小三角衬饰,对应西文字体中的衬线体(roman)。它可读性高,是长篇 正文 的标准选择。Gothic(ゴシック体) 的笔画粗细几乎一致,没有衬饰,对应无衬线体。它辨识度高,适合 标题、强调、说明文字以及图表中的标签。
这种对应关系正好叠到西文模型上:Mincho 是 与 roman(\rmfamily)对应的默认正文字体,Gothic 是 与 sans-serif(\sffamily)对应的字体,形成两族模型。一个重要结果是,在日文中 \bfseries(粗体)实际上会映射到 Gothic。不同于西文文本,Mincho 默认没有粗字重,因此“加粗”就变成“切换到 Gothic”。(即使在 LuaTeX-ja 的默认设置中,Mincho 和 Gothic 两族的粗体系列也都对应 Gothic 的 medium 系列。)
除这两种书体外,还有毛笔书体。Kaisho(楷书体) 是一画一停、规整书写的楷体;Gyosho(行书体) 是笔画相连、略带简化的半草书风格。它们用于奖状、正式致辞、请柬,以及需要传统日式气氛的地方。此外还有圆角的 Maru Gothic(丸ゴシック体),可通过下文 otf 包的 deluxe 选项等使用。不过日常论文和书籍排版的核心仍然是 Mincho 与 Gothic 这两种。
在文档内切换书体
书体切换遵循与西文字体命令相同的惯例:一种是对一定范围生效的 声明形式,另一种是只作用于参数的 命令形式。Mincho 使用 \mcfamily(声明)和 \textmc{...}(命令),Gothic 使用 \gtfamily 和 \textgt{...}。其中 mc 是 mincho 的缩写,gt 是 gothic 的缩写。
本文は明朝体で組みます。\textgt{ここだけゴシック体}で強調できます。
{\gtfamily この波括弧の中はすべてゴシック体になります。}
見出しなどは \textbf{太字} にすると、和文では自動的にゴシック体になります。这些命令切换的是 字体族(family),与字重(series)和倾斜(shape)相互独立。如前所述,\bfseries 和 \textbf{} 在日文中会映射到 Gothic。日文基本上 没有 italic 或 oblique 的概念,因此通常不提供像西文那样的倾斜字形。某些类和包可以设置为使用 \rmfamily / \sffamily 时同步切换 Mincho / Gothic(LuaTeX-ja 中是 luatexja-fontspec 的 match 选项)。
设置(1):pLaTeX / upLaTeX + dvipdfmx
在传统 (u)pLaTeX 中,排版使用的日文字体 度量(字宽信息)是虚拟固定的,正文源文件并不指定要使用哪个真实字体。实际 嵌入 PDF 的真实字体由系统侧设置决定,而不是由文档决定。切换这项设置的工具是 TeX Live 附带的 kanji-config-updmap。它会重写 dvipdfmx 参照的字体映射(updmap.cfg),一次性替换 Mincho 和 Gothic 对应的真实字体。
若要为所有用户设置,使用 kanji-config-updmap-sys(需要管理员权限);只为自己设置则用 kanji-config-updmap-user(用户设置优先于系统设置)。先确认当前状态,再传入想使用的字体族名称进行切换。
# いまどの和文フォントが埋め込まれる設定かを確認 / show the current setting
kanji-config-updmap-sys status
# 原ノ味フォントに切り替える(TeX Live の既定)/ switch to Harano Aji (the TeX Live default)
sudo kanji-config-updmap-sys haranoaji
# 他の例:ヒラギノ・IPAex・Noto / other examples
sudo kanji-config-updmap-sys hiragino-pron
sudo kanji-config-updmap-sys ipaex
sudo kanji-config-updmap-sys noto-otc
# フォントを埋め込まない/自動で見つける / embed nothing, or auto-detect
sudo kanji-config-updmap-sys nofont
sudo kanji-config-updmap-sys autostatus 会列出当前设置以及系统中找到的候选字体。auto 会自动寻找可用的商业或免费字体,设置为嵌入;如果找不到,则退回到不嵌入。若要使用 JIS X 0213:2004 字形(所谓“2004 JIS”),添加 --jis2004(例如 sudo kanji-config-updmap-sys --jis2004 haranoaji)。由于 dvipdfmx 默认会 把字体嵌入 PDF,即使发送给别人,字形也能再现。
若想在正文中使用多种书体和多种字重,请载入 otf 包(下一节)。在 upLaTeX 中应像 \usepackage[uplatex]{otf} 这样显式写出引擎。
设置(2):LuaLaTeX + LuaTeX-ja
在 LuaLaTeX 中,LuaTeX-ja(luatexja) 负责日文排版,并可直接按名称指定 OS 中安装的 OpenType / TrueType 字体。最简单的路线是 luatexja-preset 包,它用一个“preset”名称设置常用的日文字体组合。Harano Aji 只需下一行:
\documentclass{ltjsarticle}
\usepackage[haranoaji]{luatexja-preset} % 明朝=原ノ味明朝, ゴシック=原ノ味角ゴシック
\begin{document}
本文は明朝体。\textgt{見出しはゴシック体}。
\end{document}预设名称定义了很多,例如 haranoaji、hiragino-pro / hiragino-pron、noto / noto-otc、sourcehan、ipa / ipaex、ms、yu-win10 等。若要启用多字重(在正文中区分使用 Mincho / Gothic 的粗细),请同时添加 deluxe 选项。
\usepackage[haranoaji,deluxe]{luatexja-preset}若不依赖预设而想指定任意字体,请载入 luatexja-fontspec,并使用与 fontspec 同风格的命令。日文侧有 \setmainjfont(正文 = Mincho)、\setsansjfont(= Gothic)、\setmonojfont(等宽),与西文侧的 \setmainfont 等相对应。临时一次性指定也可使用 \jfontspec。
\usepackage{luatexja-fontspec}
\setmainjfont{Harano Aji Mincho} % 明朝(本文)
\setsansjfont{Harano Aji Gothic} % ゴシック(見出し・強調)
% \setmainjfont{Hiragino Mincho ProN} % 例:macOS のヒラギノLuaLaTeX 不经 DVI,直接输出 PDF,你指定的字体会自动嵌入。日文源文件编码以 UTF-8 为前提。不同于 (u)pLaTeX,LuaLaTeX 路线的优点是 字体选择在文档(源文件)内部自洽完成。
otf 包与 Adobe-Japan1 / CID
齋藤修三郎的 otf 包(japanese-otf) 是在 (u)pLaTeX 中访问 Adobe-Japan1 字符集的标准方式。Adobe-Japan1 是日文字体的典型字形集合,包含 JIS X 0208 容纳不了的异体字、符号和旧字等。在 LuaTeX-ja 中,同样功能可通过 luatexja-otf 使用。
有两个命令可以直接指定字符。\UTF{...} 接受 Unicode 码点(4 到 5 位十六进制数),\CID{...} 接受 Adobe-Japan1 的 CID 编号(十进制)。优点是无法输入的异体字(例如人名中的旧字)可以通过代码值可靠输出。
森\UTF{9DD7}外(森鴎外の「鴎」を正字「鷗」で)
\CID{7652}飾区(葛の異体字)
葛城市、\CID{1481}城駅包选项也很重要。deluxe 会启用总共七种书体:Mincho 三个字重、Gothic 三个字重、Maru Gothic 一个字重,并为圆角 Gothic 增加 \mgfamily / \textmg{...}。expert 启用竖排标点和异体字等额外字形,jis2004 选择 2004 JIS 字形。使用多字重需要配置相应的真实字体(Harano Aji、Hiragino 等)。
主要日文字体及其文件
最后看实际嵌入的“字形本身”。当前 TeX Live 默认使用的日文字体是 “Harano Aji” 字体。它是从 Google 和 Adobe 发布的 Source Han(Source Han Sans / Serif)= Noto CJK 派生的免费字体,并为适合 PDF 嵌入做了调整。它在 TeX Live 2020 中取代此前默认的 IPAex 字体成为默认值。(从旧环境升级时会继承原设置,因此可能需要用 kanji-config-updmap-sys haranoaji 显式切换。)
| 字体 | 来源 / 系统 | 定位 |
|---|---|---|
Harano Aji | Harano Aji;免费,源自 Source Han / Noto CJK | 当前 TeX Live 默认;完整 Mincho + Gothic |
IPAex | 日本 IPA 机构发布的免费字体 | 曾经的默认;Mincho + Gothic |
Hiragino | Hiragino;macOS 附带(商业) | macOS 上高质量;预设很多 |
Noto CJK / Source Han | Google 和 Adobe 的开源字体 | 泛 CJK;Harano Aji 的基础 |
Morisawa | Morisawa(商业) | 商业印刷中的标准高质量书体 |
Harano Aji 的真实文件名类似于 Mincho 的 HaranoAjiMincho-Regular 和 Gothic 的 HaranoAjiGothic-Medium,并具备 Light、Regular、Medium、Bold、Heavy 等字重。LuaTeX-ja 的默认设置也会预先为正文 Mincho 载入这个 Regular,为 Gothic 载入这个 Medium。日文字体编码横排为 JY3,竖排为 JT3。无论选择哪个字体,dvipdfmx 和 LuaLaTeX 都会为发布 把字形嵌入 PDF,因此即使对方环境没有安装字体,也能以相同外观打开。