Warum führt \insertauthor zu einem Fehler innerhalb der \ifthenelse-Anweisung?

Warum führt \insertauthor zu einem Fehler innerhalb der \ifthenelse-Anweisung?

Die Verwendung der Anweisung \insertauthorin \ifthenelselöst einen Fehler aus (kein Fehler, wenn sie an einer anderen Stelle im Dokument verwendet wird). \inserttitleoder \insertdatefunktioniert einwandfrei. Warum erhalte ich einen Fehler, wenn ich \insertauthorFolgendes verwende? Sie können sehen, dass ich versuche zu überprüfen, ob Autoreninformationen bereitgestellt werden.

\documentclass{beamer}
\usepackage{ifthen}

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

\begin{document}

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

\end{document}

Antwort1

Das \insertauthorMakro fügt nicht nur den Autor ein, es treten daher Erweiterbarkeitsprobleme auf.

Stattdessen können Sie prüfen, ob \beamer@shortauthorleer \beamer@andstrippedist oder nicht (das Ergebnis ist in diesem Fall unterschiedlich \author[]{me}, ich bin nicht sicher, welches Verhalten Sie möchten).

Ich habe auch einen zweiten Ansatz aufgenommen, der in Beamer verwendet wird, um beispielsweise in Fußzeilen zu testen, ob bestimmte Informationen verfügbar sind

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

verwandte Informationen