아래 첨자/위 첨자의 가로 정렬 제어

아래 첨자/위 첨자의 가로 정렬 제어

기호의 아래 첨자와 위 첨자의 수평 정렬을 수정할 수 있나요? 즉, 오른쪽 정렬된 하위/위 첨자 쌍을 얻는 것이 가능합니까?

원하는

왼쪽 정렬된 아래 첨자/위 첨자 쌍 대신

기존의

다음과 같은 코드가 있을 때:

\documentclass{standalone}

\usepackage{amsmath}

\begin{document}
$x_{101}^{1}$
\end{document}

메모:그래요~ 아니다찾고수동솔루션(예: hphantom위의 예를 만드는 데 사용한 방법)은 실제로 자동화된 일회성 솔루션입니다.

편집하다:나는 기존 하위/위 첨자 메커니즘을 패치하지 않는 솔루션에 만족합니다(비록 그것이 가능한지 궁금합니다). 솔루션은 또한 \foo{x}{101}{1}적절한 수학 모드 하위/위 첨자 간격 등을 준수하는 한 사용자 정의 comman을 사용할 수도 있습니다.

답변1

이것의 목적이 무엇인지는 잘 모르겠지만 다음과 같습니다.

\documentclass{article}
\usepackage{mathtools}

\DeclareRobustCommand{\subsup}[3]{{%
  \mathpalette\makesubsup{{#1}{#2}{#3}}%
}}

\makeatletter
\providecommand{\@firstofthree}[3]{#1}
\providecommand{\@secondofthree}[3]{#2}
\providecommand{\@thirdofthree}[3]{#3}
\newcommand{\makesubsup}[2]{%
  \sbox\z@{$\m@th#1{}_{\@secondofthree#2}$}%
  \sbox\tw@{$\m@th#1{}^{\@thirdofthree#2}$}%
  \dimen@=\wd\z@
  \ifdim\wd\tw@>\wd\z@ \dimen@=\wd\tw@\fi
  {\mkern0mu \@firstofthree#2}%
    _{\mathmakebox[\dimen@][r]{\@secondofthree#2}}%
    ^{\mathmakebox[\dimen@][r]{\@thirdofthree#2}}%
}
\makeatother

\begin{document}

$\subsup{x}{101}{1}-\subsup{y}{1}{101}$

$A_{\subsup{x}{101}{1}}$

\end{document}

여기에 이미지 설명을 입력하세요

아래 첨자와 위 첨자를 측정하고 상자를 더 큰 것만큼 넓게 만드세요. 이는 두 번째 수준 하위/위 첨자에도 적용됩니다.

답변2

로 시작하겠습니다 \Ss{}{}{}. 디스플레이 스타일과도 작동하도록 편집되었습니다. 첨자 스타일과도 자동으로 작동하도록 편집되었습니다. 위 첨자 길이가 아래 첨자 길이를 초과하면 매크로가 제대로 작동하지 않는 명백한 버그가 수정되었습니다.

\documentclass{article}
\usepackage{amsmath,stackengine,scalerel}
\newcommand\Ss[3]{\setbox0=\hbox{$#2$}\setbox2=\hbox{$#3$}\ifdim\wd2<\wd0%
    \ThisStyle{\ensurestackMath{\stackengine%
    {0pt}{\SavedStyle#1_{#2}^{}}{\SavedStyle{\phantom{#1}}^{#3}}{O}{r}{F}{F}{L}}}%
  \else
    \ThisStyle{\ensurestackMath{\stackengine%
    {0pt}{\SavedStyle{\phantom{#1}}_{#2}^{}}{\SavedStyle#1^{#3}}{O}{r}{F}{F}{L}}}%
  \fi
}
\begin{document}
\parskip 4pt\centering
$x_{101}^{1}$
$\Ss{x}{101}{1}$

$X_{101}^{1}$
$\Ss{X}{101}{1}$

$(A)_{123}^{ijklm}$
$\Ss{(A)}{123}{ijklm}$
\[
\biggl(\frac{1}{2}\biggr)_{123}^{4}\quad
\Ss{\biggl(\frac{1}{2}\biggr)}{123}{4}
\]
$A_{\Ss{x}{101}{1}}$
\end{document}

여기에 이미지 설명을 입력하세요

답변3

예를 들어 다음을 시도해 볼 수 있습니다.

\def\sf#1_#2^#3{%
  \setbox1=\hbox{$\scriptstyle#2$}%
  \setbox2=\hbox{$\scriptstyle#3$}%
  \ifdim\wd2>\wd1 \dimen0=\wd2 \else \dimen0=\wd1 \fi
  \setbox2=\hbox to\dimen0{\hss\box2}%
  \setbox1=\hbox to\dimen0{\hss\box1}%
  #1_{\box1}^{\box2}
}

$\sf x_{100}^{2}$

\bye

관련 정보