如何建立一个有效的字母编号?

如何建立一个有效的字母编号?

看见这个帖子,我正在寻找一种好的字母编号解决方案。在我看来,编号的显示方式取决于数字的最大值。

  1. 如果 MAX = 26,那么字母编号必须是a, b, c, ..., z
  2. 如果 MAX = 26^2,那么 alpha 编号必须是aa, ab, ac, ..., az, ba, bb, bc, ..., bz, ..., za, zb, zc, ..., zz
  3. 如果 MAX = 26^n,则字母编号必须相似,但有 n 个字母而不是 2 个。

如何通过使用一个命令和一个常数来指示用于字母编号的字母数量 n 来获得此功能?

答案1

\documentclass{article}
\usepackage{expl3,xparse}
\ExplSyntaxOn
\DeclareDocumentCommand {\alphanumbering} { O{3} m } {
    \exp_last_unbraced:Nf \use_none:n {
        \int_to_alph:n {
            \exp_args:Nf \int_from_alph:n { \prg_replicate:nn {#1} {z} }
            + #2 } } }
\ExplSyntaxOff
\begin{document}
  \alphanumbering{1}, \alphanumbering{2}, \ldots{}, \alphanumbering{26},
  \alphanumbering{27}, \ldots{}, \alphanumbering{2*26},
  \ldots{}, \alphanumbering{26*26}, \ldots{}, \alphanumbering{26*26*26},
  \alphanumbering{26*26*26+1}.

  \alphanumbering[6]{12345}
\end{document}

相关内容