Vertikaler Abstand in Mathtools

Vertikaler Abstand in Mathtools

Bei Verwendung mathtoolsder Option showonlyrefsfinde ich einen falschen vertikalen Abstand. Ich habe eineähnlichFrage, aber das Problem dort war eine lange Gleichung, was nicht mein Fall ist. Betrachten Sie die 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}

Wenn man die Kommentierung entfernt \refeq, wird der vertikale Abstand nach der Gleichung verringert. Irgendwelche Ideen?

Antwort1

Bis mathtoolszur Veröffentlichung von Version 1.23 gibt es hier einen Patch, der das Problem behebt

Das Tag muss immer eine Breite ungleich Null haben, sonst equationwird möglicherweise eine Leerzeile eingefügt. Der Verarbeitungszweig für deckte jedoch showonlyrefnicht alle Fälle ab.

\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

Antwort2

Dies ist wahrscheinlich ein „Feature“ der problematischen Gleichungsumgebung (siehe verschiedene Beiträge auf dieser Site). Es verschwindet im folgenden Beispiel.

\documentclass{minimal}
\usepackage{mathtools}
\mathtoolsset{showonlyrefs}
\begin{document}
\begin{gather}
\label{eq}
a=b
\end{gather}
This is an equation %\refeq{eq}
\end{document}

Antwort3

Das autonumPaket scheint darin besser zu sein:

\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}

Bildbeschreibung hier eingeben

Antwort4

verwenden alignstattequation

\begin{align}\label{eq}
    a &= b
\end{align}
This is an equation \refeq{eq}

verwandte Informationen