
Es scheint, dass die align
Umgebung zusätzlichen vertikalen Raum hinzufügt, wenn sie oben auf einer Seite beginnt oder minipage
. Unten sind zwei Seiten und zwei minipage
s (auf Seite 1), wobei die erste Seite/ minipage
Text enthält, gefolgt von einer align*
Umgebung, und die zweite Seite/ minipage
mit einer Umgebung beginnt align*
. Beachten Sie, dass die Gleichungen immer noch ausgerichtet sind.
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:
Und da das Problem auch oben auf einer Seite auftritt, glaube ich nicht, dass dies damit zusammenhängtMinipages verstehen - Ausrichtung oben
Frage:
- Wie kann ich die
align
Umgebung anpassen, damit oben auf einer Seite oder nicht automatisch zusätzlicher Platz vorhanden istminipage
? - 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 minipage
zum Setzen einer Ausrichtung mit reduzierter Breite ein verwenden.
Das minipage
Problem kann gelöst werden, indem der \start@align
Befehl (und auch \start@gather
und \start@multline
) mit
\usepackage{etoolbox}
\makeatletter
\pretocmd\start@align{%
\if@minipage\kern-\topskip\kern-\abovedisplayskip\fi
}{}{}
\makeatother
minipage
Hierbei wird die Tatsache ausgenutzt, dass die Bedingung zu Beginn \if@minipage
wahr ist, zu Beginn eines Absatzes jedoch falsch wird, sodass nachfolgende align
Umgebungen darin minipage
nicht 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).