我正在开发一款根据我的需求定制的 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
\insert
Beamer在文件中对不同的命令有原始定义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[]{}
。