多行单元格内容溢出

多行单元格内容溢出

如果多行单元格内容高于跨行的总高度,则会溢出表格高度。这是正常现象吗?

\documentclass{article}
\usepackage{multirow,longtable}
\begin{document}
\begin{longtable}{|p{20mm}|p{20mm}|}
\hline
A &  B 
\\\hline 
\multirow{2}{20mm}{\parbox{18mm}{AB\linebreak BC \linebreak CD \linebreak EF}}
& X, then Y
\\\cline{2-2} 
 & Y, then Z
\\\hline
\end{longtable}
\end{document}

多行单元格内的高度溢出

如果是,我该如何获得类似 HTML 表格的行为以适应其中的内容?实际上,除标题外,所有单元格中都有很多段落文本。

答案1

这里还有几种其他可能性,您无需测量。由于左侧条目实际上有 4 个“物理”行高,尽管从逻辑上讲它是 2 行,所以我\multirow{4}为它指定了高度。Multirow 不知道行的实际高度(TeX 未提供该信息),因此它按默认行高计算。

该软件包的新文档中multirow有一节关于此问题的内容,并提供了几种解决方案。

\documentclass{article}
\usepackage{multirow,longtable}
\begin{document}
\begin{longtable}{|p{20mm}|p{20mm}|}
\hline
A &  B
\\\hline
\multirow{4}{=}{AB\newline BC \newline CD \newline EF}
    &   X, then Y   \\
    &  \\ \cline{2-2}
    &  Y, then Z \\
    &  \\
\hline
\end{longtable}

\begin{longtable}{|p{20mm}|p{20mm}|}
\hline
A &  B
\\\hline
\multirow{4}{=}{AB\newline BC \newline CD \newline EF}
    &   X, then Y   \\ \cline{2-2}
    &  Y, then Z \\
    &  \\
    &  \\
\hline
\end{longtable}

\begin{longtable}{|p{20mm}|p{20mm}|}
\hline
A &  B
\\\hline
\multirow{4}{=}{AB\newline BC \newline CD \newline EF}
    &   \multirow{2}{=}{X, then Y}   \\
    &  \\ \cline{2-2}
    &  \multirow{2}{=}{Y, then Z} \\
    &  \\
\hline
\end{longtable}

\end{document}

在此处输入图片描述

答案2

假设您拥有最新版本的软件包multirow,并考虑到我上面的评论:

\documentclass{article}
\usepackage{multirow,longtable}
\begin{document}
\begin{longtable}{|p{20mm}|p{20mm}|}
\hline
A &  B
\\\hline
\multirow{2}{=}{AB\newline BC \newline CD \newline EF}
    & \rule[-1.25em]{0em}{3em}   X, then Y   \\\cline{2-2}
    & \rule[-1.25em]{0em}{3em}   Y, then Z
\\\hline
\end{longtable}
\end{document}

给出:

在此处输入图片描述

答案3

一个简单的解决方案makecell:它允许在单元格中换行,并定义一个\Gape命令来改变单元格的高度和深度:

\documentclass{article}
\usepackage{multirow,longtable, makecell}

\begin{document}

\renewcommand\cellalign{lc}
\begin{longtable}{|p{20mm}|m{20mm}|}
  \hline
  A & B                     \\
  \hline
  \multirowcell{2}[0.9ex]{AB\\ BC \\ CD \\ EF}
    & \Gape[2ex]{X, then Y} \\
  \cline{2-2}
    & \Gape[2ex]{Y, then Z} \\
  \hline
\end{longtable}

\end{document} 

在此处输入图片描述

相关内容