Seite 1 von 1

Tabellen Zellen horizontal und vertikal zentrieren

Verfasst: Fr 16. Okt 2009, 17:58
von 1985er
Hallo,
ich schreibe der Zeit meine DA mit Latex und bin an der Stelle, wo die erste schöne Tabelle her muss.

Ich habe es jetzt schon hinbekommen, eine Auflistung in einer Zelle zu machen. Leider sind die Abstände zu den Linien oben und unten relativ groß. Außerdem schaffe ich es nicht die Zellen rechts und links von den Auflistungen horizontal und vertikal zu zentrieren bzw. anzupassen.

Ich hoffe ihr könnt mir weiter helfen... Ansonsten bleibt mir nur Tabelle in Excel erstellen und als pdf einbinden... das wollte ich eigentlich vermeiden :wink:

Hier mein Minimalbeispiel:
\begin{table}[htb]
\begin{center}
\caption{Versuchsauswertung}
\label{tab:test}
\begin{tabular}{|C{3cm}|C{7cm}|C{3cm}|}
\hline
\multicolumn{1}{|c|}{Länge} & \multicolumn{1}{c|}{Eigenschaft} & \multicolumn{1}{c|}{Ergebnis} \\ \hline
\multirow{1}{*}{3 mm} & 
\begin{itemize}
\item Aufzählung
\item Aufzählung
\item Aufzählung
\end{itemize}
& schlecht \\ \hline
10 mm & 
\begin{itemize}
\item Aufzählung
\item Aufzählung
\end{itemize}
& gut \\ \hline
20 cm &
\begin{itemize}
\item Aufzählung
\item Aufzählung
\end{itemize}
& geht so \\ \hline
30 cm & 
\begin{itemize}
\item Aufzählung
\item Aufzählung
\end{itemize}
& ganz schlecht \\ \hline
\end{tabular}
\end{center}
\end{table}
Thx a lot.

Minimalbeispiel

Verfasst: Fr 16. Okt 2009, 18:13
von Stefan Kottwitz
Hallo,

ein Minimalbeispiel sollte übersetzbar sein. Bei Deinem Code fehlt die Präambel mit Dokumentklasse, verwendeten Paketen und Einstellungen, so lässt es sich nicht testen. Jetzt kann natürlich jeder einzelne Leser, so sich die Zeit nehmen möchte, das Dokument übersetzbar basteln, also sich eine Klasse aussuchen, multirow laden, Umlautcodierung sichern usw. und selbst dann ist nicht klar, welchem Format diese C-Spalten bei Dir entsprechen. So Tipps zu geben ist Glücksspiel. Besser wäre, gleich ein komplettes Mini-Dokument zu posten.

Viele Grüße,

Stefan

Verfasst: Fr 16. Okt 2009, 18:22
von 1985er
Hi,
sorry...das ist natürlich richtig! Hier nochmal der Code mit Präambel.
\documentclass[12pt,a4paper,oneside,idxtotoc,normalheadings,bibtotoc]{scrreprt}
\usepackage{geometry}
\geometry{verbose,a4paper,tmargin=3cm,bmargin=3cm,lmargin=3cm,rmargin=3cm}
\usepackage{array}   %stellt den Befehl \newcolumntype bereit 
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\usepackage{multirow}
\usepackage[TS1,T1]{fontenc}  % T1-Font
\usepackage[ansinew]{inputenc}  % ANSI

\begin{document}

\begin{table}[htb]
\begin{center}
\caption{Versuchsauswertung}
\label{tab:test}
\begin{tabular}{|C{3cm}|C{7cm}|C{3cm}|}
\hline
\multicolumn{1}{|c|}{Länge} & \multicolumn{1}{c|}{Eigenschaft} & \multicolumn{1}{c|}{Ergebnis} \\ \hline
\multirow{1}{*}{3 mm} &
\begin{itemize}
\item Aufzählung
\item Aufzählung
\item Aufzählung
\end{itemize}
& schlecht \\ \hline
10 mm &
\begin{itemize}
\item Aufzählung
\item Aufzählung
\end{itemize}
& gut \\ \hline
20 cm &
\begin{itemize}
\item Aufzählung
\item Aufzählung
\end{itemize}
& geht so \\ \hline
30 cm &
\begin{itemize}
\item Aufzählung
\item Aufzählung
\end{itemize}
& ganz schlecht \\ \hline
\end{tabular}
\end{center}
\end{table}


