Seltsamer vertikaler Abstand innerhalb des Absatzes bei Verwendung von Multicol innerhalb der Tcolorbox

Seltsamer vertikaler Abstand innerhalb des Absatzes bei Verwendung von Multicol innerhalb der Tcolorbox

Die Grundidee wäre, eine Beschriftung neben ein Bild zu setzen und es vertikal zu zentrieren. Ich habe dies in einer tcolorboxUmgebung ausprobiert, da es auf einem Poster verwendet wird. Ich bin mir nicht sicher, wie tcolorboxwichtig 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 \vspaceBefehl 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 \vspaceBefehls veranschaulichen:

korrektes Verhalten ohne vspace-Befehl seltsamer vertikaler Abstand bei Verwendung des Befehls vspace

Gibt es eine Möglichkeit, dies zu umgehen? Ist das ein Fehler oder ein Feature?

Antwort1

Sie müssen horizontalzuerst 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}

Bildbeschreibung hier eingeben

Antwort2

Bei der Verwendung tcolorboxist keine Umgebungsaufteilung erforderlich multicol, da tcolorboxjede Box bereits in Einzelteile unterteilt ist upper, lowerdie nebeneinander platziert werden können.

Der wahrscheinlich einfachste Weg, das gewünschte Ergebnis von OP zu erzielen, ist \tcbsidebysideeine Box (vorhanden seit der Version 2015-11-20), die xparsedie 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}

Bildbeschreibung hier eingeben

verwandte Informationen