beamer: cor para fontes em head/foot diferente da cor bg/fg

beamer: cor para fontes em head/foot diferente da cor bg/fg

É possível alterar a cor da fonte das seções no cabeçalho/pé independente da cor fg/bg do cabeçalho/pé?

editar: Aqui está um 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}

Se eu quisesse alterar a cor dos nomes das seções ativas no cabeçalho para vermelho, o nome da seção inativa para azul, mas manter as cores preto e branco para a paleta terciária - como eu faria isso?

Responder1

Isso deve funcionar:

\setbeamercolor{section in head/foot}{parent=palette tertiary,fg=red}
\setbeamertemplate{section in head/foot shaded}{\color{blue}\usebeamertemplate{section in head/foot}}

Explicação

Veja a primeira linha: Diz que section in head/footherda cores palette tertiarye redefine fg=red. Portanto, palette tertiarypermanece inalterado e os títulos das seções ativas são definidos como vermelhos.

Da mesma forma, queremos algo parecido \setbeamercolor{section in head/foot shaded}{parent=palette tertiary,fg=blue}com títulos de seções inativas. Sim, podemos definir essas cores. Mas não, o Beamer nunca o usará. Veja o seguinte código de 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}

Você pode ver que há uma \ifnum\c@section=#1verificação se deve sombrear o título da seção ou não. No entanto, o tema de cores já está aplicado em \usebeamercolor[fg]{section in head/foot}. Portanto, \setbeamercolor{section in head/foot shaded}{parent=palette tertiary,fg=blue}é legal, mas inútil.

Mas ainda temos mais uma chance: depois que \ifnumhouver um arquivo \usebeamertemplate{section in head/foot shaded}. É definido em beamerouterthemedefault.sty:

\defbeamertemplate*{section in head/foot shaded}{default}[1][50]
{\color{fg!#1!bg}\usebeamertemplate{section in head/foot}}

Observe isso bge fgaqui estão as cores de section in head/foot. Isso explica por que os títulos das seções inativas parecem ser transparentes. Atribuir brutalmente uma nova cor neste ponto resolve o seu problema.

informação relacionada