如何在 Beamer 中按颜色突出显示表格行

如何在 Beamer 中按颜色突出显示表格行

我想按行突出显示表格中的行,也就是说,我想用红色突出显示第 1 行,然后将第 1 行设为黑色,但第 2 行设为红色,等等。

我怎样才能在 Beamer 中做到这一点?

答案1

对于简单定制的静态行着色:

\documentclass{beamer}
\usepackage{color, colortbl}
\definecolor{LRed}{rgb}{1,.8,.8}
\definecolor{MRed}{rgb}{1,.6,.6}
\definecolor{HRed}{rgb}{1,.2,.2}
\begin{document}
\begin{frame}
\begin{tabular}{ccc}
\rowcolor{LRed} a & b & c \\
                 a & b & c \\
\rowcolor{LRed} a & b & c \\
\rowcolor{MRed} a & b & c \\
\rowcolor{HRed} a & b & c \\
\rowcolor{MRed} a & b & c \\
\rowcolor{LRed} a & b & c \\
\rowcolor{MRed} a & b & c \\
\end{tabular}
\end{frame}
\end{document}

对于 cmhughes 链接的奇数/偶数着色叠加或一些更复杂的内容,请参阅此 MWE:

    \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

    \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} A & B \\
        \rowcolor<4,5>{yellow}A & B \\
        \rowcolor<4-6>{green}A & B \\
        \rowcolor<6>{red} A & B \\
        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}

    \end{document}

答案2

这是一个更简单的解决方案。

只需使用 \documentclass 中的选项表加载 xcolor。由于 beamer 默认加载 xcolor 包,因此需要传递 \documentclass 中的选项。

\documentclass[xcolor=table]{beamer} %-- pass the option table to xcolor package
\begin{document}
\begin{frame}
\frametitle{Famous Composers}
\begin{center}
    \rowcolors{1}{}{lightgray} %-- this indicates the change in odd and pair rows
    \begin{tabular}{|l|c|}\hline
    J.\ S.\ Bach
    & 1685--1750 \\
    W.\ A.\ Mozart & 1756--1791 \\
    L.\ Beethoven & 1770--1827 \\
    F.\ Chopin
    & 1810--1849 \\
    R.\ Schumann
    & 1810--1856 \\
    B.\ Bartok & 1881--1945 \\ \hline
    \end{tabular}
\end{center}
\end{frame}
\end{document}

结果: 示例结果

来源:

使用 xcolor 在投影仪幻灯片中为表格添加颜色

http://www.tug.org/pracjourn/2005-4/mertz/mertz.pdf

相关内容