LaTeX/计数器
外观
< LaTeX
计数器是 LaTeX 的重要组成部分:它们允许您控制所有内容(节、列表、标题等)的编号机制。为此,每个计数器在 长整数 范围内存储一个整数值,即从 到 。 [1]
在 LaTeX 中,创建新的计数器以及在另一个计数器增加时自动重置的计数器(例如,节中的小节)相当容易。使用命令
\newcounter{NameOfTheNewCounter}
|
您将创建一个新计数器,该计数器自动设置为零。如果您希望计数器在每次另一个计数器增加时重置为零,请使用
\newcounter{NameOfTheNewCounter}[NameOfTheOtherCounter]
|
例如,如果您希望在每章中独立枚举方程式,您可以创建一个类似于“equationschapter”的计数器,该计数器将在每节开头自动重置。
\newcounter{equationschapter}[section]
\section{First Section}
I present one equation:
\stepcounter{equationschapter} $a=b+c$ (Eq. \arabic{section}.\arabic{equationschapter})
\section{Second Section}
I present more equations:
\stepcounter{equationschapter} $a=c+d$ (Eq. \arabic{section}.\arabic{equationschapter})
\stepcounter{equationschapter} $d=e$ (Eq. \arabic{section}.\arabic{equationschapter})
|
要将另一个计数器添加到现有计数器中,并在增加时导致重置,请使用
\counterwithin*{NameOfTheCounter}{NameOfTheOtherCounter}
|
如果这不起作用,可能是因为您使用的 LaTeX 版本过旧,在这种情况下,以下方法应该可以正常工作
\makeatletter
\@addtoreset{NameOfTheCounter}{NameOfTheOtherCounter}
\makeatother
|
要撤消此效果,可以使用
\counterwithout*{NameOfTheCounter}{NameOfTheOtherCounter}
|
或
\makeatletter
\@removefromreset{NameOfTheCounter}{NameOfTheOtherCounter}
\makeatother
|
要增加计数器,请使用
\stepcounter{NameOfTheNewCounter}
|
或
\refstepcounter{NameOfTheNewCounter} % used for labels and cross referencing
|
或
\addtocounter{NameOfTheNewCounter}{number}
|
这里的数字也可以是负数。对于自动重置,您需要使用 \stepcounter
。
要显式设置计数器值,请使用
\setcounter{NameOfTheNewCounter}{number}
|
有几种方法可以访问计数器。
\theNameOfTheNewCounter
将打印与计数器相关的格式化字符串(注意计数器实际名称之前的“the”)。\value{NameOfTheNewCounter}
将返回计数器值,该值可供其他计数器使用或用于计算。它不是格式化字符串,因此不能在文本中使用。\arabic{NameOfTheNewCounter}
将使用阿拉伯数字打印格式化的计数器。
请注意,\arabic{NameOfTheNewCounter}
也可以用作值,但其他命令不行。
奇怪的是,LaTeX 计数器在任何情况下都不用反斜杠引入,即使使用 \the
命令也是如此。plainTeX 等效项 \count
和 \newcount\mycounter
则遵守反斜杠规则。
以下内部 LaTeX 命令将把指定计数器的数值转换为可打印的字符串,并将字符串插入文档中
\arabic
- 数字从 到 (含)转换为字符串 «-2147483648», «-2147483647», …, «-1», «0», «1», …, «2147483646», «2147483647»。
- 示例:1、2、3、…
\alph
- 数字从 1 到 26(含)转换为字符串 «a», «b», …, «z». 其他数字(负数、零、27、28、…, ) 转换为空字符串。
- 示例:a、b、c、…
\Alph
- 与
\alph
相同,但使用大写字母。 - 示例:A、B、C、…
\roman
- 数字从 1 到 4999(含)转换为字符串 «i»(1)、«ii»(2)、…, «mmmmcmxcix»(4999),其中 «i» — 1、«v» — 5、«x» — 10、«l» — 50、«c» — 100、«d» — 500、«m» — 1000。数字从 5000 到 (含)转换为字符串 «mmmmm»(5000)、«mmmmmi»(5001)、…。其他数字(负数、零)转换为空字符串。
- 示例:i、ii、iii、…
\Roman
- 与
\roman
相同,但使用大写字母。 - 示例:I、II、III、…
\fnsymbol
- 针对脚注;打印一系列符号。
数字 符号 1 ∗ 2 † 3 ‡ 4 § 5 ¶ 6 ∥ 7 ∗∗ 8 †† 9 ‡‡ 其他数字 空字符串
- 示例:∗、†、‡、…
- 部分
- 章节
- 节
- 小节
- 小小节
- 段落
- 子段落
- 页
- 图
- 表
- 脚注
- 多行脚注
对于 enumerate 环境
- enumi
- enumii
- enumiii
- enumiv
对于 eqnarray 环境
- 公式
以下是一个在 book 类中使用部分和节,但没有章节的例子。
\renewcommand{\thesection}{\thepart .\arabic{section}}
\part{My Part}
\section{My Section}
\subsection{My Subsection}
|
参见 列表结构 章节。
这是一个重建类似于 LaTeX 中已经存在的节和子节计数器的例子。
\newcounter{mysection}
\newcounter{mysubsection}[mysection]
\addtocounter{mysection}{2} % set them to some other numbers than 0
\addtocounter{mysubsection}{10} % same
%
\arabic{mysection}.\arabic{mysubsection}
Blah blah
\stepcounter{mysection}
\arabic{mysection}.\arabic{mysubsection}
Blah blah
\stepcounter{mysubsection}
\arabic{mysection}.\arabic{mysubsection}
Blah blah
\addtocounter{mysubsection}{25}
\arabic{mysection}.\arabic{mysubsection}
Blah blah and more blah blah
|