我需要在表格的单元格中着色(或突出显示效果)beamer
单击后(我的意思是,我计划在该框架中谈论某件事,我将在演讲结束时强调单元格中的数字),我尝试了许多命令,例如,,,\onslide<>
和新命令使用,但都没有奏效。最后,我遇到了一些\only<>
\visible<>
\colorbox
\rowcolor<>{colorname}
代码,我尝试排列这些代码(不完全了解新命令结构)以实现具有输入输出效果的单元格着色,但出现了问题,所以我得到了这样的错误
放错了地方\noalign
。
它有什么问题?
\documentclass[xcolor=table]{beamer}
\rowcolors{1}{gray!30}{gray!10}
\makeatletter
\def\rowcolor{\noalign{\ifnum0=`}\fi\bmr@rowcolor}
\newcommand<>{\bmr@rowcolor}{%
\alt#1%
{\global\let\CT@do@color\CT@@do@color\@ifnextchar[\CT@rowa\CT@rowb}%
{\ifnum0=`{\fi}\@gooble@rowcolor}%
}
\newcommand{\@gooble@rowcolor}[2][]{\@gooble@rowcolor@}
\newcommand{\@gooble@rowcolor@}[1][]{\@gooble@rowcolor@@}
\newcommand{\@gooble@rowcolor@@}[1][]{\ignorespaces}
\makeatother
\makeatletter
\def\cellcolor{\noalign{\ifnum0=`}\fi\bmr@cellcolor}
\newcommand<>{\bmr@cellcolor}{%
\alt#1%
{\global\let\CT@do@color\CT@@do@color\@ifnextchar[\CT@rowa\CT@rowb}%
{\ifnum0=`{\fi}\@gooble@cellcolor}%
}
\newcommand{\@gooble@cellcolor}[2][]{\@gooble@cellcolor@}
\newcommand{\@gooble@cellcolor@}[1][]{\@gooble@cellcolor@@}
\newcommand{\@gooble@cellcolor@@}[1][]{\ignorespaces}
\makeatother
\begin{document}
\begin{frame}{The MWE}%
\only<2>{\rowcolors{1}{blue!30}{blue!10}}
\only<1,3>{\rowcolors{1}{gray!30}{gray!10}}
\begin{center}
\begin{tabular}{cc}
A & B \\
A & B \\
A & B \\
\rowcolor<4>{green} C & D \\
\rowcolor<4,5>{yellow} E & F \\
\rowcolor<4-6>{green} G & H \\
\rowcolor<6>{red} Y & S \\
A & B \
\end{tabular}
\end{center}
\par
\visible<1>{Testing default row colouring ... \\}
\visible<2,3>{Testing change of default colors ...\\}
\visible<4-6>{Testing in-out of custom colors ...\\ (caution: The order of defaults colors can change)\\}
\vfill
\scriptsize{
Based of answer of Martin Scharrer
\url{https://tex.stackexchange.com/questions/18427/why-cant-i-wrap-rowcolor-in-only-beamer}}
\end{frame}
\begin{frame}{Cell Coloring with In-out Effects}
\begin{center}
\begin{tabular}{cc}
A & B \\
C & \cellcolor<3>{green} C \\
D & E \\
F & G \
\end{tabular}
\end{center}
\end{frame}
\end{document}
答案1
\noalign
从定义中删除该命令\cellcolor
:
\documentclass[xcolor=table]{beamer}
\rowcolors{1}{gray!30}{gray!10}
\makeatletter
\def\rowcolor{\noalign{\ifnum0=`}\fi\bmr@rowcolor}
\newcommand<>{\bmr@rowcolor}{%
\alt#1%
{\global\let\CT@do@color\CT@@do@color\@ifnextchar[\CT@rowa\CT@rowb}%
{\ifnum0=`{\fi}\@gooble@rowcolor}%
}
\newcommand{\@gooble@rowcolor}[2][]{\@gooble@rowcolor@}
\newcommand{\@gooble@rowcolor@}[1][]{\@gooble@rowcolor@@}
\newcommand{\@gooble@rowcolor@@}[1][]{\ignorespaces}
\makeatother
\makeatletter
\def\cellcolor{{\ifnum0=`}\fi\bmr@cellcolor}
\newcommand<>{\bmr@cellcolor}{%
\alt#1%
{\global\let\CT@do@color\CT@@do@color\@ifnextchar[\CT@rowa\CT@rowb}%
{\ifnum0=`{\fi}\@gooble@cellcolor}%
}
\newcommand{\@gooble@cellcolor}[2][]{\@gooble@cellcolor@}
\newcommand{\@gooble@cellcolor@}[1][]{\@gooble@cellcolor@@}
\newcommand{\@gooble@cellcolor@@}[1][]{\ignorespaces}
\makeatother
\begin{document}
\begin{frame}{The MWE}%
\only<2>{\rowcolors{1}{blue!30}{blue!10}}
\only<1,3>{\rowcolors{1}{gray!30}{gray!10}}
\begin{center}
\begin{tabular}{cc}
A & B \\
A & B \\
A & B \\
\rowcolor<4>{green} C & D \\
\rowcolor<4,5>{yellow} E & F \\
\rowcolor<4-6>{green} G & H \\
\rowcolor<6>{red} Y & S \\
A & B \\
\end{tabular}
\end{center}
\par
\visible<1>{Testing default row colouring ... \\}
\visible<2,3>{Testing change of default colors ...\\}
\visible<4-6>{Testing in-out of custom colors ...\\ (caution: The order of defaults colors can change)\\}
\vfill
\scriptsize{
Based of answer of Martin Scharrer
\url{http://tex.stackexchange.com/questions/18427/why-cant-i-wrap-rowcolor-in-only-beamer}}
\end{frame}
\begin{frame}{Cell Coloring with In-out Effects}
\begin{center}
\begin{tabular}{cc}
A & B \\
C & \cellcolor<3>{green} C \\
D & E \\
F & G \\
\end{tabular}
\end{center}
\end{frame}
\end{document}