更改计数基数

更改计数基数

在文档中,是否可以更改书写数字的基数?默认数字是十进制,但我想使用八进制或十六进制数字。

另外,当我使用文档类别“书籍”或“报告”时,如何在正文前设置负数?我的意思是,我希望页数减少,前面带有负号,而不是小写拉丁数字(i、ii、iii、iv、...)。有办法吗?

答案1

每个计数器通常都用一个名为 的宏来打印,\thecounter其中counter是计数器名称,即页码存储在计数器中page\thepage宏用于排版。章节使用计数器chapter等。如果您想更改显示数字的基数,只需使用 重新定义此宏即可\renewcommand。该pgf包提供宏来显示八进制和十六进制数字。

如果您想以负数或其他数字开始页码,只需page使用 将计数器设置为该数字\setcounter{page}{<number>}即可。最好在序言中完成此操作。

答案2

使用计数包装并修补page柜台。

\documentclass{book}

\usepackage{fmtcount}

\usepackage[english]{babel}
\usepackage{blindtext}

\begin{document}

\addtocounter{page}{-4}

\blinddocument

\cleardoublepage
\renewcommand*{\thepage}{\hexadecimal{page}}

\blinddocument

\blinddocument

\blinddocument

\blinddocument

\end{document}

答案3

现在moreenum包允许您进行二进制、八进制和十六进制枚举。例如:

\documentclass{article}
\usepackage{moreenum}
\begin{document}
\begin{enumerate}[label=\enumHex*,start=8]
\item one
\item two
\item three
\end{enumerate}
\end{document}

moreenum自动加载enumitem,因此我使用enumitem选项start来说明这确实是十六进制编号,而不是拥有 >9 个项目的列表...)

答案4

由于 fmtcount 不能与 lastpage 或 totpages 一起使用,因此我不得不寻找其他解决方案:

\documentclass[12pt,a4paper,ngerman]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{blindtext,pgffor}
\input binhex

\begin{document}
\pagenumbering{Roman}
\tableofcontents
\newpage
\setcounter{page}{0}
\renewcommand*{\thepage}{0x\hex{\value{page}}}

\foreach \x in {0,...,4} {
  \blinddocument
}

\end{document}

相关内容