Unnötiger Abstand oberhalb der Ausrichtungsumgebung am oberen Seiten-/Miniseitenrand

Unnötiger Abstand oberhalb der Ausrichtungsumgebung am oberen Seiten-/Miniseitenrand

Es scheint, dass die alignUmgebung zusätzlichen vertikalen Raum hinzufügt, wenn sie oben auf einer Seite beginnt oder minipage. Unten sind zwei Seiten und zwei minipages (auf Seite 1), wobei die erste Seite/ minipageText enthält, gefolgt von einer align*Umgebung, und die zweite Seite/ minipagemit einer Umgebung beginnt align*. Beachten Sie, dass die Gleichungen immer noch ausgerichtet sind.

Bildbeschreibung hier eingeben

Lösungsversuch:

Die am ehesten damit zusammenhängende Frage, die ich gefunden habe, war:

Ich habe versucht, dieLösung von Gonzalo Medinaan dem Vorstehenden durch Hinzufügen \setlength\abovedisplayskip{0pt}(nach der Präambel gemäßVertikaler Raum vor und nach der Ausrichtungsumgebung). Dadurch wurden die Gleichungen zwar vertikal nach oben verschoben, sie blieben jedoch weiterhin vertikal ausgerichtet:

Bildbeschreibung hier eingeben

Und da das Problem auch oben auf einer Seite auftritt, glaube ich nicht, dass dies damit zusammenhängtMinipages verstehen - Ausrichtung oben

Frage:

  1. Wie kann ich die alignUmgebung anpassen, damit oben auf einer Seite oder nicht automatisch zusätzlicher Platz vorhanden ist minipage?
  2. Gibt es für dieses Verhalten einen Grund und sollte es vielleicht nicht geändert werden?

Code:

\documentclass{article}
\usepackage[showframe,paperwidth=3.5in,paperheight=2.2in,margin=0.5in]{geometry}
\usepackage{amsmath}

\begin{document}%\setlength\abovedisplayskip{0pt}
Top of Page 1
\begin{align*}% Text above at top of page
 e &= m c^2
\end{align*}

\hrule
\begin{minipage}[t]{0.45\linewidth}
    Top of minipage 1
    \begin{align*}% Text above this minipage
     e &= m c^2
    \end{align*}
\end{minipage}
\begin{minipage}[t]{0.45\linewidth}
    \begin{align*}% No text above in this minipage
     e &= m c^2
    \end{align*}
\end{minipage}

\newpage
\begin{align*}% No text above at top of page
 e &= m c^2
\end{align*}
\end{document}

Antwort1

Die Ausrichtungsumgebungen vonAbonnierensind nicht dafür gedacht, am Anfang eines Absatzes zu stehen. Während dies in normalen Situationen akzeptabel sein kann, hat es negative Auswirkungen, wenn wir minipagezum Setzen einer Ausrichtung mit reduzierter Breite ein verwenden.

Das minipageProblem kann gelöst werden, indem der \start@alignBefehl (und auch \start@gatherund \start@multline) mit

\usepackage{etoolbox}
\makeatletter
\pretocmd\start@align{%
  \if@minipage\kern-\topskip\kern-\abovedisplayskip\fi
}{}{}
\makeatother

minipageHierbei wird die Tatsache ausgenutzt, dass die Bedingung zu Beginn \if@minipagewahr ist, zu Beginn eines Absatzes jedoch falsch wird, sodass nachfolgende alignUmgebungen darin minipagenicht betroffen sind.

Es gibt einen ähnlichen Patch zum "Heilen" der Umgebungen am Anfang des Absatzes, aber ich bin etwas zurückhaltend, ihn zu zeigen, da ich glaube, dass ein AbsatzniemalsBeginnen Sie mit einer angezeigten Gleichung (mit der oben genannten Ausnahme).

verwandte Informationen