Die Verwendung der Anweisung \insertauthor
in \ifthenelse
löst einen Fehler aus (kein Fehler, wenn sie an einer anderen Stelle im Dokument verwendet wird). \inserttitle
oder \insertdate
funktioniert einwandfrei. Warum erhalte ich einen Fehler, wenn ich \insertauthor
Folgendes 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 \insertauthor
Makro fügt nicht nur den Autor ein, es treten daher Erweiterbarkeitsprobleme auf.
Stattdessen können Sie prüfen, ob \beamer@shortauthor
leer \beamer@andstripped
ist 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}