包含数学的大写投影仪框架标题

包含数学的大写投影仪框架标题

我正在尝试将 Beamer 中的帧标题自动转换为大写,这样大写就会忽略这些标题中的所有数学模式内容。我见过大写框架标题,但那里的解决方案无法正确处理数学内容。为了忽略大写的数学模式,我尝试使用 textcase 包,但这会对框架标题产生意外行为。下面是一个最小示例,显示了这种意外行为。\insertframetitle框架内容中的最后一行按我预期的方式显示,但该行未使用\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}

答案1

beamer 在标题周围添加了一组额外的(这就是为什么在使用没有括号组{..}时没有出现语法错误的原因,但它阻止了 MakeTextUppercase 看到数学运算。所以\uppercase

在此处输入图片描述

因此,您可以使用相同的隐式添加组作为参数分隔符\makeTextUppercase

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


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

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


\end{frame}
\end{document}

相关内容