如何更改编号 tcolorbox 框中的标题列样式?

如何更改编号 tcolorbox 框中的标题列样式?

我使用了一些使用选项tcolorbox创建的框,以便它们带有自动编号。这样可以正常工作,但在我的语言(法语)中,列前应该有一个空格(即我希望框显示“我的框 n:标题”而不是“我的框 n:标题”)。我已经能够通过使用选项设置数字样式来实现此结果。问题是,当我使用这些框的没有数字的版本时(通过使用带星号的环境,即),标题变为“我的框:标题”。我怎样才能将其变成“我的框:标题”?\newtcbtheoremauto counternumber freestyle={\noexpand\arabic{\tcbcounter}~}\begin{myBox*}

下面是一个最小的工作示例。

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[most]{tcolorbox}

\newtcbtheorem[auto counter, number freestyle={\noexpand\arabic{\tcbcounter}~}]{myBox}{My box}{}{myBox}

\begin{document}

\begin{myBox}{Title}{}
    Text
\end{myBox}

\begin{myBox*}{Title}
    Text
\end{myBox*}

\end{document}

输出:

最小工作示例输出

我想要的是(我用 Paint 编辑了图片):

希望的结果

答案1

tcolorbox 定理的标题可以分为 4 个部分:类型、数字、分隔符和标题文本本身。虽然框的规则版本使用所有四个元素,但带星号的版本使用除数字之外的所有元素。因此,在缺失的数字和分隔符(在您的情况下为 :)之间添加空格只会在框的编号版本中添加空格,而在未编号版本中仍然会缺失空格。因此,直接更改分隔符并在那里包含空格可能会更好。受破折号分隔符(\ --)定义的启发,我建议重新定义冒号分隔符,如下所示:separator sign={\ :}

要全局使用这个新的分隔符来表示所有myBox框,您可以使用

\newtcbtheorem[auto counter]{myBox}{My box}{separator sign={\ :}}{myBox}

完整的 MWE 如下所示并产生以下输出:

在此处输入图片描述

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[most]{tcolorbox}

\newtcbtheorem[auto counter]{myBox}{My box}{separator sign={\ :}}{myBox}

\begin{document}

\begin{myBox}{Title}{}
    Text
\end{myBox}

\begin{myBox*}{Title}
    Text
\end{myBox*}

\end{document}

相关内容