如何判断当前部分是否在 Beamer 中定义?

如何判断当前部分是否在 Beamer 中定义?

我正在自定义 Beamer 幻灯片的页脚。页脚显示幻灯片的标题,后跟“:”,然后是当前部分标题。如果当前部分已定义,则此方法可行。但是,如果未定义该部分,则只剩下当前标题后跟一个悬空冒号。如果未定义当前部分,我希望不显示冒号。

那么,如何确定当前幻灯片的部分是否已定义,以及如何在页脚的条件中使用它?为了完整起见,了解如何确定当前子部分是否已定义也会有所帮助。

我迄今为止的尝试:

\begin{beamercolorbox}[wd=.85\paperwidth,ht=2.25ex,dp=1ex,left]{author in head/foot}%
   \usebeamerfont{author in head/foot}
   \hspace*{2ex}\insertshorttitle  % insert title in footer       
   \, : \insertsection             % insert current section [should only be done if section defined] 
\end{beamercolorbox}%

% more code to insert the slide number in the footer (not shown)

答案1

如果不存在先前\section存在的内容\insertsection,则为空(至少在我的测试中如此)。因此,您可以使用以下方法进行测试:

\ifx\insertsection\empty
     % it is empty
\else
    it is not
\fi

应用于您的代码:

\begin{beamercolorbox}[wd=.85\paperwidth,ht=2.25ex,dp=1ex,left]{author in head/foot}%
   \usebeamerfont{author in head/foot}
   \hspace*{2ex}\insertshorttitle  % insert title in footer       
   \ifx\insertsection\empty\else
      \, : \insertsection             % insert current section [should only be done if section defined] 
   \fi
 \end{beamercolorbox}%

相关内容