¿Cómo evitar texto duplicado en referencias de etiquetas personalizadas con enumitem en LaTeX?

¿Cómo evitar texto duplicado en referencias de etiquetas personalizadas con enumitem en LaTeX?

Actualmente estoy intentando utilizarlo enumitempara crear etiquetas de referencia personalizadas en mi documento. He definido comandos globales para los enumeradores, de la siguiente manera:

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

...

Sin embargo, cuando uso los siguientes comandos dentro de la lista, encuentro estos resultados:
Terms § 1
Terms § Terms § 1(a)
Terms § Terms § 1(Terms § Terms § 1(a))–i

Lo que quiero recibir:
Terms § 1
Terms § 1(a)
Terms § 1(a)–i

Parece que las variables se expanden varias veces porque cuando omito el refparámetro en la lista principal, la duplicación desaparece parcialmente.

Pregunta principal:
¿Cómo puedo evitar esto o alterar el comportamiento para lograr el resultado deseado?

Respuesta1

Sólo tienes que ser un poco más explícito en tus nuevos comandos de etiqueta para evitar esa expansión.

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

ingrese la descripción de la imagen aquí

información relacionada