[翻译] 在 Overleaf 上使用 xr 包来交叉引用
原 文:Cross referencing with the xr package in Overleaf
译 者:Xovee
翻译时间:2020年7月24日
在 Overleaf 上使用 xr 包来交叉引用
xr 是一个用来在多个独立的文档之间进行交叉引用的包。例如,如果你在一个项目中有两个不同的文件,File1.tex 和 File2.tex,然后你想在 File1.tex 中引用某个位于 File2.tex 中的被标记的对象,而你又不想在 File1.tex 中引入 file2.tex,那么 xr 包可以帮你办到这件事情。
为了在 Overleaf 上做到这一点,下面介绍了一些需要做到的点。
在 Overleaf 中打开这个例子
文章目录
- 在 Overleaf 上使用 xr 包来交叉引用
- 加载 xr 包
- 在 File1.tex 的序言中添加一些额外的代码
- 设定外部文档
- 创建 latexmkrc 文件
- 最终的文档
加载 xr 包
首先在主文件(例如 File1.tex)中加载 xr 包:
\usepackage{xr}
如果你已经使用了 hyperref
包,那么你需要在 File1.tex 文件中,在 hyperref
之后加载 xr-hyper
包,而不是 xr
包。你也需要在 File2.tex 文件中加载 hyperref
包。
在 File1.tex 的序言中添加一些额外的代码
我们需要在 File1.tex 文件的序言中添加一些有用的代码:
% In your preamble\makeatletter
\newcommand*{\addFileDependency}[1]{% argument=file name and extension\typeout{(#1)}\@addtofilelist{#1}\IfFileExists{#1}{}{\typeout{No file #1.}}
}
\makeatother\newcommand*{\myexternaldocument}[1]{%\externaldocument{#1}%\addFileDependency{#1.tex}%\addFileDependency{#1.aux}%
}
这个代码创建了一个新的命令 \myexternaldocument{…},这个命令允许你设定你想引用的标记它所在的文件。
设定外部文档
下一个步骤是设定标记所在的外部文档。这行代码是唯一一个需要你手动指定文件名的代码:
% In your preamble\myexternaldocument{File2}
这里,File2 可以被替换为其他文件(其中包含了你所想引用的标记)。
创建 latexmkrc 文件
下一步是创建 latexmkrc 文件:
- 在项目的编辑器界面,点击侧边栏顶部的 Add file 按钮
- 选择 Blank file,文件名设置为 latexmkrc
- 在创建的文件中添加下面的代码
add_cus_dep( 'tex', 'aux', 0, 'makeexternaldocument' );sub makeexternaldocument {if (!($root_filename eq $_[0])){system( "latexmk -cd -pdf \"$_[0]\"" );}
}
这些代码将会使用 PDFLaTeX 引擎来编译外部文档 File2,以及其他的生成的依赖文件(保存在缓存之中,用来生成 File1 所需要的引用)。如果你的外部文件需要其他的引擎来编译,使用下面的代码(注释掉你不需要的引擎,例子中使用的引擎是 PDFLaTeX):
add_cus_dep( 'tex', 'aux', 0, 'makeexternaldocument' );sub makeexternaldocument {if (!($root_filename eq $_[0])){# FOR PDFLATEXsystem( "latexmk -cd -pdf \"$_[0]\"" );# FOR LATEX+DVIPDF# system( "latexmk -cd \"$_[0]\"" );# FOR XELATEX# system( "latexmk -cd -xelatex \"$_[0]\"" );# FOR LUALATEX# system( "latexmk -cd -lualatex \"$_[0]\"" );}
}
最终的文档
在执行完上面所描述的所有过程之后,你可以在不同的文档中进行交叉引用了。引用的方式与正常引用没有差别。如果你在 File2.tex 中标记了 \label{file2:introduction},那么你可以在 File1.tex 中引用这个标记:\ref{file2:introduction}。
在 Overleaf 中打开这个例子
% In File1.texWe can reference the image \ref{picture} of File2.tex.% In File2.tex\begin{figure}\centering\includegraphics{image.PNG}\caption{Caption}\label{picture}
\end{figure}
源代码:TeX.SX: latexmk with external references.
[翻译] 在 Overleaf 上使用 xr 包来交叉引用相关推荐
- [翻译] 在 Overleaf 中离线工作
原 文:Working Offline in Overleaf 译 者:Xovee 翻译时间:2020年5月21日 在 Overleaf 中离线工作 Overleaf 提供了许多功能,可以让你首先 ...
- [翻译] 使用 Overleaf 项目菜单
原 文:Using the Overleaf project menu 译 者:Xovee 翻译时间:2020年5月15日 使用 Overleaf 项目菜单 在使用 Overleaf 的时候,你知 ...
- 发布/上传Jar包到Maven中央仓库 - 史上最详细
发布 Jar 包到 Maven 中央仓库 在项目开发过程中,我们常常会使用 Maven / Gradle 从仓库拉取开源的第三方 jar 包,可能是私有仓库,可能是 Maven 中央仓库,也可能是第三 ...
- qt 增加的翻译没有作用上_Qt语言翻译工具的使用 及 QT-Linguist国际化的简单实现...
通过使用Qt Linguist工具时,可以有两种方式进行下一步操作(Windows操作系统).首先说明第一种,在一个软件系统中存在*.pro的工程文件,因而我们可以借此通过采用命令行的形式生成最终所需 ...
- linux部署jar项目报错_如何在Linux服务器上部署jar包
启动程序方法 1.上传jar包到linux服务器下 2.启动jar包 前台模式 java –jar XXXX.jar(注意这个命令启动时,断开服务连接后,服务就关闭了) 后台模式 nohup ja ...
- gradle 上传jar包_gradle 打包jar上传到nexus 同时上传源码jar
以我们实际项目为例,项目中后台和前台单独开发,之间通过dubbo接口调用,后台提供服务接口,具体实现对前台隐藏,前台使用某个服务时,下载相应依赖然后调用,因此需要将服务接口打成jar包,上传到仓库中, ...
- 如何在私服上传jar包
1.上传jar包到私服,需要先登录帐号 用户名:admin 密码:admin123 2.选择第三方库 3 输入完成后点击Add Artifact 然后点击下方Upload Artifact,如下图所示 ...
- 用Fiddler在Android上抓HTTPS包
iddler是一个HTTP协议调试代理工具,在开发网络应用的时候经常会用到,其最基本的作用是能抓HTTP的数据包,当然它还有更高级的用法,如添加断点.修改请求与相应的数据等等... 简单说下使用方法: ...
- npm包的上传npm包的步骤,与更新和下载步骤
官网: ======================================================= 没有账号可以先注册一个,右上角点击"Sign Up",有账号 ...
最新文章
- 图片上传成功但是图片显示不出来_小程序上传图片到腾讯云
- reactor官方文档译文(2)Reactor-core模块
- 豪华奢侈的中国作家代表大会
- spring中注解的通俗解释
- python语法知识_Python 语法小知识
- ViewState的原理,应用场合,注意事项
- 学用MVC4做网站五:5.2我的文章
- windows安装syslog日志转发客户端nxlog
- 零基础理财入门书籍分享
- 转载:技术大停滞——范式春梦中的地球工业文明8 反思与总结
- 利用OpenGL模拟太阳系
- 营救公主的100种方法
- iOS cocoapods的版本升级更新
- 北京飞漫软件魏永明:浏览器技术与三网融合
- 彼泽清陂nbsp;菡萏悠悠
- Camera2 APP Flash 打闪流程及原理分析
- 实验一:贝叶斯神经网络及其如何用随机梯度马尔可夫链蒙特卡洛有效训练
- sourceTree使用教程
- 用户账号管理和组管理
- HTML---- 渐变颜色, P强制不换行、自动换行、强制换行
热门文章
- 中北大学计算机学院校长,韩燮
- 在everedit编辑器中安装python环境
- Excel 中使用线性回归进行预测公司销售季节性与增长
- html页面转盘如何实现,原生(纯)js+html+css实现移动端抽奖转盘系统
- Linux中tar命令详解
- 十进制与十六进制互相转换
- matlab量化策略代码,【策略分享】Matlab量化交易策略源码分享
- matlab scope 设置,Simulink中示波器[scope]设置.pdf
- oracle dcd设置,oracle DCD
- [UITabBar appearance]不生效