\SetMathAlphabet bringt \rm durcheinander

\SetMathAlphabet bringt \rm durcheinander

Bitte beachten Sie das folgende Minimalbeispiel:

\documentclass{article}
\SetMathAlphabet{\mathrm}{normal}{\encodingdefault}{\rmdefault}{m}{n}%

\begin{document}
\parindent0pt
X$\rm -1$\\
X$\rm -1$\\
X$\rm -1$

\end{document}

was zu folgender DVI-Ausgabe führt (Texlive2019):

Screenshot des kompilierten MWE

Warum wird das Minus in der ersten Zeile wie ein binärer Operator angeordnet, in allen folgenden Zeilen jedoch wie ein unärer Operator?

(Und ich weiß, dass ich keine einfachen Tex-Schriftartenschalter verwenden soll; dieser Code ist reduziert, um das Kernproblem zu zeigen, und ist Teil eines viel größeren Stylesheets, das aus dem Jahr 2008 stammt und abwärtskompatibel sein muss, also kann ich das nicht weglassen \rm. Außerdem Xdienen die s im Beispiel nur dazu, den Abstand anzuzeigen, sie gehören nicht zum $-1$)

Antwort1

Sie könnten versuchen, den Fix von hinzuzufügenhttps://github.com/latex3/latex2e/commit/06692ewas gelöstwww.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}

verwandte Informationen