引用的前缀

引用的前缀

当我给一个定义贴上“定理...”的标签,然后引用它时,我没有得到“定义”或“定理”的前缀。我正在hyperref使用背页

在下图中,我想让超链接自动显示:“定义 1.1”,而不仅仅是“1.1”,如果可能的话,让“定义”也成为链接的一部分。

在此处输入图片描述

我使用的代码是:

\documentclass{article}

\usepackage{xcolor}
\usepackage{amsmath, amssymb, amsthm}
\usepackage{hyperref}

\hypersetup{colorlinks = true, linkcolor = blue}
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]

\newcommand{\R}{\mathbb{R}}

\title{Math class}
\author{Pablo García López}
\date{June 2022}

\begin{document}

\maketitle

\section{Line integral}

\begin{definition}[Opposite curve]
\label{curvaOpuesta}
Let $\gamma: [a, b] \to \R$ be a curve $\mathcal{C}^1$. Then the \textcolor{red}{opposite curve} is defined as $-\gamma: [-b, -a] \to \R, (-\gamma)(t) = \gamma(-t)$
\end{definition}

We can observe that on \ref{curvaOpuesta} we don't need \dots

\end{document}

我能得到任何帮助吗?

谢谢你!

答案1

您需要使用\autoref而不是普通的\ref。此外,由于hyperref包尚未被告知要对definition对象使用哪种前缀标签,因此您还需要运行指令

\def\definitionautorefname{definition}

或者,您可以在加载后cleveref使用选项加载包,然后使用和创建自动包含对象名称的交叉引用;后者将以大写形式排版对象名称的首字母。nameinlinkhyperref\cref\Cref

在此处输入图片描述

\documentclass{article}
\usepackage{amsthm}

\usepackage[colorlinks = true, linkcolor = blue]{hyperref}
\def\definitionautorefname{definition}

\usepackage[nameinlink]{cleveref} % always load cleveref *after* hyperref

\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]

\begin{document}
\section{Line integral}

\begin{definition}[Opposite curve] \label{curvaOpuesta}
\dots
\end{definition}

\ref{curvaOpuesta}

\autoref{curvaOpuesta}

\cref{curvaOpuesta}

\Cref{curvaOpuesta}
\end{document}

答案2

另一个解决方案使用cleveref(之后加载hyperref):

    \documentclass{article}

    \usepackage{xcolor}
    \usepackage{amsmath, amssymb, amsthm}
    \usepackage{hyperref}
    \usepackage[nameinlink]{cleveref}

    \hypersetup{colorlinks = true, linkcolor = blue}
    \theoremstyle{definition}
    \newtheorem{definition}{Definition}[section]

    \newcommand{\R}{\mathbb{R}}

    \title{Math class}
    \author{Pablo García López}
    \date{June 2022}

    \begin{document}

    \maketitle

    \section{Line integral}

    \begin{definition}[Opposite curve]
    \label{curvaOpuesta}
    Let $\gamma: [a, b] \to \R$ be a curve $\mathcal{C}^1$. Then the \textcolor{red}{opposite curve} is defined as $-\gamma: [-b, -a] \to \R, (-\gamma)(t) = \gamma(-t)$
    \end{definition}

    We can observe that on \cref{curvaOpuesta} we don't need \dots

    \end{document} 

在此处输入图片描述

相关内容