Beamer制作演示文档-9:列表样式的设置
到目前为止,列表元素的样式是下面这样的
基本上可以猜到,经验丰富的老专家会认为这太简陋了,所以我试图把列表的样式进行一些修改。主要修改三个方面:
- 对于Itemize,修改了第一级和第二级的图标
- 对于enumerate,修改了标号的样式
- 对于description,想把它改成对齐的方式,但是没找到方法,所以新定义了一个环境
mydescription
,它接收最长标签,计算它的长度,并把所有的标签都设置到同样的长度,从而实现对齐。
使用的是如下的代码。
\RequirePackage{bbding}
%\RequirePackage{arev}
\newlength{\HeightOfItem}
\newlength{\HeightOfSubItem}
\settoheight{\HeightOfItem}{\usebeamerfont*{itemize/enumerate body}{item元素字体高度}}
\settoheight{\HeightOfSubItem}{\usebeamerfont*{itemize/enumerate subbody}{subitem元素字体高度}}
\defbeamertemplate{itemize item}{NGEGItemizeItemTemplate}
{
\raisebox{-0.2\HeightOfItem}{\PencilRightUp}
}
\setbeamertemplate{itemize item}[NGEGItemizeItemTemplate]
\defbeamertemplate{itemize subitem}{NGEGItemizeSubitemTemplate}
{
\raisebox{-0.2\HeightOfSubItem}{\HandRight}
}
\setbeamertemplate{itemize subitem}[NGEGItemizeSubitemTemplate]
\defbeamertemplate{enumerate item}{NGEGEnumerateItemTemplate}
{
\usebeamercolor[fg]{item projected}
\raisebox{-0.5\HeightOfItem}{\tikz \node[circle,fill=bg,inner sep=2pt] at (0,0){\insertenumlabel};}
}
\setbeamertemplate{enumerate item}[NGEGEnumerateItemTemplate]
\newcommand{\deflabel}[1]{\bf \color{bg}#1\hfill}%
\newenvironment{mydescription}[1]%
{
\begin{list}{}
{
\usebeamercolor{item projected}
\settowidth{\labelwidth}{\bf #1}%
\setlength{\leftmargin}{\labelwidth}%
\addtolength{\leftmargin}{\labelsep}%
\renewcommand{\makelabel}{\deflabel}
}
}%
{
\end{list}
}
产生的效果如下