如何在枚举中的项目旁边画一条垂直线

如何在枚举中的项目旁边画一条垂直线

我想在枚举环境中沿着某个项目绘制一些(彩色)垂直线,如下所示。问题是我的做法真的很不靠谱。我没有在一个枚举中放置一堆项目,而是为每个项目制作一个迷你页面,然后将枚举放在该迷你页面中。我尝试“分解”枚举,结果导致 \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}

颜色项目

相关内容