我有多行长表:
\documentclass[a4paper,12pt]{report}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{makecell,array}
\begin{document}
{
\begin{longtable}[H]{|p{\dimexpr0.33\linewidth-2\tabcolsep}|m{\dimexpr0.33\linewidth-2\tabcolsep}|p{\dimexpr0.33\linewidth-2\tabcolsep}|}
\caption{Title}
\tabularnewline\hline
\multirow{4}{\linewidth}{ \centering \textbf{Long long long long long long long long long long long long long long long long long long text}} & Long long long long long long long long long long long long long long long long long long text & 1111 \tabularnewline \cline{2-3}
& Long long long long long long long long long long long long long long text & 1111 \tabularnewline \cline{2-3}
& Long long long long long long long long long long long long long long long long text & 1111 \tabularnewline \cline{2-3}
& Long long long long long long long long long long long long long long long text & 1111 \tabularnewline \cline{1-3}
\end{longtable}
}
\end{document}
我需要使用具有特定宽度的列\dimexpr0.33\linewidth-2\tabcolsep这里我使用了一个简单的例子,但一般情况下,列可以更大,并且文本不是固定长度的。
我希望最后一列垂直对齐。第一列有问题。
我想要获取其中一张图片:
我该如何修复它?
更新。我需要使用mulrirow和longtable。下图是出现问题的表的完整版本。
答案1
无需使用 即可multirow
。在很多情况下,您可以使用嵌套表格。是和ltablex
的组合:longtable
tabularx
\documentclass[a4paper,12pt]{report}
\usepackage{ltablex}
\renewcommand\tabularxcolumn[1]{m{#1}}
\begin{document}
\noindent
\rule{\linewidth}{2pt}
\noindent
\begin{tabularx}{\linewidth}{|X|@{}m{0.66\linewidth}|}
\caption{Title}
\tabularnewline\hline
\bfseries Long long long long long long long long long long long long long long long long long long text
&
\begin{tabular}{m{\dimexpr0.5\linewidth-2\tabcolsep}|m{\dimexpr0.5\linewidth-\tabcolsep}}
Long long long long long long long long long long long long long long long long long long text
& 11111 \\\hline
Long long long long long long long long long long long long long long text
& 11111 \\\hline
Long long long long long long long long long long long long long long text
& 11111
\end{tabular} \\\hline
\end{tabularx}
\end{document}
答案2
您可以使用的第二个可选参数(称为fixup
)\multirow
。
\multirow{4}{\linewidth}[2.5em]{\centering...
2.5em
是一个经验值,您应该手动调整。
负值会降低条目数。
\documentclass[a4paper,12pt]{report}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{makecell,array}
\begin{document}
{
\begin{longtable}{|p{\dimexpr0.33\linewidth-2\tabcolsep}|m{\dimexpr0.33\linewidth-2\tabcolsep}|p{\dimexpr0.33\linewidth-2\tabcolsep}|}
\caption{Title}
\tabularnewline\hline
\multirow{4}{\linewidth}[-5.8em]{\centering \textbf{Long long long long long long long long long long long long long long long long long long text}} & Long long long long long long long long long long long long long long long long long long text & 1111 \\[-1.85em] \cline{2-3} %% adjust -5.8em and 1.85em suitably
& Long long long long long long long long long long long long long long text & 1111 \tabularnewline \cline{2-3}
& Long long long long long long long long long long long long long long long long text & 1111 \tabularnewline \cline{2-3}
& Long long long long long long long long long long long long long long long text & 1111 \tabularnewline \cline{1-3}
\end{longtable}
}
\end{document}