我维护着一个包含多个版本的文档。每个版本都是另一个逻辑整体,内容各不相同。但是,有时我想引用从上一个版本到当前版本的标签。我尝试了 xr 包,但效果不太好。
我包含了一个 mwe。下面是主文件:
\documentclass[11pt,a4paper,hyphens]{article}
\usepackage{subfiles}
\usepackage{xr}
\usepackage{hyperref}
\begin{document}
%\subfile{PartI} %This part is commented because it shouldn't be printed but its references should be loaded
\subfile{PartII}
\end{document}
这是来自该文档先前版本的文件“PartI.tex”,不应打印,但应加载其引用。
\documentclass[main.tex]{subfiles}
\begin{document}
\section{Introduction}
\label{tref1}
This is a file that should not be printed.
The references have to be imported though to another file.
\section{Section}
\label{tref2}
This is a file that should not be printed.
The references have to be imported though to another file.
\end{document}
下面是需要打印的文件“PartII”,我需要参考PartI中的标签。
\documentclass[main.tex]{subfiles}
\externaldocument[P1-]{PartI.tex}
\begin{document}
\section{Section 1}
\label{sec1}
This text should be printed and references from file PartI.tex should be imported.
References are \ref{P1-tref1} and \ref{P1-tref2}.
\end{document}
显然引用不起作用。有什么想法吗?
答案1
我收到警告,说 PartI.tex.aux 不存在。因此,我将
\externaldocument[P1-]{第 I 部分.tex}
到主文档的序言部分,并从第一部分的声明中删除“.tex”,例如
\externaldocument[P1-]{第一部分}
然后,我分别编译了PartI,PartII和主文件,结果符合要求。
我们可以认为这件事已经结束了。谢谢。