使用自定义字母表枚举项目

使用自定义字母表枚举项目

我正在寻找一种使用自定义字母表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!

enumitemenumerate允许在命令环境中使用其他数字系统\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}

相关内容