LaTeX cleveref 宏包用法
介绍
cleveref 宏包是 LaTeX 中用于增强交叉引用功能的一个强大工具。它的主要特点是能够自动地按照不同元素的类型(如章节、图表等)生成格式化的引用,同时还支持定制引用格式,提供了比 LaTeX 默认的 \ref 更多的灵活性和功能。
传统的 \ref 命令只会输出标签对应的编号,而 cleveref 会在编号前自动添加对应的类型。例如,对于一个图像的标签,cleveref 可以自动生成“Figure 1”的形式,而不仅仅是“1”。
cleveref 也允许用户自定义各种元素的引用格式,包括单个引用和多个引用的情况。
基本用法
% Preamble
\usepackage{cleveref}
% Body
\section{xxx} \label{sec:xxx} % 定义标签
...
\Cref{sec:xxx} % 使用标签
生成结果为 Section 2.8
自定义引用格式
crefname
使用 crefname 命令,可以修改引用序号前面的文字。命令接受两个参数,第一个参数为引用单个对象时的类型文字,第二个参数为引用多个对象时的类型文字。
比如说,\Crefname{figure}[Fig.][Figs.] 可以让我们引用单个图片时的渲染结果为 Fig. 1,而引用多个图片时的渲染结果为 Figs. 1-2。
crefname 命令有大写版和小写版。你可以设置 \crefname{figure}[fig.][figs.](注意这里的 c 为小写),这样你使用 \cref{fig:image} 时的渲染结果就是 fig. 1 或者 figs. 1-2。
下面是一些常用的 crefname 设置。
\crefname{table}{表}{表}
\Crefname{table}{表}{表}
\crefname{algorithm}{算法}{算法}
\Crefname{algorithm}{算法}{算法}
\Crefname{figure}{图}{图}
\crefname{figure}{图}{图}
\crefname{claim}{断言}{断言}
\Crefname{claim}{断言}{断言}
\crefname{lemma}{引理}{引理}
\Crefname{lemma}{引理}{引理}
crefformat
crefname 的局限性在于我们只能设置引用数字前面的类型文字。而 crefformat 则支持我们同时设置引用数字前面的文字和后面的文字。
\crefformat 用于指定单个引用的格式。命令的形式是:
\crefformat{<type>}{<format>}
<type>是引用的类型,如section、figure、table等。<format>是当引用这种类型时使用的格式化字符串,它可能包含:#1:引用标签#2:前链接文本(默认为空)#3:后链接文本(默认为空)
和 crefname 一样,crefformat 也有大写和小写两种命令
例:
% 对代码行引用格式的定义
\crefformat{line}{第~#2#1#3~行}
当我们引用一行代码时,\Cref{alg:myalg:code} 就会被渲染成 第 1 行。
crefrangeformat
\crefmultiformat 用于定义多个引用的格式。命令的形式是:
\crefmultiformat{<type>}{<format>}{<middle format>}{<between-last>}{<after-last>}
<type>是引用的类型。<format>是对第一个引用使用的格式。<middle format>是第一个和最后一个之间的其他引用使用的格式。<between-last>是倒数第二个和最后一个引用之间的格式。<after-last>是最后一个引用之后的格式。
例:
\crefmultiformat{section}{\S\S#2#1#3}{及~#2#1#3}{, #2#1#3}{, and~#2#1#3}
这将设置对多个节的引用格式。例如,引用 \cref{sec:first,sec:second,sec:third} 将产生 "§§1, 2, and 3",其中第一个引用使用 "§§",中间的引用用逗号隔开,最后一个引用前使用 "and" 作为连接符。
See also: cleveref Doc
LaTeX cleveref 宏包用法的更多相关文章
- CTEX - 在线文档 - TeX/LaTeX 常用宏包
CTEX - 在线文档 - TeX/LaTeX 常用宏包 页面与章节标题式样 浮动对象及标题设计 生成与插入图形 表格与列表 目录与索引 参考文献 数学与化学公式 ...
- LaTeX自定义宏包、类文件的默认搜索路径设置方法
对于自定义的LaTeX宏包与类,在调用时可以通过在命令\documentclass{}与\usepackage{}命令中指定完整路径或者相对路径,这样确实可以调用,但是编译时总是有烦人的警告信息, ...
- LaTeX绘图宏包 Pgfplots package
Pgfplots package The pgfplots package is a powerful tool, based on tikz, dedicated to create scienti ...
- Latex graphicx 宏包 scalebox命令
scalebox 命令需要加载 \usepackage{graphicx} \scalebox{水平缩放因子}[垂直缩放因子]{对象} \scalebox 命令对其作用的对象进行缩放,使缩放后的对 ...
- LaTeX手动安装宏包(package)以及生成帮助文档的整套流程
注意:版权所有,转载请注明出处. 我使用的是ctex套装,本来已经自带了许多package,但是有时候还是需要使用一些没有预装的宏包,这时就需要自己安装package了.下载package可以从CTA ...
- LaTeX中titlesec宏包的使用
在 xelatex 中使用 \usepackage 指令使用 titlesec 宏包时,可以指定一些格式选项,如下: \usepackage[center]{titlesec} 其中 center 可 ...
- LaTeX的tasks宏包
tasks 宏包 LaTeX的列表(list)通常是将项(item,条目)一个一个垂直的平行显示,所谓"列"表的由来. 水平分列列表,即将多个项分散到各列而不是一列,在出考卷的选择 ...
- Windows 下 LaTeX 手动安装宏包(package)以及生成帮助文档的整套流程
本文简单介绍如何手动安装一个 LaTeX 宏包. 一般来说,下载的 TeX 发行版已经自带了很多宏包,可以满足绝大部分需求,但是偶尔我 们也可能碰到需要使用的宏包碰巧没有安装的情况,这时我们就需要自己 ...
- [原创][LaTex]LaTex学习笔记之框架及宏包
0. 简介 LaTex在书写文档时的最基本单元就是首部的写作,变相的也可以说是头文件.本文章就来总结一下文档的基本格式和常用宏包. 1. 基本单元 基本单元需要对LaTex语法有一定的了解,这个很简单 ...
- 在LaTeX中利用preview宏包和tikz宏包生成单图pdf
有时候我们利用tikz宏包画出的图片后,只想生成一个单图pdf,而且pdf的页面大小与图片相同,以便于以后再次用latex插入. 可以与preview宏包进行搭配,页面大小由图像大小决定,可以通过改变 ...
随机推荐
- sqlmap 环境搭建 sqli-labs平台搭建
sqlmap 环境搭建: windows 1.先去官网下载:https://sqlmap.org/ 2.在python的Scripts目录下创建一个sqlmap 把官网下载的东西解压到那里 3.添加环 ...
- IgH EtherCAT主站开发案例分享——基于NXP i.MX 8M Mini
前 言 本文档主要演示NXP i.MX 8M Mini工业开发板基于IgH EtherCAT控制伺服电机. 演示板卡是创龙科技的TLIMX8-EVM工业开发板,它是基于NXP i.MX 8M M ...
- SpringBoot如何解决跨域问题
什么是跨域 跨域问题的本质是浏览器为了保证用户的一种安全拦截机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据. 跨域三种情况 在发起请求时,如果出现了以下情况中的任意一种,那么它就是跨域请求: ...
- 利用Selenium和PhantomJS绕过接口加密的技术探索与实践
selenium+phantomjs绕过接口加密 我们为什么需要selenium 之前我们讲解了 Ajax 的分析方法,利用 Ajax 接口我们可以非常方便地完成数据的爬取.只要我们能找到 Ajax ...
- windows服务开发demo
0.写在前面 windows7开始,windows服务运行在session 0, 用户程序都运行在session x (x >= 1) 而session之间是有隔离的,实践发现是无法在服务中直接 ...
- 全网最适合入门的面向对象编程教程:17 类和对象的Python实现-鸭子类型与“file-like object“
全网最适合入门的面向对象编程教程:17 类和对象的 Python 实现-鸭子类型与"file-like object" 摘要: 本文主要介绍了 Python 中创建自定义类时鸭子类 ...
- 解决阿里云redis监听6379,配置规则也将6379端口开放,但是外网仍无法连接6379的问题
首先确保阿里云配置规则和服务器防火墙已开发6379端口 阿里云linux安装完成redis,并且已经运行,检测6379端口,显示redis-server正在监听,如图 修改redis.conf配置 将 ...
- Divide Interval 题解
背景 太逊了,调了三次才调出来,所以写篇题解寄念.LC好睿智 题意 给你两个数 \(a,b\),现在要从 \(a\) 跑到 \(b\),每次可以将当前的 \(a\) 拆分成 \(2^n\times m ...
- ComfyUI进阶:Comfyroll插件 (四)
ComfyUI进阶:Comfyroll插件 (四) 前言: 学习ComfyUI是一场持久战,而Comfyroll 是一款功能强大的自定义节点集合,专为 ComfyUI 用户打造,旨在提供更加丰富和专业 ...
- C#封装HttpClient工具类库(.NET4.5以上)
1.Json字符串实体转换扩展方法,依赖Json.Net包 /// <summary> /// Json扩展方法 /// </summary> public static cl ...