
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):
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 X
dienen 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}