Al procesar el archivo simple:
\documentclass{report}
\begin{document}
1234567890
$1234567890$
\end{document}
con pdflatex
uno obtiene un PDF con una sola fuente (CMR10), pero al procesar con cualquiera de los dos xelatex
o lualatex
el PDF producido use Latin Modern Roman 10 fuera del modo matemático y CMR10 adentro.
¿Cuáles son las razones detrás de esto?
Respuesta1
Desde TeX Live 2018, LaTeX ahora es UTF-8 de forma predeterminada, porque la “revolución Unicode” se ha completado 1 . Esto hace que sea superfluo agregarlo \usepackage[utf8]{inputenc}
cuando se usa pdfLaTeX.
Sin embargo, la compatibilidad con UTF-8 en pdfLaTeX es falsa y no se puede esperar obtener un resultado significativo cuando se pegan caracteres UTF-8 arbitrarios en la entrada, porque el motor pdfTeX subyacente está inherentemente limitado a la codificación de 8 bits.
Esto es bastante diferente con Xe/LuaTeX. Estos motores admiten UTF-8 de forma predeterminada 2 . Las fuentes TeX tradicionales son muy limitadas en cuanto a los glifos que ofrecen 3 . Definitivamente esto no es suficiente para describir UTF-8, por lo que la fuente también debe cubrir todo el rango UTF-8 4 . Para ello se introdujo la codificación TU.
De forma predeterminada, LaTeX carga la familia de fuentes Computer Modern (CM). La fuente CMR10 no está disponible en codificación TU (y nunca lo estará), por lo que en su lugar se carga su pariente más cercano Latin Modern Roman 10.
Ahora queda la pregunta: ¿por qué no se utiliza el latín moderno en modo matemático? Esto se debe a que en el modo matemático las cosas son un poco más complicadas. La configuración tradicional era tener diferentes familias y comandos como \mathbf
,, \mathcal
etc. cambiados a una familia diferente. Esto ya no es posible en Unicode, porque todos los símbolos provienen de una única fuente. Por lo tanto, el enfoque de cambio de familia ya no funciona y debe ser reemplazado por un sistema mucho más complejo que intercambia códigos matemáticos de un lado a otro. Esto se implementa en el unicode-math
paquete. También notarás por qué esto es problemático porque con el unicode-math
paquete TeX de repente es mucho más lento debido a que tienes que reasignar miles de códigos matemáticos todo el tiempo. Es por eso que actualmente se conserva la codificación OML/OMS estándar.
1 Hoy en día, todo el mundo almacena sus archivos en UTF-8 y la mayoría del software entiende UTF-8. Basta pensar en los emojies (están por todas partes). Son parte de UTF-8, por lo que todo lo que pueda mostrar Emojies debe ser compatible con UTF-8.
2 de hecho, LuaTeX rechazará su archivo si no es UTF-8
3 La codificación T1 solo puede codificar 256 glifos
4 si la fuente tiene el glifo requerido es otra cuestión
Respuesta2
La configuración de fuentes para texto y matemáticas son tareas bastante separadas en TeX: las fuentes de texto deben preocuparse por cosas como caracteres acentuados y guiones, las fuentes matemáticas por muchos símbolos y la ubicación correcta de sup y superíndices.
Su ejemplo utiliza solo unos pocos glifos que en pdftex se pueden tomar de la misma fuente. Pero si agrega, por ejemplo, un signo menos (-) o caracteres (abc), las fuentes utilizadas serán diferentes dentro y fuera de las matemáticas. Y si cambia a la codificación T1 recomendada para el texto, \usepackage[T1]{fontenc}
habrá incluso diferencias para los números.
Para los motores Unicode existe una diferencia incluso en la configuración predeterminada, ya que el uso de una fuente Unicode como fuente de texto es más o menos obligatorio para obtener caracteres acentuados y separación de palabras correcta (ver, por ejemplo,https://tex.stackexchange.com/a/470987/2388). Entonces, a principios de 2017, el kernel LaTeX cambió el valor predeterminado para estos motores para que los usuarios ya no se vieran obligados a cargar fontspec.
En matemáticas, la separación de palabras y los caracteres acentuados no son realmente relevantes, por lo que la configuración matemática heredada se encuentra en el motor Unicode. Pero incluso si se cambia la configuración matemática para usar una fuente Unicode, no sería la misma que la fuente de texto, pero, por ejemplo, las matemáticas latinas modernas.