\end{document}

vertikale Zentrierung in Tabellen-Zellen

Verfasst: Fr 16. Okt 2009, 18:27
von Stefan Kottwitz
Damit kann man was anfangen. ;-) Vertikale Zentrierung erreichst Du durch m-Spalten:
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
Dadurch werden auch die Abstände über den Aufzählungen geringer.

Stefan

Verfasst: Fr 16. Okt 2009, 19:44
von 1985er
Super, genau so meine ich das. Danke!

bei mir im kompletten Dokument mit sämtlichen formatierungen ist der \itemize text allerdings an den oberen zellenrand gequetscht. nach schrittweise löschen einzelner formatierungen bin ich auf die ursache gestoßen:
\makeatletter
  \renewenvironment{itemize}{\begin{list}{\csname\itemitem\endcsname}{
 \advance\@itemdepth 1 \edef\itemitem{labelitem\romannumeral\the\@itemdepth}
 \labelwidth 1em \itemindent 0em \leftmargin 2em \rightmargin 1em
 \parsep 0pt \itemsep 1pt plus 0.5pt minus 0.5pt
 \topsep 0pt minus 3.5pt \partopsep 0pt  minus 1.5pt}}{\end{list}} 
\makeatother 
kannst du mir sagen, was das heißt? es wäre schön, wenn die umgebung davor und dahinter nicht ganz so viel platz verbraucht, damit die tabelle insgesamt kleiner wird. ich gehe mal davon aus, das hier irgendwie die abstände definiert werden,oder?

Gruß

kompakte Listen

Verfasst: Fr 16. Okt 2009, 19:55
von Stefan Kottwitz
Statt der itemize-Umgebung und dieser Redefinition könntest Du eine Umgebung aus dem paralist-Paket verwenden, nämlich compactitem.

Stefan

Verfasst: Fr 16. Okt 2009, 20:18
von 1985er
ok, es wird immer besser. die abstände zwischen den items sind jetzt schön klein. kann man die umbebung innerhalb der zelle noch vertikal zentrieren? das sollte doch dann auch mit dem m{} getan sein....

hier noch mal mein aktueller kompletter code
\documentclass[12pt,a4paper,oneside,idxtotoc,normalheadings,bibtotoc]{scrreprt}
\listfiles
\usepackage{geometry}
\geometry{verbose,a4paper,tmargin=3cm,bmargin=3cm,lmargin=3cm,rmargin=3cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Tabellen
%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{longtable}
\usepackage{multirow}
\usepackage{colortab}
\usepackage{colortbl}
\usepackage{dcolumn}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{array} 
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
\usepackage{paralist}
\usepackage[TS1,T1]{fontenc} 
\usepackage[ansinew]{inputenc} 


\begin{document}

\begin{table}[htb]
\begin{center}
\caption{Versuchsauswertung}
\label{tab:test}
\begin{tabular}{|C{3cm}|C{7cm}|C{2,5cm}|}
\hline
\textbf{Länge} & \textbf{Eigenschaft} & \textbf{Ergebnis} \\ \hline3 mm &
\begin{compactitem}
\item Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung
\item Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung
\item Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung 
\end{compactitem}
& schlecht \\ \hline
10 mm &
\begin{compactitem}
\item Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung
\item Aufzählung
\end{compactitem}
& gut \\ \hline
20 cm &
\begin{compactitem}
\item Aufzählung
\item Aufzählung
\end{compactitem}
& geht so \\ \hline
30 cm &
\begin{compactitem}
\item Aufzählung
\item Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung Aufzählung
\end{compactitem}
& ganz schlecht \\ \hline \end{tabular}
\end{center}
\end{table}


\end{document}

Verfasst: Fr 16. Okt 2009, 20:44
von Stefan Kottwitz
Anscheinend passt die kompakte Umgebung nicht ganz mit dem m zusammen. Zumindest manuell könnte man korrigieren, etwa am Ende eine Zeile nach oben gehen:
\smallskip\begin{compactitem}
\item ...
\vskip-\baselineskip
\end{compactitem}
Stefan

Verfasst: Fr 16. Okt 2009, 22:01
von 1985er
ok, ist zwar sicher nicht der direkteste weg, aber das ergebnis stimmt. ich denk so werde ich das einbinden.

ich danke dir! :D