6
1

Wenn ich einzelne Gleichungen umbrechen muss, nehme ich \multline, so dass der zweite Teil der Gleichung rechts ausgerichtet ist.

Ich möchte auch in komplexeren Formelsystemen umbrechen und den übrigen Teil jeweils nach rechts schieben, beispielsweise überlange Zeilen einer align-Umgebung. Hier mal ein Beispiel, wo ich jeweils ich vor dem Integral umbrechen möchte, und dieses Integral dann rechts ausgerichtet wird. Daher habe ich auch \cdot verwendet, damit hier deutlich ist, dass mit Multiplikation fortgesetzt wird.

\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
  \frac{J^n(x) - e^{n\pi i} J^{-n}(x)}{\sin 2n\pi} &=
    \frac{-i}{\pi\sqrt{2}}
    \frac{\Gamma(\frac{1}{2} - n)}{\Gamma(\frac{1}{2})}
    x^n e^{xi + \frac{1}{2}(n - \frac{1}{2})\pi i} \cdot
    \int_0^\infty e^{-xr} r^{n - \frac{1}{2}}
    \left(1 + \frac{ri}{2}\right)^{n - \frac{1}{2}} \mathrm{d}r
  \intertext{Die zweite Substitution ergibt:}
  e^{n\pi i} \frac{e^{n\pi i} J^n(x) - J^{-n}(x)}{\sin 2n\pi} &=
    \frac{+i}{\pi\sqrt{2}}
    \frac{\Gamma(\frac{1}{2} - n)}{\Gamma(\frac{1}{2})}
    x^n e^{-xi + \frac{1}{2}(3n + \frac{1}{2})\pi i} \cdot
    \int_0^\infty e^{-xr} r^{n - \frac{1}{2}}
    \left(1 - \frac{ri}{2}\right)^{n - \frac{1}{2}} \mathrm{d}r
\end{align*}
\end{document}

Ausgabe der Formeln

Im Text würde ich \hfill vor dem nach rechts zu schiebenden Ausdruck verwenden. Wie kann ich im Mathematikmodus einen solchen elastischen Raum einfügen, um den Rest der Zeile an den rechten Rand zu schieben?

gefragt 26 Jun '13, 17:38

Helmut's gravatar image

Helmut
47991622
Akzeptiert: 70%

bearbeitet 26 Jun '13, 18:51

Clemens's gravatar image

Clemens
19.0k112960

2

Ich hatte vor einer Weile ein ganz ähnliches Problem. Die Antwort von @saputello beruht auf der multlined-Umgebung von mathtools.

