2.8 计数器
前面在源文件结构里提到过, 对于章节可以进行自动的编号而不用我们去操心, 那这个编号中具体蕴含着什么呢, 又或者我们不想用它自动生成的序号呢?这一节我们来说说LaTeX中的计数器.
论文中每个章节, 插图, 表格, 公式, 脚注, 页码等文本元素都有一个递增的排序序号, 以便于区分, 查阅, 和引用[1], 而计数器就完成了这一工作, 它独自行动, 会将中间添加的元素添加上自己的序号, 并将后面的元素的序号更新, 同时为了在排版过程中控制每页可放置浮动体的的数量, 章节目录的深度(即可以显示几层), 都需要计数器的控制.
2.8.1 计数器的名称与用途
在LaTeX系统中内置了23个计数器, 其中17个为序号计数器, 6个为控制计数器.
序号计数器
序号计数器用于为各种文本元素生成序号. 每个序号计数器与其排列的命令名或环境名都相同(只有enumi四个不同), 如下表
序号计数器.png控制计数器
控制计数器用于控制浮动体数量和目录深度, 它们的名称和用途说明如下表
序号计数器.png2.8.2 计数器的计数形式
序号计数器的计数形式有多种, 可通过计数形式命令确定或改变, 以下是各种计数形式命令及其计数形式说明:
计数形式.png在上述各种计数形式命令中, 计数器可以是17个序号计数器的任意一个, 也可以是自定义的新的计数器.
序号计数器的默认计数形式
在所有的17个序号计数器中, enumii
和mpfootnote
的默认计数形式都是小写英文字母, enumiii
为小号罗马数字, enumiv
为大写英文字母, 其余序号计数器的默认计数形式均为阿拉伯数字.
序号计数器的计数形式修改
可以用重新定义命令来改变序号计数器的计数形式 例如章序号计数器改为大写罗马数字的计数形式:\renewcommand{\thechapter}{\Roman{chapter}}
. 这个命令中的\thechapter
是chapter
章的计数器内的数字.
计数器设置命令
LaTeX提供了一组有关计数器设置的命令, 下面列出这些命令及其用途说明:
计数器设置命令.png每当使用命令\newcounter
自定义一个新计数器时, 系统将会自动地定义一条新命令:
\newcounter{\the新计数器}{\arabic{新计数器}}
这条命令用于显示该新计数器的值.
命令\refstepcounter
的应用
计数器命令\refstepcounter
常用于定义可生成序号的命令或环境, 以备在正文中被引用. 例如我们可以定义一个以节为计数单位的示例命令\EX
\documentclass{article}
\usepackage[UTF8]{ctex}
\begin{document}
\newcounter{Emp}[section]
\renewcommand{\theEmp}{\thesection.\arabic{Emp}}
\newcommand{\EX}{\par\textbf{例}\refstepcounter{Emp}\textbf{\theEmp}\hspace{1em}}
\section{第一节}
\EX 写第一个\LaTeX 文档
\EX 源文档的结构
\section{第二节}
\EX 自定义
\EX 自定义命令
\end{document}
计数器应用.png
对上面的命令进行说明:
- 第一条命令
\newcounter{Emp}[section]
定义了一个名为Emp
的计数器, 并设定它以节为排序单位, 每当新的一节开始的时候它就会被清零. - 第二条命令
\renewcommand{\theEmp}{\thesection.\arabic{Emp}}
重新定义了\theEmp
命令, 使其可以显示节.序号
的形式. - 第三条命令定义了一个
\EX
命令, 每调用一次命令, 计数器命令\refstepcounter
就会将\theEmp
的值加一; 如果\EX
后跟有书签命令\label
, 命令\refstepcounter
还会将这个当前值传递给这个书签命令, 便于在正文中使用\ref
引用这个示例. 命令中的\hspace{<长度>}
是一个长度设置命令, 表示生成一段水平(Horizontal)的空白,1em
代表了当前字号下M的宽度.
对于计数器我们暂时介绍这么多, 余下的在涉及时再进行说明.
-
关于怎么引用我们在2.9节介绍 ↩
网友评论