\label별 추가 공간

\label별 추가 공간

다음 코드에서

\documentclass{article}
\usepackage{amsthm}
\newcounter{number}
\begin{document}
\begin{proof}ccc\[aaa\]\end{proof}
\label{\thenumber}
\begin{proof}ee\end{proof}
\end{document}

\label 명령은 추가 수직 공간을 생성하는데, 이 명령을 생략하면 존재하지 않습니다. 이 공간을 어떻게 피할 수 있나요? 이것은 아마도 다음과 관련이 있을 것입니다.\refstepcounter의 추가 공간, 그러나 여기서 'hyperref' 패키지는 관련되지 않습니다.

답변1

일반적으로 하나의 표시 환경(또는 섹션 제목 등)이 다른 표시 환경 뒤에 오는 경우 하나의 끝과 다음의 시작으로 지정된 세로 간격이 병합되므로 합계가 아닌 두 길이의 최대값만 얻을 수 있습니다.

그러나 \write생성된 노드 \label(aux 파일에 대한 쓰기를 지연하는 데 필요하므로 \pageref작동함)는 여기서 두 번째 증명 환경이 첫 번째 증명에 의해 추가된 수직 공간을 "볼" 수 없다는 것을 의미합니다.

증명 공간 끝, 노드 쓰기, 증명 공간 시작

대신에

max(검증 공간 끝, 증명 공간 시작)

해결책은 \label더 안전한 곳에 두는 것입니다(피할 수 있다면 거의 항상 vmode에서 수행하지 않는 것이 좋습니다). 예를 들어 이것은 작동합니다.

\documentclass{article}
\usepackage{amsthm}
\newcounter{number}
\begin{document}
\begin{proof}ccc\[aaa\label{\thenumber}\]\end{proof}
\begin{proof}ee\end{proof}
\end{document}

공간 문제와는 관련이 없지만( 와 동일 \label{zzz}) \label카운터 생성 레이블 키와 함께 사용하는 것은 다소 이상한 구성입니다.

관련 정보