Japanische Schriften

Setzt man das einzelne Zeichen 漢 in Harano Aji Mincho, Hiragino Mincho ProN und IPAex Mincho und misst die Breite, ergeben alle drei exakt 10,0 pt – ein Geviert in voller Breite bei 10 pt. Deshalb bringt ein Wechsel der japanischen Schrift keine Zeile in Bewegung, ganz anders als im Lateinischen, wo ein Schriftwechsel das Zeilenmaß verändert. Die eigentliche Frage bei der Wahl einer japanischen Schrift in LaTeX lautet also nicht, wie sie aussieht, sondern ob die Schrift auf dem Rechner des Gegenübers überhaupt vorhanden ist und ob sie ins PDF eingebettet wird. Diese Seite klärt messend, welche japanischen Schriften TeX Live 2024 verlässlich mitbringt, und behandelt dann die Angabe unter LuaLaTeX, XeLaTeX und (u)pLaTeX sowie die Kontrolle der Einbettung mit pdffonts.

Welche japanischen Schriften TeX Live garantiert enthält

Mitgeliefert werden nur drei Linien – Harano Aji, IPA und IPAex –, Noto CJK und Source Han gehören nicht dazu. Das ist keine Vermutung, sondern die Ausgabe von kanji-config-updmap-sys status. Unter TeX Live 2024 meldet der Befehl als aktuelle Einstellung haranoaji und listet als Standby-Familien haranoaji, ipa und ipaex. Kommerzielle Schriften wie Hiragino oder Morisawa lassen sich nutzen, wenn sie im System installiert sind, doch TeX Live verteilt sie nicht.

terminal
$ kanji-config-updmap-sys status
CURRENT family for ja: haranoaji (variant: -04)
Standby family : haranoaji
Standby family : ipa
Standby family : ipaex

# asking for a font that is not installed fails loudly
$ lualatex noto.tex
luaotfload | db : Reload initiated; reason: Font "NotoSerifCJKJPRegular" not found.
! Package fontspec Error: The font "NotoSerifCJKJPRegular" cannot be found.

Diese Grenze zerlegt Dokumente tatsächlich. Eine Minimaldatei mit \usepackage[noto]{luatexja-preset} blieb unter LuaLaTeX bei ! Package fontspec Error: The font "NotoSerifCJKJPRegular" cannot be found. stehen – der Preset-Name ist zwar definiert, ohne die reale Schrift endet es aber hier. Für ein Manuskript, das an Mitautoren oder eine Zeitschrift geht, ist haranoaji (oder ipaex) daher die einzig sichere Wahl. Wer Noto CJK oder Source Han verwenden will, muss die Schrift separat installieren und diese Voraussetzung auch der Gegenseite mitteilen.

SchriftHerkunftIn TeX Live 2024 enthalten?
Harano AjiFreie Schrift von Masamichi Hosoda; die CIDs von Source Han sind auf Adobe-Japan1 umnummeriertJa – Standard; je 7 Gewichte Mincho und Gothic, aufgeteilt auf haranoaji und haranoaji-extra
IPAexFreie Schrift der japanischen IPAJa – ipaexm.ttf (Mincho) und ipaexg.ttf (Gothic); vor TeX Live 2020 der Standard
Noto CJK / Source HanQuelloffene Pan-CJK-Schriften von Google und AdobeNein – nur die Fontmaps sind enthalten; die Schriften selbst müssen separat installiert werden
HiraginoKommerzielle Schriften, mit macOS gebündeltNein – nur unter macOS verfügbar, über Presets wie hiragino-pron aufrufbar
MorisawaKommerzielle Schriften von Morisawa, Standard im kommerziellen DruckNein – eine Lizenz muss gekauft werden; Presets wie morisawa-pr6n sind vorhanden

Mincho und Gothic – umschalten mit \textmc und \textgt

Japanischer Satz läuft auf zwei Schriften. Mincho hat dünne waagerechte und kräftige senkrechte Striche sowie kleine dreieckige Abschlüsse an den Strichenden, uroko („Schuppen“) genannt; es entspricht einer westlichen Serifenschrift und trägt den Fließtext. Gothic hat nahezu gleichmäßige Strichstärken und keine Abschlüsse, entspricht also einer Sans-Serif, und eignet sich für Überschriften, Hervorhebungen, Bildunterschriften und Beschriftungen in Abbildungen und Tabellen. Das Umschalten folgt denselben Konventionen wie westliche Schriftbefehle: das deklarative \mcfamily / \gtfamily und das auf sein Argument beschränkte \textmc{...} / \textgt{...}. Dabei steht mc für mincho, gt für gothic.

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

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

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

An dieser Stelle weicht Japanisch entscheidend vom Lateinischen ab: beim Fettsatz. Japanisches Mincho besitzt standardmäßig keinen Fettschnitt, weshalb \bfseries und \textbf{} faktisch auf einen Wechsel zu Gothic abgebildet werden (selbst die LuaTeX-ja-Standards verweisen die fette Serie beider Familien auf die mittlere Serie von Gothic). Japanisch kennt zudem im Grunde kein Italic- oder Oblique-Konzept, geneigte Glyphen im westlichen Sinne gibt es also nicht. \textmc und \textgt bewegen ausschließlich die Familie; Gewicht (series) und Form (shape) sind davon unabhängig. Einige Klassen und Pakete lassen sich so einstellen, dass \rmfamily / \sffamily Mincho / Gothic mitschalten – in LuaTeX-ja über die Option match von luatexja-fontspec.

Neben diesen beiden gibt es Pinselschriften. Kaisho ist die regelmäßige „Block“-Pinselschrift, Strich für Strich mit abgesetztem Pinsel geschrieben; Gyosho ist die fließende Halbkursive mit verbundenen, leicht verkürzten Strichen. Sie erscheinen auf Urkunden, in Festansprachen und auf Einladungen, überall dort, wo ein traditioneller Eindruck gewünscht ist. Ferner gibt es Maru Gothic, das gerundete Gothic, erreichbar über \mgfamily / \textmg{...}. Nur wenige Schriften enthalten tatsächlich ein gerundetes Gothic, und Harano Aji gehört nicht dazu – selbst mit der unten besprochenen Option deluxe werden nur Mincho und Gothic eingebettet. Für alltägliche Aufsätze und Bücher bleiben diese beiden maßgeblich.

Harano Aji – Source Han, umnummeriert nach Adobe-Japan1

Harano Aji ist Source Han (Source Han Serif und Source Han Sans) mit auf Adobe-Japan1 umnummerierten CIDs. Die beiliegende README sagt es in einem Satz: Die Schriften entstanden, indem Adobe-Identity-0-CIDs (AI0) durch Adobe-Japan1-CIDs (AJ1) ersetzt wurden. Genau darauf kommt es an – dies ist keine „andere, ähnlich aussehende Schrift“, sondern eine Umnummerierung. Die Welt von (u)pLaTeX und dvipdfmx ruft Zeichen über CID-Nummern auf; eine nicht in Adobe-Japan1 nummerierte Schrift passt daher nicht in den überlieferten Arbeitsablauf. Eben deshalb ließ sich Noto CJK nicht einfach zum Standard machen.

Der Autor ist Masamichi Hosoda. Laut README gibt es insgesamt 14 Schriften – je sieben Gewichte für Mincho und Gothic –, und TeX Live verteilt sie auf zwei Pakete. haranoaji enthält die sieben, die von den Presets verwendet werden (Mincho Light, Regular, Bold; Gothic Regular, Medium, Bold, Heavy), haranoaji-extra die übrigen sieben (Mincho ExtraLight, Medium, SemiBold, Heavy; Gothic ExtraLight, Light, Normal). Ein ls auf beide Verzeichnisse zeigt diese Aufteilung unmittelbar als Dateiliste.

