在 Beamer 中,我希望能够在由包定义的布局列表items
中使用球(里面有一个数字)。enumerate
enumitem
这个问题与使用 enumitem 时使 enumerate 具有 beamer 主题。其实已经给出了提示,但是不起作用。
此后,我的 MWE。如果您删除\protect\usebeamertemplate{enumerate item}
,MWE 即可工作。
\documentclass[12pt]{beamer}
\usepackage{enumitem}
\setbeamertemplate{enumerate item}[ball]
\setenumerate[1]{%
label=\protect\usebeamerfont{enumerate item}
\protect\usebeamercolor[fg]{enumerate item}
\protect\usebeamertemplate{enumerate item}
\insertenumlabel.}
\begin{document}
\begin{frame}
\begin{enumerate}
\item First item
\item Second item
\end{enumerate}
\end{frame}
\end{document}
您对正确纳入item
模板有什么建议吗?谢谢。
答案1
我会建议不是enumitem
与 一起使用beamer
,因为这种组合可能产生的损害大于益处。以您在问题中链接的答案中给出的代码为例:
\documentclass[12pt]{beamer}
\usetheme{Singapore}
\usepackage{enumitem}
\setenumerate[1]{%
label=\protect\usebeamerfont{enumerate item}%
\protect\usebeamercolor[fg]{enumerate item}%
\insertenumlabel.}
\begin{document}
\begin{frame}
\begin{enumerate}
\item First item
\item Second item
\end{enumerate}
\end{frame}
\end{document}
这段代码可以工作,而且表面上一切正常,但这段代码“隐藏”了一点,那enumerate
就是不是覆盖感知,这是一个严重的缺点;添加典型的覆盖规范
\documentclass[12pt]{beamer}
\usetheme{Singapore}
\usepackage{enumitem}
\setenumerate[1]{%
label=\protect\usebeamerfont{enumerate item}%
\protect\usebeamercolor[fg]{enumerate item}%
\insertenumlabel.}
\begin{document}
\begin{frame}
\begin{enumerate}[<+->]
\item First item
\item Second item
\end{enumerate}
\end{frame}
\end{document}
你收到错误消息
! Package enumitem Error: <+-> undefined.
See the enumitem package documentation for explanation. Type H <return> for immediate help. ...
l.14 \end{frame}
如果您想要自定义列表式环境,可以通过重新定义 中定义的相应元素来实现beamer
。例如,可以在文件 中找到enumerate item
每个预定义选项(default
、ball
、circle
、 )的模板定义。然后,您可以根据需要更改此定义;举个小例子,增加圆圈的大小并在枚举标签后添加最后一个点:square
beamerbaseauxtemplates.sty
\documentclass[12pt]{beamer}
\makeatletter
\setbeamertemplate{enumerate item}
{
\begin{pgfpicture}{-1ex}{-0.65ex}{1ex}{1ex}
\usebeamercolor[fg]{item projected}
{\pgftransformscale{2}\pgftext{\normalsize\pgfuseshading{bigsphere}}}
{\pgftransformshift{\pgfpoint{0pt}{0.5pt}}
\pgftext{\usebeamerfont*{item projected}\insertenumlabel.}}
\end{pgfpicture}%
}
\makeatother
\begin{document}
\begin{frame}
\begin{enumerate}
\item First item
\item Second item
\end{enumerate}
\end{frame}
\end{document}