如何使用 mdframed 包创建与 ascmac 包中的 itembox 环境相同的环境

如何使用 mdframed 包创建与 ascmac 包中的 itembox 环境相同的环境

我想使输出与下面显示的代码相同。但是由于某些原因(例如某些框架延伸到多个页面等),我不想使用ascmacpackage 而是mdframed使用 package。我应该在 mdframed 环境的序言或选项中写什么?

对不起,我的英语不好。

\documentclass{article}
\usepackage{ascmac}
\begin{document}
\begin{itembox}[l]{foo}
bar
\end{itembox}
\end{document}

答案1

这是一种方法,根据您的评论进行了更新。要获得圆形框,您需要将选项传递tikzmdframed。标题被提升,以便它碰到边界框。正如我们所使用tikz,我将标题放在一个带有白色背景的节点框中tikz,以覆盖规则。我们使用innertopmargin相应地向上移动内容,并调整innerbottomargin

要将此标题进一步向右移动,一种选择是使用tikz不可见的额外点使图片稍微宽一些,例如通过

frametitle={\tikz{\path (0,0) (20pt,0) node[anchor=base west,rectangle,fill=white] {\strut #1};}}

这将使标题框的左边缘20pt进一步向右移动。综合起来,我们得到:

示例输出

\documentclass{article}

\usepackage[tikz]{mdframed}

\newenvironment{itembox}[1]{\begin{mdframed}[roundcorner=10pt,
  frametitlefont=\normalfont,
  frametitleaboveskip=\dimexpr-0.7\baselineskip,skipabove=\topskip,
  innertopmargin=\dimexpr-0.65\baselineskip,
  innerbottommargin=\dimexpr0.65\baselineskip,
  frametitle={\tikz{\node[anchor=base,rectangle,fill=white] {\strut #1};}}]
}{\end{mdframed}}

\usepackage{lipsum} %for dummy text

\begin{document}

\begin{itembox}{foo}
  bar
\end{itembox}

\begin{itembox}{Longer title}
  \lipsum[1-6]
\end{itembox}

\end{document}

查看mdframed文档texdoc mdframed更多参数来调整间距。

相关内容