diff options
author | Karl Berry <karl@freefriends.org> | 2012-01-12 23:19:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-01-12 23:19:23 +0000 |
commit | c5c6b35b4250a3d62b639f7ca13f6111193abf0c (patch) | |
tree | c1eeba19134298ad8bb768af62843208687c2638 /Master/texmf-dist/tex/latex/mdframed/mdframed.sty | |
parent | 8bffef2b7d7683ba0cb697af5a891b9507ad8cb2 (diff) |
mdframed (10jan12)
git-svn-id: svn://tug.org/texlive/trunk@25091 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/mdframed/mdframed.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/mdframed/mdframed.sty | 1168 |
1 files changed, 1168 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/mdframed/mdframed.sty b/Master/texmf-dist/tex/latex/mdframed/mdframed.sty new file mode 100644 index 00000000000..0b54ecc3ea3 --- /dev/null +++ b/Master/texmf-dist/tex/latex/mdframed/mdframed.sty @@ -0,0 +1,1168 @@ +%% +%% This is file `mdframed.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mdframed.dtx (with options: `package') +%% ---------------------------------------------------------------- +%% 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 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 +%% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +%% _______________ +%% | page 1 | +%% | Text | +%% | __Text__ | +%% | | Text | | +%% P A G E B R E A K +%% | | Text | | +%% | |_Text_| | +%% | Text | +%% |____page 2___| +%% +%% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +%% ================================================== +%% +\def\mdversion{v1.2a} +\def\mdframedpackagename{mdframed} +\def\mdf@maindate@svn$#1: #2 #3 #4-#5-#6 #7 #8${#4/#5/#6\space } +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{mdframed}% + [\mdf@maindate@svn$Id: mdframed.dtx 320 2012-01-09 18:44:33Z marco $% + \mdversion: \mdframedpackagename] +\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 + }% + } +} +\RequirePackage{kvoptions} +\RequirePackage{xparse} +\RequirePackage{etoolbox}[2011/01/03] +\RequirePackage{zref-abspage} +\RequirePackage{color} +\SetupKeyvalOptions{family=mdf,prefix=mdf@} + +\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{} +\DeclareListParser*{\mdf@dolist}{,} +\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}}% + \expandafter\setlength\csname mdf@#1@length\endcsname{\csname mdfl@#1\endcsname}% + }% +} +\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}% +} +\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}% + }% +} +\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}% + }% +} +\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}% +} +\newcounter{mdf@globalstyle@cnt} +\defcounter{mdf@globalstyle@cnt}{0} +\newcommand*\mdfglobal@style{0} +\define@key{mdf}{style}{% + \mdf@PackageWarning{package option style is depreciated^^J + use framemethod instead\MessageBreak}% + \renewcommand*\mdfglobal@style{#1}% + \defcounter{mdf@globalstyle@cnt}{#1}% + \ifcase\value{mdf@globalstyle@cnt}\relax + %0 <- kein Grafikpaket + \or\mdf@LoadFile@IfExist{tikz}% + \or\mdf@LoadFile@IfExist{pstricks-add}% + \or\defcounter{mdf@globalstyle@cnt}{2}% + \mdf@LoadFile@IfExist{pst-node}% + \or\mdf@LoadFile@IfExist{pst-node}% + \else\mdf@PackageWarning{Unknown global style \value{mdf@globalstyle@cnt}}% + \fi% +} +\providecommand*\mdf@framemethod{} +\def\mdf@framemethod@i{}% +\def\mdf@framemethod@ii{}% +\def\mdf@framemethod@iii{}% +\define@key{mdf}{framemethod}[default]{% + \lowercase{\def\mdf@tempa{#1}} + \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}}% + {\xifinlist{\mdf@tempa}{\mdf@framemethod@iii}% + {\def\mdf@@framemethod{pstricks}\defcounter{mdf@globalstyle@cnt}{2}}% + {% + \mdf@LoadFile@IfExist{#1}% + }% + }% + }% + \ifcase\value{mdf@globalstyle@cnt}\relax% + %0 <- kein Grafikpaket + \or\mdf@LoadFile@IfExist{tikz}% + \or\mdf@LoadFile@IfExist{pst-node}% + \or\mdf@LoadFile@IfExist{pst-node}% + \fi% +} +\mdf@dolist{\mdf@do@lengthoption}{% + {skipabove==\z@},% + {skipbelow==\z@},% + {leftmargin==\z@},% + {rightmargin==\z@},% + {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@},% + {footenotedistance==\medskipamount}, + {userdefinedwidth==\linewidth}, + {frametitleaboveskip==5pt}, + {frametitlebelowskip==5pt}, + {frametitlerulewidth==.2pt}, + {frametitleleftmargin==10pt},% + {frametitlerightmargin==10pt},% +} +\mdf@dolist{\mdf@do@stringoption}{% + {frametitle=={}},% + {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},% + {settings=={}},% + {frametitlesettings=={}},% + {font=={}},% + {frametitlefont==\normalfont\bfseries},% + {printheight==none},% + {alignment=={}},% + {frametitlealignment=={}},% + {theoremseparator=={:}},% + {theoremcountersep=={.}},% + {theoremtitlefont=={}},% + {theoremspace=={\space}},% +} +\mdf@dolist{\mdf@do@booloption}{% + {ntheorem==false},% + {topline==true},% + {leftline==true},% + {bottomline==true},% + {rightline==true},% + {frametitletopline==true},% + {frametitleleftline==true},% + {frametitlebottomline==true},% + {frametitlerightline==true},% + {hidealllines==false},% + {frametitlerule==false},% + {nobreak==false},% + {footnoteinside==true},% + {usetwoside==true},% + {repeatframetitle==false},%Noch nicht richtig implementiert +} +\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}}% + }% +} +\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}% +} + +\def\mdf@xcolor{} +\define@key{mdf}{xcolor}[none]{% + \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% +}% +\define@key{mdf}{needspace}[\z@]{% + \begingroup% + \setlength{\dimen@}{#1}% + \vskip\z@\@plus\dimen@% + \penalty -100\vskip\z@\@plus -\dimen@% + \vskip\dimen@% + \penalty 9999% + \vskip -\dimen@% + \vskip\z@skip % hide the previous |\vskip| from |\addvspace| + \endgroup% +} +\DeclareDefaultOption{% + \mdf@PackageWarning{Unknown Option '\CurrentOption' for mdframed}} +\ProcessKeyvalOptions*\relax +\newrobustcmd*{\mdfsetup}{\setkeys{mdf}} +\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}}% +}% +\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}% +} +\newsavebox\mdf@frametitlebox +\newsavebox\mdf@footnotebox +\newsavebox\mdf@splitbox@one +\newsavebox\mdf@splitbox@two +\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 + +\newrobustcmd\mdfcreateextratikz{} + +\def\mdf@lrbox#1{% +%%patch to work with amsthm + \mdf@patchamsthm +%%end patch + \edef\mdf@restoreparams{% + \parindent=\the\parindent \parskip=\the\parskip} + \setbox#1\vbox\bgroup + \begingroup + \mdf@horizontalmargin@equation% + \color@setgroup% + \hsize=\mdf@horizontalspaceofbox% + \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 + \parfillskip\@flushglue \lineskip\normallineskip% + \baselineskip\normalbaselineskip% + \everypar{\mdf@restoreparams}\ignorespaces% +} + +\def\endmdf@lrbox{\endgroup\unskip\color@endgroup\egroup} + +\newrobustcmd*\mdf@ignorevbadness{% + \edef\mdf@currentvbadness{\the\vbadness}% + \vbadness=\@M% + \afterassignment\mdf@restorevbadness} +\newrobustcmd*\mdf@restorevbadness{\vbadness=\mdf@currentvbadness\relax} +\@ifpackageloaded{amsthm}{% + \newrobustcmd\mdf@patchamsthm{% + \let\mdf@deferred@thm@head\deferred@thm@head + \patchcmd{\deferred@thm@head}{\indent}{}{}{} + }% + }{\let\mdf@patchamsthm\relax}% +\def\mdf@trivlist#1{% + \setlength{\topsep}{#1}% + \partopsep\z@% + \parsep\z@% + \@nmbrlistfalse% + \@trivlist% + \labelwidth\z@% + \leftmargin\z@% + \itemindent\z@% + \let\@itemlabel\@empty% + \def\makelabel##1{##1}% + \item\leavevmode\hrule \@height\z@ \@width\linewidth\relax% +%% \item\mbox{}\relax% second version +%% \item\relax% first Version +} +\let\endmdf@trivlist\endtrivlist +\patchcmd\endmdf@trivlist\@endparenv\mdf@endparenv{}{} +\def\mdf@endparenv{% + \addpenalty\@endparpenalty\addvspace\mdf@skipbelow@length\@endpetrue} + +\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}% +} +\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}}% +} +\newrobustcmd*{\mdflength}[1]{\csuse{mdf@#1@length}} + +\newrobustcmd*{\surroundwithmdframed}[2][]{% + \BeforeBeginEnvironment{#2}{\begin{mdframed}[#1]}% + \AfterEndEnvironment{#2}{\end{mdframed}}% +} +\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}% + }% + +\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}}% +} + +\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}% + } + \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}% + } + \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}% + } + \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}% + } + \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}}% + }% + }% + } + +\newrobustcmd\mdfframedtitleenv[1]{% + \begingroup% + \color@setgroup% + \mdf@frametitlefont\color{\mdf@frametitlefontcolor}% + \mdf@lrbox{\mdf@frametitlebox}% + \mdf@frametitlealignment% + #1\par\unskip + \endmdf@lrbox% + \mdf@ignorevbadness% + \global\setbox\mdf@frametitlebox\vbox{\unvbox\mdf@frametitlebox}% + \global\mdfframetitleboxwidth=\wd\mdf@frametitlebox\relax% + \global\mdfframetitleboxheight=\ht\mdf@frametitlebox\relax% + \global\mdfframetitleboxdepth=\dp\mdf@frametitlebox\relax% + \global\mdfframetitleboxtotalheight=\dimexpr\ht\mdf@frametitlebox+\dp\mdf@frametitlebox + +\mdf@frametitleaboveskip@length+\mdf@frametitlebelowskip@length\relax% + \color@endgroup% + \endgroup% +} + +\newrobustcmd*\mdf@@frametitle{% + \mdfframedtitleenv{\mdf@frametitle}% +} + +\newrobustcmd*\mdf@@frametitle@use{% + \begingroup + \parskip\z@ + \parindent\z@ + \offinterlineskip + \mdf@ignorevbadness% + \global\setbox\mdf@splitbox@one\vbox{% + \unvcopy\mdf@frametitlebox% + \mdf@@frametitlerule% + \unvbox\mdf@splitbox@one + }% + \mdf@ignorevbadness% + \global\setbox\mdf@splitbox@one\vbox{% + \unvbox\mdf@splitbox@one}% + \endgroup + \mdfsetup{innertopmargin=\mdf@frametitleaboveskip@length}% +} + +\newrobustcmd*\mdf@checkntheorem{% + \ifbool{mdf@ntheorem}% + {\ifundef{\theorempreskipamount}% + {\mdf@PackageWarning{You have not loaded ntheorem yet}}% + {\setlength{\theorempreskipamount}{\z@}% + \setlength{\theorempostskipamount}{\z@}% + }% + }{}% +} +\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% +} +\newrobustcmd*\mdf@load@style{% +\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% +}% +\mdf@load@style + +\newrobustcmd*\mdf@styledefinition{%AVOID!!! + \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% + }{}% +} +\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}% + \ifnum\@floatpenalty<0\relax%Detecting float + \if@twocolumn% + \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 + \else + \mdf@PackageInfo{mdframed inside float ^^J + mdframed uses option nobreak \mdframedpackagename}% + \def\mdf@reserved@a{\mdf@put@frame@standalone}% + \fi% + \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% +} +\newrobustcmd*\mdf@hidealllines@check{% + \ifbool{mdf@hidealllines}{% + \boolfalse{mdf@leftline}\boolfalse{mdf@rightline}% + \boolfalse{mdf@topline}\boolfalse{mdf@bottomline}% + \boolfalse{mdf@frametitleleftline}\boolfalse{mdf@frametitlerightline}% + \boolfalse{mdf@frametitletopline}\boolfalse{mdf@frametitlebottomline}% + }{}% +} +\newenvironment{mdframed}[1][]{% +\begingroup% +\color@setgroup% + \mdfsetup{userdefinedwidth=\linewidth,#1}% + \mdf@hidealllines@check% + \mdf@twoside@checklength% + \let\width\z@% + \let\height\z@% + \mdf@checkntheorem% + \mdf@styledefinition% + \mdf@footnoteinput% + \color{\mdf@fontcolor}% + \ifvmode\nointerlineskip\fi% + \mdf@trivlist{\mdf@skipabove@length}%% + \ifdefempty{\mdf@frametitle}{}{\mdf@@frametitle}% + \mdf@settings% + \mdf@lrbox{\mdf@splitbox@one}% + }% + {\par\unskip% + \ifmdf@footnoteinside% + \def\mdf@reserveda{% + \mdf@footnoteoutput% + \endmdf@lrbox% + \ifdefempty{\mdf@frametitle}{}{\mdf@@frametitle@use} + \detected@mdf@put@frame}% + \else% + \def\mdf@reserveda{% + \endmdf@lrbox% + \ifdefempty{\mdf@frametitle}{}{\mdf@@frametitle@use} + \detected@mdf@put@frame% + \mdf@footnoteoutput% + }% + \fi% + \mdf@reserveda% + \endmdf@trivlist% +\color@endgroup\endgroup\@doendpe%\@endparenv% +} + +\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}{}% +} +\newrobustcmd*\mdf@freepagevspace{% + \penalty\@M \vskip 2\baselineskip \vskip\height + \penalty9999 \vskip -2\baselineskip \vskip-\height + \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% + }% +} +\newrobustcmd*\mdf@advancelength@horizontalmargin@sub[1]{% + \advance\mdf@horizontalspaceofbox by -\csname mdf@#1@length\endcsname\relax% +} +\newlength\mdf@horizontalspaceofbox +\newrobustcmd*\mdf@horizontalmargin@equation{% + \setlength{\mdf@horizontalspaceofbox}{\mdf@userdefinedwidth@length}% + \mdf@dolist{\mdf@advancelength@horizontalmargin@sub}{% + leftmargin,outerlinewidth,middlelinewidth,% + innerlinewidth,innerleftmargin,innerrightmargin,% + innerlinewidth,middlelinewidth,outerlinewidth,% + rightmargin}% + \notbool{mdf@leftline}{% + \advance\mdf@horizontalspaceofbox by \mdf@innerlinewidth@length\relax% + \advance\mdf@horizontalspaceofbox by \mdf@middlelinewidth@length\relax% + \advance\mdf@horizontalspaceofbox by \mdf@outerlinewidth@length\relax% + }{}% + \notbool{mdf@rightline}{% + \advance\mdf@horizontalspaceofbox by \mdf@innerlinewidth@length\relax% + \advance\mdf@horizontalspaceofbox by \mdf@middlelinewidth@length\relax% + \advance\mdf@horizontalspaceofbox by \mdf@outerlinewidth@length\relax% + }{}% + \ifdimless{\mdf@horizontalspaceofbox}{3cm}% + {\mdf@PackageWarning{You have only a width of 3cm}}{} + \hsize=\mdf@horizontalspaceofbox% +} +\newrobustcmd*\mdf@keeplines@single{% + \notbool{mdf@topline}{% + \advance\mdf@verticalmarginwhole@length by -\mdf@innerlinewidth@length% + \advance\mdf@verticalmarginwhole@length by -\mdf@middlelinewidth@length% + \advance\mdf@verticalmarginwhole@length by -\mdf@outerlinewidth@length% + }{}% + \notbool{mdf@bottomline}{% + \advance\mdf@verticalmarginwhole@length by -\mdf@innerlinewidth@length% + \advance\mdf@verticalmarginwhole@length by -\mdf@middlelinewidth@length% + \advance\mdf@verticalmarginwhole@length by -\mdf@outerlinewidth@length% + }{}% +} +\newrobustcmd*\mdf@advancelength@verticalmarginwhole[1]{% + \advance\mdf@verticalmarginwhole@length by \csname mdf@#1@length\endcsname\relax% +} +\newrobustcmd*\mdf@advancelength@freevspace@sub[1]{% + \advance\dimen@ by -\csname mdf@#1@length\endcsname\relax% +} +\newrobustcmd*\mdf@advancelength@freevspace@add[1]{% + \advance\dimen@ by \csname mdf@#1@length\endcsname\relax% +} +\protected@edef\mdf@reset{\boxmaxdepth\the\boxmaxdepth + \splittopskip\the\splittopskip}% +\newrobustcmd*\mdf@put@frame@standalone{\relax% + \ifvoid\mdf@splitbox@one\relax + \mdf@PackageWarning{The environment is empty\MessageBreak}% + \let\mdf@reserved@a\relax% + \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@verticalmarginwhole}{% + outerlinewidth,middlelinewidth,innerlinewidth,innertopmargin, + innerbottommargin,innerlinewidth,middlelinewidth,outerlinewidth}% + \mdf@keeplines@single% + \def\mdf@reserved@a{\mdf@putbox@single}% + \fi + \mdf@reserved@a% +} +\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@verticalmarginwhole}{% + outerlinewidth,middlelinewidth,innerlinewidth,innertopmargin, + innerbottommargin,innerlinewidth,middlelinewidth,outerlinewidth}% + \mdf@keeplines@single% + \ifdimless{\mdf@verticalmarginwhole@length}{\mdf@freevspace@length}% + {%passt auf Seite% + \begingroup + \mdf@@setzref + \mdf@putbox@single% + \endgroup + \let\mdf@reserved@a\relax}% + {\def\mdf@reserved@a{\mdf@put@frame@i}}%passt nicht auf Seite + }% +\fi +\mdf@reserved@a% +} +\def\mdf@put@frame@i{%Box muss gesplittet werden -- Ausgabe der ersten Teilbox + %Berechnung der Splittgroesse -- Linien und Abstand oben + %\vbox to 0pt{}% + %\rlap{\smash{\the\mdf@freevspace@length}}%\hrule \@height\z@ \@width\hsize + \mdf@freepagevspace%gives \mdf@freevspace@length + %Berechnung ob nur oberen Linien nur auf die Seite passe + \dimen@=\the\mdf@freevspace@length% + \dimen@i=\mdf@innertopmargin@length% + \advance\dimen@i by \mdf@innerlinewidth@length% + \advance\dimen@i by \mdf@middlelinewidth@length% + \advance\dimen@i by \mdf@outerlinewidth@length% + \advance\dimen@i by 2\baselineskip% + \ifdimless{\dimen@}{\dimen@i}% + {\hrule \@height\z@ \@width\hsize% + \vfill\eject% + \def\mdf@reserved@a{\mdf@put@frame}% + }{% + \mdf@freepagevspace% + \dimen@=\the\mdf@freevspace@length% + \mdf@dolist{\mdf@advancelength@freevspace@sub}{%calculate with \dimen@ + outerlinewidth,middlelinewidth,innerlinewidth,% + innertopmargin,splitbottomskip}% + \ifbool{mdf@topline}{}{% + \advance\dimen@ by \mdf@innerlinewidth@length% + \advance\dimen@ by \mdf@middlelinewidth@length% + \advance\dimen@ by \mdf@outerlinewidth@length% + }% + \advance\dimen@.8\pageshrink + \ifdimless{\ht\mdf@splitbox@one+\dp\mdf@splitbox@one}{\dimen@}% + {\mdf@PackageWarning{You got a bad break\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% + }{}% + \splitmaxdepth\z@ \splittopskip\mdf@splittopskip@length% + \mdf@ignorevbadness% + \setbox\mdf@splitbox@two\vsplit\mdf@splitbox@one to \dimen@ + \setbox\mdf@splitbox@two\vbox{\unvbox\mdf@splitbox@two}% + \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one}% + \ifbool{mdf@repeatframetitle}{% + \setbox\mdf@splitbox@one\vbox{% + \vbox to \mdf@splittopskip@length{\hsize\z@} + %\par\unskip\nointerlineskip + \unvcopy\mdf@frametitlebox% + \mdf@@frametitlerule% + \vbox to\dimexpr + -\mdf@splittopskip@length+\ht\strutbox+\dp\strutbox + +\mdf@innertopmargin@length\relax{\hsize\z@}% + \unvbox\mdf@splitbox@one}% + }{}% + \ifdimgreater{\ht\mdf@splitbox@two+\dp\mdf@splitbox@two}{\dimen@}% + {%Falsch gesplittet + \mdf@PackageInfo{Box was splittet wrong\MessageBreak}% + \dimen@i=\dimen@ + \advance\dimen@ by -\ht\mdf@splitbox@two + \advance\dimen@ by -\dp\mdf@splitbox@two + \advance\dimen@i by 0.5\dimen@ + \splittopskip\z@% + \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@two% + %benoetigt um Tiefe zu haben + \hrule \@height\dp\strutbox \@width\z@ + \unvbox\mdf@splitbox@one} + \splittopskip\mdf@splittopskip@length% + \mdf@ignorevbadness% + \setbox\mdf@splitbox@two\vsplit\mdf@splitbox@one to \dimen@i + \setbox\mdf@splitbox@two\vbox{\unvbox\mdf@splitbox@two}% + \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one}% + \ifbool{mdf@repeatframetitle}{% + \setbox\mdf@splitbox@one\vbox{% + \vbox to \mdf@splittopskip@length{\hsize\z@} + %\par\unskip\nointerlineskip + \unvcopy\mdf@frametitlebox% + \mdf@@frametitlerule% + \vbox to\dimexpr + -\mdf@splittopskip@length+\ht\strutbox+\dp\strutbox + +\mdf@innertopmargin@length\relax{\hsize\z@}% + \unvbox\mdf@splitbox@one}% + }{}% + }{}% + \ifvoid\mdf@splitbox@one + \mdf@PackageWarning{You got a bad break\MessageBreak + because the splittet box is empty\MessageBreak + You have to change the page settings\MessageBreak + like enlargethispage or something else}% + \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@two% + %benoetigt um Tiefe zu haben + \hrule \@height\dp\strutbox \@width\z@ + \unvbox\mdf@splitbox@one}% + \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one}% + \enlargethispage{\baselineskip}% + \def\mdf@reserved@a{\mdf@put@frame}% + \fi + \ifvoid\mdf@splitbox@two%%pruefe, ob erste Box leer ist + \hrule \@height\z@ \@width\hsize + \vfill\eject% + \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{\unvbox\mdf@splitbox@two\unvbox\mdf@splitbox@one} + \def\mdf@reserved@a{\mdf@put@frame}% + }% + {% + \begingroup% + \mdf@@setzref + \mdf@putbox@first%%%Groesse des Splittens passt + \endgroup% + \hrule \@height\z@ \@width\hsize% + \vfill\eject% + \def\mdf@reserved@a{\mdf@put@frame@ii}% + }% + \fi% + }% +\mdf@reserved@a% +} +\def\mdf@put@frame@ii{%Ausgabe der mittleren Box(en) wenn vorhanden + \setlength{\mdf@freevspace@length}{\vsize}% + \setlength{\dimen@}{\dimexpr\ht\mdf@splitbox@one+\dp\mdf@splitbox@one\relax}% + \mdf@dolist{\mdf@advancelength@freevspace@add}{%used \dimen@ + outerlinewidth,middlelinewidth,innerlinewidth,% + innerbottommargin}%%%Addition der Linien unten + \ifbool{mdf@bottomline}{}{% + \advance\dimen@i by \mdf@innerlinewidth@length% + \advance\dimen@i by \mdf@middlelinewidth@length% + \advance\dimen@i by \mdf@outerlinewidth@length% + \relax}% + \ifdimgreater{\dimen@}{\mdf@freevspace@length}% + {% + \advance\mdf@freevspace@length by -\mdf@splitbottomskip@length\relax% + \ifbool{mdf@bottomline}{}{% + \advance\dimen@i by -\mdf@innerlinewidth@length% + \advance\dimen@i by -\mdf@middlelinewidth@length% + \advance\dimen@i by -\mdf@outerlinewidth@length% + \relax}% + \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}%PRUEFEN!!! + \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one}%PRUEFEN!!!! + \ifbool{mdf@repeatframetitle}{% + \setbox\mdf@splitbox@one\vbox{% + \vbox to \mdf@splittopskip@length{\hsize\z@} + %\par\unskip\nointerlineskip + \unvcopy\mdf@frametitlebox% + \mdf@@frametitlerule% + \vbox to\dimexpr + -\mdf@splittopskip@length+\ht\strutbox+\dp\strutbox + +\mdf@innertopmargin@length\relax{\hsize\z@}% + \unvbox\mdf@splitbox@one}% + }{}% + \ifvoid\mdf@splitbox@one\relax% + \mdf@PackageWarning{You got a bad break\MessageBreak + because the split box is empty\MessageBreak + You have to change the settings}% + \setbox\mdf@splitbox@one{\unvbox\mdf@splitbox@two}% + \def\mdf@reserved@a{\enlargethispage{\baselineskip}\mdf@put@frame@ii}% + \else + \begingroup + \mdf@@setzref + \mdf@putbox@middle% + \endgroup + \hrule \@height\z@ \@width\hsize + \vfill\eject + \def\mdf@reserved@a{\mdf@put@frame@ii}% + \fi + }%Hier die Ausgabe der mittleren Box + {\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}% + %\hb@xt@\z@{\box\mdf@splitbox@one}% + \let\mdf@reserved@a\relax% + \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one\hrule \@height\z@ \@width\mdfboundingboxwidth}% + }{}% + \begingroup% + \mdf@@setzref + \mdf@putbox@second% + \hrule \@height\z@ \@width\hsize% + \endgroup% + \let\mdf@reserved@a\relax% + }%Hier kommt die Ausgabe der letzten Box + \mdf@reserved@a% +} + +%%%% _____t_____ +%%%% | | +%%%% | | +%%%% | | +%%%% l| |r +%%%% | | +%%%% | | +%%%% |___________| +%%%% b +%%Zusammenhaenge abfragen: +\newrobustcmd*\mdf@test@ltrb{% + \ifboolexpr{ (bool {mdf@topline}) and (bool {mdf@bottomline}) + and (bool {mdf@leftline}) and (bool {mdf@rightline})}} +\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})}} +\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})}} +\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})}} +\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} ) }} +\DisableKeyvalOption[action=warning,package=mdframed]{mdf}{framemethod}% +\DisableKeyvalOption[action=warning,package=mdframed]{mdf}{xcolor}% + + \endinput +%% +%% ================================================================ +%% Copyright (C) 2011 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! +%% +%% ================================================================ +%% +%% End of file `mdframed.sty'. |