如何在自定义投影仪主题中创建颜色选项?

如何在自定义投影仪主题中创建颜色选项?

我用过这个答案来自关于如何从头开始设计一个 beamer 主题的问题设计一个 Beamer 主题,使其看起来像大学演示文稿 (Powerpoint) 模板。Powerpoint 模板有 3 种颜色选项 (蓝色、绿色、灰蓝色)。我知道一个解决方案选项是创建 3 个单独的颜色主题,然后直接调用它们;

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

不过,我想要做的是在一个 colortheme 文件中定义所有不同的颜色,然后能够使用选项调用它们,如下所示

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

我在网站上看到过一些问题,似乎使用了\DeclareOption这个问题,但无法开始工作) 或者\DeclareOptionBeamer这个问题&这个问题- 不太理解这些解决方案)

理想情况下,我希望找到一种解决方案,让我可以beamercolorthememytheme.sty根据所选的选项在相同的颜色名称中定义不同的颜色。例如,如果选择了蓝色选项,Beamer 会知道这一点,\definecolor{col1}{RGB}{104,7,90}但如果选择了绿色选项,它也会知道这一点,\definecolor{col1}{RGB}{81,139,36}等等。

希望这些信息足够了,但如果不够,请在评论中告诉我

这就是我所拥有的beamercolorthememytheme.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>

答案1

下面的示例显示如何有条件地更改框架标题的颜色。blue如果没有指定选项,将用作默认颜色。

考虑以下 MWE:

\documentclass{beamer}

\usetheme[style=blue]{mytheme}

\begin{document}

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

\end{document}

与相应的beamerthememytheme.sty,其作用只不过是将颜色选项传递给颜色主题。

\mode<presentation>

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

\usecolortheme{mytheme}

\mode
<all>

和颜色主题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>

在此处输入图片描述

相关内容