列表中项目的链接未显示

列表中项目的链接未显示

我正在使用自己的类似列表的环境,但在引用其中的项目时遇到了问题。代码如下:

\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}

相关内容