From afd21711dd0891ff8e4fd6d150940e1c5d76ae11 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Thu, 11 Aug 2011 01:43:52 +0000
Subject: mdframed 0.7a (10aug11)

git-svn-id: svn://tug.org/texlive/trunk@23490 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/mdframed/mdframed.sty | 938 +++++++---------------
 1 file changed, 298 insertions(+), 640 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/mdframed/mdframed.sty')

diff --git a/Master/texmf-dist/tex/latex/mdframed/mdframed.sty b/Master/texmf-dist/tex/latex/mdframed/mdframed.sty
index e93dbda1ffe..ee5ab20348c 100644
--- a/Master/texmf-dist/tex/latex/mdframed/mdframed.sty
+++ b/Master/texmf-dist/tex/latex/mdframed/mdframed.sty
@@ -32,23 +32,21 @@
 %%                                                 %%
 %%>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>%%
 
-
-%%$Id: mdframed.sty 103 2010-12-22 16:46:10Z marco $
-%%$Rev: 103 $
+%%$Id: mdframed.sty 161 2011-08-06 11:28:15Z marco $
+%%$Rev: 161 $
 %%$Author: marco $
-%%$Date: 2010-12-22 17:46:10 +0100 (Mi, 22. Dez 2010) $
+%%$Date: 2011-08-06 13:28:15 +0200 (Sa, 06. Aug 2011) $
 
 %% Allgemeine Angaben
-\def\mdversion{v0.6a}
+\def\mdversion{v0.7a}
 \def\mdframedpackagename{mdframed}
 \def\md@maindate@svn$#1: #2 #3 #4-#5-#6 #7 #8${#4/#5/#6\space }
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{mdframed}[\md@maindate@svn$Id: mdframed.sty 103 2010-12-22 16:46:10Z marco $ \mdversion: \mdframedpackagename]
+\ProvidesPackage{mdframed}[\md@maindate@svn$Id: mdframed.sty 161 2011-08-06 11:28:15Z marco $ \mdversion: \mdframedpackagename]
 
 %%==================================================%%
 %%=============== Benoetigte Pakete ================%%
 %%==================================================%%
