\multirow 命令后缺少行(垂直跳过)

\multirow 命令后缺少行(垂直跳过)

我正在创建一个将使用\multirow(和 \multicolumn) 命令的表。在编译之前,我可以想象我期望的结果,它是这样的:

在此处输入图片描述

因此,我的代码如下所示:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{multirow}
\begin{document}

\begin{table}
  \centering
  \caption{My caption here}\label{tab:4}
\begin{tabular}{p{3cm} p{3cm}p{3cm}p{3cm}}\toprule
  \multirow{2}{3cm}{\textbf{Something ForSure ThreeLined }}& \multicolumn{3}{c}{\bfseries Just a phrase}\\
  & \textbf{Word1} & \textbf{Word2} & \textbf{Word3}\\
Third row & Upper1 & Upper2 & Upper3\\
 & & Lower2 (With a text of description) & Lower3 (With a text of description)\\
\bottomrule
\end{tabular}
\end{table}
\end{document}

(最初的p列是m和“第三行”)

我感觉还好,直到我给出编译命令。

然后输出是这样的:

在此处输入图片描述

在最初的几分钟里,我正在寻找我的错误,在命令中搜索“3”而不是“2” multirow......但没有运气......然后寻找缺少的“&”或几个可能的拼写错误等等。

然后我决定创建一个 MWE,并将其更改mp列类型...现在我在这里,我的问题是:

应该\multirow这样做吗?或者这是否可以(并且必须)像错误一样修复?

我知道我可以通过在该命令后添加一个空行来修复代码\miltirow。但是应该这样编译吗?

PS:有兴趣的人可以在这里找到工作代码:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{multirow}
\begin{document}

\begin{table}
  \centering
  \caption{My caption here}\label{tab:4}
\begin{tabular}{p{3cm} p{3cm}p{3cm}p{3cm}}\toprule
  \multirow{2}{3cm}{\textbf{Something ForSure ThreeLined }}& \multicolumn{3}{c}{\bfseries Just a phrase}\\
  & \textbf{Word1} & \textbf{Word2} & \textbf{Word3}\\&&&\\
Third raw & Upper1 & Upper2 & Upper3\\
 & & Lower2 (With some text of description) & Lower3 (With some text of description)\\
\bottomrule
\end{tabular}
\end{table}
\end{document}

答案1

单元multirow格并不像许多人期望的那样工作:它的大小,即高度由其内容决定。相反,它是由其他列中跨越行的文本行的高度总和决定的。

例如:在您的情况下,它的高度由表格中其他列的两行高度决定。因此,第三行文本溢出单元格(在您的情况下位于底部)。

能做什么?事先不能做什么。您首先应该知道,跨行文本有多少行,以及multirow单元格内容将有多少行。然后,您可以进行微调。例如,在 mwe 中,您可以通过以下更改来增加行高arraystretch

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs, makecell}
\usepackage{multirow}
\begin{document}

\begin{table}
  \centering
  \renewcommand\arraystretch{1.6}
  \caption{My caption here}\label{tab:4}
\begin{tabular}{p{3cm} p{3cm} p{3cm} p{3cm}}
    \toprule
\multirow[t]{3}{=}{\textbf{Something ForSure ThreeLined }}
    & \multicolumn{3}{c}{\bfseries Just a phrase}           \\
    & \textbf{Word1} & \textbf{Word2} & \textbf{Word3}      \\
Third row   & Upper1 & Upper2 & Upper3                      \\
    &       & Lower2 (With a text of description)
                     & Lower3 (With a text of description)  \\
\bottomrule
\end{tabular}
\end{table}
\end{document}

这使:

在此处输入图片描述

注意:我选择\multirow[t]{3}{=}{...}跨行是因为其高度为三行常规文本(第三行“属于”设置强制的单元格中的额外垂直空间\renewcommand\arraystretch{1.6})。

相关内容