我有两个文档 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