xltabular と multirow の非互換性

xltabular と multirow の非互換性

見つけたとき、xltabular「わあ、これは奇跡だ!」と言いました。tabularxとを組み合わせlongtable、セル幅とグローバル幅の比率を指定でき、すべての計算が自動的に行われるパッケージ、夢が現実になりました! そして、1 つを除いて、非常にうまく機能します。それは、 と互換性がないようですmultirow

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}

これにより

ここに画像の説明を入力してください

当然、FJ セルの垂直スペースを使用するために、セル C、D、E を 2 行のセルに変換したいと思います。次のコードを使用します。

\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 の値も減らしました。また、小数点第 3 位までの値を持つことに疑問を感じる人もいるかもしれません。

\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} 

ここに画像の説明を入力してください

関連情報