enumitem 中的行间距不一致

enumitem 中的行间距不一致

我目前正在处理一组笔记,并希望在枚举环境中圈出项目编号。这个问题似乎已由 Raphink 在主题中解决带有蓝色圆圈和数字的枚举列表,他们的努力在下面的代码中重现。但是,如您所见,与项目编号 2 对应的段落中的垂直行间距存在一个小问题。它不一致,我更希望第一行和第二行之间的间距与其他行相似。我该怎么做呢?在此处输入图片描述

\documentclass{article}

\usepackage{tikz}
\usepackage{lipsum}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{%
            \node[shape=circle,fill=blue!20,draw,inner sep=8pt] (char) {#1};}}

\usepackage{enumitem}

\begin{document}

\begin{enumerate}[label=\protect\circled{\arabic*}]
\item Step one 
\item Step two \lipsum[1]
\item Step three
\end{enumerate}

\end{document}

答案1

\documentclass{article}

\usepackage{tikz}
\usepackage{lipsum}
\newcommand*\circled[1]{\smash{\tikz[baseline=(char.base)]{%
            \node[shape=circle,fill=blue!20,draw,inner sep=8pt] (char) {#1};}}}

\usepackage{enumitem}

\begin{document}

\begin{enumerate}[label=\protect\circled{\arabic*},itemsep=5ex]
\item Step one 
\item Step two \lipsum[1]
\item Step three
\end{enumerate}

\end{document}

在此处输入图片描述

答案2

您要打破图片的底部,但也要根据项目占用的行数添加空行。

如果项目只有一行,我在这里添加一个空行。

\documentclass{article}

\usepackage{tikz}
\usepackage{amsmath}
\usepackage{enumitem}

\usepackage{lipsum}

\newcommand*\circled[1]{%
  \smash[b]{%
    \begin{tikzpicture}[baseline=(char.base)]
    \node[shape=circle,fill=blue!20,draw,inner sep=8pt] (char) {#1};
    \end{tikzpicture}%
  }%
}

\ExplSyntaxOn
\NewDocumentEnvironment{circledenum}{O{}+b}
 {
  \wrb_circledenum:nn { #1 } { #2 }
 }
 {}

\seq_new:N \l__wrb_circledenum_items_seq

\cs_new_protected:Nn \wrb_circledenum:nn
 {
  \seq_set_split:Nnn \l__wrb_circledenum_items_seq { \item } { #2 }
  % discard the first (empty) item
  \seq_pop_left:NN \l__wrb_circledenum_items_seq \l_tmpa_tl
  \begin{enumerate}[label=\protect\circled{\arabic*},#1]
  \seq_map_inline:Nn \l__wrb_circledenum_items_seq
   {
    \item ##1 \par
    \int_compare:nT { \prevgraf < 3 }
     {\vspace{ \int_eval:n { 2-\prevgraf } \baselineskip }}
   }
  \end{enumerate}
 }

\ExplSyntaxOff

\begin{document}

\begin{circledenum}
\item Step one
\item Another short one
\item Step two \lipsum[1][1-2]
\item Step three \lipsum[1][1-3]
\item Step four \lipsum[1][1-5]
\end{circledenum}

\end{document}

诀窍是通过发出命令让 TeX 知道前一段由多少行组成,\par以便将数字存储在 中\prevgraf

在此处输入图片描述

警告。你不能嵌套其他列表,但我不认为这对于这个应用程序来说是个问题。

相关内容