mathtools의 세로 간격

mathtools의 세로 간격

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}

관련 정보