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