假设我有一份类型为
\documentclass{article}
\usepackeage{hyperref}
%\includeonly{Chap1}
%\includeonly{Chap2}
\begin{document}
\include{Chap1}
\include{Chap2}
\end{document}
其中Chap1
\ref
的标签为Chap2
,反之亦然。使用\includeonly
,我想要编译Chap1
为Chap1.pdf
,并将Chap2
编译为Chap2.pdf
。
有没有办法将此事告知 hyperref,以便引用Chap2.pdf
会自动超链接,从而打开引用的位置Chap1.pdf
?
答案1
如果我正确理解了您的设置,您有两个单独的独立文档,例如doca.tex
和docb.tex
,并且您想要在文档 B 中交叉引用文档 A 中的项目(例如,某一章节)。
实现此目标的一种方法是使用xr-hyper
软件包,它是捆绑包的一部分hyperref
。xr-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}
请注意,hyperref
和xr-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 章”的交叉引用。