我需要排版如下的列表:
项目 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
。
梅威瑟:
\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
与符号 1 类似的版本,但不需要更改所有级别,因为它\@enumctr
扩展到当前计数器。
参数\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}