我正在使用\usepackage{amsthm}
创建命题。在我的 下\begin{document}
,我有
\theoremstyle{definition}
\newtheorem{thm}{Theorem}[section]
\newtheorem{defn}[thm]{Definition}
\newtheorem{lem}[thm]{Lemma}
\newtheorem{cor}[thm]{Corollary}
\newtheorem{conj}[thm]{Conjecture}
\newtheorem{prop}[thm]{Proposition}
\newtheorem{alg}[thm]{Algorithm}
因此,如果我想在文档中提出一个命题,我只需写下\begin{prop} (stuff) \end{prop}
。到目前为止,一切都很顺利。但假设我想引用一个特定的命题(例如命题 2.11)。我可以找到它的指定编号并写下来,但如果我将来添加新的命题,那么编号就会全部被破坏。有没有办法我可以为命题分配关键字或其他东西并写下类似“根据\prop{EulersTheorem}
,它遵循...”的内容
答案1
有关 LaTeX 创建交叉引用的基本方法的一般介绍以及各种交叉引用包的概述,请参阅帖子交叉引用包:使用哪个,哪些有冲突[无耻的自我引用警报!]。
如果您要交叉引用定理、引理、命题等的单个实例,您只需加载包cleveref
并写入\cref{EulersTheorem}
而不是,\ref{EulersTheorem}
以便获取名称标签和命题的编号。如果您有机会在一个\cref
指令中创建两个或更多定理、引理、命题等的实例,则有必要cleveref
通过指令告知标签的复数形式\crefname
。如何执行此操作如以下示例文档所示。
请注意,所有交叉引用都是通过单个\cref
语句生成的。
\documentclass{article} % or some other suitable document class
\usepackage{multicol}
\usepackage{amsthm} % for '\theoremstyle' and '\newtheorem' macros
\usepackage[colorlinks,allcolors=blue]{hyperref}
\usepackage[nameinlink,noabbrev]{cleveref}
% The following \crefname declarations are needed only
% if your cross-references contain plural items
\crefname{thm}{theorem}{theorems}
\crefname{defn}{definition}{definitions}
\crefname{lem}{lemma}{lemmas} % or 'lemmata'?
\crefname{cor}{corollary}{corollaries}
\crefname{conj}{conjecture}{conjectures}
\crefname{prop}{proposition}{propositions}
\crefname{alg}{algoirithm}{algorithms}
\theoremstyle{definition}
\newtheorem{thm}{Theorem}[section]
\newtheorem{defn}[thm]{Definition}
\newtheorem{lem}[thm]{Lemma}
\newtheorem{cor}[thm]{Corollary}
\newtheorem{conj}[thm]{Conjecture}
\newtheorem{prop}[thm]{Proposition}
\newtheorem{alg}[thm]{Algorithm}
\begin{document}
\setcounter{section}{3}
\begin{multicols}{2}
\begin{thm} AAA \label{thm:aaa} \end{thm}
\begin{defn} BBB \label{defn:bbb} \end{defn}
\begin{lem} CCC \label{lem:ccc} \end{lem}
\begin{cor} DDD \label{cor:ddd} \end{cor}
\begin{conj} EEE \label{conj:eee} \end{conj}
\begin{prop} FFF \label{prop:fff} \end{prop}
\begin{alg} GGG \label{alg:ggg} \end{alg}
\begin{thm} AAAA \label{thm:aaaa} \end{thm}
\begin{defn} BBBB \label{defn:bbbb} \end{defn}
\begin{lem} CCCC \label{lem:cccc} \end{lem}
\begin{cor} DDDD \label{cor:dddd} \end{cor}
\begin{conj} EEEE \label{conj:eeee} \end{conj}
\begin{prop} FFFF \label{EulersTheorem} \end{prop}
\begin{alg} GGGG \label{alg:gggg} \end{alg}
\end{multicols}
\noindent
Cross-references to
\cref{thm:aaa,defn:bbb,lem:ccc,cor:ddd,conj:eee,prop:fff,alg:ggg,%
thm:aaaa,defn:bbbb,lem:cccc,cor:dddd,conj:eeee,EulersTheorem,alg:gggg}.
\end{document}