Automatischer Zeilenumbruch bei flexibler Spaltenbreite

Tabellen und Grafiken erstellen und anordnen


aelray

Automatischer Zeilenumbruch bei flexibler Spaltenbreite

Beitrag 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}
 

aelray

Beitrag 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

aelray

Beitrag 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}

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag 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.

aelray

Beitrag 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

Antworten