enumitem:對已定義的項目使用標籤

enumitem:對已定義的項目使用標籤

每當我嘗試標記已定義的項目時,它似乎都不起作用。例如,請考慮以下情況:

\documentclass{article}
\usepackage{enumitem}
\usepackage[noabbrev]{cleveref}
\begin{document}
\begin{enumerate}
  \item[3.1]
  \item[6.3]
  \label{prob63}
  \item
    From \cref{prob63}, some statement
\end{enumerate}
\end{document}

答案1

我認為這可能部分是因為在使用 的可選參數時可以使用非計數器樣式條目\item[<stuff>]。因此,在這方面,您可以手動設置,以便參考按您想要的方式顯示:

在此輸入影像描述

\documentclass{article}
\usepackage{enumitem}
\usepackage[noabbrev]{cleveref}
\makeatletter
\newcommand{\setcreflabel}[1]{%
  \protected@edef\cref@currentlabel{%
    [\@tempa][#1][\cref@result]%
    #1}}%
\makeatother
\begin{document}
\begin{enumerate}
  \item \label{prob1}
  \item[6.3] \setcreflabel{6.3}\label{prob63}
  \item
    From \cref{prob63}, some statement; From \cref{prob1}, some statement.
\end{enumerate}
\end{document}

這裡的動機是以類似更新的\cref@currentlabel方式來更新。這樣,當您發出 時,正確的引用內容就會寫入:\refstepcounter\@currentlabel\label.aux

\relax 
\newlabel{prob1}{{1}{1}}
\newlabel{prob1@cref}{{[enumi][1][]1}{1}}
\newlabel{prob63}{{1}{1}}
\newlabel{prob63@cref}{{[enumi][6.3][]6.3}{1}}

相關內容