在 beamer 中获取主题的逐项项目符号?

在 beamer 中获取主题的逐项项目符号?

我想知道是否有办法获取itemize主题中定义的项目符号beamer。更准确地说,我想手动将项目符号放置在文本中的某个位置。

一种选择是查看主题的样式文件并手动放置适当的标记(例如,在default主题中,项目符号是$\blacktriangleright$,我可以随时放置相同的符号 - 我还必须注意颜色和大小,...)但在这种情况下,如果我想改变主题,它就会很混乱!

我相信一定有更好的方法来做到这一点......

谢谢,

答案1

您可以使用适当的templatefont和颜色来定义命令;这样您就可以确保您的定义将遵守所选主题的设置:

\documentclass{beamer}
\usetheme{Madrid}

\newcommand\Mitemitem{%
  \begingroup
  \leavevmode
  \usebeamerfont*{itemize item}%
  \usebeamercolor[fg]{itemize item}%
  \usebeamertemplate**{itemize item}%
  \endgroup
}
\newcommand\Mitemsubitem{%
  \begingroup
  \leavevmode
  \usebeamerfont*{itemize subitem}%
  \usebeamercolor[fg]{itemize subitem}%
  \usebeamertemplate**{itemize subitem}%
  \endgroup
}

\begin{document}

\begin{frame}
\Mitemitem\ AAA

\Mitemsubitem\ AAA
\end{frame}

\end{document}

在此处输入图片描述

相同的代码,但default主题不同

在此处输入图片描述

答案2

如果有人有兴趣了解它如何适用于枚举(即编号列表),这里是改编自的代码Gonzalo Medina

\newcounter{copyOfCurrentNumber}
\newcommand{\EnumItem}[1] {%
  \begingroup
  \setcounter{copyOfCurrentNumber}{\theenumi}
  \setcounter{enumi}{#1}
  \leavevmode
  \usebeamerfont*{enumerate item}%
  \usebeamercolor[fg]{enumerate item}%
  \usebeamertemplate**{enumerate item}%
  \setcounter{enumi}{\thecopyOfCurrentNumber}
  \endgroup
}

现在,除了用 enumerate 替换 itemize 之外,该代码还执行“保存”当前枚举数的操作。因此,该命令\EnumItem接收一个等于应该打印的数字的参数(当然是 enumerate 列表的样式)。但是通过环境将枚举号改为参数的枚举号(即打印的数字),我们将改变当前枚举号作为副作用。如果我们当前处于这样的枚举中,那么就会出现问题。因此,代码将当前数字保存在一个新变量中,并在作业完成后将其复制回来。

下面是示例代码和可视化。

\begin{frame}[t]{Example}
  \begin{enumerate}
    \item First list entry.
    \item This is label 5: \EnumItem{5} (although we don't have that list entry).
    \item Third entry. Still starts with 3, not with 6! Phew! 
  \end{enumerate}
\end{frame}

在此处输入图片描述

相关内容