Seite 1 von 1

Automatischer Zeilenumbruch bei flexibler Spaltenbreite

Verfasst: So 26. Feb 2012, 23:27
von aelray
Schönen Abend zusammen!

Ich möchte eine Tabelle erstellen, deren Spaltenbreite sich an die jeweilige Formatierung flexibel anpasst. Dafür habe ich den tabularx-Befehl verwendet und die Breite der Spalten mit Hilfe der hsize-Befehle flexibel definiert. Jetzt möchte ich den Spalten mit den Länderabkürzungen einen automatischen Zeilenumbruch einfügen. Leider finde ich dafür nicht den passenden Befehl. Für Hilfestellungen zu diesem Problem aber auch für allg. Anregung für die Tabelle bin ich sehr dankbar!

Grüße,
aelray

Hier der Tabellencode:
\documentclass{article}
\usepackage{booktabs}
\usepackage{latexsym}
\usepackage{tabularx}
\begin{document}
\footnotesize
\begin{table}[!htb]
\caption{}

    \newcolumntype{Y}{>{\raggedright\arraybackslash}X}
    \newcolumntype{Z}{>{\centering\arraybackslash}X}
    \renewcommand{\arraystretch}{1.2}
    
\begin{tabularx}{\hsize}{@{}>{\hsize=4.3\hsize}Y
    	                    >{\hsize=0.1\hsize}Z
    	                    >{\hsize=2.0\hsize}Z    
			>{\hsize=0.1\hsize}Z    
    	                    >{\hsize=0.1\hsize}Z        
    	                    >{\hsize=2.0\hsize}Z
			>{\hsize=0.1\hsize}Z        
    	                    >{\hsize=0.1\hsize}Z        
                            >{\hsize=2.0\hsize}Z    
			>{\hsize=0.1\hsize}Z    
                            >{\hsize=0.1\hsize}Z}                
