Wie erstelle ich aus dieser Gruppierung ein einfaches Makro?

Wie erstelle ich aus dieser Gruppierung ein einfaches Makro?

Ich verwende häufig den folgenden Gruppencode, um den vertikalen Abstand zwischen einigen Gleichungen (mit der Gleichung, dem Ausrichten, dem Sammeln und anderen Mathematikumgebungen) und dem darüber liegenden Text zu verringern:

\begingroup\abovedisplayskip=0pt
    some equations in there
\endgroup

Aber wie könnte ich, anstatt diesen Gruppencode jedes Mal von Hand einzugeben, ein einfaches Makro in der Präambel erstellen, das dasselbe tut? Ich vermute, dass das Makro wie folgt verwendet werden sollte, aber geht es auch einfacher?

\eqlift
     some equations in there
\eqdown

Hier ist ein MWE-Code, der das Problem zeigt, das ich mit dem obigen Code löse (erst nach der Kompilierung):

\documentclass[11pt,letterpaper,twoside]{book}
\usepackage{lmodern}
\usepackage{amsmath}

\begin{document}

Blabla bla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla bla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla blabla bla bla blabla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}

\end{document}

Und hier ist eine Vorschau dessen, was es tut: Bildbeschreibung hier eingeben

Ich habe oft einen zu großen vertikalen Abstand für jede Klasse, jede Schriftgröße oder jede andere Konfiguration, die ich in der Vergangenheit ausprobiert habe (siehe Gleichung (3) im Vorschaubild). Die einzige mir bekannte Lösung für dieses Problem ist das Einfügen des oben gezeigten Gruppencodes.

Antwort1

Bildbeschreibung hier eingeben

Normalerweise verwendet TeX \abovedisplayskipoben eine Gleichung, wenn die letzte Zeile des vorhergehenden Absatzes aber kurz ist, wird sie von \abovedisplayshortskipden meisten Klassen standardmäßig auf eine kürzere Länge eingestellt, sodass die Gleichung in den Raum „eingequetscht“ wird, der durch die kurze Zeile oben freigelassen wurde.

Der Shortdisplayskip wird verwendet, wenn die letzte Zeile 2em links von der Gleichung endet, um sicherzustellen, dass immer noch eine visuelle Lücke vorhanden ist.

Ihr Fall (3) liegt zufällig sehr nahe an der Grenze, TeX verwendet die gleiche längere Länge wie in (4), aber subjektiv möchten Sie, dass es wie (1) und (2) funktioniert.

Ich biete hier zwei Varianten an.

Die Gleichungen 5 bis 8 zeigen die Einstellung, bei der beide Längen den gleichen Wert haben. Dann vermeiden Sie die Diskontinuität, wenn Tex von einem Stil zum anderen wechselt, aber (8) sieht am Ende ziemlich eng aus.

Die Gleichungen 9-12 sind mit den Standardeinstellungen wie in Ihrem Original eingestellt, aber die Länge der letzten Zeile des dritten Absatzes wird (für TeX) künstlich kürzer dargestellt, indem ein beliebiges Leerzeichen eingefügt wird. Dadurch fügt TeX dasselbe Leerzeichen ein wie für die ersten beiden Absätze.

\documentclass[11pt,letterpaper,twoside]{book}
\usepackage{lmodern}
\usepackage{amsmath}

\begin{document}

\section{Original}

Blabla bla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla bla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla blabla bla bla blabla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}

\section{use abovedisplayshortskip everywhere}

{
\setlength\abovedisplayskip{\abovedisplayshortskip}


Blabla bla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla bla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla blabla bla bla blabla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}

}

\section{abovedisplayshortskip in (3=11)}

Blabla bla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla bla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla :\hspace{-2cm}\mbox{}
\begin{equation}
    y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla blabla bla bla blabla :
\begin{equation}
    y(x) = a \, x^2.
\end{equation}


\end{document}

verwandte Informationen