如何自定义 \label{}

如何自定义 \label{}

我想改变命令的呈现方式\label{}。更准确地说是定理ntheorem

事实上我创建了一个叫做“假设”的定理,我想用字母而不是数字来指代假设。

因此,我在序言中

\newtheorem*{hyp}{Assumption}}

我在我的文章中声明

\begin{hyp}[\ref{H}]\label{H}
\end{hyp}

当我提到时H(1)会打印,但我的目的是通过动态链接获取。我知道环境中的(H)命令,但仅此而已。\tag{}\begin{equation}

我提出这个最小的例子。

\documentclass[11pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}  
\usepackage{amsmath,amssymb,mathrsfs}
\usepackage[colorlinks=true,linkcolor=blue,citecolor=red,backref=page]{hyperref}
\usepackage[hyperref]{ntheorem}

{\theoremheaderfont{\normalfont\bfseries}
\theorembodyfont{\itshape}
\theoremseparator{:}
\newtheorem*{hyp}{Assumption}}

\begin{document}

\begin{hyp}[\ref{sheme}]\label{sheme}
Bla bla
\end{hyp}

\begin{hyp}[H]
Bla bla
\end{hyp}

\begin{equation} 1=1, \tag{\textbf{H}$_{Mon}$} \label{mono} \end{equation}
Reference to mono: (\ref{mono}), with an hyperlink
\end{document}

equation可以在某个环境中更改标签。如何在其他环境中更改标签?

答案1

这里说的\usepackage[hyperref]{ntheorem}还不够。hyperref还必须加载包!

\documentclass[11pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}  
\usepackage{amsmath,amssymb,mathrsfs}
\usepackage[hyperref]{ntheorem}
\usepackage{hyperref}

{\theoremheaderfont{\normalfont\bfseries}
\theorembodyfont{\itshape}
\theoremseparator{:}
\newtheorem*{hyp}{Assumption}}

\begin{document}

\begin{hyp}[\ref{sheme}]\label{sheme}
Bla bla
\end{hyp}

\begin{hyp}[H]
Bla bla
\end{hyp}


\begin{equation} 1=1, \tag{\textbf{H}$_{Mon}$} \label{mono} \end{equation}
Reference to mono: (\ref{mono}), with an hyperlink

\end{document}

答案2

最后我创建了以下环境

\newenvironment{assumption}[1][\unskip]{%
\begin{enumerate}[label=(\textbf{#1}),leftmargin=60pt] 
\item\label{#1}}
{\end{enumerate}}

并得到我想要的。

相关内容