Tcolorbox: Color de fondo del subtítulo

Tcolorbox: Color de fondo del subtítulo

¿Cómo puedo corregir la transición entre los colores de fondo? El 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}

y el resultado es:

ingrese la descripción de la imagen aquí

Muchas gracias; haraldo

Respuesta1

Esto es realmente extraño y probablemente sea un error. El truco en el siguiente código soluciona el problema que se produce:

ingrese la descripción de la imagen aquí

pero no entiendo que esta pasando. Se supone que el programa before skip=...se encarga de esto, pero ajustar la cantidad omitida por sí solo no soluciona el problema. De manera similar, debería ser posible hacer esto usando solo un \vskipcomando, pero tampoco pude hacerlo funcionar. Solo pude solucionar el problema teniendo a \vskipy a before skip. Aquí está el truco:

\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}

Es posible que tengas que ajustar la \vskipcantidad, ya que creo que eso -\baselineskiphace que el subtítulo sea demasiado alto, pero usar esto fue más agradable desde el punto de vista estético que elegir una distancia aleatoria.

Respuesta2

Deliberadamente, hay cierta distancia entre la línea de separación y el contenido de la parte inferior de la caja. Agregar las draftopciones ayuda a comprender lo que sucede:

\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}

ingrese la descripción de la imagen aquí

La distancia entre la bicolorlínea de separación y el contenido de la parte inferior es middle(predeterminado: 2 mm) más boxsep(predeterminado: 1 mm). Estas distancias las ves en color blanco y rosa.

El subtítulo comienza exactamente al principio de la parte inferior (puedes ver la línea discontinua en la parte superior del subtítulo).

Para mover el subtítulo hacia arriba hasta la línea de separación, se puede utilizar enlarge top initially bypara cambiar el cuadro delimitador del subtítulo. Esto funciona siempre que la altura del subtítulo sea mayor que la distancia corregida. En realidad, agregaría una pequeña distancia adicional para evitar fallas ópticas cuando dos líneas coinciden, por ejemplo, usar 3.1mmpara los valores predeterminados:

\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}

Esto da:

ingrese la descripción de la imagen aquí

información relacionada