Inkompatibilität zwischen xltabular und multirow

Inkompatibilität zwischen xltabular und multirow

Als ich es entdeckte, xltabulardachte ich „Wow, das ist ein Wunder!“: Ein Paket, das tabularxund kombiniert longtable, wo man Verhältnisse von Zellenbreiten und einer globalen Breite angeben kann und alle Berechnungen automatisch durchgeführt werden, ein Traum wird wahr! Und es funktioniert großartig, bis auf eine Sache: Es scheint inkompatibel mit zu sein multirow.

Hier ist ein 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}

was gibt

Bildbeschreibung hier eingeben

Natürlich möchte ich die Zellen C, D und E in 2-zeilige Zellen umwandeln, um den vertikalen Raum der FJ-Zellen zu nutzen. Mit dem folgenden Code:

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

Ich erhalte das (ziemlich enttäuschende) Ergebnis:

Bildbeschreibung hier eingeben

Wissen Sie, wie Sie mit den Mehrreiheneffekt erzielen xltabular?

Antwort1

Sie können mit dem optionalen Argument von `\multirow spielen, um den Inhalt von \multirow nach oben oder unten zu verschieben. Hier ist ein Code mit den richtigen Werten für \hsize. Ich habe auch den Wert von \tabcolsep reduziert, da die Spaltenbreiten wirklich klein sind. Man kann auch Werte bis zur dritten Dezimalstelle in Frage stellen.

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

Bildbeschreibung hier eingeben

verwandte Informationen