使用\insertauthor
in\ifthenelse
語句會引發錯誤(如果在文件的其他地方使用它則不會出現錯誤)。\inserttitle
或\insertdate
工作正常。為什麼我使用下面的方法時會出現錯誤\insertauthor
?您可以看到我正在嘗試檢查是否提供了作者資訊。
\documentclass{beamer}
\usepackage{ifthen}
%\title{Title goes here}
\author{me}
\begin{document}
\ifthenelse{\equal{\insertauthor}{}}{empty}{not empty}
\end{document}
答案1
該\insertauthor
巨集的作用不僅僅是插入作者,因此您會遇到可擴展性問題。
相反,您可以檢查\beamer@shortauthor
或\beamer@andstripped
是否為空(對於這種情況,結果會有所不同\author[]{me}
,不確定您想要哪種行為)。
我還包括了第二種方法,用於在投影機中測試例如在腳註中是否有某些資訊可用
\documentclass{beamer}
\usepackage{ifthen}
\author{me}
\makeatletter
\newcommand{\fooooo}{\ifthenelse{\equal{\beamer@shortauthor}{}}{empty}{not empty}}
\newcommand{\foo}{\expandafter\ifblank\expandafter{\beamer@shortauthor}{empty}{not empty}}
\makeatother
\begin{document}
\begin{frame}
\fooooo
\foo
\end{frame}
\end{document}