使用 xr 引用另一个没有 hyperref 的文档

使用 xr 引用另一个没有 hyperref 的文档

我有两个文档 A 和 B。我希望在 B 中引用 A 中的定理和引理。为此,我使用了 B 中的包 xr。

如果我在 B 中使用 hyperref 包,那么一切都很好。否则,当我写类似

来自定理 \ref{thm:1}

看起来像

来自定理 1.1定理1.1

这不是我想要的。我该如何去掉最后的“theorem1.1”部分?我不想使用 hyperref,因为我不想让人们点击 B 中的链接。谢谢。

答案1

该包zref-xr提供了许多用于导入参考文献的选项,并支持许多包(hyperref,,titleref...)。

示例文件,A.tex其中hyperref包含定理:

\documentclass{article}
\usepackage{hyperref}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem}
\label{thm:1}
\end{theorem}
\end{document}

没有引用的文件B.tex从中导入引用A

\documentclass{article}

\usepackage{zref-xr}
\zxrsetup{toltxlabel=true, tozreflabel=false}
\zexternaldocument*{A}

\begin{document}
from Theorem \ref{thm:1}
\end{document}

答案2

万一这对其他人有帮助:我以前使用过hyperref(在我的文档 A 和 B 中;发布者在 A 中要求它)。hyperref从 B 文档中删除并zref-xr按照@Heiko Oberdiek 的解决方案尝试仍然出现一些错误:

   ! Undefined control sequence.
   l.61 \url{...}`.

进一步的搜索让我想到了这个问题: 未定义的控制序列 \url 错误

完整解决方案:添加\usepackage{url}后,第一个解决方案 (@Heiko Oberdiek) 效果很好。

\usepackage{zref-xr}
\zxrsetup{toltxlabel=true, tozreflabel=false}
\zexternaldocument*{A}
\usepackage{url}  %Need to make doc B work with URL links in the bibtex file

相关内容