Como criar uma opção de cor no tema do projetor personalizado?

Como criar uma opção de cor no tema do projetor personalizado?

Eu tenho usadoesta resposta da pergunta sobre como criar um tema beamer do zeropara criar um tema do Beamer para se parecer com um modelo de apresentação universitária (Powerpoint). Existem 3 opções de cores para o modelo Powerpoint (azul, verde, ardósia). Eu sei que uma opção de solução seria criar três temas de cores separados e apenas chamá-los;

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

O que eu gostaria de fazer é definir todas as cores diferentes em um arquivo colortheme e então poder usar uma opção para chamá-las da seguinte maneira

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

Vi perguntas no site que parecem usar \DeclareOption(nesta pergunta, mas não consegui trabalhar) ou \DeclareOptionBeamer(Essa questão&Essa questão- realmente não entendi essas soluções)

Idealmente o que eu gostaria é de uma solução onde eu pudesse definir de forma diferente nos beamercolorthememytheme.stymesmos nomes de cores dependendo da opção escolhida. Por exemplo, se a opção azul fosse escolhida, o Beamer saberia disso, \definecolor{col1}{RGB}{104,7,90}mas se a opção verde fosse escolhida, ele saberia disso \definecolor{col1}{RGB}{81,139,36}, etc.

Espero que isso seja informação suficiente, mas se não, deixe-me saber nos comentários

Isto é o que tenho em meubeamercolorthememytheme.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>

Responder1

O exemplo a seguir mostra como alterar condicionalmente a cor do título do quadro. blueserá usada como cor padrão, caso nenhuma opção seja especificada.

Considere o seguinte MWE:

\documentclass{beamer}

\usetheme[style=blue]{mytheme}

\begin{document}

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

\end{document}

com o correspondente beamerthememytheme.sty, que faz pouco mais do que apenas passar a opção de cor para o tema de cores.

\mode<presentation>

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

\usecolortheme{mytheme}

\mode
<all>

e o tema de cores 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>

insira a descrição da imagem aqui

informação relacionada