tcolorbox 前的自然垂直空间,行距增加

tcolorbox 前的自然垂直空间,行距增加

\doublespacing我使用双倍行距设置空间我想用简单的彩色盒子。我希望文本在框的边界和标题之间等距分布。但是,如下面的 MWE 所示,标题前后的空间太小,框后的空间太大。

我的问题:

  • 为什么会发生这种情况?
  • 最自然的解决方案是什么?

我玩过beforetopsize等,可能可以让它“看起来差不多”。但我对“设计正确”的解决方案感兴趣,即考虑(可变)行距并相应地插入空格的解决方案。

编辑:可以使用 来固定框标题和内容之间的空间attach title to upper, after title=\par\nobreak\noindent;这将完全删除标题框。

\documentclass{article}
\usepackage{tcolorbox}
\usepackage{setspace}
\tcbuselibrary{skins}
\doublespacing
\begin{document}
    I'm the first paragraph to demonstrate normal spacing between paragraphs.

    I'm the paragraph before the box.  I'm long enough to demonstrate the double line spacing.

    \begin{tcolorbox}[
        blanker, left=1em, borderline west={1pt}{0pt}{gray},
        fonttitle=\color{black}\bf, adjusted title=I'm the title line,
    ]
        I'm the paragraph in the box.  I'm also long enough to demonstrate the double line spacing.
    \end{tcolorbox}

    I'm the paragraph after the box.
\end{document}

输出: 在此处输入图片描述

答案1

有许多垂直长度在 a 中tcolorbox形成自己的空间因此,而不是与选项、、before等作斗争,afterafter skip看起来没有任何tcolorbox,我会用一个简单的垂直框制作我自己的宏:

\def\vrgbox#1#2{
\vspace{\abovedisplayskip}
{\color{gray}\vrule width 1pt}\hskip1em 
\vbox{\hsize\dimexpr\linewidth-1em-1pt-\parindent \parindent0pt
{\bfseries #1}\par#2}}

或者一个小页面:

\def\vrgbox#1#2{\vspace{\abovedisplayskip}
{\color{gray}\vrule width 1pt}\hskip1em
\begin{minipage}{\dimexpr\linewidth-\parindent-1em-1pt}
{\bfseries#1}\par#2\end{minipage} }

两种情况下的结果都是:

姆韦

具有第二个宏的 MWE:

\documentclass{article}
\usepackage{xcolor}
\usepackage{setspace}
\doublespacing
\def\vrgbox#1#2{\vspace{\abovedisplayskip}
{\color{gray}\vrule width 1pt}\hskip1em
\begin{minipage}{\dimexpr\linewidth-\parindent-1em-1pt}
{\bfseries#1}\par#2\end{minipage} }

\begin{document}

I'm the first paragraph to demonstrate 
normal spacing between paragraphs.

I'm the paragraph before the box.  
I'm long enough to demonstrate the double line spacing.

\vrgbox{Im the title line}{I'm the paragraph in the box.  
I'm also long enough to demonstrate the double line spacing.}

I'm the paragraph after the box.

\end{document}

相关内容