
Ich muss eine Liste wie die folgende setzen:
Gegenstand 1
Punkt 2
Punkt 3
4-6. Das gleiche wie die vorherigen
- Etwas anderes
Derzeit habe ich es mit description
der 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 enumerate
oder 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 ones
wobei len
ich 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 enumi
Zä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:
Antwort2
Eine Version ähnlich der von Symbol 1, bei der jedoch keine Änderung aller Ebenen erforderlich ist, da sie \@enumctr
auf den aktuellen Zähler erweitert wird.
Das Argument \itemx
ist 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}
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}