有没有办法像 \href 一样使用 \ref

有没有办法像 \href 一样使用 \ref

问题如标题。

使用 \href,我们将能够提供带有文本的“可点击”链接。我们可以使用 \ref 做同样的事情吗?假设我想引用带有标签 \label{equation:123} 的方程式,我通常会写方程式 \ref{equation:123}。有没有办法写出类似于 \href{00}{00} 的 \ref[Equation]{equation:123} 或 \ref{Equation}{equation:123}?

\documentclass[12pt,reqno,a4paper]{amsart}
\usepackage{extsizes}
\usepackage{blindtext}
\textheight 9.3in \textwidth 6.5in
\calclayout
\usepackage{amsmath,amsthm,amsfonts,amssymb}
\theoremstyle{definition}
\newtheorem{theorem}{Theorem} 
\newtheorem{lemma}{Lemma} 
\newtheorem{example}{Example}[section]
\newtheorem{corollary}{Corollary}[section]
\usepackage{hyperref}
\usepackage{mathrsfs}
\usepackage[all]{xy}
\newtheorem*{question}{Question}
\newcommand{\mc}{\mathcal}
\newcommand{\mf}{\mathfrak}
\newtheorem*{solution}{Solution}
\newtheorem{definition}{Definition}
\newtheorem{remark}{Remark}
\newtheorem{proposition}{Proposition}[section]
\newtheorem{exercise}{Exercise}
\newcommand{\og}{\omega}
\newcommand{\tb}{\textbf}
\newcommand{\m}{\mathcal}
\newcommand{\mb}{\mathbb}
\newcommand{\Spec}{\rm Spec}
\usepackage{tikz-cd}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{color}
\pagestyle{myheadings}
\newcommand{\ra}{\rightarrow}
\newcommand{\xra}{\xrightarrow}
\author{someone}
\title{something}
\begin{document}
\section{qwerty}\label{qwerty}
\end{document}

答案1

解决你的问题的方法是使用cleveref包(注意它只是r )。 您将需要nameinlink结合以下选项加载它hyperref

\usepackage{hyperref}
\usepackage[nameinlink]{cleveref}

然后,您可以用\cref{equation:123}代替equation~\ref{equation:123}。使用\Cref表示大写。如果cleveref在不希望的地方插入缩写,您可以添加选项noabbrev以防止缩写。

texdoc cleveref通过在命令行中输入可以获取更多信息。

答案2

如果您不想将 cleveref 添加到已经臃肿的序言中......

\documentclass[12pt,reqno,a4paper]{amsart}
\usepackage{hyperref}

\newcommand{\myref}[2]% #1=added text, #2=label name
  {\hyperlink{\getrefbykeydefault{#2}{anchor}{Doc-Start}}{#1~\ref*{#2}}}

\begin{document}
\begin{equation}\label{eq:1}
  x=a
\end{equation}

\myref{Equation}{eq:1}

\end{document}

相关内容