我正在尝试编写一个包含大量定义的 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*}
如您所见,在第一列中,第一个定义的标题包含“低于线”的字母: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}