我如何为新的计数器样式定义自己的符号序列?

我如何为新的计数器样式定义自己的符号序列?

我知道我可以像这样改变计数器样式:

\renewcommand\thechapter{\Roman{chapter}}

(上述命令将使章节编号以大写罗马数字显示)

然而,根据维基百科并回答这个问题,我只能在阿拉伯语、罗马语、希腊语和脚注符号中选择:

  • \arabic1、2、3 ...
  • \alpha、b、c...
  • \AlphA、B、C...
  • \roman一、二、三……
  • \Roman一、二、三……
  • \fnsymbol针对脚注;打印一系列符号。

有没有什么方法可以为计数器定义自己的符号序列?

答案1

您可以轻松地调整其定义,\alph其定义如下latex.ltx

\def\alph#1{\expandafter\@alph\csname c@#1\endcsname}
\def\@alph#1{%
  \ifcase#1\or a\or b\or 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 q\or r\or s\or t\or u\or v\or w\or x\or
    y\or z\else\@ctrerr\fi}

这里是自定义序列的 MWE。

\documentclass{article}
\makeatletter
\def\mysequence#1{\expandafter\@mysequence\csname c@#1\endcsname}
\def\@mysequence#1{%
  \ifcase#1\or AAA\or BBB\or CCC\else\@ctrerr\fi}
\makeatother
\renewcommand\thesection{\mysequence{section}}
\begin{document}
\section{Section}
\section{Section}
\section{Section}
%\section{Section} % --> LaTeX Error: Counter too large
\end{document}

请注意,如果计数器值过高(在我的示例中为 4),此实现将停止工作。因此请确保定义足够的符号。

相关内容