通过引用另一个样式来定义 mdframe 样式

通过引用另一个样式来定义 mdframe 样式

我想通过引用 mdframe 样式“mpdframe”来定义 mdframe 样式“studies”。在所示的示例中,不同之处在于添加框架标题“Studies”。

下面的代码不会产生错误,但也没有产生预期的效果。

%   Principal MPD frame type
\mdfdefinestyle{mpdframe}{
    frametitlebackgroundcolor   =black!15,
    frametitlerule          =true,
        roundcorner     =10pt,
        middlelinewidth     =1pt,
        innermargin     =0.5cm,
        outermargin     =0.5cm,
        innerleftmargin     =0.5cm,
        innerrightmargin        =0.5cm,
        innertopmargin      =\topskip,
        innerbottommargin   =\topskip,
            }
%   Studies
\mdfdefinestyle{studies}{%
\mdfapptodefinestyle{mpdframe}{frametitle={Studies}}
    }
\newmdenv[style=studies]{studies}

可以用其他方法完成吗?

理想情况下,我希望通过引用此基本样式来以这种方式定义多种样式,而不是不断重复选项命令。

答案1

style在定义另一个时,您可以简单地使用一个:

\mdfdefinestyle{studies}{%
    style=mpdframe,% <------ previously defined style
    frametitle={Studies},
}

在此处输入图片描述

笔记:

  • 使用\usepackage[framemethod=tikz]{mdframed}时也需要。tikzmdframed

代码:

\documentclass{article}
\usepackage{xcolor}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{lipsum}

%   Principal MPD frame type
\mdfdefinestyle{mpdframe}{
    frametitlebackgroundcolor   =black!15,
    frametitlerule          =true,
        roundcorner     =10pt,
        middlelinewidth     =1pt,
        innermargin     =0.5cm,
        outermargin     =0.5cm,
        innerleftmargin     =0.5cm,
        innerrightmargin        =0.5cm,
        innertopmargin      =\topskip,
        innerbottommargin   =\topskip,
            }
%   Studies
\mdfdefinestyle{studies}{%
        style=mpdframe,
        frametitle={Studies},
    }
\newmdenv[style=studies]{studies}

\begin{document}

\begin{studies}
\lipsum[1]
\end{studies}
\end{document}

相关内容