![Mehrere xeCJK-Schriftarten](https://rvso.com/image/392334/Mehrere%20xeCJK-Schriftarten.png)
Ich habe meine Hauptschriftart für xeCJK auf HanWangMingMedium eingestellt, damit ich auf die Zeichen im alten Stil zugreifen kann. Dadurch habe ich jedoch keinen Zugriff mehr auf japanische Kana: Im MWE werden die Katakana als Leerzeichen angezeigt:
Die Standardschriftart xeCJK verursacht dieses Problem nicht, bietet mir aber bestimmte Zeichen nicht, die ich brauche (wie 烝). Wie ändere ich die xeCJK-Schriftart im Hauptteil des Dokuments und wie heißt die Standardschriftart xeCJK?
Möglicherweise relevant für eine Antwort: Ich schreibe über Schriftsysteme. Ich brauche also nur einzelne Zeichen. Ich habe keine langen Abschnitte mit chinesischem Text.
% !TEX encoding = UTF-8 Unicode
\documentclass{article}
\usepackage{fontspec}
\usepackage{xeCJK}
\setCJKmainfont{HanWangMingMedium}
\begin{document}
東風フォント
\end{document}
Update. Hier ist ein Hack: Tun Sie so, als wäre die alternative Schriftart die serifenlose Variante. Aber ich hätte trotzdem gerne eine richtige Lösung.
% !TEX encoding = UTF-8 Unicode
\documentclass{article}
\usepackage{fontspec}
\usepackage{xeCJK}
\setCJKmainfont{HanWangMingMedium}
\setCJKsansfont{AozoraMinchoRegular}
\begin{document}
東風\sf フォント.
\end{document}
Antwort1
In babel
können Sie zwischen verschiedenen ideografischen Alphabeten wechseln, darunter Japanisch und traditionelles Chinesisch:
\documentclass{standalone} % Replace with the real class.
\usepackage[english]{babel}
\usepackage{fontspec}
% A bug in Babel 3.22 requires setting the script= option to CJK and Kana,
% respectively.
\babelprovide{chinese-traditional}
\babelprovide{japanese}
\defaultfontfeatures{Scale = MatchUppercase}
\babelfont{rm}[Scale = 1.0,
Ligatures = {Common, TeX},
Language = Default
]{Latin Modern Roman}
\babelfont{sf}[Ligatures = {Common, TeX},
Language = Default]{Latin Modern Sans}
\babelfont[chinese-traditional]{rm}{NotoSerifCJKtc-Regular}
\babelfont[chinese-traditional]{sf}{NotoSansCJKtc-Regular}
\babelfont[japanese]{rm}{NotoSerifCJKjp-Regular}
\babelfont[japanese]{sf}{NotoSansCJKjp-Regular}
\begin{document}
\otherlanguage{chinese-traditional}{東風}
\otherlanguage{japanese}{フォント}
\end{document}
Dies erfordert XeLaTeX und babel
3.27 oder höher. (Bei babel
3.22 müssen Sie Script=CJK
und manuell einstellen Script=Kana
, um einen Fehler zu umgehen.) Ich habe ersetztdie Noto CJK-Schriftarten.
\otherlanguage
Eine einfachere Alternative zu Babel, bei der Sie nicht überall herumschreiben müssen, wäre ucharclasses
. Sie können auch ein deklarieren \newfontfamily
, ihm die [Script = Kana, Language = Japanese]
Optionen zuweisen und das auswählen.
Aktualisieren
Ab 2021 ist es möglich, in LuaLaTeX 1.12 oder höher mehrere ideografische Skripte zu verwenden. Theoretisch können Sie Ihr Dokument so einrichten, dass es ohne Tagging zwischen den Sprachen wechselt. In der Praxis funktioniert dies für Chinesisch und Japanisch nicht zuverlässig, da das Unicode-Konsortium beschlossen hat, für Kanji und Chinesisch dieselben Codepunkte zu verwenden. (Die Erbsünde von Unicode bestand darin, zu glauben, sie könnten alles in 16 Bit packen.)
Wenn wir in diesem speziellen Beispiel als Japanisch nur Hirigana und Katakana benötigen und alle ideografischen Zeichen chinesisch sind, können wir babel
Japanisch, Chinesisch und Englisch korrekt erkennen:
\documentclass{standalone} % Replace with the real class.
\usepackage[english]{babel}
\usepackage[svgnames, HTML]{xcolor}
\usepackage{fontspec}
% A bug in Babel 3.22 requires setting the script= option to CJK and Kana,
% respectively.
\babelprovide[import, onchar=ids fonts]{japanese}
\babelprovide[import, onchar=ids fonts]{chinese-traditional}
\defaultfontfeatures{ Scale = MatchUppercase,
Ligatures=TeX }
\babelfont{rm}
[Scale = 1.0,
Ligatures = Common,
Language = Default
]{Latin Modern Roman}
\babelfont{sf}
[Ligatures = Common,
Language = Default
]{Latin Modern Sans}
\babelfont[chinese-traditional]{rm}
[Renderer=HarfBuzz, Color=DarkGreen]{NotoSerifCJKtc-Regular}
\babelfont[chinese-traditional]{sf}
[Renderer=HarfBuzz, Color=DarkGreen]{NotoSansCJKtc-Regular}
\babelfont[japanese]{rm}
[Renderer=HarfBuzz, Color=NavyBlue]{NotoSerifCJKjp-Regular}
\babelfont[japanese]{sf}
[Renderer=HarfBuzz, Color=NavyBlue]{NotoSansCJKjp-Regular}
\begin{document}
東風
\textsf{フォント}
\end{document}
Hier habe ich für jede Sprache eine andere Farbe eingestellt, um den Sprachwechsel deutlicher zu machen.