Seite 1 von 1

Tabelle mit Multicolumn erzeugen - zu breit?

Verfasst: Mi 6. Jul 2016, 01:16
von Tabbo
Guten Abend, liebes Forum,

Ich bin noch sehr neu im Latex Universum und schreibe derzeit an meiner ersten wissenschaftlichen Arbeit mit Latex. Ich habe bislang alle auftretenden Probleme mit google lösen können, aber im Moment komme ich überhaupt nicht weiter und weiß auch gar nicht, wo ich mit einer möglichen Lösung anfangen soll.

Daher erhoffe ich mir Hilfestellung.

Mein Problem ist eine Tabelle. Ich hätte gerne das Ergebnis, das ihr im angehangenen Bild sehen könnt:

Bild

Ich habe das mittlerweile folgendes zusammengebastelt:
\documentclass[12pt]{scrartcl}		
\usepackage[T1]{fontenc}				
\usepackage[utf8]{inputenc}				
\usepackage[english, ngerman]{babel}
\usepackage[left=2.5cm, right=4cm, top=2.5cm, bottom=2.5cm]{geometry}	
\usepackage{tabularx}

\begin{document}

\begin{table}
\caption{Bewertung regulatorischer Instrumente}
\begin{tabularx}{\textwidth}{|X|X|X|X|X|X|X|}
& \multicolumn{2}{c}{Ökologische Treffsicherheit} &  \multicolumn{2}{|c|}{Dynamische Anreizwirkung} & \multicolumn{2}{c}{Kosteneffizienz} \\
\hline
 & Theorie & Praxis & Theorie & Praxis & Theorie & Praxis \\
\hline
Auflagen & Ja & Ja & Nein & Ja & Nein & Nein \\
Steuern und Abgaben & Nein & Nein & Ja & Nein & Ja & Nein \\
Zertifikatehandel & Ja & Nein & Ja & Nein & Ja & Nein \\
\hline
\end{tabularx}
\end{table}

\end{document}
Das kommt dem gewünschten Ergebnis leider nicht mal annähernd nah.

Denkt ihr es ist aufgrund des begrenzten Platzes auf einer Seite überhaupt möglich, eine solch recht breite Tabelle überhaupt lesbar zu erzeugen?

Falls ja, wie?

Ich hoffe, der obige Beispielcode enthält keine überflüssigen Informationen und ihr könnt damit was anfangen.

Einen herzlichen Dank bereits im Voraus.
Tobi

Verfasst: Mi 6. Jul 2016, 07:56
von Noch so einer
Da die Tabelle für die Seite zu breit wird, würde ich sie drehen. Ich würde sie aber nicht mit tabularx auf die gesamte Breite dehnen. Stattdessen würde ich die Breite der Theorie- und Praxis-Spalten manuell an das breiteste Kopfelement anpassen. Das kann man auf verschiedene Weise machen. Im Beispiel verwende ich dafür \makebox innerhalb der genannten Kopf-Einträge. Außerdem würde ich die ganzen hässlichen Lesehindernisse (aka vertikale Linien) entfernen und die horizontalen Linien auf ein Mindestmaß beschränken. Und natürlich muss man den Tabellentitel auch als Titel formatieren lassen:
\documentclass[12pt,captions=tableabove]{scrartcl}% siehe scrguide.pdf    
\usepackage[T1]{fontenc}            
\usepackage[utf8]{inputenc}            
\usepackage[english, ngerman]{babel}
\usepackage[left=2.5cm, right=4cm, top=2.5cm, bottom=2.5cm]{geometry}   
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{pdflscape}

\begin{document}

\begin{landscape}% siehe pdflscape und lscape
\begin{table}
\centering
\caption{Bewertung regulatorischer Instrumente}
\begin{tabular}{l*6c}
\toprule% siehe booktabs
& \multicolumn{2}{c}{Ökologische Treffsicherheit} &  \multicolumn{2}{c}{Dynamische Anreizwirkung} & \multicolumn{2}{c}{Kosteneffizienz} \\
 & \makebox[5em]{Theorie} & \makebox[5em]{Praxis} & \makebox[5em]{Theorie} & \makebox[5em]{Praxis} & \makebox[5em]{Theorie} & \makebox[5em]{Praxis} \\
\midrule
Auflagen & Ja & Ja & Nein & Ja & Nein & Nein \\
Steuern und Abgaben & Nein & Nein & Ja & Nein & Ja & Nein \\
Zertifikatehandel & Ja & Nein & Ja & Nein & Ja & Nein \\
\bottomrule
\end{tabular}
\end{table}
\end{landscape}

\end{document}

Verfasst: Mi 6. Jul 2016, 09:23
von Tabbo
Guten Morgen,

