日文字体

日文字体的处理可分为三层:书体种类、文档内的切换、以及各引擎的设置。以正文使用的 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 的缩写。

latex
本文は明朝体で組みます。\textgt{ここだけゴシック体}で強調できます。

{\gtfamily この波括弧の中はすべてゴシック体になります。}

見出しなどは \textbf{太字} にすると、和文では自動的にゴシック体になります。

这些命令切换的是 字体族(family),与字重(series)和倾斜(shape)相互独立。如前所述,\bfseries\textbf{} 在日文中会映射到 Gothic。日文基本上 没有 italic 或 oblique 的概念,因此通常不提供像西文那样的倾斜字形。某些类和包可以设置为使用 \rmfamily / \sffamily 时同步切换 Mincho / Gothic(LuaTeX-ja 中是 luatexja-fontspecmatch 选项)。

设置(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(用户设置优先于系统设置)。先确认当前状态,再传入想使用的字体族名称进行切换。

terminal
# いまどの和文フォントが埋め込まれる設定かを確認 / 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 auto

status 会列出当前设置以及系统中找到的候选字体。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 只需下一行:

document.tex
\documentclass{ltjsarticle}
\usepackage[haranoaji]{luatexja-preset}  % 明朝=原ノ味明朝, ゴシック=原ノ味角ゴシック
\begin{document}
本文は明朝体。\textgt{見出しはゴシック体}\end{document}

预设名称定义了很多,例如 haranoajihiragino-pro / hiragino-pronnoto / noto-otcsourcehanipa / ipaexmsyu-win10 等。若要启用多字重(在正文中区分使用 Mincho / Gothic 的粗细),请同时添加 deluxe 选项。

latex
\usepackage[haranoaji,deluxe]{luatexja-preset}

若不依赖预设而想指定任意字体,请载入 luatexja-fontspec,并使用与 fontspec 同风格的命令。日文侧有 \setmainjfont(正文 = Mincho)、\setsansjfont(= Gothic)、\setmonojfont(等宽),与西文侧的 \setmainfont 等相对应。临时一次性指定也可使用 \jfontspec

document.tex
\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 编号(十进制)。优点是无法输入的异体字(例如人名中的旧字)可以通过代码值可靠输出。

latex
\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 AjiHarano Aji;免费,源自 Source Han / Noto CJK当前 TeX Live 默认;完整 Mincho + Gothic
IPAex日本 IPA 机构发布的免费字体曾经的默认;Mincho + Gothic
HiraginoHiragino;macOS 附带(商业)macOS 上高质量;预设很多
Noto CJK / Source HanGoogle 和 Adobe 的开源字体泛 CJK;Harano Aji 的基础
MorisawaMorisawa(商业)商业印刷中的标准高质量书体

Harano Aji 的真实文件名类似于 Mincho 的 HaranoAjiMincho-Regular 和 Gothic 的 HaranoAjiGothic-Medium,并具备 Light、Regular、Medium、Bold、Heavy 等字重。LuaTeX-ja 的默认设置也会预先为正文 Mincho 载入这个 Regular,为 Gothic 载入这个 Medium。日文字体编码横排为 JY3,竖排为 JT3。无论选择哪个字体,dvipdfmx 和 LuaLaTeX 都会为发布 把字形嵌入 PDF,因此即使对方环境没有安装字体,也能以相同外观打开。