如何用 \extracolsep 斑马条纹制作长桌

如何用 \extracolsep 斑马条纹制作长桌

我发现这个问题可以使用以下方法制作长桌斑马条纹

\rowcolors{2}{white}{gray!25}

所以我尝试了一下,但发现它在我的项目中看起来并不好 - 条纹从桌子上伸出来并且上面有一些洞:
使用@{\extracolsep{\fill}}
尝试了一些东西后,我注意到了@{\extracolsep{\fill}}问题所在。
没有它,颜色是完美的:
无@{\extracolsep{\fill}}
但是我的桌子不够宽。

有没有更好的替代方案@{\extracolsep{\fill}},可以\rowcolors{2}{white}{gray!25}让两件事协同工作(同时保持longtable)?

这是完整的最小示例(顺便说一下,我是用 XeLaTeX 构建的,还没有尝试过它是否适用于 PdfLaTeX):

\documentclass[a4paper, 11pt]{article}

\usepackage{fontspec}
\usepackage{longtable}
\usepackage[table]{xcolor}

\begin{document}
    \rowcolors{2}{white}{gray!25}
    \begin{longtable}{@{\extracolsep{\fill}}clr}
%   \begin{longtable}{clr}
        \hline
        \noalign{\smallskip}
        {Test Col1\hfill} &
        {Test Col2\hfill} &
        {Test Col3}\\
        \noalign{\smallskip}
        \hline
        \noalign{\smallskip}
        \endhead
        \noalign{\smallskip}
        \hline
        \endfoot
        \endlastfoot
        Test & Test & Test \\
        Test & Test & Test \\
        Test & Test & Test \\
        Test & Test & Test \\
    \end{longtable}
\end{document}

答案1

你的表格代码说实话很奇怪,真的只有表头,而表体什么都没有吗?

我怀疑你正在经历这样的事情:

\documentclass[a4paper, 11pt]{article}
\usepackage{fontspec}

\usepackage{xcolor}
\usepackage{tabularray}

\begin{document}
\begin{longtblr}[
caption = {table caption},
  label = {tab:long},
                ]{hline{1,2,Z},
                  colspec = {X[c]X[l]X[r]},
                  row{even} = {bg=gray!25},
                  row{1} = {font=\bfseries},
                  rowhead = 1
                 }
% table body
Test Col1 & Test Col2   & Test Col3 \\
%
Test & Test & Test \\
Test & Test & Test \\
Test & Test & Test \\
Test & Test & Test \\
    \end{longtblr}
\end{document}

在此处输入图片描述

答案2

这个怎么样?

它使用该tabularray包。

\documentclass{article}
\usepackage{xcolor}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}

\begin{document}

\begin{longtblr}[
    caption={Caption}
]{
    colspec = {X[c]X[l]X[r]},
    row{even} = {gray!25},
    rowhead = 1
}  
\toprule
    Test Col1 & Test Col2 & Test Col3 \\
    Test & Test & Test \\
    Test & Test & Test \\
    Test & Test & Test \\
    Test & Test & Test \\
\bottomrule
\end{longtblr}

\end{document}

在此处输入图片描述

答案3

此方法使用空的固定宽度列来创建额外的空白:

\documentclass[a4paper,11pt]{article}

\usepackage{fontspec}
\usepackage{longtable}
\usepackage[table]{xcolor}

\begin{document}
    \rowcolors{2}{white}{gray!25}
    \begin{longtable}{cp{2cm}lp{2cm}r}
        \hline
        \noalign{\smallskip}
        Test Col1 &&
        Test Col2 &&
        Test Col3 \\
        \noalign{\smallskip}
        \hline
        \noalign{\smallskip}
        \endhead
        \noalign{\smallskip}
        \hline
        \endfoot
        \endlastfoot
        Test && Test && Test \\
        Test && Test && Test \\
        Test && Test && Test \\
        Test && Test && Test \\
    \end{longtable}
\end{document}

在此处输入图片描述

相关内容