如何使 \rowfont(来自 tabu 包)覆盖规范感知(在 beamer 包中)?

如何使 \rowfont(来自 tabu 包)覆盖规范感知(在 beamer 包中)?

我在 Beamer 演示文稿中有表格,我想使用叠加规范按顺序(不一定按行顺序)突出显示表格行。因此,我希望能够编写类似于以下的代码:

\begin{tabular}
    \color<1>{red}
    Row 1  & Row 1 \\
    \color<2>{red}
    Row 2  & Row 2
\end{tabular}

效果是第一张幻灯片中第 1 行以红色突出显示,第二张幻灯片中第 2 行以红色突出显示。

我使用tabu带有dcolumn类型列的环境。以下是有关我迄今为止发现的一些其他详细信息:

  1. 另一篇帖子dcolcolor我找到了定义能够为文本着色的命令的代码dcolumn
  2. 为了给整行的文本着色而无需单独指定每个单元格,我使用了\rowfontfrom tabu
  3. 为了使\rowfont{\dcolcolor{...}}覆盖规范感知,我尝试遵循 beamer 用户指南第 9.6.1 节中的说明。

但是,我无法让它工作。因此,我尝试使用onlyon\rowfont{...}而不尝试定义新的、可感知覆盖规范的命令,结果出现了错误。以下是 MWE:

\documentclass{beamer}

\usepackage{dcolumn}
\usepackage{tabu}

\newcolumntype{d}[1]{D{.}{.}{#1}}
\makeatletter
\def\DC@endright{$\hfil\egroup\@dcolcolor\box\z@\box\tw@\dcolreset}
\def\dcolcolor#1{\gdef\@dcolcolor{\color{#1}}}
\def\dcolreset{\dcolcolor{black}}
\dcolcolor{black}
\makeatother

\begin{document}

\begin{frame}

\begin{tabu}{ld{2}d{2}}
% All of row 1 should be red on all slides
\rowfont{\color{red}\dcolcolor{red}}
Row 1 & 1.234 & 1.234 \
% All of row 2 should be red on second slide only
\only<2>{\rowfont{\color{red}\dcolcolor{red}}}
Row 2 & 2.345 & 2.345 \\
\end{tabu}

\end{frame}
\end{document}

当我编译时,我得到了一些错误,例如

! Misplaced \noalign.
\rowfont -&gt;\ifdim \baselineskip =\z@ \noalign
                                            \fi {\ifnum 0=`}\fi \tabu@row@...
l.28     \end{frame}

输出结果有两页。第一页是正确的,第一行被高亮显示(尽管第一列似乎没有左对齐)。在第二页上,第一行按预期高亮显示,但第二行只高亮显示数字,而不是第一列。以下是屏幕截图:

输出截图

答案1

\rowfont{\only<2>{\color{red}\dcolcolor{red}}}

相关内容