Fuentes japonesas

Compón el carácter 漢 en Harano Aji Mincho, Hiragino Mincho ProN e IPAex Mincho, mide la anchura y los tres dan exactamente 10,0 pt: un cuadratín de ancho completo a 10 pt. Por eso sustituir una fuente japonesa nunca recompone una línea, al revés que en texto latino, donde cambiar de tipografía cambia la medida. La pregunta real al elegir una fuente japonesa en LaTeX no es, pues, qué aspecto tiene, sino si la fuente está realmente presente en la máquina del otro y si queda incrustada en el PDF. Esta página determina por medición qué fuentes japonesas trae con seguridad TeX Live 2024, y luego cubre cómo nombrarlas bajo LuaLaTeX, XeLaTeX y (u)pLaTeX, y cómo confirmar la incrustación con pdffonts.

Qué fuentes japonesas están garantizadas en TeX Live

Solo tres líneas vienen con TeX Live —Harano Aji, IPA e IPAex— y ni Noto CJK ni Source Han están entre ellas. No es una suposición: es lo que imprime kanji-config-updmap-sys status. Ejecútalo en TeX Live 2024 y comunica haranoaji como configuración actual y enumera haranoaji, ipa e ipaex como familias en espera. Fuentes comerciales como Hiragino o Morisawa pueden usarse si están instaladas en el sistema, pero TeX Live no las distribuye.

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.

Esa frontera rompe documentos de verdad. Un archivo mínimo escrito con \usepackage[noto]{luatexja-preset}, pasado por LuaLaTeX, se detuvo en ! Package fontspec Error: The font "NotoSerifCJKJPRegular" cannot be found.: el nombre del preset existe, pero sin la fuente real la cosa acaba ahí. Por tanto, para un manuscrito que entregas a un coautor o a una revista, indicar haranoaji (o ipaex) es la única opción segura. Para usar Noto CJK o Source Han hay que instalar la fuente aparte y comunicar ese requisito a la otra parte.

FuenteOrigen¿Viene con TeX Live 2024?
Harano AjiFuente libre de Masamichi Hosoda, que renumera los CID de Source Han a Adobe-Japan1Sí — la predeterminada; 7 pesos de Mincho y 7 de Gothic, repartidos entre haranoaji y haranoaji-extra
IPAexFuente libre distribuida por la agencia japonesa IPASí — ipaexm.ttf (Mincho) e ipaexg.ttf (Gothic); predeterminada antes de TeX Live 2020
Noto CJK / Source HanFuentes pan-CJK de código abierto publicadas por Google y AdobeNo — solo se distribuyen los mapas de fuentes; las fuentes hay que instalarlas aparte
HiraginoCaras comerciales incluidas con macOSNo — solo disponibles en macOS, se invocan con presets como hiragino-pron
MorisawaCaras comerciales de Morisawa, estándar de la impresión comercialNo — hay que comprar licencia; existen presets como morisawa-pr6n

Mincho y Gothic: cambiar con \textmc y \textgt

La composición japonesa se mueve sobre dos tipografías. Mincho tiene horizontales finas, verticales gruesas y pequeños remates triangulares al final de los trazos —los uroko, «escamas»—, lo que la hace contraparte de una serif occidental, y lleva el cuerpo del texto. Gothic tiene trazos de peso casi uniforme y sin remates, contraparte de una sans serif, y encaja en títulos, énfasis, pies y etiquetas de figuras y tablas. El cambio sigue las convenciones de los comandos de fuentes occidentales: los declarativos \mcfamily / \gtfamily y los de ámbito de argumento \textmc{...} / \textgt{...}. Aquí mc abrevia mincho y gt abrevia gothic.

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

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

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

Aquí es donde el japonés se aparta decisivamente del latino: el tratamiento de la negrita. El Mincho japonés no tiene peso negrita por defecto, así que \bfseries y \textbf{} se redirigen en la práctica a un cambio a Gothic (incluso los valores por defecto de LuaTeX-ja apuntan la serie negrita de ambas familias al medium de Gothic). El japonés tampoco tiene esencialmente noción de itálica u oblicua, de modo que no se proporcionan glifos inclinados al estilo occidental. \textmc y \textgt mueven solo la familia; el peso (series) y la forma (shape) son independientes. Algunas clases y paquetes pueden configurarse para que \rmfamily / \sffamily cambien también Mincho / Gothic — en LuaTeX-ja, la opción match de luatexja-fontspec.

