
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.sty
mesmos 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. blue
será 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>