重新定义文档引用中的超链接

重新定义文档引用中的超链接

在谷歌的帮助下,我能够想出一个代码,允许我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} 

在此处输入图片描述

相关内容