多單元後單元不居中

多單元後單元不居中

我正在嘗試創建一個所有單元格居中的表格。我找到了一種方法來實現這一點,但所有單元格都必須包含:

\multicolumn{1}{|c|}{"Text"}

有沒有辦法讓文字居中而不需要到處新增多列命令?

表格

\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}

當我嘗試僅使用居中單元格時,我遇到單元格大小不相等的問題。 表格居中

答案1

這是一個更短的程式碼:

\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} 

在此輸入影像描述

答案2

以下是如何使用{NiceTabular}of來建構該表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} 

您需要多次編譯(因為nicematrix在背景使用 PGF/Tikz 節點)。

上述程式碼的輸出

答案3

p{...}由於您指定了列類型,因此列中的文字未居中。正如對您的問題的評論中提到的,您應該將列類型修改為:

>{\centerng\arraybackslash}p{<column width>}

但是,我不會用於slashbox表中的第一個單元格,對於表,我將使用tabularx表環境並在所有列中使用相同的寬度:

在此輸入影像描述

我也會刪除所有不必要的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}

相關內容