使用宏包cleveref实现自动的引用
本文翻译自:http://www.howtotex.com/packages/automatic-clever-references-with-cleveref/
最近我遇到了一个LaTeX宏包,并且这个宏包节约了我很多的时间,宏包的名字是:cleveref
。这个宏包非常容易上手使用,因此我将立刻开始介绍宏包的使用方法。首先,注意:hyperfer
提供了一些机器相似的自动引用指令,但是在我眼里,cleveref
包更加的精致,使用更加方便。
安装
一如既往,这个宏包通过命令\usepackage{cleveref}
命令引入,如果在你的文档中,你不得不这样写引用figure ~\ref{···}
,那么你可以使用\cref{···}
来实现。宏包cleveref
将自动检测你的引用究竟是figure环境、equation环境、table环境等。上面的引用显示的格式是:fig.图片的标签、eq.公式的标签。那么我们想要使用Equation这样的标记作为前缀呢?我们想要自定义前面显示的名字呢?那么我们想要一次引用多个文件呢(比如同时引用图片、公式和图表)?后面讲解这些问题。
默认的前缀中首字母大写
目前我所知道的,仅仅是fig.
、eq.
等的情况,那么有时我们的引用会是整段的开始,那么英文文章要求首字母必须要大写,此时我们是不是不能使用这个宏包呢?答案是否定的。出于其他种种方面的原因(在原文中并没有提到这些具体的原因),不得不将首字母大写,这样做到底是对还是错?或者这看起来很丑陋,但是不管怎样,你可以使用\Cref{···}
代替\cref
。实现的效果是:Equation 图片的标签
,注意:中间并没有使用英文状态下的句号.去连接。
多个引用
另外在cleveref
宏包的引用时,允许在一个引用命令中同时引用多个不同的公式、图、表等。例如\cref{eq1,eq2}
,他将会显示eq.(1)and(2)
,但是这还不是多个引用的全部,当引用不同的环境,比如\cref{fig1,tab2,eq3}
时,这个宏包将会自动的打印正确的名字和正确的引用。
编辑引用的名字
在使用\cref
时,其实我想要让它写成equation.
的形式,而不是eq.
,在宏包cleveref
中也是很容易实现的,将下面的代码写入到导言区中:
\crefname{equation}{equation}{equations}
在命令\crefname{·}{·}{·}
中的第一个参数的含义是引用的类型(equation、table、figure、section等),第二个参数包含的单词,当只有一个引用时将会被输出,当有多个引用是第三个参数将会被输出。在中文情况下:第二个参数和第三个参数可以是汉字,如:\crefname{equation}{公式}{公式}
。
更多
如果你想了解关于这个包更多的内容,但是我觉得上面的内容就足够了,那么请你参照其官方文档:http://ctan.mackichan.com/macros/latex/contrib/cleveref/cleveref.pdf 。
联系我
如果大家对我所研究的问题感兴趣,或者需要与我联系,请在下方扫描我的微信二维码添加好友: