Múltiples fuentes xeCJK

Múltiples fuentes xeCJK

Configuré mi fuente principal para xeCJK en HanWangMingMedium, para poder acceder a caracteres de estilo antiguo. Pero, como resultado, ya no tengo acceso al kana japonés: en el MWE, el katakana aparece como un espacio en blanco:

ingrese la descripción de la imagen aquí

La fuente xeCJK predeterminada no crea este problema, pero no me proporciona ciertos caracteres que necesito (como 烝). ¿Cómo cambio las fuentes xeCJK dentro del cuerpo del documento y cómo se llama la fuente xeCJK predeterminada?

Posiblemente relevante para una respuesta: estoy escribiendo sobre sistemas de escritura. Entonces, sólo necesito personajes aislados. No tengo secciones largas de texto chino.

% !TEX encoding = UTF-8 Unicode
\documentclass{article}
\usepackage{fontspec}
\usepackage{xeCJK}
   \setCJKmainfont{HanWangMingMedium}
\begin{document}

東風フォント

\end{document}

Actualizar. Aquí tienes un truco: imagina que la fuente alternativa es la variante sans serif. Pero todavía me gustaría una solución adecuada.

% !TEX encoding = UTF-8 Unicode
\documentclass{article}
\usepackage{fontspec}
\usepackage{xeCJK}
   \setCJKmainfont{HanWangMingMedium}
   \setCJKsansfont{AozoraMinchoRegular}

\begin{document}

東風\sf フォント.

\end{document}

Respuesta1

En babel, puedes cambiar entre diferentes alfabetos ideográficos, incluidos el japonés y el chino tradicional:

\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}

Muestra de fuente Noto

Esto requiere XeLaTeX y babel3.27 o superior. (Con babel3.22, debes configurar manualmente Script=CJKy Script=Kanasolucionar un error).las fuentes Noto CJK.

Una opción más sencilla para Babel que no requiere que escribas \otherlanguagepor todos lados sería ucharclasses. También puedes declarar un \newfontfamily, darle las [Script = Kana, Language = Japanese]opciones y seleccionarlo.

Actualizar

A partir de 2021, es posible utilizar varios scripts ideográficos en LuaLaTeX 1.12 o posterior. En teoría, puede configurar su documento para cambiar entre idiomas sin etiquetar. En la práctica, esto no funciona de manera confiable para chino y japonés, porque el Consorcio Unicode optó por usar los mismos puntos de código para kanji y chino. (El pecado original de Unicode fue pensar que podían encajar todo en 16 bits).

En este ejemplo específico, si el único japonés que necesitamos es Hirigana y Katakana, y todos los caracteres ideográficos son chinos, podemos babeldetectar correctamente el japonés, el chino y el inglés:

\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}

Muestra de Noto CJK

Aquí, configuro cada idioma en un color diferente para que el cambio de idioma sea más obvio.

información relacionada