Seite 1 von 1

Text in Tabellen vertikal zentrieren

Verfasst: Mo 25. Jul 2011, 14:39
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}



Verfasst: Di 26. Jul 2011, 08:55
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.

Verfasst: Di 26. Jul 2011, 10:53
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?