PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tabularx: 2 Spalten mittig ausrichten



ichbrauchehilfe
20-05-2010, 02:25
Hallo zusammen,

ich habe mir eine Fallunterscheidung mit Zeilenumbrüchen zusammengebastelt:


\begin{flalign*}
\begin{aligned}
&x_{123} = \left\{\begin{tabularx}{\linewidth}{m{2.5cm}X}
spalte 1 mit zeilenumbruch &dann sollte spalte 2 mittig sein\\
spalte 1& wenn hier ein zeilenumbruch ist, sollte spalte 1 mittig sein, dass funktioniert aber leider nicht\end{tabularx}\right.\\
\end{aligned}
\end{flalign*}


Ich habe folgenden Fragen:
1. Wie muss ich das umstellen, damit bei einem Zeilenumbruch die jeweils andere Zeilen mittig ausgerichtet wird.
2.\linewidth scheint so nicht zu funktionieren, wahrscheinlich wegen der Klammer davor. Wie bestimme ich den restlichen Platz?
3.Wenn mir jemand um diese Uhrzeit noch sagen kann, wie ich den Zeilenabstand bei dem Umbruch evtl. etwas kleiner bekomme,

dann geht mein Tag gut los.

Gute Nacht

Legion
20-05-2010, 09:04
Momentan kann ich dein Problem nur teilweise lösen.

\documentclass{scrartcl}

\usepackage[latin9]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath,tabularx,array}

\begin{document}

\begin{flalign*}
x_{123}=\left\{%
\begin{array}{m{2.5cm}m{0.4\textwidth}}
1 & 1\\
text text text text text text text text text text text text text text text text text text & 1\\
1 & text text text text text text text text text text text text text text text text text text text text \\
text text text text text text text text text text text text text text text text text text text text & text text text text text text text text text text text text text text text text text text text text \\
\end{array}
\right.
\end{flalign*}

\end{document}

ichbrauchehilfe
20-05-2010, 09:32
Guten Morgen,


Momentan kann ich dein Problem nur teilweise lösen.
Danke schon mal für den Code. Der Zeilenumbruch und die vertikale Ausrichtung sehen aber schon mal gut aus.

Wenn ich das richtig sehe, geht durch die Verwendung von \textwidth bzw. \linewidth die Ausrichtung der Formel am linken Rand verloren. Das ist mir letzte Nacht gar nicht aufgefallen.

Kann man das noch beheben? Hängt ja wahrscheinlich mit der Frage der automatischen Berechnung der verbleibenden Textbreite zusammen.


Danke schonmal.

Karlo
20-05-2010, 10:15
Hallo,

Vorschlag zur Sache mit den Zeilenabständen:



\documentclass{scrartcl}
\usepackage[latin9]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath,tabularx,array}

\usepackage{setspace}


\begin{spacing}{0.7}
\begin{flalign*}
x_{123}=\left\{%
\begin{array}{m{2.5cm}m{0.4\textwidth}}
1 & 1\\ \vskip 0.5\baselineskip
text text text text text text text text text text text text text text text text text text & 1\\ \vskip 0.5\baselineskip
1 & text text text text text text text text text text text text text text text text text text text text \\ \vskip 0.5\baselineskip
text text text text text text text text text text text text text text text text text text text text & text text text text text text text text text text text text text text texttext text text text text
\end{array}
\right.
\end{flalign*}
\end{spacing}

\end{document}

ichbrauchehilfe
20-05-2010, 12:58
Danke für den Vorschlag Karlo, eine kleine Änderung war noch nötig.

Der
\vskip 0.5\baselineskip muss in der Spalte eingefügt werden, die umgebrochen wird und nicht immer hinter dem \\.
Siehe 2. Zeile des Arrays weiter rechts.
Sonst passt der Abstand nicht, wenn die erste Spalte umgebrochen wird und die zweite nicht.



\documentclass{scrartcl}
\usepackage[latin9]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath,tabularx,array}

\usepackage{setspace}

\begin{spacing}{0.7}
\begin{flalign*}
x_{123}=\left\{%
\begin{array}{m{2.5cm}m{0.4\textwidth}}
1 & 1\\ \vskip 0.5\baselineskip
text text text text text text text text text text text text text text text text text text \vskip 0.5\baselineskip & 1\\
1 & text text text text text text text text text text text text text text text text text text text text \\ \vskip 0.5\baselineskip
text text text text text text text text text text text text text text text text text text text text & text text text text text text text text text text text text text text texttext text text text text
\end{array}
\right.
\end{flalign*}
\end{spacing}

\end{document}


Jetzt fehlt nur noch die linke Ausrichtung und die Breite. Die aber wahrscheinlich zusammen gehören.

Schonmal vielen Dank bis hierhin :)

Gruß
ichbrauchehilfe

Karlo
20-05-2010, 15:43
Das ist sicher nicht die schönste Lösung, aber du könntest den Spaß in eine Minipage packen. Die dann mit passender Breite so, dass linksbündig=zentriert.

lg
Karlo

ichbrauchehilfe
20-05-2010, 17:15
Hi,

kannst du mir dafür


...aber du könntest den Spaß in eine Minipage packen. Die dann mit passender Breite so, dass linksbündig=zentriert.

vielleicht mal einen Beispielcode posten, der eine Minipage enthält?
Habe damit noch nie gearbeitet. :confused:

Danke

Karlo
20-05-2010, 18:23
Hab es einfach mal in obige Beispiel eingefügt, wobei ich noch 0.4\textwidth in 7cm geändert habe. Minipage verwende ich sonst, wenn ich Grafiken nebeneinander bringen möchte.



\begin{spacing}{0.7}
\begin{minipage}[t]{12cm}
\begin{flalign*}
{x_{123}=\left\{%
\begin{array}{m{2.5cm}m{7cm}}
1 & 1\\ \vskip 0.5\baselineskip
text text text text text text text text text text text text text text text text text text & 1\\ \vskip 0.5\baselineskip
1 & text text text text text text text text text text text text text text text text text text text text \\ \vskip 0.5\baselineskip
text text text text text text text text text text text text text text text text text text text text & text text text text text text text text text text text text text text texttext text text text text
\end{array}
\right.}
\end{flalign*}
\end{minipage}


LG
Karlo

ichbrauchehilfe
20-05-2010, 18:50
Danke, dass sieht gut aus.

Ist zwar was Handarbeit, wenn man die Textbreite ändert, aber das macht man ja auch nicht jeden Tag.

Vielen Dank