mtpro2 SQRT с корневым индексом влияет на последующий интервал

mtpro2 SQRT с корневым индексом влияет на последующий интервал

Недавно я установил шрифт math professional II (mtpro2 lite). Он работает отлично, за исключением SQRT с индексом корня.

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

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

Выход

mtpro2sqrt

Это проблема облегченной версии (преднамеренно или нет)? В полной версии тоже есть эта проблема? Как мне определить новую команду для автоматической обработки ситуации?

решение1

Не знаю точно, почему это решает проблему, но, похоже, так и есть. ;-)

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

введите описание изображения здесь

На втором изображении в желтом поле просто показано, что делает исходный $\SQRT$, а в синем поле — что делает $\SQRTFIX$.

введите описание изображения здесь

решение2

Благодаря удивительному зрению @JPi, я смог точно отследить жука в mtpro2посылке. Все заслуги принадлежат ему/ей.

Решение @JPiпредполагает, чтосмещающее пространство каким-то образом равно ширине корневого индекса. Я подтверждаю, что это так. Корневой индекс помещается в поле с именем \rootbox. Вот как LaTeX определяет его размещение:

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

что является значением по умолчанию, в то время как mtpro2делает некоторые похожие вещи, такие как:

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

Сосредоточившись на общих структурах, мы сразу видим, \R@@Tчтодополнительныйкод \kern-\wd\rootbox, который IMHO совершенно неверный. Так что вот мое исправление:

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

квадратный дюйм

Примечание: \sqrtи \SQRT, по замыслу, дадут немного разные результаты (как показано на рисунке выше). \SQRTпредполагается использовать длядействительно большойформулы (отсюда и неудобное расположение индекса корня).Пожалуйста, воздержитесь от использования \SQRTформул малого размера.

Связанный контент