PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 Probleme: Gleichung in Tabelle und Spaltenbreite



dOnTpAnIk
02-10-2005, 16:31
Hallo,

Ich habe folgendes Minimierungsproblem:


\begin{equation}
\begin{tabular}{lllll}
min & \multicolumn{4}{l}{$F(x_{1},\dots,x_{n}) = \sum_{k=1}^{n} f_{k}(z_{k-1},x_{k})$}\\
s.t. & $z_{k}$ & = & $t_{k}(z_{k-1},x_{k})$ & $k=1,\dots,n$\\
& $z_{0}$ & = & \multicolumn{2}{l}{$\alpha$}\\
& $z_{n}$ & = & \multicolumn{2}{l}{$\omega$}\\
& $z_{k}$ & $\in$ & $Z_{k}$ & $k=1,\dots,n-1$\\
& $x_{k}$ & $\in$ & $X_{k}(z_{k-1})$ & $k=1,\dots,n$
\end{tabular}
\end{equation}


Ich komm einfach nicht drauf, wie man Summen-Indices ober- und unterhalb der Summe hinbekommt. Ich weiß, dass wenn ich eine Summe in eine "equation" schreib, dass es dann so geht; und wenn man die Summe in "$"-Zeichen (wie hier) schreibt, dass das eben so rauskommt, wie ich es nicht will.
Aber wie schreib ich eine Art "equation" in so eine Tabelle?

Außerdem ist die 3.Spalte mit den "=" und "\in" Zeichen ein bisschen zu breit. Wie bekomme ich die schmaler?


Ich danke Euch schonmal, ich versteh das einfach nicht.

edit: hier ist noch ein Bild, wie es gedruckt aussieht:
http://img380.imageshack.us/img380/6783/screen016ph.jpg
Ist es ein guter Weg, zu versuchen, das Spaltenbreite-Problem mit "p{breite in cm}" zu lösen? Ich probier das grad aus, aber geht noch nicht wie gewünscht...

rais
02-10-2005, 20:12
Moin moin,


Ich komm einfach nicht drauf, wie man Summen-Indices ober- und unterhalb der Summe hinbekommt. Ich weiß, dass wenn ich eine Summe in eine "equation" schreib, dass es dann so geht; und wenn man die Summe in "$"-Zeichen (wie hier) schreibt, dass das eben so rauskommt, wie ich es nicht will.

Das funzt auch nur innerhalb einer Mathe-Umgebung.


Aber wie schreib ich eine Art "equation" in so eine Tabelle?

Das hab ich auch noch nicht raus...wohlmöglich geht's gar nicht?


Außerdem ist die 3.Spalte mit den "=" und "\in" Zeichen ein bisschen zu breit. Wie bekomme ich die schmaler?

indem Du das dritte "l" in Deiner Spaltendeklaration z.B. durch "@{}l@{}" ersetzt, dadurch wird kein Platz für die vertikalen Trennlinien (die hier ja eh nicht drin vorkommen) reserviert.

Warum nimmst Du für mathematische Ausdrücke nicht gleich eine Mathematikumgebung ? Dann klappt's auch mit dem \sum ;)


\documentclass[a4paper]{article}
\usepackage{amsmath,amssymb,color}
\newcommand{\inveq}{{\color{white}=}}
\begin{document}
\begin{align*}
\text{min} &\inveq F(x_{1},\ldots,x_{n}) = \sum_{k=1}^{n} f_{k}(z_{k-1},x_{k})\\
\text{\raisebox{3EM}{s.t.}} &\inveq \begin{aligned}%
z_{k} & = t_{k}(z_{k-1},x_{k})\\
z_{0} & = \alpha\\
z_{n} & = \omega\\
z_{k} & \in Z_{k}\\
x_{k} & \in X_{k}(z_{k-1})
\end{aligned} \quad \begin{aligned}%
k&=1,\ldots,n\\[3EM]
k&=1,\ldots,n-1\\
k&=1,\dots,n
\end{aligned}
\end{align*}
\end{document}

Der Code ist vielleicht noch nicht optimiert, aber kannst ja mal reinschauen. "\inveq" ist hier quasi eine unsichtbare Sprungmarke, damit die Texte links einigermaßen auf Abstand gehalten werden können.

MfG,

dOnTpAnIk
03-10-2005, 15:32
Rainer, danke für die Tipps und das mit der Mathe-Umgebung!
Hätte nicht gedacht, dass mein ursprünglicher Code so besch..... aussieht ;)
Aber mit der Mathe-Umgebung sieht das schon viel besser aus!

Hab mich mit deinem Vorschlag und dem align-Zeugs beschäftigt und das jetzt so gemacht, weil "min" und "s.t." noch nicht linksbündig waren:



\documentclass[a4paper]{article}
\usepackage{amsmath,amssymb,color}
\begin{document}
\begin{alignat}{4}
&\text{min}& &\quad& F&( x_{1},\dots,x_{n}) = \sum_{k=1}^{n} f_{k}(&&z_{k-1},x_{k})\nonumber\\
&\text{s.t.}& && z_{k} &= t_{k}(z_{k-1},x_{k}) && k=1,\dots,n\nonumber\\
&& && z_{0} &= \alpha &&\\
&& && z_{n} &= \omega &&\nonumber\\
&& && z_{k} &\in Z_{k} && k=1,\dots,n-1\nonumber\\
&& && x_{k} &\in X_{k}(z_{k-1}) && k=1,\dots,n\nonumber
\end{alignat}
\end{document}


Ist zwar ein bisschen gemogelt, weil die letzte Spalte an dem $z_{k-1}$ ausgerichtet ist, aber so sieht es denke ich ganz gut aus.

Oder weiß vielleicht jemand, wie man bei einer align Umgebung in einer Zeile zwei oder mehr Spalten verschmelzen lassen kann?

Würde also hier die erste Zeile betreffen.

Weil das kommt ja öfters mal vor, dass man in der ersten Zeile weniger Spalten hat, als in den darauffolgenden. In einem tabular macht man das ja mit "\multicolumn". Würde mich stark interessieren, da ich in der Doku dazu auch nichts gefunden habe.

Grüße

rais
03-10-2005, 17:59
Moin,
also die Matheumgebung (wenn sie denn align oder ähnliches ist), richtet sich gewöhnlich am Gleichheitszeichen (bzw. sonstiges Verhältnis) aus. Das könntest Du doch prima ausnutzen :


\documentclass[a4paper]{article}
\usepackage{amsmath,amssymb}
\begin{document}
\begin{flalign*}
\text{min} & & F(x_{1},\ldots,x_{n}) & = \sum_{k=1}^{n} f_{k}(z_{k-1},x_{k})\\
\text{s.t.} & & z_{k} & = t_{k}(z_{k-1},x_{k}) & k&=1,\ldots,n\\
& & z_{0} & = \alpha\\
& & z_{n} & = \omega\\
& & z_{k} & \in Z_{k} & k&=1,\ldots,n-1\\
& & x_{k} & \in X_{k}(z_{k-1}) & k&=1,\dots,n
\end{flalign*}
\end{document}

und laß Dich überraschen, wie gut die Matheumgebung das selbst erledigen kann;)
---
Die "& &" hier dienen dazu, nicht vorhandene Verhältniszeichen zu überspringen
---
MfG,