Großgeschriebene Beamer-Frame-Titel mit mathematischen Werten

Großgeschriebene Beamer-Frame-Titel mit mathematischen Werten

Ich versuche, Großbuchstaben für Frame-Titel in Beamer so zu automatisieren, dass Großbuchstaben alle Inhalte im Mathematikmodus in diesen Titeln ignorieren. Ich habe gesehenRahmentitel in Großbuchstaben, aber die Lösung dort kann mit mathematischen Inhalten nicht richtig umgehen. Um den Mathematikmodus für Großbuchstaben zu ignorieren, habe ich versucht, das Textcase-Paket zu verwenden, aber das hat ein unerwartetes Verhalten mit Frame-Titeln. Unten sehen Sie ein minimales Beispiel, das dieses unerwartete Verhalten mit zeigt \insertframetitle. Die letzte Zeile im Inhalt des Frames wird wie erwartet angezeigt, aber diese Zeile verwendet nicht \insertframetitle.

\documentclass{beamer}
\usepackage[overload]{textcase}

\setbeamertemplate{frametitle}{
    \MakeUppercase{\insertframetitle} and \uppercase\insertframetitle
}

\begin{document}
\begin{frame}{Title $a = \sin(b)$}
\MakeUppercase\insertframetitle\\
\uppercase\insertframetitle\\
\MakeUppercase{Title $a = \sin(b)$}
\end{frame}
\end{document}

Antwort1

beamer fügt einen zusätzlichen Satz von {..}um den Titel herum hinzu (weshalb Sie keinen Syntaxfehler erhalten haben, wenn Sie ihn \uppercaseohne Klammerngruppe verwenden, es verhindert jedoch, dass MakeTextUppercase die Mathematik sieht. Also

Bildbeschreibung hier eingeben

Sie können also dieselbe implizit hinzugefügte Gruppe als Argumenttrennzeichen verwenden für\makeTextUppercase

\documentclass{beamer}
\usepackage[overload]{textcase}


\setbeamertemplate{frametitle}{%
    {\expandafter\MakeTextUppercase\insertframetitle}%
}

\begin{document}
\begin{frame}{Title $a = \sin(b)$}


\end{frame}
\end{document}

verwandte Informationen