terminal
$ ls texmf-dist/fonts/opentype/public/haranoaji/
HaranoAjiGothic-Bold.otf    HaranoAjiGothic-Heavy.otf
HaranoAjiGothic-Medium.otf  HaranoAjiGothic-Regular.otf
HaranoAjiMincho-Bold.otf    HaranoAjiMincho-Light.otf
HaranoAjiMincho-Regular.otf

$ ls texmf-dist/fonts/opentype/public/haranoaji-extra/
HaranoAjiGothic-ExtraLight.otf  HaranoAjiGothic-Light.otf
HaranoAjiGothic-Normal.otf      HaranoAjiMincho-ExtraLight.otf
HaranoAjiMincho-Heavy.otf       HaranoAjiMincho-Medium.otf
HaranoAjiMincho-SemiBold.otf

Für das Mincho im Fließtext ist HaranoAjiMincho-Regular voreingestellt, für Gothic HaranoAjiGothic-Medium. Der praktische Grund für Harano Aji ist nicht nur die Qualität: Das resultierende PDF ist um eine Größenordnung kleiner als derselbe Text in IPAex. Bei einem Dokument mit nur sieben Zeichen kam das Harano-Aji-PDF auf 5.617 Byte, das IPAex-PDF auf 155.880 Byte. pdffonts meldet sie als CID Type 0C (Harano Aji, OpenType/CFF) beziehungsweise CID TrueType (IPAex). Die Ausgangsdateien sind 6,4 MB und 7,8 MB groß, also nahezu gleich; der Unterschied stammt somit nicht von der Schrift, sondern vom Format und der Effizienz der Teilmengenbildung.

Schriften unter LuaLaTeX und XeLaTeX angeben – luatexja-preset und zxjafont

Auf einer Unicode-Engine führt der kürzeste Weg über einen Preset-Namen an luatexja-preset aus LuaTeX-ja (luatexja) unter LuaLaTeX beziehungsweise zxjafont unter XeLaTeX. Beide richten die Zuordnung „Mincho ist dies, Gothic ist jenes“ mit einem einzigen Wort ein. Die Preset-Namen stimmen weitgehend überein; definiert sind unter anderem haranoaji, ipa/ipaex, hiragino-pro/hiragino-pron, noto/noto-otc, sourcehan, ms, yu-win10, morisawa-pr6n und kozuka-pr6n. In der Messung übersetzte ein Dokument mit \usepackage[haranoaji]{zxjafont} unter XeLaTeX fehlerfrei und bettete eine Teilmenge von HaranoAjiMincho-Regular ein.

document.tex
% LuaLaTeX
\documentclass{ltjsarticle}
\usepackage[haranoaji]{luatexja-preset}
% add deluxe for multiple weights of Mincho and Gothic:
% \usepackage[haranoaji,deluxe]{luatexja-preset}

% XeLaTeX
% \documentclass[a4paper]{bxjsarticle}
% \usepackage[haranoaji]{zxjafont}

\begin{document}
本文は明朝体。\textgt{見出しはゴシック体}\end{document}

Mit der Option deluxe lassen sich mehrere Gewichte von Mincho und Gothic im Fließtext einsetzen. Gemessen bettete das PDF aus \usepackage[haranoaji,deluxe]{luatexja-preset} vier Schriften ein: HaranoAjiMincho-Regular, HaranoAjiMincho-Bold, HaranoAjiGothic-Regular und HaranoAjiGothic-Medium. Zu beachten ist, dass die ltjs*-Klassen wie ltjsarticle Japanisch gegenüber dem lateinischen Text leicht verkleinert setzen – die Meldung Package luatexja-preset Warning: Japanese fonts will be scaled by 0.924715. beim Übersetzen ist genau das und entspricht dem Entwurf, ist also kein Problem.