-
 \newcommand*\md@PackageWarning[1]{\PackageWarning{\mdframedpackagename}{#1}}
 \newcommand*\md@PackageInfo[1]{\PackageInfo{\mdframedpackagename}{#1}}
 \newcommand*\md@LoadFile@IfExist[1]{%
@@ -56,29 +54,21 @@
           \RequirePackage{#1}%
         }{%
         \md@PackageWarning{The package #1 does not exist\MessageBreak
-                           but it is required by \mdframedpackagename}%
+                           but it is required by \mdframedpackagename\MessageBreak
+                           see documentation fo further information
+                           }%
        }
 }
 \md@LoadFile@IfExist{kvoptions}
-
 \md@LoadFile@IfExist{etex}
-
 \md@LoadFile@IfExist{calc}
-
 \md@LoadFile@IfExist{color}
-
-
-%Eingearbeitet in Optionen
-%\md@LoadFile@IfExist{pstricks}
-%\md@LoadFile@IfExist{pstricks}
-
 \md@LoadFile@IfExist{etoolbox}
 
 \SetupKeyvalOptions{family=mdf,prefix=mdf@}
 
 %%==================================================%%
-%%========Hilfsmakro zur Bestimmung ob Laenge=======%%
-%%============= IDEE: Martin Scharrer ==============%%
+%%============Hilfsmakros fuer Optionen=============%%
 %%==================================================%%
 
 %%%\md@iflength{<EINGABE>}{<IST LAENGE>}{<IST KEINE LAENGE>}
@@ -99,23 +89,31 @@
 }
 \def\md@iflength@cleanup#1\relax{}
 
-%%\def\md@@iflength#1{
-%%       \begingroup
-%%       \def\@tempa{#1}
-%%       \md@iflength{\@tempa}{%
-%%             \expandafter\global\expandafter%
-%%             \edef\csname #1\endcsname{\the\md@templength}%
-%%            }{%
-%%             \expandafter\global\expandafter%
-%%             \edef\csname #1\endcsname{\the\md@templength}%
-%%            }%
-%%       \endgroup%
-%%}
-
-%%==================================================%%
-%%==================== Optionen ====================%%
-%%==================================================%%
+%%\mdf@option@length{<Laengenbezeichnung>}{<Defaultwert>}
+\newrobustcmd*{\mdf@option@length}[2]{%
+ \expandafter\newlength\csname mdf@#1@length\endcsname%
+ \expandafter\setlength\csname mdf@#1@length\endcsname{#2}%
+ }
+%%\mdf@define@key@length{<Bezeichnungder Option der Laenge>}
+\newrobustcmd*{\mdf@define@key@length}[1]{%
+   \define@key{mdf}{#1}{%
+      \def\@tempa{##1}
+      \md@iflength{\@tempa}%
+       {\csxdef{mdfl@#1}{\the\md@templength}}%
+       {\csxdef{mdfl@#1}{\the\md@templength}}%
+       \expandafter\setlength\csname mdf@#1@length\endcsname{\csname mdfl@#1\endcsname}%
+   }%
+}
+%%Schleifenmakro zur Optioneneingabe Option==Laenge
 
+\DeclareListParser*{\mdf@dolist}{,}
+\def\mdf@do#1{%
+  \mdf@doubledo#1\@nil%
+}
+\def\mdf@doubledo#1==#2\@nil{%
+   \mdf@option@length{#1}{#2}%
+   \mdf@define@key@length{#1}%
+}
 
 %Festlegung welcher Stildatei
 %% 0 := tex-Kommandos -- rule
@@ -123,254 +121,49 @@
 %% 2 := tikz-erweitert
 %% 3 := pstricks-einfach
 %% 4 := pstricks-erweitert
-
 \DeclareStringOption[0]{style}
-
 \define@key{mdf}{globalstyle}[\mdf@style]{%
-      \renewcommand*{\do}[1]{%
-          \def\@tempa{##1}
-          \ifcase\number\@tempa\relax
+      \def\md@styledo##1{%
+        \def\@tempa{##1}
+        \ifcase\number\@tempa\relax
              %0 <- kein Grafikpaket
-          \or
-             \md@LoadFile@IfExist{tikz}
-             %1 <- tikz wird benoetigt
-          \or
-             \md@LoadFile@IfExist{tikz}
-             %2 <- tikz wird benoetigt
-          \or
-             \md@LoadFile@IfExist{pstricks-add}
-             %3 <- pstricks wird benoetigt
-          \or
-             \md@LoadFile@IfExist{pstricks-add}
-             %4 <- pstricks wird benoetigt
-          \else
-            \md@PackageWarning{Unknown global style \@tempa}
-          \fi
+          \or\md@LoadFile@IfExist{tikz}%1 <- tikz wird benoetigt
+          \or\md@LoadFile@IfExist{tikz}%2 <- tikz wird benoetigt
+          \or\md@LoadFile@IfExist{pstricks-add}%3 <- pstricks wird benoetigt
+          \or\md@LoadFile@IfExist{pstricks-add}%4 <- pstricks wird benoetigt
+          \else\md@PackageWarning{Unknown global style \@tempa}%
+        \fi
       }%
-      \docsvlist{\mdf@style,#1}%
+      \mdf@dolist{\md@styledo}{\mdf@style,#1}%
  }
 
 %%%%Optionen mit Laengen
 
-\newcommand*\mdf@skipabove{\z@}
-\newcommand*\mdfl@skipabove{}
-\newlength\mdf@skipabove@length
-\deflength\mdf@skipabove@length{\z@}
-\define@key{mdf}{skipabove}[\z@]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@skipabove{\the\md@templength}}%
-            {\global\edef\mdfl@skipabove{\the\md@templength}}
-\let\mdf@skipabove\mdfl@skipabove
-\setlength\mdf@skipabove@length{\mdf@skipabove}
-}
-
-\newcommand*\mdf@skipbelow{\z@}
-\newcommand*\mdfl@skipbelow{}
-\newlength\mdf@skipbelow@length
-\deflength\mdf@skipbelow@length{\z@}
-\define@key{mdf}{skipbelow}[\z@]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@skipbelow{\the\md@templength}}%
-            {\global\edef\mdfl@skipbelow{\the\md@templength}}
-\let\mdf@skipbelow\mdfl@skipbelow
-\setlength\mdf@skipbelow@length{\mdf@skipbelow}
-}
-
-\newcommand*\mdf@leftmargin{\z@}
-\newcommand*\mdfl@leftmargin{}
-\newlength\mdf@leftmargin@length
-\deflength\mdf@leftmargin@length{\z@}
-\define@key{mdf}{leftmargin}[\z@]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@leftmargin{\the\md@templength}}%
-            {\global\edef\mdfl@leftmargin{\the\md@templength}}
-\let\mdf@leftmargin\mdfl@leftmargin
-\setlength\mdf@leftmargin@length{\mdf@leftmargin}
-}
-
-\newcommand*\mdf@rightmargin{\z@}
-\newcommand*\mdfl@rightmargin{}
-\newlength\mdf@rightmargin@length
-\deflength\mdf@rightmargin@length{\z@}
-\define@key{mdf}{rightmargin}[\z@]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@rightmargin{\the\md@templength}}%
-            {\global\edef\mdfl@rightmargin{\the\md@templength}}
-\let\mdf@rightmargin\mdfl@rightmargin
-\setlength\mdf@rightmargin@length{\mdf@rightmargin}
-}
-
-\newcommand*\mdf@margin{20pt}
-\newcommand*\mdfl@margin{}
-\newlength\mdf@margin@length
-\deflength\mdf@margin@length{20pt}
-\define@key{mdf}{margin}[20pt]{%
-     \md@PackageWarning{The option margin is obsolote and no longer used\MessageBreak
-                        use instead innerleftmargin and innerrightmargin\MessageBreak
-                        For more details look at the documentation \mdframedpackagename}%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@margin{\the\md@templength}}%
-            {\global\edef\mdfl@margin{\the\md@templength}}
-\let\mdf@margin\mdfl@margin
-\setlength\mdf@margin@length{\mdf@margin}
-}
-
-\newcommand*\mdf@innerleftmargin{10pt}
-\newcommand*\mdfl@innerleftmargin{}
-\newlength\mdf@innerleftmargin@length
-\deflength\mdf@innerleftmargin@length{10pt}
-\define@key{mdf}{innerleftmargin}[10pt]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@innerleftmargin{\the\md@templength}}%
-            {\global\edef\mdfl@innerleftmargin{\the\md@templength}}
-\let\mdf@innerleftmargin\mdfl@innerleftmargin
-\setlength\mdf@innerleftmargin@length{\mdf@innerleftmargin}
-}
-
-\newcommand*\mdf@innerrightmargin{10pt}
-\newcommand*\mdfl@innerrightmargin{}
-\newlength\mdf@innerrightmargin@length
-\deflength\mdf@innerrightmargin@length{10pt}
-\define@key{mdf}{innerrightmargin}[10pt]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@innerrightmargin{\the\md@templength}}%
-            {\global\edef\mdfl@innerrightmargin{\the\md@templength}}
-\let\mdf@innerrightmargin\mdfl@innerrightmargin
-\setlength\mdf@innerrightmargin@length{\mdf@innerrightmargin}
-}
-
-
-
-\newcommand*\mdf@innertopmargin{0.4\baselineskip}
-\newcommand*\mdfl@innertopmargin{}
-\newlength\mdf@innertopmargin@length
-\deflength\mdf@innertopmargin@length{0.4\baselineskip}
-\define@key{mdf}{innertopmargin}[0.4\baselineskip]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@innertopmargin{\the\md@templength}}%
-            {\global\edef\mdfl@innertopmargin{\the\md@templength}}
-\let\mdf@innertopmargin\mdfl@innertopmargin
-\setlength\mdf@innertopmargin@length{\mdf@innertopmargin}
-}
-
-\newcommand*\mdf@innerbottommargin{0.4\baselineskip}
-\newcommand*\mdfl@innerbottommargin{}
-\newlength\mdf@innerbottommargin@length
-\deflength\mdf@innerbottommargin@length{0.4\baselineskip}
-\define@key{mdf}{innerbottommargin}[0.4\baselineskip]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@innerbottommargin{\the\md@templength}}%
-            {\global\edef\mdfl@innerbottommargin{\the\md@templength}}
-\let\mdf@innerbottommargin\mdfl@innerbottommargin
-\setlength\mdf@innerbottommargin@length{\mdf@innerbottommargin}
-}
-
-
-\newcommand*\mdf@splittopskip{\z@}
-\newcommand*\mdfl@splittopskip{}
-\newlength\mdf@splittopskip@length
-\deflength\mdf@splittopskip@length{\z@}
-\define@key{mdf}{splittopskip}[\z@]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@splittopskip{\the\md@templength}}%
-            {\global\edef\mdfl@splittopskip{\the\md@templength}}
-\let\mdf@splittopskip\mdfl@splittopskip
-\setlength\mdf@splittopskip@length{\mdf@splittopskip}
-}
-
-
-
-\newcommand*\mdf@splitbottomskip{\z@}
-\newcommand*\mdfl@splitbottomskip{}
-\newlength\mdf@splitbottomskip@length
-\deflength\mdf@splitbottomskip@length{\z@}
-\define@key{mdf}{splitbottomskip}[\z@]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@splitbottomskip{\the\md@templength}}%
-            {\global\edef\mdfl@splitbottomskip{\the\md@templength}}
-\let\mdf@splitbottomskip\mdfl@splitbottomskip
-\setlength\mdf@splitbottomskip@length{\mdf@splitbottomskip}
-}
-
-
-%% Linienstaerken
-\newcommand*\mdf@linewidth{0.4pt}
-\newcommand*\mdfl@linewidth{}
-\newlength\mdf@linewidth@length
-\deflength\mdf@linewidth@length{0.4pt}
-\define@key{mdf}{linewidth}[0.4pt]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@linewidth{\the\md@templength}}%
-            {\global\edef\mdfl@linewidth{\the\md@templength}}
-\let\mdf@linewidth\mdfl@linewidth
-\setlength\mdf@linewidth@length{\mdf@linewidth}%
-\ifnumequal{\mdf@style}{1}{%
-\deflength\mdf@middlelinewidth@length{\mdf@linewidth@length}%
-}{}%
-}
-
-\newcommand*\mdf@innerlinewidth{\z@}
-\newcommand*\mdfl@innerlinewidth{}
-\newlength\mdf@innerlinewidth@length
-\deflength\mdf@innerlinewidth@length{\z@}
-\define@key{mdf}{innerlinewidth}[\z@]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@innerlinewidth{\the\md@templength}}%
-            {\global\edef\mdfl@innerlinewidth{\the\md@templength}}
-\let\mdf@innerlinewidth\mdfl@innerlinewidth
-\setlength\mdf@innerlinewidth@length{\mdf@innerlinewidth}
-}
-
-\newcommand*\mdf@middlelinewidth{\mdf@linewidth}
-\newcommand*\mdfl@middlelinewidth{}
-\newlength\mdf@middlelinewidth@length
-\deflength\mdf@middlelinewidth@length{\mdf@linewidth@length}
-\define@key{mdf}{middlelinewidth}[\mdf@linewidth]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@middlelinewidth{\the\md@templength}}%
-            {\global\edef\mdfl@middlelinewidth{\the\md@templength}}
-\let\mdf@middlelinewidth\mdfl@middlelinewidth
-\setlength\mdf@middlelinewidth@length{\mdf@middlelinewidth}
-}
-
-\newcommand*\mdf@outerlinewidth{\z@}
-\newcommand*\mdfl@outerlinewidth{}
-\newlength\mdf@outerlinewidth@length
-\deflength\mdf@outerlinewidth@length{\z@}
-\define@key{mdf}{outerlinewidth}[\z@]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@outerlinewidth{\the\md@templength}}%
-            {\global\edef\mdfl@outerlinewidth{\the\md@templength}}
-\let\mdf@outerlinewidth\mdfl@outerlinewidth
-\setlength\mdf@outerlinewidth@length{\mdf@outerlinewidth}
-}
-
-\newcommand*\mdf@roundcorner{\z@}
-\newcommand*\mdfl@roundcorner{}
-\newlength\mdf@roundcorner@length
-\deflength\mdf@roundcorner@length{\z@}
-\define@key{mdf}{roundcorner}[\z@]{%
-       \def\@tempa{#1}
-        \md@iflength{\@tempa}%
-            {\global\edef\mdfl@roundcorner{\the\md@templength}}%
-            {\global\edef\mdfl@roundcorner{\the\md@templength}}
-\let\mdf@roundcorner\mdfl@roundcorner
-\setlength\mdf@roundcorner@length{\mdf@roundcorner}
+\mdf@dolist{\mdf@do}{%
+   {skipabove==\z@},%
+   {skipbelow==\z@},%
+   {leftmargin==\z@},%
+   {rightmargin==\z@},%
+   {margin==20pt},%
+   {innerleftmargin==10pt},%
+   {innerrightmargin==10pt},%
+   {innertopmargin==0.4\baselineskip},%
+   {innerbottommargin==0.4\baselineskip},%
+   {splittopskip==\z@},%
+   {splitbottomskip==\z@},%
+   {outermargin==\z@},%
+   {innermargin==\z@},%
+   {linewidth==0.4pt},%
+   {innerlinewidth==\z@},%
+   {middlelinewidth==\expandafter\mdf@linewidth@length},%
+   {outerlinewidth==\z@},%
+   {roundcorner==\z@},%
+} 
+
+%Unterstuetzung der Optionen fuer tikz
+\def\mdf@tikzset@local{\tikzset{tikzsetting/.style={}}}
+\define@key{mdf}{tikzsetting}{%
+  \def\mdf@tikzset@local{\tikzset{tikzsetting/.style={#1}}}
 }
 
 %Unterstuetzung der Optionen fuer pstricks
@@ -379,19 +172,15 @@
   \def\mdf@psset@local{#1}
 }
 
-
-%%Defaulunit
 \DeclareStringOption[pt]{defaultunit}
 
 %%mdframed umfasst ntheorem-Umgebung ja/nein
 \DeclareBoolOption{ntheorem}
-
+%Linienausgabe
 \DeclareBoolOption[true]{topline}
 \DeclareBoolOption[true]{leftline}
 \DeclareBoolOption[true]{bottomline}
 \DeclareBoolOption[true]{rightline}
-
-
 %%FARBEN
 \DeclareStringOption[none]{xcolor}
 \DeclareStringOption[black]{linecolor}
@@ -400,15 +189,14 @@
 \DeclareStringOption[\mdf@linecolor]{innerlinecolor}
 \DeclareStringOption[\mdf@linecolor]{outerlinecolor}
 \DeclareStringOption[\mdf@backgroundcolor]{middlelinecolor}
-
+\DeclareStringOption[\mdf@backgroundcolor]{psroundlinecolor}
 
 \DeclareDefaultOption{%
    \md@PackageWarning{Unknown Option '\CurrentOption' for mdframed}}
 
-
-%%==================================================%%
-%%========== ENDE DER OPTIONENDEKLARATION ==========%%
-%%==================================================%%
+%%Uberschriften
+\DeclareStringOption{frametitle}
+\DeclareStringOption[\bfseries\large]{frametitlefont}
 
 \ProcessKeyvalOptions*
 \newcommand*{\mdfsetup}{\setkeys{mdf}}
@@ -430,78 +218,79 @@
  }
 }
 
+%%==================================================%%
+%%========Angepasste lrbox sowie trivlist===========%%
+%%==================================================%%
+%Anpassung lrbox
+\let\md@lrbox\lrbox
+\let\endmd@lrbox\endlrbox
+\patchcmd\md@lrbox\hbox\vbox{}{}
+\patchcmd\md@lrbox\color@setgroup{%
+\color@setgroup\color{\mdf@fontcolor}%
+\hsize=\md@horizontalspaceofbox%
+\columnwidth=\hsize%
+\textwidth=\hsize%
+\linewidth=\hsize%
+\bgroup\md@@frametitle\egroup\noindent%
+}{}{}
+
+%Anpassung trivlist
+\let\md@trivlist\trivlist
+\let\endmd@trivlist\endtrivlist
+\patchcmd\endmd@trivlist\@endparenv\md@endparenv{}{}
+\def\md@endparenv{%
+  \addpenalty\@endparpenalty\addvspace\mdf@skipbelow@length\@endpetrue}
+
+%%==================================================%%
+%%=================== Frametitle ===================%%
+%%==================================================%%
+\providecommand*\mdframedtitleenv[1]{%
+  \@afterindentfalse
+   {\parindent \z@
+         \setlength{\parfillskip}{\z@ plus 1fil}%
+         \raggedsection\nobreak\mdf@frametitlefont#1\relax%
+    \par}%
+  \@afterheading}
+%
+\newrobustcmd*\md@@frametitle{%
+  \ifx\mdf@frametitle\@empty\relax%
+  \else
+    \color@begingroup\@nobreaktrue%
+    \mdframedtitleenv{\mdf@frametitle}%
+    \color@endgroup
+  \fi%
+}
 
-
-%%Farbabkuerzungen:
-\newcommand*\mdf@@linecolor{\color{\mdf@linecolor}}
-\newcommand*\mdf@@backgroundcolor{
-    \ifx\mdf@backgroundcolor\@empty
-    \else
-         \color{\mdf@backgroundcolor}
-    \fi}
-\newcommand*\mdf@@fontcolor{\color{\mdf@fontcolor}}
-\newcommand*\mdf@@innerlinecolor{\color{\mdf@innerlinecolor}}
-\newcommand*\mdf@@outerlinecolor{\color{\mdf@outerlinecolor}}
-\newcommand*\mdf@@middlelinecolor{\color{\mdf@middlelinecolor}}
-
+\newrobustcmd*\md@checkntheorem{%
+  \ifbool{mdf@ntheorem}%       %%% Pruefen ob ntheorem gesetzt ist
+    {\ifundef{\theorempreskipamount}%
+          {\md@PackageWarning{You have not loaded ntheorem yet}}%
+          {\setlength{\theorempreskipamount}{\z@}%
+           \setlength{\theorempostskipamount}{\z@}%
+    }%
+  }{}%
+}
 %%==================================================%%
 %%======= Laden der gewuenschten Style-Datei =======%%
 %%==================================================%%
 \ifcase\mdf@style\relax%
         \input{md-frame-0.mdf}%
-      \or%
-        \input{md-frame-1.mdf}%
-      \or%        
-        \md@PackageWarning{The style number\mdf@style does not exist\MessageBreak
+      \or\input{md-frame-1.mdf}%
+      \or\md@PackageWarning{The style number\mdf@style does not exist\MessageBreak
                            mdframed ues instead style=0 \mdframedpackagename}%
-        \input{md-frame-1.mdf}%
-      \or% 
-        \input{md-frame-3.mdf}%
+         \input{md-frame-0.mdf}%
+      \or\input{md-frame-3.mdf}%
       \else%
-       \IfFileExists{md-frame-\mdf@style.mdf}{%
-             \input{md-frame-\mdf@style.mdf}%
-           }{%
-            \input{md-frame-1.mdf}%
+       \IfFileExists{md-frame-\mdf@style.mdf}{\input{md-frame-\mdf@style.mdf}%
+           }{\input{md-frame-1.mdf}%
             \md@PackageWarning{The style number \mdf@style does not exist\MessageBreak
                            mdframed ues instead style=0 \mdframedpackagename}%
           }%
 \fi%
-
-
 %%==================================================%%
-%%===Globale Umgebung -- noch keine Modifikation ===%%
+%%========= style-abhaengige Modifikation ==========%%
 %%==================================================%%
-\def\md@margin@startenv{% latex.ltx -> \@startsection
-    \if@noskipsec \leavevmode  \fi
-    \par%\kern-\lastskip%
-    \@tempskipa -\mdf@skipabove@length\relax
-    \@afterindenttrue
-    \ifdim \@tempskipa < \z@
-      \@tempskipa -\@tempskipa \@afterindentfalse%
-    \fi
-    \if@nobreak
-      \everypar{}%
-    \else
-      \addpenalty\@secpenalty\addvspace\@tempskipa%
-      \par\kern-\ht\strutbox
-    \fi%
-}%
-
-
-\def\mdframed{%
-   \@ifnextchar[%]
-       \mdframed@i\mdframed@ii}%
-
-\def\mdframed@ii{\mdframed@i[]}%
-\def\mdframed@i[#1]{% default-Umgebung
-   \mdfsetup{#1}%%
-   \md@margin@startenv%
-   \ifmdf@ntheorem%       %%% Pruefen ob ntheorem gesetzt ist
-   \ifundef{\theorempreskipamount}%
-          {\md@PackageWarning{You have not loaded ntheorem yet}}%
-          {\setlength{\theorempreskipamount}{0pt}%
-           \setlength{\theorempostskipamount}{0pt}}%
-   \fi%
+\newrobustcmd*\md@styledefinition{%
    \ifnumequal{\mdf@style}{0}% 
    {\deflength{\mdf@innerlinewidth@length}{\z@}%
     \deflength{\mdf@middlelinewidth@length}{\mdf@linewidth@length}%
@@ -512,283 +301,200 @@
    }{}%
    \ifnumequal{\mdf@style}{3}% 
    {\deflength{\mdf@innerlinewidth@length}{\z@}%
-   \deflength{\mdf@middlelinewidth@length}{\mdf@linewidth}%
+   \deflength{\mdf@middlelinewidth@length}{\mdf@linewidth@length}%
     \deflength{\mdf@outerlinewidth@length}{\z@}%
     \let\mdf@innerlinecolor\mdf@linecolor%
    }{}%
-   \mdframed@global@env%
-   }%
-
-\def\endmdframed{\endmdframed@global@env\endtrivlist%
-\vspace{\mdf@skipbelow@length}}%
+%   \ifnumequal{\mdf@style}{1}% 
+%   {\deflength{\mdf@innerlinewidth@length}{\z@}%
+%   \deflength{\mdf@middlelinewidth@length}{\mdf@linewidth@length}%
+%    \deflength{\mdf@outerlinewidth@length}{\z@}%
+%    \let\mdf@innerlinecolor\mdf@linecolor%
+%   }{}%
+}
 
 %%==================================================%%
 %%==Deklaration diverser Eingabe und Hilfsparameter=%%
 %%==================================================%%
-
-\newskip\md@temp@skip@a      \md@temp@skip@a\z@    %% Hilfslaenge
-
-\newlength\md@verticalmarginwhole@length
-
-\newlength\mdf@xmargin@length%
-\newlength\mdf@ymargin@length%
-\newlength\mdfboxheight%                            %% Berechnungsvariable tikz
-\newlength\mdfboxwidth%                             %% Berechnungsvariable tikz
-
-
 \newlength\mdfboundingboxheight
 \newlength\mdfboundingboxwidth
-\newlength\mdfpositionx
-\newlength\mdfpositiony
-
 
+\newlength\md@freevspace@length
+\newlength\md@horizontalwidthofbox@length
+\newlength\md@verticalmarginwhole@length
 
 \providecommand*\ptTps{}
 
-
 %%==================================================%%
-%%=================== Kommentare ===================%%
+%%==================Umgebung========================%%
 %%==================================================%%
+\def\mdframed{\@ifnextchar[\mdframed@i\mdframed@ii}%
+\def\mdframed@ii{\mdframed@i[]}%
+\def\mdframed@i[#1]{% default-Umgebung
+\begingroup
+%check is needed?
+   \mdfsetup{#1}%%
+   \let\width\z@%
+   \let\height\z@%
+   \let\partopsep\z@
+   \setlength{\topsep}{\mdf@skipabove@length}%
+   \begin{md@trivlist}\item\relax%
+   \md@checkntheorem%
+   \md@styledefinition%
+   \md@horizontalmargin@equation%
+   \begin{md@lrbox}{\@tempboxa}%
+   }%
 
-\chardef\md@arrayparboxrestore=\catcode`\|   % for debug
-\catcode`\|=\catcode`\%                      % (debug: insert space after backslash)
-%% Kommentare werden im Code mit | gekennzeichnet
-
+\def\endmdframed{%
+    \end{md@lrbox}%
+    \md@put@frame%
+    \end{md@trivlist}%
+    \hrule \@height\z@ \@width\hsize
+\endgroup%
+}
 
 %%==================================================%%
 %%================= Platz auf Seite ================%%
 %%==================================================%%
-\newlength\md@freevspace@length
-\def\md@freepagevspace{%
+\newrobustcmd*\md@freepagevspace{%
+     \penalty\@M \vskip 2\baselineskip \vskip\height
+     \penalty9999 \vskip -2\baselineskip \vskip-\height
+     \penalty9999
      \ifdimequal{\pagegoal}{\maxdimen}%
-          {%
-            \setlength{\md@freevspace@length}{\vsize}%
-          }{
-            \setlength{\md@freevspace@length}{\pagegoal}%
-            \addtolength{\md@freevspace@length}{-\pagetotal}%
+          {\md@freevspace@length\vsize}%
+          {\md@freevspace@length=\pagegoal\relax%
+           \advance\md@freevspace@length by -\pagetotal\relax%
           }%
 }
 
 %%==================================================%%
-%================= Breite der BOX =================%%
+%================= Breite der Box =================%%
 %%==================================================%%
+\newrobustcmd*\md@advancelength@orizontalmargin@add[1]{%
+  \advance\md@horizontalspaceofbox by -\csname mdf@#1@length\endcsname\relax%
+}
 
-% edge-leftmargin-outerlinewith-middlelinewidth-innerlinewidth-innerleftmargin-TEXTBREITE-
-% innerrightmargin-innerlinewidth-middlelinewidth-outelinewith-edge
 \newlength\md@horizontalspaceofbox
-\def\md@horizontalmargin@equation{%
-    \setlength{\md@horizontalspaceofbox}{\hsize}
-    \addtolength{\md@horizontalspaceofbox}{%
-                         -\mdf@leftmargin@length%
-                         -\mdf@outerlinewidth@length%
-                         -\mdf@middlelinewidth@length%
-                         -\mdf@innerlinewidth@length%
-                         -\mdf@innerleftmargin@length%
-                         -\mdf@innerrightmargin@length%
-                         -\mdf@innerlinewidth@length%
-                         -\mdf@middlelinewidth@length%      
-                         -\mdf@outerlinewidth@length%
-                         -\mdf@rightmargin@length%
-                        }%
-  \ifboolexpr{ test {\ifnumequal{\mdf@style}{0}} or test {\ifnumequal{\mdf@style}{3}}}%
-           {
-           \notbool{mdf@leftline}{\addtolength{\md@horizontalspaceofbox}{%
-                                    \mdf@innerlinewidth@length%
-                                    +\mdf@middlelinewidth@length%      
-                                    +\mdf@outerlinewidth@length%
-                                 }}{}%
-           \notbool{mdf@rightline}{\addtolength{\md@horizontalspaceofbox}{%
-                                    \mdf@innerlinewidth@length%
-                                    +\mdf@middlelinewidth@length%      
-                                    +\mdf@outerlinewidth@length%
-                                  }}{}%
-    }{}%
-    \advance\md@horizontalspaceofbox by - \width\md@arrayparboxrestore%
+\newrobustcmd*\md@horizontalmargin@equation{%
+    \setlength{\md@horizontalspaceofbox}{\hsize}%
+    \mdf@dolist{\md@advancelength@orizontalmargin@add}{%
+             leftmargin,outerlinewidth,middlelinewidth,%
+             innerlinewidth,innerleftmargin,innerrightmargin,%
+             innerlinewidth,middlelinewidth,outerlinewidth,%
+             rightmargin}%
+    \notbool{mdf@leftline}{%
+                \advance\md@horizontalspaceofbox by \mdf@innerlinewidth@length\relax%
+                \advance\md@horizontalspaceofbox by \mdf@middlelinewidth@length\relax%
+                \advance\md@horizontalspaceofbox by \mdf@outerlinewidth@length\relax%
+           }{}%      
+    \notbool{mdf@rightline}{%
+                \advance\md@horizontalspaceofbox by \mdf@innerlinewidth@length\relax%
+                \advance\md@horizontalspaceofbox by \mdf@middlelinewidth@length\relax%
+                \advance\md@horizontalspaceofbox by \mdf@outerlinewidth@length\relax% 
+           }{}%
+ %   \advance\md@horizontalspaceofbox by - \width\md@arrayparboxrestore%
     %%% Beruecksichtigung, dass Auszaehlung bzw. list-Umgebung enthalten
     \ifdimless{\md@horizontalspaceofbox}{3cm}{\md@PackageWarning{You have only a width of 3cm}}{}
     \hsize=\md@horizontalspaceofbox%
 }
 
-
-
-
 %%==================================================%%
-%%========= Seitenparameter und Strafpunkte ========%%
-%%==================================================%%
-\def\md@penalty@startenv{%
- \begingroup%
-   \skip@\lastskip%                             %%% lastskip nur ungleich null nach section, list, figure, usw.
-   \if@nobreak%
-   \else 
-      \penalty9999 % updates \page parameters <-pruefen
-      \ifdim\pagefilstretch=\z@                 %%% pagefilstretch ist ein internes Register fuer den
-                                                %%% Seitenumbruch. Es entaehlt den akkumulierten (gespeicherten) fil-Anteil
-                                                %%% auf der aktuellen Seite
-         \ifdim\pagefillstretch=\z@             %%% pagefillstretch ist ein internes Register fuer den
-                                                %%% Seitenumbruch. Es entaehlt den akkumulierten (gespeicherten) fill-Anteil
-                                                %%% auf der aktuellen Seite
-            %%% nicht unendlich dehnbar, so hier foerdern eines Seitenumbruches
-            \edef\@tempa{\the\skip@}%
-            \edef\@tempb{\the\z@skip}%
-            \ifx\@tempa\@tempb                  %%% ???????
-                  \penalty-30%
-            \else
-                  \vskip-\skip@%
-                  \penalty-30%
-                  \vskip\skip@%
-            \fi
-         \fi
-      \fi
-    \penalty\z@%
-    % Give a stretchy breakpoint that will always be taken in preference
-    % to the \penalty 9999 used to update page parameters.  The cube root
-    % of 10000/100 indicates a multiplier of 0.21545, but the maximum 
-    % calculated badness is really 8192, not 10000, so the multiplier
-    % is 0.2301. 
-    \advance\skip@ \z@ plus-.5\baselineskip%
-    \advance\skip@ \z@ plus-.231\height%
-    \advance\skip@ \z@ plus-.231\skip@%
-    \advance\skip@ \z@ plus-.231\topsep%
-    \vskip-\skip@ \penalty 1800 \vskip\skip@%
-  \fi
- \addvspace{\topsep}%
- \endgroup%
- % clear out pending page break
- \nobreak \vskip 2\baselineskip \vskip\height%     %%%\@M=10000
- \penalty9999 \vskip -2\baselineskip \vskip-\height%
- \penalty9999 % updates \pagetotal
-}%
-
+%%===========Beruecksichtige Linienausgabe==========%%
+%%==================================================%%
+\newrobustcmd*\md@keeplines@single{%
+  \notbool{mdf@topline}{%
+      \advance\md@verticalmarginwhole@length by -\mdf@middlelinewidth@length%
+     }{}%
+  \notbool{mdf@bottomline}{%
+      \advance\md@verticalmarginwhole@length by -\mdf@middlelinewidth@length%
+     }{}%
+}
 
 %%==================================================%%
-%%============Start der globalen Umgebung===========%%
+%%===========Additionsalgorithmus fuer for==========%%
 %%==================================================%%
-\newskip\md@temp@frame@hsize \md@temp@frame@hsize=0pt%
-\newskip\md@temp@frame@vsize \md@temp@frame@vsize=0pt%
+\newrobustcmd*\md@advancelength@verticalmarginwhole[1]{%
+  \advance\md@verticalmarginwhole@length by \csname mdf@#1@length\endcsname\relax%
+}
 
-\def\mdframed@global@env{\relax%
-   \let\width\z@%
-   \let\height\z@%
-   \md@penalty@startenv%
-   \def\@doendpe{\@endpetrue%                      %%% SIEHE LATEX.ltx -- ersten Absatz ignorieren
-                 \def\par{\@restorepar\par\@endpefalse}%
-                 \everypar{{\setbox\z@\lastbox}\everypar{}\@endpefalse}%
-                }%
-   \md@horizontalmargin@equation%
-   \setbox\@tempboxa%
-       \vbox\bgroup\@doendpe%
-                 \begingroup%                %%% zweites begingroup noetig, dass fontcolor gesetzt werden kann
-                 \mdf@@fontcolor%            %%% Setzen der Schriftfarbe
-                 \textwidth\md@horizontalspaceofbox \columnwidth\md@horizontalspaceofbox%
-}%
-
-\def\endmdframed@global@env{\par%
-     \kern\z@%
-     \hrule\@width\md@horizontalspaceofbox\@height\z@%   
-     \penalty-100 % put depth into height
-   \endgroup%
- \egroup%
- \begingroup%
-  \mdf@@fontcolor%
-  \setbox\@tempboxa\vbox{\unvbox\@tempboxa}
-  \md@put@frame%
- \endgroup%
+\newrobustcmd*\md@advancelength@freevspace@sub[1]{%
+  \advance\dimen@ by -\csname mdf@#1@length\endcsname\relax%
 }
 
+\newrobustcmd*\md@advancelength@freevspace@add[1]{%
+  \advance\dimen@ by \csname mdf@#1@length\endcsname\relax%
+}
 %%==================================================%%
-%%===========Ausgaberoutine -> Berechnung===========%%
+%%====================Reset changes=================%%
 %%==================================================%%
-
-%% \md@put@frame nimmt den Inhalt der \@tempboxa und packt alles oder nur einen Teil
-%% auf die Seite mit dem Rahmen.
-%% Es ist rekursiv, solange alles von der \@tempboxa aufgebraucht ist (\@tempboxa muss die Tiefe 0 haben.)
-%% Erste Iteration: Versuche alles in einen Rahmen zu bekommen. Falls es nicht passt, 
-%% splitte es fuer die erste Rahmenumgebung
-%% Spaetere Iteration: Versuche alles in den letzten Rahmen zu bekommen. Falls es nicht passt,
-%% splitte es erneut. (Versuchsstadium -- Da bisher nur Anfang und Ende enthalten)
-
+\protected@edef\md@reset{\boxmaxdepth\the\boxmaxdepth 
+                          \splittopskip\the\splittopskip}%
 
 
+%%==================================================%%
+%%===========Ausgaberoutine -> Berechnung===========%%
+%%==================================================%%
 \def\md@put@frame{\relax%
-   \md@freepagevspace
-   \ifdimless{\md@freevspace@length}{1.999\baselineskip}
+\ifvoid\@tempboxa\relax
+\md@PackageWarning{The environment is empty\MessageBreak}%
+\else
+   \md@freepagevspace%
+   \ifdimless{\md@freevspace@length}{2\baselineskip}
              {\md@PackageInfo{Not enough space on this page}%die Seite hat nur noch minimal Platz
-              \clearpage%
+              \vfill\eject%
               \md@put@frame
              }{%
                %Hier berechnung Box-Inhalt+Rahmen oben und unten
               \setlength{\md@verticalmarginwhole@length}{\ht\@tempboxa+\dp\@tempboxa}%
-              \addtolength{\md@verticalmarginwhole@length}{%
-                 \mdf@outerlinewidth@length%
-                +\mdf@middlelinewidth@length%
-                +\mdf@innerlinewidth@length%
-                +\mdf@innertopmargin@length%
-                +\mdf@innerbottommargin@length%
-                +\mdf@innerlinewidth@length%
-                +\mdf@middlelinewidth@length%
-                +\mdf@outerlinewidth@length%
-                }%
-                \ifnumequal{\mdf@style}{0}%
-                {\ifbool{mdf@topline}{}%
-                   {\addtolength{\md@verticalmarginwhole@length}{-\mdf@middlelinewidth@length}%
-                   }%
-                 \ifbool{mdf@bottomline}{}%
-                   {\addtolength{\md@verticalmarginwhole@length}{-\mdf@middlelinewidth@length}%
-                   }%
-                }{}              
-                \ifnumequal{\mdf@style}{3}%
-                {\ifbool{mdf@topline}{}%
-                   {\addtolength{\md@verticalmarginwhole@length}{-\mdf@middlelinewidth@length}%
-                   }%
-                 \ifbool{mdf@bottomline}{}%
-                   {\addtolength{\md@verticalmarginwhole@length}{-\mdf@middlelinewidth@length}%
-                   }%
-                }{}
-                \ifdimless{\md@verticalmarginwhole@length}{\md@freevspace@length}%
+              \mdf@dolist{\md@advancelength@verticalmarginwhole}{%
+                     outerlinewidth,middlelinewidth,innerlinewidth,innertopmargin,
+                     innerbottommargin,innerlinewidth,middlelinewidth,outerlinewidth}%
+             \md@keeplines@single%
+             \ifdimless{\md@verticalmarginwhole@length}{\md@freevspace@length}%
                 {\md@putbox@single}%passt auf Seite
                 {\md@put@frame@i}%passt nicht auf Seite
-             }
+             }%
+\fi
 }
 
 \def\md@put@frame@i{%Box muss gesplittet werden -- Ausgabe der ersten Teilbox
       %Berechnung der Splittgroesse -- Linien und Abstand oben
-      \md@freepagevspace
-      \setlength{\dimen@}{\md@freevspace@length}%
-      \addtolength{\dimen@}{%
-                -\mdf@outerlinewidth@length%
-                -\mdf@middlelinewidth@length%
-                -\mdf@innerlinewidth@length%
-                -\mdf@innertopmargin@length%
-                -\mdf@splitbottomskip@length%
-                }%
-      \ifnumequal{\mdf@style}{0}%
-                {\ifbool{mdf@topline}{}%
-                   {\addtolength{\dimen@}{+\mdf@middlelinewidth@length}%
-                   }%
-                }{}
-       \ifnumequal{\mdf@style}{3}%
-                {\ifbool{mdf@topline}{}%
-                   {\addtolength{\dimen@}{\mdf@middlelinewidth@length}%
-                   }%
-                }{}
-       \ifdimless{\ht\@tempboxa+\dp\@tempboxa}{\dimen@}%
+      \md@freepagevspace%
+      \dimen@=\the\md@freevspace@length%
+      \dimen@i=\mdf@innertopmargin@length%
+      \advance\dimen@i by \mdf@linewidth@length%
+      \advance\dimen@i by 2\baselineskip%
+      \ifdim\dimen@<\dimen@i\relax
+           \hrule \@height\z@ \@width\hsize%
+           \vfill\eject%
+           \md@put@frame
+      \else%
+      \mdf@dolist{\md@advancelength@freevspace@sub}{%
+                outerlinewidth,middlelinewidth,innerlinewidth,%
+                innertopmargin,splitbottomskip}%
+      \ifbool{mdf@topline}{}{\advance\dimen@ by \mdf@middlelinewidth@length}%
+      \ifdimless{\ht\@tempboxa+\dp\@tempboxa}{\dimen@}%
          {\md@PackageWarning{You got a bad break\MessageBreak
                              you have to change it manually\MessageBreak
                              by changing the text, the space\MessageBreak
                              or something else}%
-         \addtolength{\dimen@}{-1.8\baselineskip}
+          \advance\dimen@ by -1.8\baselineskip\relax%
          }{}%
-         \addtolength{\dimen@}{-\pageshrink}%Box darf nicht zu Groß werden.
-         \boxmaxdepth\z@ \splittopskip\mdf@splittopskip@length%
+         \advance\dimen@ by -1pt\relax%Box darf nicht zu Groß werden.
+         \splitmaxdepth\z@ \splittopskip\mdf@splittopskip@length%
          \setbox\tw@\vsplit\@tempboxa to \dimen@
-         \setbox\tw@\vbox{\unvbox\tw@}%
+         \setbox\tw@\vbox{\unvbox\tw@}%needed?
          \ifdimgreater{\ht\tw@+\dp\tw@}{\dimen@}{%Falsch gesplittet
-             \setlength\dimen@i{\dimen@}
-             \addtolength{\dimen@}{-\ht\tw@-\dp\tw@}
-             \addtolength\dimen@i{0.5\dimen@}
-             \boxmaxdepth\z@ \splittopskip\z@%
-             \setbox\@tempboxa\vbox{\unvbox\tw@\unvbox\@tempboxa}
-             \boxmaxdepth\z@ \splittopskip\mdf@splittopskip@length%
+            \md@PackageInfo{Box was splittet wrong\MessageBreak}%
+             \dimen@i=\dimen@
+              \advance\dimen@ by -\ht\tw@
+              \advance\dimen@ by -\dp\tw@
+              \advance\dimen@i by 0.5\dimen@
+             \splittopskip\z@%
+             \setbox\@tempboxa\vbox{\unvbox\tw@%
+                                     \hrule \@height\dp\strutbox \@width\z@%benoetigt um Tiefe zu haben
+                                     \unvbox\@tempboxa}
+             \splittopskip\mdf@splittopskip@length%
              \setbox\tw@\vsplit\@tempboxa to \dimen@i
              \setbox\tw@\vbox{\unvbox\tw@}%
              }{}%
@@ -798,39 +504,40 @@
                                because the splittet box is empty\MessageBreak
                                You have to change the page settings\MessageBreak
                                like enlargethispage or something else}%
+           \setbox\@tempboxa\vbox{\box\tw@\box\@tempboxa}%
+           \md@put@frame
          \fi
-         \ifdimequal{\wd\tw@}{0pt}%%pruefe, ob erste Box leer ist
-            {\clearpage%
+         \ifvoid\tw@%%pruefe, ob erste Box leer ist
+          \hrule \@height\z@ \@width\hsize
+          \vfill\eject%  
+             \md@put@frame%
+         \else
+          \ifdimequal{\ht\tw@}{0pt}
+            {\hrule \@height\z@ \@width\hsize%
+             \vfill\eject%
+             \setbox\@tempboxa\vbox{\unvbox\tw@\unvbox\@tempboxa}
              \md@put@frame}%
-          {\md@putbox@first%%Groesse des Splittens passt
-           \eject%\clearpage%
-           \md@put@frame@ii}%
+          {%
+          \md@putbox@first%%Groesse des Splittens passt
+          \hrule \@height\z@ \@width\hsize
+          \vfill\eject%
+          \md@put@frame@ii%
+          }
+         \fi% 
+    \fi
 }
 
-
 \def\md@put@frame@ii{%Ausgabe der mittleren Box(en) wenn vorhanden
   \setlength{\md@freevspace@length}{\vsize}%
   \setlength{\dimen@}{\ht\@tempboxa+\dp\@tempboxa}%
-  \addtolength{\dimen@}{%%Addition der Linien unten
-                 \mdf@outerlinewidth@length%
-                +\mdf@middlelinewidth@length%
-                +\mdf@innerlinewidth@length%
-                +\mdf@innerbottommargin@length%
-                }%
-   \ifboolexpr{( bool {mdf@bottomline} )
-               and
-               (  test {\ifnumequal{\mdf@style}{0}} 
-                  or
-                  test {\ifnumequal{\mdf@style}{3}}
-              )
-              }%
-              {}{\addtolength{\dimen@}{-\mdf@middlelinewidth@length}}%
-    \ifdimgreater{\dimen@}{\md@freevspace@length}%
+  \mdf@dolist{\md@advancelength@freevspace@add}{%
+                outerlinewidth,middlelinewidth,innerlinewidth,%
+                innerbottommargin}%%%Addition der Linien unten
+   \ifbool{mdf@bottomline}{}{\advance\dimen@ by -\mdf@middlelinewidth@length\relax}%
+   \ifdimgreater{\dimen@}{\md@freevspace@length}%
     {%
-        \addtolength{\md@freevspace@length}{%%Abzug der Linien unten
-                    -\mdf@splitbottomskip@length%
-                    }%
-        \boxmaxdepth\z@ \splittopskip\mdf@splittopskip@length%
+        \advance\md@freevspace@length by -\mdf@splitbottomskip@length
+        \splitmaxdepth\z@ \splittopskip\mdf@splittopskip@length%
         \setbox\tw@\vsplit\@tempboxa to \md@freevspace@length%
         \setbox\tw@\vbox{\unvbox\tw@}%PRUEFEN!!!
         \setbox\@tempboxa\vbox{\unvbox\@tempboxa}%PRUEFEN!!!!
@@ -840,79 +547,30 @@
                                You have to change the settings}%
          \fi%
         \md@putbox@middle%
-        \clearpage\md@put@frame@ii%
+        \hrule \@height\z@ \@width\hsize
+        \vfill\eject
+         \md@put@frame@ii%
      }%Hier die Ausgabe der mittleren Box
-     {\ifdimequal{\wd\@tempboxa}{\z@}{\md@PackageWarning{You got a bad break\MessageBreak
-                               because the splittet box is empty\MessageBreak
+     {\ifvoid\@tempboxa
+           \md@PackageWarning{You got a bad break\MessageBreak
+                               because the last splittet box is empty\MessageBreak
                                You have to change the settings}%
-                   }{}%
-      \md@putbox@second}%Hier kommt die Ausgabe der letzten Box
-}
-
-
-
-
-\catcode`\|=\md@arrayparboxrestore  %%%????
-
-
-
-
-% \md@arrayparboxrestore has parts of \@parboxrestore, performing a similar but 
-% less complete restoration of a default layout.  See how it is used in the 
-% "settings" argument of \MakeFrame.  Though not a parameter, \hsize 
-% should be set to the desired total line width available inside the
-% frame before invoking \md@arrayparboxrestore.  
-\def\md@arrayparboxrestore{%
-   %%%AUS ltboxes.dtx -> \@arrayparboxrestore
-   \let\if@nobreak\iffalse
-   \let\if@noskipsec\iffalse  
-   \let\-\@dischyph                         %%%Default \let\@dischyph=\-
-   \let\'\@acci\let\`\@accii\let\=\@acciii  %%%Default: \let\@acci\' \let\@accii\` \let\@acciii\= <- Sicher gehen
-                                            %%%dass Defaultwerte erhalten sind
-                                            %%%Scheinen Mathesymbole zu sein ???
-   % Test ob Listenumgebung enthalten ist
-   \ifnum \ifdim\@totalleftmargin>\z@ 1\fi  %%%In latex.ltx->totalleftmargin=\z@, ausser in list-Umgebung:
-                                            %%%\advance\@totalleftmargin \leftmargin
-          \ifdim\rightmargin     >\z@ 1\fi  %%%Default \rightmargin=\z@, Ausnahme: quote usw.
-          \ifnum\@listdepth      >0   1\fi  %%%Zaehler fuer Listentiefe -> Keine Liste \@listdepth=0 sonst, je Ebene +1
-           0>\z@                            %%%Ist ein Parameter erfuellt, dann ist es eine Listenumgebung
-     \@setminipage                          %%%Passform rund um das Element
-     % Nun wird versucht, Aenderungen der Breite von \hsize entsprechend der Listenparameter zu uebergeben.
-     % Dies ist defizitaer, denn eine erweiterte Moeglichkeit, Aenderungen der Textdimension anzugegeben
-     % ist (noch) nicht vorgesehen, insbesondere keine getrennte linke / rechte Einstellung.
-     \advance\linewidth-\columnwidth \advance\linewidth\md@horizontalspaceofbox
-     \parshape\@ne \@totalleftmargin \linewidth %%% parshape definiert das Aussehen  eines Absatzes Zeile fuer Zeile.
-                                                %%% Seine Parameterversorgung geschieht mittels der folgenden Syntax:
-                                                %%% \parshape = n i1 l1 i2 l2 ... in ln.
-                                                %%% Dabei gibt der Parameter n an, fuer wieviele Zeilen Definitionspaare folgen.
-                                                %%% Jedes Definitionspaar besteht aus der Angabe i_j fuer den Einzug und
-                                                %%% der Laengenangabe l_j fuer die entsprechende Zeile. Sind mehr als n Zeilen
-                                                %%% vorhanden, so wird die letzte Angabe stets weiter verwendet
-   \else % Not in list
-     \linewidth=\md@horizontalspaceofbox
-   \fi
-   \sloppy
+      \fi%
+      \md@putbox@second%
+     }%Hier kommt die Ausgabe der letzten Box
 }
 
 %%==================================================%%
 %%= Sicherstellen, dass Optionen nur global setzbar=%%
 %%==================================================%%
-
 \DisableKeyvalOption[%  
   action=warning,  
   package=mdframed,    
 ]{mdf}{globalstyle}%
 
-
 \DisableKeyvalOption[%  
   action=warning,  
   package=mdframed,    
 ]{mdf}{xcolor}%
-
-
 \endinput
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-EOF
-EOF
-EOF
-
-- 
cgit v1.2.3

