我想创建内联enumerate
列表,其中第一行之后的每一行都逐渐缩进,形成阶梯状模式,如下所示。有没有办法自动产生这种效果?在下面的 MWE 中,我用 设置了一些框架enumitem
,但任何替代解决方案都是可以接受的。
\documentclass{article}
\usepackage{multicol}
\usepackage[inline]{enumitem}
\raggedright
\newlist{progressive}{enumerate*}{1}
\setlist[progressive]{label=(\Alph*)}
\begin{document}
\begin{multicols}{2}
Goal: Format a list to look like this:
(A)~Ordovician (B)~Devonian
\hspace*{18pt}(C)~Cambrian (D)~Silurian
\hspace*{36pt}(E)~Permian
while writing it like this:
\begin{progressive}
\item Ordovician
\item Devonian
\item Cambrian
\item Silurian
\item Permian
\end{progressive}
\end{multicols}
\end{document}
我希望输出看起来像左列。
答案1
\documentclass{article}
\setlength\textwidth{5cm}
\newcount\zzc
\newenvironment{progressive}{%
\par\raggedright
\def\item{\refstepcounter{enumi}(\Alph{enumi})~}%
{\global\zzc=0
\dimen0=0pt
\xdef\pshh{}
\loop
\xdef\pshh{\pshh\space\the\dimen0 \space \the\dimexpr\hsize-\dimen0\relax}%
\advance\dimen0 15pt
\global\advance\zzc 1
\ifdim\dimen0<\hsize
\repeat}%
\typeout{^^JXXX^^J\parshape \the\zzc\pshh}%
\parshape \zzc\pshh
\noindent\ignorespaces}
{\par}
\begin{document}
\begin{progressive}
\item Ordovician
\item Devonian
\item Cambrian
\item Silurian
\item Permian
\end{progressive}
\end{document}