我在多行单元格中放入了长文本。文本占用的行数多于第二列中的行数。
\documentclass[a4paper,12pt]{report}
\usepackage{multirow}
\usepackage{longtable}
\begin{document}
\begin{longtable}[H]{|p{\dimexpr0.5\linewidth-2\tabcolsep}|p{\dimexpr0.5\linewidth-2\tabcolsep}|}
\caption{Title}
\tabularnewline\hline
\multirow{2}{\linewidth}{\centering \tiny \textbf{Long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long text}} & \tiny 11 \tabularnewline \cline{2-2}
& \tiny 11 \tabularnewline \cline{1-2}
\end{longtable}
\end{document}
我明白了:
我该如何修复它?我自动生成表格,但我不知道多行单元格中有多少行文本。所以我无法在第二列手动添加空行。
伯纳德的最新消息当我编译此代码时:
\documentclass[a4paper,12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{makecell}
\begin{document}
\begin{longtable}{|m{\dimexpr0.5\linewidth-2\tabcolsep\relax}|m{\dimexpr0.5\linewidth-2\tabcolsep\relax}|}
\caption{Title}
\tabularnewline\hline%
\multirow{2}{*}{\parbox{\linewidth}%[24pt]
{\centering \scriptsize \textbf{Long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long}}}
& \Gape[12pt]{\scriptsize 11} \tabularnewline
\cline{2-2}
& \Gape[12pt]{\scriptsize 11} \tabularnewline
\cline{1-2}
\end{longtable}\bigskip
{\normalsize
\begin{longtable}{|m{\dimexpr0.5\linewidth-2\tabcolsep\relax}|m{\dimexpr0.5\linewidth-2\tabcolsep\relax}|}
\caption{Title}
\tabularnewline\hline%
\multirowcell{8}{\parbox{\linewidth}
{\centering \textbf{Long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long}}}
&\multirowcell{4}{11} \tabularnewline & \tabularnewline & \tabularnewline & \tabularnewline
\cline{2-2}
& \multirowcell{4}{11} \tabularnewline & \tabularnewline & \tabularnewline & \tabularnewline
\cline{1-2}
\end{longtable}
}
\end{document}
我看到这个结果:
答案1
\documentclass[a4paper,12pt]{report}
\usepackage{multirow}
\usepackage{longtable,calc}
\newlength{\MyLength}
\newcommand{\Multirow}[3]{%
\setlength{\MyLength}{%
\heightof{
\begin{minipage}[b]{#2}
#3
\end{minipage}
}
}
\global\MyLength=\MyLength
\multirow{#1}{#2}{#3}
}
\newcommand{\Myrule}[1][.5]{\rule[-#1\MyLength]{0pt}{0pt}}
\begin{document}
{\tiny
\begin{longtable}[H]{|p{0.5\linewidth-2\tabcolsep}|p{0.5\linewidth-2\tabcolsep}|}
\caption{Title}
\tabularnewline\hline
\Multirow{2}{\linewidth}{\centering \tiny \textbf{Long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long text}} &
11 \Myrule[.55]\tabularnewline \cline{2-2}
& 11 \Myrule[.3]\tabularnewline \cline{1-2}
\end{longtable}
}
\end{document}
答案2
一种解决方案是使用\Gape
命令(来自 makecell
包)来增加第二列中与\multirow
第一列相对应的单元格的高度。可选参数的值必须通过实验确定,因为它取决于字体/字体大小。您还必须将长文本放在多行内的 \parbox 中。
另一种解决方案是,同样使makecell
第二列\multirowcell
s 中的两个单元格具有(相同)相应的行数,并将长文本 a 的\multirowcell
行数设为该行数的两倍。
以下代码说明了这两种解决方案:
\documentclass[a4paper,12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage{fourier}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{makecell}
\begin{document}
\begin{longtable}{|m{\dimexpr0.5\linewidth-2\tabcolsep\relax}|m{\dimexpr0.5\linewidth-2\tabcolsep\relax}|}
\caption{Title}
\tabularnewline\hline%
\multirow{2}{*}{\parbox{\linewidth}%
{\centering \scriptsize \textbf{Long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long}}}
& \Gape[12pt]{\scriptsize 11} \tabularnewline
\cline{2-2}
& \Gape[12pt]{\scriptsize 11} \tabularnewline
\cline{1-2}
\end{longtable}\bigskip
{\normalsize
\begin{longtable}{|m{\dimexpr0.5\linewidth-2\tabcolsep\relax}|m{\dimexpr0.5\linewidth-2\tabcolsep\relax}|}
\caption{Title}
\tabularnewline\hline%
\multirowcell{8}{\parbox{\linewidth}
{\centering \textbf{Long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long}}}
&\multirowcell{4}{11} \tabularnewline & \tabularnewline & \tabularnewline & \tabularnewline
\cline{2-2}
& \multirowcell{4}{11} \tabularnewline & \tabularnewline & \tabularnewline & \tabularnewline
\cline{1-2}
\end{longtable}
}
\end{document}