<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% \iffalse meta-comment
% !TEX program = pdfLaTeX
%&lt;*internal&gt;
\iffalse
%&lt;/internal&gt;
%&lt;*readme&gt;
================================================================
================================================================
Working with the command \fbox or \fcolorbox, one has to
handle page breaks by hand. The present package defines the
environment mdframed which automatically deals with page breaks.

Author's name: Marco Daniel and Elke Schubert (supports tikz implementation)
License type: lppl

================================================================
The revision history is printed in the documentation.

================================================================
The current development is available at github:
https://github.com/marcodaniel/mdframed

================================================================
The package provides 
 * one dtx files,
 * one Makefile (compiling for Linux/Mac),
 * one mdframedmake.bat (compiling for Windows)
 * one personal documentclass ltxmdf.cls 
 * one example picture donald-duck.jpg 

By running the script `make all` you will
produce the following files:
- README.txt
- mdframed.sty
- mdframed.pdf
- md-frame-0.mdf
- md-frame-1.mdf
- md-frame-2.mdf
- md-frame-3.mdf
- mdframed-example-default.tex
- mdframed-example-default.pdf
- mdframed-example-tikz.tex
- mdframed-example-tikz.pdf
- mdframed-example-pstricks.tex
- mdframed-example-pstricks.pdf
- mdframed-example-texsx.tex  
- mdframed-example-texsx.pdf

I recommend the following installation in your texmf-tree:

/doc/latex/mdframed/
- README.txt
- mdframed.pdf
- mdframed-example-default.tex
- mdframed-example-default.pdf
- mdframed-example-tikz.tex
- mdframed-example-tikz.pdf
- mdframed-example-pstricks.tex
- mdframed-example-pstricks.pdf
- mdframed-example-texsx.tex  
- mdframed-example-texsx.pdf
- ctan-lion.png "CTAN lion drawing by Duane Bibby; thanks to www.ctan.org".


/source/latex/mdframed/
- Makefile
- mdframed.dtx

/tex/latex/mdframed
- mdframed.sty
- md-frame-0.mdf
- md-frame-1.mdf
- md-frame-2.mdf
- md-frame-3.mdf
- ltxmdf.cls
================================================================
================================================================
%&lt;/readme&gt;
%&lt;*internal&gt;
\fi
\def\nameofplainTeX{plain}
\ifx\fmtname\nameofplainTeX\else
  \expandafter\begingroup
\fi
%&lt;/internal&gt;
%&lt;*install&gt;
\input docstrip.tex
\keepsilent
\askforoverwritefalse
\preamble
----------------------------------------------------------------
Working with the command fbox or fcolorbox, one has to
handle page breaks by hand. The present package defines the
environment mdframed which automatically deals with page breaks.

Author's name: Marco Daniel and Elke Schubert (!new)
License type: lppl

==================================================
========Is based on the idea of framed.sty========
==================================================
===== Currently the package has a beta-Status ====
==================================================
 WITH THANKS TO (alphabetically):
 ROLF NIEPRASCHK
 HEIKO OBERDIEK
 HERBERT VOSS

 Copyright (c) 2010-2013 Marco Daniel

 This package may be distributed under the terms of the LaTeX Project
 Public License, as described in lppl.txt in the base LaTeX distribution.
 Either version 1.0 or, at your option, any later version.


=================================================
 Erstellung eines Rahmens, der am Seitenende keine
 horizontale Linie einfuegt
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
      _______________                            
      |    page 1   |                              
      |    Text     |                            
      |  __Text__   |                            
      |  | Text |   |                            
     P A G E B R E A K                           
      |  | Text |   |                            
      |  |_Text_|   |                            
      |    Text     |                            
      |____page 2___|                            
                                                 
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
==================================================

\endpreamble
\postamble

================================================================
Copyright (C) 2012 by Marco Daniel

This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License (LPPL), either
version 1.3c of this license or (at your option) any later
version.  The latest version of this license is in the file:

http://www.latex-project.org/lppl.txt

This work is "maintained" (as per LPPL maintenance status) by
Marco Daniel.

Have fun!