Wer eine Schrift direkt benennen möchte statt ein Preset zu nutzen, lädt unter LuaLaTeX luatexja-fontspec. Seine Befehle spiegeln fontspec: \setmainjfont (Mincho, die Grundschrift), \setsansjfont (Gothic), \setmonojfont (Monospace), \newjfontfamily sowie \jfontspec für den Einzelfall. Optionen werden wie in fontspec geschrieben – Scale=, Path= und so fort –, das Wissen von der lateinischen Seite lässt sich also übertragen. Angeben lässt sich ein Schriftname oder ein Dateiname; für die Zusammenarbeit ist der Dateiname (HaranoAjiMincho-Regular.otf) die verlässlichere Form.

document.tex
\documentclass{ltjsarticle}
\usepackage{luatexja-fontspec}
% naming files, not family names, keeps it reproducible
\setmainjfont{HaranoAjiMincho-Regular.otf}
\setsansjfont{HaranoAjiGothic-Medium.otf}
% \setmainjfont{Hiragino Mincho ProN}   % macOS only
\begin{document}
明朝の本文。\textsf{ゴシックの見出し}\textbf{太字}\end{document}

Schriften unter (u)pLaTeX + dvipdfmx angeben – kanji-config-updmap und das Paket otf

Im traditionellen (u)pLaTeX entscheidet eine Systemeinstellung darüber, was eingebettet wird, nicht das Dokument. Die Metriken (Zeichenbreiten) der zum Satz verwendeten japanischen Schriften sind virtuell festgelegt, und in der Quelle taucht kein realer Schriftname auf. Umgestellt wird diese Einstellung mit kanji-config-updmap aus TeX Live: Es schreibt die Fontmaps (updmap.cfg) um, die dvipdfmx heranzieht, und tauscht die realen Schriften für Mincho und Gothic in einem Schritt. Für alle Benutzenden dient kanji-config-updmap-sys (Administratorrechte nötig), nur für einen selbst kanji-config-updmap-user, wobei die Benutzereinstellung Vorrang hat.

terminal
# show the current setting and the candidates found on this system
kanji-config-updmap-sys status

# switch to Harano Aji (the TeX Live default)
sudo kanji-config-updmap-sys haranoaji

# other examples
sudo kanji-config-updmap-sys ipaex
sudo kanji-config-updmap-sys hiragino-pron

# use the JIS X 0213:2004 glyph shapes
sudo kanji-config-updmap-sys --jis2004 haranoaji

# embed nothing, or auto-detect what is installed
sudo kanji-config-updmap-sys nofont
sudo kanji-config-updmap-sys auto

status listet die aktuelle Einstellung und die im System gefundenen Kandidatenschriften auf. auto sucht nach einer nutzbaren kommerziellen oder freien Schrift, richtet die Einbettung ein und fällt auf Nicht-Einbettung zurück, wenn nichts gefunden wird. --jis2004 wählt die Glyphformen von JIS X 0213:2004 („2004 JIS“); das variant: -04 in der obigen status-Ausgabe ist ein anderer Name für dieselbe Wahl. Wer je Dokument statt je Rechner andere Schriften braucht, kann die Wahl mit dem Paket pxchfon in der Präambel treffen, statt die Systemeinstellung anzurühren.

Wer im Fließtext mehrere Schriften und Gewichte nutzen und auf den größeren Zeichensatz Adobe-Japan1 zugreifen will, lädt Shuzaburo Saitos Paket otf (japanese-otf) – unter upLaTeX wird der Engine ausdrücklich genannt: \usepackage[uplatex]{otf}. Adobe-Japan1 ist die Standard-Glyphsammlung japanischer Schriften und enthält Varianten, Symbole und alte Zeichen, die nicht in JIS X 0208 passen. Zwei Befehle benennen Zeichen direkt: \UTF{...} nimmt einen Unicode-Codepoint (vier- oder fünfstellige Hexzahl), \CID{...} eine Adobe-Japan1-CID-Nummer in Dezimalform. So lässt sich ein schwer eintippbarer Glyph – etwa ein altes Zeichen in einem Personennamen – zuverlässig über den Codewert erzeugen. Unter LuaTeX-ja steht dieselbe Funktion als luatexja-otf bereit.

