我想避免当标签用框书写时,项目化段落的前两行之间的垂直间距大于其余部分,正如本例中发生的情况:
这是产生该输出的代码:
\documentclass{article}
\usepackage{enumitem}
\usepackage[most]{tcolorbox}
\newtcbox{\mybox}[1][]{colback=blue!10,colframe=blue!30,tcbox raise base, #1}
\begin{document}
\begin{enumerate}[label=\mybox{\arabic*}]
\item Primer ítem en la lista, una línea más larga para demostrar el espaciado entre las líneas del párrafo. Primer ítem en la lista, una línea más larga para demostrar el espaciado entre las líneas del párrafo. Primer ítem en la lista, una línea más larga para demostrar el espaciado entre las líneas del párrafo.
\item Segundo ítem en la lista.
\item Tercer ítem en la lista.
\end{enumerate}
\end{document}
答案1
tcolorbox
我建议使用enlarge top by
和来缩小 的垂直边界框enlarge bottom by
。由于默认情况下会向其内容添加 3.5 毫米(top
/为 2 毫米bottom
, 为 1 毫米boxsep
, 为 0.5 毫米boxrule
),因此使用:
\newtcbox{\mybox}[1][]{%
enlarge top by=-3.5mm, enlarge bottom by=-3.5mm,
colback=blue!10,colframe=blue!30,tcbox raise base, #1}
然后应扩大物品分隔以避免箱子重叠。尝试:
\begin{enumerate}[label=\mybox{\arabic*}, itemsep=5mm plus 0.5em]
完整代码:
\documentclass{article}
\usepackage{enumitem}
\usepackage[most]{tcolorbox}
\newtcbox{\mybox}[1][]{%
enlarge top by=-3.5mm, enlarge bottom by=-3.5mm,
colback=blue!10,colframe=blue!30,tcbox raise base, #1}
\begin{document}
\begin{enumerate}[label=\mybox{\arabic*}, itemsep=5mm plus 0.5em]
\item Primer ítem en la lista, una línea más larga para demostrar el espaciado entre las líneas del párrafo. Primer ítem en la lista, una línea más larga para demostrar el espaciado entre las líneas del párrafo. Primer ítem en la lista, una línea más larga para demostrar el espaciado entre las líneas del párrafo.
\item Segundo ítem en la lista.
\item Tercer ítem en la lista.
\end{enumerate}
\end{document}
答案2
我提出一个与\tikz
相关的解决方案tabularray
。
- 在 中
Tikz
,我使用默认值创建计数器样式tcbox
\tikzset{ counter/.style= { draw=blue!30, fill=blue!10, inner xsep=4.0 mm, inner ysep=2.0 mm, rounded corners=1mm, } }
在中
tabularray
,我使用计数器库(文档中的第 48 页)\documentclass{article} \usepackage{tikz} \usepackage{tabularray} \UseTblrLibrary{counter} %%%%%%%%%%%%%%%%%% \newcounter{mycnta} \newcommand{\mycnta}{\stepcounter{mycnta}\arabic{mycnta}} % \tikzset{ counter/.style= { draw=blue!30, fill=blue!10, inner xsep=4.0 mm, inner ysep=2.0 mm, rounded corners=1mm, } } \begin{document} \begin{tblr}{ colspec={Q[l,wd=2.5em] X}, column{1} = {cmd=\tikz[baseline] {\node[counter]{\mycnta .};}} } & Primer ítem en la lista, una línea más larga para demostrar el espaciado entre las líneas del párrafo. Primer ítem en la lista, una línea más larga para demostrar el espaciado entre las líneas del párrafo. Primer ítem en la lista, una línea más larga para demostrar el espaciado entre las líneas del párrafo.\\ &Segundo ítem en la lista.\\ & Tercer ítem en la lista. \end{tblr} \end{document}