使用 xr-hyper 跨文件引用失败

使用 xr-hyper 跨文件引用失败

我将以下 LaTeX 代码保存在 中test.tex

\documentclass{scrartcl}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem}[My 1st Theorem]\label{thm}
A
\end{theorem}
\end{document}

我运行了lualatex test。执行成功终止,排版输出为:

第一定理

然后我将以下 LaTeX 代码保存在test2.tex

\documentclass{scrartcl}

\usepackage{xr-hyper}
\usepackage{hyperref}
\externaldocument[A-]{test}[test.pdf]

\newtheorem{theorem}{Theorem}

\usepackage[nameinlink]{cleveref}
\crefname{thm}{Thm.}{Thms.} % singular and plural forms of label

\begin{document}

\begin{theorem}[My 2nd Theorem]\label{thm}
B
\end{theorem}

\Cref{thm} is an important theorem that can be derived from \cref{A-thm}.

\end{document}

我运行了lualatex test2两次。执行成功终止,结果输出为:

第二定理

关于test2输出的问题

  1. 为什么第一个参考排版为定理而不是嗯。按照序言中所述?

  2. 为什么缺少第二个参考?

答案1

  1. 的第一个参数\crefname是错误的,theorem在那里使用。
\documentclass{scrartcl}

\usepackage{xr-hyper}
\usepackage{hyperref}
\externaldocument[A-]{test}[test.pdf]

\newtheorem{theorem}{Theorem}

\usepackage[nameinlink]{cleveref}
\crefname{theorem}{Thm.}{Thms.} % singular and plural forms of label

\begin{document}

\begin{theorem}[My 2nd Theorem]\label{thm}
B
\end{theorem}

\Cref{thm} is an important theorem that can be derived from \cref{A-thm}.

\end{document}
  1. 您的外部文档未加载 cleveref,因此其标签缺失。还建议加载 hyperref,否则链接将不起作用(因为目标中没有目的地):
\documentclass{scrartcl}
\newtheorem{theorem}{Theorem}
\usepackage{hyperref}
\usepackage{cleveref}
\begin{document}
\begin{theorem}[My 1st Theorem]\label{thm}
A
\end{theorem}
\end{document}

相关内容