summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/mdframed
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/mdframed
Initial commit
Diffstat (limited to 'macros/latex/contrib/mdframed')
-rw-r--r--macros/latex/contrib/mdframed/Makefile246
-rw-r--r--macros/latex/contrib/mdframed/README71
-rw-r--r--macros/latex/contrib/mdframed/ctan-lion.pngbin0 -> 81950 bytes
-rw-r--r--macros/latex/contrib/mdframed/ltxmdf.cls538
-rw-r--r--macros/latex/contrib/mdframed/mdframed-example-default.pdfbin0 -> 307304 bytes
-rw-r--r--macros/latex/contrib/mdframed/mdframed-example-default.tex231
-rw-r--r--macros/latex/contrib/mdframed/mdframed-example-pstricks.pdfbin0 -> 78345 bytes
-rw-r--r--macros/latex/contrib/mdframed/mdframed-example-pstricks.tex146
-rw-r--r--macros/latex/contrib/mdframed/mdframed-example-texsx.pdfbin0 -> 258493 bytes
-rw-r--r--macros/latex/contrib/mdframed/mdframed-example-texsx.tex270
-rw-r--r--macros/latex/contrib/mdframed/mdframed-example-tikz.pdfbin0 -> 327579 bytes
-rw-r--r--macros/latex/contrib/mdframed/mdframed-example-tikz.tex212
-rw-r--r--macros/latex/contrib/mdframed/mdframed.dtx7895
-rw-r--r--macros/latex/contrib/mdframed/mdframed.ins100
-rw-r--r--macros/latex/contrib/mdframed/mdframed.pdfbin0 -> 811306 bytes
-rw-r--r--macros/latex/contrib/mdframed/mdframedmake.bat117
16 files changed, 9826 insertions, 0 deletions
diff --git a/macros/latex/contrib/mdframed/Makefile b/macros/latex/contrib/mdframed/Makefile
new file mode 100644
index 0000000000..fd9d5b99a3
--- /dev/null
+++ b/macros/latex/contrib/mdframed/Makefile
@@ -0,0 +1,246 @@
+################################################################
+## Makefile for mdframed project folder
+## $Id: Makefile 428 2012-06-06 12:30:18Z marco $
+################################################################
+## Definitions
+################################################################
+.SILENT:
+SHELL := /bin/bash
+.PHONY: all clean ctan allwithoutclean
+################################################################
+## Name list
+################################################################
+PACKAGE = mdframed
+EXAMPLED = mdframed-example-default
+EXAMPLET = mdframed-example-tikz
+EXAMPLEP = mdframed-example-pstricks
+EXAMPLESX = mdframed-example-texsx
+STYLE_I = md-frame-0
+STYLE_II = md-frame-1
+STYLE_III = md-frame-2
+STYLE_IV = md-frame-3
+EXAMPLLIST= $(EXAMPLED) $(EXAMPLET) $(EXAMPLEP) $(EXAMPLESX)
+FILELIST = $(PACKAGE) $(EXAMPLED) $(EXAMPLET) $(EXAMPLEP) $(EXAMPLESX)
+STYLELIST = $(STYLE_I) $(STYLE_II) $(STYLE_III) $(STYLE_IV)
+AUXFILES = aux dtxe glo glolog gls hd ins idx idxlog ilg ind log out ps thm tmp toc xdv
+
+
+################################################################
+## Colordefinition
+################################################################
+NO_COLOR = \x1b[0m
+OK_COLOR = \x1b[32;01m
+WARN_COLOR = \x1b[33;01m
+ERROR_COLOR = \x1b[31;01m
+################################################################
+## make help
+################################################################
+help:
+ @echo
+ @echo -e "$(WARN_COLOR)The following definitions provided by this Makefile"
+ @echo -e "$(OK_COLOR)\tmake docsty\t\t--\ttypesets the documenation and the package"
+ @echo -e "$(OK_COLOR)\tmake all\t\t--\trun docsty examples clean"
+ @echo -e "\tmake examples\t\t--\tcompiles all example files"
+ @echo -e "\tmake clean\t\t--\tremove all helpfiles created by mdframed"
+ @echo -e "\tmake changeversion\t--\tmaintaner tool to change the version"
+ @echo -e "\tmake changerevision\t--\tmaintaner tool to change the revision"
+ @echo -e "\tmake changedate\t--\tmaintaner tool to change the date"
+ @echo -e "\tmake localinstall\t--\tinstall the package in TEXMFHOME"
+ @echo -e "$(WARN_COLOR)End help$(NO_COLOR)"
+
+################################################################
+## Compilation
+################################################################
+$(EXAMPLED).pdf: $(EXAMPLED).tex
+$(EXAMPLET).pdf: $(EXAMPLET).tex
+$(EXAMPLEP).ps: $(EXAMPLEP).tex
+$(EXAMPLESX).pdf: $(EXAMPLESX).tex
+
+%.pdf:
+ NAME=`basename $< .tex` ;\
+ echo -e "" ;\
+ echo -e "\t$(WARN_COLOR)Typesetting $$NAME$(NO_COLOR)" ;\
+ pdflatex --draftmode --interaction=nonstopmode $< > /dev/null ;\
+ if [ $$? = 0 ] ; then \
+ echo -e "\t$(OK_COLOR)compilation in draftmode without errors$(NO_COLOR)" ;\
+ echo -e "\t$(OK_COLOR)Run PDFLaTeX again on $$NAME.tex$(NO_COLOR)" ;\
+ pdflatex --interaction=nonstopmode $< > /dev/null ;\
+ else \
+ echo -e "\t$(ERROR_COLOR)compilation in draftmode with errors$(NO_COLOR)" ;\
+ exit 0;\
+ fi ;\
+ echo -e "\t$(OK_COLOR)Typesetting $$NAME finished $(NO_COLOR)" ;\
+
+%.ps:
+ NAME=`basename $< .tex` ;\
+ echo -e "" ;\
+ echo -e "\t$(WARN_COLOR)Typesetting $$NAME$(NO_COLOR)" ;\
+ xelatex --no-pdf --interaction=nonstopmode $< > /dev/null ;\
+ if [ $$? = 0 ] ; then \
+ echo -e "\t$(OK_COLOR)compilation in draftmode without errors$(NO_COLOR)" ;\
+ echo -e "\t$(OK_COLOR)Run XeLaTeX again on $$NAME.tex$(NO_COLOR)" ;\
+ xelatex --interaction=nonstopmode $< > /dev/null ;\
+ else \
+ echo -e "\t$(ERROR_COLOR)compilation in draftmode with errors$(NO_COLOR)" ;\
+ exit 0;\
+ fi ;\
+ echo -e "\t$(OK_COLOR)Typesetting $$NAME done$(NO_COLOR)" ;\
+
+# latex -draftmode -interaction=nonstopmode $< > /dev/null ;\
+# if [ $$? = 0 ] ; then \
+# echo -e "\t$(OK_COLOR)compilation in draftmode without errors$(NO_COLOR)" ;\
+# echo -e "\t$(OK_COLOR)Run LaTeX again on $$NAME.tex$(NO_COLOR)" ;\
+# latex -interaction=nonstopmode $< > /dev/null ;\
+# latex -interaction=nonstopmode $< > /dev/null ;\
+# dvips -q $$NAME.dvi ;\
+# ps2pdf $$NAME.ps ;\
+# else \
+# echo -e "\t$(ERROR_COLOR)compilation in draftmode with errors$(NO_COLOR)" ;\
+# exit 0;\
+# fi ;\
+# echo -e "\t$(OK_COLOR)Typesetting $$NAME done$(NO_COLOR)" ;\
+################################################################
+## Compilation
+################################################################
+docsty: $(PACKAGE).dtx
+ echo -e "" ;\
+ echo -e "\t$(WARN_COLOR)Typesetting $(PACKAGE).dtx$(NO_COLOR)" ;\
+ pdflatex --draftmode --interaction=nonstopmode $(PACKAGE).dtx > /dev/null ;\
+ if [ $$? = 0 ] ; then \
+ echo -e "\t$(OK_COLOR)compilation in draftmode without errors$(NO_COLOR)" ;\
+ if [ -f $(PACKAGE).glo ] ; then \
+ echo -e "\t$(WARN_COLOR)Typesetting $(PACKAGE).glo$(NO_COLOR)" ;\
+ makeindex -q -t $(PACKAGE).glolog -s gglo.ist -o $(PACKAGE).gls $(PACKAGE).glo ;\
+ if [ $$? = 0 ] ; then \
+ echo -e "\t$(OK_COLOR)compilation of Glossar without errors$(NO_COLOR)" ;\
+ else \
+ echo -e "\t$(ERROR_COLOR)compilation of Glossar with errors$(NO_COLOR)" ;\
+ fi ;\
+ fi ;\
+ if [ -f $(PACKAGE).idx ] ; then \
+ echo -e "\t$(WARN_COLOR)Typesetting $(PACKAGE).idx$(NO_COLOR)" ;\
+ makeindex -q -t $(PACKAGE).idxlog -s gind.ist $(PACKAGE).idx ;\
+ if [ $$? = 0 ] ; then \
+ echo -e "\t$(OK_COLOR)compilation of Index without errors$(NO_COLOR)" ;\
+ else \
+ echo -e "\t$(ERROR_COLOR)compilation of Index with errors$(NO_COLOR)" ;\
+ fi ;\
+ fi ;\
+ pdflatex $(PACKAGE).dtx > /dev/null ;\
+ if [ $$? = 0 ] ; then \
+ echo -e "\t$(OK_COLOR)Second pdflatex compilation without errors$(NO_COLOR)" ;\
+ else \
+ echo -e "\t$(ERROR_COLOR)Second pdflatex compilation with errors$(NO_COLOR)" ;\
+ exit 0;\
+ fi ;\
+ pdflatex $(PACKAGE).dtx > /dev/null ;\
+ else \
+ echo -e "\t$(ERROR_COLOR)compilation in draftmode with errors$(NO_COLOR)" ;\
+ exit 0;\
+ fi ;\
+
+exampled: $(EXAMPLED).pdf
+examplet: $(EXAMPLET).pdf
+examplep: $(EXAMPLEP).ps
+examplesx:$(EXAMPLESX).pdf
+
+examples: exampled examplet examplep examplesx
+
+clean:
+ echo "" ;\
+ echo -e "\t$(WARN_COLOR)Start removing help files$(NO_COLOR)" ;\
+ for I in $(FILELIST) ;\
+ do \
+ for J in $(AUXFILES) ;\
+ do \
+ rm -rf $$I.$$J ;\
+ done ;\
+ done ;\
+ echo -e "\t$(OK_COLOR)Removing finished$(NO_COLOR)" ;\
+
+all: docsty examples clean
+
+################################################################
+## personal setting
+################################################################
+localinstall: docsty examples makelocalinstall clean
+
+makelocalinstall:
+ echo "" ;\
+ echo -e "\t$(ERROR_COLOR)Start local install$(NO_COLOR)" ;\
+ PATHTEXHOME=`kpsewhich --var-value=TEXMFHOME` ;\
+ echo -e "\t$(ERROR_COLOR)Creating folders if don't exist$(NO_COLOR)" ;\
+ mkdir -p $$PATHTEXHOME/doc/latex/$(PACKAGE)/ ;\
+ mkdir -p $$PATHTEXHOME/tex/latex/$(PACKAGE)/ ;\
+ for I in $(FILELIST) ;\
+ do \
+ cp $$I.pdf $$PATHTEXHOME/doc/latex/$(PACKAGE)/ ;\
+ done ;\
+ for I in $(STYLELIST) ;\
+ do \
+ cp $$I.mdf $$PATHTEXHOME/tex/latex/$(PACKAGE)/ ;\
+ done ;\
+ cp $(PACKAGE).sty $$PATHTEXHOME/tex/latex/$(PACKAGE)/ ;\
+ cp ltxmdf.cls $$PATHTEXHOME/tex/latex/$(PACKAGE)/ ;\
+ echo -e "\t$(OK_COLOR)Installation done$(NO_COLOR)" ;\
+
+################################################################
+## maintainer tool
+################################################################
+changeversion:
+ @echo
+ @echo -e "$(OK_COLOR)Aktuell wird die folgende Version verwendet"
+ @sed '/\\def\\mdversion/!d' $(PACKAGE).sty
+ @echo -e "$(WARN_COLOR)"
+ @read -p "Bitte neue Version eingeben: " REPLY && sed -Eie "s/(\\\\def\\\\mdversion\{).*(})/\1$$REPLY\2/" $(PACKAGE).dtx&&\
+ echo -e "$(OK_COLOR)Version geändert zu $$REPLY$(NO_COLOR)"
+ @echo
+
+changerevision:
+ @echo
+ @echo -e "$(OK_COLOR)Aktuell wird die folgende Revision verwendet"
+ @sed '/\\def\\mdfrevision/!d' $(PACKAGE).dtx
+ @echo -e "$(WARN_COLOR)"
+ @REPLY=`git rev-list HEAD | wc -l` && sed -Eie "s/(\\\\def\\\\mdfrevision\{).*(})/\1$$REPLY\2/" $(PACKAGE).dtx&&\
+ echo -e "$(OK_COLOR)Revision geändert zu $$REPLY$(NO_COLOR)"
+ @echo
+
+changedate:
+ @echo
+ @echo -e "$(OK_COLOR)Aktuell wird die folgendes Datum verwendet"
+ @sed '/\\def\\mdfmaindate/!d' $(PACKAGE).dtx
+ @echo -e "$(WARN_COLOR)"
+ @REPLY=`date +"%Y\/%m\/%d"` && sed -Eie "s/(\\\\def\\\\mdfmaindate\{).*(})/\1$$REPLY\2/" $(PACKAGE).dtx&&\
+ echo -e "$(OK_COLOR)Datum geändert zu $$REPLY$(NO_COLOR)"
+ @echo
+
+change: changeversion changerevision changedate
+
+usectanify:
+ echo "" ;\
+ echo -e "\t$(ERROR_COLOR)Start ctanify$(NO_COLOR)" ;\
+ ctanify $(PACKAGE).ins $(PACKAGE).pdf README.txt ltxmdf.cls \
+ ctan-lion.png=doc/latex/mdframed/ \
+ $(EXAMPLED).tex=doc/latex/mdframed/ \
+ $(EXAMPLED).pdf=doc/latex/mdframed/ \
+ $(EXAMPLET).tex=doc/latex/mdframed/ \
+ $(EXAMPLET).pdf=doc/latex/mdframed/ \
+ $(EXAMPLEP).tex=doc/latex/mdframed/ \
+ $(EXAMPLEP).pdf=doc/latex/mdframed/ \
+ $(EXAMPLESX).tex=doc/latex/mdframed/ \
+ $(EXAMPLESX).pdf=doc/latex/mdframed/ \
+ Makefile=source/latex/mdframed/ \
+ mdframedmake.bat=source/latex/mdframed/ \
+ md-frame-0.mdf=tex/latex/mdframed/ \
+ md-frame-1.mdf=tex/latex/mdframed/ \
+ md-frame-2.mdf=tex/latex/mdframed/ \
+ md-frame-3.mdf=tex/latex/mdframed/ ;\
+ if [ $$? = 0 ] ; then \
+ echo -e "\t$(OK_COLOR)ctanify without errors$(NO_COLOR)" ;\
+ echo -e "" ;\
+ else \
+ echo -e "\t$(ERROR_COLOR)ctanify with errors$(NO_COLOR)" ;\
+ exit 0;\
+ fi ;\
+
+ctan: docsty examples usectanify clean
diff --git a/macros/latex/contrib/mdframed/README b/macros/latex/contrib/mdframed/README
new file mode 100644
index 0000000000..3f53c02ae5
--- /dev/null
+++ b/macros/latex/contrib/mdframed/README
@@ -0,0 +1,71 @@
+================================================================
+================================================================
+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
+================================================================
+================================================================
+
diff --git a/macros/latex/contrib/mdframed/ctan-lion.png b/macros/latex/contrib/mdframed/ctan-lion.png
new file mode 100644
index 0000000000..c24d9a98f2
--- /dev/null
+++ b/macros/latex/contrib/mdframed/ctan-lion.png
Binary files differ
diff --git a/macros/latex/contrib/mdframed/ltxmdf.cls b/macros/latex/contrib/mdframed/ltxmdf.cls
new file mode 100644
index 0000000000..cad31bf5c8
--- /dev/null
+++ b/macros/latex/contrib/mdframed/ltxmdf.cls
@@ -0,0 +1,538 @@
+%% documentclass only for the documentation of mdframed
+%% This documentclass isn't maintanened or efficient for writing
+%%
+%%
+%% Copyright (c) 2012 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.
+
+
+%%$Id: ltxmdf.cls 431 2012-06-20 16:40:42Z marco $
+%%$Rev: 431 $
+%%$Author: marco $
+%%$Date: 2012-06-20 18:40:42 +0200 (Mi, 20 Jun 2012) $
+
+\RequirePackage{expl3}
+\GetIdInfo$Id: ltxmdf.cls 431 2012-06-20 16:40:42Z marco $
+ {documentation class for Marco Daniel}
+
+\ProvidesExplClass{\ExplFileName}
+ {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
+
+\RequirePackage{l3keys2e,xparse}
+\keys_define:nn { ltxmdf }
+ {
+ tocdepth .int_set:N = \l_ltxmdf_tocdepth_int ,
+ lipsum .bool_set:N = \l_ltxmdf_lipsum_bool ,
+ showframe .bool_set:N = \l_ltxmdf_showframe_bool ,
+ }
+\keys_set:nn { ltxmdf }
+ {
+ tocdepth = 2
+ }
+
+\ProcessKeysOptions { ltxmdf }
+
+\LoadClassWithOptions { scrartcl }
+\cs_set_eq:NN \c_keys_code_root_tl \c__keys_code_root_tl
+
+\RequirePackage{ifxetex,ifluatex}
+
+\RequirePackage{etoolbox}
+\RequirePackage[left=2.5cm,right=2.5cm,top=3cm,bottom=3cm]{geometry}
+
+\pdftex_if_engine:TF
+ {
+ \RequirePackage{selinput}
+ \SelectInputMappings{
+ adieresis = {ä} ,
+ germandbls = {ß} ,
+ Euro = {€} ,
+ }
+ \RequirePackage[T1]{fontenc}
+ \RequirePackage[scaled=0.82]{beramono}
+ \RequirePackage{microtype}
+ }
+ {
+ \RequirePackage{fontspec}
+ \setmonofont[Mapping=tex-text]{DejaVu Sans}
+ }
+\ExplSyntaxOff
+\RequirePackage[french=quotes]{csquotes}
+\RequirePackage{xspace}
+\begingroup
+ \text@command\relax
+ \global\let\xspace@check@icr\check@icr
+\endgroup
+\xspaceaddexceptions{\xspace@check@icr}
+\RequirePackage{multicol}\columnseprule0.4pt
+\RequirePackage{scrpage2}
+\RequirePackage[inline]{enumitem}
+\RequirePackage{amsmath}
+\RequirePackage{listings}
+\RequirePackage[amsmath]{ntheorem}
+\RequirePackage{array,booktabs}
+\RequirePackage{xcolor,tikz}
+\RequirePackage{graphicx}
+\RequirePackage[numbered]{hypdoc}
+\ExplSyntaxOn
+%set columns of index
+\c@IndexColumns = 2
+
+\hypersetup{%
+ breaklinks=true,
+ pdftitle={Documenation of mdframed},%
+ pdfauthor={Marco Daniel},%
+ colorlinks=true,%
+ linkcolor=ltxmdfblue,
+ urlcolor=cyan,
+ bookmarksdepth= \int_use:N \l_ltxmdf_tocdepth_int,
+}
+\bool_if:NT \l_ltxmdf_showframe_bool
+ {
+ \RequirePackage{showframe}
+ }
+\bool_if:NT \l_ltxmdf_lipsum_bool
+ {
+ \RequirePackage{lipsum}
+ \RequirePackage{kantlipsum}
+ }
+
+%Kopf- und Fusszeilen
+\clearscrheadfoot
+\pagestyle{scrheadings}
+\automark[subsection]{section}
+\renewcommand{\sectionmark}[1]{\markboth{\sectionmarkformat #1}{}}%
+\renewcommand{\subsectionmark}[1]{\markright{\subsectionmarkformat #1}}
+\ihead{\rightmark}
+\ohead{\leftmark}
+\ofoot{\pagemark}
+\providecommand\mdfmaindate{2012/09/20}
+\providecommand\mdfrevision{1}
+\ifoot{{\mdfmaindate}\qquad revision:~{\mdfrevision}\qquad{\jobname}}
+
+%%Maketitle angepasst:
+\prop_new:N \l_ltxmdf_maketitleinformation_prop
+\cs_set:Npn \title #1
+ {
+ \prop_put:Nnn \l_ltxmdf_maketitleinformation_prop { title } { #1 }
+ }
+\cs_set:Npn \subtitle #1
+ {
+ \prop_put:Nnn \l_ltxmdf_maketitleinformation_prop { subtitle } { #1 }
+ }
+\cs_set:Npn \author #1
+ {
+ \prop_put:Nnn \l_ltxmdf_maketitleinformation_prop { author } { #1 }
+ }
+\cs_set:Npn \version #1
+ {
+ \prop_put:Nnn \l_ltxmdf_maketitleinformation_prop { version } { #1 }
+ }
+\cs_set:Npn \date #1
+ {
+ \prop_put:Nnn \l_ltxmdf_maketitleinformation_prop { date } { #1 }
+ }
+\cs_set:Npn \introduction #1
+ {
+ \prop_put:Nnn \l_ltxmdf_maketitleinformation_prop { introduction } { #1 }
+ }
+
+\def\maketitle{%
+ \clearpage
+ \thispagestyle{empty}
+ \group_begin:
+ \group_begin:
+ \pdfbookmark[1]{Title}{titlebook}
+ \parindent\c_zero_dim
+ \centering
+ \color{ltxmdfblue}\Large\bfseries\sffamily
+ \prop_get:Nn \l_ltxmdf_maketitleinformation_prop { title }
+ \par
+ \skip_vertical:n {.5\baselineskip}
+ \normalfont\large\normalcolor
+ \prop_get:Nn \l_ltxmdf_maketitleinformation_prop { subtitle }
+ \par\kern.5\baselineskip\null\quad
+ \prop_get:Nn \l_ltxmdf_maketitleinformation_prop { author }
+ \hfill
+ \prop_get:Nn \l_ltxmdf_maketitleinformation_prop { version }
+ \hfill
+ \prop_get:Nn \l_ltxmdf_maketitleinformation_prop { date }
+ \hfill\quad\null
+ \group_end:
+ \par
+ \skip_vertical:n {.5\baselineskip}
+ \begin{abstract}
+ \prop_get:Nn \l_ltxmdf_maketitleinformation_prop { introduction }
+ \end{abstract}
+ \par
+ \skip_vertical:n {.2\baselineskip}
+ \pdfbookmark[1]{\contentsname}{tocbook}
+ \tableofcontents
+ \group_end:
+}
+
+%table of contens anpassen:
+\renewcommand\tableofcontents{%
+ \int_set_eq:NN \c@tocdepth \l_ltxmdf_tocdepth_int
+%\int_use:N \l_ltxmdf_tocdepth_int
+%\setcounter{tocdepth}{\l_ltxmdf_tocdepth_int}%
+ \begin{multicols}{2}[\centering\textbf{\sffamily\Large\contentsname}]
+ \@starttoc{toc}
+ \end{multicols}
+}
+
+
+%Modifkation of code
+\tl_gput_left:Nn \theCodelineNo { \color{gray} }
+\dim_set:Nn \MacroTopsep { 10pt }
+\tl_gput_right:Nn \MacroFont { \color{ltxmdfblue} }
+\NewDocumentCommand \MacroFontExpl {}
+ {
+ \MacroFont\color{ltxmdfblue}\bfseries
+ }
+
+%Anweisung zur Darstellung
+
+\NewDocumentCommand \Opt { m }
+ {
+ {\MacroFont #1}\xspace
+ }
+
+\NewDocumentCommand \Env { m }
+ {
+ {\MacroFont #1}\xspace
+ }
+
+\NewDocumentCommand \Cmd { m }
+ {
+ {\MacroFont\textbackslash #1}\xspace
+ }
+
+\NewDocumentCommand \Pack { m }
+ {
+ \texttt { #1 } \xspace
+ }
+
+\NewDocumentCommand \NOTE {}
+ {
+ \minisec{Note}
+ }
+
+\NewDocumentCommand \limitation { O{TikZ} }
+ {
+ \newline{\small~This~works~only~with~\Opt{framemethod=#1}.}
+ }
+
+\NewDocumentCommand \ExplOpt { o m }
+ {
+ \par
+ \skip_vertical:n { .2\baselineskip }
+ \noindent
+ \hbox_to_wd:nn { \c_zero_dim }
+ {
+ \skip_horizontal:n { -2em }
+ \@bsphack
+ \MacroFontExpl #2
+ \SpecialOptIndex{#2}
+ \@esphack
+ }
+ \hfill\null
+ \IfNoValueF { #1 }
+ {
+ \hbox:n { \small default=\ttfamily #1 }
+ }
+ \par
+ \skip_vertical:n { .5ex }
+ \noindent\ignorespaces
+ }
+
+\NewDocumentCommand \ExplEnv { o m }
+ {
+ \par
+ \skip_vertical:n { .2\baselineskip }
+ \noindent
+ \hbox_to_wd:nn { \c_zero_dim }
+ {
+ \skip_horizontal:n { -2em }
+ \@bsphack
+ \MacroFontExpl #2
+ \SpecialEnvIndex{#2}
+ \@esphack
+ }
+ \hfill\null
+ \IfNoValueF { #1 }
+ {
+ \hbox:n { \small default=\ttfamily #1 }
+ }
+ \par
+ \skip_vertical:n { .5ex }
+ \noindent\ignorespaces
+ }
+
+\NewDocumentCommand \ExplCmd { o m }
+ {
+ \par
+ \skip_vertical:n { .2\baselineskip }
+ \noindent
+ \hbox_to_wd:nn { \c_zero_dim }
+ {
+ \skip_horizontal:n { -2em }
+ \@bsphack
+ \MacroFontExpl\textbackslash #2
+ \SpecialUsageIndex{#2}
+ \@esphack
+ }
+ \hfill\null
+ \IfNoValueF { #1 }
+ {
+ \hbox:n { \small default=\ttfamily #1 }
+ }
+ \par
+ \skip_vertical:n { .5ex }
+ \noindent\ignorespaces
+ }
+
+
+\IndexPrologue{
+ \section*{Index}%
+ \markboth{Index}{Index}
+ The~index~only~collect~package~relevant~words.
+}
+
+
+\ExplSyntaxOff
+%Tikz und Farbe
+%tikzlibrary needs special handling
+
+
+
+\usetikzlibrary{calc,backgrounds,arrows,matrix}
+
+\colorlet{ltxmdfblue}{blue!30!black}
+
+
+\lst@RequireAspects{writefile}
+
+\lstset{keywordstyle=\bfseries}
+\lstdefinestyle{lstltxmdf}{%
+ basicstyle=\small\ttfamily,
+ language={[LaTeX]TeX},
+ basicstyle=\small,%
+ xleftmargin=20pt,%
+ xrightmargin=20pt,%
+ frame=none,%
+ rulecolor=\color{ltxmdfblue},%
+ framesep=5pt,%
+ framerule=1.2pt,%
+ texcsstyle=*\color{red!50!black}\bfseries,
+ moretexcs=intertext,
+ keywordstyle=\color{blue!60!black}\bfseries,%
+ columns=fullflexible,%
+ fontadjust=true,%
+ basewidth=0.65em,%
+ breakatwhitespace=true,
+ morekeywords=[2]{@length},
+ keywordstyle=[2]\color{red!50!black}\bfseries,
+ morekeywords={outerlinewidth,leftmargin,rightmargin,backgroundcolor,
+ outerlinecolor,innertopmargin,splittopskip,skipbelow,
+ skipabove,ntheorem,theorem,lemma,mdframed,linecolor,
+ frametitle,infobox,innerlinewidth,roundcorner,leftline,
+ topline,splitbottomskip,middlelinewidth,middlelinecolor,
+ tikzsetting,rightline,bottomline,innerrightmargin,style,
+ linewidth,lem,section,definedstyle,mdfapptodefinestyle,
+ needspace,mdf@globalstyle@cnt,framemethod,ExampleText,
+ titregris,draw,gray,thick,fill,white,shading,exersicetitle,
+ exersicebackground,color,green,black,exercise,exercisepoints,
+ text,rectangle,rounded,corners,right,minimum,height,xshift,
+ at,exercisestyle,settings,frametitlefont,innerbottommargin,
+ innerleftmargin,frametitlerule,frametitlebelowskip,
+ frametitleaboveskip,frametitlebackgroundcolor,
+ frametitlerulecolor,picins,figure,hidealllines,fontcolor,
+ firstextra,secondextra,middleextra,singleextra,overlay,node,
+ pstricksappsetting,apptotikzsetting,frametitlerulewidth,
+ userdefinedwidth,mdfbackground,append,mdfframetitlebackground,
+ left,shade,align,exampledefault},
+ moretexcs={newmdtheoremenv,newmdenv,theoremstyle,mdfsetup,@length,
+ md@putbox@single,@tempboxa,mdf@,mdf@linewidth,
+ mdf@leftmargin@length,interruptlength,setlength,newrobustcmd,
+ overlaplines,appto,md@frame@leftline@singe,color,
+ md@frame@leftline@single,mdf@innerbottommargin@length,
+ mdf@middlelinewidth@length,mdfboundingboxheight,
+ md@frame@rightline@single,mdfboundingboxwidth,
+ mdf@innerrightmargin@length,mdfdefinestyle,
+ mdfapptodefinestyle,defcounter,tikzstyle,
+ pgfdeclarehorizontalshading,theexercise,mdf@@exercisepoints,
+ define@key,renewrobustcmd,mdfcreateextratikz,node,ifdefempty,
+ mdf@frametitlefont,dimexpr,mdframedtitleenv,ifstrempty,
+ @undefined,mdtheorem,surroundwithmdframed,@captype,@dblarg,
+ @newcaption,newcaption,mdflength,tikzset,path,p1,p2,
+ IfFileExists,includegraphics,mdfsubtitle,lipsum,kant,%
+ Examplesec,%
+ },%
+}
+
+
+\lstnewenvironment{tltxmdfexample}[1][]
+ {\lstset{style=lstltxmdf,#1}}%
+ {}
+
+\def\mdf@sampleInput#1{%
+ \MakePercentComment\catcode`\^^M=10\relax%
+ {\setkeys{lst}{SelectCharTable=\lst@ReplaceInput{\^\^I}%
+ {\lst@ProcessTabulator}}%
+ \leavevmode \input{#1}}\MakePercentIgnore}
+\def\highlightinputenv{flushleft}
+\lstnewenvironment{tltxmdfexample*}[1][]%
+ {%
+ \begingroup%
+ \lstset{style=lstltxmdf,#1}%
+ \setbox\@tempboxa\hbox\bgroup
+ \lst@BeginWriteFile{\jobname.tmp}%
+ }%
+ {
+ \lst@EndWriteFile\egroup%
+ \begin{\highlightinputenv}
+ \lstinputlisting{\jobname.tmp}%
+ \end{\highlightinputenv}
+ \mdf@sampleInput{\jobname.tmp}%
+ \endgroup%
+ }
+
+
+\lstnewenvironment{exltxmdfexample}[1][]
+ {\lstset{style=lstltxmdf,#1}}%
+ {}
+
+
+\lstMakeShortInline[basicstyle=\small\ttfamily\color{blue!60!black}]{|}
+\def\macro#1{%
+ \MakePrivateLetters
+ \topsep\MacroTopsep \trivlist
+ \edef\saved@macroname{#1}%
+ \def\makelabel##1{\makebox[0pt][l]{\kern-2em ##1}}%
+ \if@inlabel
+ \let\@tempa\@empty \count@\macro@cnt
+ \loop \ifnum\count@>\z@
+ \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat
+ \edef\makelabel##1{\llap{\vtop to\baselineskip
+ {\@tempa\hbox{##1}\vss}}}%
+ \advance \macro@cnt \@ne
+ \else \macro@cnt\@ne \fi
+ \toks@={\@gobble}%
+ \@for\next:=#1\do
+ {\toks@=\expandafter{\the\expandafter\toks@%
+ \expandafter\\%
+ \expandafter\PrintMacroName\expandafter{\next}}}%
+ \item[\fbox{\begin{tabular}{@{\textbackslash}>{}l}
+ \the\toks@
+ \end{tabular}}]%
+ \leavevmode\par\kern\MacroTopsep\noindent\ignorespaces
+ \global\advance\c@CodelineNo\@ne
+ \@for\next:=#1\do
+ {%
+ \expandafter\SpecialMainIndex\expandafter{\next}\nobreak
+ \expandafter\DoNotIndex\expandafter{\next}}%
+ \global\advance\c@CodelineNo\m@ne
+ \ignorespaces}
+
+
+\def\SpecialOptIndex#1{\@bsphack
+ \index{#1\actualchar{\protect\ttfamily#1}
+ (option)\encapchar usage}%
+ \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar
+ usage}\@esphack}
+
+
+
+%%NOT IN INDEX
+%@
+\DoNotIndex{\@captype,\@endparenv,\@endparpenalty,\@endpetrue,\@floatpenalty,
+ \@footnotetext,\@ifnextchar,\@undefined,\@tempboxa,\@M,\@empty,
+ \@height,\@mpfn,\@mpfootins,\@mpfootnotetext,\@nil,\@plus,\@width,
+ \@afterheading,\@afterindentfalse,\@firstoftwo,\@gobble,
+ \@ifpackageloaded,\@nobreaktrue,\@nobreakfalse,\@secondoftwo,
+ \@tempa,\@tempdima}
+%A
+\DoNotIndex{\addpenalty,\addvspace,\advance,\afterassignment,
+ \AfterEndEnvironment,\appto}
+%B
+\DoNotIndex{\baselineskip,\begin,\boolfalse,\begingroup,\box,
+ \BeforeBeginEnvironment,\bfseries,\bgroup,\boxmaxdepth}
+%C
+\DoNotIndex{\color@endgroup,\color@setgroup,\columnwidth,\csdef,\c@mpfootnote,
+ \csname,\clip,\color,\color@begingroup,\coordinate,\csappta,\csuse,
+ \csxdef,\Currentoption}
+%D
+\DoNotIndex{\dimexpr,\DeclareBoolOption,\DeclareListParser,\def,\define@key,
+ \dimen@,\dimen@i,\dp,\deflength,\DeclareDefaultOption,\defcounter,
+ \DisableKeyvaloption}
+%E
+\DoNotIndex{\eject,\end,\endtrivlist,\edef,\endcsname,\endinput
+ \expandafter,\endgroup,\egroup,\enlargethispage}
+%F
+\DoNotIndex{\fwd@reserved@a,\fwd@reserveda,\fill,\forcsvlist}
+%G
+\DoNotIndex{\gdef}
+%H
+\DoNotIndex{\hbox,\height,\hrule,\hsize,\hspace,\ht,\hb@xt@,\hss}
+%I
+\DoNotIndex{\if@minipage,\if@twocolumn,\if@twoside,\ifbool,\ifdim,\ifdimequal,
+ \ifdimgreater,\ifdimless,\iffwd@footnoteinside,\ifinner,\ifnum,
+ \ifodd,\ifblank,\ifboolexpr,\ifcase,\ifcsundef,\IfFileExists,
+ \ifnumequal,\ifstrequal,\iftoggle,\ifundef,\input,
+ \kernel@ifnextchar,\ifvoid,\ifx,\item}
+%J
+\DoNotIndex{}
+%K
+\DoNotIndex{\kern}
+%L
+\DoNotIndex{\leftline,\let,\linewidth,\lrbox,\large,\letcs,\listadd,\llap,
+ \lowercase}
+%M
+\DoNotIndex{\maxdimen,\medskipamount,\MessageBreak,\makebox}
+%N
+\DoNotIndex{\NeedsTeXFormat,\newcounter,\newlength,\newrobustcmd,\nobreak,
+ \normalcolor,\number,\newbool,\newcommand,\newenvironment,
+ \newtheorem,\newtoggle,\node,\noindent,\notblank,\notbool,\null,
+ \newpsstyle,\next}
+%O
+\DoNotIndex{\or}
+%P
+\DoNotIndex{\p@,\PackageInfo,\PackageWarning,\pagegoal,\pagetotal,\partopsep,
+ \patchcmd,\penalty,\ProcessKeyvalOptions,\ProvidesPackage,
+ \providecommand,\path,\protected@edef,\ProvidesFile,\psframe,
+ \psline,\psset,\pst@number,\psxunit,\par,\parfillskip,\parindent,
+ \PassOptionsToPackage,\pgfmathsetlengthmacro}
+%Q
+\DoNotIndex{}
+%R
+\DoNotIndex{\relax,\RequirePackage,\raggedright,\renewcommand,\rlap,\rput,\rule}
+%S
+\DoNotIndex{\setbox,\setkeys,\setlength,\SetupKeyvalOptions,\splitmaxdepth,
+ \splittopskip,\stepcounter,\strutbox,\setbool,\settoggle,\space,
+ \string}
+%T
+\DoNotIndex{\textwidth,\the,\thempfn,\thempfootnote,\topsep,\trivlist,\tw@,
+ \tikzset}
+%U
+\DoNotIndex{\unskip,\unvbox}
+%V
+\DoNotIndex{\value,\vbox,\vfill,\vsize,\vskip,\vsplit,\vspace,\version}
+%W
+\DoNotIndex{\width,\wd}
+%X
+\DoNotIndex{\xifinlist,\xdef,\x}
+%Y
+\DoNotIndex{\y}
+%Z
+\DoNotIndex{\z@,\z@skip,\zref@addprop,\zref@extract,\zref@label,\zref@newprop,
+ \zref@refused,\ZREF@mainlist}
+
+%%%%
+
+\endinput
+%\tex_endinput:D
+
diff --git a/macros/latex/contrib/mdframed/mdframed-example-default.pdf b/macros/latex/contrib/mdframed/mdframed-example-default.pdf
new file mode 100644
index 0000000000..c979090324
--- /dev/null
+++ b/macros/latex/contrib/mdframed/mdframed-example-default.pdf
Binary files differ
diff --git a/macros/latex/contrib/mdframed/mdframed-example-default.tex b/macros/latex/contrib/mdframed/mdframed-example-default.tex
new file mode 100644
index 0000000000..2a2d4156f1
--- /dev/null
+++ b/macros/latex/contrib/mdframed/mdframed-example-default.tex
@@ -0,0 +1,231 @@
+
+\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
diff --git a/macros/latex/contrib/mdframed/mdframed-example-pstricks.pdf b/macros/latex/contrib/mdframed/mdframed-example-pstricks.pdf
new file mode 100644
index 0000000000..4c1ba1ac2d
--- /dev/null
+++ b/macros/latex/contrib/mdframed/mdframed-example-pstricks.pdf
Binary files differ
diff --git a/macros/latex/contrib/mdframed/mdframed-example-pstricks.tex b/macros/latex/contrib/mdframed/mdframed-example-pstricks.tex
new file mode 100644
index 0000000000..e347be7342
--- /dev/null
+++ b/macros/latex/contrib/mdframed/mdframed-example-pstricks.tex
@@ -0,0 +1,146 @@
+
+\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
diff --git a/macros/latex/contrib/mdframed/mdframed-example-texsx.pdf b/macros/latex/contrib/mdframed/mdframed-example-texsx.pdf
new file mode 100644
index 0000000000..3bf9c0ed49
--- /dev/null
+++ b/macros/latex/contrib/mdframed/mdframed-example-texsx.pdf
Binary files differ
diff --git a/macros/latex/contrib/mdframed/mdframed-example-texsx.tex b/macros/latex/contrib/mdframed/mdframed-example-texsx.tex
new file mode 100644
index 0000000000..6f34f23d9a
--- /dev/null
+++ b/macros/latex/contrib/mdframed/mdframed-example-texsx.tex
@@ -0,0 +1,270 @@
+
+
+\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}[<modification>]%
+ \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}]
+\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}]
+\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
diff --git a/macros/latex/contrib/mdframed/mdframed-example-tikz.pdf b/macros/latex/contrib/mdframed/mdframed-example-tikz.pdf
new file mode 100644
index 0000000000..e48aac7e7c
--- /dev/null
+++ b/macros/latex/contrib/mdframed/mdframed-example-tikz.pdf
Binary files differ
diff --git a/macros/latex/contrib/mdframed/mdframed-example-tikz.tex b/macros/latex/contrib/mdframed/mdframed-example-tikz.tex
new file mode 100644
index 0000000000..64462bf143
--- /dev/null
+++ b/macros/latex/contrib/mdframed/mdframed-example-tikz.tex
@@ -0,0 +1,212 @@
+
+\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
+
diff --git a/macros/latex/contrib/mdframed/mdframed.dtx b/macros/latex/contrib/mdframed/mdframed.dtx
new file mode 100644
index 0000000000..f053b814d5
--- /dev/null
+++ b/macros/latex/contrib/mdframed/mdframed.dtx
@@ -0,0 +1,7895 @@
+% \iffalse meta-comment
+% !TEX program = pdfLaTeX
+%<*internal>
+\iffalse
+%</internal>
+%<*readme>
+================================================================
+================================================================
+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
+================================================================
+================================================================
+%</readme>
+%<*internal>
+\fi
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+%</internal>
+%<*install>
+\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
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ _______________
+ | page 1 |
+ | Text |
+ | __Text__ |
+ | | Text | |
+ P A G E B R E A K
+ | | Text | |
+ | |_Text_| |
+ | Text |
+ |____page 2___|
+
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+==================================================
+
+\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{*********************************************************}
+%</install>
+%<install>\endbatchfile
+%<*internal>
+\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
+%</internal>
+%<*driver>
+
+\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}
+%</driver>
+% \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 \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> 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} &
+% \url{mdframed-example-tikz.pdf} \\
+% \url{mdframed-example-pstricks.pdf} &
+% \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
+%<*example>
+% \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
+%</example>
+% \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
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ \usepackage[<GLOBAL OPTIONS>]{mdframed}
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ \begin{mdframed}[<LOCAL OPTIONS>]
+ <CONTENT>
+ \end{mdframed}
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ \newmdenv[<MDFRAMED OPTIONS>]{Name of the environment}
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \fi
+% In this way you can say:
+% \iffalse
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ \newmdenv[linecolor=red,frametitle=Infobox]{infobox}
+
+ \begin{infobox}[backgroundcolor=yellow]
+ Some Infos\ldots
+ \end{infobox}
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ \surroundwithmdframed[linewidth=2pt]{verbatim}
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ The distance is \hspace{\mdflength{innerleftmargin}}
+ \the\mdflength{innerleftmargin}
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \fi
+\begin{tltxmdfexample}[morekeywords={mystyle}]
+ \mdfdefinestyle{mystyle}{leftmargin=1cm,linecolor=blue}
+ \begin{mdframed}[style=mystyle]
+ foo
+ \end{mdframed}
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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}{@{}>{\small\bfseries}l>{\small\ttfamily}l@{}}
+% \toprule
+% \multicolumn{1}{@{}l}{\textbf{Method}} & \multicolumn{1}{l}{Allowed keys}\\
+% \midrule
+% \LaTeX-commands & default, tex, latex, none, 0 \\
+% \Pack{TikZ} & tikz, pgf, 1 \\
+% \Pack{PSTricks} & 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
+%<*example>
+% \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
+%</example>
+% \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}{@{}%
+% >{\Opt\bgroup}l<{\egroup}@{${}={}$}>{\ttfamily}l%
+% @{\qquad}
+% >{\Opt\bgroup}l<{\egroup}@{${}={}$}>{\ttfamily}l%
+% @{}}
+% \hline
+% skipabove & 0pt & skipbelow & 0pt \\
+% leftmargin & 0pt & rightmargin & 0pt \\
+% innerleftmargin & 10pt & innerrightmargin & 10pt \\
+% innertopmargin & 5pt & innerbottommargin & 5pt \\
+% \hline
+% \end{tabular}
+% \end{center}
+% Before the next options are introduced here an example where the described
+% length are used.
+% \iffalse
+%<*example>
+% \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
+%</example>
+% \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}{@{}%
+% >{\Opt\bgroup}l<{\egroup}@{${}={}$}>{\ttfamily}l%
+% @{\qquad}
+% >{\Opt\bgroup}l<{\egroup}@{${}={}$}>{\ttfamily}l%
+% @{\qquad}
+% >{\Opt\bgroup}l<{\egroup}@{${}={}$}>{\ttfamily}l%
+% @{}}
+% \hline
+% linewidth & 0.4pt & innerlinewidth & 0pt &
+% middlelinewidth & 0.4pt \\
+% outerlinewidth & 0pt & roundcorner & 0pt &
+% \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}{@{}%
+% >{\Opt\bgroup}l<{\egroup}@{${}={}$}>{\ttfamily}l%
+% @{\qquad}
+% >{\Opt\bgroup}l<{\egroup}@{${}={}$}>{\ttfamily}l%
+% @{}}
+% \hline
+% linecolor & black & innerlinecolor & black \\
+% middlelinecolor & black & outerlinecolor & black \\
+% backgroundcolor & white & fontcolor & 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
+%<*example>
+% \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
+%</example>
+% \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
+%<*example>
+% \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
+%</example>
+% \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}{@{}%
+% >{\Opt\bgroup}l<{\egroup}@{${}={}$}>{\ttfamily}l%
+% @{\qquad}
+% >{\Opt\bgroup}l<{\egroup}@{${}={}$}>{\ttfamily}l%
+% @{}}
+% \hline
+% topline & true & rightline & true \\
+% leftline & true & bottomline & 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 >=0.2cm]
+% (frametitle.south) -- (frametitle.center)
+% node[pos=0.5,anchor=west]
+% {\Opt{ frametitlebelowskip}};
+% % frametitleaboveskip
+% \draw[very thick,blue!60!black,latex-latex,shorten >=0.2cm]
+% (frametitle.north) -- (frametitle.center)
+% node[pos=0.5,anchor=west] {\Opt{ frametitleaboveskip}};
+% % innertopmargin
+% \draw[very thick,blue!60!black,latex-latex,shorten >=0.2cm]
+% (CenterNode.north) -- (CenterNode.center)
+% node[pos=0.5,anchor=west] {\Opt{ innertopmargin}};
+% % splittopskip
+% \draw[very thick,blue!60!black,latex-latex,shorten >=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
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ \mdfsubtitle[<options>]{the subtitle}
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \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
+%</example>
+% \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
+%<*example>
+% \fi
+\begin{tltxmdfexample}[deletekeywords={mdframed}]
+ \newmdtheoremenv[<mdframed-options>]{<envname>}%
+ [<numberedlike>]{<caption>}[<within>]
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ \theoremstyle{<some style>}
+ \newmdtheoremenv[linecolor=blue]{lemma}{Lemma}[section]
+ ...
+ \begin{lemma}[Some title]
+ foo foo foo foo foo foo
+ \end{lemma}
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \fi
+\begin{tltxmdfexample}[deletekeywords={mdframed}]
+ \mdtheorem[<mdframed-options>]{<envname>}%
+ [<numberedlike>]{<caption>}[<within>]
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \fi
+\begin{tltxmdfexample}[deletekeywords={mdframed}]
+ \begin{environment}[optional title]
+ ...
+ \end{environment}
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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}
+% >> 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
+%
+% >>
+% \end{script}
+%
+% The code for this result is:
+% \iffalse
+%<*example>
+% \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}
+ >> 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
+
+ >>
+ \end{script}
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ The package ... does not exist but
+ needed by mdframed
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \fi
+% To avoid this problem you should install the required
+% packages which are listed in section \ref{sec:syntax}.
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ package option style is depreciated
+ use framemethod instead style
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ Unknown framemethod .... mdframed
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \fi
+% The input string for the option \Opt{framemethod} is unkown. See section
+% \ref{globopt}.
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ You have not loaded ntheorem yet
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \fi
+% To use the option \Opt{ntheorem} you have to
+% load the package \Pack{ntheorem}.
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ You have only a width of 3cm
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \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
+%</example>
+% \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
+%<*example>
+% \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
+%</example>
+% \fi
+% See the explanation above.
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ You got a bad break
+ because the last split box is empty
+ You have to change the settings
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \fi
+% The same reason as above but only in the last box.
+%
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ Option ... is already consumed
+ and has no effect on input line ...
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \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
+%</example>
+% \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}} &
+% \mybox{\Cmd{mdf@putbox@single}} \\
+% \mybox{split \textbackslash mdf@splitbox@one in \Cmd{mdf@splitbox@two} to
+% the free space of the page} &
+% \mybox{\Cmd{mdf@putbox@first}} \\
+% \mybox{contents of \Cmd{mdf@splitbox@one} have enough space on the new
+% page} &
+% \mybox{\Cmd{mdf@putbox@second}} \\
+% \mybox{split \Cmd{mdf@splitbox@one} in \Cmd{mdf@splitbox@two} to the free
+% space of the page} &
+% \mybox{\Cmd{mdf@putbox@middle}} \\
+% };
+%
+% \tikzstyle{every path}=[black,-triangle 45,thick,shorten >=4pt,shorten <=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
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ \makeatletter
+ \def\mdf@putbox@single{\box\mdf@splitbox@one}
+ \makeatother
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \fi
+% I am using the command \Cmd{leftline} to start the \enquote{Framecommands} at
+% the left.
+% \iffalse
+%<*example>
+% \fi
+\begin{tltxmdfexample}[deletekeywords={leftline},moretexcs={leftline}]
+ \makeatletter
+ \def\mdf@putbox@single{\leftline{\box\mdf@splitbox@one}}
+ \makeatother
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \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
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ \mdf@<Name of the Length>@length
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \fi
+% For example the leftmargin is:
+% \iffalse
+%<*example>
+% \fi
+\begin{tltxmdfexample}
+ \mdf@leftmargin@length
+\end{tltxmdfexample}
+% \iffalse
+%</example>
+% \fi
+%
+% To create only a line at the left with the correct \Opt{leftmargin} you
+% can set \Cmd{mdf@putboxsingle} as follows
+%
+% \iffalse
+%<*example>
+% \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
+%</example>
+% \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}
+%<*package>
+% \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{<Input>}{<length>}{<no length>}|
+% \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@<option name>@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@<option name>
+\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@<option name>
+\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<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>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 >\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>\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>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>%
+ \mdf@freevspace@length\relax
+ \advance\dimen@i by -\p@\relax%
+ \advance\@tempcnta by \@ne\relax%
+ \ifnum\@tempcnta>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}
+%</package>
+% \end{macrocode}
+%\fi
+%
+%\iffalse
+% \begin{macrocode}
+%<*mdframedefault>
+% \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
+%</mdframedefault>
+% \fi
+%
+%
+%\iffalse
+% \begin{macrocode}
+%<*mdframetikz>
+% \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>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>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>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
+%</mdframetikz>
+% \fi
+%
+%
+%\iffalse
+% \begin{macrocode}
+%<*mdframepstricks>
+% \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
+%</mdframepstricks>
+% \fi
+%
+%
+%
+%\iffalse
+% \begin{macrocode}
+%<*mdframed-example-default>
+% \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}
+%</mdframed-example-default>
+% \end{macrocode}
+%\fi
+%
+%\iffalse
+% \begin{macrocode}
+%<*mdframed-example-tikz>
+% \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}
+%</mdframed-example-tikz>
+% \end{macrocode}
+%\fi
+%
+%\iffalse
+% \begin{macrocode}
+%<*mdframed-example-pstricks>
+% \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}
+%</mdframed-example-pstricks>
+% \end{macrocode}
+%\fi
+%
+%\iffalse
+% \begin{macrocode}
+%<*mdframed-example-texsx>
+% \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}[<modification>]%
+ \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}
+%</mdframed-example-texsx>
+% \end{macrocode}
+%\fi
+%
+%
+%
+% \Finale
+%
+\endinput
+
+
diff --git a/macros/latex/contrib/mdframed/mdframed.ins b/macros/latex/contrib/mdframed/mdframed.ins
new file mode 100644
index 0000000000..3724fdbdeb
--- /dev/null
+++ b/macros/latex/contrib/mdframed/mdframed.ins
@@ -0,0 +1,100 @@
+\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
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ _______________
+ | page 1 |
+ | Text |
+ | __Text__ |
+ | | Text | |
+ P A G E B R E A K
+ | | Text | |
+ | |_Text_| |
+ | Text |
+ |____page 2___|
+
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+==================================================
+
+\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{*********************************************************}
+\endbatchfile
+
diff --git a/macros/latex/contrib/mdframed/mdframed.pdf b/macros/latex/contrib/mdframed/mdframed.pdf
new file mode 100644
index 0000000000..c7974c9153
--- /dev/null
+++ b/macros/latex/contrib/mdframed/mdframed.pdf
Binary files differ
diff --git a/macros/latex/contrib/mdframed/mdframedmake.bat b/macros/latex/contrib/mdframed/mdframedmake.bat
new file mode 100644
index 0000000000..0025945b1d
--- /dev/null
+++ b/macros/latex/contrib/mdframed/mdframedmake.bat
@@ -0,0 +1,117 @@
+::################################################################
+::## Makefile for mdframed project folder (WINDOWS)
+::##
+::## $Id: mdframedmake.bat 427 2012-06-06 12:24:09Z marco $
+::################################################################
+@echo off
+title Compiling mdframed.dtx (Windows)
+::
+:: You can use a prompt to call a special mode of this file.
+:: mdframedmake all -- standard mode, run docsty examples clean
+:: mdframedmake docsty -- typesets the documentation and the package
+:: mdframemdmake examples -- all example files
+:: mdframedmake clean -- remove all helpfiles created by mdframed
+::
+set mode=all
+for %%I in (d docsty) do (if /I %%Ix equ %1x set mode=docsty)
+for %%I in (e examples) do (if /I %%Ix equ %1x set mode=examples)
+for %%I in (cx cleanx) do (if /I %%I equ %1x set mode=clean)
+::
+call:%mode%
+echo.
+echo Finished
+echo.
+pause
+goto:eof
+::
+::############################
+::## Subroutines
+::############################
+::
+:all
+call:docsty mdframed
+call:examples
+call:clean
+goto:eof
+::
+:docsty
+ echo.
+ echo Typesetting %1.dtx
+ pdflatex --draftmode --interaction=nonstopmode %1.dtx >NUL
+ if not errorlevel 1 (
+ echo comipilation in draftmode without errors
+ if exist %1.glo (
+ makeindex -q -t %1.glolog -s gglo.ist -o %1.gls %1.glo >NUL
+ if not errorlevel 1 (
+ echo compiliation of glossar without errors
+ ) else (
+ echo compilation of glossar with errors
+ )
+ )
+ if exist %1.idx (
+ makeindex -q -t %1.idxlog -s gind.ist %1.idx >NUL
+ if not errorlevel 1 (
+ echo compiliation of index without errors
+ ) else (
+ echo compilation of index with errors
+ )
+ )
+ pdflatex --interaction=nonstopmode %1.dtx >NUL
+ if not errorlevel 1 (
+ echo Second pdflatex compiliation without errors
+ pdflatex --interaction=nonstopmode %1.dtx >NUL
+ ) else (
+ echo Second pdflatex compiliation with errors
+ )
+ ) else (
+ echo compilation in draftmode with errors
+ )
+ goto:eof
+::
+:examples
+call:pdf mdframed-example-default
+call:pdf mdframed-example-tikz
+call:ps mdframed-example-pstricks
+call:pdf mdframed-example-texsx
+goto:eof
+::
+:pdf
+ echo.
+ echo Typesetting %1
+ pdflatex --draftmode --interaction=nonstopmode %1.tex >NUL
+ if not errorlevel 1 (
+ echo compilation in draftmode without errors
+ echo Run pdflatex again on %1.tex
+ pdflatex --interaction=nonstopmode %1.tex >NUL
+ echo Typesetting %1 finished
+ ) else (
+ echo compilation in draftmode with errors)
+goto:eof
+::
+:ps
+ echo.
+ echo Typesetting %1
+ latex -draftmode -interaction=nonstopmode %1.tex >NUL
+ if not errorlevel 1 (
+ echo compilation in draftmode without errors
+ echo Run LaTeX again on %1.tex
+ latex -interaction=nonstopmode %1.tex >NUL
+ dvips -q %1.dvi
+ call ps2pdf %1.ps
+ echo Typesetting %1 finished
+ ) else (
+ echo compilation in draftmode with errors)
+ goto:eof
+::
+:clean
+ echo.
+ echo Removing help files
+ ::
+ for %%I in (aux dtxe dvi glo glolog gls hd ins idx idxlog ilg ind log out ps thm tmp toc xdv) do (
+ if exist mdframed.%%I del mdframed.%%I
+ for %%J in (default tikz pstricks texsx) do (
+ if exist mdframed-example-%%J.%%I del mdframed-example-%%J.%%I
+ )
+ )
+ echo Removing finished
+ goto:eof