我正在尝试重新定义枚举标签,以便我可以使用玛雅数字(\mayadigit
来自 mathabx 包,或者理想情况下是来自的固定旋转数字)这里)。我尝试简单地\renewcommand\theenumi{\mayadigit{enumi}}
按照您对 的操作进行操作\roman
。在这种情况下,我收到以下错误:
缺失数字,视为零
似乎\roman
比 具有更多的结构\mayadigit
,但我找不到为 定义相同内容所需的内容\mayadigit
。
答案1
enumitem
我通过查看包设法使它工作moreenum
。如果有人感兴趣的话,这是我的解决方案:
\usepackage{graphicx}
\usepackage{enumitem}
\usepackage{mathabx}
\newcommand\mathbfont{\usefont{U}{mathb}{m}{n}}
\def\mayaexpansion{%
\mayacntc=\mayacnta\mathbfont
\ifnum\mayacntc=0 0\else
\rotatebox[origin=c]{-90}{%
\loop\ifnum\mayacntc>5\advance\mayacntc by -5\repeat
\the\mayacntc\mayacntc=\mayacnta
\loop\ifnum\mayacntc>5\advance\mayacntc by -5 5\repeat}%
\fi}%
\makeatletter
\newcommand*{\mayalabel}[1]{%
\expandafter\@mayalabel\csname c@#1\endcsname}
\newcommand*{\@mayalabel}[1]{%
\protect\mayadigit{\number#1}}
\AddEnumerateCounter{\mayalabel}{\@mayalabel}{\mayadigit{5}}
\makeatother
\makeatletter
\newcommand*{\mayafull}[1]{%
\expandafter\@mayafull\csname c@#1\endcsname}
\newcommand*{\@mayafull}[1]{%
\protect\ensuremath{\maya{\number#1}}}
\AddEnumerateCounter{\mayafull}{\@mayafull}{\maya{5}}
\makeatother
使用[label=\mayalabel*]
会给你\mayadigit{}
而[label=\mayafull*]
会给你\maya{}
。不过,它们都没有真正超过二十个。前者是错误的,后者很笨重。