xcolor カラーミキシングを newcommand で動作させる方法

xcolor カラーミキシングを newcommand で動作させる方法

コマンドに渡された引数を使用してテーブル セルの色を設定したいのですが、効果がないようです。コードは次のとおりです。

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

マクロが使用されている2 つのセルは、異なる色合いの赤で出力されると予想していました\heatmapが、実際には両方とも完全な赤で出力されました。このような状況でコマンドを機能させるにはどうすればよいですか?

答え1

これは、コマンドにオプションの引数を期待させるケースです (この場合は適切ではないようです)。違いを比較してください。

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

関連情報