Element mit mehr als einem Wert in einer Aufzählungsumgebung

Element mit mehr als einem Wert in einer Aufzählungsumgebung

Ich muss eine Liste wie die folgende setzen:

  1. Gegenstand 1

  2. Punkt 2

  3. Punkt 3

4-6. Das gleiche wie die vorherigen

  1. Etwas anderes

Derzeit habe ich es mit descriptionder Umgebung als gesetzt

\documentclass{article}
\begin{document}
   \begin{description}
      \item[1.] item 1
      \item[2.] item 2
      \item[3.] item 3
      \item[4-6.] The same as previous ones
      \item[7.] Something else
   \end{description}
\end{document}

Ich frage mich jedoch, ob dies mit enumerateoder etwas anderem möglich ist, das die Nummerierung selbst vornimmt. Ist es möglich, diese Liste mit zu erstellen enumerate?

Mit anderen Worten: Können wir so etwas tun, um das gewünschte Ergebnis zu erhalten?

\documentclass{article}
\begin{document}
   \begin{enumerate}
      \item item 1
      \item item 2
      \item item 3
      \item[4-6.] The same as previous ones
      \item Something else
   \end{enumerate}
\end{document}

oder sogar etwas wie „ \item[len=3] The same as previous oneswobei lenich damit die Anzahl der Aufzählungselemente nach dem aktuellen meine.“ verwenden.

Antwort1

Die einzige mir bekannte Möglichkeit, Ihr Ziel zu erreichen, besteht darin, den enumiZähler zu erhöhen.

MWE:

\documentclass{article}
\begin{document}
   \begin{enumerate}
      \item item 1
      \item item 2
      \item item 3
      \item[4--6.] The same as previous ones\addtocounter{enumi}{3}
      \item Something else
   \end{enumerate}
\end{document} 

Ausgabe:

Bildbeschreibung hier eingeben

Antwort2

Eine Version ähnlich der von Symbol 1, bei der jedoch keine Änderung aller Ebenen erforderlich ist, da sie \@enumctrauf den aktuellen Zähler erweitert wird.

Das Argument \itemxist die Anzahl der zu vereinheitlichenden Elemente.

\documentclass{article}
\usepackage{etoolbox}

\makeatletter
\newcounter{shakiba@temp}
\newcommand\itemx[1]{%
  \letcs\shakiba@save{the\@enumctr}
  \stepcounter{\@enumctr}%
  \protected@edef\shakiba@label{\csuse{the\@enumctr}--}
  \addtocounter{\@enumctr}{-1}%
  \addtocounter{\@enumctr}{#1}%
  \protected@edef\shakiba@label{\shakiba@label\csuse{the\@enumctr}}%
  \addtocounter{\@enumctr}{-1}
  \cslet{the\@enumctr}\shakiba@label
  \item
  \cslet{the\@enumctr}\shakiba@save
}
\makeatother

\begin{document}

\begin{enumerate}
\item item 1
\item item 2
  \begin{enumerate}
  \item subitem 2:1
  \itemx{5}\label{X} subitem 2:2-6
  \item subitem 2:7
  \end{enumerate}
\item item 3
\itemx{3}\label{Y} The same as previous ones
\item Something else
\end{enumerate}

References: \ref{X} and \ref{Y}

\end{document}

Bildbeschreibung hier eingeben

Antwort3

Ein sehr brutaler Weg, aber Sie müssen die Zähler nicht selbst berechnen

\documentclass{article}

\def\itemx#1{
    \let\oldtheenumi\theenumi
    \let\oldtheenumii\theenumii
    \let\oldtheenumiii\theenumiii
    \let\oldtheenumiv\theenumiv
    \def\theenumi{\oldtheenumi-\addtocounter{enumi}{#1}\oldtheenumi}
    \def\theenumii{\oldtheenumii-\addtocounter{enumii}{#1}\oldtheenumii}
    \def\theenumiii{\oldtheenumiii-\addtocounter{enumiii}{#1}\oldtheenumiii}
    \def\theenumiv{\oldtheenumiv-\addtocounter{enumiv}{#1}\oldtheenumiv}
    \item
    \let\theenumi\oldtheenumi
    \let\theenumii\oldtheenumii
    \let\theenumiii\oldtheenumiii
    \let\theenumiv\oldtheenumiv
}

\begin{document}
    \begin{enumerate}
        \item item 1
        \item item 2
        \begin{enumerate}
            \item subitem 2:1
            \itemx5 subitem 2:2-6
            \item subitem 2:7
        \end{enumerate}
        \item item 3
        \itemx3 The same as previous ones
        \item Something else
    \end{enumerate}
\end{document}

verwandte Informationen