Beamer frametitle 文本始终大写,但 href 或 url 不大写

Beamer frametitle 文本始终大写,但 href 或 url 不大写

我有一个 \citebutton 命令,我经常在框架标题中使用它来链接到一些来源。此外,我想强制框架标题始终为大写。

不幸的是,我对当前的解决方案不满意:

\documentclass{beamer}
\setbeamertemplate{frametitle}{\expandafter\uppercase\expandafter\insertframetitle}
\newcommand{\citebutton}[2]{%
\resizebox{!}{9pt}{\beamergotobutton{\href{#2}{#1}}}%
}

\begin{document}
\begin{frame}
\frametitle{Title should be always uppercase \citebutton{arXiv}{https://arxiv.org/abs/1703.04730}}

\end{frame}
\end{document}

问题:URL 本身和 citebutton 内的链接文本(此处为“arXiv”)也将是大写。我希望 \citebutton 命令完全不受大写的影响,例如,我正在寻找可以在 \citebutton 命令中的 \resizebox 命令之前使用的 \stopUppercase 之类的东西。

在 \citebutton 中使用 \lowercase 至少会使所有内容变为小写,但不能解决问题,因为我想“停用” \href 命令的大写字母

\newcommand{\citebutton}[2]{%
\resizebox{!}{9pt}{\beamergotobutton{\lowercase{\href{#2}{#1}}}}%
}

关于如何修改 frametitle 或 \citebutton 命令以便我得到我想要的东西,有什么想法吗?

答案1

我猜你需要的是\NoCaseChange来自textcase包的命令:

\documentclass{beamer}
\usepackage{textcase}
\setbeamertemplate{frametitle}{\MakeTextUppercase{\insertframetitle}}
\newcommand{\citebutton}[2]{%
\NoCaseChange{\resizebox{!}{9pt}{\protect\beamergotobutton{\href{#2}{#1}}}}%
}

\begin{document}
\begin{frame}
\frametitle{Title should be always uppercase \citebutton{arXiv}{https://arxiv.org/abs/1703.04730}}

\end{frame}
\end{document}

带链接的大写标题

相关内容