
Как исправить переход между фоновыми цветами? 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}
и результат:
Большое спасибо; Харальд
решение1
Это действительно странно и, вероятно, является ошибкой. Хак в коде ниже устраняет проблему, чтобы произвести:
но я не понимаю, что происходит. before skip=...
Предполагается, что это должно решать эту проблему, но регулировка величины пропуска сама по себе не решает проблему. Аналогично, это можно сделать, используя только команду, \vskip
но я не смог заставить это работать. Я смог решить проблему, только имея и a , и \vskip
a 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
(по умолчанию: 2 мм) плюс boxsep
(по умолчанию: 1 мм). Вы видите эти расстояния белым и розовым цветом.
Субтитры начинаются точно в начале нижней части (вы можете заметить пунктирную линию в верхней части субтитров).
Чтобы переместить субтитр вверх к разделительной линии, можно использовать 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}
Это дает: