我想在枚举环境中沿着某个项目绘制一些(彩色)垂直线,如下所示。问题是我的做法真的很不靠谱。我没有在一个枚举中放置一堆项目,而是为每个项目制作一个迷你页面,然后将枚举放在该迷你页面中。我尝试“分解”枚举,结果导致 \vrule 的位置不正确,而且我无法控制项目的宽度。
这看起来是我想要的,但它很尴尬,我真的很想有一个更好的方法来处理它。
\documentclass{article}
\usepackage{enumitem}
\usepackage{color}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\smallskip
\noindent\textcolor{red}{\vrule width 4pt}
\begin{minipage}{\dimexpr\textwidth-2\fboxsep}
\begin{enumerate}[labelwidth=1.5cm,labelindent=10pt,leftmargin=0.5\leftmargin]
\setcounter{enumi}{0}
\item \lipsum[2]
\end{enumerate}
\end{minipage}
\smallskip
\noindent\textcolor{blue}{\vrule width 4pt}
\begin{minipage}{\dimexpr\textwidth-2\fboxsep}
\begin{enumerate}[labelwidth=1.5cm,labelindent=10pt,leftmargin = 0.5\leftmargin]
\setcounter{enumi}{1}%not clear to me why resume didn't work
\item \lipsum[3]
\end{enumerate}
\end{minipage}
\smallskip
\lipsum[4]
\end{document}
我希望有一个简单的解决方案这个这只是在数字前加了一个星号。我期望类似的东西可以允许
\begin{enumerate}
\item \mycommand{color} \begin{minipage}{some width} text \end{minipage}
\item \mycommand{newcolor} ...
\end{enumerate}
答案1
其工作原理是将物品放入保存箱,测量其尺寸并在其顶部叠加彩色线。
正如预期的那样,项目之间的间距比 OP 更大(参见并列的列表和图形)
我花了很长时间才让它工作起来。我认为这与和\item
不兼容。\rlap
\llap
\sbox0
\documentclass{article}
\usepackage{enumitem}
\usepackage{color}
\usepackage{lipsum}
\begin{document}
\newsavebox{\tempbox}
\newcommand{\coloritem}[2]% #1 = color of bar, #2 = item text
{\item \savebox{\tempbox}{\parbox[t]{\linewidth}{#2}}%
\usebox{\tempbox}\hspace{-\columnwidth}%
{\color{#1}\rule[-\dp\tempbox]{4pt}{\dimexpr \ht\tempbox+\dp\tempbox}}%
}
\lipsum[1]
\smallskip
\begin{enumerate}
\coloritem{red}{\lipsum[2]}
\coloritem{blue}{\lipsum[3]}
\end{enumerate}
\smallskip
\lipsum[4]
\end{document}