![如何在 beamer 中创建底部侧边栏?](https://linux22.com/image/263739/%E5%A6%82%E4%BD%95%E5%9C%A8%20beamer%20%E4%B8%AD%E5%88%9B%E5%BB%BA%E5%BA%95%E9%83%A8%E4%BE%A7%E8%BE%B9%E6%A0%8F%EF%BC%9F.png)
我正在根据我所在学院的 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}