我想用 12 进制来为文档编页码,同时还想用同样的方式为 AMS 定理、章节、方程式等编页码。最佳解决方案是什么?
我发现这个工作代码使用二进制进行页码编号:
\usepackage{expl3}
\ExplSyntaxOn
\renewcommand\thepage{\int_to_bin:n{\value{page}}}
\ExplSyntaxOff
也许我应该以某种方式使用十几个包。提前谢谢您。
答案1
\documentclass{article}
\makeatletter
\def\btwelve#1{\expandafter\@btwelve\csname c@#1\endcsname}
\def\@btwelve#1{\ifnum#1>11
\@btwelve{\numexpr(#1-6)/12\relax}%
\btwelvedigits{\numexpr#1-((#1-6)/12)*12\relax}\else
\btwelvedigits{#1}%
\fi}
\def\btwelvedigits#1{\ifcase\numexpr#1\relax 0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or A\or B\or[\number#1]\fi}
\begin{document}
{\renewcommand\thepage{\btwelve{page}}
\setcounter{page}{5} \thepage
\setcounter{page}{10} \thepage
\setcounter{page}{11} \thepage
\setcounter{page}{12} \thepage
\setcounter{page}{17} \thepage
\setcounter{page}{18} \thepage
\setcounter{page}{19} \thepage
\setcounter{page}{24} \thepage
\setcounter{page}{25} \thepage
}
\end{document}
这可以轻松适应任何基数*只需在计算中替换 11、12 和 6)。
答案2
与使用灵活基础的问题中的想法相同:
\usepackage{expl3}
\ExplSyntaxOn
\renewcommand\thepage{\int_to_Base:nn{\value{page}}{12}}
\ExplSyntaxOff
答案3
\usepackage[typeone]{dozenal}
将为您做到这一点:所有标准计数器都被重新定义为使用特殊符号(与 Computer Modern 字体兼容)。