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、問題を修正するパッチがあります

タグの幅は常にゼロ以外である必要があります。そうでない場合は、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}

関連情報