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}