Wie kann ich den Abstand um Gleichungen global ändern?

Wie kann ich den Abstand um Gleichungen global ändern?

Wie kann ich die Vspaces „über“ und „unter“ der Umgebung festlegen equation?

Wenn dasselbe für die -Umgebungen getan werden könnte subequations, gatherwäre dies ein Bonus.

Antwort1

Sie können die Werte von \abovedisplayskip, \belowdisplayskip, \abovedisplayshortskip, anpassen \belowdisplayshortskip. Die shortskipVersionen werden in Situationen verwendet, in denen vor der angezeigten Gleichung eine kurze Textzeile kommt: Wenn der Text endet, bevor die angezeigte Gleichung beginnt, ist es gut, weniger vertikalen Abstand hinzuzufügen.

Da Dokumentklassen diese Sprünge oft definieren, \normalsizekönnten Sie dieses Makro neu definieren, patchen oder einfach ergänzen, da das bloße Festlegen der Werte in der Präambel dann nicht funktionieren würde.

\documentclass{article}
\usepackage{amsmath}
\makeatletter
\g@addto@macro\normalsize{%
  \setlength\abovedisplayskip{40pt}
  \setlength\belowdisplayskip{40pt}
  \setlength\abovedisplayshortskip{40pt}
  \setlength\belowdisplayshortskip{40pt}
}
\makeatother
\begin{document}
text
\begin{gather}
  1 + 1 = 2
\end{gather}
text
\begin{equation}
  1 + 1 = 2
\end{equation}
\end{document}

Dasselbe kann ohne erreicht werden \g@addto@macro, also ohne und und @zu erfordern , indem man verwendet :\makeatletter\makeatother\expandafter

\expandafter\def\expandafter\normalsize\expandafter{%
    \normalsize
    \setlength\abovedisplayskip{40pt}
    \setlength\belowdisplayskip{40pt}
    \setlength\abovedisplayshortskip{40pt}
    \setlength\belowdisplayshortskip{40pt}
}

Ich bevorzuge die Methode des Hinzufügens zu \normalsize, da sowohl das Neudefinieren als auch das Patchen die Kenntnis der genauen Definition von erfordern, die \normalsizevon der Dokumentklasse verwendet wird. Beide Methoden, die ich zuvor imLaTeX-Community-Forumin einer Antwort aufIn der Präambel können keine vertikalen Leerzeichen gesetzt werden..

Weitere Informationen finden Sie im ausgezeichnetenMathematikmodusDokumentation.

Antwort2

Als Update zu Stefans Antwort.

Ihre Fragen sollten als Duplikate geschlossen werden. Sie werden hier viele Fragen/Antworten finden. Z. B.:

Unterschiedlicher Abstand um Gleichung und Ausrichtung

Bevor wir einige andere Ansätze zeigen, hier eine sehr wichtige Tatsache:

Verpassen Sie nicht den Kleber! \abovedisplayskipMit einem Kleber können Sie die Länge etc. festlegen und LaTeX so den Platz flexibler gestalten. Lesen Sie dazu bitte diese Frage/Antwort: Was ist Leim-Stretching?

Ich möchte jedoch eine andere Möglichkeit zeigen, die Länge einzustellen. Zunächst kann man den Befehl verwenden \AtBeginDocument. Die Schriftart wird am Anfang des Dokuments eingestellt und der Hook führt das Ganze später aus:

\AtBeginDocument{%
 \abovedisplayskip=12pt plus 3pt minus 9pt
 \abovedisplayshortskip=0pt plus 3pt
 \belowdisplayskip=12pt plus 3pt minus 9pt
 \belowdisplayshortskip=7pt plus 3pt minus 4pt
}

Der Befehl \g@addto@macroist ein internes Makro. Pakete wie etoolboxoder das neuere xpatchbieten robustere Versionen des Befehls \g@addto@macro. Anstatt den internen Befehl zu verwenden und ohne spezielle Behandlung von @können Sie Folgendes verwenden:

\usepackage{etoolbox}
\apptocmd\normalsize{%
 \abovedisplayskip=12pt plus 3pt minus 9pt
 \abovedisplayshortskip=0pt plus 3pt
 \belowdisplayskip=12pt plus 3pt minus 9pt
 \belowdisplayshortskip=7pt plus 3pt minus 4pt
}{}{}

oder

\usepackage{xpatch}
\xapptocmd\normalsize{%
 \abovedisplayskip=12pt plus 3pt minus 9pt
 \abovedisplayshortskip=0pt plus 3pt
 \belowdisplayskip=12pt plus 3pt minus 9pt
 \belowdisplayshortskip=7pt plus 3pt minus 4pt
}{}{}

Damit das funktioniert, habe ich hier ein einfaches Beispiel zusammengestellt. Sie können mit den Längen experimentieren:

\documentclass{article}
\usepackage{kantlipsum}
\usepackage{xpatch}
\xapptocmd\normalsize{%
 \abovedisplayskip=12pt plus 3pt minus 9pt
 \abovedisplayshortskip=0pt plus 3pt
 \belowdisplayskip=12pt plus 3pt minus 9pt
 \belowdisplayshortskip=7pt plus 3pt minus 4pt
}{}{}
\usepackage{amsmath}
\begin{document}
\kant[1]
\begin{gather}
  1 + 1 = 2
\end{gather}
\kant[1]
\begin{gather}
  1 + 1 = 2
\end{gather}
\kant[1]
\begin{subequations}
\begin{equation}
  1 + 1 = 2
\end{equation}
\end{subequations}
\kant[1]
\kant[1]
\end{document}

verwandte Informationen