是否可以独立于头部/脚部的 fg/bg 颜色来更改头部/脚部各部分的字体颜色?
编辑:这是MWE:
\documentclass{beamer}
\useoutertheme{miniframes}
\setbeamercolor{palette tertiary}{fg=white,bg=black}
\begin{document}
\section{sec 1}
\begin{frame}
sec 1
\end{frame}
\section{sec 2}
\begin{frame}
sec 2
\end{frame}
\end{document}
如果我想将标题中活动部分名称的颜色更改为红色,将非活动部分名称的颜色更改为蓝色,但保留第三调色板的颜色为黑色和白色 - 我该怎么做?
答案1
这应该有效:
\setbeamercolor{section in head/foot}{parent=palette tertiary,fg=red}
\setbeamertemplate{section in head/foot shaded}{\color{blue}\usebeamertemplate{section in head/foot}}
说明
看第一行:它表示section in head/foot
从 继承颜色palette tertiary
并重新定义fg=red
。因此palette tertiary
保持不变,活动部分标题设置为红色。
类似地,我们想要类似\setbeamercolor{section in head/foot shaded}{parent=palette tertiary,fg=blue}
非活动部分标题的东西。是的,我们可以设置这些颜色。但不,Beamer 永远不会使用它。请参阅以下代码beamerbasenavigation.sty
:
\def\sectionentry#1#2#3#4#5{% section number, section title, page \ifnum#5=\c@part% \beamer@section@set@min@width \box\beamer@sectionbox\hskip1.875ex plus 1fill% \beamer@xpos=0\relax% \beamer@ypos=1\relax% \setbox\beamer@sectionbox= \hbox{\def\insertsectionhead{#2}% \def\insertsectionheadnumber{#1}% \def\insertpartheadnumber{#5}% {% \usebeamerfont{section in head/foot}\usebeamercolor[fg]{section in head/foot}% \ifnum\c@section=#1% \hyperlink{Navigation#3}{{\usebeamertemplate{section in head/foot}}}% \else% \hyperlink{Navigation#3}{{\usebeamertemplate{section in head/foot shaded}}}% \fi}% }% \ht\beamer@sectionbox=1.875ex% \dp\beamer@sectionbox=0.75ex% \fi\ignorespaces}
你可以看到有一个\ifnum\c@section=#1
检查是否应该为 section-title 加阴影。但是,颜色主题已在 处应用\usebeamercolor[fg]{section in head/foot}
。因此\setbeamercolor{section in head/foot shaded}{parent=palette tertiary,fg=blue}
是合法的,但无用。
但是我们还有一次机会:在之后\ifnum
。\usebeamertemplate{section in head/foot shaded}
它的定义是beamerouterthemedefault.sty
:
\defbeamertemplate*{section in head/foot shaded}{default}[1][50] {\color{fg!#1!bg}\usebeamertemplate{section in head/foot}}
bg
请注意,fg
这是的颜色section in head/foot
。这解释了为什么不活动的节标题似乎是透明的。此时粗暴地分配一种新颜色可以解决您的问题。