跨拆分文档的 Hyperref 交叉引用

跨拆分文档的 Hyperref 交叉引用

假设我有一份类型为

\documentclass{article}
\usepackeage{hyperref}

%\includeonly{Chap1}
%\includeonly{Chap2}

\begin{document}

\include{Chap1}
\include{Chap2}

\end{document}

其中Chap1 \ref的标签为Chap2,反之亦然。使用\includeonly,我想要编译Chap1Chap1.pdf,并将Chap2编译为Chap2.pdf

有没有办法将此事告知 hyperref,以便引用Chap2.pdf会自动超链接,从而打开引用的位置Chap1.pdf

答案1

如果我正确理解了您的设置,您有两个单独的独立文档,例如doca.texdocb.tex,并且您想要在文档 B 中交叉引用文档 A 中的项目(例如,某一章节)。

实现此目标的一种方法是使用xr-hyper软件包,它是捆绑包的一部分hyperrefxr-hyper软件包的工作原理与软件包完全相同xr。例如,假设doca.tex包含以下代码:

%% doca.tex
\documentclass{report}
\usepackage{hyperref,xr-hyper}
\begin{document}
\chapter{Beginning of Doc A} \label{doca:chap:1}
In the beginning, \dots
\end{document}

请注意,hyperrefxr-hyper包都已加载。编译两次并确保不是删除该文件,doca.aux因为它包含重要的交叉引用信息。

进一步假设docb.tex包含以下代码:

\documentclass{report}
\usepackage[colorlinks=true]{hyperref}
\usepackage{xr-hyper}
\externaldocument{doca}
\begin{document}
\chapter{End of Doc B} 
As we argued in \autoref{doca:chap:1} of Document A, \dots
\end{document}

关键的附加指令是\externaldocument{doca}:它告诉 LaTeX 搜索doca.aux用于交叉引用的标签。\autoref{doca:chap:1}然后,该指令将成功创建对文档 A 的“第 1 章”的交叉引用。

在此处输入图片描述

相关内容