![Wie kann ich den Abstand um Gleichungen global ändern?](https://rvso.com/image/254728/Wie%20kann%20ich%20den%20Abstand%20um%20Gleichungen%20global%20%C3%A4ndern%3F.png)
Wie kann ich die Vspaces „über“ und „unter“ der Umgebung festlegen equation
?
Wenn dasselbe für die -Umgebungen getan werden könnte subequations
, gather
wäre dies ein Bonus.
Antwort1
Sie können die Werte von \abovedisplayskip
, \belowdisplayskip
, \abovedisplayshortskip
, anpassen \belowdisplayshortskip
. Die shortskip
Versionen 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, \normalsize
kö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 \normalsize
von 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! \abovedisplayskip
Mit 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@macro
ist ein internes Makro. Pakete wie etoolbox
oder das neuere xpatch
bieten 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}