
¿Es posible cambiar el color de fuente de las secciones en el encabezado/pie independientemente del color fg/bg del encabezado/pie?
editar: Aquí hay un 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}
Si quisiera cambiar el color de los nombres de las secciones activas en el encabezado a rojo, el nombre de la sección inactiva a azul, pero mantener los colores blanco y negro para la paleta terciaria, ¿cómo lo haría?
Respuesta1
Esto debería funcionar:
\setbeamercolor{section in head/foot}{parent=palette tertiary,fg=red}
\setbeamertemplate{section in head/foot shaded}{\color{blue}\usebeamertemplate{section in head/foot}}
Explicación
Mire la primera línea: Dice que section in head/foot
hereda colores de palette tertiary
y redefine fg=red
. Por lo tanto, palette tertiary
permanece sin cambios y los títulos de las secciones activas están configurados en rojo.
De manera similar, queremos algo así como \setbeamercolor{section in head/foot shaded}{parent=palette tertiary,fg=blue}
para títulos de secciones inactivas. Sí, podemos configurar estos colores. Pero no, Beamer nunca lo usará. Vea el siguiente 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}
Podrías ver que se está \ifnum\c@section=#1
comprobando si se debe sombrear el título de la sección o no. Sin embargo, el tema del color ya se aplica en \usebeamercolor[fg]{section in head/foot}
. Por lo tanto \setbeamercolor{section in head/foot shaded}{parent=palette tertiary,fg=blue}
es legal pero inútil.
Pero todavía tenemos una oportunidad más: después de que \ifnum
haya un \usebeamertemplate{section in head/foot shaded}
. Se define en beamerouterthemedefault.sty
:
\defbeamertemplate*{section in head/foot shaded}{default}[1][50] {\color{fg!#1!bg}\usebeamertemplate{section in head/foot}}
Fíjate que bg
y fg
aquí están los colores de section in head/foot
. Esto explica por qué los títulos de las secciones inactivas parecen ser transparentes. Asignar brutalmente un nuevo color en este punto resuelve su problema.