首页 > 技术文章 > Latex技巧:在图表序号中加入章节号(实现诸如“图1.1.2”这样的图表序号)

yifdu25 2018-01-22 20:11 原文

平时看书经常看到“图1.2”这样的编号,含义是第1章的第2幅插图;或者“图1.1.2”,含义是第1章第1节的第2幅插图。而在LaTeX中如果直接插图的话只会显示“图2”这样的编号,有没有办法在LaTeX的图表序号中加入章节序号呢?办法肯定是有的,下面就是一种办法。

在插入图表之前(比如导言区)加入以下两行代码:

\renewcommand {\thetable} {\thechapter{}.\arabic{table}}

\renewcommand {\thefigure} {\thechapter{}.\arabic{figure}}

第一行是设定表格的编号,第二行设定图片的编号。这样设置的实现效果为“图1.1”、“表2.2”。正文中\label{...}和\ref{...}使用方法不变。需要“图1-1”这种格式的话可以把上面指令中的“.”改为“-”。

其中\thechapter是章节号,类似地还有\thesection、\thesubsection。

table和figure是表格和图片计数器(counter)的值。

\arabic{...}的含义是输出阿拉伯数字的编号。如果需要大小写的罗马数字,可以分别使用\Roman{...}和\roman{...}。

需要注意的是\thechapter、\thesection和\thesubsection这三个宏的输出会包含上层序号,比如在第1章(chapter)第2节(section)第3小节(subsection)中,\thesubsection的输出结果就是1.2.3,\thesection的输出结果就是1.2,\thechapter的输出结果就是1。使用时要注意避免重复,只用其中一个就行了。

与上面三个宏形成对比的是\arabic{chapter}、\arabic{section}和\arabic{subsection}这三个命令,它们也可用在前面的指令中,但它们只输出当前一层的序号,同样以第1章(chapter)第2节(section)第3小节(subsection)为例,\arabic{subsection}的输出结果是3,\arabic{section}的输出结果是2,\arabic{chapter}的输出结果是1。使用这三个指令可以输出“1-2-3”这样的章节编号。

这种方法有一个问题,table和figure计数器不会自动清零,比如第1章有3幅图片,到第2章时LaTeX会从“图2.4”开始编号。为了解决这个问题,需要在合适的地方(比如一章结尾或下一章开头)手动将计数器清零,即

\setcounter{table}{0}

\setcounter{figure}{0}



参考文献:http://blog.sina.com.cn/s/blog_8f89555c0101cwvn.html

推荐阅读