Die Grundidee wäre, eine Beschriftung neben ein Bild zu setzen und es vertikal zu zentrieren. Ich habe dies in einer tcolorbox
Umgebung ausprobiert, da es auf einem Poster verwendet wird. Ich bin mir nicht sicher, wie tcolorbox
wichtig der Rahmen ist, aber ich habe ihn hier als Container beibehalten.
Die Idee wäre gewesen, das Bild in eine Spalte und die Beschriftung in die andere zu setzen, wobei diese über einen \vspace
Befehl versetzt werden sollten. Wie unten gezeigt, platziert der Code den vertikalen Abstand zwischen der ersten und zweiten Zeile des Textes und nicht über der ersten Zeile (wo er im Code wäre).
\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}
Zum Vergleich sehen Sie hier zwei Bilder, die die Wirkung des \vspace
Befehls veranschaulichen:
Gibt es eine Möglichkeit, dies zu umgehen? Ist das ein Fehler oder ein Feature?
Antwort1
Sie müssen horizontal
zuerst den Modus verlassen, d. h. eine leere Zeile verwenden und dann ausgeben \vspace{0.5cm}
, wenn dies wirklich nötig ist.
\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}
Antwort2
Bei der Verwendung tcolorbox
ist keine Umgebungsaufteilung erforderlich multicol
, da tcolorbox
jede Box bereits in Einzelteile unterteilt ist upper
, lower
die nebeneinander platziert werden können.
Der wahrscheinlich einfachste Weg, das gewünschte Ergebnis von OP zu erzielen, ist \tcbsidebyside
eine Box (vorhanden seit der Version 2015-11-20), die xparse
die tcolorboxlibrary benötigt. Dieser Befehl teilt die Box bereits in zwei gleiche Spalten und der Inhalt wird vertikal zentriert:
\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}