================================================================
\endpostamble
\usedir{tex/latex/mdframed}
\generate{\file{mdframed.sty}{\from{mdframed.dtx}{package}}}
\nopreamble\nopostamble\usedir{tex/latex/mdframed}
\generate{\file{md-frame-0.mdf}{\from{mdframed.dtx}{mdframedefault}}}
\nopreamble\nopostamble\usedir{tex/latex/mdframed}
\generate{\file{md-frame-1.mdf}{\from{mdframed.dtx}{mdframetikz}}}
\nopreamble\nopostamble\usedir{tex/latex/mdframed}
\generate{\file{md-frame-2.mdf}{\from{mdframed.dtx}{mdframepstricks}}}
\nopreamble\nopostamble\usedir{tex/latex/mdframed}
\generate{\file{md-frame-3.mdf}{\from{mdframed.dtx}{mdframepstricks}}}
\Msg{*********************************************************}
\Msg{*}
\Msg{* To finish the installation you have to move the}
\Msg{* following file into a directory searched by TeX:}
\Msg{*}
\Msg{* \space\space documentation.sty}
\Msg{*}
\Msg{* To produce the documentation run the file mdframed.dtx}
\Msg{* once through LaTeX. Then, run}
\Msg{*}
\Msg{* \space\space makeindex -s gglo.ist -o mdframed.gls mdframed.glo}
\Msg{* \space\space makeindex -s gind.ist mdframed.idx}
\Msg{*}
\Msg{* through makeIndex to produce the glossary.}
\Msg{* Finally, run PdfLaTeX once again.}
\Msg{*}
\Msg{* To create the examples run (pdf)latex on the tex-files.}
\Msg{*}
\Msg{* That's all!}
\Msg{*}
\Msg{* Happy TeXing!}
\Msg{*********************************************************}
%&lt;/install&gt;
%&lt;install&gt;\endbatchfile
%&lt;*internal&gt;
\usedir{source/latex/mdframed}
\generate{\file{mdframed.ins}
          {\from{mdframed.dtx}{install}}}

\nopreamble\nopostamble\usedir{doc/latex/mdframed}
\generate{\file{README.txt}
          {\from{mdframed.dtx}{readme}}}
\nopreamble\nopostamble\usedir{source/latex/mdframed}
\generate{\file{mdframed-example-default.tex}
          {\from{mdframed.dtx}{mdframed-example-default}}}
\nopreamble\nopostamble\usedir{source/latex/mdframed}
\generate{\file{mdframed-example-tikz.tex}
          {\from{mdframed.dtx}{mdframed-example-tikz}}}
\nopreamble\nopostamble\usedir{source/latex/mdframed}
\generate{\file{mdframed-example-pstricks.tex}
          {\from{mdframed.dtx}{mdframed-example-pstricks}}}
\nopreamble\nopostamble\usedir{source/latex/mdframed}
\generate{\file{mdframed-example-texsx.tex}
          {\from{mdframed.dtx}{mdframed-example-texsx}}}

\ifx\fmtname\nameofplainTeX
  \expandafter\endbatchfile
\else
  \expandafter\endgroup
\fi
%&lt;/internal&gt;
%&lt;*driver&gt;

\setcounter{errorcontextlines}{999}
\documentclass[parskip=false,11pt,]{ltxmdf}
\usepackage{pdfpages}
\usepackage[framemethod=TikZ]{mdframed}
\usetikzlibrary{shadows}
\surroundwithmdframed[middlelinecolor=ltxmdfblue,middlelinewidth=1pt,%
                      roundcorner=10pt,innertopmargin=0pt,%
                      leftmargin=1cm,rightmargin=1cm,%
                      innerleftmargin=-15pt,innerrightmargin=-15pt,%
                      ignorelastdescenders,%
                      settings={\lstset{resetmargins}},%
                      skipbelow=\topskip,skipabove=\topskip,%
                      innerbottommargin=0pt,backgroundcolor=gray!10]%
                     {tltxmdfexample}

\EnableCrossrefs
\CodelineIndex
\OnlyDescription
%%\RecordChanges
\begin{document}
  \DocInput{mdframed.dtx}
\end{document}
%&lt;/driver&gt;
% \fi
%
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&amp;
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \&lt;
%   Equals        \=     Greater than  \&gt;     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \GetFileInfo{mdframed.sty}
%
%
% \title{The \Pack{mdframed} package
%       \footnote{Extending the package \texttt{framed.sty}}}
% \subtitle{auto-split frame environment}
% \author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel},
%        \href{mailto:marco.daniel@mada-nada.de}{Elke Schubert}}
% \version{\mdversion}
% \date{\mdfmaindate}
% \introduction{The standard methods for framing text (\Cmd{fbox}
%              or \Cmd{fcolorbox}) require you to handle page breaks
%              by hand, meaning that you have to split the \Cmd{fbox}
%              into two. The present package defines the environment 
%              \Pack{mdframed} which automatically deals with pagebreaks
%              in framed text.\par
%              By defining new environments the user may choose between
%              several individual designs.%
%             \par\kern.5\baselineskip\noindent
%             Linked files:\quad
%              \begin{tabular}[t]{ll}
%               \url{mdframed-example-default.pdf} &amp;
%               \url{mdframed-example-tikz.pdf} \\
%               \url{mdframed-example-pstricks.pdf}  &amp;
%               \url{mdframed-example-texsx.pdf}
%              \end{tabular}
%             \par\kern.5\baselineskip\noindent
%             FYI:\quad\parbox[t]{.8\linewidth}{%
%                I create a repository for \Pack{mdframed}
%                on \href{https://github.com/marcodaniel/mdframed}{github}
%                where you can 
%                \href{https://github.com/marcodaniel/mdframed}{download}
%                the current development status.}%
% }
%
% \maketitle
%
% \vspace*{2\baselineskip} 
%
% \section{Motivation}
% Many users wish to (further) emphasize lemmata, definitions, proofs, etc. The
% package \Pack{mdframed} allows you to create environments with breakable 
% frames. I think an example is the best way to demonstrate its properties.
% 
% \newmdtheoremenv[%
%    outerlinewidth  = 2             ,%
%    roundcorner     = 10pt          ,%
%    leftmargin      = 40            ,%
%    rightmargin     = 40            ,%
%    backgroundcolor = yellow!40     ,%
%    outerlinecolor  = blue!70!black ,% 
%    innertopmargin  = \topskip      ,%
%    splittopskip    = \topskip      ,%
%    ntheorem        = true          ,% 
%   ]{theorem}{Theorem}[section]
% 
% \begin{theorem}[Pythagorean theorem]
%  In any right triangle, the area of the square whose side is the hypotenuse 
%  is equal to the sum of the areas of the squares whose sides are the two
%  legs.
%  
% \[ a^2+b^2=c^2 \]
% \end{theorem}
% 
% The frame was defined with the following settings.
% 
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}[columns=fixed,fontadjust=false]
 \newmdtheoremenv[%
    outerlinewidth  = 2             ,%
    roundcorner     = 10pt          ,%
    leftmargin      = 40            ,%
    rightmargin     = 40            ,%
    backgroundcolor = yellow!40     ,%
    outerlinecolor  = blue!70!black ,% 
    innertopmargin  = \topskip      ,%
    splittopskip    = \topskip      ,%
    ntheorem        = true          ,% 
   ]{theorem}{Theorem}[section]
 \begin{theorem}[Pythagorean theorem]
 ...
 \end{theorem}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% 
% 
% \section{Syntax}\label{sec:syntax}
% 
% \minisec{Required packages by \Pack{mdframed}}
% The package itself loads the packages 
%  \begin{center}
%   \Pack{kvoptions}\qquad\Pack{xparse}\qquad\Pack{etoolbox}
%   \quad\Pack{color}.
%  \end{center}
% Depending on the option \Opt{framemthod} \Pack{mdframed} will load
%  \begin{center}
%   \Pack{xcolor}\qquad\Pack{tikz}\qquad\Pack{pstricks}.
%  \end{center}
% 
% Load the package as usual:
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
  \usepackage[&lt;GLOBAL OPTIONS&gt;]{mdframed}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% 
% Only the option \Opt{framemethod} should be loaded by the 
% optional argument of \Cmd{usepackage}. All other options
% should be loaded with \Cmd{mdfsetup} or related environments.
% The package should be loaded after \Pack{amsthm} if you need the package.
% \minisec{Provided environment}
% The package defines only one environment with the following syntax:
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
  \begin{mdframed}[&lt;LOCAL OPTIONS&gt;]
     &lt;CONTENT&gt;
  \end{mdframed}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% To create own environments with \Pack{mdframed} see section \ref{sec:cmds}.
% 
% \minisec{Autodetecting floats}
% \Pack{mdframed} detects whether the environment is used inside \Pack{float}
% or \Pack{minipage} environments. If you use \Pack{mdframed} in such
% an environment \Pack{mdframed} will use the option \Opt{nobreak} 
% automatically. 
% 
% 
% 
% %%%%%%%%%%%%%%%%%%%%%%%
% \section{The frames}\label{sec:frames}
% 
% Normally you can say \Pack{mdframed} draws only some lines. 
% To allow page breaks the following designs are supported. 
% If you load the package with \Opt{framemethod=default} you 
% can only draw a single line. Inside the gray boxes of the images below 
% the text will be printed.
% \newcommand\Punkt[2][below]{%
% 	\node[label=#1:#2] at (#2){\tikz\fill(0,0)circle(0.05);};}
% \newcommand\Single[1][]{\path[#1] (O)--(O|-P)--(P)--(P|-O)--cycle;}
% \newcommand\FirstSecond[1][]{\path[#1] (O|-P)--(O)--(P|-O)--(P);}
% \newcommand\MiddleFlaeche[1][]{\path[#1] (O)--(O|-P)--(P)--(P|-O);}
% \newcommand\MiddleLinien[1][]{\path[#1] (O)--(O|-P)(P)--(P|-O);}
% \begin{center}
% \vspace*{2\baselineskip}
% \null\hfill
% \begin{tikzpicture}[baseline=(current bounding box.north)]
% 	\coordinate (O) at (0,0);
% 	\pgfmathsetlengthmacro\x{4cm+2mm+6mm}
% 	\pgfmathsetlengthmacro\y{2cm+2mm+6mm}
% 	\coordinate (P) at (\x,\y);
% 	\begin{scope}
% 		\Single[line width=3mm,draw=blue!20]
% 		\Single[clip]
% 		\Single[fill=gray!70]
% 		\Single[line width=7mm,draw=green!20]
% 	\end{scope}
% 	\Single[line width=2mm,draw=red!20,use as bounding box]
% 	\node[anchor=south,font=\bfseries,text width=4cm,align=center] %
%        at (24mm,35mm) {Frame of a single page};
% \end{tikzpicture}%
% \hfill%
% \begin{tikzpicture}[baseline=(current bounding box.north)]
% 	\coordinate (O) at (0,0);
% 	\pgfmathsetlengthmacro\x{4cm+2mm+6mm}
% 	\pgfmathsetlengthmacro\y{-2cm-1mm-3mm}
% 	\coordinate (P) at (\x,\y);
% 	\begin{scope}
% 		\FirstSecond[line width=3mm,draw=blue!20]
% 		\FirstSecond[clip]
% 		\FirstSecond[fill=gray!70]
% 		\FirstSecond[line width=7mm,draw=green!20]
% 	\end{scope}
% 	\FirstSecond[line width=2mm,draw=red!20,use as bounding box]
% 	\node[anchor=south,font=\bfseries,text width=4cm,align=center] 
%            at (2.4,0.7) {First box -- first part of the output};
% \end{tikzpicture}
% \hfill\null
% 
% \vspace{3\baselineskip}
% 
%  \null\hfill
% \begin{tikzpicture}[baseline=(current bounding box.north)]
% 	\coordinate (O) at (0,0);
% 	\pgfmathsetlengthmacro\x{4cm+2mm+6mm}
% 	\pgfmathsetlengthmacro\y{2cm+1mm+3mm}
% 	\coordinate (P) at (\x,\y);
% 	\begin{scope}
% 		\FirstSecond[line width=3mm,draw=blue!20]
% 		\FirstSecond[clip]
% 		\FirstSecond[fill=gray!70]
% 		\FirstSecond[line width=7mm,draw=green!20]
% 	\end{scope}
% 	\FirstSecond[line width=2mm,draw=red!20,use as bounding box]
% 	\node[anchor=south,font=\bfseries,text width=4cm,align=center] %
%        at (24mm,25mm) {Second box -- last part of the output};
% \end{tikzpicture}%
% \hfill%
% \begin{tikzpicture}[baseline=(current bounding box.north)]
% 	\coordinate (O) at (0,0);
% 	\pgfmathsetlengthmacro\x{4cm+2mm+6mm}
% 	\pgfmathsetlengthmacro\y{2cm}
% 	\coordinate (P) at (\x,\y);
% 	\begin{scope}
% 		\MiddleLinien[line width=3mm,draw=blue!20]
% 		\MiddleFlaeche[clip]
% 		\MiddleFlaeche[fill=gray!70]
% 		\MiddleLinien[line width=7mm,draw=green!20]
% 	\end{scope}
% 	\MiddleLinien[line width=2mm,draw=red!20,use as bounding box]
% 	\node[anchor=south,font=\bfseries,text width=4cm,align=center] 
%        at (24mm,20mm) {Middle box -- middle part of the output};
% \end{tikzpicture}
% \hfill\null
% 
% \captionof{figure}{The basic frames}\label{fig:basicframes}
%\end{center} 
% %%%%%%%%%%%%%%%%%%%%%%%
% \section{Commands}\label{sec:cmds}
%
% The following commands should countenance your by the handling with 
% \Pack{mdframed}.
% 
% \ExplCmd{newmdenv[options]\{env-name\}} The command allows the definition of a new environment
% which is surrounded by \Env{mdframed}. The command has the following syntax:
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
 \newmdenv[&lt;MDFRAMED OPTIONS&gt;]{Name of the environment}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% In this way you can say:
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
  \newmdenv[linecolor=red,frametitle=Infobox]{infobox}

  \begin{infobox}[backgroundcolor=yellow]
   Some Infos\ldots
  \end{infobox}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% \ExplCmd{renewmdenv[options]\{env-name\}} 
%      By using this command you can redefine environments which are created by
%      \Cmd{newmdenv}.
% 
% \ExplCmd{surroundwithmdframed[options]\{environment\}} 
%      Sometimes you have predefined environments. This commands allows you to 
%      surround an predefined \Env{environment} with \Env{mdframed} without
%      changing the original name. To set a \Env{mdframed} around the
%       environment \Env{verbatim} you can simple say.
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
  \surroundwithmdframed[linewidth=2pt]{verbatim}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
%
% 
% \ExplCmd{mdflength\{options\}} 
%     If you want to work with length defined by \Pack{mdframed} (for example
%     \Opt{innerleftmargin}) you can use the command \Cmd{mdflength}.
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
  The distance is \hspace{\mdflength{innerleftmargin}} 
  \the\mdflength{innerleftmargin}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% The result will be:
% \begin{center}
%  The distance is \hspace{\mdflength{innerleftmargin}} \the\mdflength{innerleftmargin}
% \end{center}
%
% 
% \ExplCmd{mdfsetup\{options\}}To set the options 
% you can use the optional argument of \Cmd{usepackage} or
% you can use the command \Cmd{mdfsetup} which is not limited to the preamble.
% Inside a group the settings work only local.\par
% \textbf{\color{red!70!black}At this point I want to recommend the usage of
% the command \Cmd{mdfsetup} instead of setting package option via the optional
% argument of \Cmd{usepackage}. So you are avoiding breaking of non robust 
% commands.}^^A
% \footnote{Thanks to Heiko Oberdiek and Philipp Stephani
% \href{https://groups.google.com/group/de.comp.text.tex/^^A
%       browse_thread/thread/15c5ad290490d426?hl=de}^^A
%       {kvoptions-Declaration von Optionen schl\"agt fehl}}
% The sole exception is the option \Opt{framemethod} which must given as an optional 
% argument of \Cmd{usepackage}.
%
% 
% 
% 
% \section{Defining your own style}
% In the next section all options are introduced. However instead of
% passing them global or as an optional argument of the environment
% you can define your own styles. The method is as follows
% \ExplCmd{mdfdefinestyle\{style name\}\{options\}} 
%   \Cmd{mdfdefinestyle} allows the user to define different styles which can
%   be used as an option of \Pack{mdframed} via \Opt{style}. 
% \ExplCmd{mdfapptodefinestyle\{style name\}\{options\}} 
%      This commands add options to a defined style.\footnote{Thanks
%       to Martin Scharrer and Enrico Gregorio:\newline
%      \href{http://tex.stackexchange.com/questions/34684/argument-of-setkeys}
%           {http://tex.stackexchange.com/questions/34684/argument-of-setkeys}}
% \ExplOpt{style} 
%      If you define a special style with \Cmd{mdfdefinestyle} you can use
%      the key \Opt{style} to load the style. \Pack{mdframed} has
%      no predefined styles yet.
%
% Here a small example:
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}[morekeywords={mystyle}]
 \mdfdefinestyle{mystyle}{leftmargin=1cm,linecolor=blue}
 \begin{mdframed}[style=mystyle]
  foo
 \end{mdframed}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% 
% 
% %%%%%%%%%%%%%%%%%%%%%%%
% \section{Options}
% The package provides various options to manipulate frames. In the following 
% section all options are listed. Some internal macros which can be manipulated
% are not shown in this documentation.
% The listed options are divided in global and local options. The global 
% options can not be used inside \Cmd{mdfsetup}.
% 
% \subsection{Global Options}\label{globopt}
% The following options are only global options.
% 
% \ExplOpt[none]{xcolor}
% By setting this key, the package \Pack{xcolor} will
% be loaded with the given value(s). Without any value \mbox{\Pack{mdframed}} 
% loads the package \Pack{color} without any options. If the package 
% \Pack{xcolor} is already loaded the given option will be ignored. 
% I recommend to load \Pack{xcolor} before \Pack{mdframed}.
% 
% \ExplOpt[default]{framemethod} 
%     With this key you can change the way frames are drawn. You can decide
%     whether the frame is drawn with
% \begin{enumerate}
%  \item \LaTeX-commands {\small\Cmd{hrule}, \Cmd{vrule}, \Cmd{rule}},
%  \item \Pack{TikZ} {\small(the package \Pack{TikZ} will be loaded)} or
%  \item \Pack{PSTricks} {\small(the package \Pack{pstricks} will be loaded)}.
% \end{enumerate}
% The option \Opt{framemethod} requires a string. Allowed combinations are
% listed in the following table.
% \begin{center}
% \renewcommand*\arraystretch{1.3}
% \captionof{table}{Allowed keys for \Opt{framemethod}}
% \begin{tabular}{@{}&gt;{\small\bfseries}l&gt;{\small\ttfamily}l@{}}
%  \toprule
%   \multicolumn{1}{@{}l}{\textbf{Method}} &amp; \multicolumn{1}{l}{Allowed keys}\\
%  \midrule
%   \LaTeX-commands   &amp; default, tex, latex, none, 0  \\
%   \Pack{TikZ}     &amp; tikz, pgf, 1                  \\
%   \Pack{PSTricks} &amp; pstricks, ps, postscript, 2   \\
%  \bottomrule
% \end{tabular}
% \end{center}
%
% If you are lazy you can also work with the following short forms:
% \Opt{tikz}, \Opt{TikZ}, \Opt{pstricks}, \Opt{PSTricks} or \Opt{ps}. Of
% course for the default method exists no key. 
%
% \minisec{FYI}
% It is independently whether the \texttt{method} is 
% written with no, one or more capital letter.
% 
% All other options listed below can be set globally or locally and they are not
% limited to the preamble. I was trying to define self explained names.
%
% \subsection{Restoring the settings}
% Sometimes it's useful to remove all done settings. Every default value 
% is saved in a style wich can be called by the option \Opt{default} or 
% a more suitable
% name \Opt{style=defaultoptions}. Both do the same.
%
% Here a small example:
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}[morekeywords={mystyle}]
 \mdfsetup{%
   middlelinecolor=red,
   middlelinewidth=2pt,
   backgroundcolor=red!10,
   roundcorner=10pt}
 \begin{mdframed}
  Text\par Text
 \end{mdframed}

 \begin{mdframed}[default]
  Text\par Text
 \end{mdframed}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% 
% \begin{mdframed}[%
% backgroundcolor=yellow!70!brown,linewidth=1.5pt,
% roundcorner=8pt,linecolor=brown!70!black,innerleftmargin=10pt]
%  \mdfsetup{default,
%   middlelinecolor=red,
%   middlelinewidth=2pt,
%   backgroundcolor=red!10,
%   roundcorner=10pt}
% \begin{mdframed}
%  Text\par Text
% \end{mdframed}
%
% \begin{mdframed}[default]
%  Text\par Text
% \end{mdframed}
% \end{mdframed}
%
%
%
% \subsection{Options with lengths}\label{optlength}
% 
% In figure \eqref{fig:laengen} you can see the adjustable lengths 
% (compare also figure \eqref{fig:basicframes}).
% 
% \begin{center}
% \begin{tikzpicture}[scale=0.9]
%      %Declaration
%      \newlength{\linew}
%      \setlength{\linew}{5pt}
%      \tikzstyle{every node}=[font=\bfseries\large\sffamily]
%      \coordinate (innersep) at (3.2,2.25);
%      \coordinate (outersep) at (3.2,2);
%      %Center
%      \node[fill=green!10,draw=black,framed,rounded corners,
%            minimum width=3cm,minimum height=1.5cm]%
%            (CenterNode) {Contents};
%      
%      %frames
%      \draw[draw=red!70!black,line width=\linew] %
%                ($(CenterNode)+(innersep)$) %
%                rectangle ($(CenterNode)-(innersep)$);
%      \draw[draw=blue!70!black,line width=\linew] %
%                ($(CenterNode)+(innersep)+(\linew,\linew)$)%
%                rectangle ($(CenterNode)-(innersep)+(-\linew,-\linew)$);
%      \draw[draw=yellow!70!black,line width=\linew]
%                ($(CenterNode)+(innersep)+(2\linew,2\linew)$)%
%                rectangle ($(CenterNode)-(innersep)+(-2\linew,-2\linew)$);
%      \draw[draw=black,line width=1] ($(CenterNode)+(innersep)+(outersep)$)%
%                rectangle ($(CenterNode)-(innersep)-(outersep)$);
%      
%      
%      \tikzstyle{every node}=[font=\small\ttfamily]
%      %%innertopmargin
%      \draw[draw=black,triangle 45-triangle 45]let \p1=(innersep) in
%            (CenterNode.north)  -- ($(CenterNode)+(0,\y1)-(0,.5\linew)$) ;
%      \path let \p1=(innersep) in
%            (CenterNode.north)
%            edge 
%            node[align=center,framed,fill=white,draw=white]{innertopmargin} 
%            ($(CenterNode)+(0,\y1)-(0,.5\linew)$) ;
%      %%innerbottommargin
%      \draw[draw=black,triangle 45-triangle 45]let \p1=(innersep) in
%            (CenterNode.south)  -- ($(CenterNode)-(0,\y1)+(0,.5\linew)$) ;
%      \path let \p1=(innersep) in
%            (CenterNode.south)  
%            edge 
%            node[align=center,framed,fill=white,draw=white]{innerbottommargin}
%            ($(CenterNode)-(0,\y1)+(0,.5\linew)$) ;
%      
%      %%innerleftmargin
%      \draw[draw=black,triangle 45-triangle 45]let \p1=(innersep) in
%            (CenterNode.west)  -- ($(CenterNode)-(\x1,0)+(.5\linew,0)$) ;
%      \path let \p1=(innersep) in
%            (CenterNode.west)  edge 
%            node[align=center,rotate=90,framed,fill=white,draw=white]
%                {innerleftmargin}  
%            ($(CenterNode)-(\x1,0)+(.5\linew,0)$) ;
%      %%innerrightmargin
%      \draw[draw=black,triangle 45-triangle 45]let \p1=(innersep) in
%            (CenterNode.east)  -- ($(CenterNode)+(\x1,0)-(.5\linew,0)$) ;
%      \path let \p1=(innersep) in
%            (CenterNode.east)  edge
%            node[align=center,rotate=90,framed,fill=white,draw=white]
%               {innerrightmargin}  
%            ($(CenterNode)+(\x1,0)-(.5\linew,0)$) ;
%      
%      
%      %%leftmargin
%      \draw[draw=black,triangle 45-triangle 45]
%            let \p1=(innersep) , \p2=(outersep) in
%            ($(CenterNode)-(\x1,0)-(2.5\linew,0)$)  --
%            ($(CenterNode)-(\x1,0)-(\x2,0)$) ;
%      \path let \p1=(innersep) , \p2=(outersep) in
%            ($(CenterNode)-(\x1,0)-(2.5\linew,0)$)  edge 
%            node[align=center,rotate=0,framed,fill=white,draw=white]
%                {leftmargin}  
%            ($(CenterNode)-(\x1,0)-(\x2,0)$) ;
%      %%rightmargin
%      \draw[draw=black,triangle 45-triangle 45]
%            let \p1=(innersep) , \p2=(outersep) in
%            ($(CenterNode)+(\x1,0)+(2.5\linew,0)$)  --
%            ($(CenterNode)+(\x1,0)+(\x2,0)$) ;
%      \path let \p1=(innersep) , \p2=(outersep) in
%            ($(CenterNode)+(\x1,0)+(2.5\linew,0)$)  edge 
%            node[align=center,rotate=0,framed,fill=white,draw=white]
%            {rightmargin}  
%            ($(CenterNode)+(\x1,0)+(\x2,0)$)  ;
%      
%      %%skipabove
%      \draw[draw=black,triangle 45-triangle 45]
%            let \p1=(innersep) , \p2=(outersep) in
%            ($(CenterNode)+(0,\y1)+(0,2.5\linew)$)  -- 
%            ($(CenterNode)+(0,\y1)+(0,\y2)$) ;
%      \path let \p1=(innersep) , \p2=(outersep) in
%            ($(CenterNode)+(0,\y1)+(0,2.5\linew)$)  edge 
%            node[align=center,rotate=0,framed,fill=white,draw=white]
%                {skipabove}
%            ($(CenterNode)+(0,\y1)+(0,\y2)$) ;
%      %%skipbelow
%      \draw[draw=black,triangle 45-triangle 45]
%            let \p1=(innersep) , \p2=(outersep) in
%            ($(CenterNode)-(0,\y1)-(0,2.5\linew)$)  -- 
%            ($(CenterNode)-(0,\y1)-(0,\y2)$) ;
%      \path let \p1=(innersep) , \p2=(outersep) in
%            ($(CenterNode)-(0,\y1)-(0,2.5\linew)$)  edge 
%            node[align=center,rotate=0,framed,fill=white,draw=white]
%                {skipbelow}
%            ($(CenterNode)-(0,\y1)-(0,\y2)$) ;
% \end{tikzpicture}
% 
%  \captionof{figure}{adjustable lengths of \Pack{mdframed}}
%  \label{fig:laengen}
% \end{center}
% 
% \ExplOpt[pt]{defaultunit}
% All lengths accept two kinds of input. The first one is a length (e.g. 2pt) 
% and the second one is a number (e.g. 2) which will be multiplied by 
% \Opt{1 defaultunit}. To get a better overview, all length options with their
% default value are listet in a table. I think the names are self explained 
% so that don't describe it anymore. Although special hints and length are 
% described below
%
% 
% The first table lists the length for the geometry of the frame.
% \begin{center}
% \def\arraystretch{1.4}
% \begin{tabular}{@{}%
% 	  &gt;{\Opt\bgroup}l&lt;{\egroup}@{${}={}$}&gt;{\ttfamily}l%
%   @{\qquad}
% 	  &gt;{\Opt\bgroup}l&lt;{\egroup}@{${}={}$}&gt;{\ttfamily}l%
% 	  @{}}
%    \hline
% 	  skipabove       &amp; 0pt  &amp; skipbelow         &amp; 0pt  \\
% 	  leftmargin      &amp; 0pt  &amp; rightmargin       &amp; 0pt  \\
% 	  innerleftmargin &amp; 10pt &amp; innerrightmargin  &amp; 10pt \\
% 	  innertopmargin  &amp; 5pt  &amp; innerbottommargin &amp; 5pt  \\
%    \hline
% \end{tabular}
% \end{center}
% Before the next options are introduced here an example where the described
% length are used.
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}[morekeywords={mystyle}]
 \mdfdefinestyle{mdfexample1}{leftmargin=1cm,rightmargin=2cm,%
   innerleftmargin=1cm,innerrightmargin=1cm,roundcorner=10pt}
 \begin{mdframed}[style=mdfexample1]
   In any right triangle, the area of the square whose side is the hypotenuse 
   is equal to the sum of the areas of the squares whose sides are the two
   legs.
 \end{mdframed}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% \begin{mdframed}[%
% backgroundcolor=yellow!70!brown,linewidth=1.5pt,
% roundcorner=8pt,linecolor=brown!70!black,innerleftmargin=10pt]
% \mdfdefinestyle{mdfexample1}{default,leftmargin=1cm,rightmargin=2cm,%
%   innerleftmargin=2cm,innerrightmargin=1cm,roundcorner=10pt}
% \begin{mdframed}[style=mdfexample1]
%   In any right triangle, the area of the square whose side is the hypotenuse 
%   is equal to the sum of the areas of the squares whose sides are the two
%   legs.
% \end{mdframed}
% \end{mdframed}
%
%
% The next table lists the options to manipulate the lines of \Env{mdframed}. 
% If you are working with \Opt{framemethod=default} you have only one line
% for framing.
% \begin{center}
% \def\arraystretch{1.4}
% \begin{tabular}{@{}%
% 	&gt;{\Opt\bgroup}l&lt;{\egroup}@{${}={}$}&gt;{\ttfamily}l%
%   @{\qquad}
% 	&gt;{\Opt\bgroup}l&lt;{\egroup}@{${}={}$}&gt;{\ttfamily}l%
%   @{\qquad}
% 	&gt;{\Opt\bgroup}l&lt;{\egroup}@{${}={}$}&gt;{\ttfamily}l%
% 	@{}}
%     \hline
% 	     linewidth       &amp; 0.4pt  &amp; innerlinewidth &amp; 0pt  &amp;
% 	     middlelinewidth &amp; 0.4pt \\
% 	     outerlinewidth  &amp; 0pt    &amp; roundcorner     &amp; 0pt &amp;   
%        \multicolumn{2}{c}{}    \\
%      \hline
% \end{tabular}
% \end{center}
% If you are working width \Opt{framemethod=tikz} or \Opt{framemethod=pstricks}
% the option \Opt{linewidth} is an alias for the option \Opt{middlelinewidth}.
% 
% 
% \subsection{Colored Options}
% Now we want to bring some color on your frames. The limitation is equal
% the the length options. For \Opt{framemethod=default} you have only one
% line.
% \begin{center}
% \def\arraystretch{1.4}
% \begin{tabular}{@{}%
% 	&gt;{\Opt\bgroup}l&lt;{\egroup}@{${}={}$}&gt;{\ttfamily}l%
%   @{\qquad}
% 	&gt;{\Opt\bgroup}l&lt;{\egroup}@{${}={}$}&gt;{\ttfamily}l%
% 	@{}}
%     \hline
% 	     linecolor       &amp; black  &amp; innerlinecolor  &amp; black  \\
% 	     middlelinecolor &amp; black  &amp; outerlinecolor  &amp; black  \\
%        backgroundcolor &amp; white  &amp; fontcolor       &amp; black  \\
%      \hline
% \end{tabular}
% \end{center}
% 
% \ExplOpt[\{\}]{font} 
% Although it's no really a color options you can also specify the font 
% of the contents. Therefor the option \Opt{font} can be used. 
%
% Ok after we have some lengths and some colors we can improve our example.
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}[morekeywords={example1}]
 \mdfapptodefinestyle{example1}{backgroundcolor=brown!20,%
    linecolor=red!40!black,linewidth=4pt}
 \begin{mdframed}[style=mdfexample1]
   In any right triangle, the area of the square whose side is the hypotenuse 
   is equal to the sum of the areas of the squares whose sides are the two
   legs.
 \end{mdframed}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% \begin{mdframed}[%
% backgroundcolor=yellow!70!brown,linewidth=1.5pt,
% roundcorner=8pt,linecolor=brown!70!black,innerleftmargin=10pt]
% \mdfdefinestyle{mdfexample1}{default,leftmargin=1cm,rightmargin=2cm,%
%   innerleftmargin=2cm,innerrightmargin=1cm,roundcorner=10pt,%
%   backgroundcolor=brown!20,linecolor=red!40!black, linewidth=4pt}
% \begin{mdframed}[style=mdfexample1]
%   In any right triangle, the area of the square whose side is the hypotenuse 
%   is equal to the sum of the areas of the squares whose sides are the two
%   legs.
% \end{mdframed}
% \end{mdframed}
%
%
%
% \subsection{Shadows}\label{sec:shadow}
% Another possibility to highlight a frame can be a shadow. The package
% \Pack{mdframed} supports some elementary options to add a shadow. For
% \Opt{framemethod=tikz} the library \Pack{shadows} is needed which must be
% loaded by the user by \verb+\usetikzlibrary{shadows}+.
% \ExplOpt[8\,pt]{shadowsize}
% \ExplOpt[black!50]{shadowcolor}
% If a shadow is used depends on the option \Opt{shadow} which can be either
% \texttt{true} or \texttt{false}. The option shadows enables two new options
% \Opt{shadowsize} and \Opt{shadowcolor}. 
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}[morekeywords={example1}]
 \begin{mdframed}[backgroundcolor=gray!40,shadow=true,roundcorner=8pt]
   In any right triangle, the area of the square whose side is the hypotenuse 
   is equal to the sum of the areas of the squares whose sides are the two
   legs.
 \end{mdframed}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% \begin{mdframed}[backgroundcolor=gray!40!white,shadow=true,roundcorner=8pt]
%   In any right triangle, the area of the square whose side is the hypotenuse 
%   is equal to the sum of the areas of the squares whose sides are the two
%   legs.
% \end{mdframed}
%
%
% \subsection{Hidden Lines}
% The default behaoiur of the output was shown in a previous picture. 
% \Pack{mdframed} offers the possibility to print only requested lines. If
% you don't want any right line you can say \Opt{rightline=false}. The 
% table below listed all keys to this topic and shows their default setting.
% \begin{center}
% \def\arraystretch{1.4}
% \begin{tabular}{@{}%
% 	&gt;{\Opt\bgroup}l&lt;{\egroup}@{${}={}$}&gt;{\ttfamily}l%
%   @{\qquad}
% 	&gt;{\Opt\bgroup}l&lt;{\egroup}@{${}={}$}&gt;{\ttfamily}l%
% 	@{}}
%     \hline
% 	     topline  &amp; true  &amp; rightline  &amp; true  \\
% 	     leftline &amp; true  &amp; bottomline &amp; true  \\
%      \hline
% \end{tabular}
% \end{center}
% \ExplOpt[false]{hidealllines} 
% If you want to disable all lines you can use the short from
% \Opt{hidealllines}.
%
%
% \subsection{Working in twoside-mode}
% 
% Many books are written in \texttt{twoside} mode. In those cases it's 
% better to set the margins related to the site. Instead of the 
% explained options \Opt{leftmargin} and \Opt{rightmargin} you can work with the
% options \Opt{outermargin} and \Opt{innermargin}. Of course if you working
% in \texttt{oneside} mode the options have no effect. If you don't want to
% work with \Opt{outermargin} and \Opt{innermargin} whether the document is
% done in \texttt{twoside} mode you can disable the behaviour by the option
% \Opt{usetwoside}. Allowed values for this key are \texttt{true} or
% \texttt{false}.
% 
%
% \subsection{Footnotes}
% Inside the environment you can use the command \Cmd{footnote} as usual.
% \Pack{mdframed} uses the syntax of environment \Pack{minipage} with
% the same counter.
% 
% Every footnote text will be collected inside a box and will be displayed
% at the end of the environment \Pack{mdframed}. 
% 
% \ExplOpt[\mbox{} \Cmd{bigskipamount}]{footnotedistance} 
%      The length is the distance between the end of the environment
%      \Pack{mdframed} and the displaying of the \Cmd{footnoterule}.
% \ExplOpt[true]{footnoteinside} 
%      The position of the footnotes can be changed with the option 
%      \Opt{footnoteinside}. The footnotes will be displayed at the end 
%      of the environment but you can decide whether the output is inside 
%      \Pack{mdframed} or after.
% 
% \minisec{Note}
% The output of the footnotes with the option \Opt{footnoteinside=false}
% are not in a splitted frame. I think it isn't useful because the first line
% of a new page shouldn't be a footnote.
%
%
%
%
%\subsection{Page breaks}
% The package \Pack{mdframed} splits its content if neccessary. In figure
% \ref{fig:basicframes} the default style for splitting is presented. However
% there a sevaral situations where no page preak should occur. 
% \ExplOpt[false]{nobreak} 
% For this case you can use the option \Opt{nobreak} which is either
% \texttt{true} or \texttt{false}. As you can see in figure 
% \ref{fig:basicframes} the different elements have different ways of drawing.
% E.g. the middle part of \Pack{mdframed} has only a left and a right line.
% 
% \ExplOpt[false]{everyline} 
% If you want that all parts of \Pack{mdframed} get a whole frame you can work
% with the option \Opt{everyline}. Then all parts are displayed as a single
% frame.
%
% In a previous section the options \Opt{innertopmargin} and 
% \Opt{innerbottommaring} were introduced. However if a page break occurs
% you have two new length options which influence the space at the breaking
% point.
% \ExplOpt[0\,pt]{splittopskip} 
%   Sets the length of the skip above the split part of the environment.
% \ExplOpt[0\,pt]{splitbottomskip} 
%   Sets the length of the skip below the split part of the environment.
% 
% \subsection{Frametitle}
% In this section all relevant options of the frame title will be presented.
% They are not divided in their properties.
% 
% \ExplOpt[none]{frametitle} 
%      The environment gets a title. To set a title use 
%      \Opt{frametitle=\{The Title of the frame\}} as an option of the 
%      environment.
% \ExplOpt[\Cmd{normalfont}\Cmd{bfseries}]{frametitlefont}
%      Sets the format of the \Opt{frametitle}.
% \ExplOpt[\Cmd{raggedleft}]{frametitlealignment}
%      Align the \Opt{frametitle}. This option must be set via \Cmd{mdfsetup}.
% \ExplOpt[false]{frametitlerule} 
%      Set this key to \Opt{true} to get a line between the frame title
%      and the text.
% \ExplOpt[.2\,pt]{frametitlerulewidth}
%      Sets the width of the line between the text and the title of 
%      \Env{mdframed}.
% \ExplOpt[5\,pt]{frametitleaboveskip}
%      Sets the skip of the frame title to the margin above of \Env{mdframed}.
% \ExplOpt[5\,pt]{frametitlebelowskip}
%      Sets the skip of the frame title to the rule of the frame title.
% \ExplOpt[backroundcolor]{frametitlebackgroundcolor}
%      Sets the color of the background of the frametitle
% \ExplOpt[false]{repeatframetitle}
%      Repeat the frame title on every frame. 
%
%
% The following picture demonstrates the behaviour of the lengths if the option
% \Opt{frametitle} is used.
% 
% \begin{center}
% \begin{tikzpicture}[scale=0.9]
%      %Declaration
%      \tikzstyle{every node}=[font=\bfseries\large\sffamily]
%      \coordinate (innersep) at (3.2,2.25);
%      \coordinate (outersep) at (3.2,2);
%      %Center box
%      \node[fill=green!10,draw=red!70!black,very thick,fill opacity=.2,
%            text opacity=1,minimum width=9cm,minimum height=3cm,]%
%            (CenterNode) {Contents of the box};
%      %frametitle box
%      \node[fill=yellow!70,draw=red!70!black,very thick,fill opacity=.2,
%            text opacity=1,minimum width=9cm,minimum height=3cm,anchor=south]%
%            at (CenterNode.north) (frametitle) {frame title};
% % frametitlerule
%     \draw[line width=3pt,blue!60!black] (frametitle.south west) 
%                                      -- (frametitle.south east)
%              node[pos=1,anchor=west,text width=4cm] 
%                  {\Opt{frametitlerulewidth}\\\Opt{frametitlerule=true}};
% % frametitlebelowskip
%     \draw[very thick,blue!60!black,latex-latex,shorten &gt;=0.2cm] 
%          (frametitle.south) -- (frametitle.center)
%          node[pos=0.5,anchor=west] 
%             {\Opt{ frametitlebelowskip}};
% % frametitleaboveskip
%     \draw[very thick,blue!60!black,latex-latex,shorten &gt;=0.2cm] 
%          (frametitle.north) -- (frametitle.center)
%           node[pos=0.5,anchor=west] {\Opt{ frametitleaboveskip}};
% % innertopmargin
%     \draw[very thick,blue!60!black,latex-latex,shorten &gt;=0.2cm] 
%          (CenterNode.north) -- (CenterNode.center)
%               node[pos=0.5,anchor=west] {\Opt{ innertopmargin}};
% % splittopskip
%     \draw[very thick,blue!60!black,latex-latex,shorten &gt;=0.2cm] 
%          (CenterNode.north) -- (CenterNode.center)
%               node[pos=0.5,anchor=east] {\Opt{splittopskip}};
% % global frame
%  \draw[thick] (-5.5,-2.1) rectangle (9.4,5.5);
% \end{tikzpicture}
%  \captionof{figure}{Behavior of the lengths if \Opt{frametitle} is used}
%  \label{fig:frametitlelaengen}
% \end{center}
% 
%
% \minisec{FYI and Note}
% The splitting of the frame title is really a fiddly issue. If you want to use
% the option \Opt{repeatframetitle} a splitting is more than wrong. On the 
% other hand if you use the option \Opt{repeatframetitle} the user must prepare
% the contents well.
%
% \subsection{Title commands inside the environment}
%
% To provide titles inside the environment \Pack{mdframed} you can use
% \Cmd{mdfsubtitle}. The relavant options are listed below. 
%
% \ExplCmd{mdfsubtitle} 
%      Set a title inside \Pack{mdframed} of the internal level 1.
%
% The command accepts one optional and one 
% mandatory argument. The optional argument sets the option of \Pack{mdframed}
% whereby everything will be local. The second argument of subtitle also allows
% paragraph breaking.
%
% Breaks inside the \Cmd{mdfsubtitle} are not supported. 
%
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
  \mdfsubtitle[&lt;options&gt;]{the subtitle}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
%
%
% \subsubsection{Options related to the title of level 1}
% \ExplOpt[false]{subtitleaboveline}
%     Decide to draw a line above the subtile.
% \ExplOpt[false]{subtitlebelowline}
%     Decide to draw a line below the subtitle.
% \ExplOpt[\string\normalfont\string\bfseries]{subtitlefont}
%     Sets the font for subtitles.
% \ExplOpt[white]{subtitlebackgroundcolor}
%     Sets the background color of the subtitle between the above and below
%     line.
% \ExplOpt[black]{subtitleabovelinecolor}
%     Sets the line color of the line above.
% \ExplOpt[black]{subtitlebelowlinecolor}
%     Sets the line color of the line below.
% \ExplOpt[0.8\,pt]{subtitleabovelinewidth}
%     Sets the line width of the line above.
% \ExplOpt[0.6\,pt]{subtitlebelowlinewidth}
%     Sets the line width of the line below.
% \ExplOpt[\string\baselineskip]{subtitleaboveskip}
%     Sets the skip before the subtitle line above will be drawn.
% \ExplOpt[1.2\string\baselineskip]{subtitlebelowskip}
%     Sets the skip after the subtitle line below is drawn.
% \ExplOpt[0.5\string\baselineskip]{subtitleinneraboveskip}
%     Sets the skip after the line above and the subtitle itself.
% \ExplOpt[0.5\string\baselineskip]{subtitleinnerbelowskip}
%     Sets the skip after the subtitle and the line below.
%
% Here an example to demonstrate the behaviour:
%
%\newmdenv[%
% roundcorner=5pt,nobreak=true,
% subtitlebelowline=true,subtitleaboveline=true,
% subtitlebackgroundcolor=yellow!70!white,
% backgroundcolor=blue!20!white,
% frametitle={Theorem},frametitlerule=true,
% frametitlebackgroundcolor=yellow!70!white,
% ]{subtitleenv}
%
% \begin{subtitleenv}
%   Some Text \ldots
%   \mdfsubtitle{Notes}
%   Some Text \ldots
% \end{subtitleenv}
%
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
\newmdenv[%
 roundcorner=5pt,
 subtitlebelowline=true,subtitleaboveline=true,
 subtitlebackgroundcolor=yellow!70!white,
 backgroundcolor=blue!20!white,
 frametitle={Theorem},frametitlerule=true,
 frametitlebackgroundcolor=yellow!70!white,
 ]{subtitleenv}
\begin{subtitleenv}
  Some Text \ldots
  \mdfsubtitle{Notes}
  Some Text \ldots
\end{subtitleenv}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
%
%
%     
% \subsection{General options}\label{genopt}
% Some options can't be classified. Such options are listed in this section. 
% \ExplOpt[false]{ntheorem} 
%      Before setting this boolean key, you have to load
%      the package \Pack{ntheorem}. With this option you set the
%      values \Cmd{theorempreskipamount} and
%      \Cmd{theorempostskipamount} to 0\,pt to avoid extra vertical skip.
% \ExplOpt[0\,pt]{needspace} 
%      Sometimes it is useful to set a minimum height before a 
%      frame should be splitted. For such cases you can use \Opt{needspace}.
%      The option requires a length which sets the minimum height before
%      a frame will be splitted.
% \ExplOpt[false]{ignorelastdescenders} 
%      Try to ignore the last descenders of the environment \Env{mdframed}. The
%      complete idea was inspired by Tobias Weh and the solution was provided
%      by Stefan Lemke. See 
%      \href{http://tex.stackexchange.com/questions/47584/how-to-make-^^A
%            mdframed-ignore-descenders-in-last-line}^^A
%           {How to make mdframed ignore descenders in last line}
% Of course you have some more length which can be manipulate. 
% \ExplOpt[\textbackslash linewidth]{userdefinedwidth} 
%      Sets the width of the whole \Pack{mdframed} environment. 
%      The width represent the width including the line width and
%      the inner margins. The outer margins will be ignored.
%
% \ExplOpt[left]{align} 
%      Sometimes it is useful to align the environment itself. 
%      For this you have the option \Opt{align} which can be set to the 
%      following strings: 
%      \begin{itemize}
%       \item \Opt{left},
%       \item \Opt{right} and
%       \item \Opt{center}.
%      \end{itemize}
%      The alignments \Opt{left} or \Opt{right} depend on the given lengths
%      \Opt{leftmargin} and \Opt{rightmargin}. Later I will present an example
%      to demonstrate my bad English explanation.
%
% Be aware of using this option please. 
%
%
% \subsection{TikZ options}\label{tikzopt}
% \mbox{}
% \ExplOpt[\{\}]{tikzsetting}
%      With this key you can pass several options to \Cmd{tikzset}. 
%      Some examples are listed in the next section. It is very important
%      to put the options of \Opt{tikzsetting} in brackets.
% \ExplOpt[\{\}]{apptotikzsetting}
%      With this key you can add several options to \Opt{tikzsetting}.
%      This key based on the idea of manipulation of predefined keys
%      of \Pack{mdframed}. The package \Pack{mdframed} defines via 
%      \Cmd{tikzset} the following keys to draw frames.
%      \begin{itemize}
%       \item \Cmd{tikzset\{mdfbox/.style\}}
%       \item \Cmd{tikzset\{mdfcorners/.style\}}
%       \item \Cmd{tikzset\{mdfbackground/.style\}}
%       \item \Cmd{tikzset\{mdfinnerline/.style\}}
%       \item \Cmd{tikzset\{mdfouterline/.style\}}
%       \item \Cmd{tikzset\{mdfmiddleline/.style\}}
%       \item \Cmd{tikzset\{mdfframetitlerule/.style\}}
%       \item \Cmd{tikzset\{mdfframetitlebackground/.style\}}
%       \item \Cmd{tikzset\{mdfshadow/.style\}}
%      \end{itemize}
%      \textbf{Before you change one please have a look at the
%              file \texttt{md-frame-1.mdf} to see the settings.}
%
%
% \subsection{PSTricks options}\label{pstricksopt}
% \mbox{}
% \ExplOpt[\{\}]{pstrickssetting}
%      With this key you can pass several options to \Cmd{psset}. 
%      For example if you want all lines dashed you will have to set 
%      \Opt{pstrickssetting=\{linestyle=dashed\}}. It is very important
%      to put the options of \Opt{pstrickssetting} in brackets.
% \ExplOpt[\{\}]{pstricksappsetting}
%      \Pack{mdframed} works with defined styles for the different elements. By 
%      using \Cmd{addtopsstyle} in combination with this option 
%      you can expand the definition. The predefined styles are
%      \begin{itemize}
%       \item \Opt{mdfbackgroundstyle}
%       \item \Opt{mdfframetitlebackgroundstyle}
%       \item \Opt{mdfouterlinestyle}
%       \item \Opt{mdfinnerlinestyle}
%       \item \Opt{mdfmiddlelinestyle}
%      \end{itemize}
%       \textbf{Before you change one please have a look at the file
%               \texttt{md-frame-2.mdf} to see the settings.}
%
%
% \section{Hooks and Bools}\label{hooksandbools}
% The following options and bool flags can be used by the any user. Of course
% some needs more experience than other.

% \ExplOpt[\{\}]{settings} 
% This option allows the user to commit some macros at the beginning of 
% \Pack{mdframed}. The given material is executed before the savebox starts.
%
% \ExplOpt[\{\}]{extra}
%      Add material to every drawn frame.
% \ExplOpt[\{\}]{singleextra}
%      With this key you can put extra material to the drawing environment of 
%      \Pack{mdframed} only for a non splitted frame. 
% \ExplOpt[\{\}]{firstextra}
%      With this key you can put extra material to the drawing environment of 
%      \Pack{mdframed} only for the first part of the splitted frame. 
% \ExplOpt[\{\}]{middleextra}
%      With this key you can put extra material to the drawing environment of 
%      \Pack{mdframed} only for the middle part of the splitted frame. 
%      \limitation[TikZ and PSTricks]
% \ExplOpt[\{\}]{secondextra}
%      With this key you can put extra material to the drawing environment of 
%      \Pack{mdframed} only for the second part of the splitted frame. 
%
%
% After you can add material to any part of the frame you can also detect which 
% part of the frame is drawn. Therefor the bool flags are defined which can be 
% test by \Cmd{ifbool\{boolflag\}}. All flags are set to true before the output
% of the content occurs.
% \ExplOpt[false]{mdfsingleframe}
% This bool is only true for a non splitting frame.
% \ExplOpt[false]{mdffirstframe}
% This bool is only for the first part of the frame true.
% \ExplOpt[false]{mdfmiddleframe}
% see above.
% \ExplOpt[false]{mdflastframe}
% see above.
%
% For the advanced users there are also some other hooks which can be used
% to manipulate the output:
% \ExplOpt[\{\}]{beforesingleframe}
% Every given code to this option is executed before a single frame is 
% is printed.
% \ExplOpt[\{\}]{aftersingleframe}
% Every given code to this option is executed after a single frame is 
% is printed.
% \ExplOpt[\{\}]{beforebreak}
% The value of this option is only executed at breakable frames. Related to 
% the introduction the first and middle frame can be manipulated.
% \ExplOpt[\{\}]{afterbreak}
% The value of this option is only executed at breakable frames. Related to 
% the introduction the first and middle frame can be manipulated.
% \ExplOpt[\{\}]{beforelastframe}
% The option is executed only for the last frame of a splitted frame. 
% \ExplOpt[\{\}]{afterlastframe} 
% The option is executed only for the last frame of a splitted frame. 
%
% \ExplOpt[\{\}]{startcode}
% Every code given to this option is executed at the beginning of the 
% environment.
% \ExplOpt[\{\}]{startinnercode}
% This option is executed at the beginning of the save box.
% \ExplOpt[\{\}]{endinnercode}
% This option is executed at the end of the save box.
% \ExplOpt[\{\}]{endcode}
% The code is executed at the end of the environment. 
%
% \section{Theorems}
% In this section is described which commands can help you to define 
% theorem environments with \Pack{mdframed}.
% 
% \ExplCmd{newmdtheoremenv} 
% Since the package is often used to highlight theorem environments, 
% the package providesa command to simplify this process. The command has the 
% following syntax:
% 
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}[deletekeywords={mdframed}]
 \newmdtheoremenv[&lt;mdframed-options&gt;]{&lt;envname&gt;}%
                 [&lt;numberedlike&gt;]{&lt;caption&gt;}[&lt;within&gt;]
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% The last four arguments are equivalent to the command \Cmd{newtheorem}.
% Only the first optional argument is able to pass \Pack{mdframed}-options. A 
% simple example is:
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
 \theoremstyle{&lt;some style&gt;}
 \newmdtheoremenv[linecolor=blue]{lemma}{Lemma}[section]
 ... 
 \begin{lemma}[Some title]
   foo   foo   foo   foo   foo   foo
 \end{lemma}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% So far there is no \Cmd{renewmdtheoremenv}!
%
%
% \ExplCmd{mdtheorem} 
% This is a special kind of \Cmd{newtheorem}. The command has the following 
% syntax.
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}[deletekeywords={mdframed}]
 \mdtheorem[&lt;mdframed-options&gt;]{&lt;envname&gt;}%
                 [&lt;numberedlike&gt;]{&lt;caption&gt;}[&lt;within&gt;]
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% As you can see the arguments are equal to \Cmd{newtheorem} but the
% command ignores every \Cmd{theoremstyle}. This is based on the following
% behavior. 
%
% The command \Cmd{mdtheorem} creates two environments based on the given
% first mandatory argument. The first environment is named like the given
% argument and creates a numbered theorem. The second environment is named
% like the first mandatory argument with a star. This environment has the 
% same formating but isn't numbered.
%
% The syntax of the new defined environments is equal to the normal theorem
% environments.
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}[deletekeywords={mdframed}]
 \begin{environment}[optional title]
  ...
 \end{environment}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% What happened? The caption of the command will be set as the frame title.
% In this way all options of the frame title are available. Furthermore 
% \Pack{mdframed} provides additional options explained below.
%
% \ExplOpt[\{:\}]{theoremseparator}
%      Sets the separator of the caption and the title of the theorem.
%      The \Opt{theoremseparator} will be printed only if an theorem 
%      title is given.
% \ExplOpt[\{\}]{theoremtitlefont}
%      Via the option \Opt{frametitlefont} you can manipulate the font
%      of the frame title. The option \Opt{theoremtitlefont} allows to
%      set a different font to the title of the theorem. 
% \ExplOpt[\protect\Cmd{space}]{theoremspace}
%      Sets the space after \Opt{theoremseparator}.
%
% Examples can be found in the attached files.
%
%
%
%
% \section{complexe example -- Matlab Terminal}
% The following example was inspiered by a question on TeX.SX. 
% \definecolor{DarkBlue}{rgb}{.11,.23,.60}
% \mdfdefinestyle{commandline}%
% {leftmargin=5pt, rightmargin=10pt,innerleftmargin=15pt,
%  middlelinecolor=DarkBlue,
%  middlelinewidth=2pt,
%  frametitlerule=false,
%  backgroundcolor=black!10!white,
%  frametitle={Command Window},
%  frametitlefont={\normalfont\sffamily\color{white}\hspace{-1em}},
%  frametitlebackgroundcolor=DarkBlue,
%  singleextra={\draw[black!20,line width=12pt] 
%       ($(O)+(7pt,1pt)$) --
%       ($(O|-P)+(7pt,-\mdfframetitleboxtotalheight)-(0,1pt)$);
%       \node[inner sep=0pt,color=black]at ($(O)+(7pt,9pt)$)%
%       {$\scriptstyle f\!x$}; },
%  nobreak=true,
% }
% 
% \lstnewenvironment{script} {%
%   \lstset{language=Matlab,basicstyle=\tiny\ttfamily,breaklines=true,%
%           aboveskip=0pt,belowskip=0pt}}{}
% \surroundwithmdframed[style=commandline]{script}
% \begin{script}
% &gt;&gt; help sin
%  sin    Sine of argument in radians.
%     sin(X) is the sine of the elements of X.
% 
%     See also asin, sind.
% 
%     Overloaded methods:
%        sdpvar/sin
%        codistributed/sin
%        gpuArray/sin
% 
%     Reference page in Help browser
%        doc sin
% 
% &gt;&gt; 
% \end{script}
%
% The code for this result is:
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}[moretexcs={lstnewenvironment,definecolor,lstset}]
 \definecolor{DarkBlue}{rgb}{.11,.23,.60}
 \mdfdefinestyle{commandline}%
 {leftmargin=5pt, rightmargin=10pt,innerleftmargin=15pt,
  middlelinecolor=DarkBlue,
  middlelinewidth=2pt,
  frametitlerule=false,
  backgroundcolor=black!10!white,
  frametitle={Command Window},
  frametitlefont={\normalfont\sffamily\color{white}\hspace{-1em}},
  frametitlebackgroundcolor=DarkBlue,
  singleextra={\draw[black!20,line width=12pt] 
       ($(O)+(7pt,1pt)$) --
       ($(O|-P)+(7pt,-\mdfframetitleboxtotalheight)-(0,1pt)$);
       \node[inner sep=0pt,color=black]at ($(O)+(7pt,9pt)$)%
       {$\scriptstyle f\!x$}; },
  nobreak,
 }
 
 \lstnewenvironment{script} {%
   \lstset{language=Matlab,basicstyle=\tiny\ttfamily,breaklines=true,%
           aboveskip=0pt,belowskip=0pt}}{}
 \surroundwithmdframed[style=commandline]{script}
 \begin{script}
 &gt;&gt; help sin
  sin    Sine of argument in radians.
     sin(X) is the sine of the elements of X.
 
     See also asin, sind.
 
     Overloaded methods:
        sdpvar/sin
        codistributed/sin
        gpuArray/sin
 
     Reference page in Help browser
        doc sin
 
 &gt;&gt; 
 \end{script}
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
%
% 
% 
% 
% \section{Examples}
% 
% I outsource the examples in four files documentation. The files 
% are
% \begin{description}[style=nextline]
% \item[\texttt{mdframed-example-default}] 
%       Demonstration of examples created with \Opt{framemethod=default}.
% \item[\texttt{mdframed-example-tikz}]
%       Demonstration of examples created with \Opt{framemethod=TikZ}.
% \item[\texttt{mdframed-example-pstricks}] 
%       Demonstration of examples created with \Opt{framemethod=pstricks}.
% \item[\texttt{mdframed-example-texsx}] 
%       Demonstration of examples like interaction with \Pack{listings}
% \end{description}
% 
% The examples are often not equivalent but normally they can be adapted to 
% another method.
% So I really recommend to have a look to all example files.
%
% The Korean \TeX Group created a very nice presentation. I want to show the 
% link because it's really a great work:
% \href{http://prezi.com/zc355i9tcsgz/talk-kts-2012-mdframed/}^^A
%      {kts 2012 mdframed}.
% 
%
% \IfFileExists{mdframed-example-default.pdf}%
%   {\includepdf[pages=-]{mdframed-example-default.pdf}}{}
% \IfFileExists{mdframed-example-tikz.pdf}%
%   {\includepdf[pages=-]{mdframed-example-tikz.pdf}}{}
% \IfFileExists{mdframed-example-texsx.pdf}%
%   {\includepdf[pages=-]{mdframed-example-texsx.pdf}}{}
% \IfFileExists{mdframed-example-pstricks.pdf}%
%   {\includepdf[pages=-]{mdframed-example-pstricks.pdf}}{}
%
% \section{Errors, Warnings and Messages}
% 
% The package \Pack{mdframed} provides different errors, warnings and
% messages in the \texttt{log}-file. Some \LaTeX-editors like
% \TeX Maker or \TeX Studio have a special tab for errors and warnings
% but not for messages. So you should look in the \texttt{log-File} itself.
% 
% The following errors and warnings are generated by \Pack{mdframed}.
% 
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
   The package ...  does not exist but
    needed by mdframed
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi        
% To avoid this problem you should install the required
% packages which are listed in section \ref{sec:syntax}.
% 
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
   package option style is depreciated
   use framemethod instead style
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi    
% With version 0.9d \Pack{mdframed} changed the meaning of the option 
% \Opt{style}. The option is used to load a defined style by 
% \Cmd{mdfdefinestyle}. Instead use \Opt{framemethod} (see section 
% \ref{globopt}). 
% 
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
  Unknown framemethod .... mdframed
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi   
% The input string for the option \Opt{framemethod} is unkown. See section
% \ref{globopt}.
% 
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
   You have not loaded ntheorem yet
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi   
% To use the option \Opt{ntheorem} you have to 
% load the package \Pack{ntheorem}.
% 
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
  You have only a width of 3cm
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi   
% The package \Pack{mdframed} calculates the width of the contents
% based on the given options. If the width of the contents is smaller than
% 3\,cm you will get this warnings. You should change the 
% settings to get a greater width.
% 
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
  You got a bad break
  you have to change it manually
  by changing the text, the space
  or something else
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi 
% Sometimes you have enough vertical space for the rules and the space
% between the rules and the contents but not for the contents itself.
% In this situation you will get this warning because the contents
% of this box is empty. You have the possibility to change the
% settings or include a \Cmd{clearpage} in front of 
% the environment \Pack{mdframed}.
% So far I have no idea how to avoid such things.
% 
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
  You got a bad break
  because the split box is empty
  You have to change the page settings
  like enlargethispage or something else
  You got a bad break
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi 
% See the explanation above.
% 
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
  You got a bad break
  because the last split box is empty
  You have to change the settings
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi 
% The same reason as above but only in the last box.
% 
% 
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
  Option ... is already consumed
  and has no effect on input line ...
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi 
% If you set a global option inside the document
% body you will get this warning.
% 
% \section{Known Limitations}
%  In this section I will collect known issues. In case you encounter
%  any further problems, please drop me an email, 
%  \href{mailto:marco.daniel@mada-nada.de}{marco.daniel at mada-nada.de}.
% 
%    Do you have any ideas / wishes on further extensions to this package?
%    Please let me know!
% 
% \begin{enumerate}
%  \item So far the environment isn't compatible with the package 
%        \Pack{gmverb}.
%  \item If you load the package \Pack{picins} the frame will no be splitted.
%        That based on a problem of the package `picins` which defines
%        \Cmd{@captype} global.
%        To work with the package picins you can use the following hack.
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
\usepackage{picins}
\makeatletter
\let\@captype\@undefined
\def\newcaption{%
 \begingroup%
  \def\@captype{figure}%
  \refstepcounter\@captype\@dblarg{\@newcaption\@captype}%
 \endgroup%
}
\makeatother
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi 
%  \item \Pack{mdframed} can't handle the option \Opt{allowframebreaks} of the
%         class \Pack{beamer}.
% \item A nested \Env{mdframed} environment can't be splitted. 
% \end{enumerate}
% 
% 
% \section{ToDo}
% \textbf{\color{red} It is important to update the documentation}
% \begin{enumerate}
%   \item see \enquote{Known Problems}.
%   \item So far it isn't possible to combine the environment  
%         \Cmd{begin\{multicols\}} of the package \Pack{multicol} 
%         with \Pack{mdframed} with the whole option list.
%   \item Create new styles.
%   \item Improve page breaks.
%   \item Improve footnotes.
%   \item Improve documentation and examples.
%   \item Create styles for \Opt{frametitle}.
%   \item Create an inline version of \Env{mdframed} that's works like 
%         \Cmd{fbox}
%   \item Add \Cmd{ht}\Cmd{strutbox} to file \Pack{md-frame-1.mdf}
% \end{enumerate}                
% 
% \section{Acknowledgements}
%  \textsf{Dick Nickalls;\quad Dietrich Grau;\quad Piazza Luca;\quad%
%          Jobst Hoffmann;\quad Martin Scharrer;\quad Enrico Gregorio;\quad 
%          Heiko Oberdiek;\quad Philipp Stephani}.
% \medskip
% 
% \noindent Thanks for proofreading 
% 
% \textsf{Alan Munn} and \textsf{Nahid Shajari}
% 
% I hope I forgot nobody. 
% \clearpage
% \appendix
%
% \section{More information}
% %\addtocontents{toc}{\protect\setcounter{tocdepth}{-4}}
% In the following section I want to present how to create
% your own frame.
% \subsection{How does \Pack{mdframed} work?}
% With the environment \Cmd{begin\{mdframed\}} \ldots \Cmd{end\{mdframed\}}
% the whole contents will be saved in a \Cmd{savebox} called 
% \Cmd{mdf@splitbox@one}. After the calculation of the width and the height of 
% the \Cmd{mdf@splitbox@one} (done by \Pack{mdframed.sty}) the box will be set 
% sequently (done by \Pack{md-frame-X.mdf}). The following figure demonstrates 
% this.
% 
% \begin{center}
% \begin{tikzpicture}
% \newcommand{\mybox}[1]{\parbox{3.5cm}{\centering\small #1}}
% \tikzstyle{every node}=[font=\sffamily]
% \tikzset{mymatrixnodes/.style={%
%      matrix of nodes,
%      nodes={framed,draw=black,fill=yellow!10,},
%      column sep=4.5cm,
%      row sep=1.5cm,
%      }}
% \matrix(m)[mymatrixnodes]
%   {%
%    \mybox{read in and save contents in \Cmd{mdf@splitbox@one}}              &amp;
%    \mybox{\Cmd{mdf@putbox@single}}                                         \\
%    \mybox{split \textbackslash mdf@splitbox@one in  \Cmd{mdf@splitbox@two} to
%           the free space of the page}                                       &amp;
%    \mybox{\Cmd{mdf@putbox@first}}                                          \\
%    \mybox{contents of \Cmd{mdf@splitbox@one} have enough space on the new 
%           page}                                                             &amp;
%    \mybox{\Cmd{mdf@putbox@second}}                                         \\
%    \mybox{split \Cmd{mdf@splitbox@one} in \Cmd{mdf@splitbox@two} to the free 
%           space of the page}                                                &amp;
%    \mybox{\Cmd{mdf@putbox@middle}}                                         \\
% };
% 
% \tikzstyle{every path}=[black,-triangle 45,thick,shorten &gt;=4pt,shorten &lt;=4pt]
% \draw  (m-1-1) edge 
%        node[align=center,anchor=south]{enough space on page} (m-1-2);
% \draw  (m-2-1) edge 
%        node[align=center,anchor=south]{type out \Cmd{mdf@splitbox@two}}
%         (m-2-2);
% \draw  (m-3-1) edge 
%        node[align=center,anchor=south]{yes} (m-3-2);
% \draw  (m-4-1) edge 
%        node[align=center,anchor=south]{type out \Cmd{mdf@splitbox@two}}
%         (m-4-2);
% 
% \draw  (m-2-2) edge node[align=center,fill=white]%
%        {calculate the height of the new \Cmd{mdf@splitbox@one}} (m-3-1);
% 
% 
% \draw  (m-1-1) edge 
%        node[align=center,anchor=west]{not enough space on page} (m-2-1);
% \draw  (m-3-1) edge node[align=center,anchor=west]{no} (m-4-1);
% 
% \draw  let \p1=($(m-4-2.south)-(0,1)$), \p2=($(m-3-1.west)-(0.8,0)$) in
%       (m-4-2.south) -- ($(m-4-2.south)+(0,-1)$) --
%            node[align=center,anchor=north]%
%            {calculate the height of the new \Cmd{mdf@splitbox@one}} (\x2,\y1)
%        -- ($(m-3-1.west)-(0.8,0)$)-- ($(m-3-1.west)$) ;
% 
% 
% \end{tikzpicture}
% 
% \captionof{figure}{Setting the contents of \Pack{mdframed}}\label{fig:way}
% \end{center}
% 
% The width of the contents is the result of the settings of
% \Opt{leftmargin}, \Opt{rightmargin}, \Opt{linewidth},
% \Opt{innerleftmargin} and \Opt{innerrightmargin}
% (see figure \eqref{fig:laengen}).
% 
% \subsection{The Framecommands}
% The package \Pack{mdframed} knows four kinds of \enquote{Framecommand}. 
% These commands tell \LaTeX\ how to set the contents of \Pack{mdframed}. 
% \begin{description}
%   \item[\Cmd{mdf@putbox@single}] 
%        This command sets the contents of a single unsplit frame.
%   \item[\Cmd{mdf@putbox@first}]  
%        This command sets the contents of the first frame of a split frame.
%   \item[\Cmd{mdf@putbox@middle}] 
%        This command sets the contents of the middle frame of a split frame.
%   \item[\Cmd{mdf@putbox@second}] 
%        This command sets the contents of the last frame of a split frame.
% \end{description}
% 
% Using the explained commands we give an example. The command \Cmd{box}
% uses the contents of the savebox and types them out. 
% 
% First we want to type out the single box without any settings
% (but with the calculated width).
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
 \makeatletter
  \def\mdf@putbox@single{\box\mdf@splitbox@one}
 \makeatother
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% I am using the command \Cmd{leftline} to start the \enquote{Framecommands} at
% the left.
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}[deletekeywords={leftline},moretexcs={leftline}]
 \makeatletter
  \def\mdf@putbox@single{\leftline{\box\mdf@splitbox@one}}
 \makeatother
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% 
% Now you have to know how the lengths are named. Every length which can be
% modified by the options has the following syntax:
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
 \mdf@&lt;Name of the Length&gt;@length
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% For example the leftmargin is:
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}
 \mdf@leftmargin@length
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% 
% To create only a line at the left with the correct \Opt{leftmargin} you
% can set \Cmd{mdf@putboxsingle} as follows
% 
% \iffalse
%&lt;*example&gt;
% \fi
\begin{tltxmdfexample}[deletekeywords={leftline},moretexcs={leftline}]
 \makeatletter
 \def\mdf@putbox@single{%
          \leftline{%
              \hspace*{\mdf@leftmargin@length}%
              \rule[-\dp\mdf@splitbox@one]{\mdf@linewidth}%
                   {\ht\mdf@splitbox@one+\dp\mdf@splitbox@one}%
              \box\mdf@splitbox@one
          }%
 }
 \makeatother
\end{tltxmdfexample}
% \iffalse
%&lt;/example&gt;
% \fi
% 
% In this way you can do what you want. If you create your own style you
% can save the file as \Pack{md-frame-X.mdf}.
% \Pack{X} must be an integer. 
% In this way you can use the option \Opt{framemethod} to
% load the file by setting \Opt{framemethod=X}.
% 
%\iffalse
% \clearpage
% 
% \subsection{Revision history}\label{rev}
% \raggedright
%
%
% \minisec{Version 1.8X submitted XX Mar 2013}
% \begin{itemize*}
%  \item added \Cmd{topskip=0pt} to remove unwanted space after \Cmd{newpage} or \Cmd{clearpage}
% \end{itemize*}
%
% \footnotesize
% \minisec{Version 1.8 submitted 09 Mar 2013}
% \begin{itemize*}
%  \item fixed bugs (e.g. related to \Cmd{parskip} of KOMA)
%  \item allow margin notes with \Opt{framemethod=tikz}
%  \item fixed some typos
% \end{itemize*}
%
% \minisec{Version 1.6d submitted 21 Sep 2012}
% \begin{itemize*}
%  \item fixed bugs
%  \item added option \Opt{draft}
% \end{itemize*}
%
% \minisec{Version 1.6b submitted 02 Jun 2012}
% \begin{itemize*}
%  \item added commands \Cmd{mdfsubtitle} and \Cmd{mdfsubsubtitle}
%  \item added options \Opt{subtitleaboveline}, \Opt{subtitlebelowline},
%        \Opt{subsubtitleaboveline}, \Opt{subsubtitlebelowline},
%        \Opt{subtitlefont}, \Opt{subsubtitlefont}, 
%        \Opt{subtitlebackgroundcolor},
%        \Opt{subsubtitlebackgroundcolor}, \Opt{subtitleabovelinecolor},
%        \Opt{subtitlebelowlinecolor}, \Opt{subsubtitleabovelinecolor},
%        \Opt{subsubtitlebelowlinecolor}, \Opt{subtitleabovelinewidth}, 
%        \Opt{subtitlebelowlinewidth}, \Opt{subtitleaboveskip},
%        \Opt{subtitlebelowskip}, \Opt{subtitleinneraboveskip},
%        \Opt{subtitleinnerbelowskip}, \Opt{subsubtitleabovelinewidth}, 
%        \Opt{subsubtitlebelowlinewidth}, \Opt{subsubtitleaboveskip}, 
%        \Opt{subsubtitlebelowskip}, \Opt{subsubtitleinneraboveskip},
%        \Opt{subsubtitleinnerbelowskip}
%  \item improved formating of the file \Pack{mdframed.dtx}
%  \item fixed bug in combination with \Cmd{parskip} -- Thanks David Carlisle.
%  \item added extra loop to compute the splitting point.
%  \item improved splitting algorithm
%  \item added new option \Opt{ignorelastdescenders} -- Thanks Stephan Lehmke.
%  \item Improved option \Opt{repeatframetitle}
%  \item fixed bug: \Opt{framemethod=tikz} used wrong computed length by 
%        setting \Opt{everyline=true}
%  \item Tobias Weh inspired the excurs-environment not Tobias Schwan. Sorry,
%        I fixed it.
%  \item Improved \Cmd{mdtheorem} to handle \Cmd{listtheorems} provided by 
%  \Pack{ntheorem}.
% \end{itemize*}
%
% \minisec{Version 1.5 submitted 10 Mar 2012}
% \begin{itemize*}
%  \item fixed bug (Thanks Nicolas Roy)
%  \item expanded documentation (Thanks Martin Wilhelm Leidig)
%  \item added options \Opt{singleextra}, \Opt{firstextra},
%        \Opt{middleextra} and \Opt{secondextra}
%  \item expanded examples
% \end{itemize*}
%
% \minisec{Version 1.4d submitted 30 Mar 2012}
% \begin{itemize*}
%  \item fixed bug (Thanks Nicolas Roy)
%  \item added approach to documentation to work with \Pack{picins}
%  \item new implementation of option \Opt{hidealllines}, now you can set
%        \Cmd{mdfsetup}\Opt{\{hidealllines=true,leftline=true\}} printing
%        only the left line (inspired by Tobias Weh)
%  \item added option \Opt{everyline} to draw a top and bottom line at 
%        splitted frames
% \end{itemize*}
% 
% \minisec{Version 1.4 submitted 4 Mar 2012}
% \begin{itemize*}
%  \item fixed bug in combination with \Cmd{marginpar} (Thanks Juan Carlos 
%        Trujillo Ortega)
%  \item fixed bug with option \Opt{font} 
%  \item fixed bug inside \texttt{frametitle} (Thanks Yi, Hoze)
%  \item removed unnessary groups (Thanks Yi, Hoze)
%  \item changed the definition of \Pack{listings} to allow copy paste of the 
%        examples
% \end{itemize*}
%
% \minisec{Version 1.3a submitted 5 Feb 2012}
% \begin{itemize*}
% \item fixed bug (Thanks to Dietrich Grau)
% \end{itemize*}
%
% \minisec{Version 1.3 submitted 4 Feb 2012}
% \begin{itemize*}
% \item fixed documentation (Thanks to Dietrich Grau)
% \item added option \Opt{shadow}
% \item improved handling \Cmd{parindent} and \Cmd{parskip} (Thanks to  Enrico 
%       Gregorio and Joseph Wright)
% \end{itemize*}
%
% \minisec{Version 1.2 submitted 8 Jan 2012}
% \begin{itemize*}
% \item fixed documentation (Thanks to Dietrich Grau)
% \item fixed bug in combination with \Pack{amsthm}
% \item fixed bug in \Cmd{newmdtheoremenv}
% \item defined new styles via \Cmd{newpsstyle}\limitation[PSTricks]
% \item added new commands for interaction with \Pack{TikZ} and \Pack{PSTricks}
% \item expand frame title option by option \Opt{frametitlerule}, 
%       \Opt{frametitlerulewidth}, \Opt{frametitlefont}, 
%       \Opt{frametitleaboveskip}, \Opt{frametitlebelowskip}, 
%       \Opt{frametitlealignment}
% \item removed limitation of three lines for PSTricks
% \item defined new commands \Cmd{surroundwithmdframed}, \Cmd{mdflength}, 
%       \Cmd{mdtheorem}
% \item load \Pack{xparse} by default
% \item changed internal names
% \item expanded examples
% \end{itemize*}
%
% \minisec{Version 1.0b submitted 9 Dec 2011}
% \begin{itemize*}
% \item fixes documentation (Thanks to Dietrich Grau)
% \item fixes bug in \Cmd{newmdtheoremenv}
% \item fixes bug with overfull boxes (Thanks to Dietrich Grau)
% \item defined \Cmd{newpsstyle}\Opt{mdfbackgroundstyle} and \Opt{mdflinestyle}
%       \limitation[PSTricks]
% \item created dtx-file (Thanks to Kevin Godby)
% \item added \Cmd{@parboxrestore} to \Cmd{mdf@lrbox}
% \end{itemize*}
% 
% \minisec{Version 1.0 submitted 13 Nov 2011}
% \begin{itemize*}
% \item add option \Opt{userdefinedwidth}
% \item add option \Opt{align}
% \item add option \Opt{apptotikzsetting}
% \item create new command \Cmd{mdfapptodefinestyle}
% \item changed internal algorithm
% \item removed calc instead using \eTeX\ \verb+\dimexpr+
% \item expand documentation
% \item trying to fixe problems with \Pack{xcolor}
% \item fixed bug with \Opt{framemethod=pstricks}
% \item create file \Pack{mdframed-example-default}
% \item create file \Pack{mdframed-example-tikz}
% \item create file \Pack{mdframed-example-pstricks}
% \item create file \Pack{mdframed-example-texsx} 
%      (texsx stands for tex stackexchange)
% \end{itemize*}
% 
% 
% \minisec{Version 0.9g submitted 08 Oct 2011}
% \begin{itemize*}
% \item fixed documentation
% \item added small footnote compatibility
% \end{itemize*}
% 
% \minisec{Version 0.9f submitted 04 Oct 2011}
% \begin{itemize*}
% \item fixes bugs (thanks to Lars Madsen)
% \item added option \Opt{hidealllines}
% \item fixed documentation
% \end{itemize*}
% 
% 
% \minisec{Version 0.9e submitted 11 Sep 2011}
% \begin{itemize*}
% \item working with \texttt{twoside} modus
% \end{itemize*}
% 
% \minisec{Version 0.9d submitted 10 Sep 2011}
% \begin{itemize*}
% \item \textcolor{red}{changed the meaning of the option 
%        \Opt{style}}!!! (inspired by Lars Madsen)
% \item added option \Opt{framemethod} (inspired by Lars Madsen)
% \item added options \Opt{needspace} (inspired by Lars Madsen)
% \item added new command \Cmd{mdfdefinestyle} (inspired by Lars Madsen)
% \item fixes documentation
% \item renamed \Pack{md-frame-3.mdf} to \Pack{md-frame-2.mdf}
% \end{itemize*}
% 
% 
% 
% \minisec{Version 0.9b submitted 7 Sep 2011}
% \begin{itemize*}
% \item fixes bugs in \Cmd{newmdtheoremenv} (Thanks to Enrico Gregorio)
% \end{itemize*}
% 
% \minisec{Version 0.9a submitted 5 Sep 2011}
% \begin{itemize*}
% \item fixes bugs (Thanks to Lars Madson)
% \item expanded documentation (added revision history)
% \end{itemize*}
% 
% 
% \minisec{Version 0.9 submitted 4 Sep 2011}
% \begin{itemize*}
% \item added option \Opt{nobreak}
% \item detecting float environments to prevent split calculation
% \item expand documentation (Thanks to Alan Munn)
% \end{itemize*}
% 
% \minisec{Version 0.8a}
% \begin{itemize*}
% \item fixes bugs
% \item fixes documentation
% \end{itemize*}
% 
% \minisec{Version 0.8 submitted 22 Aug 2011}
% \begin{itemize*}
% \item  added commands: \Cmd{newmdenv}, \Cmd{renewmdenv}, 
%                        \Cmd{newmdtheoremenv}
% \item fixes bugs
% \item fixes documentation
% \end{itemize*}
% 
% \minisec{Version 0.7a submitted 6 August 2011}
% \begin{itemize*}
% \item added option \Opt{frametitle}
% \item added option \Opt{frametitlefont}
% \item allow twolumn-mode
% \item changed the calculation
% \item added option \Opt{tikzsetting}
% \item added options for hidden lines for all styles
% \item fixes bugs
% \end{itemize*}
% 
% \minisec{Version 0.6a submitted 22 Dec 2010}
% \begin{itemize*}
% \item fixes bugs
% \item added \Cmd{mdfsetup}
% \item expanded documentation
% \end{itemize*}
%
% \clearpage
%
%
%
%
%
% \section{Implementation}\label{implementation}
%
% And finally, here's how it all works\ldots
%
%\fi
%\StopEventually{^^A
%  ^^A\clearpage
%  ^^A\PrintChanges^^A
%  ^^A\clearpage
%  ^^A\PrintIndex^^A
%}
%
%\iffalse
%    \begin{macrocode}
%&lt;*package&gt;
%    \end{macrocode}
%\fi
%
% \subsection{The Explanation of mdframed.sty}
%
% \begin{macro}{mdversion,mdframedpackagename,mdfmaindate}
% Set package information
%    \begin{macrocode}
\def\mdversion{1.9b}
\def\mdframedpackagename{mdframed}
\def\mdfmaindate{2013/07/01}
\def\mdfrevision{     212}% Done by github: git rev-list HEAD | wc -l
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{mdframed}%
     [\mdfmaindate\space \mdversion: \mdframedpackagename]
%    \end{macrocode}
%
% \begin{macro}{mdf@PackageWarning,mdf@PackageInfo,mdf@LoadFile@IfExist}
%  Set short form of |\PackageError|, |\PackageWarning|, |\PackageInfo| and 
%  |IfFileExists| in combination with |\RequirePackage|.
%    \begin{macrocode}
\newcommand*\mdf@PackageError[1]{\PackageError{\mdframedpackagename}{#1}}
\newcommand*\mdf@PackageWarning[1]{\PackageWarning{\mdframedpackagename}{#1}}
\newcommand*\mdf@PackageInfo[1]{\PackageInfo{\mdframedpackagename}{#1}}
\newcommand*\mdf@LoadFile@IfExist[1]{%
 \IfFileExists{#1.sty}{%
          \RequirePackage{#1}%
        }{%
        \mdf@PackageWarning{The file #1 does not exist\MessageBreak
                           but needed by \mdframedpackagename\MessageBreak
                           see documentation fo further information
                           }%
       }%
}
%    \end{macrocode}
% \end{macro}
%
% Loading required packages
%    \begin{macrocode}
\RequirePackage{kvoptions}
\RequirePackage{xparse}
\RequirePackage{etoolbox}[2011/01/03]
\RequirePackage{zref-abspage}
\RequirePackage{needspace}
\RequirePackage{color}
%    \end{macrocode}
%
% Set the family and the prefix of all options.
%    \begin{macrocode}
\SetupKeyvalOptions{family=mdf,prefix=mdf@}
%    \end{macrocode}
%
% \begin{macro}{mdf@definestyle@defaultoptions}
% Save all keys in a macro which can be used by \Opt{style} or
% as an option
%    \begin{macrocode}
\def\mdf@definestyle@defaultoptions{}%
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@iflength,mdf@iflength@check,mdf@iflength@check}
% Command which checks the input of length options. If the length option is
% only a number the |defaultunit| will be used. Syntax: 
% |\mdf@iflength{&lt;Input&gt;}{&lt;length&gt;}{&lt;no length&gt;}|
%    \begin{macrocode}
\newlength{\mdf@templength}
\def\mdf@iflength#1{%
  \afterassignment\mdf@iflength@check%
  \mdf@templength=#1\mdf@defaultunit\relax\relax
  \expandafter\endgroup\next
}
\def\mdf@iflength@check#1{%
  \begingroup
  \ifx\relax#1\@empty
    \def\next{\@secondoftwo}
  \else
    \def\next{\@firstoftwo}
    \expandafter\mdf@iflength@cleanup
  \fi
}
\def\mdf@iflength@cleanup#1\relax{}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@dolist}
%  Loop used by \Pack{mdframed}. I can handle comma separated list. The command
% \Cmd{DeclareListParser} is provided by `etoolbox`.
%    \begin{macrocode}
\DeclareListParser*{\mdf@dolist}{,}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@do@lengthoption}
% We need lots of length options. So the declaration is simplified. 
%    \begin{macrocode}
% \mdf@dolist{\mdf@do@lengthoption}{{option name ==default value},...}%
% resulst to the length \mdf@&lt;option name&gt;@length
\def\mdf@do@lengthoption#1{%
  \mdf@lengthoption@doubledo#1\@nil%
}
\def\mdf@lengthoption@doubledo#1==#2\@nil{%
   \mdf@option@length{#1}{#2}%
   \mdf@define@key@length{#1}%
   \gappto\mdf@definestyle@defaultoptions{#1=#2,}%
}

\newrobustcmd*{\mdf@option@length}[2]{%
 \expandafter\newlength\csname mdf@#1@length\endcsname%
 \expandafter\setlength\csname mdf@#1@length\endcsname{#2}%
 }

\newrobustcmd*{\mdf@define@key@length}[1]{%
   \define@key{mdf}{#1}{%
      \def\@tempa{##1}
      \mdf@iflength{\@tempa}%
       {\csxdef{mdfl@#1}{\the\mdf@templength}}%
       {\csxdef{mdfl@#1}{\the\mdf@templength}}%
       \setlength{\csname mdf@#1@length\endcsname}{\csname mdfl@#1\endcsname}%
   }%
}


%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@do@stringoption}
%  We need lots of string options which are saved in a macro.%
%  So the declaration is simplified. 
%    \begin{macrocode}
% \mdf@dolist{\mdf@do@stringoption}{{option name ==default value},...}%
% resulst to the macro \mdf@&lt;option name&gt; 
\def\mdf@do@stringoption#1{%
   \mdf@stringoption@doubledo#1\@nil%
}
\def\mdf@stringoption@doubledo#1==#2\@nil{%
   \expandafter\gdef\csname mdf@#1\endcsname{#2}%
   \define@key{mdf}{#1}{%
      \csdef{mdf@#1}{##1}%
   }%
   \gappto\mdf@definestyle@defaultoptions{#1=#2,}%
}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@do@booloption}
%  We need lots of bool options. So the declaration is simplified. 
%    \begin{macrocode}
% \mdf@dolist{\mdf@do@booloption}{{option name ==default value},...}%
% resulst to the bool flag \mdf@&lt;option name&gt; 
\def\mdf@do@booloption#1{%
   \mdf@booloption@doubledo#1\@nil%
}
\def\mdf@booloption@doubledo#1==#2\@nil{%
   \newbool{mdf@#1}\setbool{mdf@#1}{#2}%
   \define@key{mdf}{#1}[#2]{%
      \setbool{mdf@#1}{##1}%
   }%
   \gappto\mdf@definestyle@defaultoptions{#1=#2,}%
}
%    \end{macrocode}
% \end{macro}
%
%
% Start declaration of options
%    \begin{macrocode}
\newcounter{mdf@globalstyle@cnt}
\defcounter{mdf@globalstyle@cnt}{-99}

% Only provide to be backward compatible
\define@key{mdf}{style}{%
  \mdf@PackageWarning{package option style is depreciated^^J
                      at this point and will be ignored^^J
                      use framemethod instead\MessageBreak}%
}

\providecommand*\mdf@framemethod{}
\def\mdf@framemethod@i{}%
\def\mdf@framemethod@ii{}%
\def\mdf@framemethod@iii{}%
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
\define@key{mdf}{framemethod}[default]{%
  \lowercase{\def\mdf@tempa{#1}}%lowercase not expandable
  \forcsvlist{\listadd\mdf@framemethod@i}{default,tex,latex,none,0}
  \forcsvlist{\listadd\mdf@framemethod@ii}{pgf,tikz,1}
  \forcsvlist{\listadd\mdf@framemethod@iii}{pstricks,ps,2,postscript}
  \xifinlist{\mdf@tempa}{\mdf@framemethod@i}%
    {\def\mdf@@framemethod{default}\defcounter{mdf@globalstyle@cnt}{0}}%
    {\xifinlist{\mdf@tempa}{\mdf@framemethod@ii}%
       {\def\mdf@@framemethod{tikz}%
        \defcounter{mdf@globalstyle@cnt}{1}\mdf@LoadFile@IfExist{tikz}}%
       {\xifinlist{\mdf@tempa}{\mdf@framemethod@iii}%
          {\def\mdf@@framemethod{pstricks}%
           \defcounter{mdf@globalstyle@cnt}{2}\mdf@LoadFile@IfExist{pst-node}}%
          {\mdf@LoadFile@IfExist{#1}}%
       }%
    }%
  \ifcase\value{mdf@globalstyle@cnt}\relax%
    \input{md-frame-0.mdf}%
   \or\input{md-frame-1.mdf}%
   \or\input{md-frame-2.mdf}%
   \or\input{md-frame-3.mdf}%
   \else%
    \IfFileExists{md-frame-\value{mdf@globalstyle@cnt}.mdf}%
    {\input{md-frame-\value{mdf@globalstyle@cnt}.mdf}}%
    {%
     \input{md-frame-0.mdf}%
     \mdf@PackageWarning{The style number \value{mdf@globalstyle@cnt}
                         does not exist^^J
                         mdframed ues instead style=0 \mdframedpackagename}%
    }%
  \fi%
}
\DeclareVoidOption{tikz}{\setkeys{mdf}{framemethod=tikz}}
\DeclareVoidOption{TikZ}{\setkeys{mdf}{framemethod=tikz}}
\DeclareVoidOption{ps}{\setkeys{mdf}{framemethod=pstricks}}
\DeclareVoidOption{pstricks}{\setkeys{mdf}{framemethod=pstricks}}
\DeclareVoidOption{PSTricks}{\setkeys{mdf}{framemethod=pstricks}}

%    \end{macrocode}
%
% \begin{macro}{mdf@do@lengthoption}
% Here the declaration of all length options.
%    \begin{macrocode}
\mdf@dolist{\mdf@do@lengthoption}{%
   {skipabove==\topsep},%
   {skipbelow==\topsep},%
   {leftmargin==\z@},%
   {rightmargin==\z@},%
   {innerleftmargin==10pt},%
   {innerrightmargin==10pt},%
   {innertopmargin==0.4\baselineskip},%
   {innerbottommargin==0.4\baselineskip},%
   {splittopskip==10pt},%
   {splitbottomskip==10pt},%
   {outermargin==\z@},%
   {innermargin==\z@},%
   {linewidth==0.4pt},%
   {innerlinewidth==\z@},%
   {middlelinewidth==\expandafter\mdf@linewidth@length},%
   {outerlinewidth==\z@},%
   {roundcorner==\z@},%
   {footenotedistance==\medskipamount},
   {userdefinedwidth==\linewidth},
   {needspace==\z@},
   {frametitleaboveskip==5pt},
   {frametitlebelowskip==5pt},
   {frametitlerulewidth==.2pt},
   {frametitleleftmargin==10pt},%
   {frametitlerightmargin==10pt},%
   {shadowsize==8pt},%
   {extratopheight==\z@},%
   {subtitleabovelinewidth==.8pt},%
   {subtitlebelowlinewidth==.6pt},%
   {subtitleaboveskip==\baselineskip},%
   {subtitlebelowskip==1.2\baselineskip},%
   {subtitleinneraboveskip==.5\baselineskip},%
   {subtitleinnerbelowskip==.5\baselineskip},%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% NOT IMPLEMENTED
   {subsubtitleabovelinewidth==.8pt},%
   {subsubtitlebelowlinewidth==.6pt},%
   {subsubtitleaboveskip==\baselineskip},%
   {subsubtitlebelowskip==1.2\baselineskip},%
   {subsubtitleinneraboveskip==.5\baselineskip},%
   {subsubtitleinnerbelowskip==.5\baselineskip},%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@do@lengthoption}
% Here the declaration of the string options.
%    \begin{macrocode}
\mdf@dolist{\mdf@do@stringoption}{%
    {frametitle=={}},%
    {firstframetitle=={}},%
    {framefoot=={}},%
    {lastframefoot=={}},%
    {defaultunit==pt},%
    {linecolor==black},%
    {backgroundcolor==white},%
    {fontcolor==black},%
    {frametitlefontcolor==black},%
    {innerlinecolor==\mdf@linecolor},%
    {outerlinecolor==\mdf@linecolor},%
    {middlelinecolor==\mdf@linecolor},%
    {psroundlinecolor==\mdf@backgroundcolor},%
    {frametitlerulecolor==\mdf@linecolor},
    {frametitlebackgroundcolor==\mdf@backgroundcolor},%
    {shadowcolor==black!50},%
    {settings=={}},%
    {frametitlesettings=={}},%
    {font=={}},%
    {frametitlefont==\normalfont\bfseries},%
    {printheight==none},%
    {alignment=={}},%
    {frametitlealignment=={}},%
    {theoremseparator=={:}},%
    {theoremcountersep=={.}},%
    {theoremtitlefont=={}},%
    {theoremspace=={\space}},%
    {extra=={}},%
    {singleextra=={}},%
    {firstextra=={}},%
    {middleextra=={}},%
    {secondextra=={}},%
    {beforesingleframe=={}},%
    {aftersingleframe=={}},%
    {beforebreak=={}},%
    {afterbreak=={}},%
    {beforelastframe=={}},%
    {afterlastframe=={}},%
    {startcode=={}},%
    {startinnercode=={}},%
    {endinnercode=={}},%
    {endcode=={}},%  
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% %%subtitle / subsubtitle added 29.05.12%% %
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
    {subtitlefont==\normalfont\bfseries},%
    {subsubtitlefont==\normalfont},%
    {subtitlebackgroundcolor==white},%
    {subsubtitlebackgroundcolor==white},%
    {subtitleabovelinecolor==black},%
    {subtitlebelowlinecolor==black},%
    {subsubtitleabovelinecolor==black},%
    {subsubtitlebelowlinecolor==black},%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@do@booloption}
% Here the declaration of all bool options.
%    \begin{macrocode}
\mdf@dolist{\mdf@do@booloption}{%
    {ntheorem==false},%
    {topline==true},%
    {leftline==true},%
    {bottomline==true},%
    {rightline==true},%
    {frametitletopline==true},%
    {frametitleleftline==true},%
    {frametitlebottomline==true},%
    {frametitlerightline==true},%
    {frametitlerule==false},%
    {footnoteinside==true},%
    {usetwoside==true},%
    {repeatframetitle==false},%Noch nicht richtig implementiert
    {shadow==false},%
    {everyline==false},%
    {ignorelastdescenders==false},%
    {subtitleaboveline==false},
    {subtitlebelowline==false},
    {subsubtitleaboveline==false},
    {subsubtitlebelowline==false},
    {draft==false},
    {suppressfirstparskip==true},
}    
%%special boolflag hidealllines:
\newbool{mdf@hidealllines}%
\define@key{mdf}{hidealllines}[false]{%
\setbool{mdf@hidealllines}{#1}%
 \ifbool{mdf@hidealllines}{%
   \kvsetkeys{mdf}{leftline=false,topline=false,%
                   rightline=false,bottomline=false}%
 }{%
   \kvsetkeys{mdf}{leftline=true,topline=true,%
                   rightline=true,bottomline=true}%
 }%
}
\appto\mdf@definestyle@defaultoptions{hidealllines=false,}%
%%special boolflag nobreak:
% \newbool{mdf@nobreak}%
% \boolfalse{mdf@nobreak}%
\DeclareBoolOption[true]{nobreak}
\boolfalse{mdf@nobreak}%
\appto\mdf@definestyle@defaultoptions{nobreak=false,}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@do@alignoption}
% Here the declaration of all align options.
%    \begin{macrocode}
%USELESS
%USELESS
%USELESS
% This part must be worked over.
\def\mdf@do@alignoption#1{%
   \mdf@alignoption@tripledo#1\@nil%
}
\def\mdf@alignoption@tripledo#1==#2==#3\@nil{%
   \csdef{mdf@align@#1@left}{\null\hspace*{#2}}%
   \csdef{mdf@align@#1@right}{\hspace*{#3}\null}%
}
\mdf@dolist{\mdf@do@alignoption}{%
    {left==\mdf@leftmargin@length==\z@},%
    {center==\fill==\fill},%
    {right==\fill==\mdf@rightmargin@length},%
    {outer==\fill==\mdf@rightmargin@length},%not supported yet
    {outer==\mdf@leftmargin@length==\fill},%not supported yet
}
\newcommand*\mdf@align{}%
\newcommand*\mdf@makeboxalign@left{\null\hspace*{\mdf@leftmargin@length}}%
\newcommand*\mdf@makeboxalign@right{}%
\define@key{mdf}{align}[left]{%
   \ifcsundef{mdf@align@#1@left}{%
       \mdf@PackageWarning{Unknown alignment #1\MessageBreak}%
       \letcs\mdf@makeboxalign@left{mdf@align@left@left}%
       \letcs\mdf@makeboxalign@right{mdf@align@left@right}%
   }{%
       \def\mdf@makeboxalign@left{\csuse{mdf@align@#1@left}}%
       \def\mdf@makeboxalign@right{\csuse{mdf@align@#1@right}}%
   }%
}
%USELESS
%USELESS
%USELESS
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@tikzset@local,mdf@psset@local}
% Option to pass options to tikz or pstricks
%    \begin{macrocode}
\def\mdf@tikzset@local{\tikzset{tikzsetting/.style={}}}
\define@key{mdf}{tikzsetting}{%
  \def\mdf@tikzset@local{\tikzset{tikzsetting/.style={#1}}}%
}
\define@key{mdf}{apptotikzsetting}{%
  \appto\mdf@tikzset@local{#1}%
}
\def\mdf@psset@local{}
\define@key{mdf}{pstrickssetting}{%
  \def\mdf@psset@local{#1}
}
\def\mdfpstricks@appendsettings{}
\define@key{mdf}{pstricksappsetting}{%
  \def\mdfpstricks@appendsettings{#1}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@xcolor}
% \textcolor{red}{\bfseries Problem width xcolor. This part must be reworked!}
%    \begin{macrocode}
\def\mdf@xcolor{}
\define@key{mdf}{xcolor}[]{%
  \def\@tempa{#1}%
  \@ifpackageloaded{xcolor}{%
     \let\mdf@xcolor\@empty %ignoriere die Eingabe der Optionen
     \def\@tempa{}%
     }{}%
  \ifx\relax\@tempa\relax\else
     \PassOptionsToPackage{\mdf@xcolor}{xcolor}%
      \RequirePackage{xcolor}%     
  \fi%
}%
%    \end{macrocode}
% \end{macro}
%
%
%    \begin{macrocode}
\DeclareDefaultOption{%
   \mdf@PackageError{Unknown Option '\CurrentOption' for mdframed}}
\ProcessKeyvalOptions*\relax
\ifnum\c@mdf@globalstyle@cnt&lt;0
  \kvsetkeys{mdf}{framemethod=default,}
\fi
%    \end{macrocode}
%
% \begin{macro}{mdfsetup}
% Short form of |\setkeys{mdf}|
%    \begin{macrocode}
\newrobustcmd*{\mdfsetup}{\kvsetkeys{mdf}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@style}
% Redefinition of the option |style| to use the key in combination with 
% |mdfdefinedstyle|.
%    \begin{macrocode}
\define@key{mdf}{style}{%
  \ifcsundef{mdf@definestyle@#1}{%
    \mdf@PackageWarning{Unknown definedstyle #1^^J
                       You have to define a style ^^J
                       via \string\mdfdefinedstyle\MessageBreak
                      }%
   }%
   {\expandafter\expandafter\expandafter\mdfsetup\expandafter%
    \expandafter\expandafter{\csname mdf@definestyle@#1\endcsname}}%
}%
\DeclareVoidOption{default}{%
   \expandafter\expandafter\expandafter\mdfsetup\expandafter%
    \expandafter\expandafter{\csname mdf@definestyle@defaultoptions\endcsname}%
}%
%    \end{macrocode}
% \end{macro}

% \begin{macro}{linewidth}
% make linewidth available for all styles:
% |mdfdefinedstyle|.
%    \begin{macrocode}
\ifnum\c@mdf@globalstyle@cnt&gt;0
 \define@key{mdf}{linewidth}{%
    \def\@tempa{#1}
    \mdf@iflength{\@tempa}%
     {\csxdef{mdfl@linewidth}{\the\mdf@templength}}%
     {\csxdef{mdfl@linewidth}{\the\mdf@templength}}%
     \setlength{\csname mdf@middlelinewidth@length\endcsname}%
       {\csname mdfl@linewidth\endcsname}%
 }% 
\fi

%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@print@space}
%  Option to type out the free vertical space of the current page.
%    \begin{macrocode}
\let\mdf@PackageNoInfo\@gobble
\newrobustcmd*\mdf@ifstrequal@expand{%
\expandafter\ifstrequal\expandafter{\mdf@printheight}%
}
\newrobustcmd*\mdf@print@space{%
  %case "none"
  \mdf@ifstrequal@expand{none}{\def\mdf@tempa{NoInfo}}{%
      %case "info"
      \mdf@ifstrequal@expand{info}{\def\mdf@tempa{Info}}{%
         %case "warning"
         \mdf@ifstrequal@expand{warning}{\def\mdf@tempa{Warning}}{%
            %case "unknown"
            \mdf@PackageWarning{Unknown key for printheight=\mdf@printheight^^J
                               use none, info or warning}%
             \def\mdf@tempa{none}%
         }%
      }%
  }%
\def\mdf@PackageInfoSpace{\csname mdf@Package\mdf@tempa\endcsname}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{new...}
%  Initialize all commands and length which will we used later
%    \begin{macrocode}
\newsavebox\mdf@frametitlebox
\newsavebox\mdf@footnotebox
\newsavebox\mdf@splitbox@one
\newsavebox\mdf@splitbox@two
\newsavebox\mdf@splitbox@save

\newlength\mdfsplitboxwidth
\newlength\mdfsplitboxtotalwidth
\newlength\mdfsplitboxheight
\newlength\mdfsplitboxdepth
\newlength\mdfsplitboxtotalheight
\newlength\mdfframetitleboxwidth
\newlength\mdfframetitleboxtotalwidth
\newlength\mdfframetitleboxheight
\newlength\mdfframetitleboxdepth
\newlength\mdfframetitleboxtotalheight
\newlength\mdffootnoteboxwidth
\newlength\mdffootnoteboxtotalwidth
\newlength\mdffootnoteboxheight
\newlength\mdffootnoteboxdepth
\newlength\mdffootnoteboxtotalheight
\newlength\mdftotallinewidth
\newlength\mdfboundingboxwidth
\newlength\mdfboundingboxtotalwidth
\newlength\mdfboundingboxheight
\newlength\mdfboundingboxdepth
\newlength\mdfboundingboxtotalheight
\newlength\mdf@freevspace@length
\newlength\mdf@horizontalwidthofbox@length
\newlength\mdf@verticalmarginwhole@length
\newlength\mdf@horizontalspaceofbox
\newlength\mdfsubtitleheight
\newlength\mdfsubsubtitleheight


\newbool{mdfsingleframe}\boolfalse{mdfsingleframe}
\newbool{mdffirstframe}\boolfalse{mdffirstframe}
\newbool{mdfmiddleframe}\boolfalse{mdfmiddleframe}
\newbool{mdflastframe}\boolfalse{mdflastframe}

\newtoggle{mdf@notfirstframetitle}\togglefalse{mdf@notfirstframetitle}%
\newtoggle{mdflastframe}\togglefalse{mdflastframe}

\newcounter{mdfcountframes}\setcounter{mdfcountframes}{0}
% Command to expand the tikz code. (see md-frame-1.mdf)
\newrobustcmd\mdfcreateextratikz{}

%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@lrbox,endmdf@lrbox}
% Modification of the default |\lrbox| and |\endlrbox|
%    \begin{macrocode}
\def\mdf@lrbox#1{%
  \mdf@patchamsthm%patch amsthm
 \setbox#1\vbox\bgroup%
   \color@begingroup%
     \mdf@horizontalmargin@equation%
     \columnwidth=\hsize%
     \textwidth=\hsize%
     \let\if@nobreak\iffalse%
     \let\if@noskipsec\iffalse%
     \let\par\@@par%
     \let\-\@dischyph%
     \let\'\@acci\let\`\@accii\let\=\@acciii%
     \parindent\z@ \parskip\z@skip%
     \linewidth\hsize%
     \@totalleftmargin\z@%
     \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip%
     \parfillskip\@flushglue \lineskip\normallineskip%
     \baselineskip\normalbaselineskip%
%%  \sloppy%
     \let\\\@normalcr%
     \mdf@par@local%New feature to restore parskip/parindent local in save box
     \ifbool{mdf@suppressfirstparskip}{\vspace*{-\parskip}}{}%
     \@afterindentfalse%
    %\@afterheading%
}
\def\endmdf@lrbox{\color@endgroup\egroup}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@ignorevbadness}
% Avoiding warnings during the splitting process by \Cmd{vsplit}.
%    \begin{macrocode}
\newrobustcmd*\mdf@ignorevbadness{%
   \edef\mdf@currentvbadness{\the\vbadness}%
   \vbadness=\@M%
   \afterassignment\mdf@restorevbadness}

\newrobustcmd*\mdf@restorevbadness{\vbadness=\mdf@currentvbadness\relax}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@patchamsth}
% The package \Pack{amsthm} provides a not compatible starting of theorem. So I
% have to change the header of amsthm.
%    \begin{macrocode}
\let\mdf@patchamsthm\relax
\AtBeginDocument{%
\@ifpackageloaded{amsthm}%
 {%
  \newrobustcmd\mdf@patchamsthm{%
   \let\mdf@deferred@thm@head\deferred@thm@head%
   \pretocmd{\deferred@thm@head}{\@inlabelfalse}%
      {\mdf@PackageInfo{mdframed detected package amsthm ^^J
                        changed the theorem header of amsthm\MessageBreak}%
      }{%
       \mdf@PackageError{mdframed detected package amsthm ^^J
                         changed the theorem header of amsthm
                         failed\MessageBreak}%
       }%
     }%
 }{}%
}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@trivlist,endmdf@trivlist}
% Modification of the default |\trivlist| and |\endtrivlist|.
%    \begin{macrocode}
\def\mdf@trivlist#1{%
  \edef\mdf@temp{%
    \topsep=\the\topsep\relax%
    \partopsep=\the\partopsep\relax%
    \parsep=\the\parsep\relax%
  }%
  \setlength{\topsep}{#1}%
  \topskip\z@%
  \partopsep\z@%
  \parsep\z@%
  \@nmbrlistfalse%
  \@trivlist%
  \labelwidth\z@%
  \leftmargin\z@%
  \itemindent\z@%
  \let\@itemlabel\@empty%
  \def\makelabel##1{##1}%
  \item\relax\mdf@temp\relax%
}
\let\endmdf@trivlist\endtrivlist
\patchcmd\endmdf@trivlist\@endparenv\mdf@endparenv{%
  \wlog{^^J****** mdframed patching \string\endmdf@trivlist}%
  \wlog{^^J****** -- success******^^J}%
  }{%
  \wlog{^^J****** mdframed patching \string\endmdf@trivlist}%
  \wlog{^^J****** -- failed******^^J}%
}
\def\mdf@endparenv{%
  \addpenalty\@endparpenalty\addvspace\mdf@skipbelow@length\@endpetrue}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@makebox@out,mdf@makebox@in}
%    \begin{macrocode}
\newrobustcmd*\mdf@makebox@out[2][\linewidth]{%
 \noindent\hb@xt@\z@{%
    \noindent\makebox[\dimexpr #1\relax][l]{#2}%
 \hss}%
}%
\newrobustcmd*\mdf@makebox@in[2][\mdf@userdefinedwidth@length]{%
 \noindent\makebox[\dimexpr #1\relax][l]{#2}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdfdefinestyle,mdfapptodefinestyle}
% See explanation of this commands in the main documenation.
%    \begin{macrocode}
\newrobustcmd*\mdfdefinestyle[2]{%
  \csdef{mdf@definestyle@#1}{#2}%
}
\newrobustcmd*\mdfapptodefinestyle[2]{%
 \ifcsundef{mdf@definestyle@#1}%
   {\mdf@PackageWarning{Unknown style #1}}%
   {\csappto{mdf@definestyle@#1}{,#2}}%
}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdflength,surroundwithmdframed}
% Helper macros to work with mdframed
%    \begin{macrocode}
\newrobustcmd*{\mdflength}[1]{\csuse{mdf@#1@length}}

\newrobustcmd*{\surroundwithmdframed}[2][]{%
  \BeforeBeginEnvironment{#2}{\begin{mdframed}[#1]}%
  \AfterEndEnvironment{#2}{\end{mdframed}}%
}
%    \end{macrocode}
% \end{macro}
%
%
%
% \begin{macro}{newmdenv,renewmdenv,newmdtheoremenv,mdtheorem}
% Defining of the new environment defintions.
%    \begin{macrocode}
\newrobustcmd*\newmdenv[2][]{%
  \newenvironment{#2}{%
     \mdfsetup{#1}%
     \begin{mdframed}%
    }{%
     \end{mdframed}%
  }%
}
\newrobustcmd*\renewmdenv[2][]{%
  \expandafter\let\csname #2\endcsname\relax%
  \expandafter\let\csname end#2\endcsname\relax%
  \newmdenv[#1]{#2}%
}%
%    \end{macrocode}
%  Definitions of the standard Theoerems surrounded by \Pack{mdframed}.
%    \begin{macrocode}
\DeclareDocumentCommand\newmdtheoremenv{O{} m o m o }{%
 \ifboolexpr{ test {\IfNoValueTF {#3}} and test {\IfNoValueTF {#5}} }%
    {\newtheorem{#2}{#4}}{%
     \IfValueTF{#3}{\newtheorem{#2}[#3]{#4}}{}%
     \IfValueTF{#5}{\newtheorem{#2}{#4}[#5]}{}%
    }%
  \BeforeBeginEnvironment{#2}{%
     \begin{mdframed}[#1]}%
  \AfterEndEnvironment{#2}{%
     \end{mdframed}}%
}
%    \end{macrocode}
% Compatible with \Pack{ntheorem}'s \Cmd{listoftheorems}.
%    \begin{macrocode}
\newrobustcmd*\mdf@thm@caption[2]{}
\AtBeginDocument{%
 \@ifpackageloaded{ntheorem}%
   {\renewrobustcmd*\mdf@thm@caption{\thm@thmcaption}}{}%
 }
%    \end{macrocode}
%
%
% \begin{macro}{mdf@checkntheorem}
% Command which checks only |ntheorem|. Later I will support also
% |thmtools|.
%    \begin{macrocode}
\newrobustcmd*\mdf@checkntheorem{%
  \ifbool{mdf@ntheorem}%
    {\ifundef{\theorempreskipamount}%
          {\mdf@PackageWarning{You have not loaded ntheorem yet}}%
          {\setlength{\theorempreskipamount}{\z@}%
           \setlength{\theorempostskipamount}{\z@}%
    }%
  }{}%
}
%    \end{macrocode}
% \end{macro}
%
% Defining a complete new theorem set by \Pack{mdframed}
%    \begin{macrocode}
\DeclareDocumentCommand{\mdtheorem}{ O{} m o m o }%
 {\ifcsdef{#2}%
   {\mdf@PackageWarning{Environment #2 already exits\MessageBreak}}%
   {%
    \IfNoValueTF {#3}%
     {%#3 not given -- number relationship
      \IfNoValueTF {#5}%
        {%#3+#5 not given
        \@definecounter{#2}%
        \expandafter\xdef\csname the#2\endcsname{\@thmcounter{#2}}%
        \newenvironment{#2}[1][]{%
          \refstepcounter{#2}%
          \ifstrempty{##1}%
            {\let\@temptitle\relax}%
            {%
             \def\@temptitle{\mdf@theoremseparator%
                             \mdf@theoremspace%
                             \mdf@theoremtitlefont%
                             ##1}%
             \mdf@thm@caption{#2}{{#4}{\csname the#2\endcsname}{##1}}%
             }%
          \begin{mdframed}[#1,frametitle={\strut#4\ \csname the#2\endcsname%
                                          \@temptitle}]}%
          {\end{mdframed}}%
        \newenvironment{#2*}[1][]{%
          \ifstrempty{##1}{\let\@temptitle\relax}{\def\@temptitle{:\ ##1}}%
          \begin{mdframed}[#1,frametitle={\strut#4\@temptitle}]}%
          {\end{mdframed}}%
        }%
        {%#5 given -- reset counter
        \@definecounter{#2}\@newctr{#2}[#5]%
        \expandafter\xdef\csname the#2\endcsname{\@thmcounter{#2}}%
        \expandafter\xdef\csname the#2\endcsname{%
               \expandafter\noexpand\csname the#5\endcsname \@thmcountersep%
                  \@thmcounter{#2}}%
        \newenvironment{#2}[1][]{%
          \refstepcounter{#2}%
          \ifstrempty{##1}%
            {\let\@temptitle\relax}%
            {%
             \def\@temptitle{\mdf@theoremseparator%
                             \mdf@theoremspace%
                             \mdf@theoremtitlefont%
                             ##1}%
             \mdf@thm@caption{#2}{{#4}{\csname the#2\endcsname}{##1}}%
             }
          \begin{mdframed}[#1,frametitle={\strut#4\ \csname the#2\endcsname%
                                          \@temptitle}]}%
          {\end{mdframed}}%
        \newenvironment{#2*}[1][]{%
          \ifstrempty{##1}%
            {\let\@temptitle\relax}%
            {%
             \def\@temptitle{\mdf@theoremseparator%
                             \mdf@theoremspace%
                             \mdf@theoremtitlefont%
                             ##1}%
             \mdf@thm@caption{#2}{{#4}{\csname the#2\endcsname}{##1}}%
             }%
          \begin{mdframed}[#1,frametitle={\strut#4\@temptitle}]}%
          {\end{mdframed}}%
        }%
     }%
     {%#3 given -- number relationship
        \global\@namedef{the#2}{\@nameuse{the#3}}%
        \newenvironment{#2}[1][]{%
          \refstepcounter{#3}%
          \ifstrempty{##1}%
            {\let\@temptitle\relax}%
            {%
             \def\@temptitle{\mdf@theoremseparator%
                             \mdf@theoremspace%
                             \mdf@theoremtitlefont%
                             ##1}%
             \mdf@thm@caption{#2}{{#4}{\csname the#2\endcsname}{##1}}%
             }
          \begin{mdframed}[#1,frametitle={\strut#4\ \csname the#2\endcsname%
                                          \@temptitle}]}%
          {\end{mdframed}}%
        \newenvironment{#2*}[1][]{%
          \ifstrempty{##1}{\let\@temptitle\relax}{\def\@temptitle{:\ ##1}}%
          \begin{mdframed}[#1,frametitle={\strut#4\@temptitle}]}%
          {\end{mdframed}}%
     }%
   }%
 }

%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdfframedtitleenv,mdf@@frametitle,
%               mdf@setopt@body,mdf@setopt@title}
% Default definition of the frame tile used by |mdframed|.
% \textcolor{red}{\bfseries Need a better documenation and must be improved!!!}
%    \begin{macrocode}
\newrobustcmd\mdfframedtitleenv[1]{%
  \mdf@lrbox{\mdf@frametitlebox}%
   \begingroup
     %%\parindent\z@\parskip\z@%
     \@afterheading
     \mdf@frametitlealignment%
     \leavevmode\color{\mdf@frametitlefontcolor}%
     \normalfont\mdf@frametitlefont{#1}%
     \mdf@@ignorelastdescenders%
     \par\unskip\ifvmode\nointerlineskip\hrule \@height\z@ \@width\hsize\fi%%
   \endgroup     
  \endmdf@lrbox\relax%
  \mdf@ignorevbadness%
  \setbox\mdf@frametitlebox=\vbox{\unvbox\mdf@frametitlebox}%
  \mdfframetitleboxwidth=\wd\mdf@frametitlebox\relax%
  \mdfframetitleboxheight=\ht\mdf@frametitlebox\relax%
  \mdfframetitleboxdepth=\dp\mdf@frametitlebox\relax%
  \mdfframetitleboxtotalheight=\dimexpr
                                  \ht\mdf@frametitlebox
                                  +\dp\mdf@frametitlebox%
                                  +\mdf@frametitleaboveskip@length
                                  +\mdf@frametitlebelowskip@length
                                \relax%
  \setbox\mdf@frametitlebox=%prevent frametitle to expand glue
     \vbox to \dimexpr\mdfframetitleboxheight+\mdfframetitleboxdepth\relax%
      {\unvbox\mdf@frametitlebox}%
}

\newrobustcmd\mdf@@frametitle@use{%
   \mdf@ignorevbadness%
   \setbox\mdf@splitbox@one=\vbox{%
       \parskip\z@\relax%
       \parindent\z@\relax%
       \offinterlineskip\relax%
       \unvcopy\mdf@frametitlebox\relax%
       \mdf@@frametitlerule\relax%
       \unvbox\mdf@splitbox@one\relax%
    }%
   \mdf@ignorevbadness%
   \setbox\mdf@splitbox@one=\vbox{\unvbox\mdf@splitbox@one}%
   \mdfsetup{innertopmargin=\mdf@frametitleaboveskip@length}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@footnoterule,mdf@footnoteoutput,mdf@footnoteinput}
% Support for footnotes. See source2e.
%    \begin{macrocode}
\newrobustcmd*\mdf@footnoterule{%
    \kern0\p@%
    \hrule \@width 1in \kern 2.6\p@}
    
\newrobustcmd*\mdf@footnoteoutput{%
     \ifvoid\@mpfootins\else%
          \nobreak%
          \vskip\mdf@footenotedistance@length%
          \normalcolor%
          \mdf@footnoterule%
          \unvbox\@mpfootins%
     \fi%
}

\newrobustcmd*\mdf@footnoteinput{%
   \def\@mpfn{mpfootnote}%
   \def\thempfn{\thempfootnote}%
   \c@mpfootnote\z@%
   \let\@footnotetext\@mpfootnotetext%
}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@styledefinition}
% The default frame method needs special handling.
%    \begin{macrocode}
\newrobustcmd*\mdf@styledefinition{%AVOID!!!Needed for framemethod=default
    \ifnumequal{\value{mdf@globalstyle@cnt}}{0}%
    {\deflength{\mdf@innerlinewidth@length}{\z@}%
     \deflength{\mdf@middlelinewidth@length}{\mdf@linewidth@length}%
     \deflength{\mdf@outerlinewidth@length}{\z@}%
     \let\mdf@innerlinecolor\mdf@linecolor%
     \let\mdf@middlelinecolor\mdf@linecolor%
     \let\mdf@outerlinecolor\mdf@linecolor%
    }{}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{detected@mdf@put@frame}
% Detect whether inside a non breakable environment.
%    \begin{macrocode}
\let\mdf@reserved@a\@empty
\newrobustcmd*\detected@mdf@put@frame{%
  \ifmdf@nobreak%Option nobreak=true?
     \def\mdf@reserved@a{\mdf@put@frame@standalone}%
  \else%
     \def\mdf@reserved@a{\mdf@put@frame}%
     \ifx\@captype\@undefined%
         \def\mdf@reserved@a{\mdf@put@frame}%
     \else%
         \mdf@PackageInfo{mdframed inside float  ^^J
                          mdframed uses option nobreak \mdframedpackagename}%
         \def\mdf@reserved@a{\mdf@put@frame@standalone}% 
     \fi%
     \if@minipage%
           \mdf@PackageInfo{mdframed inside minipage  ^^J
                           mdframed uses option nobreak \mdframedpackagename}%
           \def\mdf@reserved@a{\mdf@put@frame@standalone}%
     \fi%
     \ifinner%
          \mdf@PackageInfo{mdframed inside a box ^^J
                          mdframed uses option nobreak \mdframedpackagename}%
          \def\mdf@reserved@a{\mdf@put@frame@standalone}%
     \fi%
  \fi%
\mdf@reserved@a%
}
%    \end{macrocode}
% \end{macro}
%
%
%
%
% \begin{macro}{mdf@envdepth}
% Setting up a counter for the depth of the environment. Nesting of two
% \Env{mdframed} environments isn't recommended but I am trying to support
% the basic rules. 
%    \begin{macrocode}
\newcount\mdf@envdepth \mdf@envdepth=0
\@definecounter{mdf@env@i}
\@definecounter{mdf@env@ii}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@preenvsetting}
% Collect all definitions at the beginning of \Env{mdframed}
%    \begin{macrocode}
\newrobustcmd*\mdf@preenvsetting{%
   \needspace{\mdf@needspace@length}
   \mdf@twoside@checklength%
   \edef\mdf@par@local{%
      \parskip=\the\parskip\relax%
      \parindent=\the\parindent\relax}%
   \parskip\z@%
   \parindent\z@%
   \let\width\z@%
   \let\height\z@%
   \mdf@checkntheorem%
   \ifbool{mdf@draft}{%
       \ifdimgreater{\overfullrule}{0pt}{}{\setlength\overfullrule{5pt}}}{}%
   %% Nested environments and provide an extra counter.
   \ifnum\mdf@envdepth &gt;\tw@\@toodeep\else%
    \advance\mdf@envdepth\@ne
    \edef\mdf@depthctr{mdf@env@\romannumeral\the\mdf@envdepth}%
   \fi
   \mdf@styledefinition%
   \mdf@footnoteinput%
   \color{\mdf@fontcolor}%
   \mdf@font%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@@ignorelastdescenders}
% Collect all definitions at the beginning of \Env{mdframed}
%    \begin{macrocode}
\newrobustcmd*\mdf@@ignorelastdescenders{%
   \ifbool{mdf@ignorelastdescenders}%
     {%
      \par\strut\par%
      \unskip\unskip\setbox0=\lastbox
      \vspace*{\dimexpr\ht\strutbox-\baselineskip\relax}%
     }{}%
}
%    \end{macrocode}
% \end{macro}
%
%
%
% \begin{macro}{mdframed}
% The user environement.
%    \begin{macrocode}
\newenvironment{mdframed}[1][]{%
 \color@begingroup%
   \mdfsetup{userdefinedwidth=\linewidth,#1}%
   \mdf@startcode%
   \mdf@preenvsetting%
   \ifdefempty{\mdf@firstframetitle}{}%
           {\let\mdf@frametitlesave\mdf@frametitle%
            \let\mdf@frametitle\mdf@firstframetitle%
           }%
   \ifvmode\nointerlineskip\fi%
   \mdf@trivlist{\mdf@skipabove@length}%%
   \mdf@settings%
   \mdf@lrbox{\mdf@splitbox@one}%
   \mdf@startinnercode%
  }%
  {%
   \mdf@@ignorelastdescenders%
   \par\unskip\ifvmode\nointerlineskip\hrule \@height\z@ \@width\hsize\fi%%
   \ifmdf@footnoteinside%
      \def\mdf@reserveda{%
        \mdf@footnoteoutput%
        \mdf@endinnercode%
        \endmdf@lrbox%
        \ifdefempty{\mdf@frametitle}{}%
            {\mdfframedtitleenv{\mdf@frametitle}\mdf@@frametitle@use}%
        \detected@mdf@put@frame}%
   \else%
      \def\mdf@reserveda{%
        \mdf@endinnercode%
        \endmdf@lrbox%
        \ifdefempty{\mdf@frametitle}{}%
            {\mdfframedtitleenv{\mdf@frametitle}\mdf@@frametitle@use}%
        \detected@mdf@put@frame%
        \mdf@footnoteoutput%
        }%
   \fi%
   \mdf@reserveda%
  \aftergroup\endmdf@trivlist%
 \color@endgroup%
 \mdf@endcode%
}

%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@twoside@checklength,mdf@zref@label,if@mdf@pageodd,
%               mdf@pageisodd,mdf@pageiseven,mdf@@setzref}
% The whole bunch is used to work width twoside mode and uses the correct
% margins.
%    \begin{macrocode}
\newtoggle{md:checktwoside}
\settoggle{md:checktwoside}{false}
\newrobustcmd*\mdf@twoside@checklength{%
 \if@twoside%
   \ifbool{mdf@usetwoside}%
      {\mdf@PackageInfo{mdframed works in twoside mode}%
       \settoggle{md:checktwoside}{true}%
       \setlength\mdf@rightmargin@length{\mdf@outermargin@length}%
       \setlength\mdf@leftmargin@length{\mdf@innermargin@length}%
      }%
      {\mdf@PackageInfo{mdframed inside twoside mode but\MessageBreak
                       works with oneside mode}%
       \settoggle{md:checktwoside}{false}%
      }%
 \fi%
}

\newcounter{mdf@zref@counter}%keine doppelten laebes
\zref@newprop*{mdf@pagevalue}[0]{\number\value{page}}
\zref@addprop{\ZREF@mainlist}{mdf@pagevalue}
\newrobustcmd*\mdf@zref@label{%
   \stepcounter{mdf@zref@counter}%
   \zref@label{mdf@pagelabel-\number\value{mdf@zref@counter}}%
}
\newrobustcmd*\if@mdf@pageodd{%
 \zref@refused{mdf@pagelabel-\the\value{mdf@zref@counter}}%
 \ifodd\zref@extract{mdf@pagelabel-\the\value{mdf@zref@counter}}%
                    {mdf@pagevalue}%
    \setlength\mdf@rightmargin@length{\mdf@outermargin@length}%
    \setlength\mdf@leftmargin@length{\mdf@innermargin@length}%
 \else
    \setlength\mdf@rightmargin@length{\mdf@innermargin@length}%
    \setlength\mdf@leftmargin@length{\mdf@outermargin@length}%
 \fi%
}
\newrobustcmd*\mdf@@setzref{%
 \iftoggle{md:checktwoside}{\mdf@zref@label\if@mdf@pageodd}{}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@freepagevspace}
% The following lines are added by an inspiration of the great package 
% \Pack{multicol}.
%    \begin{macrocode}
\newrobustcmd*\mdf@freepagevspace{%
     \bgroup\@nobreakfalse\addpenalty\z@\egroup%added 29.5.12
     \penalty\@M\relax\vskip 2\baselineskip\relax%
     \penalty9999\relax\vskip -2\baselineskip\relax%
     \penalty9999%
     \ifdimequal{\pagegoal}{\maxdimen}%
          {\mdf@freevspace@length\vsize}%
          {\mdf@freevspace@length=\pagegoal\relax%
           \advance\mdf@freevspace@length by -\pagetotal\relax%
           \addtolength\mdf@freevspace@length{\dimexpr-\parskip\relax}\relax%
          }%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@advancelength@sub,mdf@advancelength@add}
% Command used for loop calculation
%    \begin{macrocode}
\newrobustcmd*\mdf@advancelength@sub[2]{%
  \advance #1 by -\csname mdf@#2@length\endcsname\relax%
}
\newrobustcmd*\mdf@advancelength@add[2]{%
  \advance #1 by \csname mdf@#2@length\endcsname\relax%
}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@horizontalmargin@equation}
% Compute the width of the box
%    \begin{macrocode}
\newrobustcmd*\mdf@horizontalmargin@equation{%
    \setlength{\mdf@horizontalspaceofbox}{\mdf@userdefinedwidth@length}%
    \mdf@dolist{\mdf@advancelength@sub{\mdf@horizontalspaceofbox}}{%
             leftmargin,outerlinewidth,middlelinewidth,%
             innerlinewidth,innerleftmargin,innerrightmargin,%
             innerlinewidth,middlelinewidth,outerlinewidth,%
             rightmargin}%
    \notbool{mdf@leftline}%
     {%
      \mdf@dolist{\mdf@advancelength@add{\mdf@horizontalspaceofbox}}%
        {innerlinewidth,middlelinewidth,outerlinewidth}%
     }{}% 
    \notbool{mdf@rightline}%
     {%
      \mdf@dolist{\mdf@advancelength@add{\mdf@horizontalspaceofbox}}%
        {innerlinewidth,middlelinewidth,outerlinewidth}%
     }{}%    
    \hsize=\mdf@horizontalspaceofbox%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@keeplines@single}
% Space in relation of horizontal lines.
%    \begin{macrocode}
\newrobustcmd*\mdf@keeplines@single{%
  \notbool{mdf@topline}%
     {%
      \mdf@dolist{\mdf@advancelength@sub{\mdf@verticalmarginwhole@length}}%
        {innerlinewidth,middlelinewidth,outerlinewidth}%
     }{}%
  \notbool{mdf@bottomline}%
     {%
      \mdf@dolist{\mdf@advancelength@sub{\mdf@verticalmarginwhole@length}}%
        {innerlinewidth,middlelinewidth,outerlinewidth}%
     }{}%
}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@reset}
% Reset changes
%    \begin{macrocode}
\protected@edef\mdf@reset{\boxmaxdepth\the\boxmaxdepth% 
                          \splittopskip\the\splittopskip}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@put@frame@standalone}
% Output of |mdframed| inside a non breakable environement.
%    \begin{macrocode}
\newrobustcmd*\mdf@put@frame@standalone{\relax%
   \ifvoid\mdf@splitbox@one\relax%
      \mdf@PackageWarning{The environment is empty\MessageBreak}%
   \else%
      %Hier berechnung Box-Inhalt+Rahmen oben und unten
      \setlength{\mdf@verticalmarginwhole@length}%
                 {\dimexpr\ht\mdf@splitbox@one+\dp\mdf@splitbox@one\relax}%
      \mdf@dolist{\mdf@advancelength@add{\mdf@verticalmarginwhole@length}}{%
                  outerlinewidth,middlelinewidth,innerlinewidth,%
                  innertopmargin,innerbottommargin,innerlinewidth,%
                  middlelinewidth,outerlinewidth,extratopheight}%
      \mdf@keeplines@single%
      \begingroup%
        \mdf@@setzref%
        \booltrue{mdfsingleframe}%
        \mdf@beforesingleframe%
        \mdf@putbox@single%
        \mdf@aftersingleframe%
      \endgroup%Output no break
   \fi%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@put@frame}
% Output of |mdframed| inside a breakable environement.
% The comparison are only check whether the contents must be split or not.
%    \begin{macrocode}
\def\mdf@put@frame{\relax%
\ifvoid\mdf@splitbox@one\relax
  \mdf@PackageWarning{The environment is empty\MessageBreak}%
  \let\mdf@reserved@a\relax%
\else
  \setlength\mdfboundingboxwidth{\wd\mdf@splitbox@one}%
  \mdf@print@space%
  \mdf@freepagevspace%gives \mdf@freevspace@length
  \mdf@PackageInfoSpace{\the\mdf@freevspace@length before the 
                        beginning of \MessageBreak
                        the environment ending on input line \MessageBreak}%
  \ifdimless{\mdf@freevspace@length}{2\baselineskip}%
    {%
     \mdf@PackageInfo{Not enough space on this page}%
     \vfill\eject%
     \def\mdf@reserved@a{\mdf@put@frame}%
    }{%
      %Hier berechnung Box-Inhalt+Rahmen oben und unten
      \setlength{\mdf@verticalmarginwhole@length}%
                {\dimexpr\ht\mdf@splitbox@one+\dp\mdf@splitbox@one\relax}%
      \mdf@dolist{\mdf@advancelength@add{\mdf@verticalmarginwhole@length}}%
                 {%
                  outerlinewidth,middlelinewidth,innerlinewidth,%
                  innertopmargin,innerbottommargin,%
                  innerlinewidth,middlelinewidth,outerlinewidth,extratopheight}%
      \mdf@keeplines@single%
      \ifdimless{\mdf@verticalmarginwhole@length}{\mdf@freevspace@length}%
         {%enough space / no break
          \begingroup%
            \mdf@@setzref%
            \booltrue{mdfsingleframe}%
            \mdf@beforesingleframe%
            \mdf@putbox@single%
            \mdf@aftersingleframe%
          \endgroup%Output no break
          \let\mdf@reserved@a\relax%
         }%
         {%
          \def\mdf@reserved@a{\mdf@put@frame@i}%need to split
         }%
    }%
\fi%
\mdf@reserved@a%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@put@frame@i}
% Output of the first splitted box.
%    \begin{macrocode}
\def\mdf@put@frame@i{%Box must be splitted
 \mdf@freepagevspace%gives \mdf@freevspace@length
% minimum 2 lines for one page:
 \dimen@=\the\mdf@freevspace@length\relax%
 \dimen@i=\mdf@innertopmargin@length\relax%
 \mdf@dolist{\mdf@advancelength@add{\dimen@i}}%
   {innerlinewidth,middlelinewidth,outerlinewidth}%
 \advance\dimen@i by 2\baselineskip\relax%
 \ifdimless{\dimen@}{\dimen@i}%
   {\hrule \@height\z@ \@width\hsize%
    \vfill\eject%no room for two lines
    \def\mdf@reserved@a{\mdf@put@frame}%
   }%
   {%enough space for first part
    \mdf@dolist{\mdf@advancelength@sub{\dimen@}}{%calculate with \dimen@
      outerlinewidth,middlelinewidth,innerlinewidth,%width of top rule
      innertopmargin,splitbottomskip}%width of length
    \ifboolexpr{ bool {mdf@everyline} and bool {mdf@bottomline} }%
      {%need space for bottomline
       \mdf@dolist{\mdf@advancelength@sub{\dimen@}}%
         {innerlinewidth,middlelinewidth,outerlinewidth}%
      }{}%
    \ifbool{mdf@topline}{}%%no top line
       {%
           \mdf@dolist{\mdf@advancelength@add{\dimen@}}%
             {innerlinewidth,middlelinewidth,outerlinewidth}%
       }%
    \advance\dimen@.8\pageshrink%
    \ifdimless{\ht\mdf@splitbox@one+\dp\mdf@splitbox@one}{\dimen@}%
       {\mdf@PackageWarning{You got a bad break\MessageBreak
                            because the last box will be empty\MessageBreak
                            you have to change it manually\MessageBreak
                            by changing the text, the space\MessageBreak
                            or something else}%
        \advance\dimen@ by -1.8\baselineskip\relax%needed????????????????????
       }{}%
    \setbox\mdf@splitbox@save=\vbox{\unvcopy\mdf@splitbox@one}%save original
    \splitmaxdepth\z@ \splittopskip\mdf@splittopskip@length%
    \mdf@ignorevbadness%
    \setbox\mdf@splitbox@two\vsplit\mdf@splitbox@one to \dimen@\relax%
    \setbox\mdf@splitbox@two\vbox{\unvbox\mdf@splitbox@two}%
    \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one}%
    \ifdimgreater{\ht\mdf@splitbox@two+\dp\mdf@splitbox@two}{\dimen@}%
      {%splitted wrong
       \mdf@PackageInfo{Box was splittet wrong^^J
                        starting loop to iterate 
                        the splitting point\MessageBreak}%
       \setbox\mdf@splitbox@one=\vbox{\unvcopy\mdf@splitbox@save}%
       \dimen@i=\dimen@\relax%
       \@tempcnta=\z@\relax%
       \loop
        \ifdim\dimexpr\ht\mdf@splitbox@two+\dp\mdf@splitbox@two\relax&gt;\dimen@ 
          \advance\dimen@i by -\p@\relax%
          \advance\@tempcnta by \@ne\relax%
%%          \wlog{***mdframed \string\@tempcnta=\the\@tempcnta***}
%%          \wlog{***mdframed \string\dimen@i=\the\dimen@i***}
          \mdf@ignorevbadness%          
          \setbox\mdf@splitbox@one=\vbox{\unvcopy\mdf@splitbox@save}%
          \splitmaxdepth\z@ \splittopskip\mdf@splittopskip@length%
          \mdf@ignorevbadness%
          \setbox\mdf@splitbox@two\vsplit\mdf@splitbox@one to \dimen@i\relax%
          \setbox\mdf@splitbox@two\vbox{\unvbox\mdf@splitbox@two}%
          \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one}%
          \ifnum\@tempcnta&gt;100
            \let\iterate\relax%
            \mdf@PackageWarning{correct box splittet fails^^J
                                It seems you are using a non splittable
                                contents\MessageBreak}%
            \setbox\mdf@splitbox@one=\vbox{\unvcopy\mdf@splitbox@save}%
            \setbox\mdf@splitbox@two=\vbox{}%
            \def\mdf@reserved@a{\mdf@put@frame}%
          \fi
       \repeat%
      }{}%
    \ifvoid\mdf@splitbox@one\relax%
      \mdf@PackageWarning{You got a bad break because the splittet box 
                          is empty^^J
                          You have to change the page settings^^J
                          like enlargethispage or something else^^J
                          the package increases do 
                          \enlargethispage{\baselineskip}\MessageBreak}%
      \setbox\mdf@splitbox@one=\vbox{\unvcopy\mdf@splitbox@save}
      \enlargethispage{\baselineskip}%
      \def\mdf@reserved@a{\mdf@put@frame}%
    \fi%
   % Test if first splitted frame doesn't have the original with.
   % occurs with math
    \ifdim\wd\mdf@splitbox@two=\wd\mdf@splitbox@one\relax
    \else%
      \mdf@PackageInfo{You first box width is to small^^J
                       mdframed fixed it\MessageBreak}%
      \setbox\mdf@splitbox@two=\vbox%
                   {%
                    \hrule \@height\z@ \@width\mdfboundingboxwidth\relax%
                    \unvcopy\mdf@splitbox@two%
                   }%
    \fi%
    \ifvoid\mdf@splitbox@two\relax%
        {%
         \hrule \@height\f@size pt \@width\z@%
         \hrule \@height\z@ \@width\hsize}%
         \setbox\mdf@splitbox@one=\vbox{\unvcopy\mdf@splitbox@save}%
         \def\mdf@reserved@a{\mdf@put@frame%
        }%
     \else%
        \ifdimequal{\ht\mdf@splitbox@two}{0pt}%
          {%
           \hrule \@height\z@ \@width\hsize%
           \vfill\eject%
           \setbox\mdf@splitbox@one=\vbox{\unvcopy\mdf@splitbox@save}%
           \def\mdf@reserved@a{\mdf@put@frame}%
          }%
          {%
           \begingroup%
             \mdf@@setzref%
             \mdf@beforebreak%
             \booltrue{mdffirstframe}%
             \mdf@putbox@first%
             \mdf@afterbreak%
           \endgroup%
           \hrule \@height\z@ \@width\hsize%
           \vfill\eject%
           \def\mdf@reserved@a{\mdf@put@frame@ii}%
          }%
     \fi%
   }%
\mdf@reserved@a%
}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@put@frame@ii}
% Output of the middle and last box.
%    \begin{macrocode}
\def\mdf@put@frame@ii{%
  \setlength{\mdf@freevspace@length}{\vsize}%
    \ifbool{mdf@repeatframetitle}%
      {%repeating title -- more robust using hooks.
       \toggletrue{mdf@notfirstframetitle}%
       \splitmaxdepth\z@ \splittopskip\z@%
       \setbox\mdf@splitbox@one=\vbox{\break\unvbox\mdf@splitbox@one}%
       \mdf@ignorevbadness%
       \setbox0=\vsplit\mdf@splitbox@one to \z@\relax%
       \setbox\mdf@splitbox@one=\vbox{\unvbox\mdf@splitbox@one}%
       \setbox\mdf@splitbox@one\vbox%
          {%
           \parskip\z@\relax%
           \parindent\z@\relax%
%           \offinterlineskip\relax%
           \vskip\mdf@frametitleaboveskip@length%
           \unvcopy\mdf@frametitlebox\relax%
           \mdf@@frametitlerule\relax%
           \unvbox\mdf@splitbox@one\relax%
          }%
       \setbox\mdf@splitbox@one=\vbox{\unvbox\mdf@splitbox@one}%
      }{}%
  \setlength{\dimen@}{\dimexpr\ht\mdf@splitbox@one+\dp\mdf@splitbox@one\relax}%
  \mdf@dolist{\mdf@advancelength@add{\dimen@}}%
        {innerbottommargin,innerlinewidth,middlelinewidth,outerlinewidth}%
  \ifboolexpr { bool {mdf@everyline} and bool {mdf@topline} }%
    {%
     \mdf@dolist{\mdf@advancelength@add{\dimen@}}%
        {innerlinewidth,middlelinewidth,outerlinewidth}%
    }{}%
   \notbool{mdf@bottomline}%remove bottom if neccessary
     {%
       \mdf@dolist{\mdf@advancelength@sub{\dimen@}}%
         {innerlinewidth,middlelinewidth,outerlinewidth}%
     }{}%
% Test whether the complete height of the frame fits on the current page
   \ifdimgreater{\dimen@}{\mdf@freevspace@length}%
    {%have a middle box
     \advance\mdf@freevspace@length by -\mdf@splitbottomskip@length\relax%
     \ifbool{mdf@everyline}%regard top and bottom if everyline is used
       {%
        \ifbool{mdf@topline}%
          {%
           \mdf@dolist{\mdf@advancelength@sub{\mdf@freevspace@length}}%
             {innerlinewidth,middlelinewidth,outerlinewidth}%
          }{}%
        \ifbool{mdf@bottomline}%
          {%
           \mdf@dolist{\mdf@advancelength@sub{\mdf@freevspace@length}}%
             {innerlinewidth,middlelinewidth,outerlinewidth}%
          }{}%
       }{}%
     \setbox\mdf@splitbox@save=\vbox{\unvcopy\mdf@splitbox@one}%
     \splitmaxdepth\z@ \splittopskip\mdf@splittopskip@length%
     \mdf@ignorevbadness%
     \setbox\mdf@splitbox@two\vsplit\mdf@splitbox@one to \mdf@freevspace@length%
     \setbox\mdf@splitbox@two\vbox{\unvbox\mdf@splitbox@two}%
     \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one}%
     \ifdimgreater{\ht\mdf@splitbox@two+\dp\mdf@splitbox@two}%
                  {\mdf@freevspace@length}%
       {%splitted wrong
        \mdf@PackageInfo{Box was splittet wrong^^J
                         starting loop to iterate 
                         the splitting point\MessageBreak}%
        \dimen@i=\mdf@freevspace@length%\relax
        \@tempcnta=\z@\relax
        \loop
        \ifdim\dimexpr\ht\mdf@splitbox@two+\dp\mdf@splitbox@two\relax&gt;%
              \mdf@freevspace@length\relax        
          \advance\dimen@i by -\p@\relax%     
          \advance\@tempcnta by \@ne\relax%
          \ifnum\@tempcnta&gt;100
            \let\iterate\relax%
            \mdf@PackageWarning{correct box splittet fails^^J
                                It seems you are using a non splittable
                                contents\MessageBreak}%
          \fi
          \mdf@ignorevbadness%
          \setbox\mdf@splitbox@one=\vbox{\unvcopy\mdf@splitbox@save}%
          \splitmaxdepth\z@ \splittopskip\mdf@splittopskip@length%
          \mdf@ignorevbadness%
          \setbox\mdf@splitbox@two\vsplit\mdf@splitbox@one to \dimen@i\relax%
          \setbox\mdf@splitbox@two\vbox{\unvbox\mdf@splitbox@two}%
          \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one}%
        \repeat%
       }{}%
     \ifvoid\mdf@splitbox@one\relax%
        \mdf@PackageWarning{You got a bad break because the splittet box is 
                            empty^^J
                            You have to change the page settings^^J
                            like enlargethispage or something else^^J
                            the package increases do 
                            \enlargethispage{\baselineskip}\MessageBreak}%
        \setbox\mdf@splitbox@one=\vbox{\unvcopy\mdf@splitbox@save}%
        \enlargethispage{\baselineskip}%
        \def\mdf@reserved@a{\mdf@put@frame@ii}%
     \else
      \setbox\mdf@splitbox@two=\vbox%
                   {%
                    \hrule \@height\z@ \@width\mdfboundingboxwidth\relax%
                    \unvcopy\mdf@splitbox@two%
                   }%
        \begingroup%
          \mdf@@setzref%
          \booltrue{mdfmiddleframe}%
          \mdf@beforebreak%
          \mdf@putbox@middle%
          \mdf@afterbreak%
        \endgroup%
          \hrule \@height\z@ \@width\hsize%  
          \vfill\eject%
          \def\mdf@reserved@a{\mdf@put@frame@ii}%
        \fi
     }%End middle box case
     {%start last box case
      \ifvoid\mdf@splitbox@one
           \mdf@PackageWarning{You got a bad break\MessageBreak
                               because the last split box is empty\MessageBreak
                               You have to change the settings}%%
           \setbox\mdf@splitbox@one=\vbox%
                  {%
                   \unvbox\mdf@splitbox@one%
                   \hrule \@height\z@ \@width\mdfboundingboxwidth
                  }%
      \fi%
      \ifdimless{\ht\mdf@splitbox@one}{1sp}%
         {%
          \mdf@PackageWarning{You got a bad break\MessageBreak
                              because the last split box is empty\MessageBreak
                              You have to change the settings}%

          \let\mdf@reserved@a\relax%
          \setbox\mdf@splitbox@one=\vbox%
                 {%
                  \unvbox\mdf@splitbox@one%
                  \hrule \@height\z@ \@width\mdfboundingboxwidth
                 }%
         }{}%
      \begingroup%
      \toggletrue{mdflastframe}%
      \mdf@beforebreak%
      \begingroup%
        \mdf@@setzref%
        \booltrue{mdflastframe}%
        \mdf@beforelastframe%
        \mdf@putbox@second%
        \mdf@afterlastframe%
      \endgroup%
      \hrule \@height\z@ \@width\hsize%
      \mdf@afterbreak%
      \endgroup%
      \let\mdf@reserved@a\relax%
     }%
  \mdf@reserved@a%
}

%    \end{macrocode}
% \end{macro}
%
%
%
% \begin{macro}{mdfsubtitle}
% 
%    \begin{macrocode}
\newrobustcmd\mdfsubtitle[2][]%
{%
 \begingroup
  \penalty-9995%set a breakpoint before the subtitle
  \parindent\z@\relax%
  \parskip\z@\relax%
  \mdfsetup{#1}%only for subtitle options
  \par\addvspace{\mdf@subtitleaboveskip@length}%
  \setbox\z@=\vbox{%
      \mdf@frametitlealignment%
      \mdf@subtitlefont{#2}%
      \mdf@@ignorelastdescenders%
      \relax}%
  \setbox\z@=\vbox{\unvbox\z@}%
  \setbox\z@=\vbox{%
       \parskip\z@\relax%
       \parindent\z@\relax%
       \offinterlineskip\relax%
       \vbox to \mdf@subtitleinneraboveskip@length{}%
       \unvbox\z@\relax%
       \vbox to \mdf@subtitleinnerbelowskip@length{}%
    }%\z@ contains the subtitle+required length
  \setlength{\mdfsubtitleheight}{\dimexpr\ht\z@+\dp\z@\relax}
  \setbox\z@=\vbox to \mdfsubtitleheight {\unvbox\z@}%
  % \dimen@ is now the complete width
  \mdf@templength=\linewidth\relax%
  \mdf@dolist{\mdf@advancelength@add{\mdf@templength}}%
    {innerleftmargin,innerrightmargin}%
  \offinterlineskip\relax%
  \ifbool{mdf@subtitleaboveline}{\mdf@drawsubtitleaboveline\par}{}%
  \mdf@drawsubtitlebackground%
  \box\z@%
  \ifbool{mdf@subtitlebelowline}{\mdf@drawsubtitlebelowline}{}% 
  \par\unskip\ifvmode\nointerlineskip\hrule \@height\z@ \@width\hsize\fi%
  \penalty 9995%
  \addvspace{\mdf@subtitlebelowskip@length}%
 \endgroup%
 \@afterheading%
}

\newrobustcmd\mdfsubsubtitle[2][]%
{%
 \begingroup
  \penalty-9995%set a breakpoint before the subtitle
  \parindent\z@\relax%
  \parskip\z@\relax%
  \mdfsetup{#1}%only for subtitle options
  \par\addvspace{\mdf@subsubtitleaboveskip@length}%
  \setbox\z@=\vbox{%
      \mdf@frametitlealignment%
      \mdf@subsubtitlefont{#2}%
      \mdf@@ignorelastdescenders%
      \relax}%
  \setbox\z@=\vbox{\unvbox\z@}%
  \setbox\z@=\vbox{%
       \parskip\z@\relax%
       \parindent\z@\relax%
       \offinterlineskip\relax%
       \vbox to \mdf@subsubtitleinneraboveskip@length{}%
       \unvbox\z@\relax%
       \vbox to \mdf@subsubtitleinnerbelowskip@length{}%
    }%\z@ contains the subtitle+required length
  \setlength{\mdfsubsubtitleheight}{\dimexpr\ht\z@+\dp\z@\relax}
  \setbox\z@=\vbox to \mdfsubsubtitleheight {\unvbox\z@}%
  % \dimen@ is now the complete width
  \mdf@templength=\linewidth\relax%
  \mdf@dolist{\mdf@advancelength@add{\mdf@templength}}%
    {innerleftmargin,innerrightmargin}%
  \offinterlineskip\relax%
  \ifbool{mdf@subsubtitleaboveline}{\mdf@drawsubtitleaboveline\par}{}%
  \mdf@drawsubtitlebackground%
  \box\z@%
  \ifbool{mdf@subsubtitlebelowline}{\mdf@drawsubtitlebelowline}{}% 
  \par\unskip\ifvmode\nointerlineskip\hrule \@height\z@ \@width\hsize\fi%
  \penalty 9995%
  \addvspace{\mdf@subsubtitlebelowskip@length}%
 \endgroup%
 \@afterheading%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@test@ltrb,mdf@test@ltr,mdf@test@ltb,mdf@test@trb,^^A
%               mdf@test@lrb,mdf@test@lb,mdf@test@rb,^^A
%               mdf@test@tr,mdf@test@lt,mdf@test@lr,mdf@test@tb,mdf@test@l,^^A
%               mdf@test@r,mdf@test@t,mdf@test@b,mdf@test@noline}
% Short forms of checking the option which lines should be drawn.
%    \begin{macrocode}
%%%%    _____t_____
%%%%   |           |
%%%%   |           |
%%%%   |           |
%%%%  l|           |r
%%%%   |           |
%%%%   |           |
%%%%   |___________|
%%%%         b
%all lines
\newrobustcmd*\mdf@test@ltrb{%
    \ifboolexpr{ (bool {mdf@topline}) and (bool {mdf@bottomline})
                 and (bool {mdf@leftline}) and (bool {mdf@rightline})}}
%three lines
\newrobustcmd*\mdf@test@ltr{%
    \ifboolexpr{ (bool {mdf@topline}) and not (bool {mdf@bottomline})
                 and (bool {mdf@leftline}) and (bool {mdf@rightline})}}
\newrobustcmd*\mdf@test@ltb{%
    \ifboolexpr{ (bool {mdf@topline}) and (bool {mdf@bottomline})
                 and (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
\newrobustcmd*\mdf@test@trb{%
    \ifboolexpr{ (bool {mdf@topline}) and (bool {mdf@bottomline})
                 and not (bool {mdf@leftline}) and (bool {mdf@rightline})}}
\newrobustcmd*\mdf@test@lrb{%
    \ifboolexpr{ not (bool {mdf@topline}) and (bool {mdf@bottomline})
                 and (bool {mdf@leftline}) and (bool {mdf@rightline})}}
%two lines
\newrobustcmd*\mdf@test@lb{%
    \ifboolexpr{ not (bool {mdf@topline}) and (bool {mdf@bottomline})
                 and (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
\newrobustcmd*\mdf@test@rb{%
    \ifboolexpr{ not (bool {mdf@topline}) and (bool {mdf@bottomline})
                 and not (bool {mdf@leftline}) and (bool {mdf@rightline})}}
\newrobustcmd*\mdf@test@tr{%
    \ifboolexpr{ (bool {mdf@topline}) and not (bool {mdf@bottomline})
                 and not (bool {mdf@leftline}) and (bool {mdf@rightline})}}
\newrobustcmd*\mdf@test@lt{%
    \ifboolexpr{ (bool {mdf@topline}) and not (bool {mdf@bottomline})
                 and (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
\newrobustcmd*\mdf@test@lr{%
    \ifboolexpr{ not (bool {mdf@topline}) and not (bool {mdf@bottomline})
                 and (bool {mdf@leftline}) and (bool {mdf@rightline})}}
\newrobustcmd*\mdf@test@tb{%
    \ifboolexpr{ (bool {mdf@topline}) and (bool {mdf@bottomline})
                 and not (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
%single lines
\newrobustcmd*\mdf@test@l{%
    \ifboolexpr{ not (bool {mdf@topline}) and not (bool {mdf@bottomline})
                 and (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
\newrobustcmd*\mdf@test@r{%
    \ifboolexpr{ not (bool {mdf@topline}) and not (bool {mdf@bottomline})
                 and not (bool {mdf@leftline}) and (bool {mdf@rightline})}}
\newrobustcmd*\mdf@test@t{%
    \ifboolexpr{ (bool {mdf@topline}) and not (bool {mdf@bottomline})
                 and not (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
\newrobustcmd*\mdf@test@b{%
    \ifboolexpr{ not (bool {mdf@topline}) and (bool {mdf@bottomline})
                 and not (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
%no lines
\newrobustcmd*\mdf@test@noline{%
    \ifboolexpr{ not (bool {mdf@topline}) and not (bool {mdf@bottomline})
                 and not (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
\newrobustcmd*\mdf@test@single{%
    \ifboolexpr{ not (test {\mdf@test@ltrb} or test {\mdf@test@ltr} or 
                 test {\mdf@test@ltb} or test {\mdf@test@trb} or 
                 test {\mdf@test@lrb}  or test {\mdf@test@lb} or 
                 test {\mdf@test@rb} or test {\mdf@test@tr} or
                 test {\mdf@test@lt} ) }}
%
%    \end{macrocode}
% \end{macro}
%
%
%
%    \begin{macrocode}
% % %\DisableKeyvalOption[action=warning,package=mdframed]{mdf}{framemethod}%
\DisableKeyvalOption[action=warning,package=mdframed]{mdf}{xcolor}%

 \endinput
%    \end{macrocode}
%
%\iffalse
%    \begin{macrocode}
%&lt;/package&gt;
%    \end{macrocode}
%\fi
%
%\iffalse
%    \begin{macrocode}
%&lt;*mdframedefault&gt;
%    \end{macrocode}
%\fi
% \subsection{The Explanation of md-frame-0.mdf}
%    \begin{macrocode}
%% Style file for mdframed for package option `framemethod=default`
%% 
%% This package may be distributed under the terms of the LaTeX Project
%% Public License, as described in lppl.txt in the base LaTeX distribution.
%% Either version 1.0 or, at your option, any later version.
%%
%    \end{macrocode}
%
% \begin{macro}{mdframedOpackagename}
% local settings
%    \begin{macrocode}
\def\mdframedOpackagename{md-frame-0}
\ProvidesFile{md-frame-0.mdf}%
    [\mdfmaindate\ %
     \mdversion: \mdframedOpackagename]
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@background@default,mdf@linecolor@default,^^A
%               mdf@linecolor@bottom}
% short command
%    \begin{macrocode}
\def\mdf@background@default{\color{\mdf@backgroundcolor}}
\def\mdf@frametitlebackground@default{\color{\mdf@frametitlebackgroundcolor}}
\def\mdf@shadow@default{\color{\mdf@shadowcolor}}
\def\mdf@innerlinecolor@default{\color{\mdf@innerlinecolor}}
\def\mdf@middlelinecolor@default{\color{\mdf@middlelinecolor}}
\def\mdf@outerlinecolor@default{\color{\mdf@outerlinecolor}}
\def\mdf@frametitlerulecolor@default{\color{\mdf@frametitlerulecolor}}
\let\mdf@linecolor@default\mdf@middlelinecolor@default
\def\mdf@@frametitlerule{%
  \ifbool{mdf@frametitlerule}{%
   \vbox{\hsize\mdfframetitleboxwidth%
     \par\unskip\vskip\mdf@frametitlebelowskip@length%
     \rlap{\noindent\hspace*{-\mdf@innerleftmargin@length}%
     \mdf@frametitlerulecolor@default%
     \rule{\dimexpr\mdfframetitleboxwidth%
           +\mdf@innerleftmargin@length
           +\mdf@innerrightmargin@length\relax
          }{\mdf@frametitlerulewidth@length}%
       }\hrule \@height\z@ \@width\hsize}%
  }{%
   \vbox{\hsize\mdfframetitleboxwidth%
     \par\unskip\vskip\mdf@frametitlebelowskip@length%
     \rlap{\noindent\hspace*{-\mdf@innerleftmargin@length}%
     \mdf@frametitlerulecolor@default%
     \rule{\dimexpr\mdfframetitleboxwidth%
           +\mdf@innerleftmargin@length
           +\mdf@innerrightmargin@length\relax
          }{\z@}%
       }\hrule \@height\z@ \@width\hsize}%
    }%
  \iftoggle{mdf@notfirstframetitle}%
    {%
      \par\unskip\vskip\mdf@splittopskip@length%
    }%
    {%
      \par\unskip\vskip\mdf@innertopmargin@length%
    }%
}%
  
%    \end{macrocode}
% \end{macro}
%
%
%
% \begin{macro}{mdf@drawsubtitleaboveline,mdf@drawsubtitlebelowline,^^A
%              mdf@drawsubtitlebackground}
%  
%    \begin{macrocode}
%default:
\def\mdf@drawsubtitleaboveline{%
 \rlap{%
  \hspace*{-\mdf@innerleftmargin@length}%
  \color{\mdf@subtitleabovelinecolor}%
  \rule{\mdf@templength}{\mdf@subtitleabovelinewidth@length}%
 }%
}
\def\mdf@drawsubtitlebelowline{%
 \rlap{%
  \hspace*{-\mdf@innerleftmargin@length}%
  \color{\mdf@subtitlebelowlinecolor}%
  \rule{\mdf@templength}{\mdf@subtitlebelowlinewidth@length}%
 }%
}
\def\mdf@drawsubtitlebackground{%
 \rlap{\smash{%
  \hspace*{-\mdf@innerleftmargin@length}%
  \color{\mdf@subtitlebackgroundcolor}%
  \rule[-\mdfsubtitleheight]{\mdf@templength}{\mdfsubtitleheight}%
 }}%
}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@putbox@single,mdf@frame@background@single,^^A
%               mdf@frame@topandbottomline@single,mdf@frame@leftline@single,^^A
%               mdf@frame@rightline@single,mdf@frame@rightline@single}
% The frame of of a non splitted contents of mdframed
%    \begin{macrocode}
\def\mdf@frame@background@single{%
  \ifbool{mdf@shadow}%
   {%
    \rlap%
     {%
      \smash%
       {%
        \mdf@shadow@default%
         \rule[\dimexpr
                -\mdfboundingboxdepth
                -\mdf@shadowsize@length
                \ifbool{mdf@bottomline}{-\mdf@middlelinewidth@length}{}
              \relax]%
             {\dimexpr
                \mdfboundingboxtotalwidth
                +\mdf@shadowsize@length
                \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}
              \relax}%
             {\dimexpr
                \mdfboundingboxtotalheight
                +\mdf@shadowsize@length
                \ifbool{mdf@bottomline}{+\mdf@middlelinewidth@length}{}
              \relax}%
       }%
     }%
   }{}%
  \rlap%
   {%
    \mdf@background@default%
    \rule[-\mdfboundingboxdepth]%
         {\mdfboundingboxtotalwidth}%
         {\mdfboundingboxtotalheight}%
   }%
}%
\def\mdf@frame@frametitlebackground@single{%
  \rlap%
   {%
    \mdf@frametitlebackground@default%
    \rule[\dimexpr
            -\mdfboundingboxdepth
            +\mdfboundingboxtotalheight
            -\mdfframetitleboxtotalheight
          \relax]%
         {\mdfboundingboxtotalwidth}%
         {\mdfframetitleboxtotalheight}%
   }%
}%
\def\mdf@frame@topline@single{%
  \rlap%
   {%
    \mdf@linecolor@default%
    \ifbool{mdf@topline}%
      {%
       \rule[\dimexpr
               \mdfboundingboxheight
               -\mdfboundingboxdepth%
               +\mdf@innerbottommargin@length
               +\mdf@innertopmargin@length
             \relax]%
            {\mdfboundingboxtotalwidth}%
            {\mdf@middlelinewidth@length}%
      }{}%
   }%
}%
\def\mdf@frame@bottomline@single{%
  \rlap%
   {%
    \ifbool{mdf@leftline}%
      {%
       \hspace*{-\mdf@middlelinewidth@length}%
      }{}%
    \mdf@linecolor@default%
    \ifbool{mdf@bottomline}%
      {%
       \rule[\dimexpr
               -\mdfboundingboxdepth
               -\mdf@middlelinewidth@length
             \relax]%
            {\dimexpr
               \mdfboundingboxtotalwidth
               \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}%
               \ifbool{mdf@leftline}{+\mdf@middlelinewidth@length}{}%
             \relax}%
            {\mdf@middlelinewidth@length}%
      }{}%
   }%
}%
\def\mdf@frame@leftline@single{%
  \llap%
   {%
    \mdf@linecolor@default%
    \rule[-\mdfboundingboxdepth]%
         {\mdf@middlelinewidth@length}%
         {\dimexpr
            \mdfboundingboxtotalheight%
            \ifbool{mdf@topline}{+\mdf@middlelinewidth@length}{}%
          \relax}%
   }%
}%
\def\mdf@frame@rightline@single{%
  \rlap%
   {%
    \mdf@linecolor@default%
    \hspace*{\mdfboundingboxwidth}%
    \hspace*{\mdf@innerrightmargin@length}%
    \rule[\dimexpr
            -\mdfboundingboxdepth%
          \relax]%
         {\mdf@middlelinewidth@length}%
         {\dimexpr
            \mdfboundingboxtotalheight%
            \ifbool{mdf@topline}{+\mdf@middlelinewidth@length}{}%
          \relax}%
   }%
}%
\def\mdf@putbox@single{%
  \ifvoid\mdf@splitbox@one\relax
  \else%
    \mdf@makebox@out%
     {%
      \mdf@makeboxalign@left%
      \setlength{\mdfboundingboxwidth}%
                {\wd\mdf@splitbox@one}%
      \setlength{\mdfboundingboxtotalwidth}%
                {\dimexpr
                   \mdfboundingboxwidth
                   +\mdf@innerleftmargin@length%
                   +\mdf@innerrightmargin@length
                 \relax}%
      \setlength{\mdfboundingboxheight}%
                {\dimexpr
                   \ht\mdf@splitbox@one
                   +\dp\mdf@splitbox@one
                 \relax}%
      \setlength{\mdfboundingboxdepth}%
                {\dimexpr
                   \dp\mdf@splitbox@one
                   +\mdf@innerbottommargin@length
                 \relax}%
      \setlength{\mdfboundingboxtotalheight}%
                {\dimexpr
                   \mdfboundingboxheight
                   +\mdf@innertopmargin@length%
                   +\mdf@innerbottommargin@length
                 \relax}%
      \setlength{\mdftotallinewidth}%
                {\dimexpr
                   \mdf@innerlinewidth@length
                   +\mdf@middlelinewidth@length%
                   +\mdf@outerlinewidth@length
                 \relax}%
      \noindent%
      \setlength{\@tempdima}%
                {\dimexpr
                   \mdfboundingboxtotalwidth%
                   \ifbool{mdf@leftline}{+\mdf@middlelinewidth@length}{}%
                   \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}
                 \relax}%
      \mdf@makebox@in[\@tempdima]%
       {%
        \null%
        \ifbool{mdf@leftline}%
          {%
           \hspace*{\mdftotallinewidth}%
           \mdf@frame@leftline@single%
          }{}%
        \mdf@frame@topline@single%
        \mdf@frame@background@single%
        \mdf@frame@bottomline@single%
        \ifdefempty{\mdf@frametitle}{}{\mdf@frame@frametitlebackground@single}%
        \hspace*{\mdf@innerleftmargin@length}%
        \ifbool{mdf@rightline}%
          {%
           \mdf@frame@rightline@single%
          }{}%
        {\box\mdf@splitbox@one}%
       }%
      \mdf@extra%
      \mdf@singleextra 
      \mdf@makeboxalign@right%
     }%
  \fi%
}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@putbox@first,mdf@frame@background@first,^^A
%               mdf@frame@leftline@first,mdf@frame@topline@first,^^A
%               mdf@frame@rightline@first}
% The first frame of of a splitted contents of mdframed
%    \begin{macrocode}
\def\mdf@frame@background@first{%
  \ifbool{mdf@shadow}%
   {%
    \rlap%
     {%
      \smash%
       {%
        \mdf@shadow@default%
        \rule[\dimexpr
                -\mdfboundingboxdepth
                -\mdf@shadowsize@length
              \relax]%
             {\dimexpr
                \mdfboundingboxtotalwidth
                +\mdf@shadowsize@length
                \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}
              \relax}%
             {\dimexpr
                \mdfboundingboxtotalheight
                +\mdf@shadowsize@length
              \relax}%
       }%
     }%
   }{}%
  \rlap%
   {%
    \mdf@background@default%
    \rule[-\mdfboundingboxdepth]%
         {\mdfboundingboxtotalwidth}%
         {\mdfboundingboxtotalheight}%
   }%
}%
\def\mdf@frame@frametitlebackground@first{%
 \ifbool{mdf@repeatframetitle}%
  {%repeating title = true
   \rlap%
    {%
     \mdf@frametitlebackground@default%
     \rule[\dimexpr
             -\mdfboundingboxdepth
             +\mdfboundingboxtotalheight
             -\mdfframetitleboxtotalheight
           \relax]%
          {\mdfboundingboxtotalwidth}%
          {\mdfframetitleboxtotalheight}%
    }%
  }%
  {%repeating title = false -- maybe splitted
   \ifdimless{\mdfframetitleboxtotalheight}{\mdfboundingboxtotalheight}%
    {%
     \rlap%
      {%
       \mdf@frametitlebackground@default%
       \rule[\dimexpr
               -\mdfboundingboxdepth
               +\mdfboundingboxtotalheight
               -\mdfframetitleboxtotalheight
             \relax]%
            {\mdfboundingboxtotalwidth}%
            {\mdfframetitleboxtotalheight}%
      }%
     \global\mdfframetitleboxtotalheight=-\p@\relax%
    }%
    {%
     \mdf@PackageWarning{You got a page break inside the title\MessageBreak
                         Current this isn't well supported}%
     \rlap%
      {%
       \mdf@frametitlebackground@default%
       \rule[-\mdfboundingboxdepth]%
            {\mdfboundingboxtotalwidth}%
            {\mdfboundingboxtotalheight}%
      }%
     \global\mdfframetitleboxtotalheight=%
          \dimexpr%
            \mdfframetitleboxtotalheight
            -\mdfboundingboxheight
            +\mdf@frametitlebelowskip@length
            +.5\baselineskip-1pt
%           +\dp\strutbox
          \relax%
    }%
  }%
}%
\def\mdf@frame@leftline@first{%
  \llap%
   {%
    \mdf@linecolor@default%
    \rule[-\mdfboundingboxdepth]%
         {\mdf@middlelinewidth@length}%
         {\dimexpr
            \mdfboundingboxtotalheight%
            \ifbool{mdf@topline}{+\mdf@middlelinewidth@length}{}
          \relax}%
   }%
}%
\def\mdf@frame@topline@first{%
  \rlap%
   {%
    \mdf@linecolor@default%
    \rule[\dimexpr
            \mdfboundingboxheight
            -\mdfboundingboxdepth
            +\mdf@splitbottomskip@length
            +\mdf@innertopmargin@length
          \relax]%
         {\mdfboundingboxtotalwidth}%
         {\mdf@middlelinewidth@length}%
   }%
}
\def\mdf@frame@rightline@first{%
  \rlap%
   {%
    \mdf@linecolor@default%
    \hspace*{\mdfboundingboxwidth}%
    \hspace*{\mdf@innerrightmargin@length}%
    \rule[-\mdfboundingboxdepth]%
         {\mdf@middlelinewidth@length}%
         {\dimexpr
            \mdfboundingboxtotalheight%
            \ifbool{mdf@topline}{+\mdf@middlelinewidth@length}{}
          \relax}%
   }%
}%
\def\mdf@frame@bottomline@first{%
  \rlap%
   {%
    \ifbool{mdf@leftline}%
      {%
       \hspace*{-\mdf@middlelinewidth@length}%
      }{}%
    \mdf@linecolor@default%
    \ifbool{mdf@bottomline}%
      {%
       \rule[\dimexpr
               -\mdfboundingboxdepth
               -\mdf@middlelinewidth@length
             \relax]%
            {\dimexpr
               \mdfboundingboxtotalwidth
               \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}%
               \ifbool{mdf@leftline}{+\mdf@middlelinewidth@length}{}
             \relax}%
            {\mdf@middlelinewidth@length}%
      }{}%
   }%
}%
\def\mdf@putbox@first{%
  \ifvoid\mdf@splitbox@two\relax
  \else%
    \mdf@makebox@out[\linewidth]%
     {%
      \mdf@makeboxalign@left%
      \setlength{\mdfboundingboxwidth}
                {\wd\mdf@splitbox@two}%
      \setlength{\mdfboundingboxtotalwidth}%
                {\dimexpr
                   \mdfboundingboxwidth
                   +\mdf@innerleftmargin@length%
                   +\mdf@innerrightmargin@length
                 \relax}%
      \setlength{\mdfboundingboxheight}
                {\dimexpr
                   \ht\mdf@splitbox@two
                   +\dp\mdf@splitbox@two
                 \relax}%
      \setlength{\mdfboundingboxdepth}%
                {\dimexpr
                   \dp\mdf@splitbox@two
                    +\mdf@splitbottomskip@length
                 \relax}%
      \setlength{\mdfboundingboxtotalheight}%
                {\dimexpr
                   \mdfboundingboxheight
                   +\mdf@innertopmargin@length%
                   +\mdf@splitbottomskip@length
                 \relax}%
      \setlength{\@tempdima}%
                {\dimexpr
                   \mdfboundingboxtotalwidth%
                   \ifbool{mdf@leftline}{+\mdf@middlelinewidth@length}{}%
                   \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}%
                 \relax}%
       \mdf@makebox@in[\@tempdima]%
        {%
         \null%
         \ifbool{mdf@leftline}%
           {%
            \hspace*{\mdf@middlelinewidth@length}%
            \mdf@frame@leftline@first%
           }{}%
         \ifbool{mdf@everyline}%
           {%
            \mdf@frame@bottomline@first%
           }{}%
         \ifbool{mdf@topline}%
           {%
            \mdf@frame@topline@first%
           }{}%
         \mdf@frame@background@first%
         \ifdefempty{\mdf@frametitle}{}{\mdf@frame@frametitlebackground@first}%
         \hspace*{\mdf@innerleftmargin@length}%
         \ifbool{mdf@rightline}%
          {%
           \mdf@frame@rightline@first%
          }{}%
         {\box\mdf@splitbox@two}%
        }%
       \mdf@extra%
       \mdf@firstextra%
       \mdf@makeboxalign@right%
     }%
 \fi%
}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@putbox@second,mdf@frame@background@second,^^A
%               mdf@frame@leftline@second,mdf@frame@bottomline@second,^^A
%               mdf@frame@rightline@second}
% The last frame of of a splitted contents of mdframed
%    \begin{macrocode}
\def\mdf@frame@background@second{%
  \ifbool{mdf@shadow}%
    {%
     \rlap%
      {%
       \smash%
        {%
         \mdf@shadow@default%
         \rule[\dimexpr
                 -\mdfboundingboxdepth
                 -\mdf@shadowsize@length
                 \ifbool{mdf@bottomline}{-\mdf@middlelinewidth@length}{}
               \relax]%
              {\dimexpr
                 \mdfboundingboxtotalwidth
                 +\mdf@shadowsize@length
                 \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}
               \relax}%
              {\dimexpr
                 \mdfboundingboxtotalheight
                 +\mdf@shadowsize@length
                \relax}%
        }%
      }%
    }{}%
  \rlap%
   {%
    \mdf@background@default%
    \rule[-\mdfboundingboxdepth]%
         {\mdfboundingboxtotalwidth}%
         {\mdfboundingboxtotalheight}%
   }%
}%
\def\mdf@frame@frametitlebackground@second{%
 \ifbool{mdf@repeatframetitle}%
  {%repeating title = true
   \rlap%
    {%
     \mdf@frametitlebackground@default%
     \rule[\dimexpr
             -\mdfboundingboxdepth
             +\mdfboundingboxtotalheight
             -\mdfframetitleboxtotalheight
           \relax]%
          {\mdfboundingboxtotalwidth}%
          {\mdfframetitleboxtotalheight}%
    }%
  }%
  {%repeating title = false -- maybe splitted
   \ifdimless{\mdfframetitleboxtotalheight}{\z@}%
    {}%
    {%
     \rlap%
      {%
       \mdf@frametitlebackground@default%
       \rule[\dimexpr
               -\mdfboundingboxdepth
               +\mdfboundingboxtotalheight
               -\mdfframetitleboxtotalheight
             \relax]%
            {\mdfboundingboxtotalwidth}%
            {\mdfframetitleboxtotalheight}%
      }%
    }%
  }%
}%
\def\mdf@frame@leftline@second{%
  \llap%
   {%
    \mdf@linecolor@default%
    \rule[-\mdfboundingboxdepth]%
         {\mdf@middlelinewidth@length}%
         {\dimexpr\mdfboundingboxtotalheight}%
   }%
}%
\def\mdf@frame@bottomline@second{%
  \rlap%
   {%
    \ifbool{mdf@leftline}%
      {%
       \hspace*{-\mdf@middlelinewidth@length}%
      }{}%
    \mdf@linecolor@default%
    \rule[\dimexpr
            -\mdfboundingboxdepth
            -\mdf@middlelinewidth@length
          \relax]%
         {\dimexpr
            \mdfboundingboxtotalwidth
            \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}
            \ifbool{mdf@leftline}{+\mdf@middlelinewidth@length}{}
          \relax}%
         {\mdf@middlelinewidth@length}%
   }%
}%
\def\mdf@frame@rightline@second{%
  \rlap%
   {%
    \mdf@linecolor@default\hspace*{\mdfboundingboxwidth}%
    \hspace*{\mdf@innerrightmargin@length}%
    \rule[-\mdfboundingboxdepth]%
         {\mdf@middlelinewidth@length}%
         {\mdfboundingboxtotalheight}%
   }%
}%
\def\mdf@frame@topline@second{%
  \rlap%
   {%
    \ifbool{mdf@leftline}%
      {%
       \hspace*{-\mdf@middlelinewidth@length}%
      }{}%
    \mdf@linecolor@default%
    \ifbool{mdf@topline}%
      {%
       \rule[\dimexpr
               \mdfboundingboxheight
               -\mdfboundingboxdepth%
               +\mdf@innerbottommargin@length
             \relax]%
            {\dimexpr
               \mdfboundingboxtotalwidth
               \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}%
               \ifbool{mdf@leftline}{+\mdf@middlelinewidth@length}{}
             \relax}%
            {\mdf@middlelinewidth@length}%
      }{}%
   }%
}%

\def\mdf@putbox@second{%
  \ifvoid\mdf@splitbox@one\relax%
  \else
   \mdf@makebox@out%
     {%
      \mdf@makeboxalign@left%
      \setlength{\mdfboundingboxwidth}%
                {\wd\mdf@splitbox@one}%
      \setlength{\mdfboundingboxtotalwidth}%
                {\dimexpr
                   \mdfboundingboxwidth
                   +\mdf@innerleftmargin@length%
                   +\mdf@innerrightmargin@length
                 \relax}%
      \setlength{\mdfboundingboxheight}%
                {\dimexpr
                   \ht\mdf@splitbox@one
                   +\dp\mdf@splitbox@one
                 \relax}%
      \setlength{\mdfboundingboxdepth}%
                {\dimexpr
                   \dp\mdf@splitbox@one
                   +\mdf@innerbottommargin@length
                 \relax}%
      \setlength{\mdfboundingboxtotalheight}%
                {\dimexpr
                   \mdfboundingboxheight
                   +\mdf@innerbottommargin@length
                 \relax}%
      \setlength{\@tempdima}%
                {\dimexpr
                   \mdfboundingboxtotalwidth%
                   \ifbool{mdf@leftline}{+\mdf@middlelinewidth@length}{}%
                   \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}%
                 \relax}%
      \mdf@makebox@in[\@tempdima]%
       {%
        \null%
        \ifbool{mdf@leftline}%
          {%
           \hspace*{\mdf@middlelinewidth@length}%
           \mdf@frame@leftline@second%
          }{}%
        \ifbool{mdf@everyline}%
          {%
           \mdf@frame@topline@second
          }{}%
        \mdf@frame@background@second%
        \ifbool{mdf@bottomline}%
          {%
           \mdf@frame@bottomline@second%
          }{}%
        \ifdefempty{\mdf@frametitle}{}{\mdf@frame@frametitlebackground@second}%
        \hspace*{\mdf@innerleftmargin@length}%
        \ifbool{mdf@rightline}%
          {%
           \mdf@frame@rightline@second%
          }{}%
        {\box\mdf@splitbox@one}%
       }%
      \mdf@extra%
      \mdf@secondextra%
      \mdf@makeboxalign@right%
     }%
  \fi%
}%
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@putbox@middle,mdf@frame@background@middle,^^A
%               mdf@frame@leftline@middle,mdf@frame@rightline@middle}
% The last frame of of a splitted contents of mdframed
%    \begin{macrocode}
\def\mdf@frame@leftline@middle{%
  \llap%
   {%
    \mdf@linecolor@default%
    \rule[-\mdfboundingboxdepth]%
         {\mdf@middlelinewidth@length}%
         {\mdfboundingboxtotalheight}%
  }%
}%
\def\mdf@frame@background@middle{%
  \ifbool{mdf@shadow}%
    {%
     \rlap%
      {%
       \smash%
        {%
         \mdf@shadow@default%
         \rule[\dimexpr
                 -\mdfboundingboxdepth
                 -\mdf@shadowsize@length
               \relax]%
              {\dimexpr
                 \mdfboundingboxtotalwidth
                 +\mdf@shadowsize@length
                 \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}
               \relax}%
              {\mdfboundingboxtotalheight}%
        }%
      }%
    }{}%
  \rlap%
   {%
    \mdf@background@default%
    \rule[-\mdfboundingboxdepth]%
         {\mdfboundingboxtotalwidth}%
         {\mdfboundingboxtotalheight}%
   }%
}%
\def\mdf@frame@frametitlebackground@middle{%
 \ifbool{mdf@repeatframetitle}%
  {%repeating title = true
   \rlap%
    {%
     \mdf@frametitlebackground@default%
     \rule[\dimexpr
             -\mdfboundingboxdepth
             +\mdfboundingboxtotalheight
             -\mdfframetitleboxtotalheight
           \relax]%
          {\mdfboundingboxtotalwidth}%
          {\mdfframetitleboxtotalheight}%
    }%
  }%
  {%repeating title = false -- maybe splitted
   \ifdimless{\mdfframetitleboxtotalheight}{\z@}%
    {}%
    {%
     \rlap%
      {%
       \mdf@frametitlebackground@default%
       \rule[\dimexpr
               -\mdfboundingboxdepth
               +\mdfboundingboxtotalheight
               -\mdfframetitleboxtotalheight
             \relax]%
            {\mdfboundingboxtotalwidth}%
            {\mdfframetitleboxtotalheight}%
      }%
     \global\mdfframetitleboxtotalheight=-\p@\relax%
    }%
    }%
}%
\def\mdf@frame@rightline@middle{%
  \rlap%
   {%
    \mdf@linecolor@default%
    \hspace*{\mdfboundingboxwidth}%
    \hspace*{\mdf@innerrightmargin@length}%
    \rule[-\mdfboundingboxdepth]%
         {\mdf@middlelinewidth@length}%
         {\mdfboundingboxtotalheight}%
   }%
}%
\def\mdf@frame@topline@middle{%
  \rlap%
   {%
    \ifbool{mdf@leftline}%
      {%
       \hspace*{-\mdf@middlelinewidth@length}%
      }{}%
    \mdf@linecolor@default%
    \ifbool{mdf@topline}%
      {%
       \rule[\dimexpr
               \mdfboundingboxtotalheight
               -\mdfboundingboxdepth
             \relax]%
            {\dimexpr
               \mdfboundingboxtotalwidth
               \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}%
               \ifbool{mdf@leftline}{+\mdf@middlelinewidth@length}{}
             \relax}%
            {\mdf@middlelinewidth@length}%
      }{}%
   }%
}%
\def\mdf@frame@bottomline@middle{%
  \rlap%
   {%
    \ifbool{mdf@leftline}%
      {%
       \hspace*{-\mdf@middlelinewidth@length}%
      }{}%
    \mdf@linecolor@default%
    \ifbool{mdf@bottomline}%
      {%
       \rule[\dimexpr
               -\mdfboundingboxdepth
               -\mdf@middlelinewidth@length
             \relax]%
            {\dimexpr
               \mdfboundingboxtotalwidth
               \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}%
               \ifbool{mdf@leftline}{+\mdf@middlelinewidth@length}{}
             \relax}%
            {\mdf@middlelinewidth@length}%
      }{}%
   }%
}%

\def\mdf@putbox@middle{%
  \ifvoid\mdf@splitbox@two\relax%
  \else
   \mdf@makebox@out%
     {%
      \mdf@makeboxalign@left%
      \setlength{\mdfboundingboxwidth}
                {\wd\mdf@splitbox@two}%
      \setlength{\mdfboundingboxtotalwidth}%
                {\dimexpr
                   \mdfboundingboxwidth
                   +\mdf@innerleftmargin@length%
                   +\mdf@innerrightmargin@length
                 \relax}%
      \setlength{\mdfboundingboxheight}
                {\dimexpr
                   \ht\mdf@splitbox@two
                   +\dp\mdf@splitbox@two
                 \relax}%
      \setlength{\mdfboundingboxdepth}%
                {\dimexpr
                   \dp\mdf@splitbox@two
                   +\mdf@splitbottomskip@length
                 \relax}%
      \setlength{\mdfboundingboxtotalheight}%
                {\dimexpr
                   \mdfboundingboxheight
                   +\mdf@splitbottomskip@length
                 \relax}%
      \setlength{\@tempdima}
                {\dimexpr
                    \mdfboundingboxtotalwidth%
                    \ifbool{mdf@leftline}{+\mdf@middlelinewidth@length}{}%
                    \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}%
                 \relax}%
      \mdf@makebox@in[\@tempdima]%
        {%
         \null%
         \ifbool{mdf@leftline}%
           {%
            \hspace*{\mdf@middlelinewidth@length}%
            \mdf@frame@leftline@middle%
           }{}%
         \mdf@frame@background@middle%
         \ifbool{mdf@everyline}%
           {%
            \mdf@frame@topline@middle
           }{}%
         \ifdefempty{\mdf@frametitle}{}
                    {\mdf@frame@frametitlebackground@middle}%
         \ifbool{mdf@everyline}%
           {%
            \mdf@frame@bottomline@middle%
           }{}%
         \hspace*{\mdf@innerleftmargin@length}%
         \ifbool{mdf@rightline}%
           {%
            \mdf@frame@rightline@middle%
           }{}%
         {\box\mdf@splitbox@two}%
        }%
      \mdf@extra%
      \mdf@middleextra%
      \mdf@makeboxalign@right%
     }%
  \fi%
}
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
 \endinput
%    \end{macrocode}
%
% \iffalse
%&lt;/mdframedefault&gt;
% \fi
%
%
%\iffalse
%    \begin{macrocode}
%&lt;*mdframetikz&gt;
%    \end{macrocode}
%\fi
% \subsection{The Explanation of md-frame-1.mdf}
%    \begin{macrocode}
%% Style file for mdframed for package option `framemethod=tikz`
%% 
%% This package may be distributed under the terms of the LaTeX Project
%% Public License, as described in lppl.txt in the base LaTeX distribution.
%% Either version 1.0 or, at your option, any later version.
%%
%
%    \end{macrocode}
% \changes{v1.1beta}{2011/12/16}{added lost semicolons}
% \begin{macro}{mdframedIpackagename}
% local settings
%    \begin{macrocode}
\def\mdframedIpackagename{md-frame-1}
\ProvidesFile{md-frame-1.mdf}%
      [\mdfmaindate\ %
       \mdversion: \mdframedIpackagename]
%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@tikz@settings}
% Define settings for tikz
%    \begin{macrocode}
%Allgemeine Einstellungen fuer tikz
\def\mdf@tikz@settings{%
%
%%  \mdf@testdraftmode%
  \tikzset{mdfbox/.style={anchor=south west,%
                          inner sep=0pt,%
                          outer sep=0pt,%
                          \mdf@fontcolor,%
                         }%
          }% anchor der Ausgabebox ist unten links
  \tikzset{mdfcorners/.style={rounded corners=\mdf@roundcorner@length}}% 
  \tikzset{mdfbackground/.style={fill=\mdf@backgroundcolor,%
                                 draw=none,%
                                }%
          }% 
  \tikzset{mdfframetitlebackground/.style=%
                   {%
                    fill=\mdf@frametitlebackgroundcolor,%
                    draw=none,%
                    rounded corners={max(\mdf@roundcorner@length%
                                         -\mdf@innerlinewidth@length%
                                        -.5\mdf@middlelinewidth@length,0)%
                                    }%
                   }%
          }%
%
  \tikzset{mdfouterline/.style={}}%
% nur wenn outerlinewidth&gt;0 wird aussere Linie gezeichnet
  \ifdimgreater{\mdf@outerlinewidth@length}{\z@}
    {\tikzset{mdfouterline/.append style={%
      draw=\mdf@outerlinecolor,%
      line width=2\mdf@outerlinewidth@length+\mdf@middlelinewidth@length}}}{}%
%
  \tikzset{mdfinnerline/.style={}}%
% nur wenn innerlinewidth&gt;0 wird innere Linie gezeichnet
  \ifdimgreater{\mdf@innerlinewidth@length}{\z@}
    {\tikzset{mdfinnerline/.append style={%
      draw=\mdf@innerlinecolor,%
      line width=2\mdf@innerlinewidth@length+\mdf@middlelinewidth@length}}}{}%
%
  \tikzset{mdfshadow/.style={drop shadow={%
                               shadow xshift=\mdf@shadowsize@length-2pt,
                               shadow yshift=-\mdf@shadowsize@length+2pt,
                               fill=\mdf@shadowcolor,
                               every shadow }}}% 
%
  \mdf@tikzset@local%
  \tikzset{mdfmiddleline/.style={}}%
% nur wenn middlelinewidth&gt;0 wird mittlere Linie gezeichnet
  \ifdimgreater{\mdf@middlelinewidth@length}{\z@}
    {\tikzset{mdfmiddleline/.append style={%
      preaction={draw=\mdf@middlelinecolor,%
                 line width=\mdf@middlelinewidth@length},%
      line width=\mdf@middlelinewidth@length,%
      tikzsetting}}%
    }{}%
}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@tikzbox@tfl,mdf@tikzbox@otl}
% Befehle fuer Ausgabe von Rahmen und Hintergrund
%    \begin{macrocode}
\newrobustcmd*\mdf@tikzbox@tfl[1]{%three or four borders
    \clip(0,0)rectangle(\mdfboundingboxwidth,\mdfboundingboxheight);%
    \begin{scope}[mdfcorners]%
       \clip[preaction=mdfouterline]%
            [postaction=mdfbackground]%
            [postaction=mdfinnerline]#1;%
    \end{scope}%
    \path[mdfmiddleline,mdfcorners]#1;
  }%



\newrobustcmd*\mdf@tikzbox@otl[2]{%one or two borders
    \clip(0,0)rectangle(\mdfboundingboxwidth,\mdfboundingboxheight);%
    \begin{scope}
       \path[mdfouterline,mdfcorners]#1;%
       \clip[postaction=mdfbackground]#2;%
       \path[mdfinnerline,mdfcorners]#1;%
    \end{scope}%
    \path[mdfmiddleline,mdfcorners]#1;}%
%    \end{macrocode}
% \end{macro}
%
%
%
% \begin{macro}{mdf@drawframe@whole}
% Befehle fuer Ausgabe von Rahmen und Hintergrund
%    \begin{macrocode}
\newrobustcmd*\mdf@drawframe@whole{%
  \mdf@test@ltrb{\mdf@tikzbox@tfl{(O)--(O|-P)--(P)--(P|-O)--cycle}}{}%
  \mdf@test@ltb{\mdf@tikzbox@tfl{(P|-O)--(O)--(O|-P)--(P)}}{}%
  \mdf@test@trb{\mdf@tikzbox@tfl{(O|-P)--(P)--(P|-O)--(O)}}{}%
  \mdf@test@ltr{\mdf@tikzbox@tfl{(O)--(O|-P)--(P)--(P|-O)}}{}%
  \mdf@test@lrb{\mdf@tikzbox@tfl{(P-|O)--(O)--(O-|P)--(P)}}{}%
  \mdf@test@lb{\mdf@tikzbox@otl{(P|-O)--(O)--(O|-P)}%
                          {(P)--(P|-O)[mdfcorners]--(O)--(O|-P)}%
          }{}%
  \mdf@test@rb{\mdf@tikzbox@otl{(P)--(P|-O)--(O)}%
                          {(O|-P)--(P)[mdfcorners]--(P|-O)--(O)}%
          }{}%
  \mdf@test@tr{\mdf@tikzbox@otl{(O-|P)--(P)--(P-|O)}%
                          {(O)--(O|-P)[mdfcorners]--(P)--(P|-O)}%
          }{}%
  \mdf@test@lt{\mdf@tikzbox@otl{(O)--(O|-P)--(P)}%
                          {(P|-O)--(O)[mdfcorners]--(O|-P)--(P)}%
          }{}%
  \mdf@test@lr{\mdf@tikzbox@otl{(O)--(O|-P)(P)--(P|-O)}%
                          {(O)rectangle(P)}%
          }{}%
  \mdf@test@tb{\mdf@tikzbox@otl{(O)--(O-|P)(O|-P)--(P)}%
                          {(O)rectangle(P)}%
          }{}%
  \mdf@test@l{\mdf@tikzbox@otl{(O)--(O|-P)}%
                          {(O)rectangle(P)}%
          }{}%
  \mdf@test@r{\mdf@tikzbox@otl{(O-|P)--(P)}%
                          {(O)rectangle(P)}%
          }{}%
  \mdf@test@t{\mdf@tikzbox@otl{(O|-P)--(P)}%
                          {(O)rectangle(P)}%
          }{}%
  \mdf@test@b{\mdf@tikzbox@otl{(O)--(O-|P)}%
                          {(O)rectangle(P)}%
          }{}%
  \mdf@test@noline{\path[mdfbackground,mdfcorners](O)rectangle(P);}{}%
}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@predtikzcalc,mdf@innertikzcalc}
% Before the output can start some calculations before \Env{tikzpicture}
% starts are neccessary.
%    \begin{macrocode}
\newrobustcmd*\mdf@predtikzcalc{%
 %%width
 \setlength\mdfboundingboxwidth{\wd\mdf@splitbox@one}%
 \mdf@dolist{\mdf@advancelength@add{\mdfboundingboxwidth}}%
   {innerleftmargin,innerrightmargin}%
 \ifbool{mdf@leftline}{%
   \mdf@dolist{\mdf@advancelength@add{\mdfboundingboxwidth}}%
      {innerlinewidth,middlelinewidth,outerlinewidth}}{}%
 \ifbool{mdf@rightline}{%
   \mdf@dolist{\mdf@advancelength@add{\mdfboundingboxwidth}}%
      {innerlinewidth,middlelinewidth,outerlinewidth}}{}%
 %%height
 \setlength\mdfboundingboxheight%
        {\dimexpr\ht\mdf@splitbox@one+\dp\mdf@splitbox@one\relax}%   
 \mdf@dolist{\mdf@advancelength@add{\mdfboundingboxheight}}%
     {innertopmargin,innerbottommargin}%  
 \ifbool{mdf@topline}{%
   \mdf@dolist{\mdf@advancelength@add{\mdfboundingboxheight}}%
     {innerlinewidth,middlelinewidth,outerlinewidth}}{}%
 \ifbool{mdf@bottomline}{%
   \mdf@dolist{\mdf@advancelength@add{\mdfboundingboxheight}}%
     {innerlinewidth,middlelinewidth,outerlinewidth}}{}%
}

\newrobustcmd*\mdf@innertikzcalc{%
  \pgfmathsetlengthmacro\mdf@Ax{+\mdf@innerleftmargin@length}%
  \pgfmathsetlengthmacro\mdf@Ay{+\mdf@innerbottommargin@length}%
  \pgfmathsetlengthmacro\mdf@Ox{+0pt}%
  \pgfmathsetlengthmacro\mdf@Oy{+0pt}%
  \pgfmathsetlengthmacro\mdf@Px{+\mdfboundingboxwidth}%
  \pgfmathsetlengthmacro\mdf@Py{+\mdfboundingboxheight}%
  \ifbool{mdf@leftline}%
    {%
     \pgfmathsetlengthmacro\mdf@Ax%
        {\mdf@Ax+\mdf@outerlinewidth@length+%
         \mdf@middlelinewidth@length+\mdf@innerlinewidth@length}%
     \pgfmathsetlengthmacro\mdf@Ox%
       {\mdf@Ox+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
    }{}%
  \ifbool{mdf@rightline}%
    {%
     \pgfmathsetlengthmacro\mdf@Px%
       {\mdf@Px-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
    }{}%
  \ifbool{mdf@bottomline}%
    {%
     \pgfmathsetlengthmacro\mdf@Ay%
       {\mdf@Ay+\mdf@outerlinewidth@length+\mdf@middlelinewidth@length%
        +\mdf@innerlinewidth@length}%
     \pgfmathsetlengthmacro\mdf@Oy%
       {\mdf@Oy+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
    }{}%
  \ifbool{mdf@topline}%
    {%
     \pgfmathsetlengthmacro\mdf@Py%
       {\mdf@Py-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
    }{}%
}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@put@frametitlerule}
% frametitlerule with tikz
%    \begin{macrocode}
\tikzset{mdfframetitlerule/.style={%
   draw=none,
   fill=\mdf@frametitlerulecolor,
  }%
}
\def\mdf@@frametitlerule{%
  \ifbool{mdf@frametitlerule}{%
   \vbox{\hsize0pt
     \par\unskip\vskip\mdf@frametitlebelowskip@length
     \noindent\rlap{\hspace*{-\mdf@innerleftmargin@length}%
     \begingroup%
     \pgfmathsetlength{\dimen@}{\mdfframetitleboxwidth
                                +\mdf@innerleftmargin@length
                                +\mdf@innerrightmargin@length}%
     \tikz\draw[mdfframetitlerule] (0,0)%
               rectangle (\dimen@,\mdf@frametitlerulewidth@length);
     \endgroup}
   }%
  }{%
   \vbox{\hsize0pt
     \par\unskip\vskip\mdf@frametitlebelowskip@length
     \noindent\rlap{}
   }%
  }%
  \iftoggle{mdf@notfirstframetitle}%
    {%
      \par\unskip\vskip\mdf@splittopskip@length%
    }%
    {%
      \par\unskip\vskip\mdf@innertopmargin@length%
    }%
}%
  
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@putbox@single}
%  Output of the non breakable contents.
%    \begin{macrocode}
% Info zu den verwendeten Punkten:
% O ist die untere linke Ecke der Mitte der middleline
% P ist die obere rechte Ecke der Mitte der middleline
% A ist der Punkt fuer den anchor (d.h. die untere linke Ecke) der Ausgabebox
%
\def\mdf@putbox@single{%
  \ifvoid\mdf@splitbox@one
  \else%
   \mdf@makebox@out{%
    \mdf@makeboxalign@left%
    \mdf@tikz@settings%
    \mdf@predtikzcalc%
    \mdf@makebox@in[\mdfboundingboxwidth]{%
    \null%
    \begin{tikzpicture}[remember picture]%
      \mdf@innertikzcalc
      \coordinate(O)at(\mdf@Ox,\mdf@Oy);%
      \coordinate(P)at(\mdf@Px,\mdf@Py);%
      \ifbool{mdf@shadow}
         {\path[mdfshadow,mdfcorners](O) rectangle (P);}{}%
      \begin{scope}
        \begin{scope}[use as bounding box]
          \mdf@drawframe@whole
          \drawbrackgroundframetitle@single
        \end{scope}
      \node[mdfbox] (mdfframe) at(\mdf@Ax,\mdf@Ay){\box\mdf@splitbox@one};
      \end{scope}
      %HIER KOMMT EIN WEITERES MAKRO
      \mdf@extra%
      \mdf@singleextra%
      \mdfcreateextratikz
    \end{tikzpicture}%
    }%
   \mdf@makeboxalign@right%
  }%
 \fi%
}%

\def\drawbrackgroundframetitle@single{%
 \ifdefempty{\mdf@frametitle}{}{%
   \drawbrackgroundframetitle@@single%
 }%
}%
\def\drawbrackgroundframetitle@@single{%
 \begin{scope}%background frame title
   \ifbool{mdf@leftline}{
    \pgfmathsetlengthmacro\mdf@Ox%
       {\mdf@Ox+\mdf@innerlinewidth@length+0.5\mdf@middlelinewidth@length}%
    }{}%
   \ifbool{mdf@rightline}{%
    \pgfmathsetlengthmacro\mdf@Px%
       {\mdf@Px-\mdf@innerlinewidth@length-0.5\mdf@middlelinewidth@length}%
    }{}%
   \ifbool{mdf@topline}{%
    \pgfmathsetlengthmacro\mdf@Py%
       {\mdf@Py-\mdf@innerlinewidth@length-0.5\mdf@middlelinewidth@length}%
    }{}%
    \pgfmathsetlengthmacro\mdf@Fy%
       {\mdf@Py-\mdfframetitleboxtotalheight}%
    \path[mdfframetitlebackground]%
     (\mdf@Ox,\mdf@Fy)--(\mdf@Ox,\mdf@Py)--(\mdf@Px,\mdf@Py)--(\mdf@Px,\mdf@Fy);
 \end{scope}
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@putbox@first}
%  Output of the first breakable contents.
%    \begin{macrocode}
\def\drawbrackgroundframetitle@first{%
  {%
   \ifbool{mdf@repeatframetitle}%
     {%repeating title = true
       \begin{scope}%background frame title
        \ifbool{mdf@leftline}{
         \pgfmathsetlengthmacro\mdf@Ox%
            {\mdf@Ox+\mdf@innerlinewidth@length+0.5\mdf@middlelinewidth@length}
         }{}%
        \ifbool{mdf@rightline}{%
         \pgfmathsetlengthmacro\mdf@Px%
            {\mdf@Px-\mdf@innerlinewidth@length-0.5\mdf@middlelinewidth@length}
         }{}%
        \ifbool{mdf@topline}{%
         \pgfmathsetlengthmacro\mdf@Py%
            {\mdf@Py-\mdf@innerlinewidth@length-.5\mdf@middlelinewidth@length}
         }{}%
         \pgfmathsetlengthmacro\mdf@Fy
             {\mdf@Py-\mdfframetitleboxtotalheight}
      \coordinate(P)at(\mdf@Px,\mdf@Py);%
         \path[mdfframetitlebackground]
             (\mdf@Ox,\mdf@Fy) -- (\mdf@Ox,\mdf@Py)%
             --(\mdf@Px,\mdf@Py) --(\mdf@Px,\mdf@Fy);
       \end{scope}
     }%
     {%
      \ifdefempty{\mdf@frametitle}{}%
        {%
         \ifdimgreater{\mdfboundingboxheight}{\mdfframetitleboxtotalheight}%
         {%
          \drawbrackgroundframetitle@@first
          \pgfmathsetlength{\global\mdfframetitleboxtotalheight}{-\p@}%
         }{\mdf@PackageWarning%
              {You got a page break inside the frame title\MessageBreak
               Currently this isn't well supported}%
           \drawbrackgroundframetitle@@first
           \pgfmathsetlength{\global\mdfframetitleboxtotalheight}%
                            {\mdfframetitleboxtotalheight
                                    -\mdfboundingboxheight
                             -\mdf@innerlinewidth@length
                             -0.5\mdf@middlelinewidth@length%
                             +\mdf@frametitlebelowskip@length
                             +\mdf@splitbottomskip@length
%%                             +\mdf@splittopskip@length
%%                             -\dp\strutbox%
                            }%
          }%
        }%
     }%
 }%
}%
%
\def\drawbrackgroundframetitle@@first{%
 \begin{scope}%background frame title
        \ifbool{mdf@leftline}{%
         \pgfmathsetlengthmacro\mdf@Ox%
            {\mdf@Ox+\mdf@innerlinewidth@length+0.5\mdf@middlelinewidth@length}
         }{}%
        \ifbool{mdf@rightline}{%
         \pgfmathsetlengthmacro\mdf@Px%
            {\mdf@Px-\mdf@innerlinewidth@length-0.5\mdf@middlelinewidth@length}
         }{}%
        \ifbool{mdf@topline}{%
         \pgfmathsetlengthmacro\mdf@Py%
            {\mdf@Py-\mdf@innerlinewidth@length-0.5\mdf@middlelinewidth@length}
         }{}%
         \pgfmathsetlengthmacro\mdf@Fy
             {max(0,\mdf@Py-\mdfframetitleboxtotalheight)}
         \path[mdfframetitlebackground]
             (\mdf@Ox,\mdf@Fy) -- (\mdf@Ox,\mdf@Py)%
             --(\mdf@Px,\mdf@Py) --(\mdf@Px,\mdf@Fy);
       \end{scope}%
}%
%
\def\mdf@putbox@first{%
  \ifvoid\mdf@splitbox@two
  \else%
   \mdf@makebox@out{%
    \mdf@makeboxalign@left%
    %Special for first frame -- used other savebox
    \let\mdf@splitbox@one\mdf@splitbox@two%
    \mdf@tikz@settings%
    %Special for first frame -- no innerbottommargin but splitbottomskip
    \let\mdf@innerbottommargin@length\mdf@splitbottomskip@length
    \mdf@predtikzcalc%calc with all lines
    %Special for first frame -- no bottom line without everyline true
    % if every line false -- test if bottomline is in use and remove the width
    \ifbool{mdf@everyline}{}{%
     \ifbool{mdf@bottomline}{%
       \mdf@dolist{\mdf@advancelength@sub{\mdfboundingboxheight}}%
        {innerlinewidth,middlelinewidth,outerlinewidth}}{}%
    }%
    \ifdimgreater{\pagegoal-\maxdimen}{0pt}{}{\enlargethispage{\baselineskip}}%
    \mdf@makebox@in[\mdfboundingboxwidth]{%
    \null%
    \begin{tikzpicture}[remember picture]
      \mdf@innertikzcalc
      %Special for first frame -- no bottom line without everyline true
      \ifbool{mdf@everyline}{}{%
        \ifbool{mdf@bottomline}%
          {%
           \pgfmathsetlengthmacro\mdf@Ay%
             {\mdf@Ay-\mdf@outerlinewidth@length-\mdf@middlelinewidth@length%
               -\mdf@innerlinewidth@length}%
           \pgfmathsetlengthmacro\mdf@Oy%
             {\mdf@Oy-\mdf@outerlinewidth@length
               -0.5\mdf@middlelinewidth@length}%
          }{}%
      }%
      \coordinate(O)at(\mdf@Ox,\mdf@Oy);%
      \coordinate(P)at(\mdf@Px,\mdf@Py);%
      \ifbool{mdf@shadow}
       {\path[mdfshadow] (O) -- (O|-P) to[mdfcorners] (P) -- (P|-O) -- (O);}{}%
      \begin{scope}
        \begin{scope}[use as bounding box]
          %Special for first frame 
          \ifbool{mdf@everyline}{}{%
             \mdfsetup{bottomline=false}%
          }     
      \mdf@drawframe@whole
      \drawbrackgroundframetitle@first
     \end{scope}
      \node[mdfbox] (mdfframe) at(\mdf@Ax,\mdf@Ay){\box\mdf@splitbox@two};%
     \end{scope}
     %HIER KOMMT EIN WEITERES MAKRO
     \mdf@extra%
     \mdf@firstextra%
     \mdfcreateextratikz%
    \end{tikzpicture}%
    }%
   \mdf@makeboxalign@right%
  }%
 \fi
}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@putbox@middle}
%  Output of the middle breakable contents.
%    \begin{macrocode}
\def\drawbrackgroundframetitle@middle{%
 \ifdefempty{\mdf@frametitle}{}%
  {%
   \ifbool{mdf@repeatframetitle}%
     {%repeating title = true
       \begin{scope}%background frame title
        \ifbool{mdf@leftline}{
         \pgfmathsetlengthmacro\mdf@Ox%
            {\mdf@Ox+\mdf@innerlinewidth@length+0.5\mdf@middlelinewidth@length}
         }{}%
        \ifbool{mdf@rightline}{%
         \pgfmathsetlengthmacro\mdf@Px%
            {\mdf@Px-\mdf@innerlinewidth@length-0.5\mdf@middlelinewidth@length}
         }{}%
        \ifbool{mdf@everyline}%
          {%
           \ifbool{mdf@topline}{%
            \pgfmathsetlengthmacro\mdf@Py%
               {\mdf@Py-\mdf@innerlinewidth@length%
                       -.5\mdf@middlelinewidth@length}
            }{}%
          }{}%
         \pgfmathsetlengthmacro\mdf@Fy
             {\mdf@Py-\mdfframetitleboxtotalheight}
      \coordinate(P)at(\mdf@Px,\mdf@Py);%
         \path[mdfframetitlebackground]
             (\mdf@Ox,\mdf@Fy) -- (\mdf@Ox,\mdf@Py)%
             --(\mdf@Px,\mdf@Py) --(\mdf@Px,\mdf@Fy);
       \end{scope}
     }%
     {%
      \ifdimless{\mdfframetitleboxtotalheight}{\z@} 
        {}%
        {%
         \drawbrackgroundframetitle@@middle%
         \pgfmathsetlength{\global\mdfframetitleboxtotalheight}{-\p@}%
        }%
     }%
   }%
}%
\def\drawbrackgroundframetitle@@middle{%
       \begin{scope}%background frame title
        \ifbool{mdf@leftline}{%
         \pgfmathsetlengthmacro\mdf@Ox%
            {\mdf@Ox+\mdf@innerlinewidth@length+0.5\mdf@middlelinewidth@length}
         }{}%
        \ifbool{mdf@rightline}{%
         \pgfmathsetlengthmacro\mdf@Px%
            {\mdf@Px-\mdf@innerlinewidth@length-0.5\mdf@middlelinewidth@length}
         }{}%
         \pgfmathsetlengthmacro\mdf@Fy
             {\mdf@Py-\mdfframetitleboxtotalheight}
         \path[mdfframetitlebackground,rounded corners=\z@]
             (\mdf@Ox,\mdf@Fy) -- (\mdf@Ox,\mdf@Py)%
             --(\mdf@Px,\mdf@Py) --(\mdf@Px,\mdf@Fy);
       \end{scope}
}%
%
\def\drawbrackgroundframetitle@@middle{%
       \begin{scope}%background frame title
        \ifbool{mdf@leftline}{
         \pgfmathsetlengthmacro\mdf@Ox%
            {\mdf@Ox+\mdf@innerlinewidth@length+0.5\mdf@middlelinewidth@length}
         }{}%
        \ifbool{mdf@rightline}{%
         \pgfmathsetlengthmacro\mdf@Px%
            {\mdf@Px-\mdf@innerlinewidth@length-0.5\mdf@middlelinewidth@length}
         }{}%
         \pgfmathsetlengthmacro\mdf@Fy
             {\mdf@Py-\mdfframetitleboxtotalheight}
         \path[mdfframetitlebackground,rounded corners=\z@]
             (\mdf@Ox,\mdf@Fy) -- (\mdf@Ox,\mdf@Py)%
             --(\mdf@Px,\mdf@Py) --(\mdf@Px,\mdf@Fy);
       \end{scope}
}%
\def\mdf@putbox@middle{%
  \ifvoid\mdf@splitbox@two
  \else%
  \mdf@makebox@out{%
    \mdf@makeboxalign@left%
    \mdf@tikz@settings%
    %Special for middle frame -- used other savebox
    \let\mdf@splitbox@one\mdf@splitbox@two%
     %Special for middle frame -- no innertopmargin -- done by splittopskip
     % in box and no bottommargin instead splitbottomskip
    \setlength{\mdf@innertopmargin@length}{\z@}%
    \let\mdf@innerbottommargin@length\mdf@splitbottomskip@length
    \mdf@predtikzcalc%
    %Special for middle frame -- remove topline and bottomline if no everyline
    \ifbool{mdf@everyline}{}{%
       \ifbool{mdf@topline}{%
         \mdf@dolist{\mdf@advancelength@sub{\mdfboundingboxheight}}%
           {innerlinewidth,middlelinewidth,outerlinewidth}}{}%
       \ifbool{mdf@bottomline}{%
         \mdf@dolist{\mdf@advancelength@sub{\mdfboundingboxheight}}%
           {innerlinewidth,middlelinewidth,outerlinewidth}}{}%
    }%
    \mdf@makebox@in[\mdfboundingboxwidth]{%
    \null%
    \begin{tikzpicture}[remember picture]
      \mdf@innertikzcalc%
      %Special for middle frame 
      \ifbool{mdf@everyline}{}{%
        \ifbool{mdf@bottomline}%
          {%
           \pgfmathsetlengthmacro\mdf@Ay%
             {\mdf@Ay-\mdf@outerlinewidth@length-\mdf@middlelinewidth@length%
               -\mdf@innerlinewidth@length}%
           \pgfmathsetlengthmacro\mdf@Oy%
             {\mdf@Oy-\mdf@outerlinewidth@length
               -0.5\mdf@middlelinewidth@length}%
          }{}%
      \ifbool{mdf@topline}%
        {%
         \pgfmathsetlengthmacro\mdf@Py%
           {\mdf@Py-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
        }{}%
      }{}%
      \coordinate(O)at(\mdf@Ox,\mdf@Oy);%
      \coordinate(P)at(\mdf@Px,\mdf@Py);%
      \ifbool{mdf@shadow}{\path[mdfshadow](O) rectangle (P);}{}%
      \begin{scope}
        \begin{scope}[use as bounding box]
           %%Special for middle frame     
           \ifbool{mdf@everyline}{}{\mdfsetup{topline=false,bottomline=false}}%
           \mdf@drawframe@whole
           \drawbrackgroundframetitle@middle
        \end{scope}
        \node[mdfbox] (mdfframe) at(\mdf@Ax,\mdf@Ay){\box\mdf@splitbox@two};%
      \end{scope}
      \mdf@extra%
      \mdf@middleextra%
      %HIER KOMMT EIN WEITERES MAKRO
      \mdfcreateextratikz
    \end{tikzpicture}%
    }%
   \mdf@makeboxalign@right%
  }%
 \fi
}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@putbox@second}
%  Output of the last breakable contents.
%    \begin{macrocode}
\def\drawbrackgroundframetitle@second{%
 \ifdefempty{\mdf@frametitle}{}%
  {%
   \ifbool{mdf@repeatframetitle}%
     {%repeating title = true
       \begin{scope}%background frame title
        \ifbool{mdf@leftline}{
         \pgfmathsetlengthmacro\mdf@Ox%
            {\mdf@Ox+\mdf@innerlinewidth@length+0.5\mdf@middlelinewidth@length}
         }{}%
        \ifbool{mdf@rightline}{%
         \pgfmathsetlengthmacro\mdf@Px%
            {\mdf@Px-\mdf@innerlinewidth@length-0.5\mdf@middlelinewidth@length}
         }{}%
        \ifbool{mdf@everyline}%
          {%
           \ifbool{mdf@topline}{%
            \pgfmathsetlengthmacro\mdf@Py%
               {\mdf@Py-\mdf@innerlinewidth@length%
                       -.5\mdf@middlelinewidth@length}
            }{}%
          }{}%
         \pgfmathsetlengthmacro\mdf@Fy
             {\mdf@Py-\mdfframetitleboxtotalheight}
      \coordinate(P)at(\mdf@Px,\mdf@Py);%
         \path[mdfframetitlebackground]
             (\mdf@Ox,\mdf@Fy) -- (\mdf@Ox,\mdf@Py)%
             --(\mdf@Px,\mdf@Py) --(\mdf@Px,\mdf@Fy);
       \end{scope}      
     }%
     {%
       \ifdimless{\mdfframetitleboxtotalheight}{\z@} 
         {}%
         {%
          \drawbrackgroundframetitle@@second%
         }%
     }%
   }%
}%
%
\def\drawbrackgroundframetitle@@second{%
       \begin{scope}%background frame title
        \ifbool{mdf@leftline}{%
         \pgfmathsetlengthmacro\mdf@Ox%
            {\mdf@Ox+\mdf@innerlinewidth@length+0.5\mdf@middlelinewidth@length}
         }{}%
        \ifbool{mdf@rightline}{%
         \pgfmathsetlengthmacro\mdf@Px%
            {\mdf@Px-\mdf@innerlinewidth@length-0.5\mdf@middlelinewidth@length}%
         }{}%
         \pgfmathsetlengthmacro\mdf@Fy
             {\mdf@Py-\mdfframetitleboxtotalheight}%
         \path[mdfframetitlebackground,rounded corners=\z@]
             (\mdf@Ox,\mdf@Fy) -- (\mdf@Ox,\mdf@Py)%
             --(\mdf@Px,\mdf@Py) --(\mdf@Px,\mdf@Fy);
       \end{scope}
}%
\def\mdf@putbox@second{%
  \ifvoid\mdf@splitbox@one
  \else%
   \mdf@makebox@out{%
    \mdf@makeboxalign@left%
    \mdf@tikz@settings%
     %Special for middle frame -- no innertopmargin -- done by splittopskip
    \setlength{\mdf@innertopmargin@length}{\z@}%
    \mdf@predtikzcalc%
    %Special for second frame -- no top line without everyline true
    \ifbool{mdf@everyline}{}{%
     \ifbool{mdf@topline}{%
       \mdf@dolist{\mdf@advancelength@sub{\mdfboundingboxheight}}%
        {innerlinewidth,middlelinewidth,outerlinewidth}}{}%
    }%
    \mdf@makebox@in[\mdfboundingboxwidth]{%
    \null%
    \begin{tikzpicture}[remember picture]
      \mdf@innertikzcalc    
      %Special for second frame 
      \ifbool{mdf@everyline}{}{%
       \ifbool{mdf@topline}%
        {%
         \pgfmathsetlengthmacro\mdf@Py%
           {\mdf@Py+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
        }{}%
      }%
      \coordinate(O)at(\mdf@Ox,\mdf@Oy);%
      \coordinate(P)at(\mdf@Px,\mdf@Py);%
      \ifbool{mdf@shadow}
         {%
           \path[mdfshadow] (O|-P) to[mdfcorners] (O) to[mdfcorners] (P|-O) 
            -- (P) -- (O|-P);%
         }{}%
      \begin{scope}
        \begin{scope}[use as bounding box]
          \ifbool{mdf@everyline}{}{\mdfsetup{topline=false}}%
          \mdf@drawframe@whole
          \drawbrackgroundframetitle@second
        \end{scope}
        \node[mdfbox] (mdfframe) at (\mdf@Ax,\mdf@Ay){\box\mdf@splitbox@one};%
      \end{scope}
      \mdf@extra%
      \mdf@secondextra%
      %HIER KOMMT EIN WEITERES MAKRO
      \mdfcreateextratikz
    \end{tikzpicture}%
    }%
   \mdf@makeboxalign@right%
  }%
 \fi%
}%


%
% \begin{macro}{mdf@drawsubtitleaboveline,mdf@drawsubtitlebelowline,^^A
%              mdf@drawsubtitlebackground}
%
%    \begin{macrocode}%
\tikzset{mdfsubtitleaboverule/.style={%
   draw=none,
   fill=\mdf@subtitleabovelinecolor,
  }%
}

\tikzset{mdfsubtitlebelowrule/.style={%
   draw=none,
   fill=\mdf@subtitlebelowlinecolor,
  }%
}

\tikzset{mdfsubtitlebackground/.style={%
   draw=\mdf@subtitlebackgroundcolor,
   fill=\mdf@subtitlebackgroundcolor,
  }%
}

\tikzset{mdfsubsubtitleaboverule/.style={%
   draw=none,
   fill=\mdf@subsubtitleabovelinecolor,
  }%
}

\tikzset{mdfsubsubtitlebelowrule/.style={%
   draw=none,
   fill=\mdf@subsubtitlebelowlinecolor,
  }%
}

\tikzset{mdfsubsubtitlebackground/.style={%
   draw=none,
   fill=\mdf@subsubtitlebackgroundcolor,
  }%
}

%default:
\def\mdf@drawsubtitleaboveline{%
 \rlap{%
  \hspace*{-\mdf@innerleftmargin@length}%
  \tikz\draw[mdfsubsubtitleaboverule](0,0) rectangle 
     (\mdf@templength,\mdf@subtitleabovelinewidth@length);%
 }%
}
\def\mdf@drawsubtitlebelowline{%
 \rlap{%
  \hspace*{-\mdf@innerleftmargin@length}%
  \tikz\draw[mdfsubsubtitleaboverule](0,0) rectangle 
     (\mdf@templength,\mdf@subtitlebelowlinewidth@length);%
 }%
}
\def\mdf@drawsubtitlebackground{%
 \rlap{%
 \hspace*{-\mdf@innerleftmargin@length}%
 \tikz\draw[overlay,mdfsubtitlebackground](0,0) rectangle 
    (\mdf@templength,-\mdfsubtitleheight);%
 }%
}

%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
 \endinput
%    \end{macrocode}
% \iffalse
%&lt;/mdframetikz&gt;
% \fi
%
%
%\iffalse
%    \begin{macrocode}
%&lt;*mdframepstricks&gt;
%    \end{macrocode}
%\fi
% \subsection{The Explanation of md-frame-2.mdf / md-frame-3.mdf}
%    \begin{macrocode}
%% Style file for mdframed for package option `framemethod=pstricks`
%% 
%% This package may be distributed under the terms of the LaTeX Project
%% Public License, as described in lppl.txt in the base LaTeX distribution.
%% Either version 1.0 or, at your option, any later version.
%%
%
%    \end{macrocode}
%
% \begin{macro}{mdframedIIpackagename}
% local settings
%    \begin{macrocode}
\def\mdframedIIpackagename{md-frame-2}
\ProvidesFile{md-frame-2.mdf}%
      [\mdfmaindate\ %
       \mdversion: \mdframedIIpackagename]
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@ptlength@to@pscode,ptTps}
% Command to calculate a latex length to postscript
%    \begin{macrocode}
\def\mdf@ptlength@to@pscode#1{\pst@number{#1} \pst@number\psxunit div }
\def\mdf@ptlength@to@pscode@length#1{%
  \pst@number{\csname mdf@#1@length\endcsname}
  \pst@number\psxunit div\space}
\let\ptTps\mdf@ptlength@to@pscode\relax
\let\ptTpsL\mdf@ptlength@to@pscode@length\relax
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdfbackgroundstyle,mdflinestyle,^^A
%               mdfframetitlerule,mdfframetitlebackground}
% background and line settings for pstricks
%    \begin{macrocode}
\def\mdfpstricks@settings{%expand by \addtopsstyle
  \newpsstyle{mdfbackgroundstyle}% 
    {linecolor=\mdf@backgroundcolor,fillstyle=solid,%
     fillcolor=\mdf@backgroundcolor,linestyle=none,%
    ,dimen=middle,%
    }%
%
  \newpsstyle{mdfframetitlebackgroundstyle}{%
     linecolor=\mdf@frametitlebackgroundcolor,
     fillcolor=\mdf@frametitlebackgroundcolor,
     fillstyle=solid,linestyle=none,
     linearc=\ifdimgreater{\mdf@roundcorner@length%
                          -\mdf@innerlinewidth@length%
                          -.5\mdf@middlelinewidth@length}
                         {\z@}{\dimexpr\mdf@roundcorner@length%
                          -\mdf@innerlinewidth@length%
                          -.5\mdf@middlelinewidth@length}{\z@},
  }
%
  \newpsstyle{mdfouterlinestyle}{linestyle=none}%
  \ifdimgreater{\mdf@outerlinewidth@length}{\z@}
    {\newpsstyle{mdfouterlinestyle}{%
      linecolor=\mdf@outerlinecolor,%
      linewidth=\dimexpr2\mdf@outerlinewidth@length
                        +\mdf@middlelinewidth@length\relax,
      dimen=middle,
      }}{}%
%
  \newpsstyle{mdfinnerlinestyle}{linestyle=none}%
  \ifdimgreater{\mdf@innerlinewidth@length}{\z@}%
    {\newpsstyle{mdfinnerlinestyle}{%
      linecolor=\mdf@innerlinecolor,%
      linewidth=\dimexpr2\mdf@innerlinewidth@length
                        +\mdf@middlelinewidth@length\relax,
      dimen=middle,
      }}{}%
%
  \newpsstyle{mdfmiddlelinestyle}{linestyle=none}%
  \newpsstyle{mdfshadow}{shadow=true,shadowcolor=\mdf@shadowcolor,
                         shadowsize=\mdf@shadowsize@length}%
  \ifdimgreater{\mdf@middlelinewidth@length}{\z@}%
    {\newpsstyle{mdfmiddlelinestyle}{%
      linewidth=\mdf@middlelinewidth@length,%
      linecolor=\mdf@middlelinecolor,dimen=middle
      }}{}%
\mdfpstricks@appendsettings
}%
%
\newrobustcmd*\mdf@pstricksbox@fl[2]{%four lines
  \psframe[style=mdfouterlinestyle](#1)(#2)%aussen=3mm
  \psframe[style=mdfbackgroundstyle](#1)(#2)%Hintergrund
  \psclip{\psframe[style=mdfmiddlelinestyle](#1)(#2)}
   \psframe[style=mdfinnerlinestyle](#1)(#2)%innere=3mm
  \endpsclip
  \psframe[style=mdfmiddlelinestyle](#1)(#2)%mittlere=2mm
  }%
\newrobustcmd*\mdf@pstricksbox@tl[1]{%three lines
  \psline[style=mdfouterlinestyle]#1%aussen=3mm
  \psline[style=mdfbackgroundstyle]#1%Hintergrund
  \psclip{\psline[style=mdfmiddlelinestyle]#1}
    \psline[style=mdfinnerlinestyle]#1%innere=3mm
  \endpsclip
  \psline[style=mdfmiddlelinestyle]#1%mittlere=2mm
  }%
\newrobustcmd*\mdf@pstricksbox@tcl[2]{%two combined lines
%%#1 background comple
%%#2 line path
  \psline[style=mdfouterlinestyle]#2%aussen=3mm
  \psline[style=mdfbackgroundstyle]#2%Hintergrund
  \psclip{\pscustom[linestyle=none]{
          \psline[style=mdfmiddlelinestyle]#2
          \psline[linestyle=none,linearc=0pt]#1}
          }
    \psframe[style=mdfbackgroundstyle,linearc=0pt](mdf@O)(mdf@P)%Hintergrund
    \psline[style=mdfinnerlinestyle]#2%innere=3mm
  \endpsclip
  \psline[style=mdfmiddlelinestyle]#2%mittlere=2mm
}%
\newrobustcmd*\mdf@pstricksbox@tncl[2]{%two not combined lines
 \begingroup
  \psset{linearc=0pt}
  \psline[style=mdfouterlinestyle](mdf@O)#1%aussen=3mm
  \psline[style=mdfouterlinestyle](mdf@P)#2%aussen=3mm
  \psclip{
    \pscustom[linestyle=none]{%
        \psline[style=mdfmiddlelinestyle](mdf@O)#1%mittlere=2mm
        \psline[linestyle=none](mdf@O)#2
        \psline[style=mdfmiddlelinestyle](mdf@P)#2%mittlere=2mm
        \psline[linestyle=none](mdf@P)#1
      }%
    }%
    \psframe[style=mdfbackgroundstyle,linearc=0pt](mdf@O)(mdf@P)%Hintergrund
    \psline[style=mdfinnerlinestyle](mdf@O)#1%innere=3mm
    \psline[style=mdfinnerlinestyle](mdf@P)#2%innere=3mm
  \endpsclip
  \psline[style=mdfmiddlelinestyle](mdf@O)#1%mittlere=2mm
  \psline[style=mdfmiddlelinestyle](mdf@P)#2%mittlere=2mm
 \endgroup
}%
\newrobustcmd*\mdf@pstricksbox@ol[1]{%one line
 \begingroup
  \psset{linearc=0pt}
  \psline[style=mdfouterlinestyle]#1%aussen=3mm
  \psline[style=mdfbackgroundstyle]#1%Hintergrund
  \psclip{\pscustom[linestyle=none]{
          \psline[style=mdfmiddlelinestyle]#1
          \psframe[linestyle=none,fillstyle=none,dimen=inner](mdf@O)(mdf@P)
          }}
    \psframe[style=mdfbackgroundstyle](mdf@O)(mdf@P)
    \psline[style=mdfinnerlinestyle]#1%innere=3mm
  \endpsclip
  \psline[style=mdfmiddlelinestyle]#1%mittlere=2mm
 \endgroup%
}%
           
%
\newpsstyle{mdfframetitlerule}{%
   linecolor=\mdf@frametitlerulecolor,%
   fillcolor=\mdf@frametitlerulecolor,%
   fillstyle=solid,dimen=outer,%
}
%
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{mdf@put@frametitlerule}
% frametitlerule with pstricks
%    \begin{macrocode}
\def\mdf@@frametitlerule{%
  \ifbool{mdf@frametitlerule}{%
   \vbox{\hsize0pt
     \par\unskip\vskip\mdf@frametitlebelowskip@length
     \noindent\rlap{%
     \begingroup%
     \begin{pspicture}(0,0)(0,\mdf@frametitlerulewidth@length)
      \psframe[style=mdfframetitlerule]%
              (!\ptTpsL{innerleftmargin} neg 0)%
              (!\ptTpsL{innerrightmargin}
                \ptTps{\mdfframetitleboxwidth} add 
                \ptTpsL{frametitlerulewidth})
     \end{pspicture}
     \endgroup}%
   }%
  }{%
   \vbox{\hsize0pt
     \par\unskip\vskip\mdf@frametitlebelowskip@length
     \noindent\rlap{}
   }%
  }%
  \iftoggle{mdf@notfirstframetitle}%
    {%
      \par\unskip\vskip\mdf@splittopskip@length%
    }%
    {%
      \par\unskip\vskip\mdf@innertopmargin@length%
    }%
}%
%
%
% \begin{macro}{mdf@drawsubtitleaboveline,mdf@drawsubtitlebelowline,^^A
%              mdf@drawsubtitlebackground}
%  
%    \begin{macrocode}
%default:
\def\mdf@drawsubtitleaboveline{%
 \rlap{%
  \hspace*{-\mdf@innerleftmargin@length}%
  \begin{pspicture}(0,0)(\mdf@templength,\mdf@subtitleabovelinewidth@length)
     \psframe[style=mdfsubtitleaboverule]%
              (0,0)(\mdf@templength,\mdf@subtitleabovelinewidth@length)%
  \end{psicture}%
 }%
}
\def\mdf@drawsubtitlebelowline{%
 \rlap{%
  \hspace*{-\mdf@innerleftmargin@length}%
  \begin{pspicture}(0,0)(\mdf@templength,\mdf@subtitlebelowlinewidth@length)
     \psframe[style=mdfsubtitlebelowrule]%
              (0,0)(\mdf@templength,\mdf@subtitleabovelinewidth@length)%
  \end{psicture}%
 }%
}
\def\mdf@drawsubtitlebackground{%
 \rlap{%
  \hspace*{-\mdf@innerleftmargin@length}%
  \begin{pspicture}(0,0)(0,0)
     \psframe[style=mdfsubtitlebackground]%
              (0,0)(\mdf@templength,-\mdfsubtitleheight)%
  \end{psicture}%
 }%
}

\newpsstyle{mdfsubtitleaboverule}{%
   linecolor=\mdf@subtitleabovelinecolor,
   fillcolor=\mdf@subtitleabovelinecolor,
   fillstyle=solid,dimen=outer,%
}

\newpsstyle{mdfsubtitlebelowrule}{%
   linecolor=\mdf@subtitlebelowlinecolor,
   fillcolor=\mdf@subtitlebelowlinecolor,
   fillstyle=solid,dimen=outer,%
}

\newpsstyle{mdfsubtitlebackground}{%
   linecolor=\mdf@subtitlebackgroundcolor,
   fillcolor=\mdf@subtitlebackgroundcolor,
   fillstyle=solid,linestyle=none,
}

\newpsstyle{mdfsubsubtitleaboverule}{%
   linecolor=\mdf@subtitleabovelinecolor,
   fillcolor=\mdf@subtitleabovelinecolor,
   fillstyle=solid,dimen=outer,%
}

\newpsstyle{mdfsubsubtitlebelowrule}{%
   linecolor=\mdf@subtitlebelowlinecolor,
   fillcolor=\mdf@subtitlebelowlinecolor,
   fillstyle=solid,dimen=outer,%
}

\newpsstyle{mdfsubsubtitlebackground}{%
   linecolor=\mdf@subtitlebackgroundcolor,
   fillcolor=\mdf@subtitlebackgroundcolor,
   fillstyle=solid,linestyle=none,
}

%    \end{macrocode}
% \end{macro}
%
%
%
%
%
%
%
%
%
%
% \begin{macro}{mdf@putbox@single}
% Single output
%    \begin{macrocode}
% Info zu den verwendeten Punkten:
% O ist die untere linke Ecke der Mitte der middleline
% P ist die obere rechte Ecke der Mitte der middleline
% A ist der Punkt fuer den anchor (d.h. die untere linke Ecke) der Ausgabebox
\def\mdf@putbox@single{%
  \ifvoid\mdf@splitbox@one\relax
  \else%
   \mdf@makebox@out{%
     \mdf@makeboxalign@left%
    \setlength\mdfboundingboxwidth{\wd\mdf@splitbox@one}%
    \advance\mdfboundingboxwidth by \mdf@innerleftmargin@length\relax%
    \advance\mdfboundingboxwidth by \mdf@innerrightmargin@length\relax%
    \ifbool{mdf@leftline}{%
      \advance\mdfboundingboxwidth by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@outerlinewidth@length\relax}{}%
    \ifbool{mdf@rightline}{%
      \advance\mdfboundingboxwidth by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@outerlinewidth@length\relax}{}%
%
    \setlength\mdfboundingboxheight%
              {\dimexpr\ht\mdf@splitbox@one+\dp\mdf@splitbox@one\relax}%
    \advance\mdfboundingboxheight by \mdf@innerbottommargin@length\relax%
    \advance\mdfboundingboxheight by \mdf@innertopmargin@length\relax%
    \ifbool{mdf@topline}{%
      \advance\mdfboundingboxheight by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@outerlinewidth@length\relax}{}%
    \ifbool{mdf@bottomline}{%
      \advance\mdfboundingboxheight by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@outerlinewidth@length\relax}{}%
%
   \setlength\mdftotallinewidth{\dimexpr\mdf@innerlinewidth@length%
                                +\mdf@middlelinewidth@length
                                +\mdf@outerlinewidth@length\relax}%
     \psset{unit=1truecm}%
     \mdf@makebox@in[\mdfboundingboxwidth]{%
       \null%
       \begin{pspicture}(0,0)(\mdfboundingboxwidth,\mdfboundingboxheight)
        \mdfpstricks@settings%
        \psset{linearc=\mdf@roundcorner@length,cornersize=absolut,}%
        \expandafter\psset\expandafter{\mdf@psset@local}%
        \pnode(\mdf@innerleftmargin@length,\mdf@innerbottommargin@length)
              {mdf@A}
        \pnode(0,0){mdf@O}
        \pnode(\mdfboundingboxwidth,\mdfboundingboxheight){mdf@P}
        \ifbool{mdf@leftline}%
          {%
          \nodexn{(mdf@A)+(\mdf@outerlinewidth@length,0)
                          +(\mdf@middlelinewidth@length,0)
                          +(\mdf@innerlinewidth@length,0)}{mdf@A}%
          \nodexn{(mdf@O)+(\mdf@outerlinewidth@length,0)
                          +0.5(\mdf@middlelinewidth@length,0)}{mdf@O}%
         }{}%
       \ifbool{mdf@rightline}%
         {%
          \nodexn{(mdf@P)-(\mdf@outerlinewidth@length,0)
                          -0.5(\mdf@middlelinewidth@length,0)}{mdf@P}%
         }{}%
       \ifbool{mdf@bottomline}%
         {%
          \nodexn{(mdf@A)+(0,\mdf@outerlinewidth@length)
                          +(0,\mdf@middlelinewidth@length)
                          +(0,\mdf@innerlinewidth@length)}{mdf@A}%
          \nodexn{(mdf@O)+(0,\mdf@outerlinewidth@length)
                          +0.5(0,\mdf@middlelinewidth@length)}{mdf@O}%
         }{}%
       \ifbool{mdf@topline}%
         {%
          \nodexn{(mdf@P)-(0,\mdf@outerlinewidth@length)
                          -0.5(0,\mdf@middlelinewidth@length)}{mdf@P}
         }{}%
       \ifbool{mdf@shadow}
           {\psframe[style=mdfshadow](mdf@O)(mdf@P)}{}
%        \psclip{%
         %Four lines
          \mdf@test@ltrb{\mdf@pstricksbox@fl{mdf@O}{mdf@P}}{}
         %three lines
          \mdf@test@ltb{%
              \mdf@pstricksbox@tl{(mdf@P|mdf@O)(mdf@O)(mdf@O|mdf@P)(mdf@P)}}{}
          \mdf@test@trb{%
              \mdf@pstricksbox@tl{(mdf@O)(mdf@P|mdf@O)(mdf@P)(mdf@O|mdf@P)}}{}
          \mdf@test@ltr{%
              \mdf@pstricksbox@tl{(mdf@O)(mdf@O|mdf@P)(mdf@P)(mdf@P|mdf@O)}}{}%
          \mdf@test@lrb{%
              \mdf@pstricksbox@tl{(mdf@O|mdf@P)(mdf@O)(mdf@P|mdf@O)(mdf@P)}}{}%
         %two lines combinded
          \mdf@test@lb{\mdf@pstricksbox@tcl%
                           {(mdf@P|mdf@O)(mdf@P)(mdf@O|mdf@P)}%
                           {(mdf@O|mdf@P)(mdf@O)(mdf@P|mdf@O)}}{}
          \mdf@test@rb{\mdf@pstricksbox@tcl%
                           {(mdf@P)(mdf@O|mdf@P)(mdf@O)}%
                           {(mdf@O)(mdf@P|mdf@O)(mdf@P)}}{}
          \mdf@test@tr{\mdf@pstricksbox@tcl%
                           {(mdf@P|mdf@O)(mdf@O)(mdf@O|mdf@P)}%
                           {(mdf@O|mdf@P)(mdf@P)(mdf@P|mdf@O)}}{}
          \mdf@test@lt{\mdf@pstricksbox@tcl%
                           {(mdf@O)(mdf@P|mdf@O)(mdf@P)}%
                           {(mdf@O)(mdf@O|mdf@P)(mdf@P)}}{}
         %two lines not combinded combinded
          \mdf@test@lr{\mdf@pstricksbox@tncl{(mdf@O|mdf@P)}{(mdf@P|mdf@O)}
                      }{}
          \mdf@test@tb{\mdf@pstricksbox@tncl{(mdf@P|mdf@O)}{(mdf@O|mdf@P)}
                      }{}
        %single line
         \mdf@test@l{\mdf@pstricksbox@ol{(mdf@O)(mdf@O|mdf@P)}}{}
         \mdf@test@r{\mdf@pstricksbox@ol{(mdf@P)(mdf@P|mdf@O)}}{}
         \mdf@test@t{\mdf@pstricksbox@ol{(mdf@P)(mdf@O|mdf@P)}}{}
         \mdf@test@b{\mdf@pstricksbox@ol{(mdf@O)(mdf@P|mdf@O)}}{}
        %no line
         \mdf@test@noline{\psframe[style=mdfbackgroundstyle](mdf@O)(mdf@P)}{}
%         }
        %Frametitlebackground
          \drawbrackgroundframetitle@single
        %output%
          \rput[bl](mdf@A){\box\mdf@splitbox@one}
%          \psdot(mdf@A)\uput[90](mdf@A){mdf at A}
%          \psdot(mdf@P)\uput[90](mdf@P){mdf at P}
%          \psdot(mdf@O)\uput[90](mdf@O){mdf at O}
%
%         \endpsclip
          \mdf@extra%
          \mdf@singleextra
       \end{pspicture}%
    }%
   \mdf@makeboxalign@right%
  }%
 \fi
}%
\def\drawbrackgroundframetitle@single{%
 \ifdefempty{\mdf@frametitle}{}{%
   \drawbrackgroundframetitle@@single%
 }%
}%
\def\drawbrackgroundframetitle@@single{%
 \begingroup%
  \ifbool{mdf@leftline}{%
       \nodexn{(mdf@O)+(\mdf@innerlinewidth@length,0)
               +0.5(\mdf@middlelinewidth@length,0)}{mdf@O}%
       }{}%
  \ifbool{mdf@rightline}{%
       \nodexn{(mdf@P)-(\mdf@innerlinewidth@length,0)
               -0.5(\mdf@middlelinewidth@length,0)}{mdf@P}%
       }{}%
  \ifbool{mdf@topline}{%
       \nodexn{(mdf@P)-(0,\mdf@innerlinewidth@length)
               -0.5(0,\mdf@middlelinewidth@length)}{mdf@P}%
       }{}%
  \nodexn{(mdf@P)-(0,\mdfframetitleboxtotalheight)}{mdf@F}%
  \psline[style=mdfframetitlebackgroundstyle](mdf@O|mdf@F)(mdf@O|mdf@P)
                                             (mdf@P)(mdf@P|mdf@F)%
 \endgroup
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@putbox@first}
% First output
%    \begin{macrocode}
\def\mdf@putbox@first{%
  \ifvoid\mdf@splitbox@two
  \else%
   \mdf@makebox@out{%
     \mdf@makeboxalign@left%
     %\ifbool{mdf@leftline}{\hspace*{\mdf@middlelinewidth@length}}{}%
    \setlength\mdfboundingboxwidth{\wd\mdf@splitbox@two}%
    \advance\mdfboundingboxwidth by \mdf@innerleftmargin@length\relax%
    \advance\mdfboundingboxwidth by \mdf@innerrightmargin@length\relax%
    \ifbool{mdf@leftline}{%
      \advance\mdfboundingboxwidth by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@outerlinewidth@length\relax}{}%
    \ifbool{mdf@rightline}{%
      \advance\mdfboundingboxwidth by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@outerlinewidth@length\relax}{}%
    \setlength\mdfboundingboxheight%
              {\dimexpr\ht\mdf@splitbox@two+\dp\mdf@splitbox@two\relax}%
    \advance\mdfboundingboxheight by \mdf@innertopmargin@length\relax%
    \advance\mdfboundingboxheight by \mdf@splitbottomskip@length\relax%
    \ifbool{mdf@topline}{%
      \advance\mdfboundingboxheight by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@outerlinewidth@length\relax}{}%
%%%%%%%%%
    \ifbool{mdf@everyline}{%
     \ifbool{mdf@bottomline}{%
      \advance\mdfboundingboxheight by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@outerlinewidth@length\relax}{}%
     }{}%
%%%%%%%%%%%%%%
     \psset{linearc=\mdf@roundcorner@length,cornersize=absolute}%
     \expandafter\psset\expandafter{\mdf@psset@local}%
     \mdf@makebox@in[\mdfboundingboxwidth]{%
      \null%
      \psset{unit=1truecm}%
      \ifdimgreater{\mdfboundingboxheight}{\vsize}
       {\begin{pspicture}(0,0)(\mdfboundingboxwidth,\vsize)}
       {\begin{pspicture}(0,0)(\mdfboundingboxwidth,\mdfboundingboxheight)}
        \mdfpstricks@settings%
        \psset{linearc=\mdf@roundcorner@length,cornersize=absolut,}%
        \expandafter\psset\expandafter{\mdf@psset@local}%
        \pnode(\mdf@innerleftmargin@length,\mdf@splitbottomskip@length){mdf@A}
        \pnode(0,0){mdf@O}
        \pnode(\mdfboundingboxwidth,\mdfboundingboxheight){mdf@P}
        \ifbool{mdf@leftline}%
          {%
          \nodexn{(mdf@A)+(\mdf@outerlinewidth@length,0)
                          +(\mdf@middlelinewidth@length,0)
                          +(\mdf@innerlinewidth@length,0)}{mdf@A}
          \nodexn{(mdf@O)+(\mdf@outerlinewidth@length,0)
                          +0.5(\mdf@middlelinewidth@length,0)}{mdf@O}
         }{}%
       \ifbool{mdf@rightline}%
         {%
          \nodexn{(mdf@P)-(\mdf@outerlinewidth@length,0)
                          -0.5(\mdf@middlelinewidth@length,0)}{mdf@P}
         }{}%
       \ifbool{mdf@topline}%
         {%
          \nodexn{(mdf@P)-(0,\mdf@outerlinewidth@length)
                          -0.5(0,\mdf@middlelinewidth@length)}{mdf@P}
         }{}%
%%%%%%%%%%%
      \ifbool{mdf@everyline}{%
       \ifbool{mdf@bottomline}%
         {%
          \nodexn{(mdf@A)+(0,\mdf@outerlinewidth@length)
                          +(0,\mdf@middlelinewidth@length)
                          +(0,\mdf@innerlinewidth@length)}{mdf@A}%
          \nodexn{(mdf@O)+(0,\mdf@outerlinewidth@length)
                          +0.5(0,\mdf@middlelinewidth@length)}{mdf@O}%
         }{}%
      }{}%
%%%%%%%%%%
       \ifbool{mdf@shadow}
           {\pscustom[style=mdfshadow,linestyle=none]{%
                \psline[linejoin=2,linecap=1,]%
                       (mdf@P|mdf@O)(mdf@P)(mdf@O|mdf@P)%
                \psline[linejoin=2,linecap=1,linearc=\z@]%
                       (mdf@O|mdf@P)(mdf@O)(mdf@P|mdf@O)
                \closedshadow
                }
           }{}
%      \psclip{
%%%%%%%%%%%%%
    \ifbool{mdf@everyline}{%
         %Four lines
          \mdf@test@ltrb{\mdf@pstricksbox@fl{mdf@O}{mdf@P}}{}
         %three lines
          \mdf@test@ltb{%
              \mdf@pstricksbox@tl{(mdf@P|mdf@O)(mdf@O)(mdf@O|mdf@P)(mdf@P)}}{}
          \mdf@test@trb{%
              \mdf@pstricksbox@tl{(mdf@O)(mdf@P|mdf@O)(mdf@P)(mdf@O|mdf@P)}}{}
          \mdf@test@ltr{%
              \mdf@pstricksbox@tl{(mdf@O)(mdf@O|mdf@P)(mdf@P)(mdf@P|mdf@O)}}{}%
          \mdf@test@lrb{%
              \mdf@pstricksbox@tl{(mdf@O|mdf@P)(mdf@O)(mdf@P|mdf@O)(mdf@P)}}{}%
         %two lines combinded
          \mdf@test@lb{\mdf@pstricksbox@tcl%
                           {(mdf@P|mdf@O)(mdf@P)(mdf@O|mdf@P)}%
                           {(mdf@O|mdf@P)(mdf@O)(mdf@P|mdf@O)}}{}
          \mdf@test@rb{\mdf@pstricksbox@tcl%
                           {(mdf@P)(mdf@O|mdf@P)(mdf@O)}%
                           {(mdf@O)(mdf@P|mdf@O)(mdf@P)}}{}
          \mdf@test@tr{\mdf@pstricksbox@tcl%
                           {(mdf@P|mdf@O)(mdf@O)(mdf@O|mdf@P)}%
                           {(mdf@O|mdf@P)(mdf@P)(mdf@P|mdf@O)}}{}
          \mdf@test@lt{\mdf@pstricksbox@tcl%
                           {(mdf@O)(mdf@P|mdf@O)(mdf@P)}%
                           {(mdf@O)(mdf@O|mdf@P)(mdf@P)}}{}
         %two lines not combinded combinded
          \mdf@test@lr{\mdf@pstricksbox@tncl{(mdf@O|mdf@P)}{(mdf@P|mdf@O)}
                      }{}
          \mdf@test@tb{\mdf@pstricksbox@tncl{(mdf@P|mdf@O)}{(mdf@O|mdf@P)}
                      }{}
        %single line
         \mdf@test@l{\mdf@pstricksbox@ol{(mdf@O)(mdf@O|mdf@P)}}{}
         \mdf@test@r{\mdf@pstricksbox@ol{(mdf@P)(mdf@P|mdf@O)}}{}
         \mdf@test@t{\mdf@pstricksbox@ol{(mdf@P)(mdf@O|mdf@P)}}{}
         \mdf@test@b{\mdf@pstricksbox@ol{(mdf@O)(mdf@P|mdf@O)}}{}
        %no line
         \mdf@test@noline{\psframe[style=mdfbackgroundstyle](mdf@O)(mdf@P)}{}%
     }{%
      %Four or Three lines
       \ifboolexpr{test {\mdf@test@ltrb} or test {\mdf@test@ltr}}%
        {\mdf@pstricksbox@tl{(mdf@O)(mdf@O|mdf@P)(mdf@P)(mdf@P|mdf@O)}}%
        {}%
      %two combinded lines      
      \ifboolexpr{test {\mdf@test@ltb} or test {\mdf@test@lt}}
                 {\mdf@pstricksbox@tcl{(mdf@O)(mdf@P|mdf@O)(mdf@P)}%
                                      {(mdf@O)(mdf@O|mdf@P)(mdf@P)}}{}
      \ifboolexpr{test {\mdf@test@trb} or test {\mdf@test@tr}}%
                 {\mdf@pstricksbox@tcl{(mdf@P|mdf@O)(mdf@O)(mdf@O|mdf@P)}%
                                      {(mdf@O|mdf@P)(mdf@P)(mdf@P|mdf@O)}}{}
      %two not combinded lines   
      \ifboolexpr{test {\mdf@test@lrb} or test {\mdf@test@lr}}%
                 {\mdf@pstricksbox@tncl{(mdf@O|mdf@P)}{(mdf@P|mdf@O)}}{}
      %single line
      \ifboolexpr{test {\mdf@test@tb} or test {\mdf@test@t}}%
                 {\mdf@pstricksbox@ol{(mdf@P)(mdf@O|mdf@P)}}{}
      \ifboolexpr{test {\mdf@test@lb} or test {\mdf@test@l}}%
                 {\mdf@pstricksbox@ol{(mdf@O)(mdf@O|mdf@P)}}{}
      \ifboolexpr{test {\mdf@test@rb} or test {\mdf@test@r}}%
                 {\mdf@pstricksbox@ol{(mdf@P)(mdf@P|mdf@O)}}{}
      %no line
      \mdf@test@b{\psframe[style=mdfbackgroundstyle](mdf@O)(mdf@P)}{}%
      \mdf@test@noline{\psframe[style=mdfbackgroundstyle](mdf@O)(mdf@P)}{}%
     }%
%     }
     %Frametitlebackground
       \drawbrackgroundframetitle@first
      %output%
       \rput[bl](mdf@A){\box\mdf@splitbox@two}
%       \psdot(mdf@A)\uput[90](mdf@A){mdf at A}
%       \psdot(mdf@P)\uput[90](mdf@P){mdf at P}
%       \psdot(mdf@O)\uput[90](mdf@O){mdf at O}
%     \endpsclip
      \mdf@extra%
      \mdf@firstextra%
     \end{pspicture}
    }%
   \mdf@makeboxalign@right%
  }%
 \fi
}%
\def\drawbrackgroundframetitle@first{%
 \ifdefempty{\mdf@frametitle}{}%
  {%
   \ifbool{mdf@repeatframetitle}%
     {%repeating title = true
      \drawbrackgroundframetitle@@@first
     }%
     {%
      \ifdimgreater{\mdfboundingboxheight}{\mdfframetitleboxtotalheight}%
        {%
         \drawbrackgroundframetitle@@first
         \global\mdfframetitleboxtotalheight=-\p@%
        }{\mdf@PackageWarning{You got a page break inside the frame 
                              title\MessageBreak
                              Currently this isn't well supported}%
          \drawbrackgroundframetitle@@first
          \global\mdfframetitleboxtotalheight=\dimexpr
                          \mdfframetitleboxtotalheight
                          -\mdfboundingboxheight
                          -\mdf@innerlinewidth@length
                          -0.5\mdf@middlelinewidth@length%
                          +\mdf@frametitlebelowskip@length
                          +\mdf@splitbottomskip@length
                          +\mdf@splittopskip@length
                          +\dp\strutbox\relax%
        }%
     }%
  }%
}%
\def\drawbrackgroundframetitle@@first{%
 \begingroup%
  \ifbool{mdf@leftline}{%
       \nodexn{(mdf@O)+(\mdf@innerlinewidth@length,0)
               +0.5(\mdf@middlelinewidth@length,0)}{mdf@O}%
       }{}%
  \ifbool{mdf@rightline}{%
       \nodexn{(mdf@P)-(\mdf@innerlinewidth@length,0)
               -0.5(\mdf@middlelinewidth@length,0)}{mdf@P}%
       }{}%
  \ifbool{mdf@topline}{%
       \nodexn{(mdf@P)-(0,\mdf@innerlinewidth@length)
               -0.5(0,\mdf@middlelinewidth@length)}{mdf@P}%
       }{}%
 \ifdimgreater{\mdfboundingboxheight}{\mdfframetitleboxtotalheight}
    {\nodexn{(mdf@P)-(0,\mdfframetitleboxtotalheight)}{mdf@F}}%
    {\nodexn{(mdf@O)}{mdf@F}}%
  \psline[style=mdfframetitlebackgroundstyle](mdf@O|mdf@F)(mdf@O|mdf@P)
                                             (mdf@P)(mdf@P|mdf@F)%
 \endgroup
}
\def\drawbrackgroundframetitle@@@first{%
 \begingroup%
  \ifbool{mdf@leftline}{%
       \nodexn{(mdf@O)+(\mdf@innerlinewidth@length,0)
               +0.5(\mdf@middlelinewidth@length,0)}{mdf@O}%
       }{}%
  \ifbool{mdf@rightline}{%
       \nodexn{(mdf@P)-(\mdf@innerlinewidth@length,0)
               -0.5(\mdf@middlelinewidth@length,0)}{mdf@P}%
       }{}%
  \ifbool{mdf@topline}{%
       \nodexn{(mdf@P)-(0,\mdf@innerlinewidth@length)
               -0.5(0,\mdf@middlelinewidth@length)}{mdf@P}%
       }{}%
  \nodexn{(mdf@P)-(0,\mdfframetitleboxtotalheight)}{mdf@F}%
  \psline[style=mdfframetitlebackgroundstyle](mdf@O|mdf@F)(mdf@O|mdf@P)
                                             (mdf@P)(mdf@P|mdf@F)%
 \endgroup
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@putbox@middle}
% Middle output
%    \begin{macrocode}
\def\mdf@putbox@middle{%
  \ifvoid\mdf@splitbox@two
  \else%
   \mdf@makebox@out{%
    \mdf@makeboxalign@left%
%     \ifbool{mdf@leftline}{\hspace*{\mdf@middlelinewidth@length}}{}%
    \setlength\mdfboundingboxwidth{\wd\mdf@splitbox@two}%
    \advance\mdfboundingboxwidth by \mdf@innerleftmargin@length\relax%
    \advance\mdfboundingboxwidth by \mdf@innerrightmargin@length\relax%
    \ifbool{mdf@leftline}{%
      \advance\mdfboundingboxwidth by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@outerlinewidth@length\relax}{}%
    \ifbool{mdf@rightline}{%
      \advance\mdfboundingboxwidth by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@outerlinewidth@length\relax}{}%
    \setlength\mdfboundingboxheight%
              {\dimexpr\ht\mdf@splitbox@two+\dp\mdf@splitbox@two\relax}%
    \advance\mdfboundingboxheight by \mdf@splitbottomskip@length\relax%
%%%%%%%%%
    \ifbool{mdf@everyline}{%
     \ifbool{mdf@topline}{%
      \advance\mdfboundingboxheight by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@outerlinewidth@length\relax}{}%
     \ifbool{mdf@bottomline}{%
      \advance\mdfboundingboxheight by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@outerlinewidth@length\relax}{}%
     }{}%
%%%%%%%%%%%%%%
     \psset{unit=1truecm}%
     \mdf@makebox@in[\mdfboundingboxwidth]{%
      \null%
      \ifdimgreater{\mdfboundingboxheight}{\vsize}
       {\begin{pspicture}(0,0)(\mdfboundingboxwidth,\vsize)}
       {\begin{pspicture}(0,0)(\mdfboundingboxwidth,\mdfboundingboxheight)}
        \mdfpstricks@settings%
        \psset{linearc=0pt,cornersize=absolut,}%
        \expandafter\psset\expandafter{\mdf@psset@local}%
        %%%%
        \pnode(\mdf@innerleftmargin@length,\mdf@splitbottomskip@length){mdf@A}
        \pnode(0,0){mdf@O}
        \pnode(\mdfboundingboxwidth,\mdfboundingboxheight){mdf@P}
        \ifbool{mdf@leftline}%
          {%
          \nodexn{(mdf@A)+(\mdf@outerlinewidth@length,0)
                          +(\mdf@middlelinewidth@length,0)
                          +(\mdf@innerlinewidth@length,0)}{mdf@A}
          \nodexn{(mdf@O)+(\mdf@outerlinewidth@length,0)
                          +0.5(\mdf@middlelinewidth@length,0)}{mdf@O}
         }{}%
       \ifbool{mdf@rightline}%
         {%
          \nodexn{(mdf@P)-(\mdf@outerlinewidth@length,0)
                          -0.5(\mdf@middlelinewidth@length,0)}{mdf@P}
         }{}%
      %%
%%%%%%%%%%%
      \ifbool{mdf@everyline}{%
       \ifbool{mdf@bottomline}%
         {%
          \nodexn{(mdf@A)+(0,\mdf@outerlinewidth@length)
                          +(0,\mdf@middlelinewidth@length)
                          +(0,\mdf@innerlinewidth@length)}{mdf@A}%
          \nodexn{(mdf@O)+(0,\mdf@outerlinewidth@length)
                          +0.5(0,\mdf@middlelinewidth@length)}{mdf@O}%
         }{}%
       \ifbool{mdf@topline}%
         {%
          \nodexn{(mdf@P)-(0,\mdf@outerlinewidth@length)
                          -0.5(0,\mdf@middlelinewidth@length)}{mdf@P}
         }{}%
       }{}%
%%%%%%%%%%
      %%
      \ifbool{mdf@shadow}
         {\psframe[style=mdfshadow](mdf@O)(mdf@P)}{}
%%%%%%%%%%%%%
    \ifbool{mdf@everyline}{%
         %Four lines
          \mdf@test@ltrb{\mdf@pstricksbox@fl{mdf@O}{mdf@P}}{}
         %three lines
          \mdf@test@ltb{%
              \mdf@pstricksbox@tl{(mdf@P|mdf@O)(mdf@O)(mdf@O|mdf@P)(mdf@P)}}{}
          \mdf@test@trb{%
              \mdf@pstricksbox@tl{(mdf@O)(mdf@P|mdf@O)(mdf@P)(mdf@O|mdf@P)}}{}
          \mdf@test@ltr{%
              \mdf@pstricksbox@tl{(mdf@O)(mdf@O|mdf@P)(mdf@P)(mdf@P|mdf@O)}}{}%
          \mdf@test@lrb{%
              \mdf@pstricksbox@tl{(mdf@O|mdf@P)(mdf@O)(mdf@P|mdf@O)(mdf@P)}}{}%
         %two lines combinded
          \mdf@test@lb{\mdf@pstricksbox@tcl%
                           {(mdf@P|mdf@O)(mdf@P)(mdf@O|mdf@P)}%
                           {(mdf@O|mdf@P)(mdf@O)(mdf@P|mdf@O)}}{}
          \mdf@test@rb{\mdf@pstricksbox@tcl%
                           {(mdf@P)(mdf@O|mdf@P)(mdf@O)}%
                           {(mdf@O)(mdf@P|mdf@O)(mdf@P)}}{}
          \mdf@test@tr{\mdf@pstricksbox@tcl%
                           {(mdf@P|mdf@O)(mdf@O)(mdf@O|mdf@P)}%
                           {(mdf@O|mdf@P)(mdf@P)(mdf@P|mdf@O)}}{}
          \mdf@test@lt{\mdf@pstricksbox@tcl{(mdf@O)(mdf@P|mdf@O)(mdf@P)}%
                                           {(mdf@O)(mdf@O|mdf@P)(mdf@P)}}{}
         %two lines not combinded combinded
          \mdf@test@lr{\mdf@pstricksbox@tncl{(mdf@O|mdf@P)}{(mdf@P|mdf@O)}
                      }{}
          \mdf@test@tb{\mdf@pstricksbox@tncl{(mdf@P|mdf@O)}{(mdf@O|mdf@P)}
                      }{}
        %single line
         \mdf@test@l{\mdf@pstricksbox@ol{(mdf@O)(mdf@O|mdf@P)}}{}
         \mdf@test@r{\mdf@pstricksbox@ol{(mdf@P)(mdf@P|mdf@O)}}{}
         \mdf@test@t{\mdf@pstricksbox@ol{(mdf@P)(mdf@O|mdf@P)}}{}
         \mdf@test@b{\mdf@pstricksbox@ol{(mdf@O)(mdf@P|mdf@O)}}{}
        %no line
         \mdf@test@noline{\psframe[style=mdfbackgroundstyle](mdf@O)(mdf@P)}{}%
     }{%
      \ifboolexpr{bool {mdf@leftline} and bool {mdf@rightline}}%
               {\mdf@pstricksbox@tncl{(mdf@O|mdf@P)}{(mdf@P|mdf@O)}}{}%
      \ifboolexpr{bool {mdf@leftline} and not (bool {mdf@rightline})}%
               {\mdf@pstricksbox@ol{(mdf@O)(mdf@O|mdf@P)}}{}%
      \ifboolexpr{not (bool {mdf@leftline}) and bool {mdf@rightline}}%
               {\mdf@pstricksbox@ol{(mdf@P)(mdf@P|mdf@O)}}{}%
      \ifboolexpr{not (bool {mdf@leftline}) and not (bool {mdf@rightline})}%
               {\psframe[style=mdfbackgroundstyle](mdf@O)(mdf@P)}{}%
    }%
     %Frametitlebackground
       \drawbrackgroundframetitle@middle
      %output%
       \rput[bl](mdf@A){\box\mdf@splitbox@two}
       %\psdot(mdf@A)\uput[90](mdf@A){mdf at A}
       %\psdot(mdf@P)\uput[90](mdf@P){mdf at P}
       %\psdot(mdf@O)\uput[90](mdf@O){mdf at O}
      \mdf@extra% 
      \mdf@middleextra%
     \end{pspicture}%
    }%
   \mdf@makeboxalign@right%
  }%
 \fi
}%
\def\drawbrackgroundframetitle@middle{%
 \ifdefempty{\mdf@frametitle}{}%
  {%
   \ifbool{mdf@repeatframetitle}%
     {%repeating title = true
      \drawbrackgroundframetitle@@@middle
     }%
     {%
      \ifdimless{\mdfframetitleboxtotalheight}{\z@}
        {}%
        {%
          \drawbrackgroundframetitle@@middle
          \global\mdfframetitleboxtotalheight=-\p@\relax%
        }%
     }%
 }%
}%
\def\drawbrackgroundframetitle@@middle{%
 \begingroup%
  \ifbool{mdf@leftline}{%
       \nodexn{(mdf@O)+(\mdf@innerlinewidth@length,0)
               +0.5(\mdf@middlelinewidth@length,0)}{mdf@O}%
       }{}%
  \ifbool{mdf@rightline}{%
       \nodexn{(mdf@P)-(\mdf@innerlinewidth@length,0)
               -0.5(\mdf@middlelinewidth@length,0)}{mdf@P}%
       }{}%
  \nodexn{(mdf@P)-(0,\mdfframetitleboxtotalheight)}{mdf@F}%
  \psline[style=mdfframetitlebackgroundstyle,linearc=\z@]%
         (mdf@O|mdf@F)(mdf@O|mdf@P)(mdf@P)(mdf@P|mdf@F)%
 \endgroup
}
\def\drawbrackgroundframetitle@@@middle{%
 \begingroup%
  \ifbool{mdf@leftline}{%
       \nodexn{(mdf@O)+(\mdf@innerlinewidth@length,0)
               +0.5(\mdf@middlelinewidth@length,0)}{mdf@O}%
       }{}%
  \ifbool{mdf@rightline}{%
       \nodexn{(mdf@P)-(\mdf@innerlinewidth@length,0)
               -0.5(\mdf@middlelinewidth@length,0)}{mdf@P}%
       }{}%
  \ifbool{mdf@everyline}%
    {%
     \ifbool{mdf@topline}{%
        \nodexn{(mdf@P)-(0,\mdf@innerlinewidth@length)
                -0.5(0,\mdf@middlelinewidth@length)}{mdf@P}%
        }{}%
     }{}%
  \nodexn{(mdf@P)-(0,\mdfframetitleboxtotalheight)}{mdf@F}%
  \psline[style=mdfframetitlebackgroundstyle](mdf@O|mdf@F)(mdf@O|mdf@P)
                                             (mdf@P)(mdf@P|mdf@F)%
 \endgroup
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{mdf@putbox@second}
% Last output
%    \begin{macrocode}
\def\mdf@putbox@second{
  \ifvoid\mdf@splitbox@one
  \else%
   \mdf@makebox@out{%
     \mdf@makeboxalign@left%
%     \ifbool{mdf@leftline}{\hspace*{\mdf@middlelinewidth@length}}{}%
    \setlength\mdfboundingboxwidth{\wd\mdf@splitbox@one}%
    \advance\mdfboundingboxwidth by \mdf@innerleftmargin@length\relax%
    \advance\mdfboundingboxwidth by \mdf@innerrightmargin@length\relax%
    \ifbool{mdf@leftline}{%
      \advance\mdfboundingboxwidth by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@outerlinewidth@length\relax}{}%
    \ifbool{mdf@rightline}{%
      \advance\mdfboundingboxwidth by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxwidth by \mdf@outerlinewidth@length\relax}{}%
    \setlength\mdfboundingboxheight%
              {\dimexpr\ht\mdf@splitbox@one+\dp\mdf@splitbox@one\relax}%
    \advance\mdfboundingboxheight by \mdf@innerbottommargin@length\relax%
    \ifbool{mdf@bottomline}{%
      \advance\mdfboundingboxheight by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@outerlinewidth@length\relax}{}%
%%%%%%%%%
    \ifbool{mdf@everyline}{%
     \ifbool{mdf@topline}{%
      \advance\mdfboundingboxheight by \mdf@innerlinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@middlelinewidth@length\relax%
      \advance\mdfboundingboxheight by \mdf@outerlinewidth@length\relax}{}%
     }{}%
%%%%%%%%%%%%%%
     \psset{unit=1truecm}%
   \mdf@makebox@in[\mdfboundingboxwidth]{%
       \null%
       \begin{pspicture}(0,0)(\mdfboundingboxwidth,\mdfboundingboxheight)
        \mdfpstricks@settings%
        \psset{linearc=\mdf@roundcorner@length,cornersize=absolut,}%
        \expandafter\psset\expandafter{\mdf@psset@local}%
        \pnode(\mdf@innerleftmargin@length,\mdf@innerbottommargin@length)
              {mdf@A}
        \pnode(0,0){mdf@O}
        \pnode(\mdfboundingboxwidth,\mdfboundingboxheight){mdf@P}
        \ifbool{mdf@leftline}%
          {%
          \nodexn{(mdf@A)+(\mdf@outerlinewidth@length,0)
                          +(\mdf@middlelinewidth@length,0)
                          +(\mdf@innerlinewidth@length,0)}{mdf@A}
          \nodexn{(mdf@O)+(\mdf@outerlinewidth@length,0)
                          +0.5(\mdf@middlelinewidth@length,0)}{mdf@O}
         }{}%
       \ifbool{mdf@rightline}%
         {%
          \nodexn{(mdf@P)-(\mdf@outerlinewidth@length,0)
                          -0.5(\mdf@middlelinewidth@length,0)}{mdf@P}
         }{}%
       \ifbool{mdf@bottomline}%
         {%
          \nodexn{(mdf@A)+(0,\mdf@outerlinewidth@length)
                          +(0,\mdf@middlelinewidth@length)
                          +(0,\mdf@innerlinewidth@length)}{mdf@A}
          \nodexn{(mdf@O)+(0,\mdf@outerlinewidth@length)
                          +0.5(0,\mdf@middlelinewidth@length)}{mdf@O}
         }{}%
%%%%%%%%%%%
      \ifbool{mdf@everyline}{%
       \ifbool{mdf@topline}%
         {%
          \nodexn{(mdf@P)-(0,\mdf@outerlinewidth@length)
                          -0.5(0,\mdf@middlelinewidth@length)}{mdf@P}
         }{}%
       }{}%
%%%%%%%%%%
      %%
       \ifbool{mdf@shadow}
           {\pscustom[style=mdfshadow,linestyle=none]{%
                \psline[linejoin=2,linecap=1,](mdf@O|mdf@P)(mdf@O)%
                                              (mdf@P|mdf@O)(mdf@P)%
                \psline[linejoin=2,linecap=1,linearc=\z@](mdf@O|mdf@P)(mdf@P)
                \closedshadow
                }
           }{}
%%%%%%%%%%%%%
    \ifbool{mdf@everyline}{%
         %Four lines
          \mdf@test@ltrb{\mdf@pstricksbox@fl{mdf@O}{mdf@P}}{}
         %three lines
          \mdf@test@ltb{%
              \mdf@pstricksbox@tl{(mdf@P|mdf@O)(mdf@O)(mdf@O|mdf@P)(mdf@P)}}{}
          \mdf@test@trb{%
              \mdf@pstricksbox@tl{(mdf@O)(mdf@P|mdf@O)(mdf@P)(mdf@O|mdf@P)}}{}
          \mdf@test@ltr{%
              \mdf@pstricksbox@tl{(mdf@O)(mdf@O|mdf@P)(mdf@P)(mdf@P|mdf@O)}}{}%
          \mdf@test@lrb{%
              \mdf@pstricksbox@tl{(mdf@O|mdf@P)(mdf@O)(mdf@P|mdf@O)(mdf@P)}}{}%
         %two lines combinded
          \mdf@test@lb{\mdf@pstricksbox@tcl%
                           {(mdf@P|mdf@O)(mdf@P)(mdf@O|mdf@P)}%
                           {(mdf@O|mdf@P)(mdf@O)(mdf@P|mdf@O)}}{}
          \mdf@test@rb{\mdf@pstricksbox@tcl%
                           {(mdf@P)(mdf@O|mdf@P)(mdf@O)}%
                           {(mdf@O)(mdf@P|mdf@O)(mdf@P)}}{}
          \mdf@test@tr{\mdf@pstricksbox@tcl%
                           {(mdf@P|mdf@O)(mdf@O)(mdf@O|mdf@P)}%
                           {(mdf@O|mdf@P)(mdf@P)(mdf@P|mdf@O)}}{}
          \mdf@test@lt{\mdf@pstricksbox@tcl%
                           {(mdf@O)(mdf@P|mdf@O)(mdf@P)}%
                           {(mdf@O)(mdf@O|mdf@P)(mdf@P)}}{}
         %two lines not combinded combinded
          \mdf@test@lr{\mdf@pstricksbox@tncl{(mdf@O|mdf@P)}{(mdf@P|mdf@O)}
                      }{}
          \mdf@test@tb{\mdf@pstricksbox@tncl{(mdf@P|mdf@O)}{(mdf@O|mdf@P)}
                      }{}
        %single line
         \mdf@test@l{\mdf@pstricksbox@ol{(mdf@O)(mdf@O|mdf@P)}}{}
         \mdf@test@r{\mdf@pstricksbox@ol{(mdf@P)(mdf@P|mdf@O)}}{}
         \mdf@test@t{\mdf@pstricksbox@ol{(mdf@P)(mdf@O|mdf@P)}}{}
         \mdf@test@b{\mdf@pstricksbox@ol{(mdf@O)(mdf@P|mdf@O)}}{}
        %no line
         \mdf@test@noline{\psframe[style=mdfbackgroundstyle](mdf@O)(mdf@P)}{}%
     }{%
      %Four + Three
      \ifboolexpr{test {\mdf@test@ltrb} or test {\mdf@test@lrb}}%
        {\mdf@pstricksbox@tl{(mdf@O|mdf@P)(mdf@O)(mdf@P|mdf@O)(mdf@P)}}{}%
     %Two combinded
      \ifboolexpr{test {\mdf@test@ltb} or test {\mdf@test@lb}}%
        {\mdf@pstricksbox@tcl{(mdf@P|mdf@O)(mdf@P)(mdf@O|mdf@P)}%
                             {(mdf@O|mdf@P)(mdf@O)(mdf@P|mdf@O)}}{}
      \ifboolexpr{test {\mdf@test@trb} or test {\mdf@test@rb}}%
        {\mdf@pstricksbox@tcl{(mdf@P)(mdf@O|mdf@P)(mdf@O)}%
                             {(mdf@O)(mdf@P|mdf@O)(mdf@P)}}{}
     %Two not combinded
      \ifboolexpr{test {\mdf@test@ltr} or test {\mdf@test@lr}}%
        {\mdf@pstricksbox@tncl{(mdf@O|mdf@P)}{(mdf@P|mdf@O)}}{}%
     %one line
      \ifboolexpr{test {\mdf@test@tb} or test {\mdf@test@b}}%
        {\mdf@pstricksbox@ol{(mdf@O)(mdf@P|mdf@O)}}{}
      \ifboolexpr{test {\mdf@test@lt} or test {\mdf@test@l}}%
        {\mdf@pstricksbox@ol{(mdf@O)(mdf@O|mdf@P)}}{}
      \ifboolexpr{test {\mdf@test@tr} or test {\mdf@test@r}}%
        {\mdf@pstricksbox@ol{(mdf@P)(mdf@P|mdf@O)}}{}
     %no line
      \mdf@test@t{\psframe[style=mdfbackgroundstyle](mdf@O)(mdf@P)}{}%
      \mdf@test@noline{\psframe[style=mdfbackgroundstyle](mdf@O)(mdf@P)}{}%
    }%
     %Frametitlebackground
       \drawbrackgroundframetitle@second
      %output%
       \rput[bl](mdf@A){\box\mdf@splitbox@one}
      \mdf@extra% 
      \mdf@secondextra
%       \psdot(mdf@A)\uput[90](mdf@A){mdf at A}
%       \psdot(mdf@P)\uput[90](mdf@P){mdf at P}
%       \psdot(mdf@O)\uput[90](mdf@O){mdf at O}
     \end{pspicture}%
    }%
   \mdf@makeboxalign@right%
  }%
 \fi
}%
\def\drawbrackgroundframetitle@second{%
 \ifdefempty{\mdf@frametitle}{}%
  {%
   \ifbool{mdf@repeatframetitle}%
     {%repeating title = true
      \drawbrackgroundframetitle@@@second
     }%
     {%
      \ifdimless{\mdfframetitleboxtotalheight}{\z@}
        {}{%
          \drawbrackgroundframetitle@@second
        }%
     }%
 }%
}%
\def\drawbrackgroundframetitle@@second{%
 \begingroup%
  \ifbool{mdf@leftline}{%
       \nodexn{(mdf@O)+(\mdf@innerlinewidth@length,0)
               +0.5(\mdf@middlelinewidth@length,0)}{mdf@O}%
       }{}%
  \ifbool{mdf@rightline}{%
       \nodexn{(mdf@P)-(\mdf@innerlinewidth@length,0)
               -0.5(\mdf@middlelinewidth@length,0)}{mdf@P}%
       }{}%
  \nodexn{(mdf@P)-(0,\mdfframetitleboxtotalheight)}{mdf@F}%
  \psline[style=mdfframetitlebackgroundstyle,linearc=\z@]%
         (mdf@O|mdf@F)(mdf@O|mdf@P)(mdf@P)(mdf@P|mdf@F)%
 \endgroup
}
\def\drawbrackgroundframetitle@@@second{%
 \begingroup%
  \ifbool{mdf@leftline}{%
       \nodexn{(mdf@O)+(\mdf@innerlinewidth@length,0)
               +0.5(\mdf@middlelinewidth@length,0)}{mdf@O}%
       }{}%
  \ifbool{mdf@rightline}{%
       \nodexn{(mdf@P)-(\mdf@innerlinewidth@length,0)
               -0.5(\mdf@middlelinewidth@length,0)}{mdf@P}%
       }{}%
  \ifbool{mdf@everyline}%
    {%
     \ifbool{mdf@topline}{%
        \nodexn{(mdf@P)-(0,\mdf@innerlinewidth@length)
                -0.5(0,\mdf@middlelinewidth@length)}{mdf@P}%
        }{}%
     }{}%
  \nodexn{(mdf@P)-(0,\mdfframetitleboxtotalheight)}{mdf@F}%
  \psline[style=mdfframetitlebackgroundstyle](mdf@O|mdf@F)(mdf@O|mdf@P)
                                             (mdf@P)(mdf@P|mdf@F)%
 \endgroup
}
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
 \endinput
%eof
%    \end{macrocode}
% \iffalse
%&lt;/mdframepstricks&gt;
% \fi
%
%
%
%\iffalse
%    \begin{macrocode}
%&lt;*mdframed-example-default&gt;
%    \end{macrocode}
%\fi
%
% \section{The file mdframed-example-default}
%
%    \begin{macrocode}
%Documenation of the package mdframed
\setcounter{errorcontextlines}{999}
\documentclass[parskip=false,english,11pt]{ltxmdf}



\lstset{style=lstltxmdf}

\newcommand\Loadedframemethod{default}
\usepackage[framemethod=\Loadedframemethod]{mdframed}


\surroundwithmdframed[middlelinecolor=ltxmdfblue,middlelinewidth=1pt,%
                      roundcorner=10pt,innertopmargin=0pt,%
                      leftmargin=1cm,rightmargin=1cm,%
                      innerleftmargin=-15pt,innerrightmargin=-15pt,%
                      ignorelastdescenders,%
                      settings={\lstset{resetmargins}},%
                      skipbelow=\topskip,skipabove=\topskip,%
                      innerbottommargin=0pt,backgroundcolor=gray!10]%
                     {tltxmdfexample}


\newmdenv[middlelinecolor=ltxmdfblue,middlelinewidth=1pt,%
                      roundcorner=10pt,innertopmargin=0pt,%
                      leftmargin=1cm,rightmargin=1cm,%
                      innerleftmargin=-15pt,innerrightmargin=-15pt,%
                      ignorelastdescenders,%
                      settings={\lstset{resetmargins}},%
                      skipbelow=\topskip,skipabove=\topskip,%
                      innerbottommargin=0pt,backgroundcolor=gray!10]%
                     {tltxmdfhighlight}
\def\highlightinputenv{tltxmdfhighlight}


\title{The \Pack{mdframed} package}
\subtitle{Examples for \Opt{framemethod=\Loadedframemethod}}
\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}}
\date{\mdfmaindate}
\version{\mdversion}
\introduction{In this document I collect various examples for 
              \Opt{framemethod=\Loadedframemethod}.
              Some presented examples are more or less exorbitant.}

\mdfsetup{skipabove=\topskip,skipbelow=\topskip}
\newrobustcmd\ExampleText{%
        An \textit{inhomogeneous linear} differential equation has the form
         \begin{align}
            L[v ] = f,
         \end{align}
        where $L$ is a linear differential operator, $v$ is
        the dependent variable, and $f$ is a given non-zero
        function of the independent variables alone.
}

\newcounter{examplecount}
\setcounter{examplecount}{0}
\renewcommand\thesubsection{}
\newcommand\Examplesec[1]{%
\stepcounter{examplecount}%
\subsection{Example~\arabic{examplecount}~--~#1\relax}%
}

\begin{document}
\maketitle
\section{Loading}
In the preamble only the package \Pack{mdframed} with the option
\Opt{framemethod=\Loadedframemethod} is loaded. All other modifications will be
done by \Cmd{mdfdefinestyle} or \Cmd{mdfsetup}.

{\large\color{red!50!black}
\NOTE Every \Cmd{global} inside the examples is necessary to work with my own
created environment \Env{tltxmdfexample*}.}

\section{Examples}
All examples have the following settings:

\begin{tltxmdfexample}
\mdfsetup{skipabove=\topskip,skipbelow=\topskip}
\newrobustcmd\ExampleText{%
  An \textit{inhomogeneous linear} differential equation has the form
  \begin{align}
      L[v ] = f,
  \end{align}
  where $L$ is a linear differential operator, $v$ is the dependent 
  variable, and $f$ is a given non-zero function of the independent 
  variables alone.
}
\end{tltxmdfexample}

\clearpage
\Examplesec{very simple}
\begin{tltxmdfexample*}
\global\mdfdefinestyle{exampledefault}{%
     linecolor=red,linewidth=3pt,%
     leftmargin=1cm,rightmargin=1cm
}
\begin{mdframed}[style=exampledefault]
\ExampleText
\end{mdframed}
\end{tltxmdfexample*}

\Examplesec{hidden line + frame title}
\begin{tltxmdfexample*}
\global\mdfapptodefinestyle{exampledefault}{%
 topline=false,bottomline=false}
\begin{mdframed}[style=exampledefault,frametitle={Inhomogeneous linear}]
\ExampleText
\end{mdframed}
\end{tltxmdfexample*}

\Examplesec{colored frame title}
\begin{tltxmdfexample*}

\global\mdfapptodefinestyle{exampledefault}{%
   rightline=true,innerleftmargin=10,innerrightmargin=10,
   frametitlerule=true,frametitlerulecolor=green,
   frametitlebackgroundcolor=yellow,
   frametitlerulewidth=2pt}
\begin{mdframed}[style=exampledefault,frametitle={Inhomogeneous linear}]
\ExampleText
\end{mdframed}
\end{tltxmdfexample*}

\Examplesec{framed picture which is centered}
\begin{tltxmdfexample*}[morekeywords=width]
\begin{mdframed}[userdefinedwidth=6cm,align=center,
                 linecolor=blue,linewidth=4pt]
\textit{CTAN lion drawing by Duane Bibby; thanks to \url{www.ctan.org}}
\IfFileExists{ctan-lion.png}%
 {\includegraphics[width=\linewidth]{ctan-lion.png}}%
 {\rule{\linewidth}{4cm}}%
\end{mdframed}
\end{tltxmdfexample*}

\Examplesec{Theorem environments}
\begin{tltxmdfexample*}[morekeywords={theoremstyle,definition}]
\mdfdefinestyle{theoremstyle}{%
     linecolor=red,linewidth=2pt,%
     frametitlerule=true,%
     frametitlebackgroundcolor=gray!20,
     innertopmargin=\topskip,
   }
\mdtheorem[style=theoremstyle]{definition}{Definition}
\begin{definition}
\ExampleText
\end{definition}
\begin{definition}[Inhomogeneous linear]
\ExampleText
\end{definition}
\begin{definition*}[Inhomogeneous linear]
\ExampleText
\end{definition*}
\end{tltxmdfexample*}

\Examplesec{theorem with separate header and the help of TikZ (complex)}
\begin{tltxmdfexample*}[%
  morekeywords={theo,baseline,anchor,outer,sep,current,bounding,box,east},%
  moretexcs=tikz]
\newcounter{theo}[section]
\newenvironment{theo}[1][]{%
 \stepcounter{theo}%
  \ifstrempty{#1}%
  {\mdfsetup{%
    frametitle={%
       \tikz[baseline=(current bounding box.east),outer sep=0pt]
        \node[anchor=east,rectangle,fill=blue!20]
        {\strut Theorem~\thetheo};}}
  }%
  {\mdfsetup{%
     frametitle={%
       \tikz[baseline=(current bounding box.east),outer sep=0pt]
        \node[anchor=east,rectangle,fill=blue!20]
        {\strut Theorem~\thetheo:~#1};}}%
   }%
   \mdfsetup{innertopmargin=10pt,linecolor=blue!20,%
             linewidth=2pt,topline=true,
             frametitleaboveskip=\dimexpr-\ht\strutbox\relax,}
   \begin{mdframed}[]\relax%
   }{\end{mdframed}}
\begin{theo}[Inhomogeneous Linear]
\ExampleText
\end{theo}

\begin{theo}
\ExampleText
\end{theo}
\end{tltxmdfexample*}


\Examplesec{hide only a part of a line}
The example below is inspired by the following post on StackExchange
\href{http://tex.stackexchange.com/questions/24101/theorem-decorations^^A
      -that-stay-with-theorem-environment}%
     {Theorem decorations that stay with theorem environment}
\begin{tltxmdfexample*}[morekeywords={mdf@frame@leftline@single,mdf@frame@rightline@single,%
                     mdf@frame@leftline@first,mdf@frame@rightline@first,%
                     mdf@frame@leftline@second,mdf@frame@rightline@second,%
                     mdf@frame@leftline@middle,mdf@frame@rightline@middle,%
                     mdfboundingboxdepth,mdfboundingboxtotalheight,%
                    mdf@topline,ifbool,interruptrule,everyline}]
\makeatletter
\newlength{\interruptlength}
\newrobustcmd\interruptrule[3]{%
 \color{#1}%
 \hspace*{\dimexpr\mdfboundingboxwidth+
             \mdf@innerrightmargin@length\relax}%
 \rule[\dimexpr-\mdfboundingboxdepth+
               #2\interruptlength\relax]%
      {\mdf@middlelinewidth@length}%
      {\dimexpr\mdfboundingboxtotalheight-#3\interruptlength\relax}%
}
\newrobustcmd\overlaplines[2][white]{%
 \mdfsetup{everyline=false}%
 \setlength{\interruptlength}{#2}
 \appto\mdf@frame@leftline@single{\llap{\interruptrule{#1}{1}{2}}}
 \appto\mdf@frame@rightline@single{\rlap{\interruptrule{#1}{1}{2}}}
 \appto\mdf@frame@leftline@first{\llap{\interruptrule{#1}{0}{1}}}
 \appto\mdf@frame@rightline@first{\rlap{\interruptrule{#1}{0}{1}}}
 \appto\mdf@frame@leftline@second{\llap{\interruptrule{#1}{1}{1}}}
 \appto\mdf@frame@rightline@second{\rlap{\interruptrule{#1}{1}{1}}}
 \appto\mdf@frame@leftline@middle{\llap{\interruptrule{#1}{0}{0}}}
 \appto\mdf@frame@rightline@middle{\rlap{\interruptrule{#1}{0}{0}}}
}
\makeatother

\overlaplines{2.5ex}
\begin{mdframed}[linecolor=blue,linewidth=8pt]
\ExampleText
\end{mdframed}
\overlaplines[blue!70!black!20]{2.5ex}
\begin{mdframed}[linecolor=blue,linewidth=8pt]
\ExampleText
\end{mdframed}
\end{tltxmdfexample*}
\end{document}
 \endinput
%    \end{macrocode}
%
%\iffalse
%    \begin{macrocode}
%&lt;/mdframed-example-default&gt;
%    \end{macrocode}
%\fi
%
%\iffalse
%    \begin{macrocode}
%&lt;*mdframed-example-tikz&gt;
%    \end{macrocode}
%\fi
%
% \section{The file mdframed-example-tikz}
%
%    \begin{macrocode}
%Documenation of the package mdframed
\setcounter{errorcontextlines}{999}
\documentclass[parskip=false,english,11pt]{ltxmdf}

\newcommand\Loadedframemethod{TikZ}
\usepackage[framemethod=\Loadedframemethod]{mdframed}

\surroundwithmdframed[middlelinecolor=ltxmdfblue,middlelinewidth=1pt,%
                      roundcorner=10pt,innertopmargin=0pt,%
                      leftmargin=1cm,rightmargin=1cm,%
                      innerleftmargin=-15pt,innerrightmargin=-15pt,%
                      ignorelastdescenders,%
                      settings={\lstset{resetmargins}},%
                      skipbelow=\topskip,skipabove=\topskip,%
                      innerbottommargin=0pt,backgroundcolor=gray!10]%
                     {tltxmdfexample}


\newmdenv[middlelinecolor=ltxmdfblue,middlelinewidth=1pt,%
                      roundcorner=10pt,innertopmargin=0pt,%
                      leftmargin=1cm,rightmargin=1cm,%
                      innerleftmargin=-15pt,innerrightmargin=-15pt,%
                      ignorelastdescenders,%
                      settings={\lstset{resetmargins}},%
                      skipbelow=\topskip,skipabove=\topskip,%
                      innerbottommargin=0pt,backgroundcolor=gray!10]%
                     {tltxmdfhighlight}
\def\highlightinputenv{tltxmdfhighlight}


\title{The \Pack{mdframed} package}
\subtitle{Examples for \Opt{framemethod=\Loadedframemethod}}
\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}}
\date{\mdfmaindate}
\version{\mdversion}
\introduction{In this document I collect various examples for
              \Opt{framemethod=\Loadedframemethod}.
              Some presented examples are more or less exorbitant.}

\mdfsetup{skipabove=\topskip,skipbelow=\topskip}
\newrobustcmd\ExampleText{%
        An \textit{inhomogeneous linear} differential equation has the form
         \begin{align}
            L[v ] = f,
         \end{align}
        where $L$ is a linear differential operator, $v$ is
        the dependent variable, and $f$ is a given non-zero
        function of the independent variables alone.
}

\newcounter{examplecount}
\setcounter{examplecount}{0}
\renewcommand\thesubsection{}
\newcommand\Examplesec[1]{%
\stepcounter{examplecount}%
\subsection{Example~\arabic{examplecount}~--~#1\relax}%
}

\begin{document}
\maketitle
\section{Loading}
In the preamble only the package \Pack{mdframed} width the option
\Opt{framemethod=\Loadedframemethod} is loaded. All other modifications will be
done by \Cmd{mdfdefinestyle} or \Cmd{mdfsetup}.

{\large\color{red!50!black}
\NOTE Every \Cmd{global} inside the examples is necessary to work with my own
created environment \Env{tltxmdfexample*}.}

\section{Examples}
All examples have the following settings:

\begin{tltxmdfexample}
\mdfsetup{skipabove=\topskip,skipbelow=\topskip}
\newrobustcmd\ExampleText{%
  An \textit{inhomogeneous linear} differential equation has the form
  \begin{align}
      L[v ] = f,
  \end{align}
  where $L$ is a linear differential operator, $v$ is the dependent 
  variable, and $f$ is a given non-zero function of the independent 
  variables alone.
}
\end{tltxmdfexample}

\clearpage
\Examplesec{round corner}
\begin{tltxmdfexample*}
\global\mdfdefinestyle{exampledefault}{%
     outerlinewidth=5pt,innerlinewidth=0pt,
     outerlinecolor=red,roundcorner=5pt
}
\begin{mdframed}[style=exampledefault]
\ExampleText
\end{mdframed}
\end{tltxmdfexample*}

\Examplesec{hidden line + frame title}
\begin{tltxmdfexample*}
\global\mdfapptodefinestyle{exampledefault}{%
     topline=false,leftline=false,}
\begin{mdframed}[style=exampledefault,frametitle={Inhomogeneous linear}]
\ExampleText
\end{mdframed}
\end{tltxmdfexample*}


\Examplesec{framed picture which is centered}
\begin{tltxmdfexample*}
\begin{mdframed}[userdefinedwidth=6cm,align=center,
                 linecolor=blue,middlelinewidth=4pt,roundcorner=5pt]
\textit{CTAN lion drawing by Duane Bibby; thanks to \url{www.ctan.org}}
\IfFileExists{ctan-lion.png}%
 {\includegraphics[width=\linewidth]{ctan-lion.png}}%
 {\rule{\linewidth}{4cm}}%
\end{mdframed}
\end{tltxmdfexample*}

\Examplesec{Gimmick}
\begin{tltxmdfexample*}[morekeywords={line,width,dash,dashed,pattern}]
\mdfsetup{splitbottomskip=0.8cm,splittopskip=0cm,
          innerrightmargin=2cm,innertopmargin=1cm,%
          innerlinewidth=2pt,outerlinewidth=2pt,
          middlelinewidth=10pt,backgroundcolor=red,
          linecolor=blue,middlelinecolor=gray,
          tikzsetting={draw=yellow,line width=3pt,%
                    dashed,%
                    dash pattern= on 10pt off 3pt},
          rightline=false,bottomline=false}
\begin{mdframed}
\ExampleText
\end{mdframed}
\end{tltxmdfexample*}


\clearpage
\Examplesec{complex example with TikZ}

\begin{tltxmdfexample*}[morekeywords={mdf}]
\tikzset{titregris/.style =
     {draw=gray, thick, fill=white, shading = exersicetitle, %
      text=gray, rectangle, rounded corners, right,minimum height=.7cm}}
\pgfdeclarehorizontalshading{exersicebackground}{100bp}
          {color(0bp)=(green!40); color(100bp)=(black!5)}
\pgfdeclarehorizontalshading{exersicetitle}{100bp}
          {color(0bp)=(red!40);color(100bp)=(black!5)}
\newcounter{exercise}
\renewcommand*\theexercise{Exercise~n\arabic{exercise}}
\makeatletter
\def\mdf@@exercisepoints{}%new mdframed key:
\define@key{mdf}{exercisepoints}{%
    \def\mdf@@exercisepoints{#1}
}
\mdfdefinestyle{exercisestyle}{%
  outerlinewidth=1em,outerlinecolor=white,%
  leftmargin=-1em,rightmargin=-1em,%
  middlelinewidth=1.2pt,roundcorner=5pt,linecolor=gray,
  apptotikzsetting={\tikzset{mdfbackground/.append style ={%
                       shading = exersicebackground}}},
  innertopmargin=1.2\baselineskip,
  skipabove={\dimexpr0.5\baselineskip+\topskip\relax},
  skipbelow={-1em},
  needspace=3\baselineskip,
  frametitlefont=\sffamily\bfseries,
  settings={\global\stepcounter{exercise}},
  singleextra={%
      \node[titregris,xshift=1cm] at (P-|O) %
         {~\mdf@frametitlefont{\theexercise}\hbox{~}};
      \ifdefempty{\mdf@@exercisepoints}%
      {}%
      {\node[titregris,left,xshift=-1cm] at (P)%
        {~\mdf@frametitlefont{\mdf@@exercisepoints points}\hbox{~}};}%
   },
  firstextra={%
      \node[titregris,xshift=1cm] at (P-|O) %
         {~\mdf@frametitlefont{\theexercise}\hbox{~}};
      \ifdefempty{\mdf@@exercisepoints}%
      {}%
      {\node[titregris,left,xshift=-1cm] at (P)%
        {~\mdf@frametitlefont{\mdf@@exercisepoints points}\hbox{~}};}%
   },
}
\makeatother

\begin{mdframed}[style=exercisestyle]
\ExampleText
\end{mdframed}

\begin{mdframed}[style=exercisestyle,exercisepoints=10]
\ExampleText
\end{mdframed}
\end{tltxmdfexample*}



\clearpage
\Examplesec{Theorem environments}
\begin{tltxmdfexample*}[morekeywords={theoremstyle,definition}]
\mdfdefinestyle{theoremstyle}{%
     linecolor=red,middlelinewidth=2pt,%
     frametitlerule=true,%
     apptotikzsetting={\tikzset{mdfframetitlebackground/.append style={%
                          shade,left color=white, right color=blue!20}}},
     frametitlerulecolor=green!60,
     frametitlerulewidth=1pt,
     innertopmargin=\topskip,
   }
\mdtheorem[style=theoremstyle]{definition}{Definition}
\begin{definition}[Inhomogeneous linear]
\ExampleText
\end{definition}
\begin{definition*}[Inhomogeneous linear]
\ExampleText
\end{definition*}
\end{tltxmdfexample*}
\end{document}
 \endinput

%    \end{macrocode}
%
%\iffalse
%    \begin{macrocode}
%&lt;/mdframed-example-tikz&gt;
%    \end{macrocode}
%\fi
%
%\iffalse
%    \begin{macrocode}
%&lt;*mdframed-example-pstricks&gt;
%    \end{macrocode}
%\fi
%
% \section{The file mdframed-example-pstricks}
%
%    \begin{macrocode}
%Documenation of the package mdframed
\setcounter{errorcontextlines}{999}
\documentclass[parskip=false,english,11pt]{ltxmdf}

\lstDeleteShortInline{|}
\newcommand\Loadedframemethod{PSTricks}
\usepackage[framemethod=\Loadedframemethod]{mdframed}

\surroundwithmdframed[middlelinecolor=ltxmdfblue,middlelinewidth=1pt,%
                      roundcorner=10pt,innertopmargin=0pt,%
                      leftmargin=1cm,rightmargin=1cm,%
                      innerleftmargin=-15pt,innerrightmargin=-15pt,%
                      ignorelastdescenders,%
                      settings={\lstset{resetmargins}},%
                      skipbelow=\topskip,skipabove=\topskip,%
                      innerbottommargin=0pt,backgroundcolor=gray!10]%
                     {tltxmdfexample}

\newmdenv[middlelinecolor=ltxmdfblue,middlelinewidth=1pt,%
                      roundcorner=10pt,innertopmargin=0pt,%
                      leftmargin=1cm,rightmargin=1cm,%
                      innerleftmargin=-15pt,innerrightmargin=-15pt,%
                      ignorelastdescenders,%
                      settings={\lstset{resetmargins}},%
                      skipbelow=\topskip,skipabove=\topskip,%
                      innerbottommargin=0pt,backgroundcolor=gray!10]%
                     {tltxmdfhighlight}
\def\highlightinputenv{tltxmdfhighlight}



\title{The \Pack{mdframed} package}
\subtitle{Examples for \Opt{framemethod=\Loadedframemethod}}
\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}}
\date{\mdfmaindate}
\version{\mdversion}
\introduction{In this document I collect various examples for 
              \Opt{framemethod=\Loadedframemethod}.
              Some presented examples are more or less exorbitant.}

\mdfsetup{skipabove=\topskip,skipbelow=\topskip}
\newrobustcmd\ExampleText{%
        An \textit{inhomogeneous linear} differential equation has the form
         \begin{align}
            L[v ] = f,
         \end{align}
        where $L$ is a linear differential operator, $v$ is
        the dependent variable, and $f$ is a given non-zero
        function of the independent variables alone.
}

\newcounter{examplecount}
\setcounter{examplecount}{0}
\renewcommand\thesubsection{}
\newcommand\Examplesec[1]{%
\stepcounter{examplecount}%
\subsection{Example~\arabic{examplecount}~--~#1\relax}%
}

\begin{document}
\maketitle
\section{Loading}
In the preamble only the package \Pack{mdframed} width the option 
\Opt{framemethod=\Loadedframemethod} is loaded. All other modifications will be
done by \Cmd{mdfdefinestyle} or \Cmd{mdfsetup}.

{\large\color{red!50!black}
\NOTE Every \Cmd{global} inside the examples is necessary to work with my own
created environment \Env{tltxmdfexample*}.}


\section{Examples}
All examples have the following settings:

\begin{tltxmdfexample}
\mdfsetup{skipabove=\topskip,skipbelow=\topskip}
\newrobustcmd\ExampleText{%
  An \textit{inhomogeneous linear} differential equation has the form
  \begin{align}
      L[v ] = f,
  \end{align}
  where $L$ is a linear differential operator, $v$ is the dependent 
  variable, and $f$ is a given non-zero function of the independent 
  variables alone.
}
\end{tltxmdfexample}

\clearpage

\Examplesec{very simple}
\begin{tltxmdfexample*}
\global\mdfdefinestyle{exampledefault}{%
     linecolor=red,middlelinewidth=3pt,%
     leftmargin=1cm,rightmargin=1cm
}
\begin{mdframed}[style=exampledefault,roundcorner=5]
\ExampleText
\end{mdframed}
\end{tltxmdfexample*}


\Examplesec{hidden line + frame title}
\begin{tltxmdfexample*}[morekeywords={innerlinecolor,addtopsstyle,mdfouterlinestyle,
                    linestyle}]
\global\mdfapptodefinestyle{exampledefault}{%
 topline=false,rightline=false,bottomline=false,
 frametitlerule=true,innertopmargin=6pt,
 outerlinewidth=6pt,outerlinecolor=blue,
 pstricksappsetting={\addtopsstyle{mdfouterlinestyle}{linestyle=dashed}},
 innerlinecolor=yellow,innerlinewidth=5pt}%
\begin{mdframed}[style=exampledefault,frametitle={Inhomogeneous linear}]
\ExampleText
\end{mdframed}
\end{tltxmdfexample*}

\Examplesec{Dash Lines}[morekeywords={pstrickssetting,linestyle,dashed}]
\begin{tltxmdfexample*}
\global\mdfdefinestyle{exampledefault}{%
   pstrickssetting={linestyle=dashed,},linecolor=red,middlelinewidth=2pt}
\begin{mdframed}[style=exampledefault]
\ExampleText
\end{mdframed}
\end{tltxmdfexample*}

\Examplesec{Double Lines}
\begin{tltxmdfexample*}[morekeywords={addtopsstyle,mdfmiddlelinestyle,
                    doubleline,doublesep}]
\global\mdfdefinestyle{exampledefault}{%
  pstricksappsetting={\addtopsstyle{mdfmiddlelinestyle}{%
                      doubleline=true,doublesep=6pt,linewidth=4pt}},%
  linecolor=red,middlelinewidth=16pt}
\begin{mdframed}[style=exampledefault]
\ExampleText
\end{mdframed}
\end{tltxmdfexample*}

\Examplesec{Shadow frame}
\begin{tltxmdfexample*}[morekeywords={shadow,shadowsize,myshadowbox}]
\newmdenv[shadow=true,
          shadowsize=11pt,
          linewidth=8pt,
          frametitlerule=true,
          roundcorner=10pt,
          ]{myshadowbox}
\begin{myshadowbox}[frametitle={Inhomogeneous linear}]
\ExampleText
\end{myshadowbox}
\end{tltxmdfexample*}
\end{document}
 \endinput
%    \end{macrocode}
%
%\iffalse
%    \begin{macrocode}
%&lt;/mdframed-example-pstricks&gt;
%    \end{macrocode}
%\fi
%
%\iffalse
%    \begin{macrocode}
%&lt;*mdframed-example-texsx&gt;
%    \end{macrocode}
%\fi
%
% \section{The file mdframed-example-texsx}

%    \begin{macrocode}
%Documenation of the package mdframed
\setcounter{errorcontextlines}{999}
\documentclass[parskip=false,english,11pt,lipsum=true]{ltxmdf}

\usepackage{tikz}
\usetikzlibrary{calc,arrows,shadings,shadows}
\newcommand\Loadedframemethod{tikz}
\usepackage[framemethod=\Loadedframemethod]{mdframed}



\surroundwithmdframed[middlelinecolor=ltxmdfblue,middlelinewidth=1pt,%
                      roundcorner=10pt,innertopmargin=0pt,%
                      leftmargin=1cm,rightmargin=1cm,%
                      innerleftmargin=-15pt,innerrightmargin=-15pt,%
                      ignorelastdescenders,%
                      settings={\lstset{resetmargins}},%
                      skipbelow=\topskip,skipabove=\topskip,%
                      innerbottommargin=0pt,backgroundcolor=gray!10]%
                     {tltxmdfexample}


\newmdenv[middlelinecolor=ltxmdfblue,middlelinewidth=1pt,%
                      roundcorner=10pt,innertopmargin=0pt,%
                      leftmargin=1cm,rightmargin=1cm,%
                      innerleftmargin=-15pt,innerrightmargin=-15pt,%
                      ignorelastdescenders,%
                      settings={\lstset{resetmargins}},%
                      skipbelow=\topskip,skipabove=\topskip,%
                      innerbottommargin=0pt,backgroundcolor=gray!10]%
                     {tltxmdfhighlight}
\def\highlightinputenv{tltxmdfhighlight}

\title{The \Pack{mdframed} package}
\subtitle{Examples for \Opt{framemethod=\Loadedframemethod}}
\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}}
\date{\mdfmaindate}
\version{\mdversion}
\introduction{In this document I collect various examples for 
              \Opt{framemethod=\Loadedframemethod}.
              Some presented examples are more or less exorbitant.}

\mdfsetup{skipabove=\topskip,skipbelow=\topskip}
\newrobustcmd\ExampleText{%
        An \textit{inhomogeneous linear} differential equation has the form
         \begin{align}
            L[v ] = f,
         \end{align}
        where $L$ is a linear differential operator, $v$ is
        the dependent variable, and $f$ is a given non-zero
        function of the independent variables alone.
}

\newcounter{examplecount}
\setcounter{examplecount}{0}
\renewcommand\thesubsection{}
\newcommand\Examplesec[1]{%
\stepcounter{examplecount}%
\subsection{Example~\arabic{examplecount}~--~#1\relax}%
}

\begin{document}
\maketitle
\section{Loading}
In the preamble only the package \Pack{mdframed} width the option 
\Opt{framemethod=\Loadedframemethod} is loaded. All other modifications will be
done by \Cmd{mdfdefinestyle} or \Cmd{mdfsetup}.

{\large\color{red!50!black}
\NOTE Every \Cmd{global} inside the examples is necessary to work with my own
created environment \Env{tltxmdfexample*}.}

\section{Examples}
All examples have the following settings:

\begin{tltxmdfexample}
\mdfsetup{skipabove=\topskip,skipbelow=\topskip}
\newrobustcmd\ExampleText{%
  An \textit{inhomogeneous linear} differential equation has the form
  \begin{align}
      L[v ] = f,
  \end{align}
  where $L$ is a linear differential operator, $v$ is the dependent 
  variable, and $f$ is a given non-zero function of the independent 
  variables alone.
}
\end{tltxmdfexample}
\clearpage
\Examplesec{Package listings}
The example below is inspired by the following post on StackExchange 
\href{http://tex.stackexchange.com/questions/27673/background-overflows-^^A
      when-using-rounded-corners-for-listings-package-listings}%
     {Background overflows when using rounded corners for listings 
      (package: `listings`)}

Here the solution which can be decorate as usual.

\begin{tltxmdfexample}[moretexcs={BeforeBeginEnvironment,AfterEndEnvironment},
                       morekeywords={lstlisting}]
\BeforeBeginEnvironment{lstlisting}{%
    \begin{mdframed}[&lt;modification&gt;]%
    \vspace{-0.7em}}
\AfterEndEnvironment{lstlisting}{%
    \vspace{-0.5em}%
    \end{mdframed}}
\end{tltxmdfexample}

With the new command \Cmd{surroundwithmdframed} you can use
\begin{tltxmdfexample}[moretexcs={BeforeBeginEnvironment,AfterEndEnvironment},
                       morekeywords={listings}]
\surroundwithmdframed{listings}
\end{tltxmdfexample}

\clearpage
\Examplesec{Package multicol}
How I wrote in \enquote{Known Problems} you can't combine \Pack{multicol}  with
\Pack{mdframed}. In a simple way without any breaks you can use:

\begin{tltxmdfexample*}[morekeywords={multicols}]
 \begin{multicols}{2}
  \lipsum[1]
  \begin{mdframed}
   \ExampleText
  \end{mdframed}
  \lipsum[2]
 \end{multicols}
\end{tltxmdfexample*}

\clearpage
\twocolumn[\Examplesec{Working in twocolumn mode}]
\begin{tltxmdfexample*}[moretexcs={Examplesec}]
%\twocolumn[%
%  \Examplesec{Working in twocolumn mode}]
\lipsum[1]\lipsum[2]
\begin{mdframed}[%
   leftmargin=10pt,%
   rightmargin=10pt,%
   linecolor=red,
   backgroundcolor=yellow]
\ExampleText
\end{mdframed}
\lipsum[2]
\end{tltxmdfexample*}



\clearpage
\onecolumn
\Examplesec{Working inside enumerate}
\begin{tltxmdfexample*}[morekeywords={enumerate}]
Text Text Text Text Text Text Text Text
\begin{enumerate}
\item in the following \ldots
      \begin{mdframed}[linecolor=blue,middlelinewidth=2]
         \ExampleText
      \end{mdframed}
\item \lipsum[2]
\end{enumerate}
Text Text Text Text Text Text
\end{tltxmdfexample*}


\Examplesec{Position a specific symbol at a line}
\begin{tltxmdfexample*}
\tikzset{
  warningsymbol/.style={
      rectangle,draw=red,
      fill=white,scale=1,
      overlay}}
\mdfdefinestyle{warning}{%
 hidealllines=true,leftline=true,
 skipabove=12,skipbelow=12pt,
 innertopmargin=0.4em,%
 innerbottommargin=0.4em,%
 innerrightmargin=0.7em,%
 rightmargin=0.7em,%
 innerleftmargin=1.7em,%
 leftmargin=0.7em,%
 middlelinewidth=.2em,%
 linecolor=red,%
 fontcolor=red,%
 firstextra={\path let \p1=(P), \p2=(O) in ($(\x2,0)+0.5*(0,\y1)$) 
                           node[warningsymbol] {\$};},%
 secondextra={\path let \p1=(P), \p2=(O) in ($(\x2,0)+0.5*(0,\y1)$) 
                           node[warningsymbol] {\$};},%
 middleextra={\path let \p1=(P), \p2=(O) in ($(\x2,0)+0.5*(0,\y1)$) 
                           node[warningsymbol] {\$};},%
 singleextra={\path let \p1=(P), \p2=(O) in ($(\x2,0)+0.5*(0,\y1)$) 
                           node[warningsymbol] {\$};},%
}
\begin{mdframed}[style=warning]
\ExampleText
\end{mdframed}
\end{tltxmdfexample*}

\Examplesec{digression-environement inspired by Tobias Weh}
\begin{tltxmdfexample*}[morekeywords={%
                    font,anchor,let,in,arrow,round,cap,controls,coordinate,%
                    excursus,head,arrows,calc,line,width,and,to,digressionarrows,%
                    base,west},%
                   moretexcs={usetikzlibrary}]
\usetikzlibrary{calc,arrows}
\tikzset{
   excursus arrow/.style={%
      line width=2pt,
      draw=gray!40,
      rounded corners=2ex,
   },
   excursus head/.style={
      fill=white,
      font=\bfseries\sffamily,
      text=gray!80,
      anchor=base west,
   },
}
\mdfdefinestyle{digressionarrows}{%
 singleextra={%
      \path let \p1=(P), \p2=(O) in (\x2,\y1) coordinate (Q);
      \path let \p1=(Q), \p2=(O) in (\x1,{(\y1-\y2)/2}) coordinate (M);
      \path [excursus arrow, round cap-to]
         ($(O)+(5em,0ex)$) -| (M) |- %
         ($(Q)+(12em,0ex)$) .. controls +(0:16em) and +(185:6em) .. %
         ++(23em,2ex);
      \node [excursus head] at ($(Q)+(2.5em,-0.75pt)$) {Digression};},
 firstextra={%
      \path let \p1=(P), \p2=(O) in (\x2,\y1) coordinate (Q);
      \path [excursus arrow,-to]
         (O) |- %
         ($(Q)+(12em,0ex)$) .. controls +(0:16em) and +(185:6em) .. %
         ++(23em,2ex);
      \node [excursus head] at ($(Q)+(2.5em,-2pt)$) {Digression};},
 secondextra={%
      \path let \p1=(P), \p2=(O) in (\x2,\y1) coordinate (Q);
      \path [excursus arrow,round cap-]
         ($(O)+(5em,0ex)$) -| (Q);},
 middleextra={%
      \path let \p1=(P), \p2=(O) in (\x2,\y1) coordinate (Q);
      \path [excursus arrow]
         (O) -- (Q);},
   middlelinewidth=2.5em,middlelinecolor=white,
   hidealllines=true,topline=true,
   innertopmargin=0.5ex,
   innerbottommargin=2.5ex,
   innerrightmargin=2pt,
   innerleftmargin=2ex,
   skipabove=0.87\baselineskip,
   skipbelow=0.62\baselineskip,
}

\begin{mdframed}[style=digressionarrows]
         \ExampleText
\end{mdframed}
\end{tltxmdfexample*}


\Examplesec{Theorem style shading background}
\begin{tltxmdfexample*}[morekeywords={top,bottom,Theorem,shadow,alternativtheorem}]
%\usetikzlibrary{shadings,shadows}% loaded in the header
\mdtheorem[%
 apptotikzsetting={%
   \tikzset{mdfbackground/.append style ={%
               top color=yellow!40!white,
               bottom color=yellow!80!black},
               mdfframetitlebackground/.append style={
                     top color=purple!40!white,
                     bottom color=purple!80!black
               }
           }%
  },
  ,roundcorner=10pt,middlelinewidth=2pt,
  shadow=true,frametitlerule=true,frametitlerulewidth=4pt,
  innertopmargin=10pt,%
  ]{alternativtheorem}{Theorem}
\begin{alternativtheorem}[Inhomogeneous linear]
\ExampleText
\end{alternativtheorem}
\end{tltxmdfexample*}
\end{document}
 \endinput
%    \end{macrocode}
%
%\iffalse
%    \begin{macrocode}
%&lt;/mdframed-example-texsx&gt;
%    \end{macrocode}
%\fi
%
%
%
% \Finale
%
\endinput


</pre></body></html>