mtpro2 SQRT con índice raíz afecta el espaciado posterior

mtpro2 SQRT con índice raíz afecta el espaciado posterior

Recientemente instalé la fuente Math Professional II (mtpro2 lite). Funciona bien excepto que el SQRT con índice raíz apesta.

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

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

Producción

mtpro2sqrt

¿Es esto un problema de la versión lite (intencionada o no)? ¿La versión completa también tiene este problema? ¿Cómo puedo definir un nuevo comando para manejar la situación automáticamente?

Respuesta1

No sé exactamente por qué esto soluciona el problema, pero parece que sí. ;-)

\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}

ingrese la descripción de la imagen aquí

La segunda imagen simplemente muestra en el cuadro amarillo lo que hace el $\SQRT$ original y en el cuadro azul lo que hace $\SQRTFIX$.

ingrese la descripción de la imagen aquí

Respuesta2

Gracias a la increíble vista de @JPi, pude localizar exactamente el error en el mtpro2paquete. Todos los créditos son para él/ella.

La solución de @JPisugiere queel espacio de compensación es de alguna manera el ancho del índice raíz. Confirmo que este es el caso. El índice raíz se coloca dentro de un cuadro llamado \rootbox. Así es como LaTeX define su ubicación:

% 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@}

que es el valor predeterminado, mientras que mtpro2hace algunas cosas similares como:

% 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@}

Centrándonos en las estructuras generales, vemos inmediatamente que \R@@Thaadicionalcódigo de \kern-\wd\rootbox, que en mi humilde opinión está completamente equivocado. Así que aquí está mi solución:

\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}

raíz cuadrada

Nota: \sqrty \SQRT, por diseño, producirán resultados ligeramente diferentes (como se ve en la imagen de arriba). \SQRTse supone que debe usarse pararealmente grandefórmulas (de ahí la incómoda ubicación del índice raíz).Absténgase de utilizarlo \SQRTpara fórmulas pequeñas.

información relacionada