使 numname 和 enumitem 一起工作

使 numname 和 enumitem 一起工作

numname是一个允许您用文字写出(例如)章节标题的软件包。它基本上是从中取出的一些代码memoir.cls

然而,代码似乎存在问题。

我尝试选择使用enumerate带有单词标签的选项,如下所示:

\documentclass{article}
\usepackage{enumitem}

\usepackage{numname}
\makeatletter
\newcommand*{\nthwords}[1]{%
  \expandafter\@nthwords\csname c@#1\endcsname}
\newcommand*{\@nthwords}[1]{%
  \ordinaltoName{#1}}
\AddEnumerateCounter{\nthwords}{\@nthwords}{eleven}

\makeatother

\newcounter{tctr}
\setcounter{tctr}{12}

\begin{document}
\nthwords{tctr}

% \begin{enumerate}[label=\nthwords*]
% \item Boo
% \item Far
% \item Faz\label{fz}
% \end{enumerate}
% \ref{fz}

\end{document}

这工作正常,但取消注释枚举环境会使它incomplete \iffalse在第一个行出现“ ” \item

现在,注释掉\usepackage{numname}并更改文档类即可memoir解决问题。

所以某物出了问题。有任何线索可以说明问题是什么吗?或者我应该给 numname 的作者发邮件吗?[我问这个问题是因为我知道我们有一些memoir专家可能能够发现这个问题...]

答案1

它实际上并不适用于回忆录,您可以通过\label在第二项中添加 a 并\ref在其中添加 a 来看到它。

你可以通过以下方式让它工作

\usepackage{numname}
\makeatletter
\newcommand*{\nthwords}[1]{%
  \expandafter\@nthwords\csname c@#1\endcsname}
\newcommand*{\@nthwords}[1]{%
  \protect\ordinaltoName{\number#1}}
\AddEnumerateCounter{\nthwords}{\@nthwords}{eleven}
\makeatother

之所以回忆录没有给出错误是因为\ordinaltoName在那个类中是健壮的,并且它不是号码名称

相关内容