将“字段”添加到自定义 Beamer 主题

将“字段”添加到自定义 Beamer 主题

我正在开发一款根据我的需求定制的 Beamer 主题。现在我需要引入一个自定义字段或标签\MYTAG,类似于\frametitle包含某些信息并可通过 检索 .sty 文件中的内容\insertMYTAG,同样像\insertframetitle。我试图模仿它,但完全失败了。我会像下面摘录的那样使用它beamerouterthemeMYTHEME.sty

\defbeamertemplate*{frametitle}{MYTHEME theme}
{%
  \begin{beamercolorbox}[wd=\textwidth]{frametitle}
    \usebeamerfont{frametitle}
    \insertframenumber\hskip1em \insertframetitle \insertMYTAG%
    \usebeamerfont{headline}%
    \vskip.5ex  
  \end{beamercolorbox}
}

有人能提示我如何以及在何处定义这个标签吗?

答案1

\insertBeamer在文件中对不同的命令有原始定义beamerbasetitle.sty。例如,这是 date 命令的定义:

%
%
% The \date command
%
%
\def\date{\@dblarg\beamer@date}
\long\def\beamer@date[#1]#2{%
  \def\insertdate{#2}%
  \def\beamer@shortdate{#1}%
  }
\date{\today}


\newcommand\insertshortdate[1][]{%
  {%
    \let\thanks=\@gobble%
    \beamer@setupshort{#1}%
    \beamer@insertshort{\beamer@shortdate}%
  }}

根据您的需要,您可以使用:

%
%
% The \MYTAG command
%
%
\newcommand{\MYTAG}{\@dblarg\beamer@MYTAG}
\long\def\beamer@MYTAG[#1]#2{%
  \def\insertMYTAG{#2}  %
  \def\insertshortMYTAG{#1}%
  }
\MYTAG[defaultShortMYTAG]{defaultLongMYTAG}

其工作原理类似于\author[]{}、、\date[]{}等等\institute[]{}

相关内容