LaTeX教学2.9 交叉引用

2.9 交叉引用

同样在论文写作中, 我们在前文或者后文会提到某一个公式或定理, 但是如果我们用手敲定理对应的编号时, 一旦编号被前后移动了, 那么改动起来就会很麻烦, LaTeX中交叉引用解决了这个问题.

2.9.1 书签与引用

LaTeX提供了三条交叉引用的命令, 名称与说明如下

交叉引用说明.png

在这里我们用一个简单的例子来说明如何使用交叉引用:

\documentclass{article}
\usepackage[UTF8]{ctex}
\begin{document}
\section{勾股定理}
\newcounter{TH}[section]    %定义新计数器TH
\renewcommand{\theTH}{\thesection.\arabic{TH}}  %重新定义计数器命令\theTH的显示形式
\newcommand{\Theorem}[1][]{\par\textbf{定理}\refstepcounter{TH}\textbf{\theTH}(#1)\quad}  %新定义定理命令
\Theorem[勾股定理]\label{thm:gougu} 勾股定理是一个基本的几何定理,指直角三角形的两条直角边的平方和等于斜边的平方……
\newpage    %新起一页
在第\pageref{thm:gougu}页的定理\ref{thm:gougu}中, 我们知道了……
\end{document}
交叉引用例.png

为了节约空间, 我把两页的内容粘到了一页, 我们在想要引用的地方加上\label{书签名}命令, 在后面想要引用它的时候再使用命令\ref{书签名}\the计数器中的数字显示出来, 而对于书签名, 也不要随便的去起, 应该做到有规律, 易区分.

2.9.2 书签名的样式

给一个对象加书签的时候不能胡乱的, 按照自己当时想到的东西去加, 一般来说, 书签名的形式是类型:内容, 比如在上例中我使用的是thm:gougu, 即类型是定理(Theorem), 内容是勾股定理, 这样给出的书签会更容易引用, 而且不要使用thm:1.1这样的书签名, 这样的书签名会使你的交叉引用变成无用功, 因为这样还不如手动去打上定理1.1, 而且很重要的一点是今天的1.1可能会变成明天的2.3, 这对于作者(也就是我们自己)来说是很不愉快的一件事. 那么下面我们就给出通常使用的类型的简称:

缩写 全称 缩写 全称
part 部分(part) fig 图(figure)
chap 章(chapter) tab 表(table)
sec 节(section) eq 公式(equation)
subsec 小节(subsection) fn 脚注(footnote)
subsubsec 小小节(subsubsection) item 项目(item)
para 段(paragraph) thm 定理
subpara 小段(subparagraph) algo 算法(algorithm)

2.9.3 更多交叉引用

有了上面的说明我们已经会了基本的交叉引用的知识了, 但是好像不是那么自动, 能不能让LaTeX自行判断被引用的内容是什么, 从而自动生成类似"图1"之类的引用呢?答案是可以的, 我们需要调用hyperref宏包或着在ctex中添加可选参数hyperref, 然后使用命令\autoref{书签名}, LaTeX就可以根据被加书签的对象而选择前缀, 如section, equation等等.

\documentclass{article}
\usepackage[hyperref,UTF8]{ctex}
\begin{document}
\section{\LaTeXe 简介}\label{sec:prelatex}
在\autoref{sec:prelatex}中, 我们有……
\end{document}
autoref.png

同时我们可以发现在引用处出现了一个彩色的框, 用鼠标点击引用可以直接跳转到对应的书签处, 这也是hyperref宏包的另一个好处:超链接. 但是我们会发现引用出来的是section 1这样的英文, 与我们的文档不搭, 不过问题不大, hyperref宏包给我们提供了一个可以修改\autoref出现的文字, 用下面的命令:

\renewcommand{\sectionautorefname}{节}

将引用部分变为节1. 但是好像还是有那么点不对, 这种引用说"第一节"会更舒服一点, 当然我们可以自定义一个引用命令\newcommand{\secref}[1]{第 #1 节}其中必要参数是书签名, 来完成上述操作, 或者, prettyref宏包给我们提供了修改引用名称的命令:

\newrefformat{类型}{显示方法}

这里就要求我们的书签名使用类型:内容的形式了, 同样的刚才的文档, 我们用prettyref宏包重新实现一次:

\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{prettyref}
\begin{document}
\newrefformat{myref}{第\ref{#1} 节}
\section{\LaTeXe 简介}\label{myref:prelatex}
在\prettyref{myref:prelatex}中, 我们有……
\end{document}
prettyref.png

注意在上述\newrefformat{myref}{第\ref{#1} 节}命令中, 不需要设置参数数量[1], 如果同时使用hyperref宏包, 引用的超链接依然可以使用. 那能不能更进一步, 在引用处出现被引用的章节, 图的名称呢?当然可以, 宏包nameref为我们提供了命令\nameref来实现这个功能. 下面给出图例, 代码略去.

nameref.png

2.9.4 网址链接

虽然打印可能是pdf文件的最终归宿, 但是电子阅读也是必不可少的, 对于一些网站的链接, 我们也可以插入到LaTeX文档中, 以便直接点击. 同样是hyperref宏包, 为我们提供了两个较实用的命令:

\url{链接地址} %地址中的#, /正常输入即可, 不需要转义
\href{链接地址}{显示名称} %地址中的#, /正常输入即可, 不需要转义

使用交叉引用的tex文档都需要编译两次, 第一次将引用信息写入辅助文件.aux, 第二次编译再将引用信息从辅助文件.aux写入文档, 即当引用处出现??时, 可能是书签名错误, 也可能是只编译了一次, 出现第一种错误时自行寻找正确的书签名, 出现第二种错误时只需要再编译一次即可.

使用TeXstudio编译的时候会在消息里发现

编译信息.png

即自动的完成了两次编译, WinEdt中也同样, 也就是说不需要我们手动进行两次编译.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容

  • 解读上一篇文章(2)LaTeX论文排版——总体框架[https://www.jianshu.com/p/0aaee...
    5john家安阅读 5,506评论 0 11
  • 一份简短的LaTeX介绍 第一章 LaTeX须知 1.1 概述 1.1.1 TeX TeX是高德纳开发的,以排版数...
    左岸右水阅读 1,993评论 0 0
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,036评论 1 32
  • 2.2 源文件结构 重新来看一下我们最开始写的文档 在这个文档中可以体现出源文件的结构, 所有的LaTeX文档都是...
    无锤乙醇阅读 2,186评论 0 1
  • 本文纯手工搬运,为自己学习记录使用. 调整模式中的特例 整个框架关注的是存在一个名为 urlpatterns 的模...
    入间阅读 208评论 0 0