tcolorbox 내에서 다중 열을 사용하는 단락 내 이상한 세로 간격

tcolorbox 내에서 다중 열을 사용하는 단락 내 이상한 세로 간격

기본 아이디어는 이미지 옆에 캡션을 배치하고 수직으로 중앙에 배치하는 것입니다. 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필요하지 않습니다 .multicoltcolorboxupperlower

아마도 OP가 원하는 결과를 얻는 가장 쉬운 방법은 tcolorboxlibrary가 \tcbsidebyside필요한 상자(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}

여기에 이미지 설명을 입력하세요

관련 정보