![如何更改编号 tcolorbox 框中的标题列样式?](https://linux22.com/image/419111/%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%E7%BC%96%E5%8F%B7%20tcolorbox%20%E6%A1%86%E4%B8%AD%E7%9A%84%E6%A0%87%E9%A2%98%E5%88%97%E6%A0%B7%E5%BC%8F%EF%BC%9F.png)
我使用了一些使用选项tcolorbox
创建的框,以便它们带有自动编号。这样可以正常工作,但在我的语言(法语)中,列前应该有一个空格(即我希望框显示“我的框 n:标题”而不是“我的框 n:标题”)。我已经能够通过使用选项设置数字样式来实现此结果。问题是,当我使用这些框的没有数字的版本时(通过使用带星号的环境,即),标题变为“我的框:标题”。我怎样才能将其变成“我的框:标题”?\newtcbtheorem
auto counter
number 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}