Ich versuche, eine Tabelle zu erstellen, bei der alle Zellen zentriert sind. Ich habe einen Weg gefunden, dies zu ermöglichen, aber alle Zellen müssen Folgendes enthalten:
\multicolumn{1}{|c|}{"Text"}
Gibt es eine Möglichkeit, den Text zu zentrieren, ohne überall den Befehl für mehrere Spalten hinzufügen zu müssen?
\documentclass[10pt]{article}
\usepackage[english]{babel}
\usepackage{a4wide}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\usepackage{float}
\usepackage{makecell}
\usepackage{slashbox}
\usepackage{multirow}
\usepackage{array}
\begin{document}
\begin{table}[H]
\centering
\begin{tabular} {|c|p{.7\textwidth/5}|p{.7\textwidth/5}|p{.7\textwidth/5}|p{.7\textwidth/5}|}
\hline
\multirow{2}{*}{\backslashbox{Distance [m]}{Module}} & \multicolumn{2}{c|}{Range Test [dBm]} & \multicolumn{2}{c|}{Throughput Test [Kbps]}\\\cline{2-5}
& \multicolumn{1}{c|}{A-B} & \multicolumn{1}{c|}{A-C} & \multicolumn{1}{c|}{A-B} & \multicolumn{1}{c|}{A-C} \\\cline{1-5}
\multicolumn{1}{|c|}{10} & \multicolumn{1}{c|}{•} & • & • & • \\
\hline
\multicolumn{1}{|c|}{15} & • & • & • & • \\
\hline
\multicolumn{1}{|c|}{20} & • & • & • & • \\
\hline
\multicolumn{1}{|c|}{25} & • & • & • & • \\
\hline
\multicolumn{1}{|c|}{30} & • & • & • & • \\
\hline
\multicolumn{1}{|c|}{35} & • & • & • & • \\
\hline
\multicolumn{1}{|c|}{40} & • & • & • & • \\
\hline
\multicolumn{1}{|c|}{45} & • & • & • & • \\
\hline
\multicolumn{1}{|c|}{50} & • & • & • & • \\
\hline
\end{tabular}
\end{table}
\end{document}
wenn ich versuche, nur zentrierte Zellen zu verwenden, tritt das Problem auf, dass die Zellen nicht gleich groß sind.
Antwort1
Hier ein viel kürzerer Code:
\documentclass[10pt]{article}
\usepackage[english]{babel}
%\usepackage{a4wide}
\usepackage{geometry}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\usepackage{float}
\usepackage{makecell}
%\usepackage{slashbox}
\usepackage{diagbox}
\usepackage{multirow}
\usepackage{array}
\begin{document}
\begin{table}[H]
\centering\setlength{\extrarowheight}{2pt}
\begin{tabular} {|c|*{4}{>{\centering\arraybackslash}p{.7\textwidth/5}|}}
\hline
\multirow{2}{*}{\diagbox[height=\dimexpr2\line +6pt]{Distance \rlap{{[m]}}}{Module}} & \multicolumn{2}{c|}{Range Test [dBm]} & \multicolumn{2}{c|}{Throughput Test [Kbps]}\\[2pt]\cline{2-5}
& A-B & A-C & A-B & A-C \\\cline{1-5}
10 & • & • & • & • \\
\hline
15
& • & • & • & • \\
\hline
20 & • & • & • & • \\
\hline
25 & • & • & • & • \\
\hline
30 & • & • & • & • \\
\hline
35 & • & • & • & • \\
\hline
40 & • & • & • & • \\
\hline
45 & • & • & • & • \\
\hline
50 & • & • & • & • \\
\hline
\end{tabular}
\end{table}
\end{document}
Antwort2
So können Sie diese Tabelle mit {NiceTabular}
erstellen nicematrix
.
\documentclass{article}
\usepackage{nicematrix}
\usepackage{float}
\begin{document}
\begin{table}[H]
\centering\setlength{\extrarowheight}{2pt}
\begin{NiceTabular}{w{c}{3cm}*{4}{w{c}{0.14\textwidth}}}[hvlines]
\Block{2-1}{\diagbox{Distance [m]}{Module}} & \Block{1-2}{Range Test [dBm]} && \Block{1-2}{Throughput Test [Kbps]}\\
& A-B & A-C & A-B & A-C \\
10 & • & • & • & • \\
15 & • & • & • & • \\
20 & • & • & • & • \\
25 & • & • & • & • \\
30 & • & • & • & • \\
35 & • & • & • & • \\
40 & • & • & • & • \\
45 & • & • & • & • \\
50 & • & • & • & • \\
\end{NiceTabular}
\end{table}
\end{document}
Sie benötigen mehrere Kompilierungen (da nicematrix
im Hintergrund PGF/Tikz-Knoten verwendet werden).
Antwort3
Der Text in Ihren Spalten ist nicht zentriert, da Sie p{...}
den Spaltentyp vorschreiben. Wie in den Kommentaren zu Ihrer Frage erwähnt, sollten Sie den Spaltentyp wie folgt ändern:
>{\centerng\arraybackslash}p{<column width>}
Ich würde dies jedoch nicht slashbox
für die erste Zelle in der Tabelle verwenden, sondern für die Tabelle tabularx
die Tabellenumgebung und die gleiche Breite in allen Spalten:
Außerdem würde ich alles Unnötige entfernen multicolumns
:
\documentclass[10pt]{article}
\usepackage[english]{babel}
\usepackage{a4wide}
%\usepackage[utf8]{inputenc}
\usepackage{mathtools}
%\usepackage{float}
\usepackage{array, makecell, multirow, tabularx}
%\usepackage{slashbox}
\begin{document}
\begin{table}[htb]
\centering
\renewcommand\arraystretch{1.2}
\begin{tabularx}{0.7\linewidth}{| c | *{4}{>{\centering\arraybackslash}X|}}
\hline
& \multicolumn{4}{c|}{Module} \\
\cline{2-5}
\multirow{3}{=}{\centering Distance [m]}
& \multicolumn{2}{c|}{Range Test [dBm]}
& \multicolumn{2}{c|}{Throughput Test [Kbps]} \\
\cline{2-5}
& A-B & A-C & A-B & A-C \\
\cline{1-5}
10 & • & • & • & • \\
\hline
15 & • & • & • & • \\
\hline
20 & • & • & • & • \\
\hline
25 & • & • & • & • \\
\hline
30 & • & • & • & • \\
\hline
35 & • & • & • & • \\
\hline
40 & • & • & • & • \\
\hline
45 & • & • & • & • \\
\hline
50 & • & • & • & • \\
\hline
\end{tabularx}
\end{table}
\end{document}