在 tcolorbox 中使用 multicol 时,段落内的垂直间距很奇怪

在 tcolorbox 中使用 multicol 时,段落内的垂直间距很奇怪

基本思路是将标题放在图片旁边,并将其垂直居中。我尝试在环境中这样做,tcolorbox因为它用于海报。我不确定框架有多tcolorbox重要,但我在这里将其保留为容器。

想法是将图片放在一列,将标题放在另一列,使用命令可以偏移\vspace。如下所示,代码将垂直空间放在文本的第一行和第二行之间,而不是第一行上方(代码中的位置)。

\documentclass{standalone}
\usepackage{tikz}
\usepackage{multicol}
\usepackage{tcolorbox}

\begin{document}

\begin{tcolorbox}[boxsep=-1mm]
\begin{multicols}{2} % also tried unbalanced multicols*
\begin{tikzpicture}
    \draw (0,0) -- (5,0) -- (5,4) -- (0,4) -- (0,0);
    \draw (0,0) -- (5,4);
    \draw (5,0) -- (0,4);
\end{tikzpicture}
\vspace{0.5cm} % this command causes strange vertical spacing
Figure aption. Weird vertical spacing between 1st and 2nd line, when using \textbackslash vspace command.
\end{multicols}
\end{tcolorbox}

\end{document}

为了进行比较,您可以看到两幅图像,展示该命令的效果\vspace

没有 vspace 命令的正确行为 使用 vspace 命令时出现奇怪的垂直间距

有办法解决这个问题吗?这是一个错误还是一个功能?

答案1

如果确实需要,您必须horizontal先退出该模式,即使用一个空行,然后发出。\vspace{0.5cm}

\documentclass{standalone}
\usepackage{tikz}
\usepackage{multicol}
\usepackage{tcolorbox}

\begin{document}

\begin{tcolorbox}[boxsep=-1mm]
\begin{multicols}{2} % also tried unbalanced multicols*
\begin{tikzpicture}
    \draw (0,0) -- (5,0) -- (5,4) -- (0,4) -- (0,0);
    \draw (0,0) -- (5,4);
    \draw (5,0) -- (0,4);
\end{tikzpicture}



% this command causes strange vertical spacing
\vspace{0.5cm}
Figure caption. No weird vertical spacing between 1st and 2nd line, when using \textbackslash vspace command.
\end{multicols}
\end{tcolorbox}

\end{document}

在此处输入图片描述

答案2

使用时tcolorbox无需multicol环境,因为tcolorbox每个盒子已经分成了upper多个lower部分,可以并排放置。

获得 OP 所需结果的最简单方法可能是\tcbsidebyside需要 tcolorboxlibrary 的框(自 2015-11-20 版本开始存在)xparse。此命令已将框分成两个相等的列,并且内容垂直居中:

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usepackage[skins,xparse]{tcolorbox}

\begin{document}

\tcbsidebyside[notitle,lower separated=false]{%
\begin{tikzpicture}
    \draw (0,0) -- (5,0) -- (5,4) -- (0,4) -- (0,0);
    \draw (0,0) -- (5,4);
    \draw (5,0) -- (0,4);
\end{tikzpicture}
}{%
Figure caption. Weird vertical spacing between 1st and 2nd line, when using \textbackslash vspace command.
}
\end{document}

在此处输入图片描述

相关内容