Als ich es entdeckte, xltabular
dachte ich „Wow, das ist ein Wunder!“: Ein Paket, das tabularx
und 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
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:
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}