表格中的单元格间距统一

表格中的单元格间距统一

我需要一个非常简单的表格,其中所有单元格(第一个单元格除外)的宽度相同。第一行的前几个单元格有两个字符,后三个单元格只有一个字符。

即使固定,我也无法有均匀的间距\setlength:第一个单元格中具有单个字符的列总是较细。

\documentclass{scrbook}
\begin{document}


\chapter{votazioni quesiti e documento}

\setlength{\tabcolsep}{7pt}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}

        \hline
            &1A &1B  &1C  &1D  &1E  &1F  &2A  &2B  &2C  &2D  &2E  &2F  & 3   & 4   & D \\
    \hline
    white&  &  &  &  &  &  &  &  &  &  &  &  &  &  &   \\
    \hline
    red&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    blue&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    cyan&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    yellow&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    green&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    purple&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    black&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    silver&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    gold&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    pink&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    brown&  &  &  &  &  &  &  &  &  &  &  &  &  &  &   \\
    \hline
    orange&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    darkblue&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    lightblue&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    whatelse&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    VOTO \%&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline

\end{tabular}
\end{document}

答案1

由于单元格内的自动换行似乎不是当前表格的必需功能,我建议您不是使用基本p列类型。相反,我建议您加载array包并使用其w列类型。此列类型允许您指定所需的固定宽度,例如5mm

在此处输入图片描述

\documentclass{scrbook}
\usepackage{array} % for 'w' column type

\begin{document}
   
\chapter{votazioni quesiti e documento}

\begin{center}
\setlength{\tabcolsep}{4pt} % default: 6pt
\begin{tabular}{ |l| *{15}{wc{5mm}|} } %15 'w' cols, centered, width 5mm
    \hline
          &1A&1B&1C&1D&1E&1F&2A&2B&2C&2D&2E&2F& 3& 4& D  \\
    \hline
    white &  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    red   &  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    blue  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    cyan  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    yellow&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    green &  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    purple&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    black &  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    silver&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    gold  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    pink  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    brown &  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    orange&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    darkblue &  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    lightblue&  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    whatelse &  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
    VOTO \%  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &    \\
    \hline
\end{tabular}
\end{center}
\end{document}

答案2

除第一列之外的所有列均具有tabularray包装和列类型:X[c]

\documentclass{scrbook}
%---------------- Show page layout. Don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%

\usepackage{tabularray}

\begin{document}
\chapter{votazioni quesiti e documento}

\centering
\begin{tblr}{hlines, vlines,
             colspec = {l *{15}{X[c]} },
              colsep = 3.4pt,
             }
            & 1A & 1B & 1C & 1D & 1E & 1F & 2A & 2B & 2C & 2D & 2E & 2F & 3 & 4 & D \\
white       &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
red         &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
blue        &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
cyan        &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
yellow      &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
green       &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
purple      &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
black       &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
silver      &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
gold        &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
pink        &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
brown       &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\ 
orange      &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
darkblue    &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
lightblue   &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
whatelse    &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
VOTO \%     &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
\end{tblr}

\end{document}

在此处输入图片描述

(红线表示文本区域边框)

附录: 使用tabularx包和列可获得相同的结果>{\centering\arraybackslash}X。在这种情况下,MWE 为:

\documentclass{scrbook}
\usepackage{tabularx}

\begin{document}
\chapter{votazioni quesiti e documento}

\centering
\setlength\tabcolsep{3.4pt}
    \begin{tabularx}{\linewidth}{|l| *{15}{ >{\centering\arraybackslash}X| } }
    \hline
            & 1A & 1B & 1C & 1D & 1E & 1F & 2A & 2B & 2C & 2D & 2E & 2F & 3 & 4 & D \\
    \hline
white       &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
white       &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
red         &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
blue        &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
cyan        &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
yellow      &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
green       &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
purple      &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
black       &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
silver      &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
gold        &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
pink        &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
brown       &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
orange      &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
darkblue    &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
lightblue   &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
whatelse    &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
    \hline
VOTO \%     &    &    &    &    &    &    &    &    &    &    &    &    &   &   &   \\
\hline
    \end{tabularx}
\end{document}

答案3

将 \hspace{1mm} 添加到包含单个字母的列。这应该会使所有列的宽度相等。

您可以随时通过使用不同的间距 \hspace{2mm}、 \hspace{3mm}、... 来调整宽度。

相关内容