Text in Tabellen vertikal zentrieren

Tabellen und Grafiken erstellen und anordnen


Geograph
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mo 25. Jul 2011, 14:20

Text in Tabellen vertikal zentrieren

Beitrag von Geograph »

Liebe Forum-Mitglieder,

ich habe bei der im nachfolgenden Minimalbeispiel aufgeführten Tabelle das Problem, dass der Text in der ersten Spalte ("1 Agglomerationsraum, 2 Verstädterter Raum, 3 Ländlicher Raum") in der jeweiligen Zelle nicht vertikal zentriert ist.

Da ich relativ am Anfang meiner "Latex-Karriere" stehe, würde ich mich sehr freuen, wenn mir jemand dabei helfen könnte.

Besten Dank & Viele Grüße
\documentclass[12pt, a4paper]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage{rotating}
\usepackage{multirow}
\usepackage{tabularx, booktabs}

\begin{document}

\begin{sidewaystable}[htbp]
	\caption{Test}
	\label{tab:Test}
	\small
	\begin{center}
		\begin{tabular}{llll}
			\toprule[1pt]
			Regionsgrundtypen	& Kreistypen	& Gemeindetypen	& Zusammengefasste Kreistypen \\
			\midrule
			\multirow{8}{*}{1 Agglomerationsräume} 	& \multirow{2}{*}{1 Kernstädte}	& 1 grö{\ss}ere Kernstädte	& Kernstädte \\
																							\cmidrule(l){3-4}
																							&																& 2 Kernstädte	& Kernstädte \\
																							\cmidrule(l){2-4}
																							& \multirow{2}{*}{2 Hochverdichtete Kreise}	& 3 Ober-/Mittelzentren	& verdichtetes Umland \\
																							\cmidrule(l){3-4}
																							&																						& 4 sonst. Gemeinden	& verdichtetes Umland \\
																							\cmidrule(l){2-4}
																							& \multirow{2}{*}{3 Verdichtete Kreise}	& 5 Ober-/Mittelzentren	& verdichtetes Umland \\
																							\cmidrule(l){3-4}
																							&																				& 6 sonst. Gemeinden	& verdichtetes Umland \\
																							\cmidrule(l){2-4}
																							& \multirow{2}{*}{4 Ländliche Kreise}	& 7 Ober-/Mittelzentren	& ländliches Umland \\
																							\cmidrule(l){3-4}
																							&																			& 8 sonst. Gemeinden	& ländliches Umland \\
																							\cmidrule{1-4}
			\multirow{7}{*}{2 Verstädterte Räume} 	& 5 Kernstädte	& 9 Kernstädte	& Kernstädte \\
																							\cmidrule(l){2-4}
																							& \multirow{2}{*}{6 Verdichtete Kreise}	& 10 Ober-/Mittelzentren	& verdichtetes Umland \\
																							\cmidrule(l){3-4}
																							&																				& 11 sonst. Gemeinden	& verdichtetes Umland \\
																							\cmidrule(l){2-4}
																							& \multirow{2}{*}{7 Ländliche Kreise}	& 12 Ober-/Mittelzentren	& ländliches Umland \\
																							\cmidrule(l){3-4}
																							&																			& 13 sonst. Gemeinden	& ländliches Umland \\
																							\cmidrule(l){1-4}
																							
			\multirow{4}{*}{3 Ländliche Räume}
			& \multirow{2}{*}{8 Ländliche Kreise höherer Dichte}	& 14 Ober-/Mittelzentren	& ländlicher Raum \\
																							\cmidrule(l){3-4}
																							&																											& 15 sonst. Gemeinden	& ländlicher Raum \\
																							\cmidrule{2-4}
			& \multirow{2}{*}{9 Ländliche Kreise geringerer Dichte}	& 16 Ober-/Mittelzentren	& ländlicher Raum \\
																							\cmidrule(l){3-4}
																							&																												& 17 sonst. Gemeinden	& ländlicher Raum \\											
			\bottomrule[1pt]
		\end{tabular}
\end{center}
\end{sidewaystable}

\end{document}



Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Du hast vermutlich einfach nur den Unterschied zwischen \midrule und \toprule nicht komplett verstanden. Das, was Dich stört ist bei \toprule Absicht. Ich werde zum Vergleich im Beispiel unten einmal \midrule verwenden.

BTW: Wenn Du Texte in einer anderen Codierung als US-ASCII erfasst, solltest Du die Eingabecodierung deklarieren. Statt der üblichen Methode mit inputenc, hier ein Beispiel mit selinput:
\documentclass[12pt, a4paper, captions=tableabove]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage{selinput}

\SelectInputMappings{%
  adieresis={ä},%
  germandbls={ß},%
}

\usepackage{rotating}
\usepackage{multirow}
\usepackage{booktabs}

\begin{document}

\begin{sidewaystable}[htbp]
   \centering
   \caption{Test}
   \label{tab:Test}
   \small
   \begin{tabular}{llll}
     \midrule[1pt]
     Regionsgrundtypen   & Kreistypen   & Gemeindetypen   & Zusammengefasste Kreistypen \\
     \midrule
     \multirow{2}{*}{1 Agglomerationsräume}  & \multirow{2}{*}{1 Kernstädte}   
         & 1 größere Kernstädte   & Kernstädte \\
     \cmidrule(l){3-4}
     &   & 2 Kernstädte   & Kernstädte \\
     \bottomrule[1pt]
   \end{tabular}
\end{sidewaystable}

\end{document}
Da die Umlaute bei Dir funktioniert haben, die ß aber offenbar nicht, vermute ich, dass selinput bei Dir dabei latin1 als Codierung auswählt.

Bitte die Anleitungen zu inputenc und selinput lesen und auch die Option captions=tableabove in der KOMA-Script-Anleitung, scrguide.pdf.

Geograph
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mo 25. Jul 2011, 14:20

Beitrag von Geograph »

Besten Dank für die Hinweise!

Die vertikale Zentrierung klappt bei mir leider in der Gesamt-Tabelle so noch immer nicht. Ist es möglich, dass der \cmidrule Befehl zusätzlichen Abstand einfügt, der von den booktabs Befehlen (\midrule etc.) nicht erkannt wird und daher eine vertikale Zentrierung verhindert?

Was meinst du damit, dass ich den Unterschied zwische \toprule und \midrule nicht verstanden habe?

Antworten