Vertikale Ausrichtung in Tabellen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Vertikale Ausrichtung in Tabellen

Re: Vertikale Ausrichtung in Tabellen

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

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

Re: Vertikale Ausrichtung in Tabellen

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

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}

Vertikale Ausrichtung in Tabellen

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

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}

Nach oben