Beamer: Farbe für Schriftarten in Kopf/Fuß unterscheidet sich von der Hintergrund-/Hintergrundfarbe

Beamer: Farbe für Schriftarten in Kopf/Fuß unterscheidet sich von der Hintergrund-/Hintergrundfarbe

Ist es möglich, die Schriftfarbe der Abschnitte im Kopf-/Fußbereich unabhängig von der VG-/HG-Farbe des Kopf-/Fußbereichs zu ändern?

bearbeiten: Hier ist ein 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}

Wenn ich die Farbe der aktiven Abschnittsnamen in der Kopfzeile in Rot und die Farbe der inaktiven Abschnittsnamen in Blau ändern, für die Tertiärpalette jedoch die Farben Schwarz und Weiß beibehalten möchte – wie mache ich das?

Antwort1

Das sollte funktionieren:

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

Erläuterung

Schauen Sie sich die erste Zeile an: Dort steht, dass section in head/footFarben von übernommen palette tertiaryund neu definiert werden fg=red. Daher palette tertiarybleibt es unverändert und aktive Abschnittstitel werden auf Rot gesetzt.

Ähnlich möchten wir etwas \setbeamercolor{section in head/foot shaded}{parent=palette tertiary,fg=blue}für inaktive Abschnittstitel. Ja, wir können diese Farben festlegen. Aber nein, Beamer wird sie nie verwenden. Siehe den folgenden Code von 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}

Sie können sehen, dass geprüft wird, \ifnum\c@section=#1ob der Abschnittstitel schattiert werden soll oder nicht. Das Farbthema ist jedoch bereits unter angewendet \usebeamercolor[fg]{section in head/foot}. Daher \setbeamercolor{section in head/foot shaded}{parent=palette tertiary,fg=blue}ist es zulässig, aber nutzlos.

Aber wir haben noch eine Chance: nach \ifnumgibt es ein \usebeamertemplate{section in head/foot shaded}. Es ist definiert in beamerouterthemedefault.sty:

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

Beachten Sie, dass bgund fghier die Farben von sind section in head/foot. Dies erklärt, warum inaktive Abschnittstitel transparent erscheinen. Wenn Sie an dieser Stelle brutal eine neue Farbe zuweisen, ist Ihr Problem gelöst.

verwandte Informationen