我在 beamer 中使用 AnnArbor 模板如下:
\mode<presentation>
{
\usetheme{AnnArbor}
\usecolortheme[named=kugreen]{structure}
\useinnertheme{circles}
\usefonttheme[onlymath]{serif}
\setbeamercovered{transparent}
\setbeamertemplate{blocks}[rounded][shadow=true]
}
我想在一些幻灯片中添加一些信息,这些信息应该显示在顶部水平区域、右边缘,如下面的屏幕截图中的箭头所示:
这些信息应该属于每一个框架(它并不是在序言中一劳永逸地定义的全局标识),事实上我想为框架的内容添加书目参考,因此它可能对于每个框架都不同或空白。
我需要重新定义什么才能获得这个?
补充:Jesse Knight 要求提供一个最小的工作示例,即
\begin{frame}[fragile]
\frametitle{Phonèmes}\infoForRightCorner{Cat01}
Contents of the slide
\end{frame}
其中“Cat01”应出现在此幻灯片的右上角(与顶部水平栏蓝色部分中显示的“Phonétique / phonologie”部分标题的高度和字体大小相同)。这应该提醒大家,此幻灯片的主要参考书目是“Cat01”,即 JC Catford,语音学实用入门,牛津大学出版社 2001。另一个(也许更优雅的)语法可能是
\begin{frame}[fragile,topbarright={Cat01}]
\frametitle{Phonèmes}
Contents of the slide
\end{frame}
但对我来说,结果比获得它的语法更重要。
答案1
使用infolines
标题定义(可在 中找到beamerouterthemeinfolines.sty
),您可以重新定义标题,使右上方的框为空白。然后,您可以定义一个选项myinfo
,如果传递给框架,它将重新定义标题,使 的内容myinfo
出现在右上方的框中。
\documentclass{beamer}
\mode<presentation>
{
\usetheme{AnnArbor}
\useinnertheme{circles}
\usefonttheme[onlymath]{serif}
\setbeamercovered{transparent}
\setbeamertemplate{blocks}[rounded][shadow=true]
}
%% Make top right box blank for each new frame
\makeatletter
\BeforeBeginEnvironment{frame}{%
\setbeamertemplate{headline}{%
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.65ex,dp=1.5ex,right]{section in head/foot}%
\usebeamerfont{section in head/foot}\insertsectionhead\hspace*{2ex}
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.65ex,dp=1.5ex,right]{subsection in head/foot}%
\usebeamerfont{subsection in head/foot}
% \insertsubsectionhead
\hspace*{2ex}
\end{beamercolorbox}}%
\vskip0pt%
}}
%% If myinfo option is passed to frame, add to headline
\define@key{beamerframe}{myinfo}[true]{%
\setbeamertemplate{headline}{%
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.65ex,dp=1.5ex,right]{section in head/foot}%
\usebeamerfont{section in head/foot}\insertsectionhead\hspace*{2ex}
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.65ex,dp=1.5ex,right]{subsection in head/foot}%
\usebeamerfont{subsection in head/foot}
#1
% \insertsubsectionhead
\hspace*{2ex}
\end{beamercolorbox}}%
\vskip0pt%
}}
\makeatother
\begin{document}
\section{Phonétique / phonologie}
\subsection{First subsection title}
\begin{frame}[fragile,myinfo=Cat01 or something]
\frametitle{Phonèmes}
Slide with info
\end{frame}
\begin{frame}
\frametitle{Next frame}
No info for this slide
\end{frame}
\end{document}
答案2
以下是使用 Tikz 的解决方案:将节点放置在north east
页面的右上角(技术上:)。其他一些选项如下:如何在投影仪中将图像定位到任意位置?
[注:在下面的例子中,我必须发明颜色kugreen
。如果您以后能提供一个最小的工作示例,那将会很有帮助,这意味着其他用户可以复制和粘贴并立即编译 TeX 文件的内容,而无需添加等等\documentclass{...}
。]
\documentclass{beamer}
\usepackage{tikz}
\definecolor{kugreen}{RGB}{50,93,61}
\mode<presentation>
{
\usetheme{AnnArbor}
\usecolortheme[named=kugreen]{structure}
\useinnertheme{circles}
\usefonttheme[onlymath]{serif}
\setbeamercovered{transparent}
\setbeamertemplate{blocks}[rounded][shadow=true]
}
\newcommand{\infoForRightCorner}[1]{%
\tikz[remember picture,overlay]{
\node[anchor=north east] at (current page.north east) {#1};}
}
\begin{document}
\begin{frame}[fragile]
\frametitle{Phonèmes}
\infoForRightCorner{Cat01}
Contents of the slide
\end{frame}
\end{document}