5
1

Ich möchte gerne den Platz vor -- und vor allem nach -- vom Text abgesetzten Gleichungen einstellen können. Normalerweise macht das Latex ja schon von selbst gut. Aber manchmal ist da einfach viel zu wenig Platz zwischen Gleichung und der folgenden Zeile Text. Irgendwo habe ich mal gelesen, das hängt davon ab, wie weit die letzte Zeile Text vor der Gleichung geht. Dazu habe ich dann das Beispiel aus der Dokumentation zum math mode gefunden.

Das sollte also mit der Größe \belowdisplayshortskip einstellbar sein. Aber die Größe bewirkt bei mir überhaupt nichts -- die Gleichung hängt noch immer zu dicht auf der nachfolgenden Zeile Text.

Beispiel:

\documentclass{scrartcl}

% die Länge ändert überhaupt nichts
\belowdisplayshortskip=20pt

\begin{document}
    \section{Gutes Beispiel}
    Bei langem Text ist alles in Ordnung, die Abstände schauen richtig aus.
    \begin{equation}
        a=\frac{1}{2}\cdot b\cdot c
    \end{equation}
    Text Text Text Text Text Text Text Text Text Text Text Text Text Text

    \section{Schlechtes Beispiel}
    Bei kurzem Text nicht \dots
    \begin{equation}
        a=\frac{1}{2}\cdot b\cdot c
    \end{equation}
    Text Text Text Text Text Text Text Text Text Text Text Text Text Text

\end{document}

Man könnte jetzt einfach den Text etwas umformulieren, dass die letzte Zeile vor der Gleichung etwas weiter geht. Aber irgendwie müsste es doch auch möglich sein, dass einzustellen. Hat jemand eine Idee, was man da machen kann?

gefragt 19 Feb '22, 08:29

AndreGismo's gravatar image

AndreGismo
596826
Akzeptiert-Rate: 72%


Das Setzen der Abstände vor und nach abgesetzten Gleichungen ist Bestandteil der Schriftgrößeneinstellung, also beispielsweise von \normalsize. \normalsize wiederum wird in \begin{document} aufgerufen. Damit wird innerhalb von \begin{document} jegliche Änderung an \belowdisplayshortskip wieder überschrieben. Damit die Änderung aus der Dokument-Präambel wirksam ist, muss man sie min. mit \AtBeginDocument verzögern:

\documentclass[ngerman]{scrartcl}
\usepackage{babel}
\AtBeginDocument{\setlength{\belowdisplayshortskip}{2cm}}% Großer Wert zur Verdeutlichung

\begin{document}
    \section{Gutes Beispiel}
    Bei langem Text ist alles in Ordnung, die Abstände schauen richtig aus.
    \begin{equation}
        a=\frac{1}{2}\cdot b\cdot c
    \end{equation}
    Text Text Text Text Text Text Text Text Text Text Text Text Text Text

    \section{Schlechtes Beispiel}
    Bei kurzem Text nicht \dots
    \begin{equation}
        a=\frac{1}{2}\cdot b\cdot c
    \end{equation}
    Text Text Text Text Text Text Text Text Text Text Text Text Text Text


\end{document}

Allerdings überlebt sie auch dann kein \normalsize:

\documentclass[ngerman]{scrartcl}
\usepackage{babel}
\AtBeginDocument{\setlength{\belowdisplayshortskip}{2cm}}% Großer Wert zur Verdeutlichung

\begin{document}
    \section{Gutes Beispiel}
    Bei langem Text ist alles in Ordnung, die Abstände schauen richtig aus.
    \begin{equation}
        a=\frac{1}{2}\cdot b\cdot c
    \end{equation}
    Text Text Text Text Text Text Text Text Text Text Text Text Text Text

    \section{Schlechtes Beispiel}
    Bei kurzem Text nicht \dots
    \begin{equation}
        a=\frac{1}{2}\cdot b\cdot c
    \end{equation}
    und nach \LARGE Schriftgößenänderungen \normalsize funktioniert das auch schon
    wieder nicht mehr so:
    \begin{equation}
        a=\frac{1}{2}\cdot b\cdot c
    \end{equation}
    Text Text Text Text Text Text Text Text Text Text Text Text Text Text    
\end{document}

Es sei an dieser Stelle noch auf ein häufiges Missverständnis hingewiesen: Die Verwendung von \belowdisplayskip oder \belowdisplayshortskip richtet sich in keiner Weise danach, was am Ende der Gleichung passiert. Sie richtet sich alleine danach, ob \abovedisplayskip oder \abovedisplayshortskip verwendet wurde.

Siehe dazu auch die Erklärung der Längen im goLaTeX-Wiki.

Permanenter link

beantwortet 19 Feb '22, 08:54

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

bearbeitet 19 Feb '22, 09:00

ah super, danke!

(19 Feb '22, 10:43) AndreGismo

Bei \begin{document} werden Schriften geladen und Schriftgrößen gesetzt. In KOMAScript wird dort auch \belowdisplayshortskip in Abhängigkeit der globalen Schriftgröße (z.B. \documentclass[12pt]{scrartcl}) gesetzt und überschreibt damit alles was in der Präambel gesetzt wurde. Es gibt zwei Lösungen:

  1. Einfach nach \begin{document} setzen.

    \documentclass{scrartcl}
    % ...
    \begin{document}
    \belowdisplayshortskip=20pt
    
  2. \AtBeginDocument verwenden. (Aufpassen, \relax is hier wichtig!)

    \documentclass{scrartcl}
    \AtBeginDocument{\belowdisplayshortskip=20pt\relax}
    % ...
    \begin{document}
    
Permanenter link

beantwortet 04 Mär '22, 10:13

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×24
×14
×7

gestellte Frage: 19 Feb '22, 08:29

Frage wurde gesehen: 3,027 Mal

zuletzt geändert: 04 Mär '22, 10:13