Danke schon mal für dein Antwort. Von der Lesbarkeit ist es so tatsächlich deutlich besser. Vielen Dank! :)

Allerdings ist das Drehen der Tabelle ehrlich gesagt keine Alternative. Meinst du oder ihr es würde passen, wenn ich die Zeilen und Spalten vertausche? Also da wo jetzt "Ökologische Treffsicherheit" und so weiter steht dann "Auflagen" ...?

Alternativ sonst noch andere Vorschläge?

Herzlichsten Dank an jeden, der sich Zeit für mich nimmt. :)

Verfasst: Mi 6. Jul 2016, 09:30
von Noch so einer
Die Hauptleserichtung zu ändern, sollte nur die allerletzte Alternative sein, weil sie auf Kosten der Lesbarkeit geht. Da im Beispiel die Spaltenköpfe für die Breite der Tabelle ganz entscheidend sind, wäre eine Notlösung, deren Breite zu reduzieren:
\documentclass[12pt,captions=tableabove]{scrartcl}% siehe scrguide.pdf    
\usepackage[T1]{fontenc}            
\usepackage[utf8]{inputenc}            
\usepackage[english, ngerman]{babel}
\usepackage[left=2.5cm, right=4cm, top=2.5cm, bottom=2.5cm]{geometry}   
\usepackage{tabularx}
\usepackage{booktabs}

\begin{document}

\begin{table}
\centering
\caption{Bewertung regulatorischer Instrumente}
\begin{tabular}{l*6c}
\toprule% siehe booktabs
& \multicolumn{2}{c}{Ökologische} &  \multicolumn{2}{c}{Dynamische} & \multicolumn{2}{c}{Kosteneffizienz} \\
& \multicolumn{2}{c}{Treffsicherheit} &  \multicolumn{2}{c}{Anreizwirkung} & \\
 & Theorie & Praxis & Theorie & Praxis & Theorie & Praxis \\
\midrule
Auflagen & Ja & Ja & Nein & Ja & Nein & Nein \\
Steuern und Abgaben & Nein & Nein & Ja & Nein & Ja & Nein \\
Zertifikatehandel & Ja & Nein & Ja & Nein & Ja & Nein \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

Verfasst: Mi 6. Jul 2016, 14:19
von Bartman
Mein Vorschlag auf der Grundlage des letzten Beispiels von "Noch so einer":
\documentclass[fontsize=12pt,captions=tableabove]{scrartcl}% siehe scrguide.pdf    

\usepackage[T1]{fontenc}            
\usepackage[utf8]{inputenc}            
\usepackage[english, ngerman]{babel}
\usepackage[left=2.5cm, right=4cm, top=2.5cm, bottom=2.5cm]{geometry}   
%\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{showframe} % zum Anzeigen der Seitenränder

\begin{document}

\begin{table}
\centering
\caption{Bewertung regulatorischer Instrumente}
\begin{tabular}{l*6c}
\toprule% siehe booktabs
& \multicolumn{2}{c}{Ökologische} &  \multicolumn{2}{c}{Dynamische} & \multicolumn{2}{c}{Kosteneffizienz} \\
& \multicolumn{2}{c}{Treffsicherheit} &  \multicolumn{2}{c}{Anreizwirkung} & \\
\cmidrule(lr){2-3}\cmidrule(lr){4-5}\cmidrule(lr){6-7} % <- von booktabs
 & Theorie & Praxis & Theorie & Praxis & Theorie & Praxis \\
\midrule
\addlinespace
Auflagen & Ja & Ja & Nein & Ja & Nein & Nein \\
\addlinespace
Steuern und Abgaben & Nein & Nein & Ja & Nein & Ja & Nein \\
\addlinespace
Zertifikatehandel & Ja & Nein & Ja & Nein & Ja & Nein \\
\addlinespace
\bottomrule
\end{tabular}
\end{table}

\end{document}
Ich habe nicht \arraystretch einen Wert größer als 1 zugewiesen, sondern stattdessen \addlinespace von booktabs benutzt, damit der Zeilenabstand des Tabellenkopfes, wie in Deiner Abbildung zu sehen, nicht vergrößert wird. Der Befehl hat auch ein optionales Argument, falls Dir der erzeugte Abstand nicht groß genug sein sollte.

Verfasst: Mi 6. Jul 2016, 16:55
von Tabbo
Wow, vielen dank euch beiden. Das ist genau das, was ich gebraucht habe.

Wahnsinn, wie freundlich und hilfsbereit hier auch vielleicht nicht allzu komplexe Fragestellungen beantwortet werden.

Ich bin wirklich begeistert und dankbar! :)