5

I'm wanting to define an mdframe style "studies", by reference to mdframe style "mpdframe". In the example shown, the difference would be to add a frame title, "Studies".

The following code does not produce errors, but neither does it produce the desired effect.

%   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}

Can this be done another way?

Ideally, I want to define numerous styles in this way, by reference to this base style, rather than continually repeating the option commands.

johnbrc
  • 575

1 Answers1

7

You can simply use one style when defining another:

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

enter image description here

Notes:

  • You also need \usepackage[framemethod=tikz]{mdframed} when using tikz within mdframed.

Code:

\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}

Peter Grill
  • 223,288