Mit mathtools
, einer Erweiterung zu amsmath
, kommt man dem schon sehr nahe:
\documentclass{scrartcl}
\usepackage{mathtools}% Erweitert amsmath beispielsweise um multlined
\begin{document}
So geht es:
\begin{align}
A & = \framebox[.85\columnwidth]{Formel}\\
& \begin{multlined}[c]
\! = \framebox[.65\columnwidth]{lange}\\
\quad + \framebox[.55\columnwidth]{eingesetzte}\\
\quad + \framebox[.5\columnwidth]{Formel}
\end{multlined}\\
A &= \framebox[.8\columnwidth]{vereinfachte Formel}
\end{align}
oder:
\begin{align}
A & = \framebox[.85\columnwidth]{Formel}\\
& = \!\begin{multlined}[t]
\framebox[.65\columnwidth]{lange}\\
+ \framebox[.55\columnwidth]{eingesetzte}\\
+ \framebox[.5\columnwidth]{Formel}
\end{multlined}\\
A &= \framebox[.8\columnwidth]{vereinfachte Formel}
\end{align}
\end{document}
Will man die letzte Zeile weiter nach rechts schieben, muss man entweder die Breite der multilined
-Umgebung explizit setzen oder mit dem optionalen Argument von \shoveright
die letzte Zeile entsprechend weit nach rechts schieben, das die multilined
-Umgebung sonst nur soviel Platz beansprucht, wie sie unbedingt benötigt:
\documentclass{scrartcl}
\usepackage{mathtools}% Erweitert amsmath beispielsweise um multlined
\begin{document}
So geht es:
\begin{align}
A & = \framebox[.85\columnwidth]{Formel} \\
& \begin{multlined}[c][\linewidth-4.5em]
\! = \framebox[.65\columnwidth]{lange}\\
+ \framebox[.55\columnwidth]{eingesetzte}\\
+ \framebox[.5\columnwidth]{Formel}
\end{multlined}\\
A & = \framebox[.8\columnwidth]{vereinfachte Formel}
\end{align}
\end{document}
Etwas unschön ist dabei, dass man sowohl die Breite selbst schätzen muss, als auch vor dem =
in der multilined
-Umgebung die horizontale Position desselben mit einem negativen Abstand korrigieren muss. Zumindest das Schätzen der Breite kann man ggf. durch eine Berechnung ersetzen:
\documentclass{scrartcl}
\usepackage{mathtools}% Erweitert amsmath beispielsweise um multlined
\newcommand*{\displaywidthof}[1]{%
(\widthof{$\displaystyle #1$}+\leftmargini)%
}
\begin{document}
So geht es:
\begin{align}
A & = \framebox[.85\columnwidth]{Formel} \\
& \begin{multlined}[c][\displaywidth-\displaywidthof{A ={}}]
\mkern -3mu = \framebox[.65\columnwidth]{lange}\\
+ \framebox[.55\columnwidth]{eingesetzte}\\
+ \framebox[.5\columnwidth]{Formel}
\end{multlined}\\
A & = \framebox[.8\columnwidth]{vereinfachte Formel}
\end{align}
\end{document}
Hinweis: Wenn ich den Source von amsmath
richtig verstanden habe, wird \leftmargini
als Voreinstellung für den Rand (mit dem Tag) bei Formeln verwendet. Eigentlich wird der tatsächliche Rand dann in \@mathmargin
abgelegt. Seltsamerweise funktioniert \@mathmargin
statt \leftmargini
an der Stelle aber nicht. Deshalb habe ich \leftmargini
verwendet. Eventuell ist stattdessen aber auch 2\multlinegap
korrekt, wie @sudo sie in seiner Frage verwendet hat …
Eine weitere Möglichkeit ergibt sich eventuell durch die Verwendung von \MoveEqLeft
, das ebenfalls in mathtools
definiert, zusammen mit der align
-Umgebung, wie dies in Abschnitt 3.4.4 der Anleitung zu mathtools
erklärt ist.
Abschließend sei noch darauf hingewiesen, dass die meisten amsmath
-Umgebungen letztlich Tabellen sind. In Tabellen wird für jede Zelle eine eigene Gruppe verwendet. Daher ist es nicht einfach möglich, in der ersten Zelle lokal eine Berechnung anzustellen und deren Ergebnis dann in der zweiten Zelle zu verwenden. Das erklärt, warum die Berechnung der für die multlined
-Umgebung verfügbaren Breite besser erst nach dem &
der align
-Umgebung erfolgen sollte.
beantwortet
24 Sep '13, 10:04
saputello
11.1k●17●43●65
Akzeptiert-Rate:
51%
@sudo Es heißt übrigens umbrochen; umgebrochen ist etwas ganz anderes.