mtpro2 SQRT mit Root-Index beeinflusst die nachfolgenden Abstände

mtpro2 SQRT mit Root-Index beeinflusst die nachfolgenden Abstände

Ich habe vor Kurzem die Schriftart Math Professional II (mtpro2 lite) installiert. Sie funktioniert einwandfrei, nur dass SQRT mit Stammindex Mist ist.

\[ \sqrt[100]{1000000} = 1000 \quad \sqrt[3]{1000000} = 100 \]

\[ \SQRT[100]{1000000} = 1000 \quad \SQRT[3]{1000000}= 100 \]

Ausgabe

mtpro2sqrt

Ist das ein Problem der Lite-Version (beabsichtigt oder nicht)? Tritt dieses Problem auch bei der Vollversion auf? Wie kann ich einen neuen Befehl definieren, um die Situation automatisch zu handhaben?

Antwort1

Ich weiß nicht genau, warum das das Problem behebt, aber es scheint so. ;-)

\documentclass{article}


\usepackage{mtpro2}
\usepackage{mathtools}

\newcommand{\SQRTFIX}[2][ ]{{\hphantom{\scriptscriptstyle{#1}}}\SQRT[\mathllap{#1}]{#2}}


\begin{document}

\[ \sqrt[100]{1000000} = 1000 \quad \sqrt[3]{1000000} = 100 \]

\[
 \SQRT[100]{1000000}  = 1000  \quad \SQRT[3]{1000000} = 100 
\]

\[
 \SQRTFIX[100]{1000000} =1000 \quad \SQRTFIX[3]{1000000} = 100 
 \]
\end{document}

Bildbeschreibung hier eingeben

Das zweite Bild zeigt einfach im gelben Feld, was das ursprüngliche $\SQRT$ macht, und im blauen Feld, was $\SQRTFIX$ macht.

Bildbeschreibung hier eingeben

Antwort2

Dank @JPis erstaunlichem Sehvermögen konnte ich den Fehler im mtpro2Paket genau ausfindig machen. Alle Anerkennung gebührt ihm/ihr.

@JPis Lösungschlägt vor, dassder Versatzraum ist in etwa die Breite des Stammindexes. Ich bestätige, dass dies der Fall ist. Der Stammindex wird in einer Box mit dem Namen platziert \rootbox. So definiert LaTeX seine Platzierung:

% From ltmath.dtx:
\def\r@@t#1#2{%
  \setbox\z@\hbox{$\m@th#1\sqrtsign{#2}$}%
  \dimen@\ht\z@ \advance\dimen@-\dp\z@
  \mkern5mu\raise.6\dimen@\copy\rootbox
  \mkern-10mu\box\z@}

Dies ist die Standardeinstellung, während mtpro2ähnliche Dinge ausgeführt werden, beispielsweise:

% From mtpro2.dtx or mtpro2.sty
\def\R@@T#1#2{\setbox\z@\hbox{$\UPROOT@\z@\LEFTROOT@\z@\m@th#1\SQR@@T{#2}$}%
\dimen@\ht\z@\advance\dimen@-\dp\z@
\dimen@ii\dimen@
\setbox\tw@\hbox{$\m@th#1\mskip\UPROOT@ mu$}\advance\dimen@ii by1.667\wd\tw@
\setbox\tw@\hbox{$\m@th#1\mskip10mu$}%
\ifcase\SQcount@\advance\dimen@3\wd\tw@\or\advance\[email protected]\wd\tw@\or
\advance\dimen@\wd\tw@\fi
\mkern1mu\kern.13\dimen@\mkern-\LEFTROOT@ mu
\raise.5\dimen@ii\copy\rootbox % was .44
\mkern-1mu\kern-.13\dimen@\mkern\LEFTROOT@ mu\box\z@\kern-\wd\rootbox
\LEFTROOT\z@\UPROOT\z@}

Wenn wir uns auf die Gesamtstrukturen konzentrieren, sehen wir sofort, \R@@TdasszusätzlichCode von \kern-\wd\rootbox, der meiner Meinung nach völlig falsch ist. Hier ist also meine Lösung:

\documentclass{article}
\usepackage{newtxtext}
\usepackage{mtpro2}% lite or complete, does not matter here

\usepackage{etoolbox}
\makeatletter
\patchcmd\R@@T
  {\kern-\wd\rootbox} % search this within \R@@T
  {} % replace it with nothing
  {}{}
\makeatother

\begin{document}
\[ \sqrt[100]{1000000} = 1000 \quad \sqrt[3]{1000000} = 100 \]
\[ \SQRT[100]{1000000} = 1000 \quad \SQRT[3]{1000000} = 100 \]
\end{document}

Quadratwurzel

Notiz: \sqrtund \SQRTführen konstruktionsbedingt zu leicht unterschiedlichen Ergebnissen (wie im obigen Bild zu sehen).\SQRT soll verwendet werden fürrichtig großFormeln (daher die umständliche Platzierung des Stammindex).Bitte verzichten Sie auf die Verwendung \SQRTfür kleine Formeln.

verwandte Informationen