¿Cómo crear una opción de color en un tema de proyector personalizado?

¿Cómo crear una opción de color en un tema de proyector personalizado?

He usadoesta respuesta de la pregunta sobre cómo diseñar un tema de proyector desde ceropara diseñar un tema Beamer que parezca una plantilla de presentación universitaria (Powerpoint). Hay 3 opciones de color para la plantilla de PowerPoint (azul, verde, pizarra). Sé que una opción de solución sería crear 3 temas de colores separados y simplemente llamarlos;

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

Sin embargo, lo que me gustaría hacer es definir todos los colores diferentes en un archivo de tema de color y luego poder usar una opción para llamarlos de la siguiente manera

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

He visto preguntas en el sitio que parecen usar \DeclareOption(en esta pregunta, pero no pude ponerme a trabajar) o \DeclareOptionBeamer(Esta pregunta&Esta pregunta- realmente no entendí estas soluciones)

Idealmente, lo que me gustaría es una solución en la que pueda definir de manera diferente los beamercolorthememytheme.stynombres del mismo color dependiendo de la opción elegida. Por ejemplo, si se eligió la opción azul, Beamer lo sabría, \definecolor{col1}{RGB}{104,7,90}pero si se eligió la opción verde, lo sabría, \definecolor{col1}{RGB}{81,139,36}etc.

Espero que esto sea suficiente información, pero si no, házmelo saber en los comentarios.

Esto es lo que tengo en mibeamercolorthememytheme.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>

Respuesta1

El siguiente ejemplo muestra cómo cambiar el color del título del marco de forma condicional. bluese utilizará como color predeterminado, en caso de que no se especifique ninguna opción.

Considere el siguiente MWE:

\documentclass{beamer}

\usetheme[style=blue]{mytheme}

\begin{document}

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

\end{document}

con el correspondiente beamerthememytheme.sty, que hace poco más que pasar la opción de color al tema de color.

\mode<presentation>

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

\usecolortheme{mytheme}

\mode
<all>

y el tema del color 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>

ingrese la descripción de la imagen aquí

información relacionada