基本思路是将标题放在图片旁边,并将其垂直居中。我尝试在环境中这样做,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
:
有办法解决这个问题吗?这是一个错误还是一个功能?
答案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}