如何禁用覆盖表中下一行的颜色

如何禁用覆盖表中下一行的颜色

我使用以下代码创建了一个带覆盖层的彩色表格。但是,它显示下一行的颜色与上一行的颜色相同。我该如何避免这种情况?

\documentclass[11pt, xcolor=table]{beamer}
\usetheme{default}
\usepackage{colortbl}

\begin{document}

\begin{frame}
    \rowcolors[]{1}{blue!20}{red!10} 
    \begin{tabular}{lcccc}\hline 
        \onslide<1->Class & A & B & C & D\\\hline
        \onslide<2->X & 1 & 2 & 3 & 4 \\
        \onslide<3->Y & 3 & 4 & 5 & 6 \\
        \onslide<4->Z & 5 & 6 & 7 & 8 
        \end{tabular}
\end{frame}
\end{document}

编辑:这对我来说似乎有效。但这有什么原因吗?

\documentclass[11pt, xcolor=table]{beamer}
\usetheme{default}
\usepackage{colortbl}

\begin{document}

\begin{frame}
    \rowcolors[]{1}{blue!20}{red!10} 
    \begin{tabular}{lcccc}\hline 
        \onslide<1->Class & A & B & C & D\onslide<2-> \\\hline
        \onslide<2->X & 1 & 2 & 3 & 4 \onslide<3->\\
        \onslide<3->Y & 3 & 4 & 5 & 6 \onslide<4->\\
        \onslide<4->Z & 5 & 6 & 7 & 8 
        \end{tabular}
\end{frame}
\end{document}

答案1

您必须\onslide在 之前放置\\。否则 LaTeX 将刷新该行并在其位置插入一个标记,\onslide然后标记将显示为第一列。

\documentclass[11pt, xcolor=table]{beamer}
\usetheme{default}
\usepackage{colortbl}

\begin{document}

\begin{frame}
  \rowcolors[]{1}{blue!20}{red!10} 
  \begin{tabular}{lcccc}
    \hline 
    Class & A & B & C & D \onslide<2-> \\
    \hline
    X & 1 & 2 & 3 & 4 \onslide<3-> \\
    Y & 3 & 4 & 5 & 6 \onslide<4-> \\
    Z & 5 & 6 & 7 & 8 
  \end{tabular}
\end{frame}
\end{document}

相关内容