분할을 사용하여 stackrel 기호를 서로 아래에 정렬

분할을 사용하여 stackrel 기호를 서로 아래에 정렬

split저는 등호를 정확히 서로 아래에 정렬하는 유도법을 사용하여 증명을 조판하고 있습니다 . 기호 중 하나 위에 'IH'가 있어야 해당 단계에서 귀납 가설이 사용되었음을 나타냅니다. 나는 stackrel그것을 사용하고 있습니다. 그러나 가 \stackrel{IH}{=}보다 넓기 때문에 =잘 정렬되지 않습니다. 나는 split( 기호 &앞이나 뒤 =)와 alignedat(그러나 그것은 중앙 열이 가운데 정렬되는 경우에만 작동할 것입니다. 그렇지 않고 왼쪽 정렬됩니다. 코드 예제와 출력을 참조하십시오.

\documentclass{minimal}
\usepackage{amsmath}

\begin{document}
\begin{equation*}
\begin{split}
S_n &=                 2^iS_{n-i}+2^i-1\\
    &\stackrel{IH}{=}  2^i(2^1S_{n-i-1}+2^1-1)+2^i-1\\
    &=                 2^{i+1}S_{n-i-1}+2^{i+1}-1
\end{split}
\end{equation*}

\begin{equation*}
\begin{split}
S_n =&                2^iS_{n-i}+2^i-1\\
\stackrel{IH}{=}&     2^i(2^1S_{n-i-1}+2^1-1)+2^i-1\\
=&                    2^{i+1}S_{n-i-1}+2^{i+1}-1
\end{split}
\end{equation*}

\begin{equation*}
\begin{alignedat}{2}
S_n &=&&              2^iS_{n-i}+2^i-1\\
&\stackrel{IH}{=}&&   2^i(2^1S_{n-i-1}+2^1-1)+2^i-1\\
&=&&                  2^{i+1}S_{n-i-1}+2^{i+1}-1
\end{alignedat}
\end{equation*}
\end{document}

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

보시다시피, 위에 'IH'가 있는 등호 기호와 등호 기호는 정확히 서로 아래에 있지 않습니다.

나는 아니에요필요를 사용하므로 split없는 솔루션 split도 완벽할 것입니다. 이 작업을 어떻게 수행할 수 있나요?

답변1

\mathmakebox다음에서 또는 \mathclap(Andrew 덕분에)을 사용할 수 있습니다.mathtools

\documentclass{article}
\usepackage{mathtools}

\begin{document}
\begin{equation*}
\begin{split}
S_n &=                 2^iS_{n-i}+2^i-1\\
    &\stackrel{\mathmakebox[\widthof{=}]{\mathrm{IH}}}{=}  2^i(2^1S_{n-i-1}+2^1-1)+2^i-1\\
    &=                 2^{i+1}S_{n-i-1}+2^{i+1}-1
\end{split}
\end{equation*}
\end{document}

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

and align*대신에 also를 사용할 수도 있습니다 .equation*split

\documentclass{article}
\usepackage{mathtools}

\begin{document}
\begin{align*}
S_n &=                 2^iS_{n-i}+2^i-1\\
    &\stackrel{\mathclap{\mathrm{IH}}}{=}  2^i(2^1S_{n-i-1}+2^1-1)+2^i-1\\
    &=                 2^{i+1}S_{n-i-1}+2^{i+1}-1
\end{align*}
\end{document}

IH으로 바뀌었으니 참고해주세요 \mathrm{IH}. (egreg에게 감사드립니다).

답변2

사실, 위의 솔루션은 주어진 예가 매우 특별한 경우이기 때문에 최적이 아닙니다. IH너비가 와 거의 동일하므로 =오른쪽에는 문제가 없습니다. 하지만 IH다음과 같이 보다 훨씬 더 큰 것이 필요할 때 어떤 일이 일어나는지 생각해 보십시오.

\begin{align*}
S_n &= 2^iS_{n-1}+2^i-1\\
&\stackrel{\mathrm{IH,IG,IK,IL}}{=}2^i(2^1S_{n-i-1}+2^1-1)+2^i-1\\
&= 2^{i+1}S_{n-i-1}+2^{i+1}-1
\end{align*}

그러면 의 오른쪽 부분이 IH,IG,IK,IL수식에 겹칠 것입니다!

\leftstackrel내 해결책은 왼쪽에 완벽하게 정렬되지만 겹치지 않도록 오른쪽에 필요한 공백을 추가하는 을 정의하는 것입니다 . 코드는 다음과 같습니다.

\newlength{\leftstackrelawd}
\newlength{\leftstackrelbwd}
\def\leftstackrel#1#2{\settowidth{\leftstackrelawd}%
{${{}^{#1}}$}\settowidth{\leftstackrelbwd}{$#2$}%
\addtolength{\leftstackrelawd}{-\leftstackrelbwd}%
\leavevmode\ifthenelse{\lengthtest{\leftstackrelawd>0pt}}%
{\kern-.5\leftstackrelawd}{}\mathrel{\mathop{#2}\limits^{#1}}}

다음과 같이 간단하게 사용할 수 있습니다.

\begin{align*}
S_n &= 2^iS_{n-1}+2^i-1\\
&\leftstackrel{\mathrm{IH,IG,IK,IL}}{=}2^i(2^1S_{n-i-1}+2^1-1)+2^i-1\\
&= 2^{i+1}S_{n-i-1}+2^{i+1}-1
\end{align*}

아래 그림의 (1.1)(레거시 \stackrel), (1.2)( \stackrel위에서 제안) 및 (1.3)( )을 비교하세요.\leftstackrel

수치
(원천:플럭서스-virus.com)

답변3

저는 세 가지 전략을 제안합니다. 첫 번째는 \iheq와 동일한 너비가 되도록 패딩을 추가하여 등호를 인쇄하는 명령을 정의하는 것입니다 \overset{\mathrm{IH}}{=}. 이는 로 간단하게 얻을 수 있습니다 \iheq*.

두 번째 전략은 옆에 '(IH)'를 추가하는 것이다.

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}

\NewDocumentCommand{\iheq}{s}{%
  \overset{\IfBooleanTF{#1}{\mathrm{IH}}{\hphantom{\mathrm{IH}}}}{=}%
}

\begin{document}

\begin{equation*}
\begin{split}
S_n &\iheq  2^iS_{n-i}+2^i-1\\
    &\iheq* 2^i(2^1S_{n-i-1}+2^1-1)+2^i-1\\
    &\iheq  2^{i+1}S_{n-i-1}+2^{i+1}-1
\end{split}
\end{equation*}

\begin{equation*}
\begin{aligned}
S_n &= 2^iS_{n-i}+2^i-1\\
    &= 2^i(2^1S_{n-i-1}+2^1-1)+2^i-1 && \makebox[0pt][l]{(IH)}\\
    &= 2^{i+1}S_{n-i-1}+2^{i+1}-1
\end{aligned}
\end{equation*}

\end{document}

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

세 번째 전략: IH를 더 작게 만들고 너비가 0이 되도록 합니다.

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}

\NewDocumentCommand{\iheq}{s}{%
  \IfBooleanTF{#1}{\overset{\IH}{=}}{=}%
}
\NewDocumentCommand{\IH}{}{%
  \hidewidth\scriptscriptstyle\mathrm{IH}\hidewidth
}

\begin{document}

\begin{equation*}
\begin{split}
S_n &\iheq  2^iS_{n-i}+2^i-1\\
    &\iheq* 2^i(2^1S_{n-i-1}+2^1-1)+2^i-1\\
    &\iheq  2^{i+1}S_{n-i-1}+2^{i+1}-1
\end{split}
\end{equation*}

\end{document}

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

답변4

이것은 매번 나를 짜증나게 하는 문제이므로 두 센트를 투자하겠습니다.

그다지 우아하지는 않지만 결과가 마음에 드는 해결책은 명령을 사용하여 다음과 같이 \phantom다른 모든 =표지판을 문제가 있는 표지판만큼 크고 높게 만드는 것입니다.

\begin{align*}
S_n & \stackrel{\phantom{\mathrm{IH}}}{=} 2^iS_{n-i}+2^i-1 \\
    & \stackrel{\mathrm{IH}}{=}           2^i(2^1S_{n-i-1}+2^1-1)+2^i-1\\
    & \stackrel{\phantom{\mathrm{IH}}}{=} 2^{i+1}S_{n-i-1}+2^{i+1}-1
\end{align*}

이것이 결과이다 팬텀과 정렬 표지판 주변의 넓은 공간을 감상한다면 긴 라벨에도 작동합니다 =.

또한 다음 병리학적 예에서와 같이 길이가 다른 여러 레이블을 처리하기 위해 \mathmakeboxfrom 명령 과 결합될 수 있습니다.mathtools

\begin{align*}
S_n & \stackrel{\phantom{\mathrm{IH,(3.14)}}}{=}
      2^iS_{n-i}+2^i-1 \\
    & \stackrel{\mathrm{IH}}{\mathmakebox[\widthof{$\stackrel{\mathrm{IH,(3.14)}}{=}$}]{=}}
      2^i(2^1S_{n-i-1}+2^1-1)+2^i-1\\
    & \stackrel{\mathrm{IH,(3.14)}}{=}
      2^{i+1}S_{n-i-1}+2^{i+1}-1
\end{align*}

누구의 결과는 유령과 수학 makebox와 정렬

관련 정보