beamer 样式文件中的条件语句

beamer 样式文件中的条件语句

下面是我用于演示的 beamer 样式文件的一部分的示例:

{
\nointerlineskip%
\begin{beamercolorbox}[wd=\paperwidth,ht=0.6cm,leftskip=.3cm,rightskip=.3cm]{frametitle}
\usebeamerfont*{frametitle}{\textbf{\insertframetitle}\textcolor{color1}{\insertframesubtitle}}\hfill \strut\par
\usebeamerfont{headline}%
\vskip.5ex
\end{beamercolorbox}
\nointerlineskip
\insertvrule{0.8pt}{black}
}

我想根据的内容创建一个条件语句\framesubtitle,例如:

if \frametitle empty (or not defined)
  % do something
else
  % do this other thing
    {
    \nointerlineskip%
    \begin{beamercolorbox}[wd=\paperwidth,ht=0.6cm,leftskip=.3cm,rightskip=.3cm]{frametitle}
    \usebeamerfont*{frametitle}{\textbf{\insertframetitle}\textcolor{color1}{\insertframesubtitle}}\hfill \strut\par
    \usebeamerfont{headline}%
    \vskip.5ex
    \end{beamercolorbox}
    \nointerlineskip
    \insertvrule{0.8pt}{black}
    }
end

我尝试使用该\@ifempty命令,但我无法找到使其工作的方法...您知道如何有效地处理这个问题吗?

答案1

egreg 的评论给了我正在寻找的答案,谢谢!最后,代码如下所示:

\defbeamertemplate*{frametitle}{smoothtree theme}{
    \nointerlineskip%
    \ifx\insertframesubtitle\@empty
        \begin{beamercolorbox}[wd=\paperwidth,ht=0.6cm,leftskip=.3cm,rightskip=.3cm]{frametitle}
        \usebeamerfont*{frametitle}{\textbf{\insertframetitle}\textcolor{color1}{\insertframesubtitle}}\hfill \strut\par%
        \usebeamerfont{headline}%
        \vskip.5ex
        \end{beamercolorbox}%
    \else
        \begin{beamercolorbox}[wd=\paperwidth,ht=0.6cm,leftskip=.3cm,rightskip=.3cm]{frametitle}
        \usebeamerfont*{frametitle}{\textbf{\insertframetitle}\textcolor{color1}{\insertframesubtitle}}\hfill \strut\par%
        \usebeamerfont{headline}%
        \vskip.5ex
        \end{beamercolorbox}%   
    \fi
    \nointerlineskip
    \insertvrule{0.8pt}{black}}

而且之后的部分代码我也可以\else随意修改……

相关内容