我如何修复 mdframed 框中的标题高度?

我如何修复 mdframed 框中的标题高度?

我正在尝试编写一个包含大量定义的 LaTeX 文档。为此,我决定创建一个mdframed环境(见下文),并将我的定义一个接一个地放在一个双列环境中。

\newmdenv[%
    frametitleaboveskip=5pt, frametitlebelowskip=5pt,
    backgroundcolor=white,frametitlerule=true,
    frametitlebackgroundcolor=black!20,linewidth=1pt,
    frametitlefont=\ttfamily
]{numframed}

基本上,这给了我一个简单的标题框,带有灰色标题和白色背景(用于定义本身)。但是,我注意到灰色标题的高度会有所不同。当第二列收到其第一个定义时,这尤其令人讨厌:

\begin{multicols*}{2}
    \begin{numframed}[frametitle=Text with letters going below line]
    \end{numframed}

    % ... other definitions until the end of the first column

    \begin{numframed}[frametitle=Text without these letters]
    \end{numframed}
\end{multicols*}

具有不规则高度的 mdframed 标题

如您所见,在第一列中,第一个定义的标题包含“低于线”的字母:g。第二列的第一个定义中没有这样的字母。在每种情况下,LaTeX 都会自然地将容器与内容相匹配。

现在,这两个框一个挨着一个,标题标题不对齐,这真的让我很烦恼。有没有办法让我修复标题标题的高度(然后可能将垂直对齐设置为居中)以便完全对齐标题区域?

答案1

\strut用于标题的一个选项:

\documentclass{article}
\usepackage{mdframed}
\usepackage{multicol}
\usepackage{xcolor}

\newmdenv[%
    frametitleaboveskip=5pt, frametitlebelowskip=5pt,
    backgroundcolor=white,frametitlerule=true,
    frametitlebackgroundcolor=black!20,linewidth=1pt,
    frametitlefont=\ttfamily,
    ]{numframedi}
\newenvironment{numframed}[2][]
  {\begin{numframedi}[#1,frametitle={\strut#2\strut}]}
  {\end{numframedi}}    

\begin{document}

\begin{multicols}{2}
    \begin{numframed}{Text with descenders py}
    \end{numframed}
    \begin{numframed}{Text with no descenders in two lines}
    \end{numframed}
    \begin{numframed}{Text with no descenders}
    \end{numframed}
    \begin{numframed}{Text with descenders in two lines py}
    \end{numframed}
\end{multicols}

\end{document}

在此处输入图片描述

新的语法numframed

\begin{numframed}[<options to mdframed>]{<title>}
(...contents...)
\end{numframed}

相关内容