有没有办法使框架\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}
产生这样的结果,即第二和第五个要点未垂直对齐,并且第五和第六个要点的文本之间的垂直空间比第二和第三个要点的文本之间的垂直空间大
我希望第二和第五个要点垂直对齐,并且希望第五和第六个要点的文本之间有相等的空间,忽略\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.0mm
和boxrule=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}
如果要减少项目符号之间的垂直空间,请使用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}