带有 xcolor 和页眉/页脚的 longtable 中的行数错误

带有 xcolor 和页眉/页脚的 longtable 中的行数错误

longtable我正在尝试使用带有选项xcolor的包为每隔一行着色,table如该 MWE 所示(landscape选项17pt仅用于缩短 MWE):

\documentclass[oneside,landscape,17pt]{memoir}
\usepackage{longtable}
\usepackage[table]{xcolor}
\definecolor{tableRows1}{gray}{0.9}
\definecolor{tableRows2}{gray}{0.4}

\begin{document}

\rowcolors{4}{tableRows1}{tableRows2}
\begin{longtable}{cc}
    \hiderowcolors
    \toprule
    Column 1    &   Column 2    \\
    \midrule
    \endfirsthead
    %
    \multicolumn{2}{c}{\textsl{Continued from previous page}}\\
    \toprule
    Column 1    &   Column 2    \\
    \midrule
    \endhead
    %
    \bottomrule
    \multicolumn{2}{c}{\textsl{Continued on next page}}
    \endfoot
    %
    \bottomrule
    \multicolumn{2}{c}{\textsl{Last foot}}
    \endlastfoot
    %
    \showrowcolors
    11  &   12 (\number\rownum) \\
    21  &   22 \\
    31  &   32 \\
    41  &   42 \\
    51  &   52 \\
    11  &   12 \\
    21  &   22 \\
    31  &   32 \\
    41  &   42 \\
    51  &   52 \\
    11  &   12 \\
    21  &   22 \\
    31  &   32 \\
    41  &   42 \\
    51  &   52 \\
    11  &   12 \\
    21  &   22 \\
    31  &   32 \\
    41  &   42 \\
    51  &   52 \\
    11  &   12 \\
    21  &   22 \\
    31  &   32 \\
    41  &   42 \\
    51  &   52 \\
\end{longtable}

\end{document}

MWE 的输出。

如您所见,尽管我已指定从第 4 行 ( ) 开始着色,但着色从第一行开始(不包括列描述)\rowcolors{4}{tableRows1}{tableRows2}。显然有些计算是错误的(?),因为第 1 行被视为第 20 行,如第 1 行第 2 列的括号中所示。

这是为什么?我该如何改变它才能获得“正确”的行为?

注意:偏移量大致对应于 .tex 文档中从开头到longtable第一行数据的行数,即页眉和页脚规范可能算作表格的一部分。例如,注释\multicolumn行将减少第一行的数字 (20)。

答案1

您可以在处理标题行后重置计数器:

\documentclass[oneside,landscape,17pt]{memoir}
\usepackage{longtable}
\usepackage[table]{xcolor}
\definecolor{tableRows1}{gray}{0.9}
\definecolor{tableRows2}{gray}{0.4}

\begin{document}

\rowcolors{4}{tableRows1}{tableRows2}
\begin{longtable}{cc}
    \hiderowcolors
    \toprule
    Column 1    &   Column 2    \\
    \midrule
    \endfirsthead
    %
    \multicolumn{2}{c}{\textsl{Continued from previous page}}\\
    \toprule
    Column 1    &   Column 2    \\
    \midrule
    \endhead
    %
    \bottomrule
    \multicolumn{2}{c}{\textsl{Continued on next page}}
    \endfoot
    %
    \bottomrule
    \multicolumn{2}{c}{\textsl{Last foot}}
    \endlastfoot
    %
    \noalign{\global\rownum=1}%<---
    \showrowcolors
    11  &   12 (\number\rownum) \\
    21  &   22 \\
    31  &   32 \\
    41  &   42 \\
    51  &   52 \\
    11  &   12 \\
    21  &   22 \\
    31  &   32 \\
    41  &   42 \\
    51  &   52 \\
    11  &   12 \\
    21  &   22 \\
    31  &   32 \\
    41  &   42 \\
    51  &   52 \\
    11  &   12 \\
    21  &   22 \\
    31  &   32 \\
    41  &   42 \\
    51  &   52 \\
    11  &   12 \\
    21  &   22 \\
    31  &   32 \\
    41  &   42 \\
    51  &   52 \\
\end{longtable}

\end{document}

在此处输入图片描述

相关内容