
Ich versuche, meine Zellen in einer tabellarischen Umgebung horizontal und vertikal zu zentrieren. MWE ist am Ende zu finden.
Ich habe verschiedene Ausrichtungen ausprobiert: Welches tut, was es soll, sowie m{4cm}
komplexe Variationen wie {\centering}m{4cm}}
oder {\centering\arraybackslash}m{4cm}}
, wobei ich ehrlich gesagt nicht weiß, was genau der Arraybackslash-Parameter ändern soll – das habe ich einfach von einem anderen Stackexchange-Beitrag kopiert.
Alle Texte, auch die vertikal geschriebenen, sollen horizontal und vertikal zentriert sein. Der Hauptteil der Tabelle besteht aus Bildern mit jeweils einer Bildunterschrift, wobei die Bilder quadratisch sein müssen. Wenn mir jemand sagen kann, wie ich die Zellen ausrichten soll, sollte das wohl auch für die Zellen mit den Bildern funktionieren, oder?
Bearbeiten:Habe den Code aktualisiert und einen Screenshot des Ergebnisses gemacht. \parbox
wird als Platzhalter verwendet, um eine höhere Zelle zu erstellen. Sie 1,5
bleibt zentriert, das stimmt. Die anderen Textteile scheinen jedoch etwas weiter oben zu sein, vielleicht weil das Komma unter die Grundlinie geht (ist das das richtige Wort dafür?)? Gibt es eine Möglichkeit, die gesamte Schrift um ein oder zwei Punkte zu senken? Und gibt es eine Möglichkeit, die Zellen ein kleines bisschen höher zu bekommen? In der Zelle „foobar foobar“ kratzt die Schrift an den Linien oben und unten. Außerdem ist der vertikal ausgerichtete Text außermittig. Muss ich mit Minipages arbeiten, um das zu zentrieren?
\documentclass{scrreprt}
\usepackage{array}
\usepackage{multirow}
\usepackage{rotating}
\begin{document}
\begin{table}
\centering
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
\multicolumn{2}{|c|}{} & \multicolumn{5}{c|}{foo}\\
\cline{3-7}
\multicolumn{2}{|c|}{} & 1,0 & 2,0 & 3,0 & 4,0 & 5,0\\
\hline
\multirow{5}{*}{\rotatebox{90}{bar}} & 1,0 & & & & & \\
\cline{2-7}
& 1,5 & \parbox{2cm}{foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar } & & & & \\
\cline{2-7}
& 2,0 & & & & & \\
\cline{2-7}
& 2,5 & & & & & \\
\cline{2-7}
& 3,0 & & & & & \\
\hline
\end{tabular}
\end{table}
\end{document}
Antwort1
Sie könnten einen neuen Spaltentyp erstellen wie
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
und verwenden Sie es dann C{<your width>}
als Spaltendefinition <your width>
mit den gewünschten Einstellungen. Auf diese Weise werden Ihre Spalten vertikal und horizontal zentriert.
Ich schlage außerdem vor, vertikale Linien zu entfernen, gedrehte Zellen zu vermeiden und zu verwenden booktabs
.
\documentclass{scrreprt}
\usepackage{array}
\usepackage{multirow}
\usepackage{rotating}
\usepackage{booktabs}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
\chapter{A chapter}
Table \ref{tab:yours} is your table, but I suggest to you to redesign your
table like \ref{tab:mine}.
\begin{table}
\centering\setlength\extrarowheight{2pt}
\caption{Your table\label{tab:yours}}
\begin{tabular}{|*2{C{.5cm}|}*5{C{2cm}|}}
\hline
\multicolumn{2}{|c|}{} & \multicolumn{5}{c|}{foo}\\
\cline{3-7}
\multicolumn{2}{|c|}{} & 1,0 & 2,0 & 3,0 & 4,0 & 5,0\\
\hline
& 1,0 & & & & & \\
\cline{2-7}
\multirow{4}{*}{\rotatebox[origin=c]{90}{bar}} & 1,5 & foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar & & & & \\
\cline{2-7}
& 2,0 & & & & & \\
\cline{2-7}
& 2,5 & & & & & \\
\cline{2-7}
& 3,0 & & & & & \\
\hline
\end{tabular}
\end{table}
\begin{table}
\centering\setlength\extrarowheight{2pt}
\caption{My suggestion\label{tab:mine}}
\begin{tabular}{C{.7cm}*5{C{2cm}}}
\toprule
& \multicolumn{5}{c}{foo}\\
\cmidrule(l){2-6}
bar & 1,0 & 2,0 & 3,0 & 4,0 & 5,0\\
\midrule
1,0 & & & & & \\
\midrule
1,5 & foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar & & & & \\
\midrule
2,0 & & & & & \\
\midrule
2,5 & & & & & \\
\midrule
3,0 & & & & & \\
\toprule
\end{tabular}
\end{table}
\end{document}