我想知道是否有办法获取itemize
主题中定义的项目符号beamer
。更准确地说,我想手动将项目符号放置在文本中的某个位置。
一种选择是查看主题的样式文件并手动放置适当的标记(例如,在default
主题中,项目符号是$\blacktriangleright$
,我可以随时放置相同的符号 - 我还必须注意颜色和大小,...)但在这种情况下,如果我想改变主题,它就会很混乱!
我相信一定有更好的方法来做到这一点......
谢谢,
答案1
您可以使用适当的template
、font
和颜色来定义命令;这样您就可以确保您的定义将遵守所选主题的设置:
\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}