
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.sty
gleichen 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. blue
wird 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>