Wie erstelle ich eine Farboption im benutzerdefinierten Beamer-Design?

Wie erstelle ich eine Farboption im benutzerdefinierten Beamer-Design?

Ich habe benutztdiese Antwort auf die Frage, wie man ein Beamer-Design von Grund auf neu entwirftein Beamer-Design so zu gestalten, dass es wie eine Vorlage für eine Universitätspräsentation (Powerpoint) aussieht. Es gibt 3 Farboptionen für die Powerpoint-Vorlage (blau, grün, schiefergrau). Ich weiß, dass eine Lösungsmöglichkeit darin bestehen würde, 3 separate Farbdesigns zu erstellen und sie einfach aufzurufen mit:

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

Was ich allerdings gerne machen würde, ist, alle verschiedenen Farben in einer Farbthemadatei zu definieren und sie dann mit einer Option wie folgt aufrufen zu können

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

Ich habe auf der Site Fragen gesehen, die anscheinend \DeclareOption(auf diese Frage, konnte aber nicht zur Arbeit kommen) oder \DeclareOptionBeamer(Diese FrageundDiese Frage- habe diese Lösungen nicht wirklich verstanden)

Idealerweise hätte ich gerne eine Lösung, bei der ich für die beamercolorthememytheme.stygleichen Farbnamen je nach gewählter Option unterschiedliche Namen definieren kann. Wenn beispielsweise die Option Blau gewählt wurde, würde Beamer das wissen, \definecolor{col1}{RGB}{104,7,90}aber wenn die Option Grün gewählt wurde, würde er das wissen \definecolor{col1}{RGB}{81,139,36}usw.

Hoffentlich sind das genug Informationen, aber wenn nicht, lass es mich in den Kommentaren wissen

Das habe ich in meinembeamercolorthememytheme.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>

Antwort1

Das folgende Beispiel zeigt, wie die Farbe des Rahmentitels bedingt geändert werden kann. bluewird als Standardfarbe verwendet, falls keine Option angegeben ist.

Betrachten Sie das folgende MWE:

\documentclass{beamer}

\usetheme[style=blue]{mytheme}

\begin{document}

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

\end{document}

mit dem entsprechenden beamerthememytheme.sty, das kaum mehr tut, als lediglich die Farboption an das Farbthema zu übergeben.

\mode<presentation>

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

\usecolortheme{mytheme}

\mode
<all>

und das Farbthema 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>

Bildbeschreibung hier eingeben

verwandte Informationen