我正在寻找一种使用自定义字母表enumerate
的 from 包的方法enumitem
。首先,我只想使用字母而不是数字,所以我更新了输出item
标签的命令。我做了:
\renewcommand{\labelenumi}{\alph{enumi}}
之前\begin{enumerate}
。但不久之后我意识到我需要字母 č、š 和 ž,并且我的字母表有 25 个字符,所以我决定创建一个命令来输出与数字相对应的字母。我这样做了:
\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
}
如果我想在文本中间获取此字母表中的字符,例如在句子中,我会写\xslalph{3}
并得到“c”,那么这种方法是可行的。但在上述情况下,这种方法不起作用。\renewcommand{\labelenumi}{\xslalph{enumi}}
和\renewcommand{\labelenumi}{\xslalph{\value{enumi}}}
都会\renewcommand{\labelenumi}{\xslalph{\theenumi}}
在错误日志中输出“缺失数字,视为零。\item”,并且不会出现任何文本作为项目的标签。
从枚举计数器将一些数字“传递”到我的命令中的适当方法是什么\xslalph
? 抱歉造成误解,但我来自 C 类语言的世界,不习惯使用 LaTeX。
答案1
首先,欢迎来到 TeX.SX!
enumitem
enumerate
允许在命令环境中使用其他数字系统\AddEnumerateCounter
。有关详细信息,请参阅文档。
这是使用您的命令实现的计数器\xslalph
。
\documentclass{article}
\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
\begin{document}
\begin{enumerate}[label=\xslalph*)]
\item test
\item test
\item test
\item test
\end{enumerate}
\end{document}