\insertauthor가 \ifthenelse 문 내에서 오류를 발생시키는 이유는 무엇입니까?

\insertauthor가 \ifthenelse 문 내에서 오류를 발생시키는 이유는 무엇입니까?

\insertauthorin 문을 사용하면 \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대신 or 가 비어 있는지 여부를 확인할 수 있습니다 \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}

관련 정보