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*}
이것이 결과이다
표지판 주변의 넓은 공간을 감상한다면 긴 라벨에도 작동합니다 =
.
또한 다음 병리학적 예에서와 같이 길이가 다른 여러 레이블을 처리하기 위해 \mathmakebox
from 명령 과 결합될 수 있습니다.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*}