![Tcolorbox: 字幕的背景颜色](https://linux22.com/image/370207/Tcolorbox%3A%20%E5%AD%97%E5%B9%95%E7%9A%84%E8%83%8C%E6%99%AF%E9%A2%9C%E8%89%B2.png)
我怎样才能纠正背景颜色之间的过渡? 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
解决问题。以下是破解方法:\vskip
before 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}
得出: