PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vertikale Ausrichtung: multicolumn mit eigener Tabelle



cweilguny
20-08-2009, 12:35
Hi Forum,

ich tüftle zurzeit an einer Tabelle, folgendes Beispiel:


\documentclass{scrreprt}
\usepackage{longtable}
\begin{document}
\begin{longtable}{p{50mm}p{50mm}p{50mm}}
Test &
\multicolumn{2}{l}{
\begin{tabular}{ll}
A & B\\
A & B\\
A & B\\
A & B\\
A & B\\
\end{tabular}
}
\end{longtable}
\end{document}


Grundsätzlich ist der Text in einer Tabellenzelle am oberen Rand ausgerichtet. Wenn ich aber das Konstrukt mit der Tabelle in der multicolumn einfüge, dann ist die linke Spalte, also die mit dem Inhalt "Test", vertikal zentriert. Kann man den Inhalt dieser Spalte wieder oben ausrichten?

Ansonsten brauch ich eine Alternative um folgendes Ziel zu erreichen:


SPALTE1 | SPALTE2 | SPALTE3 | WERT1 | WERT2
--------------------------------------------
ZEILE1 ZEILE1 BMW 250 1000
MITSU- 200 1200
BISHI
FIAT 180 800

ZEILE2 ZEILE2 BMW 250 1000
MITSU- 200 1200
BISHI
FIAT 180 800

Links zwei oben ausgerichtete Spalten. Spalte 3-5 ist im Prinzip eine Aufzählung, wobei der Inhalt von Spalte 3 umbrechen kann. Ich kanns nicht auf komplett einzelne Zeilen aufteilen. Also Mitsubishi und Fiat in eine eigene Zeile mit Spalte 1 und 2 geht nicht, die Zeilen (also Zeile 1 und Zeile 2) dürfen nicht durch einen Seitenumbruch außeinandergerissen werden.
Umständliche Beschreibung...hoffentlich kennt sich jemand aus und hat eine Lösung?

Vielen Dank!

hakaze
20-08-2009, 13:07
Moin,

ich hoffe, ich habe dein Problem verstanden ;). Deshalb will ich dir statt der table-in-multicolumn-Lösung mal das multirow-Paket (http://www.ctan.org/tex-archive/macros/latex/contrib/multirow/) empfehlen.

Damit solltest du den Zeile1/2-Text in eine (über drei Zeilen gehende) Zelle setzen können.

cweilguny
20-08-2009, 14:55
Danke für den Tipp, aber der Inhalt der multirow ist wieder vertikal zentriert.

Die große Herausforderung ist, dass die Inhalte mit PHP aus einer Datenbank gelesen, daraus das Latex-Dokument generiert und am Server das PDF erzeugt wird. Nachbearbeiten ist daher nicht möglich, da die Benutzer keine Ahnung von Latex haben und das außerdem mehrmals täglich machen müssten.

Gibts noch Alternativen?

cweilguny
20-08-2009, 15:16
Die multicolumn hab ich eliminiert, ich kann Titel der drei rechten Spalten ja genauso in eine verschachtelte Tabelle schreiben.
So ist die Sache ein bisschen aufgeräumter, die linken Spalten ohne verschachtelte Tabelle sind trotzdem noch vertikal zentriert. Ein Minimalbeispiel zum Code an dem ich zurzeit tüftle:


\documentclass{scrreprt}
\usepackage{longtable}
\begin{document}
\begin{longtable}{p{50mm}p{50mm}p{50mm}}
Test &
\begin{tabular}{ll}
A & B\\
A & B\\
A & B\\
A & B\\
A & B\\
\end{tabular}
\end{longtable}
\end{document}


Ein Ansatz ist jetzt den Text mit \raisebox nach oben zu schieben. Gibts einen Befehl der die Höhe der aktuellen Zelle beinhaltet? So könnte man den Text mit \raisebox{0.5\ZELLENHOEHE-0.5\baselineskip}{Test} manuell oben ausrichten...oder lieg ich da falsch?

rais
20-08-2009, 15:28
Moin moin,
es ist nicht sooo lange her, daß hier eine ähnliche Frage gestellt wurde ...
http://www.mrunix.de/forums/showthread.php?t=65679

MfG

cweilguny
20-08-2009, 15:54
Funktioniert! Danke!

[t] in der verschachtelten Tabelle hat gereicht:


\documentclass{scrreprt}
\usepackage{longtable}
\begin{document}
\begin{longtable}{p{50mm}p{50mm}p{50mm}}
Test &
\begin{tabular}[t]{ll}
A & B\\
A & B\\
A & B\\
A & B\\
A & B\\
\end{tabular}
\end{longtable}
\end{document}