latex
\UTF{9DD7}\CID{7652}飾区
葛城市、\CID{1481}城駅

Auch die Optionen von otf lohnen sich. deluxe schaltet insgesamt sieben Schriften frei – drei Gewichte Mincho, drei Gothic und ein Maru Gothic – und ergänzt \mgfamily / \textmg{...} für das gerundete Gothic. expert aktiviert Zusatzglyphen wie Satzzeichen für vertikalen Satz und Varianten, jis2004 wählt die Formen von 2004 JIS. Mehrere Gewichte lassen sich nur nutzen, wenn auf der Seite von kanji-config-updmap passende reale Schriften eingerichtet sind. Die japanischen Schriftkodierungen sind übrigens JY3 für den waagerechten und JT3 für den senkrechten Satz.

Mit pdffonts prüfen, ob die Schrift wirklich eingebettet wurde

Übergibt man pdffonts ein PDF, gibt es pro eingebetteter Schrift eine Zeile aus. Drei Spalten zählen: emb steht auf yes, wenn die Schrift eingebettet ist, sub auf yes, wenn eine Teilmenge gebildet wurde (nur die verwendeten Glyphen wurden herausgezogen), und uni vermerkt, ob eine Rückabbildung auf Unicode vorliegt. Zusätzlich ist ein Präfix aus sechs Großbuchstaben wie NWYKMN+ vor dem Schriftnamen das Kennzeichen einer Teilmenge. Auf jedem unter TeX Live 2024 erprobten Weg tauchten diese sechs Buchstaben ausnahmslos auf.

Noch etwas lohnt die messende Bestätigung: Verschiedene Wege führen zum selben Ergebnis. Nimmt man dieselbe jlreq-Quelle, verarbeitet sie einmal über uplatexdvipdfmx und einmal direkt mit lualatex und schaut dann in pdffonts, so ist in beiden Fällen eine Teilmenge von HaranoAjiMincho-Regular eingebettet. Die Wirkung der Teilmengenbildung ist dramatisch: Die ursprüngliche HaranoAjiMincho-Regular.otf misst 6,4 MB, das PDF eines Dokuments mit sieben Zeichen jedoch nur 5.617 Byte. Kurz: Die Sorge, ein japanisches Verteil-PDF könne auf mehrere Megabyte anwachsen, ist unbegründet.

terminal
# same jlreq source, two routes, same embedded font
$ uplatex doc.tex && dvipdfmx doc.dvi && pdffonts doc.pdf
UCCFIG+HaranoAjiMincho-Regular-Identity-H  CID Type 0C  yes yes
KXFDXT+LMRoman9-Regular                    Type 1C      yes yes

$ lualatex doc.tex && pdffonts doc.pdf
NWYKMN+HaranoAjiMincho-Regular             CID Type 0C  yes yes
PNHTXY+LMRoman9-Regular                    CID Type 0C  yes yes

Und schließlich: Diese Prüfung sollte man jedes Mal selbst durchführen. Fast jede Rückmeldung, bei einem japanischen PDF würden „die Zeichen nicht angezeigt“ oder es erscheine „Zeichensalat“, geht auf ein PDF zurück, in das die Schriften nie eingebettet wurden. Eine übrig gebliebene Einstellung kanji-config-updmap-sys nofont oder eine Nicht-Einbetten-Option irgendwo in der Präambel zeigt sich als no in der Spalte emb von pdffonts. Ein einziger pdffonts-Lauf vor der Abgabe beseitigt diese ganze Fehlerklasse.