我正在开展一个项目,该项目需要嵌套的枚举列表,最外层的项目的样式如下所示:标签上的背景颜色、包含项目标签的其余行的阴影以及后面的换行符。
我似乎已经通过使用 inparaenum 和 tabularx 包来开发具有样式的外部列表,但是当嵌套列表是枚举环境时,我收到“缺少项目”错误。我会继续对嵌套列表使用另一个 inparaenum 环境,但是我似乎无法强制每个项目换行。从语义上讲,这似乎也很糟糕,因为环境应该内联使用。
有人能给我指明正确的方向吗?我希望找到一个看起来不像黑客的解决方案(就像我上面尝试的解决方案一样),但目前任何解决方案都受欢迎。谢谢!
最小工作示例
\documentclass{article}
\usepackage{paralist,enumitem,tabularx, xcolor, colortbl}
\makeatletter
\def\myitem{%
\@ifnextchar[ \@myitem{\@noitemargtrue\@myitem[\@itemlabel]}}
\def\@myitem[#1]{\renewcommand{\arraystretch}{1.5}\begin{tabularx}{\textwidth}{>{\columncolor{black}}l>{\columncolor{black!50}}X}\item[\color{white}#1]&\end{tabularx}\\}
\makeatother
\begin{document}
\begin{inparaenum}[1]
\myitem
\end{inparaenum}
\begin{enumerate}[label=\Alph*)]
\item NO CHANGE
\item were added to the bell.
\item were late additions to the bell.
\item were late additions to the bell, added after many years
\end{enumerate}
\end{document}
产生
但需要单独实例化每个顶级项目,并且每次都需要设置计数器。
答案1
这是一个解决方案enumitem
。我定义了fenum
具有两个级别的环境,从中克隆enumerate
,并带有相关参数。
\documentclass{article}
\usepackage[x11names]{xcolor}
\usepackage[showframe]{geometry}
\usepackage{enumitem}
\newlist{fenum}{enumerate}{2}
\setlist[fenum, 1]{label =\setlength\fboxsep{0pt}%
\raisebox{0.5ex}{\colorbox{LightSteelBlue3!30}{\makebox[\linewidth][l]{\setlength\fboxsep{3pt}%
\colorbox{RoyalBlue3!80}{\bfseries\color{white}\,\arabic*\,}}}}, wide= 0pt, labelsep = 0pt}%
\setlist[fenum, 2]{label =\Alph*), labelsep =0.25em, wide =1.5em, leftmargin = *, before =\leavevmode\vspace{-\topsep}}
\usepackage{lipsum}
\begin{document}
\lipsum[2]
\begin{fenum}
\item \begin{fenum}[]
\item NO CHANGE Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test
\item defeat
\item outperform
\item outweigh
\end{fenum}
\item Second item
\end{fenum}
\lipsum[3]
\end{document}