
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 \uppercase
sem grupo de chaves, no entanto, está impedindo que MakeTextUppercase veja a matemática. Então
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}