La familia pTeX es un linaje de motores TeX creados para la composición tipográfica japonesa. Comienza con pTeX de ASCII Corporation, continúa a través de upTeX compatible con Unicode, e-pTeX / e-upTeX fusionado con e-TeX y el modernizador pTeX-ng**. Esta línea ha realizado el trabajo que pdfTeX de orientación europea no puede hacer: escritura vertical, salto de línea kinsoku y métricas de fuentes japonesas.
El panorama general en una línea: el oleoducto japonés moderno estándar es uplatex (el motor e-upTeX en su interior) → dvipdfmx → PDF. La ruta ordinaria pTeX / upTeX / e-upTeX emite DVI, no PDF, la diferencia decisiva con pdfTeX y LuaTeX, que emiten PDF directamente. Los cuatro motores siguen a continuación uno por uno.
pTeX (ASCII pTeX)
pTeX (publicación TeX, también “ASCII pTeX”) es el motor que ASCII Corporation construyó para hacer que un TeX japonés fuera apto para publicaciones comerciales. Plain TeX fue diseñado para configurar glifos europeos un byte a la vez y carece por completo de las reglas de composición tipográfica japonesa. pTeX tejió la maquinaria de bajo nivel necesaria para configurar el japonés directamente en las partes internas de TeX.
Para ello es fundamental la noción de dirección de escritura. pTeX maneja escritura vertical (\tate) y escritura horizontal (\yoko) en el nivel del motor, por lo que el mismo texto del cuerpo se puede configurar de cualquier manera. Esto era indispensable para las publicaciones japonesas (novelas, periódicos, libros de texto) donde la configuración vertical es la norma.
JFM (métrica de fuente japonesa) sustenta el espaciado japonés y la composición de líneas. Separado del TFM europeo, registra el ancho, alto y profundidad de los glifos japoneses y el espacio (pegamento/kern) que pertenece entre los caracteres. Con él, pTeX distingue automáticamente las formas de ancho completo y medio ancho, inserta los espacios correctos alrededor de la puntuación y proporciona el espacio entre el texto japonés y occidental (el espacio de un cuarto de em) donde se unen las dos escrituras.
pTeX también realiza kinsoku japonés (prohibición de salto de línea) dentro del motor: los caracteres que no pueden comenzar una línea (、。」 …) o terminar una (「( …) se empujan hacia adelante o hacia atrás mediante ajustes finos en el espaciado. Ruby (leer glosas) en sí es tarea de macros y paquetes, pero la ubicación precisa de los caracteres en la que se apoya la proporciona pTeX. Ninguna de estas reglas existe en pdfTeX europeo, que es exactamente la razón por la que se necesita un motor dedicado.
El punto débil de pTeX era la codificación de caracteres. Su código interno era EUC-JP o Shift_JIS (elegido mediante -kanji-internal), y la entrada asumía codificaciones heredadas: JIS, Shift_JIS, EUC. Los kanji que podía manejar estaban esencialmente vinculados al rango JIS, por lo que los caracteres fuera de JIS y CJK multilingües eran incómodos. El formato que coloca a LaTeX en la cima del motor pTeX es platex (pLaTeX), que durante mucho tiempo fue el estándar para los periódicos japoneses.
upTeX (Unicode pTeX)
upTeX (Unicode pTeX) es el motor que Takuji Tanaka ha desarrollado desde 2007, reestructurando pTeX alrededor de Unicode internamente. Su entrada, salida y procesamiento interno se basan en UTF-8/Unicode, liberándolo de los límites de codificación que eran el mayor dolor de cabeza de pTeX.
Como resultado, maneja una gama mucho más amplia de kanji que el cuadro JIS y puede configurar múltiples scripts CJK a la vez, no solo japonés sino también chino (simplificado y tradicional) y coreano (Hangul). upTeX clasifica los caracteres por tipo (kanji, kana, Hangul, símbolos CJK,…) hasta \kcatcode, lo que brinda un control preciso sobre qué rango se trata como texto japonés.
En la práctica, esta libertad de problemas de codificación fue decisiva. El formato que coloca LaTeX en upTeX es uplatex (upLaTeX), y gran parte del trabajo japonés moderno se ha trasladado a él desde pLaTeX. La compatibilidad con pTeX es alta, por lo que la mayoría de los recursos de la era pLaTeX se mantienen casi sin cambios.
e-pTeX / e-upTeX
e-pTeX es pTeX fusionado con las extensiones e-TeX; e-upTeX es upTeX fusionado con ellos (e-upTeX llegó en 2008). e-TeX es una implementación extendida de TeX que agrega aritmética como \numexpr, \protected, la base para la composición tipográfica bidireccional y un conjunto más grande de registros. Muchos paquetes LaTeX modernos asumen estas características de e-TeX, por lo que la extensión también es indispensable en configuraciones japonesas.
Este es el punto práctico más importante. Históricamente, platex se ejecutaba en e-pTeX y uplatex en e-upTeX, pero desde TeX Live 2023, pLaTeX pasó a una configuración basada en e-upTeX preservando la compatibilidad. Entonces, cuando hoy se dice pLaTeX o upLaTeX, la base práctica no es pTeX/upTeX puro, sino un motor e-TeX extendido y compatible con Unicode.
El mantenimiento actual lo realiza la Comunidad de desarrollo japonesa TeX (texjporg), que mantiene los motores, formatos y JFM de la familia pTeX en reparación continua.
Un ejemplo mínimo de upLaTeX
Aquí hay un documento japonés mínimo para upLaTeX. \documentclass{ujarticle} es la clase de escritura horizontal de upLaTeX (use utarticle para vertical; la clase jlreq es una buena opción moderna). Guarde la fuente como UTF-8.
\documentclass{ujarticle}
\begin{document}
こんにちは、\LaTeX。日本語が美しく組めます。
数式も書けます: \[ E = mc^2 \]
\end{document}La compilación requiere dos etapas. Primero, uplatex procesa .tex en un DVI; luego dvipdfmx convierte DVI en PDF. La familia pTeX no emite PDF directamente, por lo que este paso dvipdfmx siempre es necesario (y uplatex normalmente se ejecuta dos veces para que las referencias cruzadas y la tabla de contenido se resuelvan).
$ uplatex document.tex
$ dvipdfmx document.dvi
# => document.pdfpTeX-ng (nueva generación / asiático pTeX)
pTeX-ng (“ng” = nueva generación) es un esfuerzo de reimplementación relativamente reciente realizado por Clerk Ma, también conocido por su nombre de comando ApTeX (asiático pTeX). Su objetivo es modernizar el linaje pTeX, admitiendo todas las primitivas e-TeX, pTeX y upTeX para seguir siendo altamente compatible con e-upTeX mientras extiende sus componentes internos a Unicode (hasta 0x10FFFF).
Lo que destaca técnicamente es la salida directa PDF. pTeX-ng incorpora libdpx, una forma de biblioteca de dvipdfmx, como su backend de salida, realizando saltos de página y salida de caracteres a través de llamadas directas a las funciones C de libdpx, por lo que puede producir PDF sin ejecutar dvipdfmx por separado. Dicho esto, pTeX-ng es más experimental y menos implementado que e-upTeX. Para la composición tipográfica japonesa cotidiana, el valor predeterminado sigue siendo e-upTeX (uplatex).
Los motores comparados
Alineando los cuatro motores por codificación interna, si incluyen las extensiones e-TeX y el formato que se ejecuta en cada uno:
| motor | Codificación interna | e-TeX | Formato predeterminado |
|---|---|---|---|
pTeX | EUC / Shift_JIS | No | pLaTeX (heredado) |
upTeX | Unicode (UTF-8) | No | upLaTeX (heredado) |
e-pTeX | EUC / Shift_JIS | si | pLaTeX (base de tiempo de ejecución anterior) |
e-upTeX | Unicode (UTF-8) | si | Tiempo de ejecución de compatibilidad upLaTeX (actual) y pLaTeX |
pTeX-ng / ApTeX | Unicode (a 0x10FFFF) | si | compatible con e-upTeX |
En los registros actuales de TeX Live, incluso platex puede comenzar con un banner como This is e-upTeX .... Eso no significa que pLaTeX haya desaparecido; significa que se está utilizando un único tiempo de ejecución e-upTeX para ejecutar el comportamiento compatible con pLaTeX o el formato upLaTeX. Al informar un problema, incluya el nombre del comando (platex / uplatex), la primera línea del encabezado del registro y la codificación del archivo fuente juntos.
Dónde se encuentra entre las rutas japonesas
Hay tres rutas generales para los japoneses hoy en día: la familia pTeX (uplatex → dvipdfmx, esta página); la ruta LuaTeX (LuaTeX con LuaTeX-ja — PDF directo, fuentes del sistema, extensibilidad Lua); y la ruta XeTeX (XeTeX con xeCJK — directo PDF, fuentes del sistema).
- Salida. La familia pTeX emite DVI (necesita
dvipdfmxpara convertirse en PDF). pdfTeX, LuaTeX y XeTeX emiten PDF directamente. - Fuentes. La familia pTeX se basa tradicionalmente en JFM; LuaTeX-ja y XeTeX le permiten nombrar las fuentes OpenType del sistema directamente.
- Velocidad y trayectoria. La familia pTeX (e-upTeX) es rápida, madura y tiene un largo historial de calidad tipográfica japonesa.
- Empezar de nuevo. Si valora Unicode, las fuentes del sistema y la preparación para el futuro, LuaLaTeX (LuaTeX-ja) es una buena alternativa.
En resumen: para artículos japoneses estables y probados, e-upTeX (uplatex) → dvipdfmx; para fuentes de sistema y maquinaria moderna, LuaLaTeX: ese es el punto de asentamiento actual. El motor a elegir se explica en detalle en la página "Elección de un motor".
Una tesis por defecto segura
Para una nueva tesis o informe japonés, en ausencia de una plantilla requerida, comience desde la fuente UTF-8, uplatex, dvipdfmx y jlreq o la clase proporcionada por la universidad. Si una plantilla existente asume platex, no la reescribas sólo por moda; Siga el procedimiento de construcción de la plantilla. La clave es mantener la clase en la parte superior, los comandos de compilación y los comandos de bibliografía/índice en la misma ruta.
- Si no aparece PDF, primero verifique si existe
.dvi. Si es así, la falla está en el ladodvipdfmx. - Mojibake se debe depurar verificando el código fuente de UTF-8, si la clase tiene como destino pLaTeX/upLaTeX y la codificación de guardado del editor.
- Si necesita elección de fuente libre, no fuerce la ruta pTeX; considere LuaLaTeX con LuaTeX-ja.