LaTeX 中的多行表格

LaTeX 中的多行表格

我在 LaTeX 中使用 Multirow 时遇到问题,即每次使用它时都会出现某种行跳过的情况。代码如下:

\begin{table}[!ht]
    \centering
    \caption{Caption}
    \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
        \hline & & K1 & K2 & S1 & S2 & C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 \\
        \hline \multirow{6}{*}{\rotatebox[origin=c]{270}{Year 1}} & KD &
        & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ 
        \hline \multirow{4}{*}{\rotatebox[origin=c]{270}{Year 2}} & KD & & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        \hline \multirow{4}{*}{\rotatebox[origin=c]{270}{Year 3}} & KD & & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \hline
    \end{tabular}
    \label{tab:my_label}
\end{table}

输出如下: 在此处输入图片描述

如您所见,每行有多行命令的地方都与下一行之间存在间隙。

任何帮助深表感谢!

答案1

当我将您的代码放入 MWE 中时,出现了错误。将&第二行的所有内容与第一行对齐后,发现&所有\multirow行都太多了。

\multirow这个 MWE在 LuaLaTeX 和 PDFLaTeX 中使用和编译后没有显示出差距:

\documentclass[a4paper,11pt]{article}

\usepackage{caption}
\usepackage{multirow}
\usepackage{tabularx}
\usepackage{graphicx}

\begin{document}
    
\begin{table}[!ht]
    \centering
    \caption{Caption}
    \begin{tabular}{|*{14}{c|}}
        \hline
            &       & K1 & K2 & S1 & S2 & C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 \\ \hline
        \multirow{6}{*}{\rotatebox[origin=c]{270}{Year 1}} 
            & KD    &
                        &    &    &    &    &    &     &    &    &    &    &  \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ 
        \hline \multirow{4}{*}{\rotatebox[origin=c]{270}{Year 2}} & KD & & & & & & & & & & & &  \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        \hline \multirow{4}{*}{\rotatebox[origin=c]{270}{Year 3}} & KD & & & & & & & & & & & &  \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \cline{2-14}
        & KD & & & & & & & & & & & & \\ \hline
    \end{tabular}
    \label{tab:my_label}
\end{table}

\end{document}

在此处输入图片描述

答案2

您应该注意,表中的每一行都有 $n-1$ 个 & 符号,其中 $n$ 是表中定义的列数。在您的例子中,您定义了 14 列,因此每行应该有 13 个 & 符号 ( &),但在您开始多行单元格的行中,您有更多 & 符号,因此报告了问题。

无关:对于您的表格,我会使用tblrtabularray和旋转单元格rotatingmakecell包。使用它们,表格代码会更短一些,单元格内容的垂直间距会更好:

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

\usepackage[skip=1ex, font=small,labelfont=bf]{caption}
\usepackage{rotating}
\usepackage{makecell}
\renewcommand\theadfont{}
\usepackage{tabularray}

\begin{document}
    \begin{table}[!ht]
    \caption{Caption}
    \label{tab:my_label}
\settowidth\rotheadsize{Year 3}
\begin{tblr}{hlines, vlines, 
             colspec = { *{14}{X[c]} },
             }
    &   & K1 & K2 & S1 & S2 & C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 \\ 
\SetCell[r=6]{cmd=\rothead} Year 1  
        & KD & & & & & & & & & & & & \\  
        & KD & & & & & & & & & & & & \\  
        & KD & & & & & & & & & & & & \\  
        & KD & & & & & & & & & & & & \\  
        & KD & & & & & & & & & & & & \\  
        & KD & & & & & & & & & & & & \\
\SetCell[r=4]{cmd=\rothead} Year 2
        & KD & & & & & & & & & & & & \\
        & KD & & & & & & & & & & & & \\
        & KD & & & & & & & & & & & & \\
        & KD & & & & & & & & & & & & \\
\SetCell[r=4]{cmd=\rothead} Year 3
        & KD & & & & & & & & & & & & \\
        & KD & & & & & & & & & & & & \\
        & KD & & & & & & & & & & & & \\
        & KD & & & & & & & & & & & & \\
\end{tblr}
    \end{table}
\end{document}

在此处输入图片描述

(红线表示文档页面布局)

相关内容