(11 Dez '13, 07:20) sudo

align und ähnliche Umgebungen sind ja Tabellen mit ihrer Zellenstruktur recht ähnlich, da sie alle auf der gleichen zugrundeliegenden TeX-Idee aufbauen und intern sogenannte Zellen-Templates verwenden. Um aus solchen Templates für eine Zelle auszubrechen, stellt TeX \omit bereit. Will man komplett aus der Ausrichtungsstruktur ausbrechen, dann verwendet mal TeX's \noalign{}.

Hier folgt deshalb eine Idee, die ich von Enrico Gregorio geklaut habe, die dieses \omit verwendet (womit das Tabellentemplate für die aktuelle Zelle nicht verwendet wird) und damit die Verwendung von \hfill ermöglicht.

Das verwendete \ifmeasuring@ stammt von amsmath. Der Inhalt von amsmath's Ausrichtungsumgebungen wird zweimal gesetzt: einmal, um den Inhalt auszumessen, das zweite mal, wie es später aussieht. \ifmeasuring@ testet, ob gerade die Mess-Phase stattfindet.

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand{\specialcell}[1]{\ifmeasuring@#1\else\omit$\displaystyle#1$\ignorespaces\fi}
\makeatother

\usepackage{showframe}% Seitendimensionen

\begin{document}
\begin{align*}
  (a + b + c) &= (a + b + c + d + e + f + g + h + i) \\
  & \specialcell{\hfill\text{(foo)}} \\
  \noalign{\hfill(xxx)}
\end{align*}

\begin{align*}
  (a + b + c + d + e + f + g + h + i) &= (a + b + c) \\
  \specialcell{\text{(foo)}\hfill} \\
  \specialcell{\hfill\text{(foo)}\hfill} \\
  \noalign{\hfill(xxx)}
\end{align*}

\end{document}

alt text

Permanenter link

beantwortet 27 Jun '13, 05:25

Clemens's gravatar image

Clemens
19.0k112960

bearbeitet 09 Dez '13, 12:01

Super Idee! Das \hfill schiebt bis an den rechten Rand der Umgebung. Geht es evtl. auch bis an den eigentlichen Textrand?

(27 Jun '13, 05:56) Helmut

@Helmut ja, mit \noalign, siehe überarbeitete Antwort

(08 Dez '13, 11:08) Clemens

@Clemens Ohne Gleichungsnummer (wie ja auch in der Frage vorgegeben) klappt das mit \noalign super. Werde ich mir merken. Kann man diese Lösung auch noch irgendwie auf nummerierte Gleichungen übertragen, so dass die Formelnummer dann mit in der gleichen Zeile ausgegeben würde?

(09 Dez '13, 06:47) esdd

@esdd Ich glaube, dass das mit \noalign nicht so einfach möglich ist. \noalign verlässt das Tabellentemplate komplett und fügt zwischen die Tabellenzeilen Material ein (vertikal oder horizontal, je nachdem, ob der zugrundeliegende tabellenbildende Befehl \halign oder \valign ist... Deine oder Herberts Antwort scheint mir da die einfachere Lösung

(09 Dez '13, 12:01) Clemens

@Clemens Mit \noalign könnte es für rechts stehende Tags so funktionieren:

\noalign{\hfill(xxx)\enspace\stepcounter{equation}(\theequation)\notag\vspace{-\baselineskip}}
(10 Dez '13, 05:29) esdd

@esdd ok :) Vielleicht \refstepcounter damit \label funktioniert?

(10 Dez '13, 05:33) Clemens

@Clemens: Ja, ohne Label sind Gleichungsnummern eigentlich überflüssig. Nur leider bekomme ich auch mit \refstepcounter kein funktionierendes \label innerhalb von \noalignhin :-(

(10 Dez '13, 06:41) esdd
Ergebnis 5 von 7 Alle anzeigen

beispielsweise mit multline

\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{multline*}
  \frac{J^n(x) - e^{n\pi i} J^{-n}(x)}{\sin 2n\pi} =
    \frac{-i}{\pi\sqrt{2}}
    \frac{\Gamma(\frac{1}{2} - n)}{\Gamma(\frac{1}{2})}
    x^n e^{xi + \frac{1}{2}(n - \frac{1}{2})\pi i} \cdot   \\
    \int_0^\infty e^{-xr} r^{n - \frac{1}{2}}
    \left(1 + \frac{ri}{2}\right)^{n - \frac{1}{2}} \mathrm{d}r 
\end{multline*}
%
Die zweite Substitution ergibt:
%
\begin{multline*}
  e^{n\pi i} \frac{e^{n\pi i} J^n(x) - J^{-n}(x)}{\sin 2n\pi} =
    \frac{+i}{\pi\sqrt{2}}
    \frac{\Gamma(\frac{1}{2} - n)}{\Gamma(\frac{1}{2})}
    x^n e^{-xi + \frac{1}{2}(3n + \frac{1}{2})\pi i} \cdot  \\
    \int_0^\infty e^{-xr} r^{n - \frac{1}{2}}
    \left(1 - \frac{ri}{2}\right)^{n - \frac{1}{2}} \mathrm{d}r
\end{multline*}
\end{document}

alt text

Permanenter link

beantwortet 27 Jun '13, 02:33

Herbert's gravatar image

Herbert
5.0k34

Danke, das ist ein workaround, längere Systeme aufzubrechen. Ich verliere dann die align-Ausrichtung. Daher ist meine Frage noch offen, ob man sowas, was multline in der letzten Zeile tut, auch in anderen Umgebungen hinkriegt. Kann natürlich auch so enden, dass es nicht in der gedachten Weise geht.

(27 Jun '13, 02:51) Helmut

es geht dann immer nur mit Tricks (http://mirror.ctan.org/info/math/voss/mathmode/Mathmode.pdf ), hfill gibt es nicht und multline ist extra dafür gedacht.

(27 Jun '13, 05:08) Herbert

\hfill gibt es im Mathemodus zwar nicht, aber man kann innerhalb einer flalign Umgebung den Befehl \mathemakebox aus dem mathtools Paket dafür nutzen. Dabei bleibt die Ausrichtung erhalten und man kann auch eine Gleichungsnummer setzen lassen.

Die flalign Umgebung ähnelt wie die align Umgebung einer array Umgebung mit rl Spaltenpaaren. Allerdings wird zusätzlicher Leerraum nur zwischen l und darauf folgenden r Spalten eingefügt und nicht an den Rändern, d.h. flalign nutzt die gesamte Zeile aus.

In dem unten stehenden Beispiel werden die Gleichheitszeichen an dem ersten & ausgerichtet. Der zusätzliche Leerraum wird dann vor dem zweiten & eingefügt. Dadurch werden die Integrale jeweils rechts ausgerichtet.

Die Integrale sind nun aber leider breiter als der für die letzte Spalte zur Verfügung stehende Platz und würden deshalb über den Textbereich hinaus ragen. Abhilfe schaffen die optionalen Argumente von \mathemakebox, mit denen man die tatsächliche Breite der Box „verstecken“ kann. Im ersten optionalen Argument bestimmt man welche horizontale Ausdehnung der Box unabhängig vom tatsächlichen Inhalt zugewiesen werden soll. Das kann ein ganz kleiner Wert. Für den Fall, dass eventuell auch Gleichungsnummern angezeigt werden sollen, darf er allerdings nicht in allen Zeilen 0pt sein, da sonst die Integrale bis ganz ans Zeilenende rutschen und sich mit den Gleichungsnummern überlagern. Im zweiten optionalen Argument kann man die Ausrichtung des Inhaltes innerhalb der Box festlegen. Die Integrale sollen rechts bündig stehen, also muss hier r angegeben werden.

\documentclass[12pt]{article}
\usepackage{mathtools}% lädt auch amsmath
\usepackage{showframe}% Seitenaufteilung
\begin{document}
\begin{flalign*}
  \frac{J^n(x) - e^{n\pi i} J^{-n}(x)}{\sin 2n\pi} &=
    \frac{-i}{\pi\sqrt{2}}
    \frac{\Gamma(\frac{1}{2} - n)}{\Gamma(\frac{1}{2})}
    x^n e^{xi + \frac{1}{2}(n - \frac{1}{2})\pi i} \cdot&\\
  &&\mathmakebox[1pt][r]{\int_0^\infty e^{-xr} r^{n - \frac{1}{2}}
    \left(1 + \frac{ri}{2}\right)^{n - \frac{1}{2}} \mathrm{d}r}
  \intertext{Die zweite Substitution ergibt:}
  e^{n\pi i} \frac{e^{n\pi i} J^n(x) - J^{-n}(x)}{\sin 2n\pi} &=
    \frac{+i}{\pi\sqrt{2}}
    \frac{\Gamma(\frac{1}{2} - n)}{\Gamma(\frac{1}{2})}
    x^n e^{-xi + \frac{1}{2}(3n + \frac{1}{2})\pi i} \cdot&\\
  &&\mathmakebox[1pt][r]{\int_0^\infty e^{-xr} r^{n - \frac{1}{2}}
    \left(1 - \frac{ri}{2}\right)^{n - \frac{1}{2}} \mathrm{d}r}
\end{flalign*}
%
\begin{flalign}
  \frac{J^n(x) - e^{n\pi i} J^{-n}(x)}{\sin 2n\pi} &=
    \frac{-i}{\pi\sqrt{2}}
    \frac{\Gamma(\frac{1}{2} - n)}{\Gamma(\frac{1}{2})}
    x^n e^{xi + \frac{1}{2}(n - \frac{1}{2})\pi i} \cdot&\notag\\
  &&\mathmakebox[1pt][r]{\int_0^\infty e^{-xr} r^{n - \frac{1}{2}}
    \left(1 + \frac{ri}{2}\right)^{n - \frac{1}{2}} \mathrm{d}r}
  \intertext{Die zweite Substitution ergibt:}
  e^{n\pi i} \frac{e^{n\pi i} J^n(x) - J^{-n}(x)}{\sin 2n\pi} &=
    \frac{+i}{\pi\sqrt{2}}
    \frac{\Gamma(\frac{1}{2} - n)}{\Gamma(\frac{1}{2})}
    x^n e^{-xi + \frac{1}{2}(3n + \frac{1}{2})\pi i} \cdot&\notag\\
  &&\mathmakebox[1pt][r]{\int_0^\infty e^{-xr} r^{n - \frac{1}{2}}
    \left(1 - \frac{ri}{2}\right)^{n - \frac{1}{2}} \mathrm{d}r}
\end{flalign}
\end{document}

alt text

Permanenter link

beantwortet 07 Dez '13, 17:28

esdd's gravatar image

esdd
14.2k53251

bearbeitet 10 Dez '13, 06:38

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×52
×6

Frage gestellt: 26 Jun '13, 17:38

Frage wurde angeschaut: 5,339 Mal

Zuletzt aktualisiert: 11 Dez '13, 07:20