enumite: 정의된 항목에 대한 레이블 사용

enumite: 정의된 항목에 대한 레이블 사용

정의된 항목에 레이블을 지정하려고 할 때마다 작동하지 않는 것 같습니다. 예를 들어 다음을 고려해보세요.

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

관련 정보