无法使用 mdframed 获取框架标题

无法使用 mdframed 获取框架标题
 \documentclass[12pt,twoside,notitlepage,reqno]{amsbook}%
 \usepackage{amsmath}
 \usepackage{amsfonts}
 \usepackage{amssymb}
 \usepackage{xcolor}
 \usepackage{thmtools}
 \usepackage[framemethod=tikz]{mdframed}
 \usepackage{lipsum}% just to generate text for the example

 \definecolor{greyframe}{gray}{0.85}
 \definecolor{greytitleframe}{gray}{0.80}

 \theoremstyle{definition}
 \newmdtheoremenv[
   backgroundcolor=greyframe,
   linecolor=black,
   roundcorner=5pt,
   linewidth=1pt,
   innerleftmargin=1cm,
   innerrightmargin=1cm,
   skipabove=1cm,
   skipbelow=1cm,
   frametitleaboveskip=12pt,
   frametitlebelowskip=6pt,
   frametitlerule=true,
   frametitlebackgroundcolor=greytitleframe
 ]{defn}{Definition}[chapter]

 \begin{document}

 \lipsum[4] 

 \begin{defn}[frametitle={Something Something Test}]
 \lipsum[4]
 \end{defn}

 \lipsum[4] 

 \end{document}

上述命令将产生以下输出:

在此处输入图片描述

尽管我在这里和 mdframed 文档中搜索过,但似乎还是有几个问题无法解决。第一个我无法解决的问题是,标题和主题之间没有分隔符。据我了解frametitlerule=true应该生产这样的分离器。

第二个问题是关于跳过空格。上面有空格,但下面没有空格。如果我设置为 skipabove=\topsep,那么我实际上会失去我的空间,而将 skipbelow 设置为那样也不会有任何效果。我知道一次只有一个问题,但我从昨晚开始就一直在尝试完成这些小事。有人有什么见解吗?

答案1

您能接受改为 吗tcolorbox

 \documentclass[12pt,twoside,notitlepage,reqno]{amsbook}%
 \usepackage{amsmath}
 \usepackage{amsfonts}
 \usepackage{amssymb}
 \usepackage{xcolor}
 \usepackage{thmtools}
 \usepackage[most]{tcolorbox}
 \usepackage{lipsum}% just to generate text for the example

 \definecolor{greyframe}{gray}{0.85}
 \definecolor{greytitleframe}{gray}{0.80}

 \theoremstyle{definition}
 \newtcbtheorem[number within=chapter]
 {defn}% <- environment name   
 {Definition}% <- printed name
 {
   colback=greytitleframe,
   colframe=black,
   colbacktitle=greytitleframe,
   coltitle=black
  }%<- box parameters
  {def}%<- label prefix

 \begin{document}

 \lipsum[4] 

 \begin{defn}{Something Something Test}{abc}
 \lipsum[4]
 \end{defn}

 As can be seen in Definition~\ref{def:abc} \dots

 \lipsum[4] 

 \end{document}

在此处输入图片描述

相关内容