我目前正在处理一组笔记,并希望在枚举环境中圈出项目编号。这个问题似乎已由 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
。
警告。你不能嵌套其他列表,但我不认为这对于这个应用程序来说是个问题。