![tcolorbox 前的自然垂直空间,行距增加](https://linux22.com/image/351376/tcolorbox%20%E5%89%8D%E7%9A%84%E8%87%AA%E7%84%B6%E5%9E%82%E7%9B%B4%E7%A9%BA%E9%97%B4%EF%BC%8C%E8%A1%8C%E8%B7%9D%E5%A2%9E%E5%8A%A0.png)
\doublespacing
我使用双倍行距设置空间我想用简单的彩色盒子。我希望文本在框的边界和标题之间等距分布。但是,如下面的 MWE 所示,标题前后的空间太小,框后的空间太大。
我的问题:
- 为什么会发生这种情况?
- 最自然的解决方案是什么?
我玩过before
、top
、size
等,可能可以让它“看起来差不多”。但我对“设计正确”的解决方案感兴趣,即考虑(可变)行距并相应地插入空格的解决方案。
编辑:可以使用 来固定框标题和内容之间的空间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
等作斗争,after
after 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}