Beamer: Jede zweite Spalte einer Tabelle einfärben

Beamer: Jede zweite Spalte einer Tabelle einfärben

Ich versuche, eine Tabelle in einen meiner Beamer-Frames einzubinden. Jede zweite Spalte dieser Tabelle soll einen grauen Hintergrund haben. In meinem LaTeX-Dokument hat der folgende Code funktioniert:

\definecolor{Gray}{gray}{0.9}
\newcolumntype{g}{>{\columncolor{Gray}}c}
\begin{table}[ht]
            \centering
            \begin{tabular}{c|g|c|g|c|g}
                5.35 & 0.35 & 5.61 & -0.39 & 6.84 & -0.16 \\
                5.45 & 0.45 & 5.52 & -0.48 & 6.84 & -0.16 \\
                5.45 & 0.45 & 5.51 & -0.49 & 6.96 & -0.04 \\
                5.45 & 0.45 & 5.63 & -0.37 & 6.96 & -0.04 
            \end{tabular}
            \caption{my caption.}
            \label{myTable}
        \end{table}

Dies funktioniert jedoch nicht in Beamer. Ich verwende das \usepackage{xcolor}Paket. Jetzt habe ich gefunden aufdieser Blogdass ich meine Dokumentklasse ändern sollte, um \documentclass[xcolor=table]{beamer}sie zu verwenden \usepackage[table]{xcolor}, und dann sollte alles funktionieren. Das Problem hier ist, dass ich eine angepasste Vorlage verwende und nicht die Beamer-Vorlage. Wie auch immer, ich komme damit nicht klar, es sollte doch nicht so kompliziert sein, oder?

Leider ist die angezeigte Fehlermeldung überhaupt nicht hilfreich. Sie lautet lediglich:Undefined control sequence \end{frame}

Antwort1

Das Paket beamerlädt das xcolorPaket. Wenn Sie eine Option für hinzufügen möchten xcolor, sollten Sie diese Option zwischen die Dokumentklassenoptionen schreiben:

\documentclass[table]{beamer} % <--- option "table"  is passed to "xcolor" pacage
\definecolor{Gray}{gray}{0.9}
\newcolumntype{g}{>{\columncolor{Gray}}c}

\begin{document}
\begin{frame}
\frametitle{My colored table}
\begin{table}% table in beamer isn't float ...
    \centering
    \begin{tabular}{c|g|c|g|c|g}
        5.35 & 0.35 & 5.61 & -0.39 & 6.84 & -0.16 \\
        5.45 & 0.45 & 5.52 & -0.48 & 6.84 & -0.16 \\
        5.45 & 0.45 & 5.51 & -0.49 & 6.96 & -0.04 \\
        5.45 & 0.45 & 5.63 & -0.37 & 6.96 & -0.04
    \end{tabular}
    \caption{my caption.}
    \label{myTable}
\end{table}
\end{frame}
\end{document}

es liefert das gewünschte Ergebnis:

Bildbeschreibung hier eingeben

Antwort2

Da tikzpicturees in der Klasse gut angepasst ist beamer(sie wurden vom selben Autor, Till Tantao, geschrieben), ist es möglich, eine Tabelle als zu erstellen tikzpicture. Es besteht keine Notwendigkeit, die Option zu laden [table].

Bildbeschreibung hier eingeben

\documentclass{beamer}
\usepackage{tikz}
% I mimick the way of putting a row in a table
\newcommand{\putrow}[7]{
\path (0,#1) node{#2}
++(0:1) node{#3} ++(0:1) node{#4}
++(0:1) node{#5} ++(0:1) node{#6} ++(0:1) node{#7};
}

\begin{document}
\begin{frame}
\frametitle{Colored table}
\centering
\begin{tikzpicture}[xscale=1.2,yscale=.5]
\begin{scope}[shift={(-.5,.5)}]
\foreach \i in {1,3,5} \fill[blue!20] (\i,0) rectangle +(1,-4);
\foreach \i in {1,...,6} \draw[blue] (\i,0)--+(-90:4);
\end{scope}
\putrow{0}{5.35}{0.35}{5.61}{-0.39}{6.84}{-0.16}
\putrow{-1}{5.45}{0.45}{5.52}{-0.48}{6.84}{-0.16}
\putrow{-2}{5.45}{0.45}{5.51}{-0.49}{6.96}{-0.04}
\putrow{-3}{5.45}{0.45}{5.63}{-0.37}{6.96}{-0.04}

\path (current bounding box.south) node[below=2mm,blue]
{My colored table as a tikzpicture};
\end{tikzpicture}
\end{frame}
\end{document}

verwandte Informationen