我正在尝试在定义周围放置一个框。使用 mdframed 包,我成功做到了这一点。但是,框太大,特别是太高,它遮住了定义上方和下方的文本。我正在使用
\newenvironment{bdefn}
{\begin{mdframed}\begin{defn}}
{\end{defn}\end{mdframed}}
创建“盒装定义”环境,然后我使用
\begin{bdefn}
(text)
\end{bdefn}
对于定义本身。
我尝试手动创建一个新的 mdframed 样式,该样式具有较小的边距,使用类似
\mdfdefinestyle{style1}{leftmargin=1cm,rightmargin=1cm,skipbelow=1cm,skipabove=1cm}.
该命令\mdfdefinestyle
和此格式均取自 mdframed 的文档。但是,当我将此行放入文档的序言中时,我收到了错误消息
"Undefined control sequence: \mdfdefinestyle{stlye1}{..."
有人能告诉我为什么命令\mdfdefinestyle
无法被识别吗?或者,有人能建议用其他方法在我的定义周围制作一个尽可能小的框吗?
答案1
style=style1
您必须使用类似(而不仅仅是)的样式style1
。进一步说,您可以使用\surroundwithmdframed[<options>]{environment}
用框架包围现有环境mdframed
。因此,要用defn
框架覆盖,您需要
\surroundwithmdframed[style=style1]{defn}
这是一个示例。
\documentclass{article}
\usepackage{amsthm}
\newtheorem{defn}{Definition}
\usepackage[framemethod=TikZ]{mdframed}
\mdfdefinestyle{style1}{leftmargin=1cm,rightmargin=1cm,skipbelow=1cm,skipabove=1cm,
innertopmargin=0pt}
\surroundwithmdframed[style=style1]{defn}
\begin{document}
\begin{defn}%
(text)
\end{defn}
\end{document}