我有一个类似的问题这一。与该线程相反,我使用 xelatex。但不知道这是否是问题所在。我有两个文件。在第一个文件(Characteristics.tex)中,我有:
% Language specific stuff
\usepackage[cm-default]{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Times New Roman}
\newfontfamily\cyrillicfont{Times New Roman}
\usepackage{polyglossia}
\setdefaultlanguage{russian}
\setotherlanguage{english}
% Cross-referencing stuff
\usepackage{hyperref}
\usepackage{nameref}
\usepackage{zref-xr,zref-user}
\zexternaldocument*{Names}
第二个文件(Names.tex)也类似:
% Language specific stuff
\usepackage[cm-default]{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Times New Roman}
\newfontfamily\cyrillicfont{Times New Roman}
\usepackage{polyglossia}
\setdefaultlanguage{russian}
\setotherlanguage{english}
% Cross-referencing stuff
\usepackage{hyperref}
\usepackage{nameref}
\usepackage{zref-xr,zref-user}
\zexternaldocument*{Characteristics}
实际上,到目前为止,只有第二个文件包含对第一个文件的引用。因此,当我使用 xelatex 编译它时,我得到了
Package zref-xr Warning: File `Characteristics.aux' not found or empty
结果是
LaTeX Warning: There were undefined references.
我检查过,.aux 文件存在且不为空。如果这很重要,我会使用\label{}
来指示标签(目前仅在 Characteristics.tex 中)和\ref{}
,\zref{}
或\nameref{}
来调用引用。这些在同一个文件中可以完美运行,但不适用于两个文件之间的交叉引用。有人知道如何解决这个问题吗?