LaTeX에서 enumitem을 사용하여 사용자 정의 라벨 참조에서 중복된 텍스트를 피하는 방법은 무엇입니까?

LaTeX에서 enumitem을 사용하여 사용자 정의 라벨 참조에서 중복된 텍스트를 피하는 방법은 무엇입니까?

enumitem현재 내 문서에서 사용자 정의 참조 라벨을 만드는 데 을(를) 사용하려고 합니다 . 열거자에 대한 전역 명령을 다음과 같이 정의했습니다.

% File: enumitem-config.tex
\newcommand
    {\SectionName}
    {Terms}


\newcommand
    {\FirstLevelEnumerator}
    {{\SectionName} {\S} \theenumi}


\newcommand
    {\SecondLevelEnumerator}
    {{\FirstLevelEnumerator}(\theenumii)}


\newcommand
    {\ThirdLevelEnumerator}
    {{\SecondLevelEnumerator}--\theenumiii}



% File: main.tex
\import{path/to}{enumitem-config.tex}

...

\begin{enumerate}[ref = \FirstLevelEnumerator]
   \item\label{reference:one} Item 1
   \begin{enumerate}[ref = \SecondLevelEnumerator]
      \item\label{reference:one-a} Item 1(a)
      \begin{enumerate}[ref = \ThirdLevelEnumerator]
         \item\label{reference:one-a-i} Item 1(a)-i
      \end{enumerate}
   \end{enumerate}
\end{enumerate}

...

그러나 목록 내에서 다음 명령을 사용하면 다음과 같은 결과가 나타납니다.
Terms § 1
Terms § Terms § 1(a)
Terms § Terms § 1(Terms § Terms § 1(a))–i

내가 받고 싶은 것:
Terms § 1
Terms § 1(a)
Terms § 1(a)–i

ref상위 목록에서 매개변수를 생략하면 중복이 부분적으로 사라지기 때문에 변수가 여러 번 확장되는 것 같습니다 .

주요 질문:
이를 방지하거나 원하는 결과를 얻기 위해 동작을 변경하려면 어떻게 해야 합니까?

답변1

해당 확장을 방지하려면 새 레이블 명령을 좀 더 명확하게 지정하면 됩니다.

\documentclass{article}
\usepackage{enumitem}

\newcommand{\SectionName}{Terms\ \S}

\newcommand{\FirstLevelEnumerator}{\SectionName\ \theenumi}
\newcommand{\SecondLevelEnumerator}{\theenumi(\theenumii)}
\newcommand{\ThirdLevelEnumerator}{\theenumii--\theenumiii}

\begin{document}

\begin{enumerate}[ref=\FirstLevelEnumerator]
   \item\label{reference:one} Item 1 REF: \ref{reference:one}
   \begin{enumerate}[ref=\SecondLevelEnumerator]
      \item\label{reference:one-a} Item 1(a) REF: \ref{reference:one-a}
      \begin{enumerate}[ref=\ThirdLevelEnumerator]
         \item\label{reference:one-a-i} Item 1(a)-i REF: \ref{reference:one-a-i}
      \end{enumerate}
   \end{enumerate}
\end{enumerate}

\end{document}

여기에 이미지 설명을 입력하세요

관련 정보