为什么表格线不正确(多列,多行?)

为什么表格线不正确(多列,多行?)

我使用下面的代码生成了一个表格,但它看起来并不正确。引起问题的区域用红色圈出。多列/多行包是否与表格不同步?有什么建议可以解决这些问题吗?

提前致谢!

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{boldline}

\begin{table}[b!]
    \caption{.}
 \renewcommand{\arraystretch}{1.15}%
\centering
\setlength{\tabcolsep}{5.45pt}
\begin{tabular}{l c || c c c | c c c | c c} % 
\hlineB{2}
\multirow{3}{*}{} & \multirow{3}{*}{Year} & \multicolumn{3}{c|}{Technique}   &  \multicolumn{3}{c|}{Type}   & \multicolumn{2}{c}{Detail}\\
          &   & \multirow{2}{*}{Type}  &$\tau$ & \multirow{2}{*}{Idea}   & \multicolumn{3}{c|}{$\bar{u}$}   & \multicolumn{2}{c}{Idea}\\
    &   &  & [$-$] & &  $a$ & $b$ & $c$ & 1 & 2  \\ \hline \hline
& 2020 & -- & -- & -- & -- & -- & -- & -- & -- \\ 
\hlineB{2}
\end{tabular}
\end{table}
\end{document}

由于答案引用了该问题的原始代码,因此在此提供以供参考。 上述代码已由OP编辑。

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}

\begin{document}
\begin{table}[b!]
    \caption{.}
 \renewcommand{\arraystretch}{1.15}
\centering
\setlength{\tabcolsep}{5.45pt}
\begin{tabular}{l c || c c c | c c c | c c} 
\toprule
        \multirow{3}{*}{} & \multirow{3}{*}{Year} & \multicolumn{3}{c}{Technique}   &  \multicolumn{3}{c}{Type}   & \multicolumn{2}{c}{Detail}\\
          &   & \multirow{2}{*}{Type}  &$\tau$ & \multirow{2}{*}{Idea}   & \multicolumn{3}{c}{$\bar{u}$}   & \multicolumn{2}{c}{Idea}\\
    &   &  & [$-$] & &  $a$ & $b$ & $c$ & 1 & 2  \\ \hline \hline
& 2020 & -- & -- & -- & -- & -- & -- & -- & -- \\ 
\bottomrule
\end{tabular}
\end{table}
\end{document}

答案1

正如评论中指出的那样,如果您想要垂直规则,那么不应该使用booktabs并坚持使用常规\hline宏。

另外,如果您使用multicols,则需要在列定义中告诉他们您想要使用垂直线。因此,\multicolumn{3}{c}{...}您应该\multicolumn{3}{c|}{...}在适当的位置写上 ,而不是 。

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{multirow}

\begin{document}
\begin{table}[b!]
\caption{.}
\renewcommand{\arraystretch}{1.15}
\centering
\setlength{\tabcolsep}{5.45pt}
\begin{tabular}{l c || c c c | c c c | c c} 
\hline
\multirow{3}{*}{} & \multirow{3}{*}{Year} & \multicolumn{3}{c|}{Technique} &  \multicolumn{3}{c|}{Type} & \multicolumn{2}{c}{Detail} \\
 &  & \multirow{2}{*}{Type} & $\tau$ & \multirow{2}{*}{Idea} & \multicolumn{3}{c|}{$\bar{u}$} & \multicolumn{2}{c}{Idea} \\
 &  &  & [$-$] & &  $a$ & $b$ & $c$ & 1 & 2  \\ \hline \hline
 & 2020 & -- & -- & -- & -- & -- & -- & -- & -- \\ 
\hline
\end{tabular}
\end{table}
\end{document}

在此处输入图片描述

答案2

如果您确实想将垂直规则与水平规则一起使用booktabs(这完全不符合 的精神\booktabs),则应该{NiceTabular}使用nicematrix

\documentclass{article}
\usepackage{caption}
\usepackage{nicematrix}
\usepackage{booktabs}

\begin{document}
\begin{table}[b!]
\caption{My Caption}
\renewcommand{\arraystretch}{1.15}
\centering
\setlength{\tabcolsep}{5.45pt}
\begin{NiceTabular}{c || c c c | c c c | c c} 
\toprule
& \Block{1-3}{Technique} &&&  \Block{1-3}{Type} &&& \Block{1-2}{Detail} \\
Year & \Block{2-1}{Type} & $\tau$ & \Block{2-1}{Idea} & \Block{1-3}{$\bar{u}$} &&& \Block{1-2}{Idea} \\
&  & [$-$] & &  $a$ & $b$ & $c$ & 1 & 2  \\ 
\hline\hline
2020 & -- & -- & -- & -- & -- & -- & -- & -- \\ 
\bottomrule
\end{NiceTabular}
\end{table}
\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

相关内容