tcolorbox 主体中的默认文本

tcolorbox 主体中的默认文本

我想定义一个 tcolorbox 环境,例如,

\newtcolorbox{mybox}{
enhanced,
boxrule=0pt,frame hidden,
borderline west={3pt}{0pt}{Peach},
colback=Peach!5,
sharp corners
}

但我希望每个此类框都以某个关键字开头,例如“示例”——不是作为标题,而是作为正文的一部分。有没有办法将其构建到框定义中?

谢谢。

答案1

作为我的评论的替代,也可以使用attach title to upper在上部包含标题的选项。在这种情况下,可以使用fonttitlecoltitle选项选择字体和颜色。

\documentclass[dvipsnames]{article}
\usepackage[most]{tcolorbox}

\newtcolorbox{mybox}[1][]{
enhanced,
boxrule=0pt,frame hidden,
borderline west={3pt}{0pt}{Peach},
colback=Peach!5,
title=Example,
coltitle=Peach,
attach title to upper={\ },
fonttitle=\bfseries,
sharp corners,
#1
}

\begin{document}
\begin{mybox}
This is an example
\end{mybox}

\begin{mybox}[coltitle=RubineRed, title=Question]
This is a question
\end{mybox}

\end{document}

在此处输入图片描述

答案2

@Ignasi 的评论已经解决了主要问题。此答案提供了如何使用用户定义的字体以及如何更灵活地创建新的 tcolorbox 的提示。

您可以在以下位置找到非常基本的字体列表本教程来自 Overleaf。请注意,您可能必须找到此或该特定字体的包,在我的 MWE 中,我使用了consolas

\usepackage{inconsolata}
\newcommand{\myfont}{\fontfamily{zi4}\selectfont\small}

阅读tcolorbox 手册您可能会注意到,它们通常在选项块的末尾定义带有参数(通常是可选的)的新对象。例如,在第 15 页中,有一个\newtcolorbox{mybox}[2][]{...,这是一个双参数函数,其中第一个参数是可选的。最后一行是...title={#2},#1}。这#1是可选参数,它放在末尾,您可以添加或覆盖任何先前定义的集合。

乍一看,这个选项似乎没用,既然您已经定义了自己的风格,为什么还要费心选择本地选项呢?嗯,因为有时你可能必须在本地进行某些更改,而无需创建一种全新的盒子。

观察结果:您还可以定义一些\tcbset并基于前一个创建一个新的,但这是另一个答案的技能

MWE 如下:

\documentclass{article}

\usepackage{inconsolata}
\newcommand{\myfont}{\fontfamily{zi4}\selectfont\small}

\usepackage[skins]{tcolorbox}
\newtcolorbox{mybox}[1][]{
  enhanced,
  boxrule=0pt, frame hidden,
  borderline west={3pt}{0pt}{blue},
  colback=blue!5,
  sharp corners,
  before upper={\textbf{\myfont{Example:} }},
  #1
}

\begin{document}
\begin{mybox}
  This is my box.
\end{mybox}
\begin{mybox}[colbacktitle=purple, title={This is mybox with option, the option is a title}]
This is my box.
\end{mybox}
\begin{mybox}[colback=red!20, borderline east={3pt}{0pt}{yellow}]
This is my box.
\end{mybox}
\end{document}

在此处输入图片描述

相关内容