删除 tcolorbox 中部分之前的额外空间

删除 tcolorbox 中部分之前的额外空间

当我将parbox选项 atcolorbox设置为 时false,每个部分(甚至第一个部分)前面都会有额外的空格。有没有办法告诉以与页面上第一个相同的方式tcolorbox处理第一个section( ,...) ,即没有额外的空格?也就是说,无论选项如何,以下两个框看起来都应该相同。subsectionsectionparbox

\documentclass{article}

\usepackage[many]{tcolorbox}

\begin{document}

\begin{tcolorbox}[parbox=false]
\section{Test}
\end{tcolorbox}

\begin{tcolorbox}
\section{Test}
\end{tcolorbox}

\end{document}

答案1

\noindent如果从中删除和\leavevmode(由 tcolorbox 插入),它就会按您想要的方式工作\@parboxrestore。但我不明白为什么 tcolorbox 在框开始时如此努力地切换到水平模式,我不知道这是否会产生不良的副作用:

\documentclass[]{article}

\usepackage[many]{tcolorbox}
\tcbuselibrary{breakable}
\makeatletter
\def\tcb@parbox@use@false{%
  \def\@parboxrestore{\linewidth\hsize\let\@parboxrestore=\tcb@parboxrestore}%
}
\makeatother
\begin{document}

\begin{tcolorbox}[parbox=false]
\section{Test}
abc\par cde
\end{tcolorbox}

\begin{tcolorbox}
\section{Test}
abc\par cde
\end{tcolorbox}

\end{document}

相关内容