Seite 1 von 1

Spaltenbreite von longtables verändern

Verfasst: Do 1. Jul 2010, 08:59
von fploink
Hallo,
ich habe ein Problem mit "longtabels"!
Das Problem ist in folgendem Minimalbeispiel dargestellt.
Dabei ist ein Vergleich für eine normale bzw. eine long table dargestellt.
Das Ergebnis soll bei der longtable genauso wie bei der normalen ausschauen.
Wie erreiche ich das?
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{longtable}
\usepackage{lmodern}
\usepackage{tabularx}				
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} % zentrierte Spalten mit Breitenangabe 
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} % rechtsbündig mit Breitenangabe 
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} % linksbündig mit Breitenangabe 

\begin{document}


\begin{table}
\centering
\begin{tabular}{|C{2.5cm}|C{1.5cm}|C{2.5cm}|}
\hline
  extrem langer Text 1         & Text 2  & langer Text 3 \\
\hline\hline
       Wert &       1 &      2 \\
\hline
\end{tabular}  
\end{table}



\begin{center}
\begin{longtable}{|C{2.5cm}|C{1.5cm}|C{2.5cm}|}

\hline \multicolumn{1}{|c|}{extrem langer Text1} & \multicolumn{1}{c|}{Text2}& \multicolumn{1}{c|}{langer Text3} 

\\ \hline \hline 
\endfirsthead

\multicolumn{3}{c}
{{\bfseries \tablename\ \thetable{} -- Fortsetzung von der vorigen Seite}} \\
\hline \multicolumn{1}{|c|}{extrem langer Text1} &
\multicolumn{1}{c|}{Text2} &
\multicolumn{1}{c|}{langer Text3}  \\ \hline 
\endhead

\hline \multicolumn{3}{|c|}{{Fortsetzung auf der nächsten Seite}} \\ \hline \hline
\endfoot

\hline \hline
\endlastfoot

          Wert &       1 &      2 \\


\end{longtable}
\end{center}

\end{document}
Die erste Spalte soll nur 2.5cm breit sein! Bei der "normalen" table erfolgt der Umbruch automatisch.
Wie ist das bei der longtable möglich bzw. wie kann man händisch einen zweizeiligen Tabellenkopf erstellen.

Hoffe mir kann da jemand weiterhelfen.

mfg Florian

Verfasst: Do 1. Jul 2010, 10:57
von Xenara
Weshalb verwendest du denn multicolumn in der longtable? Die Spalten sind doch sowieso schon als zentriert definiert.
Wenns unbedingt multicolumn mit Umbruch sein soll, dann musst du auch eine Spaltendefinition angeben, die das zulässt. Also etwa die gleiche Definition, die die Spalte per se schon hat (was sich aber natürlich nicht automatisch auf multicolumn auswirkt):
\multicolumn{1}{C{2.5cm}}{extrem langer Text1}
Was mir an deinem Code noch aufgefallen ist:
- Weshalb verwendest du "article" als Dokumentenklasse? "scrartcl" wäre empfehlenswerter.
- Vertikale Linien in Tabellen sind in der Typographie ein Tabu.
- Tabellen und die horizontalen Linien lassen sich mit Hilfe des Pakets "booktabs" schöner setzen, es stellt die Linien \toprule, \midrule, \bottomrule und \cmidrule zur Verfügung und kümmert sich um die Abstände.

Verfasst: Do 1. Jul 2010, 11:09
von fploink
Vielen Dank, für deine Antwort und die Hinweise!

mfg

Verfasst: Do 1. Jul 2010, 12:11
von KOMA
Noch ein Hinweis: Eine longtable in eine center-Umgebung zu packen ist nicht sinnvoll. Die Standardausrichtung einer longtable-Tabelel ist ohnehin horizontal zentriert. Per optionalem Argument kann man die Ausrichtung ggf. auch ändern. Siehe dazu die longtable-Anleitung.