Margini per la posizione dei sottotitoli in tcolorbox

Aug 20 2020

Mi piacerebbe avere gli stessi margini nel sottotitolo che nella cornice del titolo del mio tcolorbox.

Per impostare il margine nel frame del titolo, ho usato lefttitle=0mm, ma non ho trovato nulla di correlato allo stile dei sottotitoli. Nel MWE, mi piacerebbe che il "Frame dei sottotitoli" fosse allineato allo stesso modo del Frame del titolo.

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

Il codice seguente riduce bene il margine del frame del titolo, ma non quello del sottotitolo.

Ho provato impostando un tcolorbox senza alcun contenuto (né titolo) e 2 sottotitoli, ma mi mostra uno spazio vuoto prima del primo sottotitolo.

Risposte

2 Marijn Aug 20 2020 at 07:47

Il sottotitolo è un tcolorbox all'interno del tcolorbox principale, con la oversizeproprietà impostata per estendere il nuovo tcolorbox alla larghezza della scatola originale (vedere il manuale del pacchetto a pagina 45). Tuttavia, a quanto pare oversizenon tiene lefttitleconto.

Una soluzione consiste nell'impostare il margine sinistro del sottotitolo a 0 mm e spostare la barra dei sottotitoli a sinistra di 5 mm (margine di 4 mm e riquadro di 1 mm) e di conseguenza aumentare la dimensione della barra a destra di 4 mm (mi aspetto che sia anche 5mm ma è troppo, non so perché).

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}

Risultato:

Notare che le impostazioni vengono eseguite con il tasto subtitle stylenella tcolorbox principale, con il risultato che le impostazioni vengono applicate a tutti i sottotitoli nella stessa casella (nel caso ci sia più di 1 sottotitolo). È inoltre possibile applicare le impostazioni ai singoli sottotitoli fornendoli come opzioni per \tcbsubtitle.