Tabellen Zellen horizontal und vertikal zentrieren

Schriftbild, Absätze und Auflistungen einstellen


1985er
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 16. Okt 2009, 10:44

Tabellen Zellen horizontal und vertikal zentrieren

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

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2534
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Minimalbeispiel

Beitrag 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

1985er
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 16. Okt 2009, 10:44

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

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2534
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

vertikale Zentrierung in Tabellen-Zellen

Beitrag 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

1985er
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 16. Okt 2009, 10:44

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

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2534
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

kompakte Listen

Beitrag von Stefan Kottwitz »

Statt der itemize-Umgebung und dieser Redefinition könntest Du eine Umgebung aus dem paralist-Paket verwenden, nämlich compactitem.

Stefan

1985er
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 16. Okt 2009, 10:44

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

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2534
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag 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

1985er
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 16. Okt 2009, 10:44

Beitrag 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

Antworten