PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabelleninhalt oben ausrichten



BernieBrot
18-08-2009, 14:49
Hallo Community,

ich möchte in einer Tabelle 2 Spalten einrichten. Links steht nur 1 Wort, rechts mache ich mit einer Untertabelle nochmal mehrere Zeilen.

Nun wird links der Text leider vertikal mittig ausgerichtet - ich hätte das gern oben (also Alpha auf Höhe 1 und Beta auf Höhe 4 im Beispiel). Kann mir da jemand einen Tipp geben?

Danke,

Hanno

Hier noch der Beispielcode:


\begin{table}[H]
\begin{tabular}[t]{ll}
Alpha & \begin{tabular}{l}
1 \\ 2 \\ 3 \end{tabular} \\
Beta & \begin{tabular}{l}
4 \\ 5 \\ 6 \end{tabular} \\
\end{tabular}
\end{table}

MarkusRV
18-08-2009, 16:56
hey, genau das Problem habe ich auch gerade.
meine scheiss tabelle richtet sich nicht oben aus. Ich hab keine ahnung, woran das liegt.
Es handelt sich um eine 2spaltige Tabelle, die in der 2. spalte eine grafik hat. Der Text auf der linken seite will ums verrecken nicht oben sein. der bleibt immer am tabellenboden.

\begin{table}
\centering
\begin{tabular}[t]{p{4.3cm}|R{10cm}}
texttexttext & \includegraphics[...]{...}
\end{tabular}
\end{table}

PS: Das R{10 cm} hab ich so definiert, dass es rechts ausgerichtet ist. es steht im grunde also auch für ein p{... cm}.

hakaze
18-08-2009, 18:34
Moin!

Die Sache ist die, dass der Parameter [t] für die Ausrichtung der gesamten tabular-Umgebung steht, nicht für das Alignment innerhalb der Zellen!!!

@BernieBrot: schau dir den Effekt am Beispiel an:

\begin{table}[H]
\begin{tabular}{ll}
Alpha & \begin{tabular}[t]{l}
1 \\ 2 \\ 3 \end{tabular} \\
Beta & \begin{tabular}[b]{l}
4 \\ 5 \\ 6 \end{tabular} \\
\end{tabular}
\end{table}
@MarkusRV: Mit den p-Spalten verhält es sich ähnlich wie mit Minipages. Das hat Edico hier (http://mrunix.de/forums/showthread.php?t=58450) schon mal ausführlich erläutert. Du könntest also so etwas verwenden (oder deinen newcolumntype entsprechend anpassen):

\begin{table}
\centering
\begin{tabular}{p{4.3cm}>{\vspace*{0pt}}p{10cm}}
texttexttext & \includegraphics[...]{...}
\end{tabular}
\end{table}
Hoffe, das hilft euch!

BernieBrot
19-08-2009, 07:57
Moin nochmal,

ja danke, das ist die Lösung für mein Problem.

Ich verstehe allerdings nicht, warum das so geht. Denn das [t], das Du eingefügt hast, orientiert ja die "innere" Tabelle in der rechten Spalte nach oben - warum wird damit die linke Spalte mit dem Alpha auch beeinflusst?

Hanno

hakaze
19-08-2009, 08:20
Moin!

Das liegt an dem Mechanismus, mit dem (La)TeX die Tabelle etc. baut. Hier mal ein Auszug des Threads, den ich im letzten Post verlinkt hatte:

[t] heisst *nicht*, dass an der Oberkante ausgerichtet wird. Vielmehr werden die *Grundlinien der ersten Zeilen* beider minipages aneinander ausgerichtet. Beim Bild ist das die Unterkante des Bildes.Das läuft bei tabular genauso (ersetze minipages durch tabular).
Folgender Code macht das deutlich (zwei Tabulars pro Zeile einer [t], einer [b]):

\begin{table}[htb]
\begin{tabular}{lll}
\hline
Alpha & \begin{tabular}[t]{l}
1 \\ 2 \\ 3 \\ \end{tabular}
& \begin{tabular}[b]{l}
4 \\ 5 \\ 6 \\ \end{tabular}
\tabularnewline \hline
Beta & \begin{tabular}[b]{l}
4 \\ 5 \\ 6 \\ \end{tabular}
& \begin{tabular}[t]{l}
1 \\ 2 \\ 3 \\ \end{tabular}
\tabularnewline \hline
\end{tabular}
\end{table}

Hoffe, das hilft...!

BernieBrot
19-08-2009, 09:55
Das ist ja spannend!

Das mit der Grundlinie der ersten [t] bzw. letzten [b] Zeile kann man sich nochmal gut visualisieren, wenn man einzelne Argumente mal mit \huge{} versieht.

Ich hör dann mal auf damit zu spielen und schreibe weiter, thx again.

Hanno

MarkusRV
19-08-2009, 09:56
cool, danke hakaze.
funktioniert.

gut dass du Edicos Lösung für meinen Fall noch gepostet hast sonst hätte ich nicht ganz gerafft was Edico da versucht hat zu erzählen.
Ich habs jetzt so gelöst.

\begin{tabular}[t]{>{\vspace*{0pt}}p{4.3cm}>{\vspace*{0pt}}R{10cm}}

weiß nicht ob das 100% korrekt ist, aber es sieht gut aus.