如何使用 tcbox 在多列环境中围绕一个项目对齐项目符号

如何使用 tcbox 在多列环境中围绕一个项目对齐项目符号

有没有办法使框架\tcbox占用的垂直空间变得不可见,以便在multicols环境内部隔开子弹?

此 MWE

\documentclass{article}
\usepackage{multicol}
\usepackage{tcolorbox}
\begin{document}
\begin{multicols}{2}
\begin{itemize}
  \item{lorem ipsum}
  \item{lorem ipsum}
  \item{lorem ipsum}
  \item{lorem ipsum}
  \item{lorem ipsum}
  \item{\tcbox[size=small,box align=base]{lorem ipsum}}
\end{itemize}
\end{multicols}
\end{document}

产生这样的结果,即第二和第五个要点未垂直对齐,并且第五和第六个要点的文本之间的垂直空间比第二和第三个要点的文本之间的垂直空间大

Misaligned bullets inside multicols environment

我希望第二和第五个要点垂直对齐,并且希望第五和第六个要点的文本之间有相等的空间,忽略\tcbox

仅仅\smash这样做\tcbox似乎没有帮助。

答案1

一种方法是将所有\item没有方框的 s 放在空白处\tcbox。但仍使用标准itemize环境。如果您预先定义方框,则更容易,如下所示

\newtcbox{\bbox}{blank,size=small,box align=base,nobeforeafter,left=-1.3mm} % blank box
\newtcbox{\mybox}{size=small,box align=base,nobeforeafter}

这将创建一个名为的空白框\bbox,以及一个名为的可见框\mybox。事先执行此操作可确保两个框在大小等方面相同。请注意,对于空白框,我还添加了left=-1.3mm。这会减少左侧的间距,以便空白框中的文本与可见框的最左边缘水平对齐(这是您在 MWE 中所拥有的)。我从框的预定义值中获取了这些值small(请参阅文档第 4.7.5 节第 44 页tcolorbox)。特别是boxsep=1.0mmboxrule=0.3mm。因此,-1.3mm在这种情况下非常适合调整文本的水平对齐方式。或者,您可以省略这一点,空白框中的文本将与可见框中的文本水平对齐,我认为这也非常好。

平均能量损失

注意添加skins\usepackage[skins]{tcolorbox}。这是获取blank盒子所必需的。

\documentclass{article}
\usepackage{multicol}
\usepackage[skins]{tcolorbox}
\begin{document}
\newtcbox{\bbox}{blank,size=small,box align=base,nobeforeafter,left=-1.3mm}
\newtcbox{\mybox}{size=small,box align=base,nobeforeafter}
\begin{multicols}{2}
\begin{itemize}
  \item \bbox{lorem ipsum}
  \item \bbox{lorem ipsum}
  \item \bbox{lorem ipsum}
  \item \bbox{lorem ipsum}
  \item \bbox{lorem ipsum}
  \item \mybox{lorem ipsum}
\end{itemize}
\end{multicols}
\end{document}

enter image description here

如果要减少项目符号之间的垂直空间,请使用before skip=⟨glue⟩。例如,这里我使用了before skip=-2.5mm

减少项目要点之间的垂直空间 MWE

    \documentclass[]{article}
\usepackage{multicol}
\usepackage[skins]{tcolorbox}
\begin{document}
\newtcbox{\bbox}{blank,size=small,box align=base,nobeforeafter,left=-1.3mm,before skip=-2.5mm}
\newtcbox{\mybox}{size=small,box align=base,nobeforeafter,before skip=-2.5mm}
\begin{multicols}{2}
\begin{itemize}
  \item \bbox{lorem ipsum}
  \item \bbox{lorem ipsum}
  \item \bbox{lorem ipsum}
  \item \bbox{lorem ipsum}
  \item \bbox{lorem ipsum}
  \item \mybox{lorem ipsum}
\end{itemize}
\end{multicols}
\end{document}

enter image description here

相关内容