¿Por qué \insertauthor genera un error dentro de la declaración \ifthenelse?

¿Por qué \insertauthor genera un error dentro de la declaración \ifthenelse?

El uso \insertauthorde \ifthenelseuna declaración arroja un error (no hay error si se usa en otra parte del documento). \inserttitleo \insertdatefunciona bien. ¿Por qué recibo un error cuando uso \insertauthorlo siguiente? Puede ver que estoy intentando verificar si se proporciona la información del autor.

\documentclass{beamer}
\usepackage{ifthen}

%\title{Title goes here}
\author{me}

\begin{document}

\ifthenelse{\equal{\insertauthor}{}}{empty}{not empty}

\end{document}

Respuesta1

La \insertauthormacro hace más que simplemente insertar el autor, por lo que se encuentra con un problema de capacidad de ampliación.

En su lugar, puede verificar si \beamer@shortauthoro \beamer@andstrippedestá vacío o no (el resultado será diferente para el caso \author[]{me}, no estoy seguro de qué comportamiento le gustaría).

También incluí un segundo enfoque que se utiliza en Beamer para probar, por ejemplo, en las líneas de pie, si cierta información está disponible.

\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}

información relacionada