我有一个 \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}