简洁版本:在 Overleaf 上使用xr
或时xr-hyper
,是否可以向外部文档添加前缀,以避免定义多个标签(如定义这里)?
更长的版本:我正在 Overleaf 上起草一份审查备忘录,其中引用了 Overleaf 上的手稿和附录。审查备忘录引用了其他两份文件中更正/新的图表,所以我习惯引用xr-hyper
它们。毫不奇怪,由于我在审查备忘录中复制了一些图表并对其进行了标记,我遇到了“多次定义标签”的问题。通常,我只会删除审查备忘录中复制的图表标题中的标签,但理想情况下,我希望在审查备忘录中包含以下内容:
我们通过添加下面的图 XXX 来回应这条评论,该图在手稿中显示为图 YYY”
每当我尝试将审查备忘录中对外部文件的引用从更改\myexternaldocument{Manuscript}
为\myexternaldocument[ext-1]{Manuscript}
--- 时,都会按照建议这里--- Overleaf 抛出错误label ... multiply defined.
当我使用时也会发生同样的事情\externaldocument{...}
。除了重新标记审查备忘录中的所有重复图形外,是否可以修改 latexmkrc 脚本(必需的使用 xr 和 xr-hyper 与 Overleaf 来适应前缀的使用?
答案1
在您的评论中,您提到您正在使用来自http://tex.stackexchange.com/a/69832, 其中有:
\newcommand*{\myexternaldocument}[1]{%
\externaldocument{#1}%
\addFileDependency{#1.tex}%
\addFileDependency{#1.aux}%
}
但是这个定义只接受一个参数:没有办法将另一个可选参数传递给\externaldocument
。因此,你必须将定义调整为
\newcommand*{\myexternaldocument}[2][]{%
\externaldocument[#1]{#2}%
\addFileDependency{#2.tex}%
\addFileDependency{#2.aux}%
}
然后,如果您有,那么\myexternaldocument[ext-1]{Manuscript}
使用应该可以工作。\ref{ext-1Fig1}
\label{Fig1}
Manuscript.tex