主题使用深色方块搭配白色文字,很好地Rochester
展现了enumerate
项目符号的样式。例如,MWE
\documentclass[20pt]{beamer}
\usetheme[height=50pt]{Rochester}
\begin{document}
\begin{frame}{Example}
\begin{enumerate}
\item Do this.
\item Do that.
\item Go to step 1.
\end{enumerate}
\end{frame}
\end{document}
给我们
步入3,将“1”设计成看起来就像项目符号一样会很好。
我知道我可以用colorbox
和来实现这一点textcolor
,但这不会从主题中提取样式,因此如果我稍后更改为其他主题,它将不再匹配。例如,Frankfurt
具有 3D 阴影球体效果。
Beamer 是否提供了一种方法来执行此操作,即类似的假设命令\enumbulletstyle{1}
?
答案1
这是beamer
枚举项的模板Rochester
(取自beamerbaseauxtemplates.sty
:
\defbeamertemplate{enumerate item}{square}
{
\hbox{%
\usebeamerfont*{item projected}%
\usebeamercolor[bg]{item projected}%
\vrule width2.25ex height1.85ex depth.4ex%
\hskip-2.25ex%
\hbox to2.25ex{%
\hfil%
\color{fg}\insertenumlabel%
\hfil}%
}%
}
[action]
{\setbeamerfont{item projected}{size=\scriptsize}}
仅提取相关信息,您可以创建一个宏,用于在列表中插入类似格式的项目:
\documentclass{beamer}
\usetheme{Rochester}
% Taken partially from the beamer template for enumerate item in
% http://mirrors.ctan.org/macros/latex/contrib/beamer/base/beamerbaseauxtemplates.sty
% Rochester uses a square enumerated item template
\newcommand{\enumlabelref}[1]{%
\hbox{%
\usebeamerfont*{item projected}%
\usebeamercolor[bg]{item projected}%
\vrule width2.25ex height1.85ex depth.4ex%
\hskip-2.25ex%
\hbox to2.25ex{%
\hfil%
\color{fg}#1%
\hfil}%
}%
}
\begin{document}
\begin{frame}{Example}
\begin{enumerate}
\item Do this. \label{enum:first-item}
\item Do that.
\item Go to step \enumlabelref{1}.
\item Go to step \hyperref[enum:first-item]{\enumlabelref{\ref*{enum:first-item}}}.
\end{enumerate}
\end{frame}
\end{document}
上面提供的两个选项展示了如何使用引用而不是硬编码的数字。
要以更通用的方式使用主题选择的任何模板,请使用此版本\enmlabelref
:
\newcommand{\enumlabelref}[1]{{%
\expandafter\patchcmd\csname beamer@@tmpl@enumerate item\endcsname% <cmd>
{\insertenumlabel}% <search>
{#1}% <replace>
{}{}% <success><failure>
\usebeamertemplate{enumerate item}%
}}