使用 xr 包且缺少 aux 文件?“警告:没有文件 SupplementalMaterial.aux 标签未导入”

使用 xr 包且缺少 aux 文件?“警告:没有文件 SupplementalMaterial.aux 标签未导入”

我正在使用 Overleaf 撰写包含补充材料的论文,但在保留参考文献的同时分离补充材料方面遇到了很大麻烦。我的 MWE 如下 - 在Main.tex

\documentclass{article}

\usepackage[hidelinks]{hyperref}
\usepackage{xr}
\externaldocument{SupplementalMaterial}

\begin{document}

This is text
\begin{equation} \label{eqn}
1+1=2
\end{equation}
Look at Eq.~(\ref{suppeqn})

\end{document}

SupplementalMaterial.tex

\documentclass{article}

\usepackage[hidelinks]{hyperref}

\usepackage{xr}

\externaldocument{Main}

\begin{document}

This is text
\begin{equation} \label{eqn}
1+1=2
\end{equation}
Look at Eq.~(\ref{suppeqn})

\end{document}

当我尝试编译时Main.tex,我收到“警告:没有文件 SupplementalMaterial.aux 标签未导入”,当然也没有引用正确地引用其标签。我曾尝试在线寻找解决方案,但坦率地说,我没有找到关于辅助文件应该来自何处或它到底是什么的解释。我认为它是一个辅助文件,用于保存需要多次迭代才能编译的文档的“第一遍”信息。

我怎样才能使我的参考文献正确显示?

编辑:Overleaf 需要特殊设置才能使用xr详细信息。我能够使用该页面中链接的示例并将其移植到另一个 documentclass 以供我特定使用,没有太多麻烦。我将把这作为更新,而不是答案,因为我还不明白为什么 Overleaf 需要这种方法。

答案1

您忘记在项目根文件夹中创建一个名为“latexmkrc”的文件,其内容为:

add_cus_dep( 'tex', 'aux', 0, 'makeexternaldocument' );
sub makeexternaldocument {
    if (!($root_filename eq $_[0]))
    {
        system( "latexmk -cd -pdf \"$_[0]\"" );
    }
}

此文件用于在编译时从所创建的 aux 文件创建引用依赖项。您遇到的问题是,在编译时无法找到 aux 文件,因为它不存在,即上述指令不存在。

这应该可以解决您的问题,有关更多信息,请参阅文档:https://www.overleaf.com/learn/how-to/Cross_referencing_with_the_xr_package_in_Overleaf

答案2

描述的设置背面对我来说不起作用。我必须创建一个相对文件引用:

\myexternaldocument{./file_to_reference}

相关内容