Estoy intentando enviar fuentes de LaTeX a arXiv y encontré algunos problemas. Mi proyecto se encuentra al dorso, donde estoy usando TeX Live 2021 y todo se compila sin errores ni advertencias (excepto en cuadros demasiado llenos o insuficientemente llenos). Sin embargo, cuando intenté procesar los archivos fuente en arXiv, se \MakeUppercase
produjo un error de compilación.
Pude replicar el error.en la zonausando el siguiente fragmento, lo que sugiere que la combinación del bm
paquete y \MakeUppercase
es el problema:
\documentclass{standalone}
\usepackage{amsmath}
\usepackage{bm}
\begin{document}
Test plain: $\bm{x}$.
%replacing \bm by \boldsymbol resolves the issue
Test upper: $\bm{\MakeUppercase{x}}$.
\end{document}
Sin embargo, no pude replicar este problema al dorso (probando TeX Live 2022 y 2023). Después de investigar un poco más, descubrí que mi distribución TeX Live (2023) usa LaTeX2e 2022-11-01, mientras que al dorso usa 2022-06-01. Además, arXiv parece estar usando 2022-11-01.
Mientras miraba a mi alrededor, noté que había algunos cambios en\MakeUppercase
causaronasuntoscon elmicrotype
paquete. Además encontré estoproblema de githubsobre cuestiones relacionadas con el alfabeto griego. No estoy seguro de si estos problemas están relacionados, pero definitivamente parecen relevantes.
este comentarioen el problema de Github parece sugerir que es mejor/más fácil arreglar el código que crear una solución alternativa. Sin embargo, (que yo sepa) no puedo cambiar la versión de LaTeX en los servidores arXiv. Por lo tanto, parece que, después de todo, necesitaré algún tipo de solución alternativa.
Una solución que se me ocurre sería reemplazarlo \usepackage{bm}
por algo como \let\bm\boldsymbol
, pero no estoy seguro de si esto tendría efectos no deseados en la composición tipográfica. ¿Es esta una solución razonable o hay otras opciones que debería considerar para cargar mi proyecto en arXiv?
De manera más general, también me interesaría entender por qué \MakeUppercase
causa tantos problemas recientemente. Por ejemplo, ¿hay una lista de paquetes con los que se sabe que tienen problemas \MakeUppercase
y existe una solución más general?
actualizar: En la versión 2022-11-01, nivel 1 del parche, \MakeUppercase
también falla con \boldsymbol
los siguientes errores:
/home/hoedt/Downloads/tmp/test.tex:10: Undefined control sequence.
\MakeUppercase [#1]#2->\let \kernel@saved@oe
\oe \let \oe \OE \@@text@cas...
l.10 Test upper: $\boldsymbol{\MakeUppercase{x}}
$.
/home/hoedt/Downloads/tmp/test.tex:10: Undefined control sequence.
\MakeUppercase ...#2}\let \oe \kernel@saved@oe
l.10 Test upper: $\boldsymbol{\MakeUppercase{x}}
$.
/home/hoedt/Downloads/tmp/test.tex:10: Extra }, or forgotten $.
\bm@command ...\space \@spaces \@spaces \@spaces }
{LaTeX Warning: Command \p...
l.10 Test upper: $\boldsymbol{\MakeUppercase{x}}
$.
Respuesta1
Se han realizado actualizaciones sobre cómo funciona el cambio de mayúsculas y minúsculas para admitir UTF-8 y babel
/ polyglossia
. Este ha sido un proceso iterativo ya que no se pudo realizar en un solo lugar y en un solo paso. La última versión de LaTeX (01/11/2023) compatible con la versión actualizada expl3
utiliza un enfoque mejorado que no requiere \kernel@saved@oe
: más bien conserva la agrupación "tradicional" en su interior \MakeUppercase
. Como tal, el mejor consejo aquí es actualizar al LaTeX actual o utilizar el latexrelease
mecanismo para parchear un kernel más antiguo para lograr el mismo efecto.
Respuesta2
egreg ha proporcionado una solución bastante buena en unrespuestaa otra pregunta mía.
Es posible definir un nuevo comando \ToUppercase
usando el lenguaje de codificación LaTeX3:
\ExplSyntaxOn
\cs_new_eq:NN \ToUppercase \text_uppercase:n
\ExplSyntaxOff
Este comando no causa problemas cuando se usa con \boldsymbol
o \bm
y me permite compilar mis documentos. No estoy seguro de si existen diferencias (sutiles) \MakeUppercase
, pero parece funcionar bastante bien para mi caso de uso.