如何在 beamer 中创建底部侧边栏?

如何在 beamer 中创建底部侧边栏?

我正在根据我所在学院的 powerpoint 模板创建一个 beamer 模板。

对于主题,我需要能够使用页脚线和左侧边栏。问题是,侧边栏应该位于页脚线的底部,而不是顶部。出于美观原因,侧边栏应该只是左侧的一条细线。没有相关内容。

我目前得到的结果如下图所示:使用主题创建的页面

稍后将正确设置颜色。我希望黑色块位于页面底部。绿色是脚注(用于正确识别)。

\ILEA@Sidebar@Width我使用(主题中固定的、预定义的长度)创建了黑色块

\defbeamertemplate*{sidebar left}{ILEA}{%
\rule{\ILEA@Sidebar@Width}{\textheight}%
}

我首先想到的是计算脚线的高度,然后将规则高度以此高度来扩大,但是黑色规则和绿色背景之间的间隙不会包括在内,是吗?

如果我禁用脚注线(将其清空),间隙仍然存在。因此,似乎不是原始脚注线插入了此处的空间。我将为您提供一个(或多或少)最小的工作示例来重现我所做的操作:

\documentclass{beamer}
\setbeamersize{sidebar width left=12pt}
\setbeamercolor*{footline}{fg=red,bg=green}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{%
\begin{beamercolorbox}{footline}%
~\hfill \insertframenumber\hspace{10pt}\vspace{1ex}%
\end{beamercolorbox}}
\setbeamertemplate{sidebar left}{%
\rule{10pt}{\textheight}}
\begin{document}
\begin{frame}
\frametitle{Der Titel}
Mein Text
\end{frame}
\end{document}

编辑:

我想避免将除美观值以外的其他长度值硬编码到模板中。否则,很快就会发生这种情况,即对字体大小的任何修改都可能导致模板被破坏。所以我想让 latex 计算这个所需的长度。

如果你把它替换掉\setbeamertemplate{sidebar left}{a \vfill b},你会看到,Latex 似乎知道可用空间的正确高度。据我所知,\textheight代表垂直可用空间的长度。所以我试了这个长度。

有没有更好的方法来处理事情?

答案1

尝试\paperheight

\documentclass{beamer}
\usepackage{calc}
\setbeamersize{sidebar width left=12pt}
\setbeamercolor*{footline}{fg=red,bg=green}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{%
\begin{beamercolorbox}[sep=2pt]{footline}%
~\hfill \insertframenumber\hspace{10pt}\vspace{1ex}%
\end{beamercolorbox}}
%
\newlength\mytep
\setlength\mytep{\paperheight-10.7pt}
\setbeamertemplate{sidebar left}{%
\begin{beamercolorbox}[ht=\mytep, wd=10pt, dp=0pt]{footline}%

\end{beamercolorbox}
%
}
\begin{document}
\begin{frame}
\frametitle{Der Titel}
Mein Text
\end{frame}
\end{document}

为了避免任何过满的垂直框,应该计算所有元素的宽度并从侧边栏的高度中减去。在这个例子中,我添加了手动调整,因为自动版本需要一个真实的例子。(另一种可能性是使用主题sidebar。)

您还可能会发现 beameruserguide 中的侧边栏部分很有趣。

如果不想关心高度和错误,可以使用模板sidebar canvas left。(这不会剪辑但会引发错误。请参阅 beameruserguide)

\documentclass{beamer}

\setbeamersize{sidebar width left=12pt}

\setbeamercolor*{footline}{fg=red,bg=green}

\setbeamertemplate{footline}{%
\begin{beamercolorbox}[sep=2pt]{footline}%
~\hfill \insertframenumber\hspace{10pt}\vspace{1ex}%
\end{beamercolorbox}}
\setbeamertemplate{sidebar left}{%

%
}

\setbeamertemplate{sidebar canvas left}{\color{red}\rule{12pt}{\paperheight}}

\begin{document}
\begin{frame}
\frametitle{Der Titel}
Mein Text
\end{frame}
\end{document}

相关内容