我正在使用自己的类似列表的环境,但在引用其中的项目时遇到了问题。代码如下:
\documentclass{article}
\usepackage{enumitem}
\usepackage{lipsum}
\usepackage{hyperref}
\newcounter{qcounter}
\newenvironment{questions}{
\begin{list}{
}{
\renewcommand{\makelabel}[1]{%
\textbf{\refstepcounter{qcounter}\arabic{qcounter}.##1}
}%
}
}{
\end{list}
}
\begin{document}
\begin{questions}
\item \lipsum[2] \label{one}
\item Here should be a clickable link to item number one~\ref{one} and four~\ref{four}.
\item[${}^{*}$] \label{three}
\item[\textsubscript{four}] \label{four} And here is link to number tree~\ref{three}.
\end{questions}
\end{document}
文中未出现以下参考文献:
如何在不使用标准的情况下制作可点击的链接enumerate
(我想保留我自己的列表的功能)?
答案1
它似乎\makelabel
在某个群体内部使用,并且\@currentlabel
只限于该群体。幸运的是,\@currentHref
它已经是全球性的了。
有些指控是无端的,但我是description
从 article.cls 中复制过来的。
\documentclass{article}
\usepackage{enumitem}% not used here
\usepackage{lipsum}
\usepackage{hyperref}
\newcounter{qcounter}
\makeatletter
\newcommand*\questionlabel[1]{\refstepcounter{qcounter}%
\global\let\@currentlabel=\@currentlabel
\normalfont\bfseries \arabic{qcounter}.#1}
\makeatother
\newenvironment{questions}{%
\list{}{\let\makelabel=\questionlabel}%
}{\endlist}
\begin{document}
\begin{questions}
\item \lipsum[2] \label{one} (\csname @currentlabel\endcsname)
\item Here should be a clickable link to item number one~\ref{one} and four~\ref{four}.
\item[${}^{*}$] \label{three}
\item[\textsubscript{four}] \label{four} And here is link to number tree~\ref{three}.
\end{questions}
\end{document}