不用手工指定,利用层次深度的内部命令 \@listdepth 来控制输出的个数。
不过……需要在结束的地方用某个东西来标识一下,虽然有点……呃,暂时还没想到别的方法……
这里我用了两个分号,已考虑到输入的方便……
\documentclass{ctexart}
\newcount\tmpct
\makeatletter
\long\def\myitem#1;;{\item#1\nolinebreak\hfill
\tmpct=0%
\loop\ifnum\tmpct<\@listdepth\relax
\#\advance\tmpct by1\relax
\repeat}
\makeatother
\begin{document}
\newcommand\test[1]{这是#1层,这是#1层,这是#1层,这是#1层,这是#1层,这是#1层,这是#1层,这是#1层}
\begin{enumerate}
\myitem \test 外;;
\myitem \test 外 \par 开第二段也可以喔;;
\begin{enumerate}
\myitem \test 内;;
\myitem \test 内 \par 开第二段也可以喔;;
\begin{enumerate}
\myitem \test{内内};;
\myitem \test{内内} \par 开第二段也可以喔;;
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{document}
用 XeLaTeX 编译。 |