So funktioniert die XColor-Farbmischung in Newcommand

So funktioniert die XColor-Farbmischung in Newcommand

Ich möchte die Farbe einer Tabellenzelle mit dem an einen Befehl übergebenen Argument festlegen, aber es scheint keine Wirkung zu haben. Hier ist mein Code:

\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}

Ich gehe davon aus, dass die beiden Zellen mit dem \heatmapdarin verwendeten Makro in unterschiedlichen Rottönen dargestellt werden, tatsächlich werden sie jedoch beide in reinem Rot dargestellt. Wie kann ich den Befehl unter diesen Umständen zum Laufen bringen?

Antwort1

Es geht darum, den Befehl dazu zu bringen, ein optionales Argument zu erwarten (was in diesem Fall nicht angemessen erscheint). Vergleichen Sie den Unterschied:

\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}

verwandte Informationen