我正在使用该enumitem
包来通过为enumerate
item
label
s 设置一组自定义字符来定制枚举。
我平时制作文章类型的文档的时候,都是使用下面的代码。
\usepackage{enumitem}
\makeatletter
\newcommand{\xslalph}[1]{\expandafter\@xslalph\csname c@#1\endcsname}
\newcommand{\@xslalph}[1]{%
\ifcase#1\or a\or b\or c\or \v{c}\or d\or e\or f\or g\or h\or i%
\or j\or k\or l\or m\or n\or o\or p\or r\or s\or \v{s}%
\or t\or u\or v\or z\or \v{z}%
\else\@ctrerr\fi%
}
\AddEnumerateCounter{\xslalph}{\@xslalph}{m}
\makeatother
(我从之前的问题中得到了这个代码---使用自定义字母表枚举项目)
我正在准备一个beamer
演示文稿。beamer
使用特殊的内部脚本来处理与不兼容的枚举enumitem
,因此enumitem
无法use
在中使用beamer
documentclass
。
如何在投影仪幻灯片中使用AddEnumerateCounter
?我想用斯洛文尼亚字母 (abcčdefghijklmnoprsštuvzž)item
按字母顺序排列。label
答案1
解决方案 1
使用beamer
该enumerate
包并根据该包的文档,您可以提供自定义的计数器样式。请参阅文档第 2 节有关的内容\@enhook
。
pgffor
这里muticol
仅仅是为了举例子。
如果您只想在本地进行这样的编号,则可以这样做。
\documentclass{beamer}
\usepackage{multicol}
\usepackage{pgffor}
\makeatletter
% Same definition of \xsalph than what you provided
\newcommand{\xslalph}[1]{\expandafter\@xslalph\csname c@#1\endcsname}
\newcommand{\@xslalph}[1]{%
\ifcase#1\or a\or b\or c\or \v{c}\or d\or e\or f\or g\or h\or i%
\or j\or k\or l\or m\or n\or o\or p\or r\or s\or \v{s}%
\or t\or u\or v\or z\or \v{z}%
\else\@ctrerr\fi%
}
% Extention of enumerate package according to documentation section 2. about "\@enhook"
% Makes * trigger \xslalph enumeration style
\providecommand\@enhook{}
\g@addto@macro\@enhook{%
\ifx *\@entemp\def\@tempa{\@enLabel\xslalph}%
\fi}
\makeatother
\begin{document}
\begin{frame}
\begin{multicols}{2}
\begin{enumerate}[*]
\foreach \nitem in {1,...,25}{
\item \nitem.
}
\end{enumerate}
\end{multicols}
\end{frame}
\end{document}
解决方案 2
您可以enumerate item
使用以下方式全局修改样式
\setbeamertemplate{enumerate item}{\xslalph{enumi}.}
输出相同但不需要环境选项enumerate
。
\documentclass{beamer}
\usepackage{multicol}
\usepackage{pgffor}
\makeatletter
% Same definition of \xsalph than what you provided
\newcommand{\xslalph}[1]{\expandafter\@xslalph\csname c@#1\endcsname}
\newcommand{\@xslalph}[1]{%
\ifcase#1\or a\or b\or c\or \v{c}\or d\or e\or f\or g\or h\or i%
\or j\or k\or l\or m\or n\or o\or p\or r\or s\or \v{s}%
\or t\or u\or v\or z\or \v{z}%
\else\@ctrerr\fi%
}
\makeatother
\setbeamertemplate{enumerate item}{\xslalph{enumi}.}
\begin{document}
\begin{frame}
\begin{multicols}{2}
\begin{enumerate}
\foreach \nitem in {1,...,25}{
\item \nitem.
}
\end{enumerate}
\end{multicols}
\end{frame}
\end{document}