PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellenspalten ausrichten



paule
26-02-2009, 21:37
Hallo zusammen,

ich habe folgende Tabelle, in der die Spalten 2 und 3 eine feste Breite haben:


\documentclass[paper=a4,fontsize=12pt]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{array}
\usepackage{ragged2e}

\begin{document}
\begin{tabular*}{\textwidth}{|p{3.42cm}|p{3cm}|p{8 cm}|}
\multicolumn{3}{l}{\bfseries \large Titelleiste}\\[0.5ex] \hline
& 19zz - 19zz & Beispieltext text text text\\
& 19xx - 19xx & langer Beispieltext text text text\\
& 19zz - 19zz & sehr langer Beispieltext text text text\\
\end{tabular*}
\end{document}
nun möchte ich die Breite der ersten Spalte so anpassen, dass sie den restlichen Platz einnimmt und die dritte Spalte rechtsbündig endet. Ich kann natürlich durch Proieren einen exakten Wert ermitteln:


\begin{tabular*}{\textwidth}{|p{3.42cm}|p{3cm}|p{8 cm}|}

aber das muß doch eleganter gehen. Allerdings war keiner der folgenden Versuche erfolgreich:


%Breite = restliche Textbreite
\begin{tabular*}{\textwidth}{|p{\textwidth-11cm}|p{3cm}|p{8cm}|}

%prozentuale Aufteilung
\begin{tabular*}{\textwidth}{@{|}p{0.2\textwidth}@ {|}p{0.2\textwidth}@{|}p{0.6\textwidth}@{|}}

%\fill
\begin{tabular*}{\textwidth}{|l@{\extracolsep\fill }p{3cm}|p{8cm}|}

Besonders das letzte Beispiel verstehe ich nicht. Trotz der fest angegebenen Spaltenbreiten werden diese vergrößert und nicht wie von mir erwartet die erste Spalte angepasst. Vielleicht könnt ihr mir einen Tipp geben, was ich falsch mache.

Grüße,
paule

mechanicus
26-02-2009, 21:48
Hallo,

die elegante Variante ist das Paket tabularx. Um dir aber die Unterschiede zu zeigen, soll das nachstehende Beispiel dienen:

\documentclass[paper=a4,fontsize=12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{array,tabularx,calc}
\usepackage{ragged2e}
\usepackage[showframe]{geometry}

\begin{document}
\noindent\begin{tabular}{|p{3.42cm}|p{3cm}|>{\RaggedRight}p{8cm}|}
\multicolumn{3}{l}{\bfseries \large Titelleiste}\\[0.5ex] \hline
& 19zz - 19zz & Beispieltext text text text\\
& 19xx - 19xx & langer Beispieltext text text text\\
& 19zz - 19zz & sehr langer Beispieltext text text text\\
\end{tabular}

\vspace*{4ex}

\noindent\begin{tabularx}{\textwidth}{|X|p{3cm}|>{\RaggedRight}p{8cm}|}
\multicolumn{3}{l}{\bfseries \large Titelleiste}\\[0.5ex] \hline
& 19zz - 19zz & Beispieltext text text text\\
& 19xx - 19xx & langer Beispieltext text text text\\
& 19zz - 19zz & sehr langer Beispieltext text text text\\
\end{tabularx}

\vspace*{4ex}

\noindent\begin{tabular}{|p{\textwidth-11cm-6\tabcolsep-4\arrayrulewidth}|p{3cm}|>{\RaggedLeft}p{8cm}|}
\multicolumn{3}{l}{\bfseries \large Titelleiste}\\[0.5ex] \hline
& 19zz - 19zz & Beispieltext text text text\\
& 19xx - 19xx & langer Beispieltext text text text\\
& 19zz - 19zz & sehr langer Beispieltext text text text\\
\end{tabular}
\end{document}

entscheidend ist die letzte Tabelle. Das noindent muss davor stehen, weil eine einfache tabular-Umgebung in den Zeilenfluss gedrückt wird.

Gruß
Marco

paule
26-02-2009, 22:02
Das zweite Beispiel war genau das was ich gesucht habe, das mit dem rechtsbündig war wohl etwas ungünstig formuliert - das bezog sich auf die Spalte ansich, nicht auf den Text. Vielen Dank.

Grüße,
paule