我想要两件事: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
cleveref
中main.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}