xltabular \centering\arraybackslash}X 对齐中断,包含 20 列或更多列

xltabular \centering\arraybackslash}X 对齐中断,包含 20 列或更多列

我正在从 python/jinja 生成动态大表(数百行和数十列)。我找到了一些使“子列”宽度均匀的解决方案: 均匀分布列宽

所以我定义了列类型:

\newcolumntype{Y}{>{\centering\arraybackslash}X}

问题是,当“Y”列的数量达到 20 时,整个表就会变得混乱。

完整代码:

\documentclass{article}
\usepackage[a4paper, landscape, total={11in, 8in}]{geometry}
\usepackage[table]{xcolor}
\usepackage{courier}
\renewcommand*\familydefault{\ttdefault}
\usepackage[T1]{fontenc}
\usepackage{xltabular}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
{
  \begin{xltabular}{\textwidth}{ |*{19}{Y|} }
    \hline
    \rowcolor{lightgray} 
    \multicolumn{3}{ c| }{first} & \multicolumn{3}{ c| }{second} & \multicolumn{2}{ c| }{third} & \multicolumn{2}{ c| }{fourth} &
    \multicolumn{2}{ c| }{fifth} & \multicolumn{2}{ c| }{sixth} & \multicolumn{2}{ c| }{seventh} & \multicolumn{3}{ c| }{eighth}
    \\
    \hline
    \rowcolor{lightgray} 
    a & b & c & d & e & f & g & h & i & j & k & l & m & n & o & p & q & r & s\\
    \hline
    1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9\\
    \hline
    1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9\\
    \hline
    1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9\\
    \hline
    
  \end{xltabular}
}
\newpage
\end{document}

在上表中,有 19 列,看起来不错: 19 列

但如果我们再添加一个 Y 列:

\begin{xltabular}{\textwidth}{ |*{20}{Y|} }
...

它变成了: 20 列或更多列

添加其他类型的列(如“c”或“l”)不会产生负面影响。

是否存在可以通过编译器参数或其他东西省略的限制?

相关内容