カスタム Beamer テーマでカラー オプションを作成するにはどうすればよいですか?

カスタム Beamer テーマでカラー オプションを作成するにはどうすればよいですか?

利用したビーマーテーマをゼロからデザインする方法に関する質問に対する回答大学のプレゼンテーション (Powerpoint) テンプレートのように見える Beamer テーマをデザインします。Powerpoint テンプレートには 3 つのカラー オプションがあります (青、緑、スレート)。解決策の 1 つのオプションは、3 つの個別のカラー テーマを作成し、次のように呼び出すことです。

\usecolortheme{mythemeblue}
\usecolortheme{mythemegreen}
\usecolortheme{mythemeslate}

私がやりたいのは、1つのカラーテーマファイルですべての異なる色を定義し、次のようにオプションを使用して呼び出すことです。

\usetheme[blue]{mytheme}  %or green or slate

私はこのサイトで、\DeclareOptionこの質問に回答したが、仕事に取り掛かることができなかった) または\DeclareOptionBeamerこの質問この質問- これらの解決策をあまり理解していませんでした)

理想的には、選択したオプションに応じて同じ色名を異なる方法で定義できるソリューションが必要ですbeamercolorthememytheme.sty。たとえば、オプションの青を選択した場合、ビーマーはそれを認識し\definecolor{col1}{RGB}{104,7,90}、オプションの緑を選択した場合はそれを認識し、\definecolor{col1}{RGB}{81,139,36}などです。

これで十分な情報だと思いますが、もし足りない場合はコメントで教えてください

これは私のbeamercolorthememytheme.sty

\mode<presentation>

% define colours from NUIG stylesheet
\definecolor{col1}{RGB}{104,7,90}
\definecolor{col2}{RGB}{27,65,99}
\definecolor{col3}{RGB}{138,167,147}
\definecolor{col4}{RGB}{143,183,195}
\definecolor{col5}{RGB}{194,230,242}
% set colours for different elements
\setbeamercolor{structure}{fg=col3!100!col4}
\setbeamercolor{frametitle}{bg=col4,fg=col2}
\setbeamercolor*{title page header}{fg=col5}
\setbeamercolor*{subtitle}{fg=col5}
\setbeamercolor*{author}{fg=col5}
\setbeamercolor*{date}{fg=col5}
\setbeamercolor*{item}{fg=col5}
\setbeamercolor{block title}{bg=col1,fg=col5}
\mode
<all>

答え1

次の例は、フレーム タイトルの色を条件付きで変更する方法を示しています。blueオプションが指定されていない場合は、デフォルトの色として使用されます。

次の MWE を検討してください。

\documentclass{beamer}

\usetheme[style=blue]{mytheme}

\begin{document}

    \begin{frame}
        \frametitle{test}
        abc
    \end{frame} 

\end{document}

対応する を使用するとbeamerthememytheme.sty、カラー オプションをカラー テーマに渡す以上のことはほとんど行われません。

\mode<presentation>

\DeclareOptionBeamer{style}{
    \PassOptionsToPackage{style=#1}{beamercolorthememytheme}
}
\ExecuteOptionsBeamer{style=blue}
\ProcessOptionsBeamer

\usecolortheme{mytheme}

\mode
<all>

そして色のテーマbeamercolorthememytheme.sty

\mode<presentation>

\DeclareOptionBeamer{style}{\def\beamer@mytheme@style{#1}}
\ExecuteOptionsBeamer{style=blue} % blue will be default if nothing is given
\ProcessOptionsBeamer

\def\beamer@mytheme@stylegreen{green}%
\def\beamer@mytheme@styleblue{blue}%
\def\beamer@mytheme@stylered{red}%

\ifx\beamer@mytheme@style\beamer@mytheme@stylegreen%
    \definecolor{col1}{RGB}{0,255,0} % green
\else% 
    \ifx\beamer@mytheme@style\beamer@mytheme@stylered%
        \definecolor{col1}{RGB}{255,0,0} % red
    \else% 
      \definecolor{col1}{RGB}{0,0,255} % blue
    \fi%
\fi%

\setbeamercolor{frametitle}{bg=white,fg=col1}

\mode
<all>

ここに画像の説明を入力してください

関連情報