mathtools
옵션과 함께 사용할 때 showonlyrefs
잘못된 수직 간격이 발견되었습니다. 나는 다음을 발견했다비슷한질문이 있지만 문제는 긴 방정식이었는데 제 경우는 아닙니다. MWE를 고려해보세요
\documentclass{minimal}
\usepackage{mathtools}
\mathtoolsset{showonlyrefs}
\begin{document}
\begin{equation}
\label{eq}
a=b
\end{equation}
This is an equation %\refeq{eq}
\end{document}
주석을 제거하면 \refeq
방정식 뒤의 세로 공간이 줄어듭니다. 어떤 아이디어가 있나요?
답변1
버전 1.23이 출시될 때까지 mathtools
문제를 해결하는 패치가 있습니다.
태그의 너비는 항상 0이 아니어야 합니다. 그렇지 않으면 equation
빈 줄이 추가될 수 있습니다. 그러나 처리 지점이 showonlyref
모든 경우를 다루지는 않았습니다.
\usepackage{xpatch}
\MHInternalSyntaxOn
\xpatchcmd{\MT_extended_tagform:n}{
\@ifundefined{MT_r_\df@label}{}
}{%
\@ifundefined{MT_r_\df@label}{\kern1sp}
}{}{\typeout{patch failed}}
\xpatchcmd{\MT_extended_tagform:n}{
\@ifundefined{MT_r_\df@label}{\global\MH_set_boolean_F:n {manual_tag}}
}{%
\@ifundefined{MT_r_\df@label}{\global\MH_set_boolean_F:n {manual_tag}\kern1sp}
}{}{\typeout{patch failed}}
\MHInternalSyntaxOff
답변2
이것은 아마도 문제가 있는 방정식 환경의 '특징'일 것입니다(이 사이트의 다양한 게시물 참조). 다음 예에서는 사라집니다.
\documentclass{minimal}
\usepackage{mathtools}
\mathtoolsset{showonlyrefs}
\begin{document}
\begin{gather}
\label{eq}
a=b
\end{gather}
This is an equation %\refeq{eq}
\end{document}
답변3
패키지 autonum
가 더 나은 것 같습니다.
\documentclass{article}
\usepackage{amsmath}
\usepackage{autonum}
\usepackage{lipsum} % for mock text
\begin{document}
\lipsum*[2]
\begin{equation}
\label{eq1}
a=b
\end{equation}
This is an equation \eqref{eq1}.
\lipsum*[2]
\begin{equation}
\label{eq2}
a=b
\end{equation}
\lipsum[2]
\end{document}
답변4
align
대신에 사용equation
\begin{align}\label{eq}
a &= b
\end{align}
This is an equation \refeq{eq}