tcolorbox 的字幕位置

tcolorbox 的字幕位置

在写一篇论文(法语)时,我使用了很多方框来框住一些日期。幸运的是,tcolor 功能非常强大,可以制作出一些漂亮的方框。但我在\tcbsubtitle区分(或添加更多信息)不同数据方面遇到了一点问题。

盒子的标题(很好地)集成在边缘,我尝试让子标题也这样做...如果有人有想法的话。

这里有一个 MCE:

\documentclass[12pt,french]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper]{geometry}
\usepackage{microtype}
\usepackage{graphicx}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\usepackage{xspace}
\xspaceremoveexception{-}
%\usepackage{varioref}
\usepackage[autostyle]{csquotes}
\usepackage{babel}
\usepackage[osf]{garamondx}
\usepackage[breaklinks,colorlinks=true]{hyperref}
%opening

\newenvironment{supercadre}[2]{
    \begin{tcolorbox}[enhanced,breakable,
        size=fbox,sharp corners=northwest,
        before=\smallskip,
        after=\smallskip,
        %   boxrule=5pt,
        parbox=true,
        adjusted title={\footnotesize{{#1} \no{#2}}},
        colframe=black,colback=black!01!white,  %couleur du cadre et du fond de la boît
        colbacktitle=black!10!white,            %couleur du fond du titre
        coltitle=black!50!black,                %couleur de la police du titre
        fonttitle=\bfseries,                    %font du titre
        subtitle style={colback=black!10!white},
        attach boxed title to top left={xshift=-\tcboxedtitlewidth,yshift=-\tcboxedtitleheight},
        boxed title style={size=fbox,sharp corners=east}
        ]}
    {\end{tcolorbox}}

\newcommand{\cadrebis}[3]{\begin{supercadre}{#1}{#2}\noindent{\small#3}\end{supercadre}}


\begin{document}


\cadrebis{Try}{1}{
    \lipsum[2]
    \tcbline
    \lipsum[1]
}

\cadrebis{Try}{2}{
    \lipsum[2]
    \tcbsubtitle[nobeforeafter,subtitle style={colbacktitle=white, attach boxed title to top left={xshift=-\tcboxedtitlewidth,yshift=-\tcboxedtitleheight}}]{The subtitle}
    \lipsum[2]
}

\end{document}

答案1

如果您的框仅包含一个字幕,则可以使用类似以下代码。它使用segmentation位置来附加带有字幕内容的可选覆盖tcbox

\documentclass[12pt,french]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper]{geometry}
%\usepackage{microtype}
%\usepackage{graphicx}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
%\usepackage{xspace}
%\xspaceremoveexception{-}
%\usepackage{varioref}
%\usepackage[autostyle]{csquotes}
\usepackage{babel}
%\usepackage[osf]{garamondx}
\usepackage[breaklinks,colorlinks=true]{hyperref}
%opening

\newtcolorbox{supercadre}[3][]{%
    enhanced,breakable,
   size=fbox,sharp corners=northwest,
   before=\smallskip,
   after=\smallskip,
%  boxrule=5pt,
   parbox=true,
   adjusted title={\footnotesize{{#2} \no{#3}}},
   colframe=black,colback=black!01!white,  %couleur du cadre et du fond de la boît
   colbacktitle=black!10!white,            %couleur du fond du titre
   coltitle=black!50!black,                %couleur de la police du titre
   fonttitle=\bfseries,                    %font du titre
   fontupper=\small,
   fontlower=\small,
   subtitle style={colback=black!10!white},
   attach boxed title to top left={xshift=-\tcboxedtitlewidth,yshift=-\tcboxedtitleheight},
   boxed title style={size=fbox,sharp corners=east},
   #1
}

\newtcbox{\subtitle}{size=fbox, sharp corners=east, colback=black!10!white, fontupper=\bfseries, colframe=black}

\tcbset{subtitle/.style={overlay={\node[anchor=north east, inner sep=0pt] at (segmentation.west) {\subtitle{#1}};}}}
\newcommand{\cadrebis}[3]{\begin{supercadre}{#1}{#2}#3\end{supercadre}}


\begin{document}

\begin{supercadre}[subtitle=SubTitle]{Try}{1}
\lipsum[2]
\tcblower
\lipsum[1]
\end{supercadre}

\begin{supercadre}[subtitle=Test]{Try}{1}
\lipsum[2]
\tcblower
\lipsum[1]
\end{supercadre}

\end{document}

在此处输入图片描述

更新

另一个选项是模拟一个 tcolorbox,其中有多个 tcolorbox,并且它们之间没有垂直空间。以下解决方案并不完美(我不知道为什么分隔线会引入不必要的空间),但您可以开始使用它:

\documentclass[12pt,french]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}


\tcbset{
    general/.style={
        enhanced,
        breakable,
        colback=black!1!white,
        colbacktitle=black!10!white,
        coltitle=black,
        fonttitle=\bfseries,
        fontupper=\small,
        size=fbox,
        parbox=true,
        attach boxed title to top left={xshift=-\tcboxedtitlewidth, yshift=-\tcboxedtitleheight},
        boxed title style={size=fbox, sharp corners=east}
        }
}

\newtcolorbox{topbox}[3][]{%
    general,
    bottomrule=0pt,
    after=\par\nointerlineskip,
    before={},
    sharp corners,
    adjusted title={\footnotesize{{#2} \no{#3}}},
    rounded corners=northeast,#1}

\newtcolorbox{middlebox}[3][]{%
    general,
    bottomrule=0pt,
    toprule=0pt,
    after=\par\nointerlineskip,
    before={},
    sharp corners,
    overlay={\draw[dashed](frame.north west)--(frame.north east);},
    adjusted title={\footnotesize{{#2} \no{#3}}},
    #1
    }

\newtcolorbox{bottombox}[3][]{%
    general,
    toprule=0pt,
    before={},
    sharp corners=north,
    overlay={\draw[dashed](frame.north west)--(frame.north east);},
    adjusted title={\footnotesize{{#2} \no{#3}}},
    #1
    }

\begin{document}
\begin{topbox}{1}{test}
\lipsum[1]
\end{topbox}
\begin{middlebox}{2}{test}
\lipsum[1]
\end{middlebox}
\begin{bottombox}{3}{test}
\lipsum[1]
\end{bottombox}
\end{document}

在此处输入图片描述

相关内容