
Quiero establecer el color de una celda de la tabla usando el argumento pasado a un comando, pero no parece tener ningún efecto. Aquí está mi código:
\PassOptionsToPackage{table}{xcolor}
\documentclass{beamer}
\usepackage{xcolor}
\newcommand*{\heatmap}[1][]{\cellcolor{red!#1} {#1}}
\begin{document}
\section{Background}
\begin{frame}
\frametitle{The size and type of repeats}
\begin{tabular}{lcccc}
Species & genomes & G/C & A/T & Di-\\
Widget & 7 & \heatmap{97}\% & \heatmap{3}\% & 0\%\\
\end{tabular}
\end{frame}
\end{document}
Mi expectativa es que las dos celdas con la \heatmap
macro utilizada en ellas salgan con diferentes tonos de rojo en ese momento, pero, de hecho, ambas salen completamente rojas. ¿Cómo puedo hacer que el comando funcione en estas circunstancias?
Respuesta1
Se trata de hacer que el comando espere un argumento opcional (que no parece apropiado en este caso). Compara la diferencia:
\PassOptionsToPackage{table}{xcolor}
\documentclass{beamer}
\usepackage{xcolor}
\newcommand*{\heatmap}[1][]{\cellcolor{red!#1} {#1}}
\newcommand*{\xheatmap}[1]{\cellcolor{red!#1} {#1}}
\begin{document}
\section{Background}
\begin{frame}
\frametitle{The size and type of repeats}
\begin{tabular}{lcccc}
Species & genomes & G/C & A/T & Di-\\
Widget & 7 & \heatmap[97]\% & \heatmap[30]\% & 0\%\\
Widget & 7 & \heatmap[57]\% & \heatmap[30!blue!30]\% & 0\%\\
Widget & 7 & \xheatmap{97}\% & \xheatmap{30}\% & 0\%\\
\end{tabular}
\end{frame}
\end{document}