多行和文本换行

多行和文本换行

multirow当跨单元格包含大量文本时,使用文本换行时会出现问题。这是我的代码:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{longtable,array,booktabs,multirow}

\begin{document} 

\begin{longtable}{@{} m{3cm} m{3cm} m{3cm} @{}} \toprule[0.04cm]
Lorem & Lorem & Lorem \\ \midrule[0.04cm] 
Lorem ipsum & \multirow{2}{3cm}{Lorem ipsum dolor sit amet.} & Lorem ipsum \\ \cmidrule{1-1}\cmidrule{3-3}
Lorem ipsum & & Lorem ipsum \\ \midrule
Lorem ipsum & Lorem ipsum & Lorem ipsum \\ \bottomrule[0.04cm]
\end{longtable}

\begin{longtable}{@{} m{3cm} m{3cm} m{3cm} @{}} \toprule[0.04cm]
Lorem & Lorem & Lorem \\ \midrule[0.04cm] 
Lorem ipsum & \multirow{2}{3cm}{Lorem ipsum dolor sit amet, consectetur adipiscing elit.} & Lorem ipsum \\ \cmidrule{1-1}\cmidrule{3-3}
Lorem ipsum & & Lorem ipsum \\ \midrule
Lorem ipsum & Lorem ipsum & Lorem ipsum \\ \bottomrule[0.04cm]
\end{longtable}

\end{document}

这些表格之间的唯一区别是多行单元格中的文本长度。第一个表格看起来不错,但第二个表格有一些重叠:

在 parbox 中换行文本没有帮助。有没有通用的方法来为该单元格设置适当的高度和垂直对齐?该代码是自动报告生成器的一部分,因此跨越单元格的文本长度可能会有所不同。

答案1

事实证明,最好的方法是在表格单元格内创建表格,而不是使用行跨度,如下所示:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{longtable,array,booktabs}

\begin{document} 

\begin{longtable}{@{} m{3cm} m{3cm} m{3cm} @{}} \toprule[0.04cm]
Lorem & Lorem & Lorem \\ \midrule[0.04cm] 
\begin{tabular}{@{} m{3cm} @{}} Lorem ipsum \\ \cmidrule{1-1} Lorem ipsum \end{tabular} & 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. & 
\begin{tabular}{@{} m{3cm} @{}} Lorem ipsum \\ \midrule Lorem ipsum \end{tabular} \\ \midrule
Lorem ipsum & Lorem ipsum & Lorem ipsum \\ \bottomrule[0.04cm]
\end{longtable}

\end{document}

例子

相关内容