表格列中的垂直线

表格列中的垂直线

在下表中我想分隔各列:


\begin{tabularx}{\textwidth}{
l
>{\centering}X
>{\centering}X
>{\centering}X
>{\centering}X
>{\centering}X
>{\centering}X
>{\centering}X
>{\centering}X
>{\centering}X
>{\centering}X
>{\centering}X
>{\centering}X
>{\centering\arraybackslash}X
}
 & \multicolumn{13}{c}{Exercise}\\
\cmidrule{2-14}
{Name} & 1(i) & 1(ii) & 1(iii) &2(i) & 2(ii) & 2(iii) & 2(iv) & 2(v) & 2(vi)& 3(i) & 3(ii)& 3(iii)& 4 \\\hline
 & & & & & & & & & & & & &\\
 & & & & & & & & & & & & &\\
 & & & & & & & & & & & & &\\
 & & & & & & & & & & & & &
\end{tabularx}

在 tabularx 中,后面写 {c|c...|c} 似乎不起作用。如有任何建议,我将不胜感激。

答案1

你的表格应该是什么样子并不完全清楚。像这样:

在此处输入图片描述

使用该tabularray包的表格代码很简单:

\documentclass{article}
\usepackage{geometry} % added, your page layout is unknow
\usepackage{tabularray}
\UseTblrLibrary{booktabs}

\begin{document}
    \begin{table}[ht]
\begin{tblr}{vlines,
             colsep=3pt,
             colspec = {l *{13}{X[c]}}
             }
    \toprule
\SetCell[r=2]{l}    Name
    &   \SetCell[c=13]{c}   Exercise    \\
    \midrule
    & 1(i) & 1(ii) & 1(iii) 
    & 2(i) & 2(ii) & 2(iii) & 2(iv) & 2(v) & 2(vi)
    & 3(i) & 3(ii) & 3(iii) & 4         \\
    \hline
    &   &   &   &   &   &   &   &   &   &   &   &   &   \\
    &   &   &   &   &   &   &   &   &   &   &   &   &   \\
    &   &   &   &   &   &   &   &   &   &   &   &   &   \\
    &   &   &   &   &   &   &   &   &   &   &   &   &   \\
    \bottomrule
\end{tblr}
    \end{table}
\end{document}

或者你喜欢每行之间有水平线?在这种情况下,你需要在表格前言中添加hline{4-Y}=solid,,即:

\begin{tblr}{hline{4-Y}=solid, vlines,
             colsep=3pt,
             colspec = {l *{13}{X[c]}}
             }

在这种情况下,表格是:

在此处输入图片描述

答案2

由于没有迹象表明需要自动换行任何数据列中的单元格,我将使用具有所有数据列的列类型tabular*的环境c,而不是环境tabularx

目前,标题单元格中的大部分信息都相当重复,标签“1”和“3”各出现了三次,标签“2”出现了六次 [6!]。减少由此产生的视觉混乱的一种方法是,在表格标题中提供更多层次结构,如下例所示。

经过这些调整后,就不需要任何垂直线了,从而进一步减少混乱。

在此处输入图片描述

\documentclass{article}
\usepackage{array,booktabs}

\begin{document}
\begin{table}[ht]
\setlength\tabcolsep{0pt} % make LaTeX figure out permissible amount of intercolumn whitespace
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} l *{13}{c} }
\toprule
Name & \multicolumn{13}{c}{Exercise}\\
\cmidrule{2-14}
& \multicolumn{3}{c}{1} & \multicolumn{6}{c}{2} & \multicolumn{3}{c}{3} & 4 \\
\cmidrule{2-4}  \cmidrule{5-10} \cmidrule{11-13} 
& (i) & (ii) & (iii) & (i) & (ii) & (iii) & (iv) & (v) & (vi) & (i) & (ii) & (iii) &  \\
\midrule
 & & & & & & & & & & & & & \\
 & & & & & & & & & & & & & \\
 & & & & & & & & & & & & & \\
 & & & & & & & & & & & & & \\
\bottomrule
\end{tabular*}
\end{table}
\end{document}

相关内容