\toprule
&\multicolumn {10}{c}{Directions of causality}\\
\cmidrule{2-11}
 & \multicolumn{2}{c}{Taxes $\rightarrow$ Unempl.} & & \multicolumn{2}{c}{Unempl. $\rightarrow$ Taxes} & & \multicolumn{2}{c}{both} &  & none \\
 \cmidrule{2-3} \cmidrule{5-6} \cmidrule{8-9} \cmidrule{11-11} 
 & \multicolumn{1}{c}{No.} &  \multicolumn{1}{c}{Names} &  & \multicolumn{1}{c}{No.} & \multicolumn{1}{c}{Names} &  &  \multicolumn{1}{c}{No.} & \multicolumn{1}{c}{Names} &  & \multicolumn{1}{c}{No.} \\
 \hline
 \multicolumn{1}{l}{Levels} & 6 & \multicolumn{1}{l}{AUS, CAN, FIN, GER, NED, CH} &  & 3 & \multicolumn{1}{l}{BEL, FRA, USA} &  & 2 & \multicolumn{1}{l}{DEN, NZ} &  & 9 \\
  \multicolumn{1}{l}{1st Differences} & 3 &  \multicolumn{1}{l}{CAN, NED, UK} & & 4 &  \multicolumn{1}{l}{FRA, IRE, JAP, USA} & & 1 & \multicolumn{1}{l}{AUS} & & 12 \\
 \multicolumn{1}{l}{Giles' approach} & 4 &  \multicolumn{1}{l}{AUS, CAN, NED, UK} & & 5 &  \multicolumn{1}{l}{BEL, FRA, IRE, ITA, NZ} & & 2 &  \multicolumn{1}{l}{DEN, USA} & & 9 \\
 \bottomrule
 \end{tabularx}
 \end{table}
 \end{document}
 

Verfasst: Do 1. Mär 2012, 09:20
von aelray
Morgen zusammen!

Wie sieht's aus? Hat niemand einen Lösungsvorschlag? Oder ist mein Anliegen zu umständlich formuliert? Braucht ihr noch weitere Informationen? Wäre euch sehr dankbar wenn ihr mir bei dieser Tabelle weiterhelfen könnt.

Viele Grüße,
aelray

Verfasst: Do 1. Mär 2012, 11:14
von aelray
So ich habe die Tabelle nochmal überarbeitet, da ich annehme dass sich das tabularx-package nicht mit multicolumn-Befehlen verträgt. Also hab ich einige entfernt (nicht alle weil ich den Befehl in den ersten zwei Zeilen brauche). Leider wird der Text in den Länderspalten immer noch nicht umgebrochen. Hat jemand eine gute Idee?
\documentclass{article}
\usepackage{booktabs}
\usepackage{latexsym}
\usepackage{tabularx}
\begin{document}
\begin{table}[!htb]
\caption{}

    \newcolumntype{Y}{>{\raggedright\arraybackslash}X}
    \newcolumntype{Z}{>{\centering\arraybackslash}X}
    \renewcommand{\arraystretch}{1.2}
\footnotesize{
\begin{tabularx}{\hsize}{@{}>{\hsize=4.3\hsize}Y
                           >{\hsize=0.1\hsize}Y
                           >{\hsize=2.0\hsize}Y
                           >{\hsize=0.1\hsize}Y
                           >{\hsize=0.1\hsize}Y
                           >{\hsize=2.0\hsize}Y
                           >{\hsize=0.1\hsize}Y
                           >{\hsize=0.1\hsize}Y
                           >{\hsize=2.0\hsize}Y
                           >{\hsize=0.1\hsize}Y
                           >{\hsize=0.1\hsize}Y}
\toprule
&\multicolumn {10}{c}{Directions of causality}\\
\cmidrule{2-11}
 & \multicolumn{2}{c}{Taxes $\rightarrow$ Unempl.} & & \multicolumn{2}{c}{Unempl. $\rightarrow$ Taxes} & & \multicolumn{2}{c}{both} &  & none \\
 \cmidrule{2-3} \cmidrule{5-6} \cmidrule{8-9} \cmidrule{11-11}
 & \multicolumn{1}{c}{No.} &  \multicolumn{1}{c}{Names} &  & \multicolumn{1}{c}{No.} & \multicolumn{1}{c}{Names} &  &  \multicolumn{1}{c}{No.} & \multicolumn{1}{c}{Names} &  & \multicolumn{1}{c}{No.} \\
 \hline
Levels & 6 & AUS,CAN,FIN,GER,NED,CH &  & 3 & BEL,FRA,USA &  & 2 & DEN,NZ &  & 9 \\
1st Differences & 3 &  CAN, NED, UK & & 4 &  FRA, IRE, JAP, USA & & 1 & AUS & & 12 \\
Giles' approach & 4 &  AUS, CAN, NED, UK & & 5 &  BEL, FRA, IRE, ITA, NZ & & 2 &  DEN, USA & & 9 \\
 \bottomrule
 \end{tabularx}
 }
 \end{table}
  \end{document}

Verfasst: Do 1. Mär 2012, 11:32
von Xenara
Der Text in der ersten Zeile ("Levels") wird nicht umbrochen, weil du keine Leerzeichen zwischen den Länderkennungen hast. Wenn du die einfügst, wird ordentlich umbrochen.

Verfasst: Do 1. Mär 2012, 12:57
von aelray
Danke Xenara! Das Problem ist behoben. Ich habe auch noch an ein paar anderen Baustellen gefeilt und das Resultat ist mittlerweile ganz ansehnlich:
\documentclass{article}
\usepackage{booktabs}
\usepackage{latexsym}
\usepackage{tabularx}
\begin{document}
\begin{table}[!htb]

    \newcolumntype{Y}{>{\raggedright\arraybackslash}X}
    \newcolumntype{Z}{>{\centering\arraybackslash}X}
    \renewcommand{\arraystretch}{1.2}
\tiny{
\begin{tabularx}{\hsize}{@{}>{\hsize=2.5\hsize}Y
                           >{\hsize=0.025\hsize}Z
                           >{\hsize=2.8\hsize}Z
                           >{\hsize=0.025\hsize}Z
                           >{\hsize=0.025\hsize}Z
                           >{\hsize=2.8\hsize}Z
                           >{\hsize=0.025\hsize}Z
                           >{\hsize=0.025\hsize}Z
                           >{\hsize=2.8\hsize}Z
                           >{\hsize=0.025\hsize}Z
                           >{\hsize=0.025\hsize}Z}
\toprule
&\multicolumn {10}{c}{Directions of causality}\\
\cmidrule{2-11}
 & \multicolumn{2}{c}{Taxes $\rightarrow$ Unemployment} & & \multicolumn{2}{c}{Unemployment $\rightarrow$ Taxes} & & \multicolumn{2}{c}{Both} &  & \multicolumn{1}{c}{None} \\
 \cmidrule{2-3} \cmidrule{5-6} \cmidrule{8-9} \cmidrule{11-11}
 & \multicolumn{1}{c}{No.} &  Names &  & \multicolumn{1}{c}{No.} & Names &  &  \multicolumn{1}{c}{No.} & Names &  & \multicolumn{1}{c}{No.} \\
 \midrule
Levels & \multicolumn{1}{c}{6} & AUS, CAN, FIN, GER, NED, CH &  & \multicolumn{1}{c}{3} & BEL, FRA, USA &  & \multicolumn{1}{c}{2} & DEN, NZ &  & \multicolumn{1}{c}{9} \\
\addlinespace
1st Differences & \multicolumn{1}{c}{3} &  CAN, NED, UK & & \multicolumn{1}{c}{4} &  FRA, IRE, JAP, USA & & \multicolumn{1}{c}{1} & AUS & & \multicolumn{1}{c}{12} \\
\addlinespace
Giles' approach & \multicolumn{1}{c}{4} &  AUS, CAN, NED, UK & & \multicolumn{1}{c}{5} &  BEL, FRA, IRE, ITA, NZ & & \multicolumn{1}{c}{2} &  DEN, USA & & \multicolumn{1}{c}{9} \\
 \bottomrule
 \end{tabularx}
 }
 \end{table}
  \end{document}
Leider hab ich nun ein kleines Formatierungsproblem.Es gelingt mir nicht die Spalten "Names" möglichst ausgeglichen unterhalb der jeweiligen cmidrule zu setzen. Vor allem bei "Taxes --> Unemployment" und "Unemployment --> Taxes" ist noch recht viel Platz auf der rechten Seite, der sehr unschön aussieht. Bei "Both" ist das besser gelungen.Habt ihr eine Idee wie ich das für die ganze Tabelle hinbekomme?

Vielen Dank und Gruß,
aelray