
次のようなリストをタイプセットする必要があります。
アイテム 1
アイテム2
項目 3
4-6. 前回と同じ
- その他
description
現在、環境を使用してタイプセットしています
\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}
しかし、 または番号付け自体を実行する他のものを使用してこれが可能かどうか疑問に思いますenumerate
。 を使用してこのリストを作成することは可能ですかenumerate
?
言い換えれば、望ましい出力を得るためにこのようなことをできるだろうか
\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}
または、\item[len=3] The same as previous ones
where by のようなものを使用してlen
、現在の項目の後の列挙項目の数を意味することもできます。
答え1
あなたが望むことを達成する唯一の方法は、enumi
カウンターを増やすことだとわかっています。
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}
出力:
答え2
\@enumctr
Symbol 1 に似たバージョンですが、現在のカウンターに拡張されるため、すべてのレベルを変更する必要はありません。
引数は\itemx
統合する項目の数です。
\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}
答え3
非常に強引な方法ですが、自分でカウンターを計算する必要はありません
\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}