xltabular 和 multirow 之间不兼容

xltabular 和 multirow 之间不兼容

当我发现时,我说“哇,这真是个奇迹!”:一个结合了和xltabular的包,可以给出单元格宽度和全局宽度的比例,并且所有计算都自动完成,梦想变成了现实!它工作得很好,除了一件事:它似乎与不兼容。tabularxlongtablemultirow

以下是 MWE:

\documentclass{article}
\usepackage{xltabular,multirow}
\pagestyle{empty}
\usepackage{makecell}
\setcellgapes{2.5pt}
\begin{document}

\renewcommand\arraystretch{1.4644}
\makegapedcells

\begin{center}\begin{xltabular}{\textwidth}{|
>{\setlength{\hsize}{0.076\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.129\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.087\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.167\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.14\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.116\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.16\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.125\hsize}\centering\arraybackslash}X|}
\hline 
\multicolumn{3}{|c|}{A. bla bla bla
}
&\multicolumn{2}{c|}{B. bla bla bla
}
&C. bla bla bla bla  bla bla bla bla  bla bla bla bla 
&D. bla bla bla bla  bla bla bla bla  bla bla bla bla
&E. bla bla bla bla bla bla bla  bla bla bla bla bla bla 
\\\cline{1-5}F. bla bla bla bla bla bla 
&G. bla bla bla bla bla bla 
&H. bla bla bla bla bla bla 
&I. bla bla bla bla bla bla 
&J. bla bla bla bla bla bla 
&
&
&\\\hline
\end{xltabular}\end{center}

这使

在此处输入图片描述

当然,我想将单元格 C、D 和 E 转换为 2 行单元格,以使用 FJ 单元格的垂直空间。使用以下代码:

\begin{center}\begin{xltabular}{\textwidth}{|
>{\setlength{\hsize}{0.076\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.129\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.087\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.167\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.14\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.116\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.16\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.125\hsize}\centering\arraybackslash}X|}
\hline 
\multicolumn{3}{|c|}{A. bla bla bla
}
&\multicolumn{2}{c|}{B. bla bla bla
}
&\multirow{2}{*}{C. bla bla bla bla  bla bla bla bla  bla bla bla bla}
&\multirow{2}{*}{D. bla bla bla bla  bla bla bla bla  bla bla bla bla}
&\multirow{2}{*}{E. bla bla bla bla bla bla bla  bla bla bla bla bla bla }
\\\cline{1-5}F. bla bla bla bla bla bla 
&G. bla bla bla bla bla bla 
&H. bla bla bla bla bla bla 
&I. bla bla bla bla bla bla 
&J. bla bla bla bla bla bla 
&
&
&\\\hline
\end{xltabular}\end{center}

我得到了(相当令人失望的)结果:

在此处输入图片描述

您知道如何使用 实现多行效果xltabular吗?

答案1

您可以使用可选参数 `\multirow 来上下移动 \multirow 的内容。下面是具有正确 \hsize 值的代码。我还减小了 \tabcolsep 的值,因为列宽真的很小。人们可能还会质疑具有最多三位小数的值。

\documentclass{article}
\usepackage{geometry}
\usepackage{xltabular,multirow}
\pagestyle{empty}
\usepackage{makecell}
\setcellgapes{2.5pt}

\begin{document}

\renewcommand\arraystretch{1.4644}
\makegapedcells

\begin{center}
\setlength{\tabcolsep}{3pt}
\begin{xltabular}{\textwidth}{|
>{\hsize=0.608\hsize\centering\arraybackslash}X|
>{\hsize=1.032\hsize\centering\arraybackslash}X|
>{\hsize=0.696\hsize\centering\arraybackslash}X|
>{\hsize=1.336\hsize\centering\arraybackslash}X|
>{\hsize=1.12\hsize\centering\arraybackslash}X|
>{\hsize=0.928\hsize\centering\arraybackslash}X|
>{\hsize=1.28\hsize\centering\arraybackslash}X|
>{\centering\arraybackslash}X|
}
\hline
\multicolumn{3}{|c|}{A. bla bla bla
}
&\multicolumn{2}{c|}{B. bla bla bla
}
&\multirow{2}{=}[-0.9ex]{C. bla bla bla bla bla bla bla bla bla bla bla bla}
&\multirow{2}{=}[-0.9ex]{D. bla bla bla bla bla bla bla bla bla bla bla bla}
&\multirow{2}{=}[-0.9ex]{E. bla bla bla bla bla bla bla bla bla bla bla bla bla}
\\\cline{1-5}F. bla bla bla bla bla bla
&G. bla bla bla bla bla bla
&H. bla bla bla bla bla bla
&I. bla bla bla bla bla bla
&J. bla bla bla bla bla bla
&
&
&\\\hline
\end{xltabular}
\end{center}

\end{document} 

在此处输入图片描述

相关内容