PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nummerieren und Ausrichten jeder Zeile einer Cases-Umgebung



Cas
30-08-2007, 16:26
Hallo,

ich möchte gerne eine Liste von Gleichungen links mit einer geschweiften Klammer versehen (um dem ganzen Gleichungssystem einen Namen zu geben), dabei trotzdem jede Zeile nummerieren und die Zeilen an einander ausrichten.

Teilweise konnte ich das Problem mit dem Paket \cases lösen, das Ergebnis seht ihr in der angehängten gif-Datei. Allerdings kann man mit diesem Paket die Gleichungen nicht ausrichten (in meinem Fall würde ich sie gerne an den Gleichheitszeichen ausrichten).

Kennt jemand eine Lösung? Soweit ich das einschätzen kann, ist das Problem nicht ganz trivial, aber ich lasse mich gerne eines Besseren belehren ;)

Gruß, Cas

localghost
30-08-2007, 17:38
Wäre nicht schlecht, wenn Du mal den Quelltext dazu posten könntest. Daran ließe sich dann etwas herumbasteln. Ich konnte mit meinen Mitteln bisher das genaue Gegenteil erreichen. Bei mir sind die einzelnen Fälle am Gleichheitszeichen ausgerichtet, aber der gesamte Ausdruck hat nur eine Nummer.


MfG und einem herzlichen Willkommen an Board
Thorsten

Cas
30-08-2007, 18:45
Danke für deine Antwort und den netten Willkommensgruß.

Also, der folgende Code erzeugt das von mir im ersten Beitrag gepostete Schriftbild:


\usepackage{cases}

\begin{numcases}{\Sigma:}
\ddot{x}_1+\dot{x}_2=x_1-x_2^2, \\
\dot{x}_2=x_1+u, \\
y=x_1+x_2,
\end{numcases}

Die Umgebung ist vom Paket cases her so definiert, dass zwar ein & zum Ausrichten eingesetzt werden kann. Allerdings werden dann beide Teile linksbündig gesetzt, mit einem deutlichen Abstand. Eigentlich ist das Paket für Fallunterscheidungen gedacht, in dem nach dem & eine Erklärung steht (wie z.B. "für x<0")

Dieser Code (man braucht dafür amsmath)


\begin{equation}
\Sigma: \begin{cases}
\ddot{x}_1+\dot{x}_2 &=x_1-x_2^2, \\
\dot{x}_2&=x_1+u, \\
y&=x_1+x_2,
\end{cases}
\end{equation}

richtet zwar die Gleichungen aus, aber es gibt nur eine Nummer. Das gleiche erreicht man von Hand auch mit


\begin{equation}
\Sigma: \left\{ \begin{aligned}
\ddot{x}_1+\dot{x}_2 &=x_1-x_2^2, \\
\dot{x}_2&=x_1+u, \\
y&=x_1+x_2,
\end{aligned} \right.
\end{equation}

Das Problem besteht darin, dass alle Varianten, die mir einfallen, wegen der geschweiften Klammer den folgenden Block zu einer Formelzeile gehörend betrachten. Deswegen wird auch nur eine Nummer vergeben.

Ich habe mir auch mal den Quellcode von cases.sty (http://tug.ctan.org/macros/latex/contrib/misc/cases.sty) angeschaut, aber das scheint reines TeX zu sein, und davon habe ich keine Ahnung...

Ich hoffe die Infos waren nützlich!

Grüße, Cas

localghost
30-08-2007, 19:35
Die beiden letzten Varianten hatte ich mir so auch überlegt. Das Paket cases (http://dante.ctan.org/CTAN/help/Catalogue/entries/cases.html) war mir bis dato unbekannt. Es gibt allerdings eine kurze Beschreibung der numcases-Umgebung.

texdoc cases
Da öffnet sich in meinem Browser eine Seite, auf der das (auf Polnisch) kurz und knapp mit Beispielcode beschrieben ist. Ich habe das mal für deinen Fall angepasst. Man beachte die Ausrichtung mit "&".

\begin{numcases}{\Sigma :}
\ddot{x}_1+\dot{x}_1&$=x_1-x_2^2$ \\
\dot{x}_2&$=x_1+u$ \\
y&$=x_1+x_2$
\end{numcases}

Die Ausrichtung erfolgt für meinen Geschmack allerdings nicht sehr schön und ist von der Syntax her doch recht umständlich, weil man noch extra in den Mathe-Modus schalten muss. Innerhalb einer Umgebung, die diesen Modus selber startet, muss man auf sowas erst mal kommen.

Cas
30-08-2007, 20:46
Hi Thorsten,

Genau die Variante der Ausrichtung meinte ich in meinem letzten Post. Eigentlich ist der zweite Teil einer Zeile für eine Erklärung der Fallunterscheidung gedacht. Deswegen wird ein automatischer Abstand eingefügt und der zweite Teil ist automatisch nicht im Mathemodus.

Vielleicht kann man cases.sty so anpassen, dass kein Abstand eingefügt wird und alle Teile als Mathemodus behandelt werden. Aber das geht über meine Fähigkeiten hinaus...

MfG Cas

localghost
30-08-2007, 21:30
[…] Vielleicht kann man cases.sty so anpassen, dass kein Abstand eingefügt wird und alle Teile als Mathemodus behandelt werden. Aber das geht über meine Fähigkeiten hinaus ... […]
Leider auch über meine. Bin in der Hinsicht halt kein Bastler.

Cas
31-08-2007, 16:20
... aber trotzdem vielen Dank für deine Mühen!

Vielleicht hat sonst jemand ja noch eine Idee?