Seite 1 von 1

Vertikale Ausrichtung in Tabellen

Verfasst: Sa 27. Feb 2021, 18:17
von Melli_94

Hey,

ich habe folgendes Problem mit meiner Tabelle:

Ich schaffe es nicht die Texte vertikal mittig zu zentrieren, wenn in einer Zelle mehrere Zeilen entstehen, ist in der Zelle nebendran der Text unten. Dadurch steht das = 8mm nicht neben dem kleinen Quadrat, sondern unten und zudem berühren die Kreise die untere Linie.
Das Problem habe ich fast durch \vspace behoben, nur werden da die vertikalen nicht mitverlängert.
Ich habe hier die Tabelle in 2 Beispielen und wär euch wirklich dankbar, wenn ihr mir dabei weiter helfen könntet.

Vielen lieben Dank schonmal :)

\documentclass[twoside, 12pt, a4paper, openright]{report} 

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{color}
\usepackage{xcolor}
\usepackage{pdfpages}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{arrows}
\usepackage[hang]{caption} % Beschriftung für Tabelle, Abbildungen usw.
\usepackage{float}
\usepackage{stfloats}
\usepackage{placeins}
\usepackage{tabularx}
\usepackage{multirow}



\begin{document}

\begin{table}[!htb]
\centering
\begin{tabular}[c]{|l|c|c|c|c|}
\hline
%\rule{0pt}{25pt}
\textbf{Text} & \multicolumn{2}{c|}{\textbf{Text}} & \multicolumn{2}{c|}{\textbf{Text}}\\
\hline
Text \textbf{(1)}
& 	\begin{tikzpicture}[baseline=0][line width =1 pt]
	\fill [fill=black,draw=black]
	(1,1 cm) coordinate (B)
		--node{} 
	(0,1) coordinate(A)
		 -- node{} 
	(0,0) coordinate(C)
		-- node{} 
	(1,0) coordinate(D)
		-- node{} 
	cycle
	;	
	\fill [fill=white,draw=black] (.5,.5) circle (.4 cm ) ; 
	\end{tikzpicture} 
& = 8 mm / 10 mm
& 	\begin{tikzpicture}[baseline=0][line width =1 pt]
	\fill [fill=black,draw=black]
	(1,1 cm) coordinate (B)
		--node{} 
	(0,1) coordinate(A)
		 -- node{} 
	(0,0) coordinate(C)
		-- node{} 
	(1,0) coordinate(D)
		-- node{} 
	cycle
	;	
	\fill [fill=white,draw=black] (.5,.5) circle (.4 cm ) ; 
	\end{tikzpicture} 
& = 8 mm / 10 mm
\\
\hline
Text \textbf{(2)}
& 	\begin{tikzpicture}[baseline=0][line width =1 pt]
	\fill [fill=white,draw=black] (0,0) circle (.4 cm ) ; 			
	\end{tikzpicture} 
& = 8 mm
& 	\begin{tikzpicture}[baseline=0][line width =1 pt]
	\fill [fill=white,draw=black] (0,0) circle (.4 cm ) ; 			
	\end{tikzpicture} 
& = 8 mm
\\

\hline
Text \textbf{(3)} 
& 	\begin{tikzpicture}[baseline=0][line width =1 pt]
	\fill [fill=white,draw=black] (0,0) circle (.3 cm ) ; 			
	\end{tikzpicture}  
& = 6 mm & \begin{tikzpicture}[baseline=0][line width =1 pt] \fill [fill=white,draw=black] (0,0) circle (.2 cm ) ; \end{tikzpicture}
& = 4 mm \\ \hline Text \textbf{(4,5,6)} & \begin{tikzpicture}[baseline=0][line width =1 pt] \fill [fill=white,draw=black] (0,0) circle (.2 cm ) ; \end{tikzpicture}
& = 4 mm && \\ \hline \end{tabular} \end{table} \FloatBarrier \begin{table}[!htb] \centering \newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} \begin{tabular}{|L{6.5cm}|C{1.75cm}C{1.75cm}|C{1.75cm}C{1.75cm}|} \hline \textbf{Text} & \multicolumn{2}{c|}{\textbf{Text}} & \multicolumn{2}{c|}{\textbf{Text}}\\ \hline Text \textbf{(1)} & \begin{tikzpicture}[baseline=0][line width =1 pt] \fill [fill=black,draw=black] (1,1 cm) coordinate (B) --node{} (0,1) coordinate(A) -- node{} (0,0) coordinate(C) -- node{} (1,0) coordinate(D) -- node{} cycle ; \fill [fill=white,draw=black] (.5,.5) circle (.4 cm ) ; \end{tikzpicture} & = 8 mm / 10 mm & \begin{tikzpicture}[baseline=0][line width =1 pt] \fill [fill=black,draw=black] (1,1 cm) coordinate (B) --node{} (0,1) coordinate(A) -- node{} (0,0) coordinate(C) -- node{} (1,0) coordinate(D) -- node{} cycle ; \fill [fill=white,draw=black] (.5,.5) circle (.4 cm ) ; \end{tikzpicture} & = 8 mm / 10 mm \\ \hline Text \textbf{(2)} & \begin{tikzpicture}[baseline=0][line width =1 pt] \fill [fill=white,draw=black] (0,0) circle (.4 cm ) ; \end{tikzpicture} & = 8 mm & \begin{tikzpicture}[baseline=0][line width =1 pt] \fill [fill=white,draw=black] (0,0) circle (.4 cm ) ; \end{tikzpicture} & = 8 mm \\ \hline Text \textbf{(3)} & \begin{tikzpicture}[baseline=0][line width =1 pt] \fill [fill=white,draw=black] (0,0) circle (.3 cm ) ; \end{tikzpicture}
& = 6 mm & \begin{tikzpicture}[baseline=0][line width =1 pt] \fill [fill=white,draw=black] (0,0) circle (.2 cm ) ; \end{tikzpicture}
& = 4 mm \\ \hline Text \textbf{(4,5,6)} & \begin{tikzpicture}[baseline=0][line width =1 pt] \fill [fill=white,draw=black] (0,0) circle (.2 cm ) ; \end{tikzpicture}
& = 4 mm \vspace{.5cm} && \\ \hline \end{tabular} \end{table} \FloatBarrier \end{document}

