首先,我构建了以下外部文档 ExternalDoc.tex 文件,次数超过 3 次。
\documentclass[prl,aps,10pt]{revtex4-2}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{thm}{Theorem}
\newtheorem{lem}{Lemma}
\usepackage{hyperref}
\begin{document}
\title{External Doc}
\maketitle
\begin{lem} \label{AeqB}
$A = B$.
\end{lem}
\begin{thm} \label{CeqD}
$C = D$.
\end{thm}
\end{document}
然后我构建以下 MainDoc.tex 3次以上。
\documentclass[prl,aps,10pt]{revtex4-2}
\usepackage{xr}
\externaldocument[ED-]{ExternalDoc}
\usepackage{hyperref}
\begin{document}
\title{Main Doc}
\maketitle
... See Lem~\ref{ED-AeqB} and Thm~\ref{ED-CeqD} in External Doc.
\end{document}
然而,最终构建的输出包含两个警告:
pdfTeX 警告(目标):名称{thm.0.1} 已被引用但不存在,已由固定名称替换
pdfTeX 警告(目标):名称{lem.1} 已被引用但不存在,已由固定名称替换
这些警告能够被处理和解决吗?(我的真实文档中有数百个这样的警告,从中找出合法的警告非常耗时。)
答案1
根据 Ulrike 的评论,我按照如下方式编辑和重新组织了 MainDoc.tex 的序言:
\documentclass[prl,aps,10pt]{revtex4-2}
% load most packages here
\usepackage{xr-hyper}
\usepackage{hyperref}
% add any other commands here
\externaldocument[ED-]{ExternalDoc}
\begin{document}
\title{Main Doc}
\maketitle
... See Lem~\ref{ED-AeqB} and Thm~\ref{ED-CeqD} in External Doc.
\end{document}