cref 和外部文件

cref 和外部文件

我想要两件事:1. 能够\cref在不同的文件中使用;2. 从外部文件显示某些环境(例如定理)。

我说的 (2) 的含义如下。假设我在一个名为 的文件中有一些定理external.tex。假设我在 中工作main.tex。我希望将 中的所有定理external.tex粘贴到 中main.tex,而不必重写它们。

这是我的(1)的代码:

外部.tex:

\documentclass{article}
\usepackage{amsmath,cleveref}
\newtheorem{lem}{Lemma}
\begin{document}
\begin{lem}\label{mylemma}
blah blah blah
\end{lem}
\end{document}

主要.tex:

\documentclass{article}
\usepackage{cleveref}
\usepackage{xr}
\externaldocument[ext:]{external}
\begin{document}
using \cref{ext:mylemma}
\end{document}

当我使用 时\ref{ext:mylemma},它可以正常工作。它只显示数字 1。当我使用 时\cref{ext:mylemma},我得到“?? 1”。我该如何解决这个问题?

答案1

cleverefmain.tex不知道标签类型lem是什么(如警告所示cref reference format for label type `lem' undefined:)。因此,\newtheorem{lem}{Lemma}在的序言中添加main.tex以在其中进行定义。

\documentclass{article}
\usepackage{cleveref}
\newtheorem{lem}{Lemma}
\usepackage{xr}
\externaldocument[ext:]{external}
\begin{document}
using \cref{ext:mylemma}
\end{document}

答案2

无需重复定义,newtheorem lemma可以cleveref使用或lem\crefname\Crefname

\documentclass{article}

\usepackage{xr}
\usepackage{cleveref}
\externaldocument[ext:]{external}
\crefname{lem}{lemma}{lemmata}
\Crefname{lem}{Lemma}{Lemmata}

\begin{document}
using \cref{ext:mylemma} or \Cref{ext:mylemma}
\end{document}

相关内容