
Considere el siguiente ejemplo mínimo:
\documentclass{article}
\SetMathAlphabet{\mathrm}{normal}{\encodingdefault}{\rmdefault}{m}{n}%
\begin{document}
\parindent0pt
X$\rm -1$\\
X$\rm -1$\\
X$\rm -1$
\end{document}
lo que da como resultado la siguiente salida dvi (Texlive2019):
¿Por qué el menos en la primera línea está espaciado como un operador binario, pero como un operador unario en todas las líneas siguientes?
(Y sé que se supone que no debo usar cambios de fuente de texto simple; este código se reduce para mostrar el problema central y es parte de una hoja de estilo mucho más grande que data de 2008 y debe ser compatible con versiones anteriores, por lo que puedo hacerlo). No omitir el \rm
. Además, los X
s en el ejemplo son solo para mostrar el espaciado, no pertenece al $-1$
).
Respuesta1
Podrías intentar agregar la solución desdehttps://github.com/latex3/latex2e/commit/06692eque resolviówww.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/3357
\documentclass{article}
\usepackage{etoolbox}
\makeatletter
\patchcmd\document@select@group{#1{#4}}{\expandafter#1\ifx\math@bgroup\bgroup{#4}\else#4\fi}{}{\fail}
\makeatother
\SetMathAlphabet{\mathrm}{normal}{\encodingdefault}{\rmdefault}{m}{n}%
\begin{document}
\parindent0pt
X$\rm -1$\\
X$\rm -1$\\
X$\rm -1$
\end{document}