beamer 是如何构建框架的?

beamer 是如何构建框架的?

我已经开始为 beamer 编写自己的主题。我对默认主题感到厌倦,我认为制作一些好看的主题可能是一个不错的挑战。问题是 beamer 文档并没有真正提供太多关于如何编写自己的主题的解释。它解释了一些关于该做什么的内容,但没有解释,例如,要自定义框架标题,您需要为和\defbeamertemplate设定自己的模板。我不得不通过查看默认主题的实际功能来解决这个问题。frametitleheadline

所以我的问题很笼统:Beamer 如何构建框架?我要定义哪些模板实体来定制 Beamer 的外观?Beamer 实际上用它们做什么?

例如,假设在某个时刻有某事在召唤\usebeamertemplate{frametitle}[<my theme>]\usebeamertemplate{headline}[<my theme>]但是如何召唤、何时召唤呢?

答案1

这是一半的答案。

它之所以只是答案的一半,是因为 beamer 构建框架的方式。本质上,框架上的内容可以分为“框架”和“内容”。“框架”组件实际上是通过挂接到 TeX 输出例程的页眉和页脚位来排版的。这确保它位于实际内容之后。然后呈现“内容”。“框架”组件由背景、侧边栏等所有内容组成。有趣的是,框架标题是“内容”的一部分。

到目前为止,我已经弄清楚了“框架”内容的布局顺序,以及(大部分)它由什么组成。要追踪线索,您需要查看\ps@navigationin的定义beamerbaseframecomponents.sty并搜索它包含的所有地方\usebeamertemplate(尽管您必须留意对其他也调用模板的函数的调用)。

正如马修所说,手册(第 8.2 节)中介绍了每个部件的具体内容和使用方法,但这并没有告诉你命令(嗯,不是很明显)并且基于一张图片胜过千言万语,我认为以下图片可能会有所帮助。

首先,框架本身:

投影机框架

现在来看爆炸图,至少就“框架”部分而言。

爆炸框架

它不是相当与我没有拆开模板并重复使用它们一样,但希望每个部分都足够独特以显示它是什么。

至于内容,则不需要进行“爆炸”,因为东西往往不会放在其他东西之上,所以这只是一个知道什么可以放入框架的问题。也许例外是框架标题,人们可以将其视为“框架”部分的一部分,但由于实施原因,它位于“内容”部分。因此,阅读用户指南beamer可能是您能获得的最佳信息。

我不会贴出实现上述功能的代码。这很不愉快!而且它也不能轻易适应其他情况。

相关内容