Títulos de quadros do beamer em letras maiúsculas contendo matemática

Títulos de quadros do beamer em letras maiúsculas contendo matemática

Estou tentando automatizar letras maiúsculas para títulos de quadros no beamer de forma que letras maiúsculas ignorem todo o conteúdo do modo matemático nesses títulos. Eu tenho vistoTítulos de quadros em maiúsculas, mas a solução não consegue lidar corretamente com o conteúdo matemático. Para ignorar o modo matemático para letras maiúsculas, tentei usar o pacote textcase, mas ele apresenta um comportamento inesperado com títulos de quadros. Abaixo está um exemplo mínimo que mostra esse comportamento inesperado com o \insertframetitle. A última linha no conteúdo do quadro é exibida como seria de esperar, mas essa linha não usa \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}

Responder1

O beamer está adicionando um conjunto extra {..}ao redor do título (é por isso que você não obteve um erro de sintaxe ao usar \uppercasesem grupo de chaves, no entanto, está impedindo que MakeTextUppercase veja a matemática. Então

insira a descrição da imagem aqui

Portanto, você pode usar o mesmo grupo adicionado implicitamente como delimitador de argumento para\makeTextUppercase

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


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

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


\end{frame}
\end{document}

informação relacionada