mathtool中的垂直間距

mathtool中的垂直間距

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

mathtools在1.23 版本發布之前,這裡有一個修復該問題的補丁

標籤需要始終具有非零寬度,否則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}

相關內容