Marges pour la position des sous-titres tcolorbox

Aug 20 2020

J'aimerais avoir les mêmes marges dans le sous-titre que dans le cadre de titre de ma tcolorbox.

Pour définir la marge dans le cadre du titre, j'ai utilisé lefttitle=0mm, mais je n'ai rien trouvé de lié au style de sous-titre. Dans le MWE, j'aimerais que le "cadre de sous-titre" soit aligné de la même manière que le cadre de titre.

\documentclass{article}
\usepackage{tcolorbox}
\begin{document}
\begin{tcolorbox}[title=Title Frame,
    lefttitle=0mm,
    %left=0mm, % flushes left everything : subtitle and its contents
    colback=red!5!white,
    colframe=red!75!black,
    fonttitle=\bfseries]
    This is a \textbf{tcolorbox}.
    \tcbsubtitle[before skip=\baselineskip, 
        halign=left, % does not work
        lefttitle=0mm, % does not work either
        ]%
    {Subtitle Frame (margin to be set to 0mm)}
    Further text.
\end{tcolorbox}
\end{document}

Le code suivant réduit bien la marge du cadre de titre, mais pas celle du sous-titre.

J'ai essayé en paramétrant une tcolorbox sans aucun contenu (ni titre), et 2 sous-titres, mais cela m'affiche un espace vide avant le 1er sous-titre.

Réponses

2 Marijn Aug 20 2020 at 07:47

Le sous-titre est une tcolorbox dans la tcolorbox principale, avec la oversizepropriété définie pour étendre la nouvelle tcolorbox à la largeur de la boîte d'origine (voir le manuel du paquet à la page 45). Cependant, oversizene prend apparemment pas lefttitleen compte.

Une solution consiste à régler la marge gauche du sous-titre à 0 mm et à décaler la barre de sous-titre vers la gauche de 5 mm (marge de 4 mm et boîte de 1 mm) et d'augmenter en conséquence la taille de la barre à droite de 4 mm (je m'attendrais à ce que ce soit aussi 5 mm mais c'est trop, je ne sais pas pourquoi).

MWE:

\documentclass{article}
\usepackage{tcolorbox}
\begin{document}
\begin{tcolorbox}[title=Title Frame,
    lefttitle=0mm,
    %left=0mm, % flushes left everything : subtitle and its contents
    colback=red!5!white,
    colframe=red!75!black,
    fonttitle=\bfseries,
    subtitle style={left=0mm,enlarge left by=-5mm,grow to right by=4mm}
    ]
    This is a \textbf{tcolorbox}.
    \tcbsubtitle[before skip=\baselineskip]%
    {Subtitle Frame (margin to be set to 0mm)}
    Further text.
\end{tcolorbox}
\end{document}

Résultat:

Notez que les réglages sont effectués avec la touche subtitle styledans la tcolorbox principale, ce qui entraîne l'application des réglages à tous les sous-titres dans la même boîte (au cas où il y aurait plus d'un sous-titre). Vous pouvez également appliquer les paramètres à des sous-titres individuels en les fournissant comme options à \tcbsubtitle.