空学院产生非空短学院

空学院产生非空短学院

在我的 Beamer 演示文稿中,我故意将宏保留\institute为未定义/空白,当我测试自动设置的宏是否\insertinstitute为空时,它确实产生了预期的结果,即它为空。
但是,在同一个文档中,另一个宏(短版本)\insertshortinstitute似乎已设置,尽管它不应该设置。
这是一个错误吗?或者更一般地说,我该如何修复它以使其实际上为空?

以下是 MWE:

\documentclass[10pt,compress,
%              draft,
               xcolor={dvipsnames,table},
               aspectratio=1610,
              ]{beamer}
\title[title]{The Title}
\subtitle[subtitle]{The Subtitle}
\author[author]{The Author}
% Not set:
%\institute[institute]{The Institute}

\makeatletter
\defbeamertemplate{title page}{my title page}
{
  \usebeamerfont{normal text}%
  \begin{beamercolorbox}%
        [wd=1\paperwidth,sep=0.04\paperwidth,
          leftskip=0.01\paperwidth,rightskip=0.01\paperwidth]%
        {title}%
    {\usebeamerfont{title}\inserttitle\strut\par}%
    \ifx\insertsubtitle\@empty%
    \else%
      {\usebeamerfont{subtitle}\insertsubtitle\strut\par}%
    \fi
  \end{beamercolorbox}
  \vspace{0.2\paperheight}
  \parbox[b][0.25\paperheight]{0.5\textwidth}{%
    {\usebeamerfont{author}\usebeamercolor[fg]{author}\insertauthor\strut\par}
    \ifx\insertinstitute\@empty%
      {no institute\strut\par}%
    \else%
      {\usebeamerfont{institute}\usebeamercolor[fg]{normal text}Institute: \insertinstitute\strut\par}
    \fi
    \ifx\insertshortinstitute\@empty%
      {no short institute\strut\par}%
    \else%
      {\usebeamerfont{institute}\usebeamercolor[fg]{normal text}Short Institute: \insertshortinstitute\strut\par}
    \fi%
    \vfill
    \ifx\insertdate\@empty%
      {\usebeamerfont{date}\usebeamercolor[fg]{normal text}\today\strut\par}
    \else%
      {\usebeamerfont{date}\usebeamercolor[fg]{normal text}\insertdate\strut\par}
    \fi
  }\hfill%
}
\makeatother
\setbeamertemplate{title page}[my title page]

\begin{document}

\frame[plain]{\titlepage}

\end{document}

以下是输出结果:

MWE 的输出

我刚刚注意到,一个快速而肮脏的修复方法是手动重新定义它(在序言的末尾),例如:

\renewcommand*{\insertshortinstitute}{}

我仍然感兴趣这是否是一个错误,或预期的行为,或者我在某个地方犯了一个错误。

答案1

你可以从中寻找beamerouterthemeinfolines.sty灵感并加以利用

\expandafter\ifblank\expandafter{\beamer@shortinstitute}{}{~~(\insertshortinstitute)}

相关内容