루트 인덱스가 있는 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\rootboxIMHO가 완전히 잘못된 코드 입니다. 그래서 내 수정 사항은 다음과 같습니다.

\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에 사용될 예정이다정말 크다수식(따라서 어색한 루트 인덱스 배치).\SQRT작은 수식에는 사용을 자제해 주세요 .

관련 정보