Re: Vertikale Ausrichtung in Tabellen

Verfasst: So 28. Feb 2021, 01:28
von Bartman

Die erste Tabelle zeigt einen Vorschlag, der die in Deiner Tabelle vorgegebenen waagerechten und senkrechten Linien beibehält, während der zweite Vorschlag von den Befehlen des Pakets booktabs Gebrauch macht. Die Beispiele in tabsatz können nützliche Anreize für den Tabellenentwurf mit dem genannten Paket bieten.

Falls Du den Zelleninhalten der ersten Tabelle mehr Raum geben darfst und möchtest, dann habe ich dafür mal zwei mögliche Herangehensweisen hinzugefügt.

\documentclass[twoside, 12pt, a4paper, openright]{report}

%\usepackage[utf8]{inputenc}% https://texwelt.de/fragen/26496
\usepackage[T1]{fontenc}
\usepackage{lmodern}% https://texwelt.de/fragen/5537
\usepackage[ngerman]{babel}
\usepackage{tikz}% lädt xcolor, graphicx und wird von pgfplots geladen
\usepackage[locale=DE]{siunitx}
\usepackage{booktabs}
% Stellt Befehle für die senkrechte Ausrichtung der TikZ-Zeichnungen zur Verfügung.
\usepackage{adjustbox}
\usepackage{varwidth}

\newcommand{\circleInRectangle}{%
    \tikz
        \fill
            rectangle (1,1)
            (.5,.5) circle [radius=4mm]
        ;%
}

\newcommand{\emptyCircle}[1]{%
    \tikz\draw circle [radius=#1];%
}

\newcommand{\setCellHeight}[2]{%
    \begin{varwidth}[c][#1]{\linewidth}
    #2%
    \end{varwidth}%
}

% https://tex.stackexchange.com/questions/562009
%\newcommand{\extendCellHeight}[2]{%
%    $\vcenter{\vspace{#1}\hbox{#2}\vspace{#1}}$%
%}

\begin{document}
\begin{table}[!htb]
\centering
\adjustboxset{valign=c}
\begin{tabular}{|l| *2{c|l|}}
\hline
\textbf{Text} 
& \multicolumn{2}{c|}{\textbf{Text}} 
& \multicolumn{2}{c|}{\textbf{Text}}\\
\hline
Text \textbf{(1)}
& \adjustbox{}{\circleInRectangle}
& = \SI{8}{\mm} / \SI{10}{\mm}
& \adjustbox{}{\circleInRectangle}
& = \SI{8}{\mm} / \SI{10}{\mm}
\\
\hline
\setCellHeight{1cm}{Text \textbf{(2)}}
& \adjustbox{}{\emptyCircle{4mm}}
& = \SI{8}{\mm}
& \adjustbox{}{\emptyCircle{4mm}}
& = \SI{8}{\mm}
\\
\hline
\setCellHeight{.9cm}{Text \textbf{(3)}}
& \adjustbox{}{\emptyCircle{3mm}}
& = \SI{6}{\mm}
& \adjustbox{}{\emptyCircle{2mm}}
& = \SI{4}{\mm}
\\
\hline
\setCellHeight{.7cm}{Text \textbf{(4,5,6)}}
& \adjustbox{}{\emptyCircle{2mm}}
& = \SI{4}{\mm}
&&
\\
\hline
\end{tabular}
\end{table}

\begin{table}[!htb]
\centering
\adjustboxset{valign=c}
\begin{tabular}{l *2{cl}}
\toprule
\textbf{Text} 
& \multicolumn{2}{c}{\textbf{Text}} 
& \multicolumn{2}{c}{\textbf{Text}}\\
\cmidrule(lr){1-1}
\cmidrule(lr){2-3}
\cmidrule(lr){4-5}
Text \textbf{(1)} & \adjustbox{}{\circleInRectangle}
& = \SI{8}{\mm} / \SI{10}{\mm}
& \adjustbox{}{\circleInRectangle}
& = \SI{8}{\mm} / \SI{10}{\mm}
\\
\addlinespace
Text \textbf{(2)}
& \adjustbox{}{\emptyCircle{4mm}}
& = \SI{8}{\mm}
& \adjustbox{}{\emptyCircle{4mm}}
& = \SI{8}{\mm}
\\
\addlinespace
Text \textbf{(3)}
& \adjustbox{}{\emptyCircle{3mm}}
& = \SI{6}{\mm}
& \adjustbox{}{\emptyCircle{2mm}}
& = \SI{4}{\mm}
\\
\addlinespace
Text \textbf{(4,5,6)}
& \adjustbox{}{\emptyCircle{2mm}}
& = \SI{4}{\mm}
&&
\\
\bottomrule
\end{tabular}
\end{table}
\end{document}

Re: Vertikale Ausrichtung in Tabellen

Verfasst: So 28. Feb 2021, 09:55
von Melli_94

Vielen lieben Dank!! Hat mir wirklich sehr geholfen! :)