Mehrere xeCJK-Schriftarten

Mehrere xeCJK-Schriftarten

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:

Bildbeschreibung hier eingeben

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 babelkö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}

Noto-Schriftbeispiel

Dies erfordert XeLaTeX und babel3.27 oder höher. (Bei babel3.22 müssen Sie Script=CJKund manuell einstellen Script=Kana, um einen Fehler zu umgehen.) Ich habe ersetztdie Noto CJK-Schriftarten.

\otherlanguageEine 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 babelJapanisch, 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}

Noto-CJK-Beispiel

Hier habe ich für jede Sprache eine andere Farbe eingestellt, um den Sprachwechsel deutlicher zu machen.

verwandte Informationen