强制 tcolorbox 标题的总高度

强制 tcolorbox 标题的总高度

我的文档中有几个tcolorbox'e,我想让它们都具有相同高度的标题部分。但是我的一些标题的字符位于基线下方,而其他标题则没有。因此,例如,“简介”和“结论”的标题框大小相同,但“背景”和“后续步骤”的标题框更高(因为“g”和“p”位于基线下方)。

我想要一个可以使用的宏,这样它们都具有相同的样式。到目前为止,我已经完成了...

\newtcolorbox{mybox}[1]
{
  colback=white,
  arc=5mm,
  boxsep=5mm,
  colframe=white,
  top=3mm,
  toptitle=3mm,
  bottomtitle=3mm,
  halign title=center,
  coltitle=blue!20!black,
  fonttitle=\Huge,
  title = #1
}

如何才能控制标题区域的总高度,而不依赖于标题中的字符?

答案1

您可以\strut在标题前面使用。

\documentclass{book}

\usepackage{tcolorbox}

\newtcolorbox{mybox}[1]
{
  colback=white,
  arc=5mm,
  boxsep=5mm,
  colframe=white,
  top=3mm,
  toptitle=3mm,
  bottomtitle=3mm,
  halign title=center,
  colbacktitle=blue,
  fonttitle=\Huge,
  title = \strut #1
}


\begin{document}

\begin{mybox}{mmm}
test
\end{mybox}

\begin{mybox}{tg}
test
\end{mybox}

\end{document}

在此处输入图片描述


正如 Alan Munn 指出的那样在他的评论中,您也可以使用adjusted title而不是title。有关此选项的更多信息,请参阅tcolorbox手册第 18 页。

\documentclass{book}

\usepackage{tcolorbox}

\newtcolorbox{mybox}[1]
{
  colback=white,
  arc=5mm,
  boxsep=5mm,
  colframe=white,
  top=3mm,
  toptitle=3mm,
  bottomtitle=3mm,
  halign title=center,
  colbacktitle=blue,
  fonttitle=\Huge,
  adjusted title = #1
}


\begin{document}

\begin{mybox}{mmm}
test
\end{mybox}

\begin{mybox}{tg}
test
\end{mybox}

\end{document}

(如果您的框在标题中使用了不同的字体系列,则它们的高度将会有所不同,因为第二种方法在内部使用\vphantom

相关内容