tcolorbox字幕位置のマージン

Aug 20 2020

tcolorboxのタイトルフレームと同じ余白をサブタイトルに入れたいのですが。

タイトルフレームの余白を設定するために使用しましたlefttitle=0mmが、字幕スタイルに関連するものは見つかりませんでした。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]
    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}

次のコードは、タイトルフレームのマージンを大幅に削減しますが、サブタイトルのマージンは削減しません。

コンテンツ(タイトルも)も含まないtcolorboxと2つの字幕を設定してみましたが、最初の字幕の前に空のスペースが表示されます。

回答

2 Marijn Aug 20 2020 at 07:47

サブタイトルはメインのtcolorbox内のtcolorboxでありoversize、新しいtcolorboxを元のボックスの幅に拡張するようにプロパティが設定されています(45ページのパッケージマニュアルを参照)。しかし、どうやら考慮されてoversizeいませんlefttitle

解決策は、字幕の左マージンを0mmに設定し、字幕バーを左に5mmシフトして(4mmマージンと1mmボックスセプ)、それに応じて右側のバーのサイズを4mm大きくすることです(これは5mmもありますが、それは多すぎます。理由はわかりません)。

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}

結果:

設定はsubtitle styleメインのtcolorboxのキーを使用して行われるため、設定は同じボックス内のすべての字幕に適用されることに注意してください(複数の字幕がある場合)。にオプションとして提供することにより、個々の字幕に設定を適用することもできます\tcbsubtitle