Más allá de estas dos existen los estilos de pincel. Kaisho es la escritura de pincel regular «en bloque», trazo a trazo levantando el pincel; Gyosho es la semicursiva fluida, con trazos unidos y algo abreviados. Aparecen en certificados, discursos formales e invitaciones, donde se busca un aire tradicional. También está Maru Gothic, la Gothic redondeada, accesible con \mgfamily / \textmg{...}. Pero pocas fuentes contienen realmente una Gothic redondeada, y Harano Aji no la tiene: incluso con la opción deluxe que se ve más abajo, lo que se incrusta son solo Mincho y Gothic. Para artículos y libros cotidianos, esas dos siguen siendo las importantes.

Harano Aji: Source Han renumerada a Adobe-Japan1

Harano Aji es Source Han (Source Han Serif y Source Han Sans) con sus CID renumerados a Adobe-Japan1. El README que la acompaña lo dice en una frase: las fuentes se obtuvieron sustituyendo los CID de Adobe-Identity-0 (AI0) por CID de Adobe-Japan1 (AJ1). Ahí está la clave: no es «otra fuente de aspecto parecido» sino una renumeración. El mundo de (u)pLaTeX y dvipdfmx llama a los caracteres por número de CID, así que una fuente no numerada en Adobe-Japan1 no puede subirse al flujo de trabajo tradicional. Justo por eso Noto CJK no podía convertirse sin más en la predeterminada.

El autor es Masamichi Hosoda. Según el README hay 14 fuentes en total —siete pesos de Mincho y siete de Gothic— y TeX Live las reparte en dos paquetes. haranoaji contiene las siete que usan los presets (Mincho Light, Regular, Bold; Gothic Regular, Medium, Bold, Heavy), y haranoaji-extra las otras siete (Mincho ExtraLight, Medium, SemiBold, Heavy; Gothic ExtraLight, Light, Normal). Un ls sobre ambos directorios muestra ese reparto tal cual, en forma de archivos.

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

El Mincho del cuerpo apunta por defecto a HaranoAjiMincho-Regular y el Gothic a HaranoAjiGothic-Medium. El argumento práctico a favor de Harano Aji no es solo la calidad: el PDF resultante es un orden de magnitud menor que el mismo texto compuesto en IPAex. En un documento de apenas siete caracteres, el PDF de Harano Aji ocupó 5.617 bytes y el de IPAex 155.880 bytes. pdffonts los reporta como CID Type 0C (Harano Aji, OpenType/CFF) y CID TrueType (IPAex), respectivamente. Los archivos de fuente de partida pesan 6,4 MB y 7,8 MB —prácticamente lo mismo—, así que la diferencia no viene de la tipografía sino del formato y de lo eficiente que sea el subconjunto.

Nombrar fuentes en LuaLaTeX y XeLaTeX: luatexja-preset y zxjafont

En un motor Unicode, lo más corto es pasar un nombre de preset a luatexja-preset, parte de LuaTeX-ja (luatexja), en LuaLaTeX o zxjafont en XeLaTeX. Cualquiera de los dos establece el emparejamiento «Mincho es esto, Gothic es aquello» con una sola palabra. Los nombres de preset coinciden en gran medida: están definidos haranoaji, ipa/ipaex, hiragino-pro/hiragino-pron, noto/noto-otc, sourcehan, ms, yu-win10, morisawa-pr6n, kozuka-pr6n y más. Medido aquí, un documento con \usepackage[haranoaji]{zxjafont} compiló sin problemas bajo XeLaTeX e incrustó un subconjunto de HaranoAjiMincho-Regular.

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}

Añadir la opción deluxe permite usar varios pesos de Mincho y Gothic dentro del cuerpo. Medido, el PDF de \usepackage[haranoaji,deluxe]{luatexja-preset} incrustó cuatro fuentes: HaranoAjiMincho-Regular, HaranoAjiMincho-Bold, HaranoAjiGothic-Regular y HaranoAjiGothic-Medium. Ten en cuenta que las clases ltjs*, como ltjsarticle, componen el japonés algo más pequeño que el texto latino: el mensaje Package luatexja-preset Warning: Japanese fonts will be scaled by 0.924715. durante la compilación es justo eso, y es por diseño, no un problema.

Para nombrar una fuente directamente en vez de usar un preset, carga luatexja-fontspec en LuaLaTeX. Sus comandos son el reflejo de fontspec: \setmainjfont (Mincho, la cara del cuerpo), \setsansjfont (Gothic), \setmonojfont (monoespaciada), \newjfontfamily, y \jfontspec para un uso puntual. Las opciones se escriben igual que en fontspecScale=, Path=, etc.— así que lo que sabes del lado latino se traslada. Puedes dar un nombre de tipografía o un nombre de archivo, y para colaborar el nombre de archivo (HaranoAjiMincho-Regular.otf) es la forma más fiable.

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}

