Zellen werden nach Multizellenbildung nicht zentriert

Zellen werden nach Multizellenbildung nicht zentriert

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?

Tabellarisch

\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. Tabelle zentriert

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} 

Bildbeschreibung hier eingeben

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 nicematrixim Hintergrund PGF/Tikz-Knoten verwendet werden).

Ausgabe des obigen Codes

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 slashboxfür die erste Zelle in der Tabelle verwenden, sondern für die Tabelle tabularxdie Tabellenumgebung und die gleiche Breite in allen Spalten:

Bildbeschreibung hier eingeben

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}

verwandte Informationen