Основная идея — разместить подпись рядом с изображением и отцентрировать ее по вертикали. Я попробовал это в среде, 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
box (присутствует с версии 2015-11-20), которому нужна xparse
tcolorboxlibrary. Эта команда уже делит box на два равных столбца, а содержимое вертикально центрируется:
\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}