在超链接标题中使用超目标标题

在超链接标题中使用超目标标题

我想在超链接标题中自动使用超目标标题。

例子:

\hypertarget{myTarget}{My Target}

See \hyperlink{myTarget}{\useMyTargetCaption}.

想要的结果:

我的目标

我的目标

答案1

您可以重新定义\hypertarget,以便它定义与其第一个参数相对应的新命令:

\let\oldhypertarget\hypertarget
\renewcommand{\hypertarget}[2]{%
  \oldhypertarget{#1}{#2}%
    \protected@write\@mainaux{}{%
        \string\expandafter\string\gdef
          \string\csname\string\detokenize{#1}\string\endcsname{#2}%
    }%
  }

这样,当你发出

\hypertarget{myTarget}{My Target}

\myTarget这也保存了文件中命名的命令.aux

然后我们定义一个新的命令\myhyperlink来处理这个问题:

\newcommand{\myhyperlink}[1]{%
  \hyperlink{#1}{\csname #1\endcsname}%
  }

当你发出

\myhyperlink{myTarget}

这导致

\hyperlink{myTarget}{\myTarget}

梅威瑟:

\documentclass{article}

\usepackage[colorlinks]{hyperref}

\makeatletter
\let\oldhypertarget\hypertarget
\renewcommand{\hypertarget}[2]{%
  \oldhypertarget{#1}{#2}%
    \protected@write\@mainaux{}{%
        \string\expandafter\string\gdef
          \string\csname\string\detokenize{#1}\string\endcsname{#2}%
    }%
  }
\newcommand{\myhyperlink}[1]{%
  \hyperlink{#1}{\csname #1\endcsname}%
  }
\makeatother

\begin{document}

\hypertarget{myTarget}{My Target}

See \myhyperlink{myTarget}.

\end{document} 

输出:

在此处输入图片描述

如果您想自定义它,您可以将其更改为,例如,更改为(需要xcolor包):

\newcommand{\myhyperlink}[1]{%
  \hyperlink{#1}{\textcolor{cyan}{\textit{\csname #1\endcsname}}}%
  }

结果是:

在此处输入图片描述

相关内容