Beamer制作演示文档-9:列表样式的设置

到目前为止,列表元素的样式是下面这样的
enter description here
基本上可以猜到,经验丰富的老专家会认为这太简陋了,所以我试图把列表的样式进行一些修改。主要修改三个方面:

  • 对于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}
	}

产生的效果如下
enter description here

posted @ 2020-09-03 11:56  南宫二狗  阅读(1284)  评论(0编辑  收藏  举报