我想从头开始构建一个 beamer 主题。
我已阅读了 beameruserguide 并为 inner/outer/font/color-theme 创建了文件,但我仍然不太理解如何创建模板,因此我请求帮助以这个简单的标题框自定义为例来说明如何完成。
默认情况下\maketitle
将导致
我只是想改变这一点,让它导致
边注:
我还是想声明
\title{the title}
\author{the author}
\date{\today}
以供后续帧使用。
答案1
这是一个可能的实现:它实际上可以与每个标准主题一起使用,但如果您开发的主题将标题放在一个框中,您可能会想获得不同的效果。
\documentclass{beamer}
\setbeamerfont{supertitle}{size=\LARGE,parent=structure}
\makeatletter
\def\supertitle#1{\gdef\@supertitle{#1}}%
\setbeamertemplate{title page}
{
\vbox{}
\vfill
\begin{centering}
\begin{beamercolorbox}[sep=8pt,center]{title}
\usebeamerfont{supertitle}\@supertitle
\end{beamercolorbox}
\begin{beamercolorbox}[sep=8pt,center]{title}
\usebeamerfont{title}\inserttitle\par%
\ifx\insertsubtitle\@empty%
\else%
\vskip0.25em%
{\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}%
\fi%
\end{beamercolorbox}%
\vskip1em\par
\begin{beamercolorbox}[sep=8pt,center]{author}
\usebeamerfont{author}\insertauthor
\end{beamercolorbox}
\begin{beamercolorbox}[sep=8pt,center]{institute}
\usebeamerfont{institute}\insertinstitute
\end{beamercolorbox}
\begin{beamercolorbox}[sep=8pt,center]{date}
\usebeamerfont{date}\insertdate
\end{beamercolorbox}\vskip0.5em
{\usebeamercolor[fg]{titlegraphic}\inserttitlegraphic\par}
\end{centering}
\vfill
}
\makeatother
\supertitle{supertitle}
\title{the title}
\author{the author}
\institute{My institute}
\date{\today}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}{Title of first frame}
text
\end{frame}
\end{document}
得出:
我之前说过的问题是由于我使用了包含超级标题title
的颜色定义。beamercolorbox
通过\setbeamerfont
它可以表征新模板的特征supertitle
;一旦给出定义,应该在titlepage
模板内部立即应用它。supertitle
插入并设置其为所需的特性。
您可能注意到,titlepage 的所有元素都有此设置。为简单起见,我没有为 定义颜色模板supertitle
,但我重新使用了 给出的定义title
。实际上,对于 titlepage 中的每个模板,还有一个颜色模板定义,可以使用 给出\setbeamercolor
。如果您愿意,您可以通过以下方式定义自己的模板:
\setbeamercolor{supertitle}{...}
之后,你应该将之前的定义改为:
\begin{beamercolorbox}[sep=8pt,center]{supertitle}
\usebeamerfont{supertitle}\@supertitle
\end{beamercolorbox}
至于\inserttitlegraphic
,它是允许在标题页中插入(顾名思义)徽标的命令。在您的演示文稿中,您应该使用以下命令:
\titlegraphic{...}