我在 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 个 & 符号 ( &
),但在您开始多行单元格的行中,您有更多 & 符号,因此报告了问题。
无关:对于您的表格,我会使用tblr
包tabularray
和旋转单元格rotating
和makecell
包。使用它们,表格代码会更短一些,单元格内容的垂直间距会更好:
\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}
(红线表示文档页面布局)