Nombrar fuentes en (u)pLaTeX + dvipdfmx: kanji-config-updmap y el paquete otf

En el (u)pLaTeX tradicional, lo que se incrusta lo decide una configuración del sistema, no el documento. Las métricas (anchuras de caracteres) de las fuentes japonesas usadas para componer están fijadas virtualmente y en el fuente no aparece ningún nombre de fuente real. La herramienta que cambia esa configuración es kanji-config-updmap, incluida en TeX Live: reescribe los mapas de fuentes (updmap.cfg) que consulta dvipdfmx y sustituye de una vez las fuentes reales de Mincho y Gothic. Para todos los usuarios, kanji-config-updmap-sys (requiere permisos de administrador); solo para ti, kanji-config-updmap-user, donde la configuración de usuario tiene prioridad.

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 enumera la configuración actual y las fuentes candidatas encontradas en el sistema. auto busca una fuente comercial o libre utilizable, la prepara para incrustarla y vuelve a no incrustar si no encuentra ninguna. --jis2004 selecciona las formas de glifo JIS X 0213:2004 («2004 JIS»); el variant: -04 de la salida de status anterior es otro nombre para esa misma elección. Si necesitas fuentes distintas por documento y no por máquina, el paquete pxchfon permite hacer esa elección desde el preámbulo sin tocar la configuración del sistema.

Para usar varias tipografías y pesos en el cuerpo y alcanzar el conjunto de caracteres ampliado Adobe-Japan1, carga el paquete otf (japanese-otf) de Shuzaburo Saito; bajo upLaTeX, nombra el motor explícitamente: \usepackage[uplatex]{otf}. Adobe-Japan1 es la colección estándar de glifos de las fuentes japonesas e incluye variantes, símbolos y caracteres antiguos que no caben en JIS X 0208. Dos comandos nombran caracteres directamente: \UTF{...} toma un punto de código Unicode (hexadecimal de cuatro o cinco dígitos) y \CID{...} toma un número CID de Adobe-Japan1 en decimal. Así, un glifo difícil de teclear —un carácter antiguo en un nombre personal, por ejemplo— puede producirse de forma fiable por su valor de código. La misma funcionalidad existe en LuaTeX-ja como luatexja-otf.

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

Las opciones de otf también conviene conocerlas. deluxe desbloquea siete caras en total —tres pesos de Mincho, tres de Gothic y una Maru Gothic— y añade \mgfamily / \textmg{...} para la Gothic redondeada. expert habilita glifos extra como puntuación para escritura vertical y variantes, y jis2004 selecciona las formas 2004 JIS. Usar de verdad varios pesos exige que haya fuentes reales correspondientes configuradas del lado de kanji-config-updmap. Las codificaciones de fuentes japonesas son, por cierto, JY3 para la escritura horizontal y JT3 para la vertical.

Confirmar con pdffonts que la fuente quedó realmente incrustada

Pasa un PDF a pdffonts y mostrará una línea por fuente incrustada. Importan tres columnas: emb dice yes cuando la fuente está incrustada, sub dice yes cuando se extrajo un subconjunto (solo los glifos usados) y uni registra si hay correspondencia inversa a Unicode. Además, un prefijo de seis mayúsculas como NWYKMN+ delante del nombre de la fuente es la marca de un subconjunto. En todas las rutas probadas con TeX Live 2024, esas seis letras aparecieron siempre.

Una cosa más merece confirmación medida: rutas distintas dan el mismo resultado. Toma el mismo fuente jlreq, procésalo una vez por uplatexdvipdfmx y otra directamente con lualatex, y mira pdffonts: ambos incrustaron un subconjunto de HaranoAjiMincho-Regular. El efecto del subconjunto es espectacular: el HaranoAjiMincho-Regular.otf original pesa 6,4 MB, mientras que el PDF de un documento de siete caracteres ocupa solo 5.617 bytes. En resumen, apenas hay motivo para temer que un PDF japonés destinado a distribución se hinche hasta varios megabytes.

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

Por último, haz tú mismo esta comprobación, siempre. Casi todos los avisos de «los caracteres no salen» o «se ve como basura» en un PDF japonés se remontan a un PDF en el que nunca se incrustaron las fuentes. Una configuración kanji-config-updmap-sys nofont que quedó puesta, o una opción de no incrustar en algún punto del preámbulo, aparece como no en la columna emb de pdffonts. Una sola pasada de pdffonts antes de entregar elimina toda esta categoría de accidentes.