
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:
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}
Esto requiere XeLaTeX y babel
3.27 o superior. (Con babel
3.22, debes configurar manualmente Script=CJK
y Script=Kana
solucionar un error).las fuentes Noto CJK.
Una opción más sencilla para Babel que no requiere que escribas \otherlanguage
por 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 babel
detectar 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}
Aquí, configuro cada idioma en un color diferente para que el cambio de idioma sea más obvio.