如何在 tcolorbox 中控制 parskip?

如何在 tcolorbox 中控制 parskip?

我正在使用tcolorbox在我的文档的某些部分周围提供一些漂亮的框架;我使用parskip使段落之间有适当的间距。

当我在 a 里面有多个段落时,tcolorboxparskip不被遵守,如下面的屏幕截图中突出显示的那样。我搜索了手册,但它似乎描述跳过之前和之后,但不是'期间'。如何修复此问题?

截屏

下面是一个完整的 MWE,演示了这个问题:

% arara: pdflatex
\documentclass{article}

\usepackage{tcolorbox}
\usepackage{lipsum}
\usepackage{parskip}

\begin{document}

\begin{tcolorbox}
\lipsum[1]

\lipsum[2]
\end{tcolorbox}

\lipsum
\end{document}

答案1

是的,有一个原生tcolorbox解决方案。 a 的内容使用 和的tcolorbox典型设置进行处理。您可以通过设置来模拟“正常”处理来切换这种处理。parboxminipageparbox=false

tcolorbox您可以在文档中找到文本特征4.18 文本特征第 98 页,适用于当前tcolorbox版本 4.22 [2019/11/15])。

\documentclass{article}

\usepackage{tcolorbox}
\usepackage{lipsum}
\usepackage{parskip}

\begin{document}

\begin{tcolorbox}[parbox=false]
\lipsum[1]

\lipsum[2]
\end{tcolorbox}

\lipsum
\end{document}

在此处输入图片描述

答案2

一个选项是parskip使用以下定义的新环境内部的设置tcolorbox

\documentclass{article}
\usepackage{tcolorbox}
\usepackage{lipsum}
\usepackage{parskip}

\newenvironment{mycolorbox}[1][]
  {\if\detokenize{#1}\relax\relax
      \begin{tcolorbox}
    \else
      \begin{tcolorbox}[#1]
    \fi
  \parskip=0.5\baselineskip \advance\parskip by 0pt plus 2pt
  \parindent=0pt
}
  {\end{tcolorbox}}

\begin{document}

\begin{mycolorbox}
\lipsum[1]

\lipsum[2]
\end{mycolorbox}

\lipsum

\end{document}

在此处输入图片描述

相关内容