在谷歌的帮助下,我能够想出一个代码,允许我amsthm
通过 hyperref 交叉引用 -type 环境中的枚举项。链接和代码都有效,但链接hyperref
会直接将我带到引用的项(正如 所期望的那样hyperref
)。
我想要实现的是让 hyperref 将屏幕带到引理本身而不是项目 (i),因为引理大多数时候都有一个对所有项目都很重要的描述。
为了看到这种互动,我不得不留出一些空白。很抱歉出现一堆盲文。
您现在可能会问为什么要这么麻烦cleveref
。因为我需要在工作过程中将引理重新标记为命题或定理,或者添加更多项目,并且我希望参考文献能够自动更新。
先感谢您。
祝好 Bob
\documentclass[a4paper,12pt]{amsart}
\usepackage[utf8]{inputenc}
\usepackage{nameref,hyperref}
\hyperbaseurl{.}
\usepackage[capitalize,nameinlink]{cleveref}
\usepackage{enumitem}
\usepackage{amsmath,amscd,amssymb,amsfonts,amsthm}
\usepackage{thmtools}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{lemma}[theorem]{Lemma}
\newlist{lemlist}{enumerate}{1}
\setlist[lemlist]{label=(\roman{lemlisti}),
ref=\thetheorem.(\roman{lemlisti}),
noitemsep}
\Crefname{lemma}{Lemma}{Lemmas}
\addtotheorempostheadhook[lemma]{\crefalias{lemlisti}{lemma}}
\usepackage{blindtext}
\begin{document}
\blindtext[2]
\begin{lemma}
Some important description for something and something else
\begin{lemlist}
\item \label{1} something
\item \label{2} something else
\end{lemlist}
\end{lemma}
\blindtext[2]
\cref{1}
\end{document}
答案1
您需要两个标签,一个用于数字,一个用于目的地。然后您可以使用它们\hyperref
来设置链接。
\documentclass[a4paper,12pt]{amsart}
\usepackage[utf8]{inputenc}
\usepackage{nameref,hyperref}
\hyperbaseurl{.}
\usepackage[capitalize]{cleveref}
\usepackage{enumitem}
\usepackage{amsmath,amscd,amssymb,amsfonts,amsthm}
\usepackage{thmtools}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{lemma}[theorem]{Lemma}
\newlist{lemlist}{enumerate}{1}
\setlist[lemlist]{label=(\roman{lemlisti}), ref=\thetheorem.(\roman{lemlisti}),noitemsep}
\Crefname{lemma}{Lemma}{Lemmas}
\addtotheorempostheadhook[lemma]{\crefalias{lemlisti}{lemma}}
\usepackage{blindtext}
\begin{document}
\blindtext[2]
\begin{lemma}\label{main}
some important discription for something and something else
\begin{lemlist}
\item \label{1} something
\item \label{2} something else
\end{lemlist}
\end{lemma}
\blindtext[2]
\cref{1}
\hyperref[main]{\cref*{1}} or \namecref{1}~\hyperref[main]{\ref*{1}}
\end{document}