Beamer:看起来像枚举项目符号的文本

Beamer:看起来像枚举项目符号的文本

主题使用深色方块搭配白色文字,很好地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}

给我们

Beamer 罗切斯特列举

步入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}%
}}

相关内容