Tcolorbox: 字幕的背景颜色

Tcolorbox: 字幕的背景颜色

我怎样才能纠正背景颜色之间的过渡? MWE:

\documentclass[a4paper]{article}
\usepackage[scale=.85]{geometry}
\usepackage{tcolorbox,enumitem}
\tcbuselibrary{skins,xparse}

\begin{document}
\noindent

\begin{tcolorbox}[skin=bicolor,title=Main Title,
    colframe=red!75!black,colback=blue!10!white,colbacklower=green!10,width=0.5\linewidth,height=0.5\linewidth]
    The upper part. \par ~~~\par ~~~\par ~~~\par ~~~\par ~~~\par ~~~\par ~~~\par ~~~\par ~~~
\tcblower
\tcbsubtitle[before skip=\baselineskip]%
      {My subtitle}
    The lower part.
  \end{tcolorbox}


\end{document}

结果是:

在此处输入图片描述

非常感谢,Harald

答案1

这确实很奇怪,可能是个 bug。下面代码中的 hack 修复了这个问题,并生成了:

在此处输入图片描述

但我不明白发生了什么。 应该before skip=...可以解决这个问题,但仅调整跳过量并不能解决问题。同样,应该可以仅使用命令来执行此操作,但我也无法让它工作。我只能通过同时使用和 来\vskip解决问题。以下是破解方法:\vskipbefore skip

\documentclass[a4paper]{article}
\usepackage[scale=.85]{geometry}
\usepackage{tcolorbox,enumitem}
\tcbuselibrary{skins,xparse}

\begin{document}
\noindent

\begin{tcolorbox}[skin=bicolor,title=Main Title,
    colframe=red!75!black,colback=blue!10!white,colbacklower=green!10,
    width=0.5\linewidth,
    height=0.5\linewidth]
    The upper part. \par ~~~\par ~~~\par ~~~\par 
    ~~~\par ~~~\par ~~~\par ~~~\par ~~~\par ~~~
\tcblower\vskip-\baselineskip
\tcbsubtitle[before skip=-\baselineskip]{My subtitle}
    The lower part.
  \end{tcolorbox}

\end{document}

您可能需要调整\vskip数量,因为我认为这-\baselineskip会使字幕稍微高一点,但使用它比选择随机距离更美观。

答案2

分隔线和下方盒子部分的内容之间故意留有一定距离。添加选项draft有助于理解发生了什么:

\documentclass[a4paper]{article}
\usepackage[scale=.85]{geometry}
\usepackage{tcolorbox}
\tcbuselibrary{skins,xparse}

\begin{document}

\begin{tcolorbox}[skin=bicolor,draft,title=Main Title,
    colframe=red!75!black,colback=blue!10!white,colbacklower=green!10,width=0.5\linewidth,height=0.5\linewidth]
    The upper part. \par ~~~\par ~~~\par ~~~\par ~~~\par ~~~\par ~~~\par ~~~\par ~~~\par ~~~
\tcblower
\tcbsubtitle[]%
      {My subtitle}
    The lower part.
\end{tcolorbox}

\end{document}

在此处输入图片描述

bicolor分隔线与下部内容之间的距离为middle(默认值:2mm) 加上boxsep(默认值:1mm)。您可以看到这些距离以白色和粉红色表示。

字幕恰好从下部的开头开始(您可能会发现字幕顶部有虚线)。

要将字幕向上移动到分隔线,可以使用enlarge top initially by更改字幕的边界框。只要字幕的高度大于更正后的距离,此方法就有效。实际上,我会添加一个小的额外距离以避免两条线匹配时出现光学故障,例如使用3.1mm默认值:

\documentclass[a4paper]{article}
\usepackage[scale=.85]{geometry}
\usepackage{tcolorbox}
\tcbuselibrary{skins,xparse}

\begin{document}

\begin{tcolorbox}[skin=bicolor,title=Main Title,
    colframe=red!75!black,colback=blue!10!white,colbacklower=green!10,width=0.5\linewidth,height=0.5\linewidth]
    The upper part. \par ~~~\par ~~~\par ~~~\par ~~~\par ~~~\par ~~~\par ~~~\par ~~~\par ~~~
\tcblower
\tcbsubtitle[enlarge top initially by=-3.1mm]% -(middle+boxsep+tinydelta)
      {My subtitle}
    The lower part.
\end{tcolorbox}


\end{document}

得出:

在此处输入图片描述

相关内容