summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/mdframed
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-01-08 23:48:38 +0000
committerKarl Berry <karl@freefriends.org>2012-01-08 23:48:38 +0000
commit94249602eec639469e2a964a821eaf4e04ccf322 (patch)
treedc88b7c2150463d5c947d38fb2832d86f301b92f /Master/texmf-dist/source/latex/mdframed
parent8ddb27d0f1bb31de2e06ebf7871975b19118d1fe (diff)
mdframed (8jan12)
git-svn-id: svn://tug.org/texlive/trunk@25052 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/mdframed')
-rw-r--r--Master/texmf-dist/source/latex/mdframed/mdframed-examples.dtx923
-rw-r--r--Master/texmf-dist/source/latex/mdframed/mdframed.dtx4942
2 files changed, 3351 insertions, 2514 deletions
diff --git a/Master/texmf-dist/source/latex/mdframed/mdframed-examples.dtx b/Master/texmf-dist/source/latex/mdframed/mdframed-examples.dtx
deleted file mode 100644
index 5ca2c62ccef..00000000000
--- a/Master/texmf-dist/source/latex/mdframed/mdframed-examples.dtx
+++ /dev/null
@@ -1,923 +0,0 @@
-% \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 (!new)
-License type: lppl
-
-================================================================
-%</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
-\endpreamble
-\postamble
-
-================================================================
-Copyright (C) 2011 by Marco Daniel
-
-This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License (LPPL), either
-version 1.3c of this license or (at your option) any later
-version. The latest version of this license is in the file:
-
-http://www.latex-project.org/lppl.txt
-
-This work is "maintained" (as per LPPL maintenance status) by
-Marco Daniel.
-
-Have fun!
-
-================================================================
-\endpostamble
-\usedir{doc/latex/mdframed}
-\generate{\file{mdframed-example-default.tex}{\from{mdframed-examples.dtx}{mdframed-example-default}}}
-\generate{\file{mdframed-example-tikz.tex}{\from{mdframed-examples.dtx}{mdframed-example-tikz}}}
-\generate{\file{mdframed-example-pstricks.tex}{\from{mdframed-examples.dtx}{mdframed-example-pstricks}}}
-\generate{\file{mdframed-example-texsx.tex}{\from{mdframed-examples.dtx}{mdframed-example-texsx}}}
-\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 documentation.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. Finally, run LaTeX once again.}
-\Msg{* That's all!}
-\Msg{*}
-\Msg{* Happy TeXing!}
-\Msg{*********************************************************}
-%</install>
-%<install>\endbatchfile
-%<*internal>
-\ifx\fmtname\nameofplainTeX
- \expandafter\endbatchfile
-\else
- \expandafter\endgroup
-\fi
-%</internal>
-%<*driver>
-%%$Id: mdframed-examples.dtx 270 2011-12-09 12:19:09Z marco $
-\documentclass[parskip=false,11pt,]{ltxmdf}
-\usepackage{mdframed}
-\ltxmdfsetifoot $Id: mdframed-examples.dtx 270 2011-12-09 12:19:09Z marco $
-\CodelineIndex
-\RecordChanges
-\begin{document}
- \DocInput{\jobname.dtx}
-\end{document}
-%</driver>
-% \fi
-%
-% \CheckSum{717}
-%
-% \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-examples}
-%
-%
-%
-% \title{Examples of the \Pack{mdframed} package}
-% \subtitle{auto-split frame environment}
-% \author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}%
-% \footnote{With thanks to Heiko Oberdiek, Rolf Niepraschk,
-% Martin Scharrer and Herbert Voss.\newline Sorry for bad English.}
-% \href{mailto:marco.daniel@mada-nada.de}{Elke Schubert}}
-% \version{\mdversion}
-% \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
-% The dtx-file creates only the files \begin{tabular}[t]{ll}
-% \texttt{mdframed-example-default.tex} &
-% \texttt{mdframed-example-tikz.tex} \\
-% \texttt{mdframed-example-pstricks.tex} &
-% \texttt{mdframed-example-texsx.tex}
-% \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
-%
-%
-% \section{Motivation}
-% To complie the files use |Makefile| with |make EXAMPLES|.
-%\StopEventually{^^A
-% \PrintChanges^^A
-%}
-%\iffalse
-% \begin{macrocode}
-%<*mdframed-example-default>
-% \end{macrocode}
-%\fi
-%
-% \section{The file mdframed-example-default}
-
-% \begin{macrocode}
-%Documenation of the package mdframed
-%%$Id: mdframed-examples.dtx 270 2011-12-09 12:19:09Z marco $
-\setcounter{errorcontextlines}{999}
-\documentclass[parskip=false,english,11pt]{ltxmdf}
-\ltxmdfsetifoot $Id: mdframed-examples.dtx 270 2011-12-09 12:19:09Z marco $
-
-\usepackage{showexpl}
-\lstset{style=lstltxmdf,explpreset={pos=b,rframe={}},}
-
-\newcommand\Loadedframemethod{default}
-\usepackage[framemethod=\Loadedframemethod]{mdframed}
-
-\title{The \Pack{mdframed} package}
-\subtitle{Examples for \Opt{framemethod=\Loadedframemethod}}
-\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}}
-\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 the package \Pack{showexpl}.}
-
-\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{LTXexample}
-\global\mdfdefinestyle{exampledefault}{%
- linecolor=red,linewidth=3pt,%
- leftmargin=1cm,rightmargin=1cm
-}
-\begin{mdframed}[style=exampledefault]
-\ExampleText
-\end{mdframed}
-\end{LTXexample}
-
-\Examplesec{hidden line + frame title}
-\begin{LTXexample}
-\global\mdfapptodefinestyle{exampledefault}{%
- topline=false,rightline=true,bottomline=false}
-\begin{mdframed}[style=exampledefault,frametitle={Inhomogeneous linear}]
-\ExampleText
-\end{mdframed}
-\end{LTXexample}
-\clearpage
-
-\Examplesec{colored frame title}
-\begin{LTXexample}
-\renewcommand\mdframedtitleenv[1]{%
- \colorbox{green}{%
- \parbox{\dimexpr\linewidth-6pt\relax}%6pt=linewidth
- {\centering\bfseries #1}}%
- \par\kern.5\baselineskip\noindent%
- }
-\global\mdfapptodefinestyle{exampledefault}{%
- rightline=true,innerleftmargin=0,innerrightmargin=0}
-\begin{mdframed}[style=exampledefault,frametitle={Inhomogeneous linear}]
-\ExampleText
-\end{mdframed}
-\end{LTXexample}
-
-\Examplesec{framed picture which is centered}
-\begin{LTXexample}
-\begin{mdframed}[userdefinedwidth=6cm,align=center,
- linecolor=blue,linewidth=4pt]
-\includegraphics[width=\linewidth]{donald-duck}
-\end{mdframed}
-\end{LTXexample}
-
-\Examplesec{theorem with separate header and the help of TikZ (complex)}
-\begin{tltxmdfexample}
-\makeatletter
-\newcounter{theo}[section]
-\newcommand*\newmdframedtitleenv[1]{%
- \@afterindentfalse
- {\parindent \z@
- \setlength{\parfillskip}{\z@ plus 1fil}%
- \mdraggedtitle\nobreak%
- \makebox[\linewidth][l]{%
- \hspace*{-1\mdf@innerleftmargin@length}%
- \rlap{\color{white}%
- \hspace*{-1\mdf@middlelinewidth@length}%
- \rule[\mdf@middlelinewidth@length]%
- {\dimexpr\linewidth+1\mdf@innerleftmargin@length%
- +\mdf@innerrightmargin@length
- +2\mdf@middlelinewidth@length\relax}%
- {\dimexpr\ht\strutbox+.3333em\relax}%
- }%
- \rlap{\color{blue!20}%
- \rule{\dimexpr\linewidth+\mdf@innerleftmargin@length%
- +\mdf@innerrightmargin@length\relax}%
- {\mdf@middlelinewidth@length}}%
- \hspace*{-1\mdf@middlelinewidth@length}%
- \tikz[remember picture,baseline]%
- \node[,draw = none, text = black,fill = blue!20,]%
- {\mdf@frametitlefont\strut Theorem~\thetheo#1};\relax%
- }%
- \par\kern.5\baselineskip}%
- \@afterheading}
-\newenvironment{theo}[1][]{%
- \let\mdframedtitleenv\newmdframedtitleenv%
- \stepcounter{theo}%
- \ifstrempty{#1}%
- {\mdfsetup{frametitle={\strut}}}%
- {\mdfsetup{frametitle={:~#1}}}%
- \begin{mdframed}[innertopmargin=0pt,linecolor=blue!20,%
- linewidth=2pt,topline=false,]%
- }{\end{mdframed}}
-\begin{theo}[Inhomogeneous Linear]
-\ExampleText
-\end{theo}
-
-\begin{theo}
-\ExampleText
-\end{theo}
-\end{tltxmdfexample}
-\makeatletter
-\newcounter{theo}[section]
-\newcommand*\newmdframedtitleenv[1]{%
- \@afterindentfalse
- {\parindent \z@
- \setlength{\parfillskip}{\z@ plus 1fil}%
- \mdraggedtitle\nobreak%
- \makebox[\linewidth][l]{%
- \hspace*{-1\mdf@innerleftmargin@length}%
- \rlap{\color{white}%
- \hspace*{-1\mdf@middlelinewidth@length}%
- \rule[\mdf@middlelinewidth@length]%
- {\dimexpr\linewidth+1\mdf@innerleftmargin@length%
- +\mdf@innerrightmargin@length
- +2\mdf@middlelinewidth@length\relax}%
- {\dimexpr\ht\strutbox+.3333em\relax}%
- }%
- \rlap{\color{blue!20}%
- \rule{\dimexpr\linewidth+\mdf@innerleftmargin@length%
- +\mdf@innerrightmargin@length\relax}%
- {\mdf@middlelinewidth@length}}%
- \hspace*{-1\mdf@middlelinewidth@length}%
- \tikz[remember picture,baseline]%
- \node[,draw = none, text = black,fill = blue!20,]%
- {\mdf@frametitlefont\strut Theorem~\thetheo#1};\relax%
- }%
- \par\kern.5\baselineskip}%
- \@afterheading}
-\newenvironment{theo}[1][]{%
- \let\mdframedtitleenv\newmdframedtitleenv%
- \stepcounter{theo}%
- \ifstrempty{#1}%
- {\mdfsetup{frametitle={\strut}}}%
- {\mdfsetup{frametitle={:~#1}}}%
- \begin{mdframed}[innertopmargin=0pt,linecolor=blue!20,%
- linewidth=2pt,topline=false,]%
- }{\end{mdframed}}
-
-\begin{theo}[Inhomogeneous Linear]
-\ExampleText
-\end{theo}
-
-\begin{theo}
-\ExampleText
-\end{theo}
-
-\clearpage
-\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-that-stay-with-theorem-environment}{Theorem decorations that stay with theorem environment}
-\begin{LTXexample}
-\makeatletter
-\newlength{\interruptlength}
-\setlength{\interruptlength}{2.5ex}
-\newrobustcmd\overlaplines{%
- \appto\md@frame@leftline@single{%
- \llap{\color{white}%
- \rule[\dimexpr-\mdfboundingboxdepth%
- \ifbool{mdf@bottomline}{-\mdf@middlelinewidth@length}{}%
- +\interruptlength\relax]%
- {\mdf@middlelinewidth@length}%
- {\dimexpr\mdfboundingboxtotalheight%
- +\ifbool{mdf@bottomline}{\mdf@middlelinewidth@length}{0pt}
- +\ifbool{mdf@topline}{\mdf@middlelinewidth@length}{0pt}%
- -2\interruptlength\relax}%
- }%
- }%
- \appto\md@frame@rightline@single{%
- \rlap{\color{white}%
- \hspace*{\mdfboundingboxwidth}%
- \hspace*{\mdf@innerrightmargin@length}%
- \rule[\dimexpr-\mdfboundingboxdepth%
- \ifbool{mdf@bottomline}{-\mdf@middlelinewidth@length}{}
- +\interruptlength\relax]%
- {\mdf@middlelinewidth@length}%
- {\dimexpr\mdfboundingboxtotalheight%
- +\ifbool{mdf@bottomline}{\mdf@middlelinewidth@length}{0pt}%
- +\ifbool{mdf@topline}{\mdf@middlelinewidth@length}{0pt}
- -2\interruptlength\relax}%
- }%
- }
-}
-\makeatother
-\overlaplines
-
-\begin{mdframed}[linecolor=blue,linewidth=8pt]
-\ExampleText
-\end{mdframed}
-\end{LTXexample}
-\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
-%%$Id: mdframed-examples.dtx 270 2011-12-09 12:19:09Z marco $
-\setcounter{errorcontextlines}{999}
-\documentclass[parskip=false,english,11pt]{ltxmdf}
-\ltxmdfsetifoot $Id: mdframed-examples.dtx 270 2011-12-09 12:19:09Z marco $
-
-\usepackage{showexpl}
-\lstset{style=lstltxmdf,explpreset={pos=b,rframe={}},}
-
-\newcommand\Loadedframemethod{TikZ}
-\usepackage[framemethod=\Loadedframemethod]{mdframed}
-
-\title{The \Pack{mdframed} package}
-\subtitle{Examples for \Opt{framemethod=\Loadedframemethod}}
-\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}}
-\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 the package \Pack{showexpl}.}
-
-\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
-\ExampleText{round corner}
-\begin{LTXexample}
-\global\mdfdefinestyle{exampledefault}{%
- outerlinewidth=5pt,innerlinewidth=0pt,
- outerlinecolor=red,roundcorner=5pt
-}
-\begin{mdframed}[style=exampledefault]
-\ExampleText
-\end{mdframed}
-\end{LTXexample}
-
-\Examplesec{hidden line + frame title}
-\begin{LTXexample}
-\global\mdfapptodefinestyle{exampledefault}{%
- topline=false,leftline=false,}
-\begin{mdframed}[style=exampledefault,frametitle={Inhomogeneous linear}]
-\ExampleText
-\end{mdframed}
-\end{LTXexample}
-\clearpage
-\Examplesec{framed picture which is centered}
-\begin{LTXexample}
-\begin{mdframed}[userdefinedwidth=6cm,align=center,
- linecolor=blue,middlelinewidth=4pt,roundcorner=5pt]
-\includegraphics[width=\linewidth]{donald-duck}
-\end{mdframed}
-\end{LTXexample}
-
-\Examplesec{Gimmick}
-\begin{LTXexample}
-\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{LTXexample}
-
-\Examplesec{complex example with TikZ}
-
-\begin{tltxmdfexample}
-\tikzstyle{titregris} =
- [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{}
-\define@key{mdf}{exercisepoints}{%
- \def\mdf@@exercisepoints{#1}
-}
-\renewrobustcmd\mdfcreateextratikz{%
- \node[titregris,xshift=1cm] at (P-|O) %
- {~\mdf@frametitlefont{\theexercise}~};
- \ifdefempty{\mdf@@exercisepoints}%
- {}%
- {\node[titregris,left,xshift=-1cm] at (P)%
- {~\mdf@frametitlefont{\mdf@@exercisepoints points}~};}%
-}
-\makeatother
-
-\mdfdefinestyle{exercisestyle}{%
- outerlinewidth=1pt,
- innerlinewidth=0pt,
- roundcorner=2pt,
- linecolor=gray,
- tikzsetting={shading = exersicebackground},
- innertopmargin=1.2\baselineskip,
- skipabove={\dimexpr0.5\baselineskip+\topskip\relax},
- needspace=3\baselineskip,
- frametitlefont=\sffamily\bfseries,
- settings={\global\stepcounter{exercise}},
- }
-
-\begin{mdframed}[style=exercisestyle,]
-\ExampleText
-\end{mdframed}
-
-\begin{mdframed}[style=exercisestyle,exercisepoints=10]
-\ExampleText
-\end{mdframed}
-\end{tltxmdfexample}
-
-\tikzstyle{titregris} =
- [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{}
-\define@key{mdf}{exercisepoints}{%
- \def\mdf@@exercisepoints{#1}
-}
-\renewrobustcmd\mdfcreateextratikz{%
- \node[titregris,xshift=1cm] at (P-|O) {~\textbf{\theexercise}~};
- \ifdefempty{\mdf@@exercisepoints}%
- {}%
- {\node[titregris,left,xshift=-1cm] at (P)%
- {~\mdf@frametitlefont{\mdf@@exercisepoints points}~};}%
-}
-\makeatother
-
-\mdfdefinestyle{exercisestyle}{%
- outerlinewidth=1pt,
- innerlinewidth=0pt,
- roundcorner=2pt,
- linecolor=gray,
- tikzsetting={shading = exersicebackground},
- innertopmargin=1.2\baselineskip,
- skipabove={\dimexpr0.5\baselineskip+\topskip\relax},
- needspace=3\baselineskip,
- frametitlefont=\sffamily\bfseries,
- settings={\global\stepcounter{exercise}},
- }
-
-\begin{mdframed}[style=exercisestyle,]
-\ExampleText
-\end{mdframed}
-
-\begin{mdframed}[style=exercisestyle,exercisepoints=10]
-\ExampleText
-\end{mdframed}
-
-\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
-%%$Id: mdframed-examples.dtx 270 2011-12-09 12:19:09Z marco $
-\setcounter{errorcontextlines}{999}
-\documentclass[parskip=false,english,11pt]{ltxmdf}
-\ltxmdfsetifoot$Id: mdframed-examples.dtx 270 2011-12-09 12:19:09Z marco $
-
-
-
-\lstDeleteShortInline{|}
-\newcommand\Loadedframemethod{PSTricks}
-\usepackage[framemethod=\Loadedframemethod]{mdframed}
-
-\usepackage{showexpl}
-\lstset{style=lstltxmdf,explpreset={pos=b,rframe={}},}
-
-
-
-\title{The \Pack{mdframed} package}
-\subtitle{Examples for \Opt{framemethod=\Loadedframemethod}}
-\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}}
-\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 the package \Pack{showexpl}.}
-X
-\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{LTXexample}
-\global\mdfdefinestyle{exampledefault}{%
- linecolor=red,linewidth=3pt,%
- leftmargin=1cm,rightmargin=1cm
-}
-\begin{mdframed}[style=exampledefault,roundcorner=5]
-\ExampleText
-\end{mdframed}
-\end{LTXexample}
-
-\Examplesec{hidden line + frame title}
-\begin{LTXexample}
-\global\mdfapptodefinestyle{exampledefault}{%
- topline=false,rightline=false,bottomline=false}
-\begin{mdframed}[style=exampledefault,frametitle={Inhomogeneous linear}]
-\ExampleText
-\end{mdframed}
-\end{LTXexample}
-
-\clearpage
-
-\Examplesec{Dash Lines}
-\begin{LTXexample}
-\global\mdfdefinestyle{exampledefault}{%
- pstrickssetting={linestyle=dashed,},linecolor=red,linewidth=5pt}
-\begin{mdframed}[style=exampledefault,]
-\ExampleText
-\end{mdframed}
-\end{LTXexample}
-
-\Examplesec{Double Lines}
-\begin{LTXexample}
-\global\mdfdefinestyle{exampledefault}{%
- pstrickssetting={doubleline=true,doublesep=3pt},
- linecolor=red,linewidth=5pt}
-\begin{mdframed}[style=exampledefault,]
-\ExampleText
-\end{mdframed}
-\end{LTXexample}
-\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
-%%$Id: mdframed-examples.dtx 270 2011-12-09 12:19:09Z marco $
-\setcounter{errorcontextlines}{999}
-\documentclass[parskip=false,english,11pt,ltxlipsum]{ltxmdf}
-\ltxmdfsetifoot $Id: mdframed-examples.dtx 270 2011-12-09 12:19:09Z marco $
-
-\usepackage{showexpl}
-\lstset{style=lstltxmdf,explpreset={pos=b,rframe={}},}
-
-\newcommand\Loadedframemethod{default}
-\usepackage[framemethod=\Loadedframemethod]{mdframed}
-
-\title{The \Pack{mdframed} package}
-\subtitle{Examples for \Opt{framemethod=\Loadedframemethod}}
-\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}}
-\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 the package \Pack{showexpl}.}
-
-\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-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}
-
-\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{LTXexample}
-\begin{multicols}{2}
-\lipsum[1]
-\begin{mdframed}
-\ExampleText
-\end{mdframed}
-\lipsum[2]
-\end{multicols}
-\end{LTXexample}
-\clearpage
-\twocolumn[\Examplesec{Working in twocolumn mode}]
-\begin{tltxmdfexample}
-\twocolumn[%
- \Examplesec{Working in
- twocolumn mode}]
-\lipsum[2]
-\begin{mdframed}[%
- leftmargin=10pt,%
- rightmargin=10pt,%
- linecolor=red,
- backgroundcolor=yellow]
-\ExampleText
-\end{mdframed}
-\lipsum[2]
-\end{tltxmdfexample}
-\lipsum[2]\lipsum[2]
-\begin{mdframed}[leftmargin=10pt,%
- rightmargin=10pt,%
- linecolor=red,
- backgroundcolor=yellow]
-\ExampleText
-\end{mdframed}
-\lipsum[2]
-\onecolumn
-\Examplesec{Working inside enumerate}
-\begin{LTXexample}
-Text Text Text Text Text Text Text Text
-\begin{enumerate}
-\item in the following \ldots
- \begin{mdframed}[linecolor=blue,linewidth=2]
- \ExampleText
- \end{mdframed}
-\item \lipsum[2]
-\end{enumerate}
-Text Text Text Text Text Text
-\end{LTXexample}
-\end{document}
- \endinput
-% \end{macrocode}
-%
-%\iffalse
-% \begin{macrocode}
-%</mdframed-example-texsx>
-% \end{macrocode}
-%\fi
-%
-% \Finale
-%
-\endinput
-
diff --git a/Master/texmf-dist/source/latex/mdframed/mdframed.dtx b/Master/texmf-dist/source/latex/mdframed/mdframed.dtx
index 6702f39d28b..53b1a72ab32 100644
--- a/Master/texmf-dist/source/latex/mdframed/mdframed.dtx
+++ b/Master/texmf-dist/source/latex/mdframed/mdframed.dtx
@@ -14,12 +14,21 @@ 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 two dtx files, one Makefile and
-one documentclass. By running the script `make all` you will
+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
@@ -28,7 +37,6 @@ produce the following files:
- md-frame-1.mdf
- md-frame-2.mdf
- md-frame-3.mdf
-- mdframed-examples.pdf
- mdframed-example-default.tex
- mdframed-example-default.pdf
- mdframed-example-tikz.tex
@@ -37,8 +45,6 @@ produce the following files:
- mdframed-example-pstricks.pdf
- mdframed-example-texsx.tex
- mdframed-example-texsx.pdf
-- ltxmdf.cls
-- donald-duck.jpg
I recommend the following installation in your texmf-tree:
@@ -53,13 +59,12 @@ I recommend the following installation in your texmf-tree:
- mdframed-example-pstricks.pdf
- mdframed-example-texsx.tex
- mdframed-example-texsx.pdf
+- donald-duck.jpg
/source/latex/mdframed/
- Makefile
- mdframed.dtx
-- mdframed-examples.dtx
-- donald-duck.jpg
/tex/latex/mdframed
- mdframed.sty
@@ -182,6 +187,15 @@ Have fun!
\nopreamble\nopostamble
\usedir{doc/latex/mdframed}
\generate{\file{README.txt}{\from{mdframed.dtx}{readme}}}
+\nopreamble\nopostamble
+\generate{\file{mdframed-example-default.tex}{\from{mdframed.dtx}{mdframed-example-default}}}
+\nopreamble\nopostamble
+\generate{\file{mdframed-example-tikz.tex}{\from{mdframed.dtx}{mdframed-example-tikz}}}
+\nopreamble\nopostamble
+\generate{\file{mdframed-example-pstricks.tex}{\from{mdframed.dtx}{mdframed-example-pstricks}}}
+\nopreamble\nopostamble
+\generate{\file{mdframed-example-texsx.tex}{\from{mdframed.dtx}{mdframed-example-texsx}}}
+
\ifx\fmtname\nameofplainTeX
\expandafter\endbatchfile
\else
@@ -189,11 +203,11 @@ Have fun!
\fi
%</internal>
%<*driver>
-%%$Id: mdframed.dtx 273 2011-12-10 09:21:09Z marco $
+%%$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
\setcounter{errorcontextlines}{999}
\documentclass[parskip=false,11pt,]{ltxmdf}
\usepackage[framemethod=TikZ]{mdframed}
-\ltxmdfsetifoot$Id: mdframed.dtx 273 2011-12-10 09:21:09Z marco $
+\ltxmdfsetifoot$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
\EnableCrossrefs
\CodelineIndex
@@ -204,7 +218,7 @@ Have fun!
%</driver>
% \fi
%
-% \CheckSum{3517}
+% CheckSum{3517}
%
% \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
@@ -225,39 +239,48 @@ Have fun!
% \GetFileInfo{mdframed.sty}
%
% \changes{v1.0a}{2011/11/26}{Created dtx and fixes bugs}
+% \changes{v1.1beta}{2012/01/02}{Renamed some commands so that every command have the same prefix \protect\Cmd{mdf@}}
%
-% \title{The \Pack{mdframed} package\footnote{Extending the package \texttt{framed.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}%
-% \footnote{With thanks to Heiko Oberdiek, Rolf Niepraschk,
-% Martin Scharrer and Herbert Voss.\newline Sorry for bad English.}
-% \href{mailto:marco.daniel@mada-nada.de}{Elke Schubert}}}
+% \href{mailto:marco.daniel@mada-nada.de}{Elke Schubert}}}
% \version{\mdversion}
-% \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.}
+% \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.
+% 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.
%
%
-% %\newtheorem{mdtheorem}{Theorem}[section]
% \newmdtheoremenv[outerlinewidth=2,leftmargin=40,rightmargin=40,%
% backgroundcolor=yellow,outerlinecolor=blue,innertopmargin=0pt,%
% splittopskip=\topskip,skipbelow=\baselineskip,%
@@ -292,20 +315,38 @@ Have fun!
%
%
% \section{Syntax}\label{sec:syntax}
-% The package itself loads the packages \Pack{kvoptions}, \Pack{etoolbox} and \Pack{color}.
-% By setting the correct options \Pack{mdframed} will load \Pack{xcolor}, \Pack{tikz} or \Pack{pstricks}.
+%
+% \minisec{Loadings \Pack{mdframed}}
+% The package itself loads the packages
+% \begin{itemize}
+% \item \Pack{kvoptions},
+% \item \Pack{xparse} (new),
+% \item \Pack{etoolbox} and
+% \item \Pack{color}.
+% \end{itemize}
+% Depending on the options \Pack{mdframed} will load
+% \begin{itemize}
+% \item \Pack{xcolor},
+% \item \Pack{tikz} or
+% \item \Pack{pstricks}.
+% \end{itemize}
%
% Load the package as usual:
% \iffalse
%<*example>
% \fi
\begin{tltxmdfexample}
-% \usepackage[<GLOBAL OPTIONS>]{mdframed}
+ \usepackage[<GLOBAL OPTIONS>]{mdframed}
\end{tltxmdfexample}
% \iffalse
%</example>
% \fi
%
+% Only the option \Opt{framemethod} should be load by the
+% optional argument of \Cmd{usepackage}. All other options
+% should be loaded with \Cmd{mdfsetup} or related environments.
+% The package should be loaed after \Pack{amsthm} if you need the package.
+% \minisec{Provided environment}
% The package defines only one environment with the following syntax:
% \iffalse
%<*example>
@@ -321,12 +362,104 @@ Have fun!
% To create own environments with \Pack{mdframed} see section \ref{sec:cmds}.
%
% \minisec{Autodetecting floats}
-% I added a detection of \Pack{float} or \Pack{minipage} environments. If you use \Pack{mdframed} in such an environment \Pack{mdframed} will use the option \Opt{nobreak} automaticly.
+% \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.
%
% \minisec{Twoside-mode}
-% When you are using \Pack{mdframed} inside \Pack{twoside} mode you can set the option \Opt{innermargin}
-% and \Opt{outermargin} (see section \ref{optlength}).
+% If you are using \Pack{mdframed} inside \Pack{twoside} mode you can set
+% the option \Opt{innermargin} and \Opt{outermargin} (see section \ref{optlength}).
+% The length will be ignored if you use the option \Opt{usetwoside}.
+%
+%
+% %%%%%%%%%%%%%%%%%%%%%%%
+% \section{The frames}\label{sec:cmds}
+%
+% 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 box 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{2\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,25mm)
+% {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}
@@ -355,45 +488,57 @@ Have fun!
% \iffalse
%</example>
% \fi
-% \ExplCmd{renewmdenv} By using this command you can redefine environments which are created by \Cmd{newmdenv}.
-%
-% \ExplCmd{newmdtheoremenv}
-% Since the package is often used to highlight theorem environments, I have created a command\footnote{Thanks to Martin Scharrer and Enrico Gregorio:\newline \href{http://tex.stackexchange.com/questions/26298/own-command-to-create-new-environment}{Own command to create new environment}} to simplify this process. The command has the following syntax:
-%
+% \ExplCmd{renewmdenv}
+% By using this command you can redefine environments which are created by \Cmd{newmdenv}.
+%
+% \ExplCmd{surroundwithmdframed}
+% Sometimes you have predefined environments. This commands allows you to set
+% a \Env{environmet} surround this predefined environment. To set a \Env{mdframed}
+% around the environment \Env{verbatim} you can simple say without changing the
+% original name.
% \iffalse
%<*example>
% \fi
-\begin{tltxmdfexample}[deletekeywords={mdframed}]
- \newmdtheoremenv[<mdframed-options>]{<envname>}%
- [<numberedlike>]{<caption>}[<within>]
+\begin{tltxmdfexample}
+ \surroundwithmdframed[linewidth=2pt]{verbatim}
\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:
+%
+%
+% \ExplCmd{mdflength}
+% If you want to work with length defined by \Pack{mdframed} (for example
+% \Opt{innerleftmargin}) you can now simple use the command \Cmd{mdflength}.
% \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}
+ Some Text \hspace{\mdflength{innerleftmargin}} Some Text
+
+ \the\mdflength{innerleftmargin}
\end{tltxmdfexample}
% \iffalse
%</example>
% \fi
-% So far there is no \Cmd{renewmdtheoremenv}!
-%
+%
+%
%
% \ExplCmd{mdfsetup}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.
-%
-% \ExplCmd{mdfdefinestyle} \Cmd{mdfdefinestyle} allows the user to define different styles and use as an option of \Pack{mdframed} via \Opt{style}. The option \Opt{style} is explained in section \ref{genopt}.
+% 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 using of the command \Cmd{mdfsetup}
+% instead of setting package option via the optional argument of \Cmd{usepackage}.
+% So your are avoiding breaking of non robust commands.}^^A
+% \footnote{Thanks to Heiko Oberdieck and Philipp Stephani
+% \href{https://groups.google.com/group/de.comp.text.tex/browse_thread/thread/15c5ad290490d426?hl=de}^^A
+% {kvoptions-Declaration von Optionen schl\"agt fehl}}
+%
+% \ExplCmd{mdfdefinestyle}
+% \Cmd{mdfdefinestyle} allows the user to define different styles and use
+% as an option of \Pack{mdframed} via \Opt{style}. The option \Opt{style}
+% is explained in section \ref{genopt}.
%
% Here a small example:
% \iffalse
@@ -411,14 +556,21 @@ Have fun!
%</example>
% \fi
%
-% \ExplCmd{mdfapptodefinestyle} This commands allows to expand 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}}
+% \ExplCmd{mdfapptodefinestyle}
+% This commands allows to expand 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}}
%
%
%
% %%%%%%%%%%%%%%%%%%%%%%%
% \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 option are divided in global and local options. The global options can not be used inside \Cmd{mdfsetup}.
+% 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 option 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.
@@ -426,16 +578,20 @@ Have fun!
% \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}.
+% 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
+% 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.
+% The option \Opt{framemethod} requires a string. Allowed combinations are listed in the
+% following table.
% \begin{table}[!ht]
% \centering
% \renewcommand*\arraystretch{1.3}
@@ -449,19 +605,26 @@ Have fun!
% \end{tabular}
% \end{table}
%
-% \noindent{\small\textbf{FYI}\qquad It is independently whether the \texttt{method} is written with no, one or more capital letter.}
+% \minisec{FYI}
+% It is independently whether the \texttt{method} is
+% written with no, one or more capital letter.
%
-% \NOTE The manipulation of the frames depends on the option \Opt{framemethod}. For further information see below.
+% \minisec{Note}
+% The manipulation of the frames depends on the option \Opt{framemethod}.
+% For further information see below.
%
% \subsection{Global and Local Options}
-% The options listed below can be set globally or locally and they are not limited to the preamble.
+% The options listed below can be set globally or locally and they are not
+% limited to the preamble.
+% I tried to define self explained names.
%
% \subsubsection{Options with lengths}\label{optlength}
%
-% In figure \eqref{fig:laengen} you can see the adjustable lengths which will be described below.
+% In figure \eqref{fig:laengen} you can see the adjustable lengths
+% (compare also figure \eqref{fig:basicframes}) which will be described below.
% 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}.
-% The figure shows three different colored frames. Only \Opt{framemethod=tikz} is able to draw such triple lines.
+% The figure shows three different colored frames.
%
% I know that the predefined lengths are not well prepared. Maybe I will change it later.
%
@@ -476,7 +639,8 @@ Have fun!
% \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]%
+% \node[fill=green!10,draw=black,framed,rounded corners,
+% minimum width=3cm,minimum height=1.5cm]%
% (CenterNode) {Contents};
%
% %frames
@@ -498,13 +662,15 @@ Have fun!
% \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.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.south)
+% edge node[align=center,framed,fill=white,draw=white]{innerbottommargin}
% ($(CenterNode)-(0,\y1)+(0,.5\linew)$) ;
%
% %%innerleftmargin
@@ -558,129 +724,337 @@ Have fun!
% \label{fig:laengen}
% \end{center}
%
-% \ExplOpt[0pt]{skipabove} Sets an additional skip above the frame.
-% \ExplOpt[0pt]{skipbelow} Sets an additional skip below the frame.
-% \ExplOpt[]{margin} This option is not longer supported. Use \Opt{leftmargin}
-% and \Opt{rightmargin} instead.
-% \ExplOpt[0pt]{leftmargin} Sets the length of the left margin of the environment.
-% \ExplOpt[0pt]{rightmargin} Sets the length of the right margin of the environment.
-%
-% \ExplOpt[10pt]{innerleftmargin} Sets the length of the inner left margin of the environment.
-% \ExplOpt[10pt]{innerrightmargin} Sets the length of the inner right margin of the environment.
-% \ExplOpt[.4\textbackslash baselineskip]{innertopmargin} Sets the length of the inner top margin of the environment.
-% \ExplOpt[.4\textbackslash baselineskip]{innerbottommargin} Sets the length of the inner bottom margin of the environment.
+% \ExplOpt[0pt]{skipabove}
+% Sets an additional skip above the frame.
+% \ExplOpt[0pt]{skipbelow}
+% Sets an additional skip below the frame.
+% \ExplOpt[]{margin}
+% This option is not longer supported. Use \Opt{leftmargin}
+% and \Opt{rightmargin} instead.
+% \ExplOpt[0pt]{leftmargin}
+% Sets the length of the left margin of the environment.
+% \ExplOpt[0pt]{rightmargin}
+% Sets the length of the right margin of the environment.
+% \ExplOpt[10pt]{innerleftmargin}
+% Sets the length of the inner left margin of the environment.
+% \ExplOpt[10pt]{innerrightmargin}
+% Sets the length of the inner right margin of the environment.
+% \ExplOpt[.4\textbackslash baselineskip]{innertopmargin}
+% Sets the length of the inner top margin of the environment.
+% \ExplOpt[.4\textbackslash baselineskip]{innerbottommargin}
+% Sets the length of the inner bottom margin of the environment.
%
% \paragraph*{The following lengths are not shown in figure \eqref{fig:laengen}.}
%
% \mbox{}
-% \ExplOpt[0pt]{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{outermargin} Sets the length of the outer margin. This option is only available in \texttt{twoside}-mode.
-% \ExplOpt{innermargin} Sets the length of the inner margin. This option is only available in \texttt{twoside}-mode.
-%
-%
-% \ExplOpt[0pt]{splittopskip} Sets the length of the skip above the split part of the environment.
-% \ExplOpt[0pt]{splitbottomskip} Sets the length of the skip below the split part of the environment.
-% \ExplOpt[0.4pt]{linewidth} Sets the width of the line around the environment.
-% \ExplOpt[0pt]{roundcorner} Sets the size of the radius of the corners of the frames.
-% \limitation[TikZ or PSTricks]
-% \ExplOpt[0pt]{innerlinewidth} Sets the width of the inner line around the environment.
-% \limitation
-% \ExplOpt[0pt]{outerlinewidth} Sets the width of the outer line around the environment.
-% \limitation
-% \ExplOpt[linewidth]{middlelinewidth} Sets the width of the middle line around the environment.\limitation
-%
+% \ExplOpt[0pt]{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{outermargin}
+% Sets the length of the outer margin. This option is only available
+% in \texttt{twoside}-mode.
+% \ExplOpt{innermargin}
+% Sets the length of the inner margin. This option is only available
+% in \texttt{twoside}-mode.
+% \ExplOpt[0pt]{splittopskip}
+% Sets the length of the skip above the split part of the environment.
+% \ExplOpt[0pt]{splitbottomskip}
+% Sets the length of the skip below the split part of the environment.
+% \ExplOpt[0.4pt]{linewidth}
+% Sets the width of the line around the environment.
+% \ExplOpt[0pt]{roundcorner}
+% Sets the size of the radius of the corners of the frames.
+% \limitation[TikZ or PSTricks]
+% \ExplOpt[0pt]{innerlinewidth}
+% Sets the width of the inner line around the environment.
+% \limitation[TikZ or PSTricks]
+% \ExplOpt[0pt]{outerlinewidth}
+% Sets the width of the outer line around the environment.
+% \limitation[TikZ or PSTricks]
+% \ExplOpt[linewidth]{middlelinewidth}
+% Sets the width of the middle line around the environment.
+% \limitation
%
% \subsubsection{Colored Options}
-% \ExplOpt[black]{linecolor} Sets the color of the line around the environment.
-% \ExplOpt[white]{backgroundcolor} Sets the color of the background of the environment.
-% \ExplOpt[black]{fontcolor} Sets the color of the contents of the environment.
-% \ExplOpt[linecolor]{innerlinecolor} Sets the color of the inner line around the environment.
-% \limitation
-% \ExplOpt[\newline linecolor]{middlelinecolor} Sets the color of the middle line around the environment. \limitation
-% \ExplOpt[\newline linecolor]{outerlinecolor} Sets the color of the outer line around the environment.\limitation
-%
+% \ExplOpt[black]{linecolor}
+% Sets the color of the line around the environment.
+% \ExplOpt[white]{backgroundcolor}
+% Sets the color of the background of the environment.
+% \ExplOpt[black]{fontcolor}
+% Sets the color of the contents of the environment.
+% \ExplOpt[linecolor]{innerlinecolor}
+% Sets the color of the inner line around the environment.
+% \limitation[TikZ or PSTricks]
+% \ExplOpt[linecolor]{middlelinecolor}
+% Sets the color of the middle line around the environment.
+% \limitation[TikZ or PSTricks]
+% \ExplOpt[linecolor]{outerlinecolor}
+% Sets the color of the outer line around the environment.
+% \limitation[TikZ or PSTricks]
%
% \subsubsection{General options}\label{genopt}
%
-% \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\newline \Cmd{theorempostskipamount} to 0\;pt.
-%
-% \ExplOpt[false]{nobreak} Sometimes it is useful to prevent a frame from splitting. The \Opt{nobreak} option is used for this purpose. If you activate this option you can enable it by setting \Opt{nobreak=false}.
-%
-%
-% \ExplOpt[0pt]{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{style} If you define a special style with \Cmd{mdfdefinstyle} you can use the key \Opt{style} to load the style. \Pack{mdframed} has no predefined styles.
-%
-% %%\ExplOpt[none]{settings} With version 0.9 of the package \Pack{mdframed} this option was added. This option allows the user to commit some macros. An example is shown in the appendix.
-%
-% %\ExplOpt[none]{printheight} This key allows the entries \texttt{none}, \texttt{info} or \texttt{warning}. In relation to the key the vertical space at the beginning of the environment \Pack{mdframed} on the current page will be printed in the \texttt{log} file.
-%
-% \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: \Opt{left}, \Opt{right} and \Opt{center}. 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.
-%
-% \ExplOpt[none]{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.
-% \limitation[PSTricks]
-% \ExplOpt[none]{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.
-% \limitation
-%
-% \ExplOpt[none]{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\}}
-% \end{itemize}
-% \textbf{Before you change one please have a look at the file \texttt{md-frame-1.mdf} to see the settings.}\limitation
+% \ExplOpt[\{\}]{font}
+% Sets the font of the environment.
+% \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.
+% \ExplOpt[false]{nobreak}
+% Sometimes it is useful to prevent a frame from splitting.
+% The \Opt{nobreak} option is used for this purpose.
+% If you activate this option you can enable it by
+% setting \Opt{nobreak=false}.
+% \ExplOpt[true]{usetwoside}
+% If you set the twoside option you can work with \Opt{outermargin}.
+% This option disable this and you work with
+% \Opt{leftmargin} and \Opt{rightmargin}.
+% \ExplOpt[0pt]{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{style}
+% If you define a special style with \Cmd{mdfdefinstyle} you can use
+% the key \Opt{style} to load the style. \Pack{mdframed} has
+% no predefined styles yet.
+% \ExplOpt[none]{settings}
+% This option allows the user to commit some macros. An example is shown in the
+% example files.
+% \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.
+%
+% \ExplOpt[none]{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.
+% \limitation[PSTricks]
+% \ExplOpt[none]{pstricksappsetting}
+% \Pack{mdframed} works with defined style for the different elements. By
+% using \Cmd{apptopsstyle} 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}
+% \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.}
+% \limitation[PSTricks]
+% \ExplOpt[none]{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.
+% \limitation
+% \ExplOpt[none]{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/.sstyle\}}
+% \end{itemize}
+% \textbf{Before you change one please have a look at the
+% file \texttt{md-frame-1.mdf} to see the settings.}
+% \limitation
%
% \subsection{Hidden Lines}
-%
-%
% \ExplOpt[true]{topline} Draws a line at the top.
% \ExplOpt[true]{bottomline} Draws a line at the bottom.
% \ExplOpt[true]{leftline} Draws a line on the left.
% \ExplOpt[true]{rightline} Draws a line on the right.
-%
-% \ExplOpt[false]{hidealllines} With this option you can decide whether all lines should be drawn or not.
+% \ExplOpt[false]{hidealllines}
+% With this option you can decide whether all lines should be drawn or not.
%
% \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{false} to get no line between the frame title
+% and the text.
+% \ExplOpt[.2pt]{frametitlerulewidth}
+% Sets the width of the line between the text and the title of \Env{mdframed}.
+% \ExplOpt[5pt]{frametitleaboveskip}
+% Sets the skip of the frame title to the margin above of \Env{mdframed}.
+% \ExplOpt[5pt]{frametitlebelowskip}
+% Sets the skip of the frame title to the rule of the frame title.
+% \ExplOpt[white]{frametitlebackgroundcolor}
+% Sets the color of the background of the frametitle
+%
+% \minisec{FYI and Note}
+% \Pack{mdframed} can't handle page breaks inside the frametitle well.
+% If you get a page break please have a closer look to the output.
+%
+% If a frame title is given the optional length \Opt{innertopmargin} is
+% set between the rule under the frame title and the contents of \Env{mdframed}.
+%
+% \ExplOpt[false]{repeatframetitle}
+% Repeat the frame title on every frame. The feature is currently not
+% well implemented!!!
+%
+%
+% \subsection{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,
+% I have created a command\footnote{Thanks to Martin Scharrer and Enrico Gregorio:\newline
+% \href{http://tex.stackexchange.com/questions/26298/own-command-to-create-new-environment}%
+% {Own command to create new environment}}
+% to simplify this process. The command has the following syntax:
%
-% \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[\mbox{} \Cmd{bfseries}\Cmd{large}]{frametitleformat} Sets the format of the \Opt{frametitle}.
-%
+% \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
+% How 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 environment based on the given
+% first mandotory 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{environemt}[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 option of the frametitle are available. Furthermore
+% \Pack{mdframed} provided 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.
+%
% \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 environement \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.
-%
-% \vskip\baselineskip
-% \noindent\textbf{Note}\qquad The ouput 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.
+% 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 environement
+% \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.
%
% \section{Examples}
%
% I outsource the examples in four files to limit the 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}
+% \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.
%
% \section{Errors, Warnings and Messages}
%
@@ -816,10 +1190,12 @@ Have fun!
% body you will get this warning.
%
% \section{Known Problems}
-% In this section I will collect known problems. 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}.
+% In this section I will collect known problems. 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!
+% 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}.
@@ -827,9 +1203,12 @@ Have fun!
%
%
% \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 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
@@ -837,22 +1216,17 @@ Have fun!
% \item Create styles for \Opt{frametitle}
% \end{enumerate}
%
-% \section{Previous versions}
-% If you have trouble with the new version of \Pack{mdframed} you can load \texttt{mdframedpre} instead. In this way you load the version v0.6 (see \nameref{rev}).
-% %With the new version 0.7a I changed the internal commands (I use \Pack{etoolbox}) and the algorithm of the splitting. So I don't know whether I will get new bugs or not. For the last case and the previous version (v0.6) works well you can load \Pack{mdframedpre} instead of \Pack{mdframed}.
-%
% \section{Acknowledgements}
-%
-% \vskip\baselineskip
-%
-%
-%
-% \textsf{Dick Nickalls;\quad Dietrich Grau;\quad Piazza Luca;\quad Jobst Hoffmann}.
+% \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}
@@ -861,8 +1235,8 @@ Have fun!
% 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{@tempboxa}.
-% After the calculation of the width and the height of the \Cmd{@tempboxa} (done by \Pack{mdframed.sty}) the box
+% 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}
@@ -872,29 +1246,29 @@ Have fun!
% \tikzset{mymatrixnodes/.style={%
% matrix of nodes,
% nodes={framed,draw=black,fill=yellow!10,},
-% column sep=4.2cm,
-% row sep=1.2cm,
+% column sep=4.5cm,
+% row sep=1.5cm,
% }}
% \matrix(m)[mymatrixnodes]
% {%
-% \mybox{read in and save contents in \Cmd{@tempboxa}} &
-% \mybox{\Cmd{md@putbox@single}} \\
-% \mybox{split \textbackslash @tempboxa in \Cmd{tw@} to the free space of the page} &
-% \mybox{\Cmd{md@putbox@first}} \\
-% \mybox{contents of \Cmd{@tempboxa} have enough space on the new page} &
-% \mybox{\Cmd{md@putbox@second}} \\
-% \mybox{split \Cmd{@tempboxa} in \Cmd{tw@} to the free space of the page} &
-% \mybox{\Cmd{md@putbox@middle}} \\
+% \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{tw@}} (m-2-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{tw@}} (m-4-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{@tempboxa}} (m-3-1);
+% {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);
@@ -903,7 +1277,7 @@ Have fun!
% \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{@tempboxa}} (\x2,\y1)
+% {calculate the height of the new \Cmd{mdf@splitbox@one}} (\x2,\y1)
% -- ($(m-3-1.west)-(0.8,0)$)-- ($(m-3-1.west)$) ;
%
%
@@ -912,28 +1286,36 @@ Have fun!
% \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}).
-%
-%
+% 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}.
+% 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{md@putbox@single}] This command sets the contents of a single unsplit frame.
-% \item[\Cmd{md@putbox@first}] This command sets the contents of the first frame of a split frame.
-% \item[\Cmd{md@putbox@middle}] This command sets the contents of the middle frame of a split frame.
-% \item[\Cmd{md@putbox@second}] This command sets the contents of the last frame of a split frame.
+% \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.
+% 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).
+% First we want to type out the single box without any settings
+% (but with the calculated width).
% \iffalse
%<*example>
% \fi
\begin{tltxmdfexample}
\makeatletter
- \def\md@putbox@single{\box\@tempboxa}
+ \def\mdf@putbox@single{\box\mdf@splitbox@one}
\makeatother
\end{tltxmdfexample}
% \iffalse
@@ -945,14 +1327,15 @@ Have fun!
% \fi
\begin{tltxmdfexample}[deletekeywords={leftline},moretexcs={leftline}]
\makeatletter
- \def\md@putbox@single{\leftline{\box\@tempboxa}}
+ \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:
+% 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
@@ -973,19 +1356,20 @@ Have fun!
%</example>
% \fi
%
-% To create only a line at the left with the correct \Opt{leftmargin} you can set \Cmd{md@putboxsingle} as follows
+% 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\md@putbox@single{%
+ \def\mdf@putbox@single{%
\leftline{%
\hspace*{\mdf@leftmargin@length}%
- \rule[-\dp\@tempboxa]{\mdf@linewidth}%
- {\ht\@tempboxa+\dp\@tempboxa}%
- \box\@tempboxa
+ \rule[-\dp\mdf@splitbox@one]{\mdf@linewidth}%
+ {\ht\mdf@splitbox@one+\dp\mdf@splitbox@one}%
+ \box\mdf@splitbox@one
}%
}
\makeatother
@@ -1004,6 +1388,22 @@ Have fun!
%
% \subsection{Revision history}\label{rev}
% \raggedright
+% \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)
@@ -1011,7 +1411,7 @@ Have fun!
% \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{md@lrbox}
+% \item added \Cmd{@parboxrestore} to \Cmd{mdf@lrbox}
% \end{itemize*}
%
% \footnotesize
@@ -1054,7 +1454,8 @@ Have fun!
%
% \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 \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)
@@ -1113,48 +1514,6 @@ Have fun!
% \item added \Cmd{mdfsetup}
% \item expanded documentation
% \end{itemize*}
-%
-%
-%
-% \minisec{Version 0.6 submitted 18 Dec 2010}
-% \begin{itemize*}
-% \item added \Opt{style=3} with \Pack{pstricks}
-% \item added option \Opt{pstrickssetting}
-% \item added option \Opt{splitbottomskip}
-% \item added option \Opt{splittopskip}
-% \item added options for hidden lines
-% \item changed the calculation
-% \item fixes bugs
-% \end{itemize*}
-%
-% \minisec{Version 0.4a submitted 14 May 2010}
-% \begin{itemize*}
-% \item fixes bug in fontcolor
-% \end{itemize*}
-%
-% \minisec{Version 0.4 submitted 13 May 2010}
-% \begin{itemize*}
-% \item Elke Schubert creates style file for \Pack{tikz}
-% \item fixes some bugs -- calculation of the page dimen (thanks Dick Nickalls)
-% \item using tikz for the frame with different styles
-% \end{itemize*}
-%
-% \minisec{Version 0.3b submitted 1 May 2010}
-% \begin{itemize*}
-% \item fixes some bugs -- thanks to Dietrich Grau
-% \item added new options: \Opt{ntheorem}
-% \end{itemize*}
-%
-% \minisec{Version 0.3a submitted 23 Apr 2010}
-% \begin{itemize*}
-% \item added new options: \Opt{leftmargin} and \Opt{rightmargin}
-% \item fixes some bugs
-% \end{itemize*}
-%
-% \minisec{Version 0.3 submitted16 Apr 2010}
-% \begin{itemize*}
-% \item first upload to \href{http://dante.ctan.org/upload}{CTAN}
-% \end{itemize*}
%
% \ltxmdfappendix
%
@@ -1163,6 +1522,7 @@ Have fun!
% And finally, here's how it all works\ldots
%
%\StopEventually{^^A
+% \clearpage
% \PrintChanges^^A
% \clearpage
% \PrintIndex^^A
@@ -1175,38 +1535,38 @@ Have fun!
%
% \subsection{The Explanation of mdframed.sty}
%
-% %$Id: mdframed.dtx 273 2011-12-10 09:21:09Z marco $
-% %$Rev: 273 $
+% %$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
+% %$Rev: 312 $
% %$Author: marco $
-% %$Date: 2011-12-10 10:21:09 +0100 (Sa, 10. Dez 2011) $
-% \begin{macro}{mdversion,mdframedpackagename,md@maindate@svn}
+% %$Date: 2012-01-08 13:43:36 +0100 (So, 08. Jan 2012) $
+% \begin{macro}{mdversion,mdframedpackagename,mdf@maindate@svn}
% Set package information
% \begin{macrocode}
-\def\mdversion{v1.0c}
+\def\mdversion{v1.2}
\def\mdframedpackagename{mdframed}
-\def\md@maindate@svn$#1: #2 #3 #4-#5-#6 #7 #8${#4/#5/#6\space }
+\def\mdf@maindate@svn$#1: #2 #3 #4-#5-#6 #7 #8${#4/#5/#6\space }
% \end{macrocode}
% \end{macro}
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{mdframed}%
- [\md@maindate@svn$Id: mdframed.dtx 273 2011-12-10 09:21:09Z marco $%
+ [\mdf@maindate@svn$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $%
\mdversion: \mdframedpackagename]
% \end{macrocode}
%
-% \begin{macro}{md@PackageWarning,md@PackageInfo,md@LoadFile@IfExist}
+% \begin{macro}{mdf@PackageWarning,mdf@PackageInfo,mdf@LoadFile@IfExist}
% Set short form of |\PackageWarning|, |\PackageInfo| and |IfFileExists| in combination
% with |\RequirePackage|.
% \begin{macrocode}
-\newcommand*\md@PackageWarning[1]{\PackageWarning{\mdframedpackagename}{#1}}
-\newcommand*\md@PackageInfo[1]{\PackageInfo{\mdframedpackagename}{#1}}
-\newcommand*\md@LoadFile@IfExist[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}%
}{%
- \md@PackageWarning{The file #1 does not exist^^J
- but needed by \mdframedpackagename^^J
+ \mdf@PackageWarning{The file #1 does not exist\MessageBreak
+ but needed by \mdframedpackagename\MessageBreak
see documentation fo further information
}%
}
@@ -1217,7 +1577,7 @@ Have fun!
% Loading required packages
% \begin{macrocode}
\RequirePackage{kvoptions}
-\RequirePackage{etex}
+\RequirePackage{xparse}
\RequirePackage{etoolbox}[2011/01/03]
\RequirePackage{zref-abspage}
\RequirePackage{color}
@@ -1228,26 +1588,34 @@ Have fun!
\SetupKeyvalOptions{family=mdf,prefix=mdf@}
% \end{macrocode}
-% \begin{macro}{md@iflength,md@iflength@check,md@iflength@check}
+% \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: |\md@iflength{<Input>}{<length>}{<no length>}|
+% a number the |defaultunit| will be used. Syntax: |\mdf@iflength{<Input>}{<length>}{<no length>}|
% \begin{macrocode}
-\newlength{\md@templength}
-\def\md@iflength#1{%
- \afterassignment\md@iflength@check%
- \md@templength=#1\mdf@defaultunit\relax\relax
+\newlength{\mdf@templength}
+\def\mdf@iflength#1{%
+ \afterassignment\mdf@iflength@check%
+ \mdf@templength=#1\mdf@defaultunit\relax\relax
\expandafter\endgroup\next
}
-\def\md@iflength@check#1{%
+\def\mdf@iflength@check#1{%
\begingroup
\ifx\relax#1\@empty
\def\next{\@secondoftwo}
\else
\def\next{\@firstoftwo}
- \expandafter\md@iflength@cleanup
+ \expandafter\mdf@iflength@cleanup
\fi
}
-\def\md@iflength@cleanup#1\relax{}
+\def\mdf@iflength@cleanup#1\relax{}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{mdf@dolist}
+% Loop used by \Pack{mdframed}.
+% \begin{macrocode}
+\DeclareListParser*{\mdf@dolist}{,}
% \end{macrocode}
% \end{macro}
%
@@ -1265,21 +1633,15 @@ Have fun!
\newrobustcmd*{\mdf@define@key@length}[1]{%
\define@key{mdf}{#1}{%
\def\@tempa{##1}
- \md@iflength{\@tempa}%
- {\csxdef{mdfl@#1}{\the\md@templength}}%
- {\csxdef{mdfl@#1}{\the\md@templength}}%
+ \mdf@iflength{\@tempa}%
+ {\csxdef{mdfl@#1}{\the\mdf@templength}}%
+ {\csxdef{mdfl@#1}{\the\mdf@templength}}%
\expandafter\setlength\csname mdf@#1@length\endcsname{\csname mdfl@#1\endcsname}%
}%
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{mdf@dolist}
-% Loop used by \Pack{mdframed}.
-% \begin{macrocode}
-\DeclareListParser*{\mdf@dolist}{,}
-% \end{macrocode}
-% \end{macro}
%
% \begin{macro}{mdf@do@lengthoption,mdf@lengthoption@doubledo}
% The loop of |\mdf@dolist| expected one argument. So I have to define to commands
@@ -1351,18 +1713,18 @@ Have fun!
% Only provide to be backward compatible
% \begin{macrocode}
\define@key{mdf}{style}{%
- \md@PackageWarning{package option style is depreciated^^J
+ \mdf@PackageWarning{package option style is depreciated^^J
use framemethod instead\MessageBreak}%
\renewcommand*\mdfglobal@style{#1}%
\defcounter{mdf@globalstyle@cnt}{#1}%
\ifcase\value{mdf@globalstyle@cnt}\relax
%0 <- kein Grafikpaket
- \or\md@LoadFile@IfExist{tikz}%
- \or\md@LoadFile@IfExist{pstricks-add}%
+ \or\mdf@LoadFile@IfExist{tikz}%
+ \or\mdf@LoadFile@IfExist{pstricks-add}%
\or\defcounter{mdf@globalstyle@cnt}{2}%
- \md@LoadFile@IfExist{pstricks-add}%
- \or\md@LoadFile@IfExist{pstricks-add}%
- \else\md@PackageWarning{Unknown global style \value{mdf@globalstyle@cnt}}%
+ \mdf@LoadFile@IfExist{pst-node}%
+ \or\mdf@LoadFile@IfExist{pst-node}%
+ \else\mdf@PackageWarning{Unknown global style \value{mdf@globalstyle@cnt}}%
\fi%
}
% \end{macrocode}
@@ -1370,39 +1732,39 @@ Have fun!
% \begin{macro}{mdf@framemethod}
% \begin{macrocode}
\providecommand*\mdf@framemethod{}
-\def\md@framemethod@i{}%
-\def\md@framemethod@ii{}%
-\def\md@framemethod@iii{}%
+\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\md@tempa{#1}}
- \forcsvlist{\listadd\md@framemethod@i}{default,tex,latex,none,0}
- \forcsvlist{\listadd\md@framemethod@ii}{pgf,tikz,1}
- \forcsvlist{\listadd\md@framemethod@iii}{pstricks,ps,2,postscript}
- \xifinlist{\md@tempa}{\md@framemethod@i}%
+ \lowercase{\def\mdf@tempa{#1}}
+ \forcsvlist{\listadd\mdf@framemethod@i}{default,tex,latex,none,0}
+ \forcsvlist{\listadd\mdf@framemethod@ii}{pgf,tikz,1}
+ \forcsvlist{\listadd\mdf@framemethod@iii}{pstricks,ps,2,postscript}
+ \xifinlist{\mdf@tempa}{\mdf@framemethod@i}%
{\def\mdf@@framemethod{default}\defcounter{mdf@globalstyle@cnt}{0}}%
- {\xifinlist{\md@tempa}{\md@framemethod@ii}%
+ {\xifinlist{\mdf@tempa}{\mdf@framemethod@ii}%
{\def\mdf@@framemethod{tikz}\defcounter{mdf@globalstyle@cnt}{1}}%
- {\xifinlist{\md@tempa}{\md@framemethod@iii}%
+ {\xifinlist{\mdf@tempa}{\mdf@framemethod@iii}%
{\def\mdf@@framemethod{pstricks}\defcounter{mdf@globalstyle@cnt}{2}}%
{%
- \md@LoadFile@IfExist{#1}%
+ \mdf@LoadFile@IfExist{#1}%
}%
}%
}%
\ifcase\value{mdf@globalstyle@cnt}\relax%
%0 <- kein Grafikpaket
- \or\md@LoadFile@IfExist{tikz}%
- \or\md@LoadFile@IfExist{pstricks-add}%
- \or\md@LoadFile@IfExist{pstricks-add}%
+ \or\mdf@LoadFile@IfExist{tikz}%
+ \or\mdf@LoadFile@IfExist{pst-node}%
+ \or\mdf@LoadFile@IfExist{pst-node}%
\fi%
}
% \end{macrocode}
%
-%
+% \changes{v1.1beta}{2011/12/17}{Added option \protect\Opt{titleaboveskip}, \protect\Opt{titlebelowskip}, \protect\Opt{frametitlerulewidth}}
% \begin{macro}{mdf@do@lengthoption}
% Here the declaration of the length option. The input method is explained above.
% \begin{macrocode}
@@ -1411,46 +1773,61 @@ Have fun!
{skipbelow==\z@},%
{leftmargin==\z@},%
{rightmargin==\z@},%
- {margin==20pt},%
{innerleftmargin==10pt},%
{innerrightmargin==10pt},%
{innertopmargin==0.4\baselineskip},%
{innerbottommargin==0.4\baselineskip},%
{splittopskip==\z@},%
{splitbottomskip==\z@},%
- {outermargin==-999pt},%
- {innermargin==-999pt},%
+ {outermargin==\z@},%
+ {innermargin==\z@},%
{linewidth==0.4pt},%
{innerlinewidth==\z@},%
{middlelinewidth==\expandafter\mdf@linewidth@length},%
{outerlinewidth==\z@},%
{roundcorner==\z@},%
{footenotedistance==\medskipamount},
- {userdefinedwidth==\linewidth}
-}
+ {userdefinedwidth==\linewidth},
+ {frametitleaboveskip==5pt},
+ {frametitlebelowskip==5pt},
+ {frametitlerulewidth==.2pt},
+ {frametitleleftmargin==10pt},%
+ {frametitlerightmargin==10pt},%
+}
% \end{macrocode}
% \end{macro}
-%
+% \changes{v1.1beta}{2011/12/17}{Added option \protect\Opt{frametitlerulecolor}, \protect\Opt{frametitlebackgroundcolor}, \protect\Opt{font} }
% \begin{macro}{mdf@do@lengthoption}
% Here the declaration of the string option. The input method is explained above.
% \begin{macrocode}
\mdf@dolist{\mdf@do@stringoption}{%
+ {frametitle=={}},%
{defaultunit==pt},%
- {settings=={}},%
{linecolor==black},%
{backgroundcolor==white},%
{fontcolor==black},%
+ {frametitlefontcolor==black},%
{innerlinecolor==\mdf@linecolor},%
{outerlinecolor==\mdf@linecolor},%
{middlelinecolor==\mdf@linecolor},%
{psroundlinecolor==\mdf@backgroundcolor},%
- {frametitle=={}},%
- {frametitlefont==\bfseries\large},%
+ {frametitlerulecolor==\mdf@linecolor},
+ {frametitlebackgroundcolor==\mdf@backgroundcolor},%
+ {settings=={}},%
+ {frametitlesettings=={}},%
+ {font=={}},%
+ {frametitlefont==\normalfont\bfseries},%
{printheight==none},%
+ {alignment=={}},%
+ {frametitlealignment=={}},%
+ {theoremseparator=={:}},%
+ {theoremcountersep=={.}},%
+ {theoremtitlefont=={}},%
+ {theoremspace=={\space}},%
}
% \end{macrocode}
% \end{macro}
-%
+% \changes{v1.1beta}{2011/12/17}{Added option \protect\Opt{usetwoside}}
% \begin{macro}{mdf@do@booloption}
% Here the declaration of the string option. The input method is explained above.
% \begin{macrocode}
@@ -1460,9 +1837,16 @@ Have fun!
{leftline==true},%
{bottomline==true},%
{rightline==true},%
+ {frametitletopline==true},%
+ {frametitleleftline==true},%
+ {frametitlebottomline==true},%
+ {frametitlerightline==true},%
{hidealllines==false},%
+ {frametitlerule==false},%
{nobreak==false},%
{footnoteinside==true},%
+ {usetwoside==true},%
+ {repeatframetitle==false},%Noch nicht richtig implementiert
}
% \end{macrocode}
% \end{macro}
@@ -1488,7 +1872,7 @@ Have fun!
\newcommand*\mdf@makeboxalign@right{}%
\define@key{mdf}{align}[left]{%
\ifcsundef{mdf@align@#1@left}{%
- \md@PackageWarning{Unknown alignment #1\MessageBreak}%
+ \mdf@PackageWarning{Unknown alignment #1\MessageBreak}%
\letcs\mdf@makeboxalign@left{mdf@align@left@left}%
\letcs\mdf@makeboxalign@right{mdf@align@left@right}%
}{%
@@ -1513,6 +1897,11 @@ Have fun!
\define@key{mdf}{pstrickssetting}{%
\def\mdf@psset@local{#1}
}
+\def\mdfpstricks@appendsettings{}
+\define@key{mdf}{pstricksappsetting}{%
+ \def\mdfpstricks@appendsettings{#1}%
+}
+
% \end{macrocode}
% \end{macro}
%
@@ -1521,17 +1910,16 @@ Have fun!
% \begin{macrocode}
\def\mdf@xcolor{}
\define@key{mdf}{xcolor}[none]{%
+ \def\@tempa{#1}%
\@ifpackageloaded{xcolor}{%
\let\mdf@xcolor\@empty %ignoriere die Eingabe der Optionen
- }{%
- \def\@tempa{none}%
- \ifx\mdf@xcolor\@tempa
- \else
- \PassOptionsToPackage{\mdf@xcolor}{xcolor}%
- \RequirePackage{xcolor}%
- \fi%
- }%
- }
+ \def\@tempa{}%
+ }{}%
+ \ifx\relax\@tempa\relax\else
+ \PassOptionsToPackage{\mdf@xcolor}{xcolor}%
+ \RequirePackage{xcolor}%
+ \fi%
+}%
% \end{macrocode}
% \end{macro}
%
@@ -1554,14 +1942,14 @@ Have fun!
%
% \begin{macrocode}
\DeclareDefaultOption{%
- \md@PackageWarning{Unknown Option '\CurrentOption' for mdframed}}
+ \mdf@PackageWarning{Unknown Option '\CurrentOption' for mdframed}}
\ProcessKeyvalOptions*\relax
% \end{macrocode}
%
% \begin{macro}{mdfsetup}
% Short form of |\setkeys{mdf}|
% \begin{macrocode}
-\newcommand*{\mdfsetup}{\setkeys{mdf}}
+\newrobustcmd*{\mdfsetup}{\setkeys{mdf}}
% \end{macrocode}
% \end{macro}
%
@@ -1570,7 +1958,7 @@ Have fun!
% \begin{macrocode}
\define@key{mdf}{style}{%
\ifcsundef{mdf@definestyle@#1}{%
- \md@PackageWarning{Unknown definedstyle #1^^J
+ \mdf@PackageWarning{Unknown definedstyle #1^^J
You have to define a style ^^J
via \string\mdfdefinedstyle\MessageBreak
}%
@@ -1582,81 +1970,168 @@ Have fun!
% \end{macro}
%
%
-% \begin{macro}{md@print@space}
+% \begin{macro}{mdf@print@space}
% Option to type out the free vertical space of the current page.
% \begin{macrocode}
-\let\md@PackageNoInfo\@gobble
-\newrobustcmd*\md@ifstrequal@expand{%
+\let\mdf@PackageNoInfo\@gobble
+\newrobustcmd*\mdf@ifstrequal@expand{%
\expandafter\ifstrequal\expandafter{\mdf@printheight}%
}
-\newrobustcmd*\md@print@space{%
+\newrobustcmd*\mdf@print@space{%
%case "none"
- \md@ifstrequal@expand{none}{\def\md@tempa{NoInfo}}{%
+ \mdf@ifstrequal@expand{none}{\def\mdf@tempa{NoInfo}}{%
%case "info"
- \md@ifstrequal@expand{info}{\def\md@tempa{Info}}{%
+ \mdf@ifstrequal@expand{info}{\def\mdf@tempa{Info}}{%
%case "warning"
- \md@ifstrequal@expand{warning}{\def\md@tempa{Warning}}{%
+ \mdf@ifstrequal@expand{warning}{\def\mdf@tempa{Warning}}{%
%case "unknown"
- \md@PackageWarning{Unknown key for printheight=\mdf@printheight^^J
+ \mdf@PackageWarning{Unknown key for printheight=\mdf@printheight^^J
use none, info or warning}%
- \def\md@tempa{none}%
+ \def\mdf@tempa{none}%
}%
}%
}%
-\def\md@PackageInfoSpace{\csname md@Package\md@tempa\endcsname}%
+\def\mdf@PackageInfoSpace{\csname mdf@Package\mdf@tempa\endcsname}%
}
% \end{macrocode}
% \end{macro}
+% \changes{v1.1beta}{2011/12/15}{Joining all new definitions}
+% \changes{v1.1beta}{2011/12/15}{Create new \protect\Cmd{savebox} and renamed \protect\Cmd{@tempboxa}}
+% \begin{macro}{new\ldots}
+% 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
+\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
+
+% Command to expand the tikz code. (see md-frame-1.mdf)
+\newrobustcmd\mdfcreateextratikz{}
+
+% \end{macrocode}
+% \end{macro}
%
-% \changes{v1.0b}{2011/12/26}{added command \protect\Cmd{@parboxrestore} to \protect\Cmd{md@lrbox}}
-% \begin{macro}{md@lrbox,endmd@lrbox}
+% \changes{v1.0b}{2011/11/26}{added command \protect\Cmd{@parboxrestore} to \protect\Cmd{mdf@lrbox}}
+% \changes{v1.1release}{2012/01/03}{changed definition of \protect\Cmd{mdf@lrbox} (Thanks Lars Madsen)}
+% \changes{v1.1release}{2012/01/06}{expand definition of \protect\Cmd{mdf@lrbox} by \protect\Cmd{mdf@restoreparams}}
+% \begin{macro}{mdf@lrbox,endmdf@lrbox}
% Modification of the default |\lrbox| and |\endlrbox|
% \begin{macrocode}
-%\let\md@lrbox\lrbox
-%\patchcmd\md@lrbox\hbox\vbox{}{}
-%\patchcmd\md@lrbox\color@setgroup{%
-%\begingroup%
-%\color@setgroup\color{\mdf@fontcolor}%
-%\hsize=\md@horizontalspaceofbox%
-%\columnwidth=\hsize%
-%\textwidth=\hsize%
-%\linewidth=\hsize%
-%\@parboxrestore%
-%\bgroup\md@@frametitle\egroup\noindent%
-%}{}{}
-\def\md@lrbox#1{%
- \edef\reserved@a{%
- \endgroup
- \setbox#1\vbox{%
- \begingroup\aftergroup}%
- \def\noexpand\@currenvir{\@currenvir}%
- \def\noexpand\@currenvline{\on@line}}%
- \reserved@a
- \@endpefalse
- \@parboxrestore
- \begingroup%
- \color@setgroup
- \color{\mdf@fontcolor}%
- \hsize=\md@horizontalspaceofbox%
+\def\mdf@lrbox#1{%
+%%patch to work with amsthm
+ \mdf@patchamsthm
+%%end patch
+ \edef\mdf@restoreparams{%
+ \parindent=\the\parindent \parskip=\the\parskip}
+ \setbox#1\vbox\bgroup
+ \begingroup
+ \mdf@horizontalmargin@equation%
+ \color@setgroup%
+ \hsize=\mdf@horizontalspaceofbox%
\columnwidth=\hsize%
\textwidth=\hsize%
- \linewidth=\hsize%
- \@parboxrestore
- \bgroup\md@@frametitle\egroup\noindent%
- \ignorespaces}
+ \let\if@nobreak\iffalse
+ \let\if@noskipsec\iffalse
+ \let\par\@@par
+ \let\-\@dischyph
+ \let\'\@acci\let\`\@accii\let\=\@acciii
+ \parindent\z@ \parskip\z@skip
+ \linewidth\hsize
+ \@totalleftmargin\z@
+ \leftskip\z@skip \rightskip\z@skip
+ \parfillskip\@flushglue \lineskip\normallineskip%
+ \baselineskip\normalbaselineskip%
+ \everypar{\mdf@restoreparams}\ignorespaces%
+}
+
-\def\endmd@lrbox{\endgroup\unskip\color@endgroup}
+\def\endmdf@lrbox{\endgroup\unskip\color@endgroup\egroup}
+
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.1beta}{2011/12/16}{added command to avoid overfull box warning by vsplit}
+% \begin{macro}{mdf@ignorevbadness,mdf@restorevbadness}
+% Avoiding warnings during the splitting process by \Cmd{vsplit}.
+% see \href{http://tex.stackexchange.com/questions/38496/how-to-avoid-underfull-vbox-in-combination-with-vsplit/38499#38499}
+% {How to avoid underfull vbox in combination with \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}{md@trivlist,endmd@trivlist}
+%
+% \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}
+\@ifpackageloaded{amsthm}{%
+ \newrobustcmd\mdf@patchamsthm{%
+ \let\mdf@deferred@thm@head\deferred@thm@head
+ \patchcmd{\deferred@thm@head}{\indent}{}{}{}
+ }%
+ }{\let\mdf@patchamsthm\relax}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \changes{v1.1release}{2012/01/07}{Added \protect\Cmd{mbox} to the definition.
+% \protect\Cmd{item}\protect\Cmd{mbox}\protect\Cmd{relax} -- Need for amsthm}
+% \begin{macro}{mdf@trivlist,endmdf@trivlist}
% Modification of the default |\trivlist| and |\endtrivlist|.
% \begin{macrocode}
-\let\md@trivlist\trivlist
-\let\endmd@trivlist\endtrivlist
-\patchcmd\endmd@trivlist\@endparenv\md@endparenv{}{}
-\def\md@endparenv{%
+\def\mdf@trivlist#1{%
+ \setlength{\topsep}{#1}%
+ \partopsep\z@%
+ \parsep\z@%
+ \@nmbrlistfalse%
+ \@trivlist%
+ \labelwidth\z@%
+ \leftmargin\z@%
+ \itemindent\z@%
+ \let\@itemlabel\@empty%
+ \def\makelabel##1{##1}%
+ \item\leavevmode\hrule \@height\z@ \@width\linewidth\relax%
+%% \item\mbox{}\relax% second version
+%% \item\relax% first Version
+}
+\let\endmdf@trivlist\endtrivlist
+\patchcmd\endmdf@trivlist\@endparenv\mdf@endparenv{}{}
+\def\mdf@endparenv{%
\addpenalty\@endparpenalty\addvspace\mdf@skipbelow@length\@endpetrue}
+
% \end{macrocode}
% \end{macro}
%
@@ -1681,13 +2156,29 @@ Have fun!
}
\newrobustcmd*\mdfapptodefinestyle[2]{%
\ifcsundef{mdf@definestyle@#1}%
- {\md@PackageWarning{Unknown style #1}}%
+ {\mdf@PackageWarning{Unknown style #1}}%
{\csappto{mdf@definestyle@#1}{,#2}}%
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{newmdenv,renewmdenv,newmdtheoremenv}
+%
+% \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}
+%
+%
+% \changes{v1.1beta}{2011/12/15}{Redefinition of \protect\Cmd{newmdtheoremenv}.
+% -- Now check of theorem definition.}
+% \begin{macro}{newmdenv,renewmdenv,newmdtheoremenv,mdtheorem}
% Defining of the new environment defintions.
% \begin{macrocode}
\newrobustcmd*\newmdenv[2][]{%
@@ -1703,71 +2194,205 @@ Have fun!
\expandafter\let\csname end#2\endcsname\relax%
\newmdenv[#1]{#2}%
}%
-\newrobustcmd*\newmdtheoremenv{%
- \kernel@ifnextchar[%]
- {\newmdtheoremenv@i}{\newmdtheoremenv@i[]}%
-}
-\def\newmdtheoremenv@i[#1]#2{%
- \kernel@ifnextchar[%]
- {\newmdtheoremenv@ii[#1]#2}{\newmdtheoremenv@ii[#1]#2[]}%
-}
-\def\newmdtheoremenv@ii[#1]#2[#3]#4{%
- \kernel@ifnextchar[%]
- {\newmdtheoremenv@iii[#1]#2[#3]#4}{\newmdtheoremenv@iii[#1]#2[#3]#4[]}%
+
+
+\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}}%
}
-\def\newmdtheoremenv@iii[#1]#2[#3]#4[#5]{%
- \ifboolexpr{ test {\ifblank {#3}} and test {\ifblank {#5}} }%
+
+\DeclareDocumentCommand{\mdtheorem}{ O{} m o m o }%
+ {\ifcsdef{#2}%
+ {\mdf@PackageWarning{Environment #2 already exits\MessageBreak}}%
{%
- \newtheorem{#2}{#4}%
- }{%
- \ifboolexpr{ not (test {\ifblank {#3}}) and not (test {\ifblank {#5}}) }%
- {\md@PackageWarning{You can't such a comibination for newmdtheoremenv^^J
- Instead mdframed uses newtheorem{#2}{#4}}%
- \newtheorem{#2}{#4}%
- }%
- {%
- \notblank{#3}{\newtheorem{#2}[#3]{#4}}{}%
- \notblank{#5}{\newtheorem{#2}{#4}[#5]}{}%
- }%
+ \IfNoValueTF {#3}%
+ {%#3 not given -- number relationship
+ \IfNoValueTF {#5}
+ {%#3+#5 not given
+ \@definecounter{#2}%
+ \expandafter\xdef\csname the#2\endcsname{\@thmcounter{#2}}
+ \newenvironment{#2}[1][]{%
+ \refstepcounter{#2}
+ \ifstrempty{##1}%
+ {\let\@temptitle\relax}%
+ {%
+ \def\@temptitle{\mdf@theoremseparator%
+ \mdf@theoremspace%
+ \mdf@theoremtitlefont%
+ ##1}%
+ }
+ \begin{mdframed}[#1,frametitle={\strut#4\ \csname the#2\endcsname\@temptitle}]}%
+ {\end{mdframed}}%
+ \newenvironment{#2*}[1][]{%
+ \ifstrempty{##1}{\let\@temptitle\relax}{\def\@temptitle{:\ ##1}}
+ \begin{mdframed}[#1,frametitle={\strut#4\@temptitle}]}%
+ {\end{mdframed}}%
+ }%
+ {%#5 given -- reset counter
+ \@definecounter{#2}\@newctr{#2}[#5]%
+ \expandafter\xdef\csname the#2\endcsname{\@thmcounter{#2}}
+ \expandafter\xdef\csname the#2\endcsname{%
+ \expandafter\noexpand\csname the#5\endcsname \@thmcountersep
+ \@thmcounter{#2}}%
+ \newenvironment{#2}[1][]{%
+ \refstepcounter{#2}
+ \ifstrempty{##1}%
+ {\let\@temptitle\relax}%
+ {%
+ \def\@temptitle{\mdf@theoremseparator%
+ \mdf@theoremspace%
+ \mdf@theoremtitlefont%
+ ##1}%
+ }
+ \begin{mdframed}[#1,frametitle={\strut#4\ \csname the#2\endcsname\@temptitle}]}%
+ {\end{mdframed}}%
+ \newenvironment{#2*}[1][]{%
+ \ifstrempty{##1}%
+ {\let\@temptitle\relax}%
+ {%
+ \def\@temptitle{\mdf@theoremseparator%
+ \mdf@theoremspace%
+ \mdf@theoremtitlefont%
+ ##1}%
+ }
+ \begin{mdframed}[#1,frametitle={\strut#4\@temptitle}]}%
+ {\end{mdframed}}%
+ }%
+ }%
+ {%#3 given -- number relationship
+ \global\@namedef{the#2}{\@nameuse{the#3}}%
+ \newenvironment{#2}[1][]{%
+ \refstepcounter{#3}
+ \ifstrempty{##1}%
+ {\let\@temptitle\relax}%
+ {%
+ \def\@temptitle{\mdf@theoremseparator%
+ \mdf@theoremspace%
+ \mdf@theoremtitlefont%
+ ##1}%
+ }
+ \begin{mdframed}[#1,frametitle={\strut#4\ \csname the#2\endcsname\@temptitle}]}%
+ {\end{mdframed}}%
+ \newenvironment{#2*}[1][]{%
+ \ifstrempty{##1}{\let\@temptitle\relax}{\def\@temptitle{:\ ##1}}
+ \begin{mdframed}[#1,frametitle={\strut#4\@temptitle}]}%
+ {\end{mdframed}}%
+ }%
}%
- \BeforeBeginEnvironment{#2}{\begin{mdframed}[#1]}%
- \AfterEndEnvironment{#2}{\end{mdframed}}%
-}
+ }
+
% \end{macrocode}
% \end{macro}
%
-%
-% \begin{macro}{mdframedtitleenv,md@@frametitle}
+% \changes{v1.1beta}{2011/12/17}{Added method frame title via \protect\Cmd{savebox}}
+% \changes{v1.1release}{2012/01/05}{Edit algorithm to combine the saveboxes \protect\Cmd{mdf@frametitlebox}
+% and \protect\Cmd{mdf@splitboxone} by the predefined settings:
+% \protect\Cmd{parskip}\protect\Cmd{z@}, \protect\Cmd{parindent}\protect\Cmd{z@} and
+% \protect\Cmd{offinterlineskip}}
+% \begin{macro}{mdfframedtitleenv,mdf@@frametitle,mdf@setopt@body,mdf@setopt@title}
% Default definition of the frame tile used by |mdframed|.
% \begin{macrocode}
-\let\mdraggedtitle\raggedright
-\providecommand*\mdframedtitleenv[1]{%
- \@afterindentfalse
- {\parindent \z@
- \setlength{\parfillskip}{\z@ plus 1fil}%
- \mdraggedtitle\nobreak\mdf@frametitlefont#1\relax%
- \par}%
- \@afterheading}
-
-\newrobustcmd*\md@@frametitle{%
- \ifx\mdf@frametitle\@empty\relax%
- \else
- \color@begingroup\@nobreaktrue%
- \mdframedtitleenv{\mdf@frametitle}%
- \color@endgroup
- \fi%
+%TESTVERSION
+% \newrobustcmd*\mdf@setopt@title{%
+% \ifbool{mdf@frametitlerule}{\booltrue{mdf@bottomline}}{\boolfalse{mdf@bottomline}}%
+% \let\ifmdf@leftline\ifmdf@frametitleleftline%
+% \let\ifmdf@topline\ifmdf@frametitletopline%
+% \let\ifmdf@rightline\ifmdf@frametitlerightline%
+% \let\ifmdf@bottomline\ifmdf@frametitlebottomline%
+% \mdfsetup{innerbottommargin=\mdf@titlebelowskip@length,%
+% innertopmargin=\mdf@titleaboveskip@length,%
+% middlelinecolor=\mdf@frametitlerulecolor,%
+% backgroundcolor=\mdf@frametitlebackgroundcolor,%
+% middlelinewidth=\mdf@frametitlerulewidth@length,%
+% innerleftmargin=\mdf@frametitleleftmargin@length,%
+% innerrightmargin=\mdf@frametitlerightmargin@length,%
+% alignment=\mdf@frametitlealignment,
+% skipbelow=\z@}%
+% \def\mdf@linecolor@bottom{\color{\mdf@frametitlebottomrulecolor}}%
+% \mdf@frametitlesettings%
+% }
+%
+% \newrobustcmd*\mdf@setopt@body{%
+% \mdfsetup{topline=false,skipabove=\z@}%
+% \unskip\nointerlineskip%
+% }
+%
+% \newrobustcmd\mdfframedtitleenv[1]{%
+% \begingroup
+% \mdf@setopt@title
+% \color@setgroup
+% \mdf@frametitlefont
+% \mdf@lrbox{\mdf@splitbox@one}%
+% \mdf@frametitlealignment
+% #1\par\unskip
+% \endmdf@lrbox
+% \mdf@ignorevbadness
+% \global\setbox\mdf@frametitlebox\vbox{\unvbox\mdf@splitbox@one}%
+% \mdf@ignorevbadness
+% \global\setbox\mdf@splitbox@one\vbox{\unvcopy\mdf@frametitlebox}%
+% \detected@mdf@put@frame%
+% \color@endgroup%
+% \endgroup
+% }
+\newrobustcmd\mdfframedtitleenv[1]{%
+ \begingroup%
+ \color@setgroup%
+ \mdf@frametitlefont\color{\mdf@frametitlefontcolor}%
+ \mdf@lrbox{\mdf@frametitlebox}%
+ \mdf@frametitlealignment%
+ #1\par\unskip
+ \endmdf@lrbox%
+ \mdf@ignorevbadness%
+ \global\setbox\mdf@frametitlebox\vbox{\unvbox\mdf@frametitlebox}%
+ \global\mdfframetitleboxwidth=\wd\mdf@frametitlebox\relax%
+ \global\mdfframetitleboxheight=\ht\mdf@frametitlebox\relax%
+ \global\mdfframetitleboxdepth=\dp\mdf@frametitlebox\relax%
+ \global\mdfframetitleboxtotalheight=\dimexpr\ht\mdf@frametitlebox+\dp\mdf@frametitlebox
+ +\mdf@frametitleaboveskip@length+\mdf@frametitlebelowskip@length\relax%
+ \color@endgroup%
+ \endgroup%
+}
+
+\newrobustcmd*\mdf@@frametitle{%
+ \mdfframedtitleenv{\mdf@frametitle}%
+}
+
+\newrobustcmd*\mdf@@frametitle@use{%
+ \begingroup
+ \parskip\z@
+ \parindent\z@
+ \offinterlineskip
+ \mdf@ignorevbadness%
+ \global\setbox\mdf@splitbox@one\vbox{%
+ \unvcopy\mdf@frametitlebox%
+ \mdf@@frametitlerule%
+ \unvbox\mdf@splitbox@one
+ }%
+ \mdf@ignorevbadness%
+ \global\setbox\mdf@splitbox@one\vbox{%
+ \unvbox\mdf@splitbox@one}%
+ \endgroup
+ \mdfsetup{innertopmargin=\mdf@frametitleaboveskip@length}%
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@checkntheorem}
+% \begin{macro}{mdf@checkntheorem}
% Command which checks only |ntheorem|. Later I will support also
% |thmtools|.
% \begin{macrocode}
-\newrobustcmd*\md@checkntheorem{%
- \ifbool{mdf@ntheorem}% %%% Pruefen ob ntheorem gesetzt ist
+
+\newrobustcmd*\mdf@checkntheorem{%
+ \ifbool{mdf@ntheorem}%
{\ifundef{\theorempreskipamount}%
- {\md@PackageWarning{You have not loaded ntheorem yet}}%
+ {\mdf@PackageWarning{You have not loaded ntheorem yet}}%
{\setlength{\theorempreskipamount}{\z@}%
\setlength{\theorempostskipamount}{\z@}%
}%
@@ -1776,22 +2401,22 @@ Have fun!
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@footnoterule,md@footnoteoutput,md@footnoteinput}
+% \begin{macro}{mdf@footnoterule,mdf@footnoteoutput,mdf@footnoteinput}
% Support for footnotes.
% \begin{macrocode}
-\newrobustcmd*\md@footnoterule{%
+\newrobustcmd*\mdf@footnoterule{%
\kern0\p@%
\hrule \@width 1in \kern 2.6\p@}
-\newrobustcmd*\md@footnoteoutput{%
+\newrobustcmd*\mdf@footnoteoutput{%
\ifvoid\@mpfootins\else
\nobreak%
\vskip\mdf@footenotedistance@length%
\normalcolor%
- \md@footnoterule
+ \mdf@footnoterule
\unvbox\@mpfootins
\fi%
}
-\newrobustcmd*\md@footnoteinput{%
+\newrobustcmd*\mdf@footnoteinput{%
\def\@mpfn{mpfootnote}%
\def\thempfn{\thempfootnote}%
\c@mpfootnote\z@%
@@ -1800,7 +2425,7 @@ Have fun!
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{mdf@load@style,md@styledefinition}
+% \begin{macro}{mdf@load@style,mdf@styledefinition}
% Load the method to draw the frame and set style definition.
% \begin{macrocode}
\newrobustcmd*\mdf@load@style{%
@@ -1814,515 +2439,622 @@ Have fun!
{\input{md-frame-\value{mdf@globalstyle@cnt}.mdf}}%
{%
\input{md-frame-0.mdf}%
- \md@PackageWarning{The style number \value{mdf@globalstyle@cnt} does not exist^^J
+ \mdf@PackageWarning{The style number \value{mdf@globalstyle@cnt} does not exist^^J
mdframed ues instead style=0 \mdframedpackagename}%
}%
\fi%
}%
\mdf@load@style
-\newrobustcmd*\md@styledefinition{%
- \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%
- }{}%
- \ifnumequal{\value{mdf@globalstyle@cnt}}{2}%
- {\deflength{\mdf@innerlinewidth@length}{\z@}%
- \deflength{\mdf@middlelinewidth@length}{\mdf@linewidth@length}%
- \deflength{\mdf@outerlinewidth@length}{\z@}%
- \let\mdf@innerlinecolor\mdf@linecolor%
- }{}%
- \ifnumequal{\value{mdf@globalstyle@cnt}}{3}%
- {\deflength{\mdf@innerlinewidth@length}{\z@}%
- \deflength{\mdf@middlelinewidth@length}{\mdf@linewidth@length}%
- \deflength{\mdf@outerlinewidth@length}{\z@}%
- \let\mdf@innerlinecolor\mdf@linecolor%
- }{}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{detected@md@put@frame}
+\newrobustcmd*\mdf@styledefinition{%AVOID!!!
+ \ifnumequal{\value{mdf@globalstyle@cnt}}{0}%
+ {\deflength{\mdf@innerlinewidth@length}{\z@}%
+ \deflength{\mdf@middlelinewidth@length}{\mdf@linewidth@length}%
+ \deflength{\mdf@outerlinewidth@length}{\z@}%
+ \let\mdf@innerlinecolor\mdf@linecolor%
+ \let\mdf@middlelinecolor\mdf@linecolor%
+ \let\mdf@outerlinecolor\mdf@linecolor%
+ }{}%
+% \ifnumequal{\value{mdf@globalstyle@cnt}}{2}%
+% {\deflength{\mdf@innerlinewidth@length}{\z@}%
+% \deflength{\mdf@middlelinewidth@length}{\mdf@linewidth@length}%
+% \deflength{\mdf@outerlinewidth@length}{\z@}%
+% \let\mdf@innerlinecolor\mdf@linecolor%
+% }{}%
+% \ifnumequal{\value{mdf@globalstyle@cnt}}{3}%
+% {\deflength{\mdf@innerlinewidth@length}{\z@}%
+% \deflength{\mdf@middlelinewidth@length}{\mdf@linewidth@length}%
+% \deflength{\mdf@outerlinewidth@length}{\z@}%
+% \let\mdf@innerlinecolor\mdf@linecolor%
+% }{}%
+}
+% \end{macrocode}
+% \end{macro}
+% \changes{v1.1beta}{2011/12/17}{Added frametitle detection to \protect\Cmd{detected@mdf@put@frame}}
+% \begin{macro}{detected@mdf@put@frame}
% Detect whether inside a non breakable environment.
% \begin{macrocode}
-\let\md@reserved@a\@empty
-\newrobustcmd*\detected@md@put@frame{%
+\let\mdf@reserved@a\@empty
+\newrobustcmd*\detected@mdf@put@frame{%
\ifmdf@nobreak%Option nobreak=true?
- \def\md@reserved@a{\md@put@frame@standalone}%
+ \def\mdf@reserved@a{\mdf@put@frame@standalone}%
\else
- \def\md@reserved@a{\md@put@frame}%
+ \def\mdf@reserved@a{\mdf@put@frame}%
\ifnum\@floatpenalty<0\relax%Detecting float
\if@twocolumn%
\ifx\@captype\@undefined
- \def\md@reserved@a{\md@put@frame}%
+ \def\mdf@reserved@a{\mdf@put@frame}%
\else
- \md@PackageInfo{mdframed inside float ^^J
+ \mdf@PackageInfo{mdframed inside float ^^J
mdframed uses option nobreak \mdframedpackagename}%
- \def\md@reserved@a{\md@put@frame@standalone}%
+ \def\mdf@reserved@a{\mdf@put@frame@standalone}%
\fi
\else
- \md@PackageInfo{mdframed inside float ^^J
+ \mdf@PackageInfo{mdframed inside float ^^J
mdframed uses option nobreak \mdframedpackagename}%
- \def\md@reserved@a{\md@put@frame@standalone}%
+ \def\mdf@reserved@a{\mdf@put@frame@standalone}%
\fi%
\fi%
\if@minipage%
- \md@PackageInfo{mdframed inside minipage ^^J
+ \mdf@PackageInfo{mdframed inside minipage ^^J
mdframed uses option nobreak \mdframedpackagename}%
- \def\md@reserved@a{\md@put@frame@standalone}%
+ \def\mdf@reserved@a{\mdf@put@frame@standalone}%
\fi%
\ifinner%
- \md@PackageInfo{mdframed inside a box ^^J
+ \mdf@PackageInfo{mdframed inside a box ^^J
mdframed uses option nobreak \mdframedpackagename}%
- \def\md@reserved@a{\md@put@frame@standalone}%
+ \def\mdf@reserved@a{\mdf@put@frame@standalone}%
\fi%
\fi%
-\md@reserved@a%
+\mdf@reserved@a%
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@hidealllines@check}
+% \begin{macro}{mdf@hidealllines@check}
% \begin{macrocode}
-\newrobustcmd*\md@hidealllines@check{%
+\newrobustcmd*\mdf@hidealllines@check{%
\ifbool{mdf@hidealllines}{%
- \setbool{mdf@leftline}{false}%
- \setbool{mdf@rightline}{false}%
- \setbool{mdf@topline}{false}%
- \setbool{mdf@bottomline}{false}%
+ \boolfalse{mdf@leftline}\boolfalse{mdf@rightline}%
+ \boolfalse{mdf@topline}\boolfalse{mdf@bottomline}%
+ \boolfalse{mdf@frametitleleftline}\boolfalse{mdf@frametitlerightline}%
+ \boolfalse{mdf@frametitletopline}\boolfalse{mdf@frametitlebottomline}%
}{}%
}
% \end{macrocode}
% \end{macro}
%
-%
-%X-length
-% \begin{macrocode}
-\newlength\mdfboundingboxwidth
-\newlength\mdfboundingboxtotalwidth
-% \end{macrocode}
-%Y-length
-% \begin{macrocode}
-\newlength\mdfboundingboxheight
-\newlength\mdfboundingboxdepth
-\newlength\mdfboundingboxtotalheight
-\newlength\md@freevspace@length
-\newlength\md@horizontalwidthofbox@length
-\newlength\md@verticalmarginwhole@length
-% \end{macrocode}
-%
-% \begin{macrocode}
-\providecommand*\ptTps{}
-% \end{macrocode}
-%
-% \begin{macro}{mdfcreateextratikz}
-% Command to expand the tikz code. (see md-frame-1.mdf)
-% \begin{macrocode}
-\newrobustcmd\mdfcreateextratikz{}
-% \end{macrocode}
-% \end{macro}
-%
+% \changes{v1.1beta}{2011/12/16}{Defining \protect\Env{mdframed} with \protect\Cmd{newenvironment}}
+% \changes{v1.1beta}{2012/01/01}{Changed the definition of \protect\Cmd{mdf@trivlist}}
+% \changes{v1.1release}{2012/01/03}{Changed the enddefinition of \protect\Env{mdframed}.
+% Uses now \protect\Cmd{@doendpe} instead of \protect\Cmd{\@endparenv}}
% \begin{macro}{mdframed,mdframed@ii,mdframed@i}
% That the user environement.
% \begin{macrocode}
-\def\mdframed{\@ifnextchar[\mdframed@i\mdframed@ii}%
-\def\mdframed@ii{\mdframed@i[]}%
-\def\mdframed@i[#1]{% default-Umgebung
-\begingroup
-%%Ueberlegung- wie es besser geht!!!! WICHTIG
- \mdfsetup{userdefinedwidth=\linewidth,#1}
- \md@hidealllines@check%
- \mdf@settings%
- \md@twoside@checklength%
+\newenvironment{mdframed}[1][]{%
+\begingroup%
+\color@setgroup%
+ \mdfsetup{userdefinedwidth=\linewidth,#1}%
+ \mdf@hidealllines@check%
+ \mdf@twoside@checklength%
\let\width\z@%
\let\height\z@%
- \setlength{\topsep}{\mdf@skipabove@length}%
- \begingroup%
- \let\partopsep\z@%
- \expandafter\endgroup%
- \begin{md@trivlist}\item\relax%
- \md@checkntheorem%
- \md@styledefinition%
- \md@footnoteinput%
- \md@horizontalmargin@equation%
- \begin{md@lrbox}{\@tempboxa}%
- }%
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{endmdframed}
-% \begin{macrocode}
-\def\endmdframed{%
+ \mdf@checkntheorem%
+ \mdf@styledefinition%
+ \mdf@footnoteinput%
+ \color{\mdf@fontcolor}%
+ \ifvmode\nointerlineskip\fi%
+ \mdf@trivlist{\mdf@skipabove@length}%%
+ \ifdefempty{\mdf@frametitle}{}{\mdf@@frametitle}%
+ \mdf@settings%
+ \mdf@lrbox{\mdf@splitbox@one}%
+ }%
+ {\par\unskip%
\ifmdf@footnoteinside%
- \def\md@reserveda{%
- \md@footnoteoutput%
- \end{md@lrbox}%
- \detected@md@put@frame}%
+ \def\mdf@reserveda{%
+ \mdf@footnoteoutput%
+ \endmdf@lrbox%
+ \ifdefempty{\mdf@frametitle}{}{\mdf@@frametitle@use}
+ \detected@mdf@put@frame}%
\else%
- \def\md@reserveda{%
- \end{md@lrbox}%
- \detected@md@put@frame%
- \md@footnoteoutput%
+ \def\mdf@reserveda{%
+ \endmdf@lrbox%
+ \ifdefempty{\mdf@frametitle}{}{\mdf@@frametitle@use}
+ \detected@mdf@put@frame%
+ \mdf@footnoteoutput%
}%
\fi%
- \md@reserveda%
- \end{md@trivlist}%
- \hrule \@height\z@ \@width\hsize
-\endgroup\@endparenv%
+ \mdf@reserveda%
+ \endmdf@trivlist%
+\color@endgroup\endgroup\@doendpe%\@endparenv%
}
+
+
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@twoside@checklength,md@zref@label,if@md@pageodd,md@pageisodd,md@pageiseven,md@@setzref}
+% \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*\md@twoside@checklength{%
+\newrobustcmd*\mdf@twoside@checklength{%
\if@twoside
- \ifboolexpr{ test {\ifdimequal{\mdf@outermargin@length}{-999pt}}
- and
- test {\ifdimequal{\mdf@innermargin@length}{-999pt}}
- }%
- {%
- \md@PackageInfo{You haven't set the outermargin/innermargin^^
- mdframed will use leftmargin/rightmargin}%
- \settoggle{md:checktwoside}{false}%
- }%
- {\settoggle{md:checktwoside}{true}}%
- \iftoggle{md:checktwoside}{%
- \ifdimequal{\mdf@outermargin@length}{-999pt}%
- {\setlength\mdf@rightmargin@length{\z@}}%
- {\setlength\mdf@rightmargin@length{\mdf@outermargin@length}}%
- \ifdimequal{\mdf@innermargin@length}{-999pt}%
- {\setlength\mdf@leftmargin@length{\z@}}%
- {\setlength\mdf@leftmargin@length{\mdf@innermargin@length}}%
- }{}%
+ \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{md@zref@counter}%keine doppelten laebes
-\zref@newprop*{md@pagevalue}[0]{\number\value{page}}
-\zref@addprop{\ZREF@mainlist}{md@pagevalue}
-\newrobustcmd*\md@zref@label{%
- \stepcounter{md@zref@counter}
- \zref@label{md@pagelabel-\number\value{md@zref@counter}}%
-}
-\newrobustcmd*\if@md@pageodd{%
- \zref@refused{md@pagelabel-\the\value{md@zref@counter}}%
- \ifodd\zref@extract{md@pagelabel-\the\value{md@zref@counter}}{md@pagevalue}%
- \edef\md@reserveda{\md@pageisodd}%
- \else
- \edef\md@reserveda{\md@pageiseven}%
- \fi
- \md@reserveda%
+
+\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*\md@pageisodd{%
- \ifdimequal{\mdf@outermargin@length}{-999pt}%
- {\setlength\mdf@rightmargin@length{\z@}}%
- {\setlength\mdf@rightmargin@length{\mdf@outermargin@length}}%
- \ifdimequal{\mdf@innermargin@length}{-999pt}%
- {\setlength\mdf@leftmargin@length{\z@}}%
- {\setlength\mdf@leftmargin@length{\mdf@innermargin@length}}%
+\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*\md@pageiseven{%
- \ifdimequal{\mdf@outermargin@length}{-999pt}%
- {\setlength\mdf@leftmargin@length{\z@}}%
- {\setlength\mdf@leftmargin@length{\mdf@outermargin@length}}%
- \ifdimequal{\mdf@innermargin@length}{-999pt}%
- {\setlength\mdf@rightmargin@length{\z@}}%
- {\setlength\mdf@rightmargin@length{\mdf@innermargin@length}}%
+\newrobustcmd*\mdf@@setzref{%
+ \iftoggle{md:checktwoside}{\mdf@zref@label\if@mdf@pageodd}{}%
}
-\newrobustcmd*\md@@setzref{\md@zref@label\if@md@pageodd}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{md@freepagevspace}
+% \begin{macro}{mdf@freepagevspace}
% \begin{macrocode}
-\newrobustcmd*\md@freepagevspace{%
+\newrobustcmd*\mdf@freepagevspace{%
\penalty\@M \vskip 2\baselineskip \vskip\height
\penalty9999 \vskip -2\baselineskip \vskip-\height
\penalty9999
\ifdimequal{\pagegoal}{\maxdimen}%
- {\md@freevspace@length\vsize}%
- {\md@freevspace@length=\pagegoal\relax%
- \advance\md@freevspace@length by -\pagetotal\relax%
+ {\mdf@freevspace@length\vsize}%
+ {\mdf@freevspace@length=\pagegoal\relax%
+ \advance\mdf@freevspace@length by -\pagetotal\relax%
}%
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@advancelength@orizontalmargin@add,md@horizontalspaceofbox,md@horizontalmargin@equation}
+% \changes{v1.1beta}{2011/12/16}{Removing \protect\Cmd{@arrayparboxrestore}}
+% \begin{macro}{mdf@advancelength@horizontalmargin@add,mdf@horizontalspaceofbox,mdf@horizontalmargin@equation}
% Width of the box
% \begin{macrocode}
-\newrobustcmd*\md@advancelength@orizontalmargin@add[1]{%
- \advance\md@horizontalspaceofbox by -\csname mdf@#1@length\endcsname\relax%
+\newrobustcmd*\mdf@advancelength@horizontalmargin@sub[1]{%
+ \advance\mdf@horizontalspaceofbox by -\csname mdf@#1@length\endcsname\relax%
}
-\newlength\md@horizontalspaceofbox
-\newrobustcmd*\md@horizontalmargin@equation{%
- \setlength{\md@horizontalspaceofbox}{\mdf@userdefinedwidth@length}%
- \mdf@dolist{\md@advancelength@orizontalmargin@add}{%
+\newlength\mdf@horizontalspaceofbox
+\newrobustcmd*\mdf@horizontalmargin@equation{%
+ \setlength{\mdf@horizontalspaceofbox}{\mdf@userdefinedwidth@length}%
+ \mdf@dolist{\mdf@advancelength@horizontalmargin@sub}{%
leftmargin,outerlinewidth,middlelinewidth,%
innerlinewidth,innerleftmargin,innerrightmargin,%
innerlinewidth,middlelinewidth,outerlinewidth,%
rightmargin}%
\notbool{mdf@leftline}{%
- \advance\md@horizontalspaceofbox by \mdf@innerlinewidth@length\relax%
- \advance\md@horizontalspaceofbox by \mdf@middlelinewidth@length\relax%
- \advance\md@horizontalspaceofbox by \mdf@outerlinewidth@length\relax%
+ \advance\mdf@horizontalspaceofbox by \mdf@innerlinewidth@length\relax%
+ \advance\mdf@horizontalspaceofbox by \mdf@middlelinewidth@length\relax%
+ \advance\mdf@horizontalspaceofbox by \mdf@outerlinewidth@length\relax%
}{}%
\notbool{mdf@rightline}{%
- \advance\md@horizontalspaceofbox by \mdf@innerlinewidth@length\relax%
- \advance\md@horizontalspaceofbox by \mdf@middlelinewidth@length\relax%
- \advance\md@horizontalspaceofbox by \mdf@outerlinewidth@length\relax%
+ \advance\mdf@horizontalspaceofbox by \mdf@innerlinewidth@length\relax%
+ \advance\mdf@horizontalspaceofbox by \mdf@middlelinewidth@length\relax%
+ \advance\mdf@horizontalspaceofbox by \mdf@outerlinewidth@length\relax%
}{}%
-% \end{macrocode}
-% |\advance\md@horizontalspaceofbox by - \width\md@arrayparboxrestore%|
-% \begin{macrocode}
- %%% Beruecksichtigung, dass Auszaehlung bzw. list-Umgebung enthalten
- \ifdimless{\md@horizontalspaceofbox}{3cm}%
- {\md@PackageWarning{You have only a width of 3cm}}{}
- \hsize=\md@horizontalspaceofbox%
+ \ifdimless{\mdf@horizontalspaceofbox}{3cm}%
+ {\mdf@PackageWarning{You have only a width of 3cm}}{}
+ \hsize=\mdf@horizontalspaceofbox%
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@keeplines@single}
+% \begin{macro}{mdf@keeplines@single}
% horizontal space in relation of the lines.
% \begin{macrocode}
-\newrobustcmd*\md@keeplines@single{%
+\newrobustcmd*\mdf@keeplines@single{%
\notbool{mdf@topline}{%
- \advance\md@verticalmarginwhole@length by -\mdf@middlelinewidth@length%
+ \advance\mdf@verticalmarginwhole@length by -\mdf@innerlinewidth@length%
+ \advance\mdf@verticalmarginwhole@length by -\mdf@middlelinewidth@length%
+ \advance\mdf@verticalmarginwhole@length by -\mdf@outerlinewidth@length%
}{}%
\notbool{mdf@bottomline}{%
- \advance\md@verticalmarginwhole@length by -\mdf@middlelinewidth@length%
+ \advance\mdf@verticalmarginwhole@length by -\mdf@innerlinewidth@length%
+ \advance\mdf@verticalmarginwhole@length by -\mdf@middlelinewidth@length%
+ \advance\mdf@verticalmarginwhole@length by -\mdf@outerlinewidth@length%
}{}%
}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{md@advancelength@verticalmarginwhole,md@advancelength@freevspace@sub,md@advancelength@freevspace@add}
+% \begin{macro}{mdf@advancelength@verticalmarginwhole,mdf@advancelength@freevspace@sub,mdf@advancelength@freevspace@add}
% Loop macros to calculate the height. Used by |\mdf@dolist|.
% \begin{macrocode}
-\newrobustcmd*\md@advancelength@verticalmarginwhole[1]{%
- \advance\md@verticalmarginwhole@length by \csname mdf@#1@length\endcsname\relax%
+\newrobustcmd*\mdf@advancelength@verticalmarginwhole[1]{%
+ \advance\mdf@verticalmarginwhole@length by \csname mdf@#1@length\endcsname\relax%
}
-\newrobustcmd*\md@advancelength@freevspace@sub[1]{%
+\newrobustcmd*\mdf@advancelength@freevspace@sub[1]{%
\advance\dimen@ by -\csname mdf@#1@length\endcsname\relax%
}
-\newrobustcmd*\md@advancelength@freevspace@add[1]{%
+\newrobustcmd*\mdf@advancelength@freevspace@add[1]{%
\advance\dimen@ by \csname mdf@#1@length\endcsname\relax%
}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{md@reset}
+% \begin{macro}{mdf@reset}
% Reset changes
% \begin{macrocode}
-\protected@edef\md@reset{\boxmaxdepth\the\boxmaxdepth
+\protected@edef\mdf@reset{\boxmaxdepth\the\boxmaxdepth
\splittopskip\the\splittopskip}%
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@put@frame@standalone}
+% \begin{macro}{mdf@put@frame@standalone}
% Output of |mdframed| inside a non breakable environement.
% \begin{macrocode}
-\newrobustcmd*\md@put@frame@standalone{\relax%
- \ifvoid\@tempboxa\relax
- \md@PackageWarning{The environment is empty\MessageBreak}%
- \let\md@reserved@a\relax%
+\newrobustcmd*\mdf@put@frame@standalone{\relax%
+ \ifvoid\mdf@splitbox@one\relax
+ \mdf@PackageWarning{The environment is empty\MessageBreak}%
+ \let\mdf@reserved@a\relax%
\else
%Hier berechnung Box-Inhalt+Rahmen oben und unten
- \setlength{\md@verticalmarginwhole@length}%
- {\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax}%
- \mdf@dolist{\md@advancelength@verticalmarginwhole}{%
+ \setlength{\mdf@verticalmarginwhole@length}%
+ {\dimexpr\ht\mdf@splitbox@one+\dp\mdf@splitbox@one\relax}%
+ \mdf@dolist{\mdf@advancelength@verticalmarginwhole}{%
outerlinewidth,middlelinewidth,innerlinewidth,innertopmargin,
innerbottommargin,innerlinewidth,middlelinewidth,outerlinewidth}%
- \md@keeplines@single%
- \def\md@reserved@a{\md@putbox@single}%
+ \mdf@keeplines@single%
+ \def\mdf@reserved@a{\mdf@putbox@single}%
\fi
- \md@reserved@a%
+ \mdf@reserved@a%
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@put@frame}
+% \begin{macro}{mdf@put@frame}
% Output of |mdframed| inside a breakable environement.
% The comparison are onyl check whether the contents must be split or not.
% \begin{macrocode}
-\def\md@put@frame{\relax%
-\ifvoid\@tempboxa\relax
-\md@PackageWarning{The environment is empty\MessageBreak}%
-\let\md@reserved@a\relax%
+\def\mdf@put@frame{\relax%
+\ifvoid\mdf@splitbox@one\relax
+\mdf@PackageWarning{The environment is empty\MessageBreak}%
+\let\mdf@reserved@a\relax%
\else
- \md@print@space%
- \md@freepagevspace%
- \md@PackageInfoSpace{\the\md@freevspace@length before the beginning of ^^J
+ \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{\md@freevspace@length}{2\baselineskip}
- {\md@PackageInfo{Not enough space on this page}
+ \ifdimless{\mdf@freevspace@length}{2\baselineskip}
+ {\mdf@PackageInfo{Not enough space on this page}
\vfill\eject%
- \def\md@reserved@a{\md@put@frame}%
+ \def\mdf@reserved@a{\mdf@put@frame}%
}{%
%Hier berechnung Box-Inhalt+Rahmen oben und unten
- \setlength{\md@verticalmarginwhole@length}%
- {\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax}%
- \mdf@dolist{\md@advancelength@verticalmarginwhole}{%
+ \setlength{\mdf@verticalmarginwhole@length}%
+ {\dimexpr\ht\mdf@splitbox@one+\dp\mdf@splitbox@one\relax}%
+ \mdf@dolist{\mdf@advancelength@verticalmarginwhole}{%
outerlinewidth,middlelinewidth,innerlinewidth,innertopmargin,
innerbottommargin,innerlinewidth,middlelinewidth,outerlinewidth}%
- \md@keeplines@single%
- \ifdimless{\md@verticalmarginwhole@length}{\md@freevspace@length}%
+ \mdf@keeplines@single%
+ \ifdimless{\mdf@verticalmarginwhole@length}{\mdf@freevspace@length}%
{%passt auf Seite%
\begingroup
- \iftoggle{md:checktwoside}{\md@@setzref}{}%
- \md@putbox@single
+ \mdf@@setzref
+ \mdf@putbox@single%
\endgroup
- \let\md@reserved@a\relax}%
- {\def\md@reserved@a{\md@put@frame@i}}%passt nicht auf Seite
+ \let\mdf@reserved@a\relax}%
+ {\def\mdf@reserved@a{\mdf@put@frame@i}}%passt nicht auf Seite
}%
\fi
-\md@reserved@a%
+\mdf@reserved@a%
}
% \end{macrocode}
% \end{macro}
%
-% \changes{v1.0b}{2011/12/09}{removed \protect\Cmd{setbox\textbackslash tw@ \textbackslash vbox{\textbackslash unvbox \textbackslash tw@}}}
-% \begin{macro}{md@put@frame@i}
+% \changes{v1.0b}{2011/12/09}{removed \protect\Cmd{setbox\textbackslash mdf@splitbox@two \textbackslash vbox{\textbackslash unvbox \textbackslash mdf@splitbox@two}}}
+% \begin{macro}{mdf@put@frame@i}
% Output of the first splitted box.
% \begin{macrocode}
-\def\md@put@frame@i{%Box muss gesplittet werden -- Ausgabe der ersten Teilbox
- %Berechnung der Splittgroesse -- Linien und Abstand oben
- \md@freepagevspace%
- \dimen@=\the\md@freevspace@length%
- \dimen@i=\mdf@innertopmargin@length%
- \advance\dimen@i by \mdf@linewidth@length%
- \advance\dimen@i by 2\baselineskip%
- \ifdim\dimen@<\dimen@i\relax
- \hrule \@height\z@ \@width\hsize%
+\def\mdf@put@frame@i{%Box muss gesplittet werden -- Ausgabe der ersten Teilbox
+ %Berechnung der Splittgroesse -- Linien und Abstand oben
+ %\vbox to 0pt{}%
+ %\rlap{\smash{\the\mdf@freevspace@length}}%\hrule \@height\z@ \@width\hsize
+ \mdf@freepagevspace%gives \mdf@freevspace@length
+ %Berechnung ob nur oberen Linien nur auf die Seite passe
+ \dimen@=\the\mdf@freevspace@length%
+ \dimen@i=\mdf@innertopmargin@length%
+ \advance\dimen@i by \mdf@innerlinewidth@length%
+ \advance\dimen@i by \mdf@middlelinewidth@length%
+ \advance\dimen@i by \mdf@outerlinewidth@length%
+ \advance\dimen@i by 2\baselineskip%
+ \ifdimless{\dimen@}{\dimen@i}%
+ {\hrule \@height\z@ \@width\hsize%
+ \vfill\eject%
+ \def\mdf@reserved@a{\mdf@put@frame}%
+ }{%
+ \mdf@freepagevspace%
+ \dimen@=\the\mdf@freevspace@length%
+ \mdf@dolist{\mdf@advancelength@freevspace@sub}{%calculate with \dimen@
+ outerlinewidth,middlelinewidth,innerlinewidth,%
+ innertopmargin,splitbottomskip}%
+ \ifbool{mdf@topline}{}{%
+ \advance\dimen@ by \mdf@innerlinewidth@length%
+ \advance\dimen@ by \mdf@middlelinewidth@length%
+ \advance\dimen@ by \mdf@outerlinewidth@length%
+ }%
+ \advance\dimen@.8\pageshrink
+ \ifdimless{\ht\mdf@splitbox@one+\dp\mdf@splitbox@one}{\dimen@}%
+ {\mdf@PackageWarning{You got a bad break\MessageBreak
+ you have to change it manually\MessageBreak
+ by changing the text, the space\MessageBreak
+ or something else}%
+ \advance\dimen@ by -1.8\baselineskip\relax%
+ }{}%
+% \advance\dimen@ by -1pt\relax%Box darf nicht zu Groß werden.
+ \splitmaxdepth\z@ \splittopskip\mdf@splittopskip@length%
+ \mdf@ignorevbadness%
+ \setbox\mdf@splitbox@two\vsplit\mdf@splitbox@one to \dimen@
+ \setbox\mdf@splitbox@two\vbox{\unvbox\mdf@splitbox@two}%
+ \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one}%
+ \ifbool{mdf@repeatframetitle}{%
+ \setbox\mdf@splitbox@one\vbox{%
+ \vbox to \mdf@splittopskip@length{\hsize\z@}
+ %\par\unskip\nointerlineskip
+ \unvcopy\mdf@frametitlebox%
+ \mdf@@frametitlerule%
+ \vbox to\dimexpr
+ -\mdf@splittopskip@length+\ht\strutbox+\dp\strutbox
+ +\mdf@innertopmargin@length\relax{\hsize\z@}%
+ \unvbox\mdf@splitbox@one}%
+ }{}%
+ \ifdimgreater{\ht\mdf@splitbox@two+\dp\mdf@splitbox@two}{\dimen@}%
+ {%Falsch gesplittet
+ \mdf@PackageInfo{Box was splittet wrong\MessageBreak}%
+ \dimen@i=\dimen@
+ \advance\dimen@ by -\ht\mdf@splitbox@two
+ \advance\dimen@ by -\dp\mdf@splitbox@two
+ \advance\dimen@i by 0.5\dimen@
+ \splittopskip\z@%
+ \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@two%
+ %benoetigt um Tiefe zu haben
+ \hrule \@height\dp\strutbox \@width\z@
+ \unvbox\mdf@splitbox@one}
+ \splittopskip\mdf@splittopskip@length%
+ \mdf@ignorevbadness%
+ \setbox\mdf@splitbox@two\vsplit\mdf@splitbox@one to \dimen@i
+ \setbox\mdf@splitbox@two\vbox{\unvbox\mdf@splitbox@two}%
+ \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one}%
+ \ifbool{mdf@repeatframetitle}{%
+ \setbox\mdf@splitbox@one\vbox{%
+ \vbox to \mdf@splittopskip@length{\hsize\z@}
+ %\par\unskip\nointerlineskip
+ \unvcopy\mdf@frametitlebox%
+ \mdf@@frametitlerule%
+ \vbox to\dimexpr
+ -\mdf@splittopskip@length+\ht\strutbox+\dp\strutbox
+ +\mdf@innertopmargin@length\relax{\hsize\z@}%
+ \unvbox\mdf@splitbox@one}%
+ }{}%
+ }{}%
+ \ifvoid\mdf@splitbox@one
+ \mdf@PackageWarning{You got a bad break\MessageBreak
+ because the splittet box is empty\MessageBreak
+ You have to change the page settings\MessageBreak
+ like enlargethispage or something else}%
+ \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@two%
+ %benoetigt um Tiefe zu haben
+ \hrule \@height\dp\strutbox \@width\z@
+ \unvbox\mdf@splitbox@one}%
+ \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one}%
+ \enlargethispage{\baselineskip}%
+ \def\mdf@reserved@a{\mdf@put@frame}%
+ \fi
+ \ifvoid\mdf@splitbox@two%%pruefe, ob erste Box leer ist
+ \hrule \@height\z@ \@width\hsize
+ \vfill\eject%
+ \def\mdf@reserved@a{\mdf@put@frame}%
+ \else
+ \ifdimequal{\ht\mdf@splitbox@two}{0pt}%
+ {\hrule \@height\z@ \@width\hsize%
\vfill\eject%
- \def\md@reserved@a{\md@put@frame}%
- \else%
- \mdf@dolist{\md@advancelength@freevspace@sub}{%
- outerlinewidth,middlelinewidth,innerlinewidth,%
- innertopmargin,splitbottomskip}%
- \ifbool{mdf@topline}{}{\advance\dimen@ by \mdf@middlelinewidth@length}%
- \ifdimless{\ht\@tempboxa+\dp\@tempboxa}{\dimen@}%
- {\md@PackageWarning{You got a bad break\MessageBreak
- you have to change it manually\MessageBreak
- by changing the text, the space\MessageBreak
- or something else}%
- \advance\dimen@ by -1.8\baselineskip\relax%
- }{}%
- \advance\dimen@ by -1pt\relax%Box darf nicht zu Groß werden.
- \splitmaxdepth\z@ \splittopskip\mdf@splittopskip@length%
- \setbox\tw@\vsplit\@tempboxa to \dimen@
-% \setbox\tw@\vbox{\unvbox\tw@}%needed?
- \ifdimgreater{\ht\tw@+\dp\tw@}{\dimen@}{%Falsch gesplittet
- \md@PackageInfo{Box was splittet wrong\MessageBreak}%
- \dimen@i=\dimen@
- \advance\dimen@ by -\ht\tw@
- \advance\dimen@ by -\dp\tw@
- \advance\dimen@i by 0.5\dimen@
- \splittopskip\z@%
- \setbox\@tempboxa\vbox{\unvbox\tw@%
- %benoetigt um Tiefe zu haben
- \hrule \@height\dp\strutbox \@width\z@
- \unvbox\@tempboxa}
- \splittopskip\mdf@splittopskip@length%
- \setbox\tw@\vsplit\@tempboxa to \dimen@i
-% \setbox\tw@\vbox{\unvbox\tw@}%
- }{}%
- \setbox\@tempboxa\vbox{\unvbox\@tempboxa}%PRUEFEN!!!!
- \ifvoid\@tempboxa
- \md@PackageWarning{You got a bad break\MessageBreak
- because the splittet box is empty\MessageBreak
- You have to change the page settings\MessageBreak
- like enlargethispage or something else}%
- \setbox\@tempboxa\vbox{\box\tw@\box\@tempboxa}%
- \def\md@reserved@a{\md@put@frame}%
- \fi
- \ifvoid\tw@%%pruefe, ob erste Box leer ist
- \hrule \@height\z@ \@width\hsize
- \vfill\eject%
- \def\md@reserved@a{\md@put@frame}%
- \else
- \ifdimequal{\ht\tw@}{0pt}%
- {\hrule \@height\z@ \@width\hsize%
- \vfill\eject%
- \setbox\@tempboxa\vbox{\unvbox\tw@\unvbox\@tempboxa}
- \def\md@reserved@a{\md@put@frame}%
- }%
- {%
- \begingroup
- \iftoggle{md:checktwoside}{\md@@setzref}{}%
- \md@putbox@first%%%Groesse des Splittens passt
- \endgroup
- \hrule \@height\z@ \@width\hsize
- \vfill\eject%
- \def\md@reserved@a{\md@put@frame@ii}%
- }%
- \fi%
- \fi%
-\md@reserved@a%
+ \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@two\unvbox\mdf@splitbox@one}
+ \def\mdf@reserved@a{\mdf@put@frame}%
+ }%
+ {%
+ \begingroup%
+ \mdf@@setzref
+ \mdf@putbox@first%%%Groesse des Splittens passt
+ \endgroup%
+ \hrule \@height\z@ \@width\hsize%
+ \vfill\eject%
+ \def\mdf@reserved@a{\mdf@put@frame@ii}%
+ }%
+ \fi%
+ }%
+\mdf@reserved@a%
}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{md@put@frame@ii}
+% \begin{macro}{mdf@put@frame@ii}
% Output of the middle and last box.
% \begin{macrocode}
-\def\md@put@frame@ii{%Ausgabe der mittleren Box(en) wenn vorhanden
- \setlength{\md@freevspace@length}{\vsize}%
- \setlength{\dimen@}{\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax}%
- \mdf@dolist{\md@advancelength@freevspace@add}{%
+\def\mdf@put@frame@ii{%Ausgabe der mittleren Box(en) wenn vorhanden
+ \setlength{\mdf@freevspace@length}{\vsize}%
+ \setlength{\dimen@}{\dimexpr\ht\mdf@splitbox@one+\dp\mdf@splitbox@one\relax}%
+ \mdf@dolist{\mdf@advancelength@freevspace@add}{%used \dimen@
outerlinewidth,middlelinewidth,innerlinewidth,%
innerbottommargin}%%%Addition der Linien unten
- \ifbool{mdf@bottomline}{}{\advance\dimen@ by -\mdf@middlelinewidth@length\relax}%
- \ifdimgreater{\dimen@}{\md@freevspace@length}%
+ \ifbool{mdf@bottomline}{}{%
+ \advance\dimen@i by \mdf@innerlinewidth@length%
+ \advance\dimen@i by \mdf@middlelinewidth@length%
+ \advance\dimen@i by \mdf@outerlinewidth@length%
+ \relax}%
+ \ifdimgreater{\dimen@}{\mdf@freevspace@length}%
{%
- \advance\md@freevspace@length by -\mdf@splitbottomskip@length
+ \advance\mdf@freevspace@length by -\mdf@splitbottomskip@length\relax%
+ \ifbool{mdf@bottomline}{}{%
+ \advance\dimen@i by -\mdf@innerlinewidth@length%
+ \advance\dimen@i by -\mdf@middlelinewidth@length%
+ \advance\dimen@i by -\mdf@outerlinewidth@length%
+ \relax}%
\splitmaxdepth\z@ \splittopskip\mdf@splittopskip@length%
- \setbox\tw@\vsplit\@tempboxa to \md@freevspace@length%
- % \setbox\tw@\vbox{\unvbox\tw@}%PRUEFEN!!!
- \setbox\@tempboxa\vbox{\unvbox\@tempboxa}%PRUEFEN!!!!
- \ifvoid\@tempboxa\relax%
- \md@PackageWarning{You got a bad break\MessageBreak
+ \mdf@ignorevbadness%
+ \setbox\mdf@splitbox@two\vsplit\mdf@splitbox@one to \mdf@freevspace@length%
+ \setbox\mdf@splitbox@two\vbox{\unvbox\mdf@splitbox@two}%PRUEFEN!!!
+ \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one}%PRUEFEN!!!!
+ \ifbool{mdf@repeatframetitle}{%
+ \setbox\mdf@splitbox@one\vbox{%
+ \vbox to \mdf@splittopskip@length{\hsize\z@}
+ %\par\unskip\nointerlineskip
+ \unvcopy\mdf@frametitlebox%
+ \mdf@@frametitlerule%
+ \vbox to\dimexpr
+ -\mdf@splittopskip@length+\ht\strutbox+\dp\strutbox
+ +\mdf@innertopmargin@length\relax{\hsize\z@}%
+ \unvbox\mdf@splitbox@one}%
+ }{}%
+ \ifvoid\mdf@splitbox@one\relax%
+ \mdf@PackageWarning{You got a bad break\MessageBreak
because the split box is empty\MessageBreak
You have to change the settings}%
- \fi%
- \begingroup
- \iftoggle{md:checktwoside}{\md@@setzref}{}%
- \md@putbox@middle%
- \endgroup
- \hrule \@height\z@ \@width\hsize
- \vfill\eject
- \def\md@reserved@a{\md@put@frame@ii}%
+ \setbox\mdf@splitbox@one{\unvbox\mdf@splitbox@two}%
+ \def\mdf@reserved@a{\enlargethispage{\baselineskip}\mdf@put@frame@ii}%
+ \else
+ \begingroup
+ \mdf@@setzref
+ \mdf@putbox@middle%
+ \endgroup
+ \hrule \@height\z@ \@width\hsize
+ \vfill\eject
+ \def\mdf@reserved@a{\mdf@put@frame@ii}%
+ \fi
}%Hier die Ausgabe der mittleren Box
- {\ifvoid\@tempboxa
- \md@PackageWarning{You got a bad break\MessageBreak
+ {\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}%
+ You have to change the settings}%%
+ \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one\hrule \@height\z@ \@width\mdfboundingboxwidth}%
\fi%
- \begingroup
- \iftoggle{md:checktwoside}{\md@@setzref}{}%
- \md@putbox@second%
- \endgroup
- \let\md@reserved@a\relax%
+ \ifdimless{\ht\mdf@splitbox@one}{1sp}{%
+ \mdf@PackageWarning{You got a bad break\MessageBreak
+ because the last split box is empty\MessageBreak
+ You have to change the settings}%
+ %\hb@xt@\z@{\box\mdf@splitbox@one}%
+ \let\mdf@reserved@a\relax%
+ \setbox\mdf@splitbox@one\vbox{\unvbox\mdf@splitbox@one\hrule \@height\z@ \@width\mdfboundingboxwidth}%
+ }{}%
+ \begingroup%
+ \mdf@@setzref
+ \mdf@putbox@second%
+ \hrule \@height\z@ \@width\hsize%
+ \endgroup%
+ \let\mdf@reserved@a\relax%
}%Hier kommt die Ausgabe der letzten Box
- \md@reserved@a%
+ \mdf@reserved@a%
}
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{mdf@test@ltrb,mdf@test@ltr,mdf@test@ltb,mdf@test@trb,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,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
+%%Zusammenhaenge abfragen:
+\newrobustcmd*\mdf@test@ltrb{%
+ \ifboolexpr{ (bool {mdf@topline}) and (bool {mdf@bottomline})
+ and (bool {mdf@leftline}) and (bool {mdf@rightline})}}
+%3-set
+\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})}}
+%2-set
+\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})}}
+%Einzellinien
+\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})}}
+%keine Linien
+\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}%
@@ -2349,43 +3081,69 @@ Have fun!
%% Public License, as described in lppl.txt in the base LaTeX distribution.
%% Either version 1.0 or, at your option, any later version.
-%%$Id: mdframed.dtx 273 2011-12-10 09:21:09Z marco $
+%%$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
%
% \end{macrocode}
%
-% \begin{macro}{mdframedOpackagename,md@frameOdate@svn}
+% \begin{macro}{mdframedOpackagename,mdf@frameOdate@svn}
% local settings
% \begin{macrocode}
\def\mdframedOpackagename{md-frame-0}
-\def\md@frameOdate@svn$#1: #2 #3 #4-#5-#6 #7 #8${#4/#5/#6\space }
+\def\mdf@frameOdate@svn$#1: #2 #3 #4-#5-#6 #7 #8${#4/#5/#6\space }
\ProvidesFile{md-frame-0.mdf}%
- [\md@frameOdate@svn$Id: mdframed.dtx 273 2011-12-10 09:21:09Z marco $%
+ [\mdf@frameOdate@svn$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $%
\mdversion: \mdframedOpackagename]
% \end{macrocode}
% \end{macro}
-
-
-% \begin{macro}{mdframedOpackagename,md@frameOdate@svn}
+%
+%
+% \begin{macro}{mdf@background@default,mdf@linecolor@default,mdf@linecolor@bottom}
% short command
% \begin{macrocode}
\def\mdf@background@default{\color{\mdf@backgroundcolor}}
-\def\mdf@linecolor@default{\color{\mdf@middlelinecolor}}
+\def\mdf@frametitlebackground@default{\color{\mdf@frametitlebackgroundcolor}}
+\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 to \mdf@frametitlerulewidth@length {\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}%
+ }}%
+ }{}
+ \par\unskip\vskip\mdf@innertopmargin@length%
+}%
+
% \end{macrocode}
% \end{macro}
%
-%
-% \begin{macro}{md@putbox@single,md@frame@background@single,md@frame@topandbottomline@single,md@frame@leftline@single,md@frame@rightline@single,md@frame@rightline@single}
+% \begin{macro}{mdf@putbox@single,mdf@frame@background@single,mdf@frame@topandbottomline@single,mdf@frame@leftline@single,mdf@frame@rightline@single,mdf@frame@rightline@single}
% The frame of of a non splitted contents of mdframed
% \begin{macrocode}
-\def\md@frame@background@single{%
+\def\mdf@frame@background@single{%
\rlap{\mdf@background@default%
\rule[-\mdfboundingboxdepth]%
{\mdfboundingboxtotalwidth}%
{\mdfboundingboxtotalheight}%
}%
}%
-%
-\def\md@frame@topandbottomline@single{%
+\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%
@@ -2394,56 +3152,57 @@ Have fun!
{\mdf@middlelinewidth@length}}%
{}%
}%
- \rlap{\mdf@linecolor@default%
+}%
+\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]%
- {\mdfboundingboxtotalwidth}%
+ {\dimexpr\mdfboundingboxtotalwidth
+ \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}%
+ \ifbool{mdf@leftline}{+\mdf@middlelinewidth@length}{}\relax}%
{\mdf@middlelinewidth@length}}%
{}%
- }%
-}
-%
-\def\md@frame@leftline@single{%
+ }%
+}%
+\def\mdf@frame@leftline@single{%
\llap{\mdf@linecolor@default%
- \rule[\dimexpr-\mdfboundingboxdepth%
- \ifbool{mdf@bottomline}{-\mdf@middlelinewidth@length}{}\relax]%
+ \rule[-\mdfboundingboxdepth]%
{\mdf@middlelinewidth@length}%
{\dimexpr\mdfboundingboxtotalheight%
- +\ifbool{mdf@bottomline}{\mdf@middlelinewidth@length}{0pt}%
- +\ifbool{mdf@topline}{\mdf@middlelinewidth@length}{0pt}\relax}%
- }%
+ \ifbool{mdf@topline}{+\mdf@middlelinewidth@length}{}\relax}%
+ }%
}%
-%
-\def\md@frame@rightline@single{%
+\def\mdf@frame@rightline@single{%
\rlap{\mdf@linecolor@default%
\hspace*{\mdfboundingboxwidth}%
\hspace*{\mdf@innerrightmargin@length}%
\rule[\dimexpr-\mdfboundingboxdepth%
- \ifbool{mdf@bottomline}{-\mdf@middlelinewidth@length}{}\relax]%
+ \relax]%
{\mdf@middlelinewidth@length}%
{\dimexpr\mdfboundingboxtotalheight%
- +\ifbool{mdf@bottomline}{\mdf@middlelinewidth@length}{0pt}%
+\ifbool{mdf@topline}{\mdf@middlelinewidth@length}{0pt}\relax}%
}%
}%
-%
-\def\md@putbox@single{%%%%% Ausgabe der ungesplitteten Gesamtbox
- \ifvoid\@tempboxa
+\def\mdf@putbox@single{%%%%% Ausgabe der ungesplitteten Gesamtbox
+ \ifvoid\mdf@splitbox@one
\else%
\mdf@makebox@out{%
\mdf@makeboxalign@left%
\setlength{\mdfboundingboxwidth}%
- {\wd\@tempboxa}%
+ {\wd\mdf@splitbox@one}%
\setlength{\mdfboundingboxtotalwidth}%
{\dimexpr\mdfboundingboxwidth+\mdf@innerleftmargin@length%
+\mdf@innerrightmargin@length\relax}%
\setlength{\mdfboundingboxheight}%
- {\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax}%
+ {\dimexpr\ht\mdf@splitbox@one+\dp\mdf@splitbox@one\relax}%
\setlength{\mdfboundingboxdepth}%
- {\dimexpr\dp\@tempboxa+\mdf@innerbottommargin@length\relax}%
+ {\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}%
\noindent%
\setlength{\@tempdima}{\dimexpr\mdfboundingboxtotalwidth%
+\ifbool{mdf@leftline}%
@@ -2453,16 +3212,18 @@ Have fun!
\mdf@makebox@in[\@tempdima]{%
\null%
\ifbool{mdf@leftline}{%
- \hspace*{\mdf@middlelinewidth@length}%
- \md@frame@leftline@single%
+ \hspace*{\mdftotallinewidth}%
+ \mdf@frame@leftline@single%
}{}%
- \md@frame@topandbottomline@single%
- \md@frame@background@single%
+ \mdf@frame@topline@single%
+ \mdf@frame@bottomline@single%
+ \mdf@frame@background@single%
+ \ifdefempty{\mdf@frametitle}{}{\mdf@frame@frametitlebackground@single}%
\hspace*{\mdf@innerleftmargin@length}%
\ifbool{mdf@rightline}{%
- \md@frame@rightline@single%
+ \mdf@frame@rightline@single%
}{}%
- {\box\@tempboxa}%
+ {\box\mdf@splitbox@one}%
}%
\mdf@makeboxalign@right%
}%
@@ -2472,18 +3233,41 @@ Have fun!
% \end{macro}
%
%
-% \begin{macro}{md@putbox@first,md@frame@background@first,md@frame@leftline@first,md@frame@topline@first,md@frame@rightline@first}
+% \begin{macro}{mdf@putbox@first,mdf@frame@background@first,mdf@frame@leftline@first,mdf@frame@topline@first,mdf@frame@rightline@first}
% The first frame of of a splitted contents of mdframed
% \begin{macrocode}
-\def\md@frame@background@first{%
+\def\mdf@frame@background@first{%
\rlap{\mdf@background@default%
\rule[-\mdfboundingboxdepth]%
{\mdfboundingboxtotalwidth}%
{\mdfboundingboxtotalheight}%
}%
}%
-%
-\def\md@frame@leftline@first{%
+\def\mdf@frame@frametitlebackground@first{%
+ \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 frame 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}%
@@ -2491,8 +3275,7 @@ Have fun!
+\ifbool{mdf@topline}{\mdf@middlelinewidth@length}{0pt}\relax}%
}%
}%
-%
-\def\md@frame@topline@first{%
+\def\mdf@frame@topline@first{%
\rlap{\mdf@linecolor@default%
\rule[\dimexpr\mdfboundingboxheight-\mdfboundingboxdepth+%
\mdf@splitbottomskip@length+\mdf@innertopmargin@length\relax]%
@@ -2500,8 +3283,7 @@ Have fun!
{\mdf@middlelinewidth@length}%
}%
}
-%
-\def\md@frame@rightline@first{%
+\def\mdf@frame@rightline@first{%
\rlap{\mdf@linecolor@default\hspace*{\mdfboundingboxwidth}%
\hspace*{\mdf@innerrightmargin@length}%
\rule[-\mdfboundingboxdepth]%
@@ -2510,19 +3292,18 @@ Have fun!
+\ifbool{mdf@topline}{\mdf@middlelinewidth@length}{0pt}\relax}%
}%
}%
-%
-\def\md@putbox@first{%%%% Ausgabe der Teilbox 1
- \ifvoid\@tempboxa
+\def\mdf@putbox@first{%%%% Ausgabe der Teilbox 1
+ \ifvoid\mdf@splitbox@two
\else%
\mdf@makebox@out[\linewidth]{%
\mdf@makeboxalign@left%
- \setlength{\mdfboundingboxwidth}{\wd\tw@}%
+ \setlength{\mdfboundingboxwidth}{\wd\mdf@splitbox@two}%
\setlength{\mdfboundingboxtotalwidth}%
{\dimexpr\mdfboundingboxwidth+\mdf@innerleftmargin@length%
+\mdf@innerrightmargin@length\relax}%
- \setlength{\mdfboundingboxheight}{\dimexpr\ht\tw@+\dp\tw@\relax}%
+ \setlength{\mdfboundingboxheight}{\dimexpr\ht\mdf@splitbox@two+\dp\mdf@splitbox@two\relax}%
\setlength{\mdfboundingboxdepth}%
- {\dimexpr\dp\tw@+\mdf@splitbottomskip@length\relax}%
+ {\dimexpr\dp\mdf@splitbox@two+\mdf@splitbottomskip@length\relax}%
\setlength{\mdfboundingboxtotalheight}%
{\dimexpr\mdfboundingboxheight+\mdf@innertopmargin@length%
+\mdf@splitbottomskip@length\relax}%
@@ -2535,14 +3316,15 @@ Have fun!
\null%
\ifbool{mdf@leftline}{%
\hspace*{\mdf@middlelinewidth@length}%
- \md@frame@leftline@first}{}%
+ \mdf@frame@leftline@first}{}%
\ifbool{mdf@topline}{%
- \md@frame@topline@first}{}%
- \md@frame@background@first%
+ \mdf@frame@topline@first}{}%
+ \mdf@frame@background@first%
+ \ifdefempty{\mdf@frametitle}{}{\mdf@frame@frametitlebackground@first}%
\hspace*{\mdf@innerleftmargin@length}%
\ifbool{mdf@rightline}{%
- \md@frame@rightline@first}{}%
- {\box\tw@}%
+ \mdf@frame@rightline@first}{}%
+ {\box\mdf@splitbox@two}%
}%
\mdf@makeboxalign@right%
}%
@@ -2552,58 +3334,62 @@ Have fun!
% \end{macro}
%
%
-% \begin{macro}{md@putbox@second,md@frame@background@second,md@frame@leftline@second,md@frame@bottomline@second,md@frame@rightline@second}
+% \begin{macro}{mdf@putbox@second,mdf@frame@background@second,mdf@frame@leftline@second,mdf@frame@bottomline@second,mdf@frame@rightline@second}
% The last frame of of a splitted contents of mdframed
% \begin{macrocode}
-\def\md@frame@background@second{%
+\def\mdf@frame@background@second{%
\rlap{\mdf@background@default%
\rule[-\mdfboundingboxdepth]%
{\mdfboundingboxtotalwidth}%
{\mdfboundingboxtotalheight}%
}%
}%
-%
-\def\md@frame@leftline@second{%
+\def\mdf@frame@frametitlebackground@second{%
+ \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[\dimexpr-\mdfboundingboxdepth%
- -\ifbool{mdf@bottomline}{\mdf@middlelinewidth@length}{0pt}\relax]%
+ \rule[-\mdfboundingboxdepth]%
{\mdf@middlelinewidth@length}%
- {\dimexpr\mdfboundingboxtotalheight%
- +\ifbool{mdf@bottomline}{\mdf@middlelinewidth@length}{0pt}\relax}%
- }%
+ {\dimexpr\mdfboundingboxtotalheight}%
+ }%
}%
-%
-\def\md@frame@bottomline@second{%
- \rlap{\mdf@linecolor@default%
+\def\mdf@frame@bottomline@second{%
+ \rlap{\ifbool{mdf@leftline}{\hspace*{-\mdf@middlelinewidth@length}}{}\mdf@linecolor@default%
\rule[\dimexpr-\mdfboundingboxdepth-\mdf@middlelinewidth@length\relax]%
- {\mdfboundingboxtotalwidth}%
+ {\dimexpr\mdfboundingboxtotalwidth
+ \ifbool{mdf@rightline}{+\mdf@middlelinewidth@length}{}
+ \ifbool{mdf@leftline}{+\mdf@middlelinewidth@length}{}\relax}%
{\mdf@middlelinewidth@length}%
}%
}%
-%
-\def\md@frame@rightline@second{%
+\def\mdf@frame@rightline@second{%
\rlap{\mdf@linecolor@default\hspace*{\mdfboundingboxwidth}%
\hspace*{\mdf@innerrightmargin@length}%
- \rule[\dimexpr-\mdfboundingboxdepth%
- -\ifbool{mdf@bottomline}{\mdf@middlelinewidth@length}{0pt}\relax]%
+ \rule[-\mdfboundingboxdepth]%
{\mdf@middlelinewidth@length}%
- {\dimexpr\mdfboundingboxtotalheight%
- +\ifbool{mdf@bottomline}{\mdf@middlelinewidth@length}{0pt}\relax}%
+ {\mdfboundingboxtotalheight}%
}%
-}%
-%
-\def\md@putbox@second{%
- \ifvoid\@tempboxa%
+}%
+\def\mdf@putbox@second{%
+ \ifvoid\mdf@splitbox@one%
\else
\mdf@makebox@out{%
\mdf@makeboxalign@left%
- \setlength{\mdfboundingboxwidth}{\wd\@tempboxa}%
+ \setlength{\mdfboundingboxwidth}{\wd\mdf@splitbox@one}%
\setlength{\mdfboundingboxtotalwidth}%
{\dimexpr\mdfboundingboxwidth+\mdf@innerleftmargin@length%
+\mdf@innerrightmargin@length\relax}%
- \setlength{\mdfboundingboxheight}{\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax}%
+ \setlength{\mdfboundingboxheight}{\dimexpr\ht\mdf@splitbox@one+\dp\mdf@splitbox@one\relax}%
\setlength{\mdfboundingboxdepth}%
- {\dimexpr\dp\@tempboxa+\mdf@innerbottommargin@length\relax}%
+ {\dimexpr\dp\mdf@splitbox@one+\mdf@innerbottommargin@length\relax}%
\setlength{\mdfboundingboxtotalheight}%
{\dimexpr\mdfboundingboxheight+\mdf@innerbottommargin@length\relax}%
\setlength{\@tempdima}{\dimexpr\mdfboundingboxtotalwidth%
@@ -2614,14 +3400,15 @@ Have fun!
\null%
\ifbool{mdf@leftline}{%
\hspace*{\mdf@middlelinewidth@length}%
- \md@frame@leftline@second}{}%
+ \mdf@frame@leftline@second}{}%
\ifbool{mdf@bottomline}{%
- \md@frame@bottomline@second}{}%
- \md@frame@background@second%
+ \mdf@frame@bottomline@second}{}%
+ \mdf@frame@background@second%
+ \ifdefempty{\mdf@frametitle}{}{\mdf@frame@frametitlebackground@second}%
\hspace*{\mdf@innerleftmargin@length}%
\ifbool{mdf@rightline}{%
- \md@frame@rightline@second}{}%
- {\box\@tempboxa}%
+ \mdf@frame@rightline@second}{}%
+ {\box\mdf@splitbox@one}%
}%
\mdf@makeboxalign@right%
}%
@@ -2631,46 +3418,54 @@ Have fun!
% \end{macro}
%
%
-% \begin{macro}{md@putbox@middle,md@frame@background@middle,md@frame@leftline@middle,md@frame@rightline@middle}
+% \begin{macro}{mdf@putbox@middle,mdf@frame@background@middle,mdf@frame@leftline@middle,mdf@frame@rightline@middle}
% The last frame of of a splitted contents of mdframed
% \begin{macrocode}
-\def\md@frame@background@middle{%
- \rlap{\mdf@background@default%
+\def\mdf@frame@leftline@middle{%
+ \llap{\mdf@linecolor@default%
\rule[-\mdfboundingboxdepth]%
- {\mdfboundingboxtotalwidth}%
+ {\mdf@middlelinewidth@length}%
{\mdfboundingboxtotalheight}%
}%
}%
-%
-\def\md@frame@leftline@middle{%
- \llap{\mdf@linecolor@default%
+\def\mdf@frame@background@middle{%
+ \rlap{\mdf@background@default%
\rule[-\mdfboundingboxdepth]%
- {\mdf@middlelinewidth@length}%
+ {\mdfboundingboxtotalwidth}%
{\mdfboundingboxtotalheight}%
- }%
+ }%
}%
-%
-\def\md@frame@rightline@middle{%
+\def\mdf@frame@frametitlebackground@middle{%
+ \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\md@putbox@middle{%
- \ifvoid\@tempboxa%
+}%
+\def\mdf@putbox@middle{%
+ \ifvoid\mdf@splitbox@two%
\else
\mdf@makebox@out{%
\mdf@makeboxalign@left%
- \setlength{\mdfboundingboxwidth}{\wd\tw@}%
+ \setlength{\mdfboundingboxwidth}{\wd\mdf@splitbox@two}%
\setlength{\mdfboundingboxtotalwidth}%
{\dimexpr\mdfboundingboxwidth+\mdf@innerleftmargin@length%
+\mdf@innerrightmargin@length\relax}%
- \setlength{\mdfboundingboxheight}{\dimexpr\ht\tw@+\dp\tw@\relax}%
+ \setlength{\mdfboundingboxheight}{\dimexpr\ht\mdf@splitbox@two+\dp\mdf@splitbox@two\relax}%
\setlength{\mdfboundingboxdepth}%
- {\dimexpr\dp\tw@+\mdf@splitbottomskip@length\relax}%
+ {\dimexpr\dp\mdf@splitbox@two+\mdf@splitbottomskip@length\relax}%
\setlength{\mdfboundingboxtotalheight}%
{\dimexpr\mdfboundingboxheight+\mdf@splitbottomskip@length\relax}%
\setlength{\@tempdima}{\dimexpr\mdfboundingboxtotalwidth%
@@ -2681,12 +3476,13 @@ Have fun!
\null%
\ifbool{mdf@leftline}{%
\hspace*{\mdf@middlelinewidth@length}%
- \md@frame@leftline@middle}{}%
- \md@frame@background@middle%
+ \mdf@frame@leftline@middle}{}%
+ \mdf@frame@background@middle%
+ \ifdefempty{\mdf@frametitle}{}{\mdf@frame@frametitlebackground@middle}%
\hspace*{\mdf@innerleftmargin@length}%
\ifbool{mdf@rightline}{%
- \md@frame@rightline@middle}{}%
- {\box\tw@}%
+ \mdf@frame@rightline@middle}{}%
+ {\box\mdf@splitbox@two}%
}%
\mdf@makeboxalign@right%
}
@@ -2717,97 +3513,27 @@ Have fun!
%% Public License, as described in lppl.txt in the base LaTeX distribution.
%% Either version 1.0 or, at your option, any later version.
-%%$Id: mdframed.dtx 273 2011-12-10 09:21:09Z marco $
+%%$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
%
% \end{macrocode}
-%
-% \begin{macro}{mdframedIpackagename,md@frameIdate@svn}
+% \changes{v1.1beta}{2011/12/16}{added lost semicolons}
+% \begin{macro}{mdframedIpackagename,mdf@frameIdate@svn}
% local settings
% \begin{macrocode}
\def\mdframedIpackagename{md-frame-1}
-\def\md@frameIdate@svn$#1: #2 #3 #4-#5-#6 #7 #8${#4/#5/#6\space }
+\def\mdf@frameIdate@svn$#1: #2 #3 #4-#5-#6 #7 #8${#4/#5/#6\space }
\ProvidesFile{md-frame-1.mdf}%
- [\md@frameIdate@svn$Id: mdframed.dtx 273 2011-12-10 09:21:09Z marco $ %
+ [\mdf@frameIdate@svn$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $ %
\mdversion: \mdframedIpackagename]
%
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@test@ltrb,md@test@ltr,md@test@ltb,md@test@trb,md@test@lrb,md@test@lb,md@test@rb,^^A
-% md@test@tr,md@test@lt,md@test@lr,md@test@tb,md@test@l,md@test@r,md@test@t,md@test@b,md@test@noline}
-% Short forms of checking the option which lines should be drawn.
-% \begin{macrocode}
-%%%% _____t_____
-%%%% | |
-%%%% | |
-%%%% | |
-%%%% l| |r
-%%%% | |
-%%%% | |
-%%%% |___________|
-%%%% b
-%%Zusammenhaenge abfragen:
-\newrobustcmd*\md@test@ltrb{%
- \ifboolexpr{ (bool {mdf@topline}) and (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-%3-set
-\newrobustcmd*\md@test@ltr{%
- \ifboolexpr{ (bool {mdf@topline}) and not (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@ltb{%
- \ifboolexpr{ (bool {mdf@topline}) and (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@trb{%
- \ifboolexpr{ (bool {mdf@topline}) and (bool {mdf@bottomline})
- and not (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@lrb{%
- \ifboolexpr{ not (bool {mdf@topline}) and (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-%2-set
-\newrobustcmd*\md@test@lb{%
- \ifboolexpr{ not (bool {mdf@topline}) and (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@rb{%
- \ifboolexpr{ not (bool {mdf@topline}) and (bool {mdf@bottomline})
- and not (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@tr{%
- \ifboolexpr{ (bool {mdf@topline}) and not (bool {mdf@bottomline})
- and not (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@lt{%
- \ifboolexpr{ (bool {mdf@topline}) and not (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@lr{%
- \ifboolexpr{not (bool {mdf@topline}) and not (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@tb{%
- \ifboolexpr{ (bool {mdf@topline}) and (bool {mdf@bottomline})
- and not (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
-%Einzellinien
-\newrobustcmd*\md@test@l{%
- \ifboolexpr{ not (bool {mdf@topline}) and not (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@r{%
- \ifboolexpr{ not (bool {mdf@topline}) and not (bool {mdf@bottomline})
- and not (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@t{%
- \ifboolexpr{ (bool {mdf@topline}) and not (bool {mdf@bottomline})
- and not (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@b{%
- \ifboolexpr{ not (bool {mdf@topline}) and (bool {mdf@bottomline})
- and not (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
-%keine Linien
-\newrobustcmd*\md@test@noline{%
- \ifboolexpr{ not (bool {mdf@topline}) and not (bool {mdf@bottomline})
- and not (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
-%
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{md@tikz@settings}
+% \begin{macro}{mdf@tikz@settings}
% Define settings for tikz
% \begin{macrocode}
%Allgemeine Einstellungen fuer tikz
-\def\md@tikz@settings{%
+\def\mdf@tikz@settings{%
%
\tikzset{mdfbox/.style={anchor=south west,%
inner sep=0pt,%
@@ -2816,6 +3542,11 @@ Have fun!
\tikzset{mdfcorners/.style={rounded corners=\mdf@roundcorner@length}}%
\tikzset{mdfbackground/.style={fill=\mdf@backgroundcolor,%
draw=\mdf@backgroundcolor}}%
+ \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
@@ -2845,29 +3576,61 @@ Have fun!
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@tikzbox@tfl,md@tikzbox@otl}
+% \begin{macro}{mdf@tikzbox@tfl,mdf@tikzbox@otl}
% Befehle fuer Ausgabe von Rahmen und Hintergrund
% \begin{macrocode}
-\newrobustcmd*\md@tikzbox@tfl[1]{%three or four borders
+\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*\md@tikzbox@otl[2]{%one or two borders
+ \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}
+ \end{scope}%
\path[mdfmiddleline,mdfcorners]#1;}%
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@putbox@single}
+%
+%
+% \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}
+ }%
+ }{}
+ \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:
@@ -2875,14 +3638,14 @@ Have fun!
% 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\md@putbox@single{%
- \ifvoid\@tempboxa
+\def\mdf@putbox@single{%
+ \ifvoid\mdf@splitbox@one
\else%
\mdf@makebox@out{%
\mdf@makeboxalign@left%
- \md@tikz@settings%
+ \mdf@tikz@settings%
%
- \setlength\mdfboundingboxwidth{\wd\@tempboxa}%
+ \setlength\mdfboundingboxwidth{\wd\mdf@splitbox@one}%
\advance\mdfboundingboxwidth by \mdf@innerleftmargin@length\relax%
\advance\mdfboundingboxwidth by \mdf@innerrightmargin@length\relax%
\ifbool{mdf@leftline}{%
@@ -2894,7 +3657,7 @@ Have fun!
\advance\mdfboundingboxwidth by \mdf@middlelinewidth@length\relax%
\advance\mdfboundingboxwidth by \mdf@outerlinewidth@length\relax}{}%
%
- \setlength\mdfboundingboxheight{\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax}%
+ \setlength\mdfboundingboxheight{\dimexpr\ht\mdf@splitbox@one+\dp\mdf@splitbox@one\relax}%
\advance\mdfboundingboxheight by \mdf@innertopmargin@length\relax%
\advance\mdfboundingboxheight by \mdf@innerbottommargin@length\relax%
\ifbool{mdf@topline}{%
@@ -2909,84 +3672,87 @@ Have fun!
\null%
\begin{tikzpicture}[remember picture]%
\begin{scope}
- \pgfmathsetlengthmacro\md@Ax{+\mdf@innerleftmargin@length}%
- \pgfmathsetlengthmacro\md@Ay{+\mdf@innerbottommargin@length}%
- \pgfmathsetlengthmacro\md@Ox{+0pt}%
- \pgfmathsetlengthmacro\md@Oy{+0pt}%
- \pgfmathsetlengthmacro\md@Px{+\mdfboundingboxwidth}%
- \pgfmathsetlengthmacro\md@Py{+\mdfboundingboxheight}%
+ \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\md@Ax%
- {\md@Ax+\mdf@outerlinewidth@length+%
+ \pgfmathsetlengthmacro\mdf@Ax%
+ {\mdf@Ax+\mdf@outerlinewidth@length+%
\mdf@middlelinewidth@length+\mdf@innerlinewidth@length}%
- \pgfmathsetlengthmacro\md@Ox%
- {\md@Ox+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
+ \pgfmathsetlengthmacro\mdf@Ox%
+ {\mdf@Ox+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
}{}%
\ifbool{mdf@rightline}%
{%
- \pgfmathsetlengthmacro\md@Px%
- {\md@Px-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
+ \pgfmathsetlengthmacro\mdf@Px%
+ {\mdf@Px-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
}{}%
\ifbool{mdf@bottomline}%
{%
- \pgfmathsetlengthmacro\md@Ay%
- {\md@Ay+\mdf@outerlinewidth@length+\mdf@middlelinewidth@length%
+ \pgfmathsetlengthmacro\mdf@Ay%
+ {\mdf@Ay+\mdf@outerlinewidth@length+\mdf@middlelinewidth@length%
+\mdf@innerlinewidth@length}%
- \pgfmathsetlengthmacro\md@Oy%
- {\md@Oy+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
+ \pgfmathsetlengthmacro\mdf@Oy%
+ {\mdf@Oy+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
}{}%
\ifbool{mdf@topline}%
{%
- \pgfmathsetlengthmacro\md@Py%
- {\md@Py-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
+ \pgfmathsetlengthmacro\mdf@Py%
+ {\mdf@Py-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
}{}%
%
- \coordinate(O)at(\md@Ox,\md@Oy);%
- \coordinate(P)at(\md@Px,\md@Py);%
+ \coordinate(O)at(\mdf@Ox,\mdf@Oy);%
+ \coordinate(P)at(\mdf@Px,\mdf@Py);%
%
- \md@test@ltrb{\md@tikzbox@tfl{(O)--(O|-P)--(P)--(P|-O)--cycle}}{}%
+ \mdf@test@ltrb{\mdf@tikzbox@tfl{(O)--(O|-P)--(P)--(P|-O)--cycle}}{}%
%
- \md@test@ltb{\md@tikzbox@tfl{(P|-O)--(O)--(O|-P)--(P)}}{}%
- \md@test@trb{\md@tikzbox@tfl{(O|-P)--(P)--(P|-O)--(O)}}{}%
- \md@test@ltr{\md@tikzbox@tfl{(O)--(O|-P)--(P)--(P|-O)}}{}%
- \md@test@lrb{\md@tikzbox@tfl{(P-|O)--(O)--(O-|P)--(P)}}{}%
+ \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)}}{}%
%
- \md@test@lb{\md@tikzbox@otl{(P|-O)--(O)--(O|-P)}%
+ \mdf@test@lb{\mdf@tikzbox@otl{(P|-O)--(O)--(O|-P)}%
{(P)--(P|-O)[mdfcorners]--(O)--(O|-P)}%
}{}%
- \md@test@rb{\md@tikzbox@otl{(P)--(P|-O)--(O)}%
+ \mdf@test@rb{\mdf@tikzbox@otl{(P)--(P|-O)--(O)}%
{(O|-P)--(P)[mdfcorners]--(P|-O)--(O)}%
}{}%
- \md@test@tr{\md@tikzbox@otl{(O-|P)--(P)--(P-|O)}%
+ \mdf@test@tr{\mdf@tikzbox@otl{(O-|P)--(P)--(P-|O)}%
{(O)--(O|-P)[mdfcorners]--(P)--(P|-O)}%
}{}%
- \md@test@lt{\md@tikzbox@otl{(O)--(O|-P)--(P)}%
+ \mdf@test@lt{\mdf@tikzbox@otl{(O)--(O|-P)--(P)}%
{(P|-O)--(O)[mdfcorners]--(O|-P)--(P)}%
}{}%
- \md@test@lr{\md@tikzbox@otl{(O)--(O|-P)(P)--(P|-O)}%
+ \mdf@test@lr{\mdf@tikzbox@otl{(O)--(O|-P)(P)--(P|-O)}%
{(O)rectangle(P)}%
}{}%
- \md@test@tb{\md@tikzbox@otl{(O)--(O-|P)(O|-P)--(P)}%
+ \mdf@test@tb{\mdf@tikzbox@otl{(O)--(O-|P)(O|-P)--(P)}%
{(O)rectangle(P)}%
}{}%
%
- \md@test@l{\md@tikzbox@otl{(O)--(O|-P)}%
+ \mdf@test@l{\mdf@tikzbox@otl{(O)--(O|-P)}%
{(O)rectangle(P)}%
}{}%
- \md@test@r{\md@tikzbox@otl{(O-|P)--(P)}%
+ \mdf@test@r{\mdf@tikzbox@otl{(O-|P)--(P)}%
{(O)rectangle(P)}%
}{}%
- \md@test@t{\md@tikzbox@otl{(O|-P)--(P)}%
+ \mdf@test@t{\mdf@tikzbox@otl{(O|-P)--(P)}%
{(O)rectangle(P)}%
}{}%
- \md@test@b{\md@tikzbox@otl{(O)--(O-|P)}%
+ \mdf@test@b{\mdf@tikzbox@otl{(O)--(O-|P)}%
{(O)rectangle(P)}%
}{}%
%
- \md@test@noline{\path[mdfbackground,mdfcorners](O)rectangle(P);}{}%
+ \mdf@test@noline{\path[mdfbackground,mdfcorners](O)rectangle(P);}{}%
+%
+ %Frametitlebackground
+ \drawbrackgroundframetitle@single
%
- \node[mdfbox]at(\md@Ax,\md@Ay){\box\@tempboxa};% Ausgabebox einfuegen
+ \node[mdfbox]at(\mdf@Ax,\mdf@Ay){\box\mdf@splitbox@one};% Ausgabebox einfuegen
\end{scope}
%HIER KOMMT EIN WEITERES MAKRO
\mdfcreateextratikz
@@ -2996,19 +3762,86 @@ Have fun!
}%
\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}{md@putbox@first}
+% \begin{macro}{mdf@putbox@first}
% Output of the first breakable contents.
% \begin{macrocode}
-\def\md@putbox@first{%
- \ifvoid\@tempboxa
+\def\drawbrackgroundframetitle@first{%
+ \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%
- \md@tikz@settings%
- \setlength\mdfboundingboxwidth{\wd\tw@}%
+ \mdf@tikz@settings%
+ \setlength\mdfboundingboxwidth{\wd\mdf@splitbox@two}%
\advance\mdfboundingboxwidth by \mdf@innerleftmargin@length\relax%
\advance\mdfboundingboxwidth by \mdf@innerrightmargin@length\relax%
\ifbool{mdf@leftline}{%
@@ -3020,7 +3853,7 @@ Have fun!
\advance\mdfboundingboxwidth by \mdf@middlelinewidth@length\relax%
\advance\mdfboundingboxwidth by \mdf@outerlinewidth@length\relax}{}%
%
- \setlength\mdfboundingboxheight{\dimexpr\ht\tw@+\dp\tw@\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}{%
@@ -3035,58 +3868,60 @@ Have fun!
\begin{tikzpicture}[remember picture]
\begin{scope}
%
- \pgfmathsetlengthmacro\md@Ax{+\mdf@innerleftmargin@length}%
- \pgfmathsetlengthmacro\md@Ay{+\mdf@splitbottomskip@length}%
- \pgfmathsetlengthmacro\md@Ox{+0pt}%
- \pgfmathsetlengthmacro\md@Oy{+0pt}%
- \pgfmathsetlengthmacro\md@Px{+\mdfboundingboxwidth}%
- \pgfmathsetlengthmacro\md@Py{+\mdfboundingboxheight}%
+ \pgfmathsetlengthmacro\mdf@Ax{+\mdf@innerleftmargin@length}%
+ \pgfmathsetlengthmacro\mdf@Ay{+\mdf@splitbottomskip@length}%
+ \pgfmathsetlengthmacro\mdf@Ox{+0pt}%
+ \pgfmathsetlengthmacro\mdf@Oy{+0pt}%
+ \pgfmathsetlengthmacro\mdf@Px{+\mdfboundingboxwidth}%
+ \pgfmathsetlengthmacro\mdf@Py{+\mdfboundingboxheight}%
\ifbool{mdf@leftline}
{%
- \pgfmathsetlengthmacro\md@Ax%
- {\md@Ax+\mdf@outerlinewidth@length+%
+ \pgfmathsetlengthmacro\mdf@Ax%
+ {\mdf@Ax+\mdf@outerlinewidth@length+%
\mdf@middlelinewidth@length+\mdf@innerlinewidth@length}%
- \pgfmathsetlengthmacro\md@Ox%
- {\md@Ox+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
+ \pgfmathsetlengthmacro\mdf@Ox%
+ {\mdf@Ox+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
}{}%
\ifbool{mdf@rightline}{%
- \pgfmathsetlengthmacro\md@Px%
- {\md@Px-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
+ \pgfmathsetlengthmacro\mdf@Px%
+ {\mdf@Px-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
}{}%
\ifbool{mdf@topline}{%
- \pgfmathsetlengthmacro\md@Py%
- {\md@Py-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
+ \pgfmathsetlengthmacro\mdf@Py%
+ {\mdf@Py-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
}{}%
%
- \coordinate(O)at(\md@Ox,\md@Oy);%
- \coordinate(P)at(\md@Px,\md@Py);%
+ \coordinate(O)at(\mdf@Ox,\mdf@Oy);%
+ \coordinate(P)at(\mdf@Px,\mdf@Py);%
%
- \ifboolexpr{test {\md@test@ltrb} or test {\md@test@ltr}}%
- {\md@tikzbox@tfl{(O)--(O|-P)--(P)--(P|-O)}}%
+ \ifboolexpr{test {\mdf@test@ltrb} or test {\mdf@test@ltr}}%
+ {\mdf@tikzbox@tfl{(O)--(O|-P)--(P)--(P|-O)}}%
{}%
- \ifboolexpr{test {\md@test@ltb} or test {\md@test@lt}}%
- {\md@tikzbox@otl{(O)--(O|-P)--(P)}{(P|-O)--(O)[mdfcorners]--(O|-P)--(P)}}%
+ \ifboolexpr{test {\mdf@test@ltb} or test {\mdf@test@lt}}%
+ {\mdf@tikzbox@otl{(O)--(O|-P)--(P)}{(P|-O)--(O)[mdfcorners]--(O|-P)--(P)}}%
{}%
- \ifboolexpr{test {\md@test@trb} or test {\md@test@tr}}%
- {\md@tikzbox@otl{(O-|P)--(P)--(P-|O)}{(O)--(O|-P)[mdfcorners]--(P)--(P|-O)}}%
+ \ifboolexpr{test {\mdf@test@trb} or test {\mdf@test@tr}}%
+ {\mdf@tikzbox@otl{(O-|P)--(P)--(P-|O)}{(O)--(O|-P)[mdfcorners]--(P)--(P|-O)}}%
{}%
- \ifboolexpr{test {\md@test@lrb} or test {\md@test@lr}}%
- {\md@tikzbox@otl{(O)--(O|-P)(P)--(P|-O)}{(O)rectangle(P)}}%
+ \ifboolexpr{test {\mdf@test@lrb} or test {\mdf@test@lr}}%
+ {\mdf@tikzbox@otl{(O)--(O|-P)(P)--(P|-O)}{(O)rectangle(P)}}%
{}%
- \ifboolexpr{test {\md@test@tb} or test {\md@test@t}}%
- {\md@tikzbox@otl{(O|-P)--(P)}{(O)rectangle(P)}}%
+ \ifboolexpr{test {\mdf@test@tb} or test {\mdf@test@t}}%
+ {\mdf@tikzbox@otl{(O|-P)--(P)}{(O)rectangle(P)}}%
{}%
- \ifboolexpr{test {\md@test@lb} or test {\md@test@l}}%
- {\md@tikzbox@otl{(O)--(O|-P)}{(O)rectangle(P)}}%
+ \ifboolexpr{test {\mdf@test@lb} or test {\mdf@test@l}}%
+ {\mdf@tikzbox@otl{(O)--(O|-P)}{(O)rectangle(P)}}%
{}%
- \ifboolexpr{test {\md@test@rb} or test {\md@test@r}}%
- {\md@tikzbox@otl{(O-|P)--(P)}{(O)rectangle(P)}}%
+ \ifboolexpr{test {\mdf@test@rb} or test {\mdf@test@r}}%
+ {\mdf@tikzbox@otl{(O-|P)--(P)}{(O)rectangle(P)}}%
{}%
- \md@test@b{\path[mdfbackground](O)rectangle(P)}{}%
+ \mdf@test@b{\path[mdfbackground](O)rectangle(P);}{}%
%
- \md@test@noline{\path[mdfbackground,mdfcorners](O)--(O|-P)--(P)--(P|-O);}{}%
+ \mdf@test@noline{\path[mdfbackground,mdfcorners](O)--(O|-P)--(P)--(P|-O);}{}%
+%
+ \drawbrackgroundframetitle@first
%
- \node[mdfbox]at(\md@Ax,\md@Ay){\box\tw@};% Ausgabebox einfuegen
+ \node[mdfbox]at(\mdf@Ax,\mdf@Ay){\box\mdf@splitbox@two};% Ausgabebox einfuegen
\end{scope}
%HIER KOMMT EIN WEITERES MAKRO
\mdfcreateextratikz%
@@ -3099,17 +3934,45 @@ Have fun!
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@putbox@middle}
+% \begin{macro}{mdf@putbox@middle}
% Output of the middle breakable contents.
% \begin{macrocode}
-\def\md@putbox@middle{%
- \ifvoid\@tempboxa
+\def\drawbrackgroundframetitle@middle{%
+ \ifdefempty{\mdf@frametitle}{}{%
+ \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\mdf@putbox@middle{%
+ \ifvoid\mdf@splitbox@two
\else%
\mdf@makebox@out{%
\mdf@makeboxalign@left%
- \md@tikz@settings%
+ \mdf@tikz@settings%
%
- \setlength\mdfboundingboxwidth{\wd\tw@}%
+ \setlength\mdfboundingboxwidth{\wd\mdf@splitbox@two}%
\advance\mdfboundingboxwidth by \mdf@innerleftmargin@length\relax%
\advance\mdfboundingboxwidth by \mdf@innerrightmargin@length\relax%
\ifbool{mdf@leftline}{%
@@ -3121,46 +3984,48 @@ Have fun!
\advance\mdfboundingboxwidth by \mdf@middlelinewidth@length\relax%
\advance\mdfboundingboxwidth by \mdf@outerlinewidth@length\relax}{}%
%
- \setlength\mdfboundingboxheight{\dimexpr\ht\tw@+\dp\tw@\relax}%
+ \setlength\mdfboundingboxheight{\dimexpr\ht\mdf@splitbox@two+\dp\mdf@splitbox@two\relax}%
\advance\mdfboundingboxheight by \mdf@splitbottomskip@length\relax%
%
\mdf@makebox@in[\mdfboundingboxwidth]{%
\null%
\begin{tikzpicture}[remember picture]
\begin{scope}
- \pgfmathsetlengthmacro\md@Ax{+\mdf@innerleftmargin@length}%
- \pgfmathsetlengthmacro\md@Ay{+\mdf@splitbottomskip@length}%
- \pgfmathsetlengthmacro\md@Ox{+0pt}%
- \pgfmathsetlengthmacro\md@Oy{+0pt}%
- \pgfmathsetlengthmacro\md@Px{+\mdfboundingboxwidth}%
- \pgfmathsetlengthmacro\md@Py{+\mdfboundingboxheight}%
+ \pgfmathsetlengthmacro\mdf@Ax{+\mdf@innerleftmargin@length}%
+ \pgfmathsetlengthmacro\mdf@Ay{+\mdf@splitbottomskip@length}%
+ \pgfmathsetlengthmacro\mdf@Ox{+0pt}%
+ \pgfmathsetlengthmacro\mdf@Oy{+0pt}%
+ \pgfmathsetlengthmacro\mdf@Px{+\mdfboundingboxwidth}%
+ \pgfmathsetlengthmacro\mdf@Py{+\mdfboundingboxheight}%
\ifbool{mdf@leftline}%
{%
- \pgfmathsetlengthmacro\md@Ax%
- {\md@Ax+\mdf@outerlinewidth@length+%
+ \pgfmathsetlengthmacro\mdf@Ax%
+ {\mdf@Ax+\mdf@outerlinewidth@length+%
\mdf@middlelinewidth@length+\mdf@innerlinewidth@length}%
- \pgfmathsetlengthmacro\md@Ox%
- {\md@Ox+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
+ \pgfmathsetlengthmacro\mdf@Ox%
+ {\mdf@Ox+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
}{}%
\ifbool{mdf@rightline}%
{%
- \pgfmathsetlengthmacro\md@Px%
- {\md@Px-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
+ \pgfmathsetlengthmacro\mdf@Px%
+ {\mdf@Px-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
}{}%
%
- \coordinate(O)at(\md@Ox,\md@Oy);%
- \coordinate(P)at(\md@Px,\md@Py);%
+ \coordinate(O)at(\mdf@Ox,\mdf@Oy);%
+ \coordinate(P)at(\mdf@Px,\mdf@Py);%
%
\ifboolexpr{bool {mdf@leftline} and bool {mdf@rightline}}%
- {\md@tikzbox@otl{(O)--(O|-P)(P)--(P|-O)}{(O)rectangle(P)}}{}%
+ {\mdf@tikzbox@otl{(O)--(O|-P)(P)--(P|-O)}{(O)rectangle(P)}}{}%
\ifboolexpr{bool {mdf@leftline} and not (bool {mdf@rightline})}%
- {\md@tikzbox@otl{(O)--(O|-P)}{(O)rectangle(P)}}{}%
+ {\mdf@tikzbox@otl{(O)--(O|-P)}{(O)rectangle(P)}}{}%
\ifboolexpr{not (bool {mdf@leftline}) and bool {mdf@rightline}}%
- {\md@tikzbox@otl{(P)--(P|-O)}{(O)rectangle(P)}}{}%
+ {\mdf@tikzbox@otl{(P)--(P|-O)}{(O)rectangle(P)}}{}%
\ifboolexpr{not (bool {mdf@leftline}) and not (bool {mdf@rightline})}%
- {\path[mdfbackground](O)rectangle(P)}{}%
+ {\path[mdfbackground](O)rectangle(P);}{}%
%
- \node[mdfbox]at(\md@Ax,\md@Ay){\box\tw@};% Ausgabebox einfuegen
+ \drawbrackgroundframetitle@middle
+%
+ \node[mdfbox]at(\mdf@Ax,\mdf@Ay){\box\mdf@splitbox@two};% Ausgabebox einfuegen
\end{scope}
%HIER KOMMT EIN WEITERES MAKRO
\end{tikzpicture}%
@@ -3172,17 +4037,43 @@ Have fun!
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@putbox@second}
+% \begin{macro}{mdf@putbox@second}
% Output of the last breakable contents.
% \begin{macrocode}
-\def\md@putbox@second{%
- \ifvoid\@tempboxa
+\def\drawbrackgroundframetitle@second{%
+ \ifdefempty{\mdf@frametitle}{}{%
+ \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%
- \md@tikz@settings%
+ \mdf@tikz@settings%
%
- \setlength\mdfboundingboxwidth{\wd\@tempboxa}%
+ \setlength\mdfboundingboxwidth{\wd\mdf@splitbox@one}%
\advance\mdfboundingboxwidth by \mdf@innerleftmargin@length\relax%
\advance\mdfboundingboxwidth by \mdf@innerrightmargin@length\relax%
\ifbool{mdf@leftline}{%
@@ -3194,7 +4085,7 @@ Have fun!
\advance\mdfboundingboxwidth by \mdf@middlelinewidth@length\relax%
\advance\mdfboundingboxwidth by \mdf@outerlinewidth@length\relax}{}%
%
- \setlength\mdfboundingboxheight{\dimexpr\ht\@tempboxa+\dp\@tempboxa\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%
@@ -3205,63 +4096,65 @@ Have fun!
\null%
\begin{tikzpicture}[remember picture]
\begin{scope}
- \pgfmathsetlengthmacro\md@Ax{+\mdf@innerleftmargin@length}%
- \pgfmathsetlengthmacro\md@Ay{+\mdf@innerbottommargin@length}%
- \pgfmathsetlengthmacro\md@Ox{+0pt}%
- \pgfmathsetlengthmacro\md@Oy{+0pt}%
- \pgfmathsetlengthmacro\md@Px{+\mdfboundingboxwidth}%
- \pgfmathsetlengthmacro\md@Py{+\mdfboundingboxheight}%
+ \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\md@Ax%
- {\md@Ax+\mdf@outerlinewidth@length+%
+ \pgfmathsetlengthmacro\mdf@Ax%
+ {\mdf@Ax+\mdf@outerlinewidth@length+%
\mdf@middlelinewidth@length+\mdf@innerlinewidth@length}%
- \pgfmathsetlengthmacro\md@Ox%
- {\md@Ox+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
+ \pgfmathsetlengthmacro\mdf@Ox%
+ {\mdf@Ox+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
}{}%
\ifbool{mdf@rightline}%
{%
- \pgfmathsetlengthmacro\md@Px%
- {\md@Px-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
+ \pgfmathsetlengthmacro\mdf@Px%
+ {\mdf@Px-\mdf@outerlinewidth@length-0.5\mdf@middlelinewidth@length}%
}{}%
\ifbool{mdf@bottomline}%
{%
- \pgfmathsetlengthmacro\md@Ay%
- {\md@Ay+\mdf@outerlinewidth@length+%
+ \pgfmathsetlengthmacro\mdf@Ay%
+ {\mdf@Ay+\mdf@outerlinewidth@length+%
\mdf@middlelinewidth@length+\mdf@innerlinewidth@length}%
- \pgfmathsetlengthmacro\md@Oy%
- {\md@Oy+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
+ \pgfmathsetlengthmacro\mdf@Oy%
+ {\mdf@Oy+\mdf@outerlinewidth@length+0.5\mdf@middlelinewidth@length}%
}{}%
%
- \coordinate(O)at(\md@Ox,\md@Oy);%
- \coordinate(P)at(\md@Px,\md@Py);%
+ \coordinate(O)at(\mdf@Ox,\mdf@Oy);%
+ \coordinate(P)at(\mdf@Px,\mdf@Py);%
%
- \ifboolexpr{test {\md@test@ltrb} or test {\md@test@lrb}}%
- {\md@tikzbox@tfl{(P-|O)--(O)--(O-|P)--(P)}}%
+ \ifboolexpr{test {\mdf@test@ltrb} or test {\mdf@test@lrb}}%
+ {\mdf@tikzbox@tfl{(P-|O)--(O)--(O-|P)--(P)}}%
{}%
- \ifboolexpr{test {\md@test@ltb} or test {\md@test@lb}}%
- {\md@tikzbox@otl{(P-|O)--(O)--(O-|P)}{(P)--(P|-O)[mdfcorners]--(O)--(O|-P)}}%
+ \ifboolexpr{test {\mdf@test@ltb} or test {\mdf@test@lb}}%
+ {\mdf@tikzbox@otl{(P-|O)--(O)--(O-|P)}{(P)--(P|-O)[mdfcorners]--(O)--(O|-P)}}%
{}%
- \ifboolexpr{test {\md@test@trb} or test {\md@test@rb}}%
- {\md@tikzbox@otl{(P)--(P|-O)--(O)}{(O|-P)--(P)[mdfcorners]--(P|-O)--(O)}}%
+ \ifboolexpr{test {\mdf@test@trb} or test {\mdf@test@rb}}%
+ {\mdf@tikzbox@otl{(P)--(P|-O)--(O)}{(O|-P)--(P)[mdfcorners]--(P|-O)--(O)}}%
{}%
- \ifboolexpr{test {\md@test@ltr} or test {\md@test@lr}}%
- {\md@tikzbox@otl{(O)--(O|-P)(P)--(P|-O)}{(O)rectangle(P)}}%
+ \ifboolexpr{test {\mdf@test@ltr} or test {\mdf@test@lr}}%
+ {\mdf@tikzbox@otl{(O)--(O|-P)(P)--(P|-O)}{(O)rectangle(P)}}%
{}%
- \ifboolexpr{test {\md@test@tb} or test {\md@test@b}}%
- {\md@tikzbox@otl{(O)--(O-|P)}{(O)rectangle(P)}}%
+ \ifboolexpr{test {\mdf@test@tb} or test {\mdf@test@b}}%
+ {\mdf@tikzbox@otl{(O)--(O-|P)}{(O)rectangle(P)}}%
{}%
- \ifboolexpr{test {\md@test@lt} or test {\md@test@l}}%
- {\md@tikzbox@otl{(O)--(O|-P)}{(O)rectangle(P)}}%
+ \ifboolexpr{test {\mdf@test@lt} or test {\mdf@test@l}}%
+ {\mdf@tikzbox@otl{(O)--(O|-P)}{(O)rectangle(P)}}%
{}%
- \ifboolexpr{test {\md@test@tr} or test {\md@test@r}}%
- {\md@tikzbox@otl{(O-|P)--(P)}{(O)rectangle(P)}}%
+ \ifboolexpr{test {\mdf@test@tr} or test {\mdf@test@r}}%
+ {\mdf@tikzbox@otl{(O-|P)--(P)}{(O)rectangle(P)}}%
{}%
- \md@test@t{\path[mdfbackground](O)rectangle(P)}{}%
+ \mdf@test@t{\path[mdfbackground,mdfcorners](O|-P)--(O)--(O-|P)--(P);}{}%
+%
+ \mdf@test@noline{\path[mdfbackground,mdfcorners](O|-P)--(O)--(O-|P)--(P);}{}%
%
- \md@test@noline{\path[mdfbackground,mdfcorners](O|-P)--(O)--(O-|P)--(P)}{}%
+ \drawbrackgroundframetitle@second
%
- \node[mdfbox] at (\md@Ax,\md@Ay){\box\@tempboxa};% Ausgabebox einfuegen
+ \node[mdfbox] at (\mdf@Ax,\mdf@Ay){\box\mdf@splitbox@one};% Ausgabebox einfuegen
\end{scope}
%HIER KOMMT EIN WEITERES MAKRO
\end{tikzpicture}%
@@ -3294,561 +4187,677 @@ Have fun!
%% Public License, as described in lppl.txt in the base LaTeX distribution.
%% Either version 1.0 or, at your option, any later version.
-%%$Id: mdframed.dtx 273 2011-12-10 09:21:09Z marco $
+%%$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
%
% \end{macrocode}
%
-% \begin{macro}{mdframedIIpackagename,md@frameIIdate@svn}
+% \begin{macro}{mdframedIIpackagename,mdf@frameIIdate@svn}
% local settings
% \begin{macrocode}
\def\mdframedIIpackagename{md-frame-2}
-\def\md@frameIIdate@svn$#1: #2 #3 #4-#5-#6 #7 #8${#4/#5/#6\space }
+\def\mdf@frameIIdate@svn$#1: #2 #3 #4-#5-#6 #7 #8${#4/#5/#6\space }
\ProvidesFile{md-frame-2.mdf}%
- [\md@frameIIdate@svn$Id: mdframed.dtx 273 2011-12-10 09:21:09Z marco $ %
+ [\mdf@frameIIdate@svn$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $ %
\mdversion: \mdframedIIpackagename]
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@ptlength@to@pscode,ptTps}
+% \begin{macro}{mdf@ptlength@to@pscode,ptTps}
% Command to calculate a latex length to postscript
% \begin{macrocode}
-\def\md@ptlength@to@pscode#1{\pst@number{#1} \pst@number\psxunit div }
-\let\ptTps\md@ptlength@to@pscode\relax
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{md@test@ltrb,md@test@ltr,md@test@ltb,md@test@trb,md@test@lrb,md@test@lb,md@test@rb,^^A
-% md@test@tr,md@test@lt,md@test@lr,md@test@tb,md@test@l,md@test@r,md@test@t,md@test@b,md@test@single}
-% Short forms of checking the option which lines should be drawn.
-% \begin{macrocode}
-%%%% _____t_____
-%%%% | |
-%%%% | |
-%%%% | |
-%%%% l| |r
-%%%% | |
-%%%% | |
-%%%% |___________|
-%%%% b
-%%Zusammenhaenge abfragen:
-\newrobustcmd*\md@test@ltrb{%
- \ifboolexpr{ (bool {mdf@topline}) and (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-%3-set
-\newrobustcmd*\md@test@ltr{%
- \ifboolexpr{ (bool {mdf@topline}) and not (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@ltb{%
- \ifboolexpr{ (bool {mdf@topline}) and (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@trb{%
- \ifboolexpr{ (bool {mdf@topline}) and (bool {mdf@bottomline})
- and not (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@lrb{%
- \ifboolexpr{ not (bool {mdf@topline}) and (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-%2-set
-\newrobustcmd*\md@test@lb{%
- \ifboolexpr{ not (bool {mdf@topline}) and (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@rb{%
- \ifboolexpr{ not (bool {mdf@topline}) and (bool {mdf@bottomline})
- and not (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@tr{%
- \ifboolexpr{ (bool {mdf@topline}) and not (bool {mdf@bottomline})
- and not (bool {mdf@leftline}) and (bool {mdf@rightline})}}
-\newrobustcmd*\md@test@lt{%
- \ifboolexpr{ (bool {mdf@topline}) and not (bool {mdf@bottomline})
- and (bool {mdf@leftline}) and not (bool {mdf@rightline})}}
-%Einzellinien
-\newrobustcmd*\md@test@single{%
- \ifboolexpr{ not (test {\md@test@ltrb} or test {\md@test@ltr} or
- test {\md@test@ltb} or test {\md@test@trb} or
- test {\md@test@lrb} or test {\md@test@lb} or
- test {\md@test@rb} or test {\md@test@tr} or
- test {\md@test@lt} ) }}
-
+\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 }
+\let\ptTps\mdf@ptlength@to@pscode\relax
+\let\ptTpsL\mdf@ptlength@to@pscode@length\relax
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{mdfbackgroundstyle,mdflinestyle}
+% \begin{macro}{mdfbackgroundstyle,mdflinestyle,mdfframetitlerule,mdfframetitlebackground}
% background and line settings for pstricks
% \begin{macrocode}
-\newpsstyle{mdfbackgroundstyle}{linecolor=\mdf@backgroundcolor,fillstyle=solid,%
- fillcolor=\mdf@backgroundcolor,linestyle=solid,%
- linewidth=\mdf@middlelinewidth@length,dimen=outer,%
+\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}%
+ \ifdimgreater{\mdf@middlelinewidth@length}{\z@}%
+ {\newpsstyle{mdfmiddlelinestyle}{%
+ linewidth=\mdf@middlelinewidth@length,%
+ linecolor=\mdf@middlelinecolor,dimen=middle
+ }}{}%
+\mdfpstricks@appendsettings
}%
%
-\newpsstyle{mdflinestyle}{linewidth=\mdf@middlelinewidth@length,%
- linecolor=\mdf@linecolor,%
- fillstyle=none,dimen=middle,}%
+\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}{md@putbox@single}
+%
+% \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}
+ }%
+ }{}
+ \par\unskip\vskip\mdf@innertopmargin@length%
+}%
+%
+% \begin{macro}{mdf@putbox@single}
% Single output
% \begin{macrocode}
-\def\md@putbox@single{%
- \ifvoid\@tempboxa
+% 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%
- \ifbool{mdf@leftline}{\hspace*{\mdf@middlelinewidth@length}}{}%
- \setlength\mdfboundingboxwidth{\wd\@tempboxa}%
- \setlength\mdfboundingboxheight{\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax}%
- \advance\mdfboundingboxheight by \mdf@innertopmargin@length\relax%
- \advance\mdfboundingboxheight by \mdf@innerbottommargin@length\relax%
- \ifbool{mdf@topline}%
- {\advance\mdfboundingboxheight by \mdf@middlelinewidth@length\relax}{}%
- \ifbool{mdf@bottomline}%
- {\advance\mdfboundingboxheight by \mdf@middlelinewidth@length\relax}{}%
- \advance\mdfboundingboxwidth by \mdf@innerleftmargin@length\relax%
- \advance\mdfboundingboxwidth by \mdf@innerrightmargin@length\relax%
- \psset{linearc=\mdf@roundcorner@length,cornersize=absolut,}%
- \expandafter\psset\expandafter{\mdf@psset@local}%
+ \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)
- \md@test@ltrb{%
- \psframe[style=mdflinestyle]%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul %
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul)%
- (! \ptTps{\mdfboundingboxwidth} %
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdfboundingboxheight}%
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)
- }{}
- \md@test@ltr{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul 0)%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- 0)
- }{}
- \md@test@ltb{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul)%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul)%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- (! \ptTps{\mdfboundingboxwidth} %X
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- }{}
- \md@test@trb{%
- \psline[style=mdflinestyle]%
- (! 0
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul)
- (! 0 \ptTps{\mdf@middlelinewidth@length} 0.5 mul)
- }{}
- \md@test@lrb{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg
- \ptTps{\mdfboundingboxheight})%
- (! \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul )%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul )
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdfboundingboxheight})
- }{}
- \md@test@lb{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg
- \ptTps{\mdfboundingboxheight})%
- (! \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul )%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul )
- }{}
- \md@test@rb{%
- \psline[style=mdflinestyle]%
- (! 0 \ptTps{\mdf@middlelinewidth@length} 0.5 mul )%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul )
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdfboundingboxheight})
- }{}
- \md@test@tr{%
- \psline[style=mdflinestyle]%
- (! 0
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- 0)
- }{}
- \md@test@lt{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul 0)%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- (! \ptTps{\mdfboundingboxwidth} %X
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- }{}
- \md@test@single{%
- \ifbool{mdf@bottomline}{%
- \psline[style=mdflinestyle]%
- (! 0 \ptTps{\mdf@middlelinewidth@length} 0.5 mul )%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul )
- }{}%
- \ifbool{mdf@topline}{%
- \psline[style=mdflinestyle]%
- (! 0 \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg add)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg add)
- }{}%
- \ifbool{mdf@leftline}{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul 0)%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul
- \ptTps{\mdfboundingboxheight} )%
- }{}%
- \ifbool{mdf@rightline}{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add 0)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add
- \ptTps{\mdfboundingboxheight} )%
- }{}%
- }{}%
- %Hintergrund
- \psframe[style=mdfbackgroundstyle]%
- (!0 \ifbool{mdf@bottomline}{\ptTps{\mdf@middlelinewidth@length}}{0})
- (! \ptTps{\mdfboundingboxwidth} %
- \ptTps{\mdfboundingboxheight}
- \ifbool{mdf@topline}{\ptTps{\mdf@middlelinewidth@length} sub}{})
- %Ausgabe
- \rput[b]%
- (!\ptTps{\mdfboundingboxwidth} 0.5 mul % X-Koordinate
- \ptTps{\mdf@innerbottommargin@length}
- \ifbool{mdf@bottomline}{\ptTps{\mdf@middlelinewidth@length} add}{}
- ){\box\@tempboxa}
- \end{pspicture}%
+ \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}
+ }{}%
+% \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
+ \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}{md@putbox@first}
+% \begin{macro}{mdf@putbox@first}
% First output
% \begin{macrocode}
-\def\md@putbox@first{%
- \ifvoid\@tempboxa
+\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\tw@}%
- \setlength\mdfboundingboxheight{\dimexpr\ht\tw@+\dp\tw@\relax}%
- \advance\mdfboundingboxheight by \mdf@innertopmargin@length\relax
- \advance\mdfboundingboxheight by \mdf@splitbottomskip@length\relax%
- \ifbool{mdf@topline}%
- {\advance\mdfboundingboxheight by \mdf@middlelinewidth@length\relax}{}%
- \advance\mdfboundingboxwidth by \mdf@innerleftmargin@length\relax%
- \advance\mdfboundingboxwidth by \mdf@innerrightmargin@length\relax%
+ %\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}{}%
\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)}
- %Hintergrund
- \psline[style=mdfbackgroundstyle,%
- linearc={\dimexpr\mdf@roundcorner@length%
- -\mdf@middlelinewidth@length\relax},]
- (! \ptTps{\mdf@middlelinewidth@length} 0.5 mul 0)%
- (! \ptTps{\mdf@middlelinewidth@length} 0.5 mul
- \ptTps{\mdfboundingboxheight}
- \ifbool{mdf@topline}%
- {\ptTps{\mdf@middlelinewidth@length} neg 1.5 mul add}%
- {\ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add} )%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg add %X
- \ptTps{\mdfboundingboxheight}
- \ifbool{mdf@topline}%
- {\ptTps{\mdf@middlelinewidth@length} neg 1.5 mul add}%
- {\ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add} )%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg add %X
- 0)
- \ifboolexpr{ test {\md@test@ltrb} or test {\md@test@ltr}}{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul 0)%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- 0)
- }{}
- \ifboolexpr{ test {\md@test@tr} or test {\md@test@trb}}{%
- \psline[style=mdflinestyle]%
- (! 0
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- 0)
- }{}
- \ifboolexpr{ test {\md@test@ltb} or test {\md@test@lt}}{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul 0)%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@roundcorner@length} neg add %X
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul add)%
- }{}
- \ifboolexpr{ test {\md@test@single} or test {\md@test@rb} or
- test {\md@test@lrb} or test {\md@test@lb}}{%
- \ifbool{mdf@topline}{%
- \psline[style=mdflinestyle]%
- (! 0 \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg add)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdfboundingboxheight}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg add)
- }{}%
- \ifbool{mdf@leftline}{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul 0)%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul
- \ptTps{\mdfboundingboxheight} )%
- }{}%
- \ifbool{mdf@rightline}{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add 0)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add
- \ptTps{\mdfboundingboxheight} )%
- }{}%
- }{}%
- %Ausgabe
- \rput[b](!
- \ptTps{\mdfboundingboxwidth} 0.5 mul % X-Koordinate
- \ptTps{\mdf@splitbottomskip@length}){\box\tw@}
- \end{pspicture}%
+ \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}
+ }{}%
+% \psclip{
+ %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
+ \end{pspicture}
}%
\mdf@makeboxalign@right%
}%
\fi
}%
+\def\drawbrackgroundframetitle@first{%
+ \ifdefempty{\mdf@frametitle}{}{%
+ \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
+}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@putbox@middle}
+% \begin{macro}{mdf@putbox@middle}
% Middle output
% \begin{macrocode}
-\def\md@putbox@middle{%
- \ifvoid\@tempboxa
+\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\tw@}%
- \setlength\mdfboundingboxheight{\dimexpr\ht\tw@+\dp\tw@\relax}%
- \advance\mdfboundingboxheight by \mdf@splitbottomskip@length\relax%
- \advance\mdfboundingboxwidth by \mdf@innerleftmargin@length\relax%
- \advance\mdfboundingboxwidth by \mdf@innerrightmargin@length\relax%
- \expandafter\psset\expandafter{\mdf@psset@local}%
- \psset{linearc=\mdf@roundcorner@length,cornersize=absolute}%
+% \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%
+ \psset{unit=1truecm}%
\mdf@makebox@in[\mdfboundingboxwidth]{%
- \null%
- \psset{unit=1truecm}%
- \ifdimgreater{\mdfboundingboxheight}{\vsize}
- {\begin{pspicture}(0,0)(\mdfboundingboxwidth,\vsize)}
- {\begin{pspicture}(0,0)(\mdfboundingboxwidth,\mdfboundingboxheight)}
- \ifbool{mdf@leftline}{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul 0)%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul
- \ptTps{\mdfboundingboxheight} )%
- }{}%
- \ifbool{mdf@rightline}{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add 0)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add
- \ptTps{\mdfboundingboxheight} )%
- }{}%
- %Hintergrund
- \psframe[style=mdfbackgroundstyle,%
- linearc=\z@]%
- (!0 0)
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdfboundingboxheight})
- %Ausgabe
- \rput[b](!
- \ptTps{\mdfboundingboxwidth} 0.5 mul % X-Koordinate
- \ptTps{\mdf@splitbottomskip@length} ){\box\tw@}
- \end{pspicture}%
+ \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}
+ }{}%
+ %%
+ \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}
+ \end{pspicture}%
}%
\mdf@makeboxalign@right%
}%
\fi
}%
+\def\drawbrackgroundframetitle@middle{%
+ \ifdefempty{\mdf@frametitle}{}{%
+ \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
+}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{md@putbox@second}
+% \begin{macro}{mdf@putbox@second}
% Last output
% \begin{macrocode}
-\def\md@putbox@second{
- \ifvoid\@tempboxa
+\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\@tempboxa}%
- \setlength\mdfboundingboxheight{\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax}%
- \advance\mdfboundingboxheight by \mdf@innerbottommargin@length\relax%
- \ifbool{mdf@bottomline}%
- {\advance\mdfboundingboxheight by \mdf@middlelinewidth@length\relax}{}%
- \advance\mdfboundingboxwidth by \mdf@innerleftmargin@length\relax%
- \advance\mdfboundingboxwidth by \mdf@innerrightmargin@length\relax%
- \expandafter\psset\expandafter{\mdf@psset@local}
- \psset{linearc=\mdf@roundcorner@length,cornersize=absolute}%
+% \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}{}%
\psset{unit=1truecm}%
- \mdf@makebox@in[\mdfboundingboxwidth]{%
+ \mdf@makebox@in[\mdfboundingboxwidth]{%
\null%
\begin{pspicture}(0,0)(\mdfboundingboxwidth,\mdfboundingboxheight)
- %Hintergrund
- \psline[style=mdfbackgroundstyle,%
- linearc={\dimexpr\mdf@roundcorner@length%
- -\mdf@middlelinewidth@length\relax},]%%
- (! \ptTps{\mdf@middlelinewidth@length} 0.5 mul
- \ptTps{\mdfboundingboxheight} )%
- (! \ptTps{\mdf@middlelinewidth@length} 0.5 mul
- \ifbool{mdf@bottomline}%
- {\ptTps{\mdf@middlelinewidth@length} neg 1.5 mul neg}%
- {\ptTps{\mdf@middlelinewidth@length} neg 0.5 mul neg} )%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg add
- \ifbool{mdf@bottomline}%
- {\ptTps{\mdf@middlelinewidth@length} neg 1.5 mul neg}%
- {\ptTps{\mdf@middlelinewidth@length} neg 0.5 mul neg} )%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg add
- \ptTps{\mdfboundingboxheight} )
- %%%%%%%%%%%%
- \ifboolexpr{ test {\md@test@ltrb} or test {\md@test@lrb}}{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg
- \ptTps{\mdfboundingboxheight})%
- (! \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul )%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul )
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdfboundingboxheight})
- }{}
- \ifboolexpr{ test {\md@test@ltb} or test {\md@test@lb}}{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg
- \ptTps{\mdfboundingboxheight})%
- (! \ptTps{\mdf@middlelinewidth@length} 0.5 mul neg
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul )%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul )
- }{}
- \ifboolexpr{ test {\md@test@trb} or test {\md@test@rb}}{%
- \psline[style=mdflinestyle]%
- (! 0 \ptTps{\mdf@middlelinewidth@length} 0.5 mul )%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul )
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add %X
- \ptTps{\mdfboundingboxheight})
- }{}
- \ifboolexpr{ test {\md@test@single} or test {\md@test@ltr} or
- test {\md@test@tr} or test {\md@test@lt}}{%
- \ifbool{mdf@bottomline}{%
- \psline[style=mdflinestyle]%
- (! 0 \ptTps{\mdf@middlelinewidth@length} 0.5 mul )%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul )
- }{}%
- \ifbool{mdf@leftline}{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul 0)%
- (! \ptTps{\mdf@middlelinewidth@length} neg 0.5 mul
- \ptTps{\mdfboundingboxheight} )%
- }{}%
- \ifbool{mdf@rightline}{%
- \psline[style=mdflinestyle]%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add 0)%
- (! \ptTps{\mdfboundingboxwidth}
- \ptTps{\mdf@middlelinewidth@length} 0.5 mul add
- \ptTps{\mdfboundingboxheight} )%
- }{}%
- }{}%
- %Ausgabe
- \rput[b](!
- \ptTps{\mdfboundingboxwidth} 0.5 mul % X-Koordinate
- \ptTps{\mdf@innerbottommargin@length}
- \ifbool{mdf@bottomline}{\ptTps{\mdf@middlelinewidth@length} add}{}
- ){\box\@tempboxa}
- \end{pspicture}%
+ \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}
+ }{}%
+ %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}
+% \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}{}{%
+ \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
+}
% \end{macrocode}
% \end{macro}
%
@@ -3859,6 +4868,757 @@ Have fun!
% \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
+%%$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
+\setcounter{errorcontextlines}{999}
+\documentclass[parskip=false,english,11pt]{ltxmdf}
+\ltxmdfsetifoot $Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
+
+\usepackage{showexpl}
+\lstset{style=lstltxmdf,explpreset={pos=b,rframe={}},}
+
+\newcommand\Loadedframemethod{default}
+\usepackage[framemethod=\Loadedframemethod]{mdframed}
+
+\title{The \Pack{mdframed} package}
+\subtitle{Examples for \Opt{framemethod=\Loadedframemethod}}
+\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}}
+\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 the package \Pack{showexpl}.}
+
+\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{LTXexample}
+\global\mdfdefinestyle{exampledefault}{%
+ linecolor=red,linewidth=3pt,%
+ leftmargin=1cm,rightmargin=1cm
+}
+\begin{mdframed}[style=exampledefault]
+\ExampleText
+\end{mdframed}
+\end{LTXexample}
+
+\Examplesec{hidden line + frame title}
+\begin{LTXexample}
+\global\mdfapptodefinestyle{exampledefault}{%
+ topline=false,rightline=true,bottomline=false}
+\begin{mdframed}[style=exampledefault,frametitle={Inhomogeneous linear}]
+\ExampleText
+\end{mdframed}
+\end{LTXexample}
+\clearpage
+
+\Examplesec{colored frame title}
+\begin{LTXexample}
+
+\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{LTXexample}
+
+\Examplesec{framed picture which is centered}
+\begin{LTXexample}
+\begin{mdframed}[userdefinedwidth=6cm,align=center,
+ linecolor=blue,linewidth=4pt]
+\includegraphics[width=\linewidth]{donald-duck}
+\end{mdframed}
+\end{LTXexample}
+
+\clearpage
+\Examplesec{Theorem environments}
+\begin{LTXexample}
+\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{LTXexample}
+
+
+\clearpage
+\Examplesec{theorem with separate header and the help of TikZ (complex)}
+\begin{LTXexample}
+\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{LTXexample}
+
+\clearpage
+\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-that-stay-with-theorem-environment}{Theorem decorations that stay with theorem environment}
+\begin{LTXexample}
+\makeatletter
+\newlength{\interruptlength}
+\setlength{\interruptlength}{2.5ex}
+\newrobustcmd\overlaplines{%
+ \appto\mdf@frame@leftline@single{%
+ \llap{\color{white}%
+ \rule[\dimexpr-\mdfboundingboxdepth+\interruptlength\relax]%
+ {\mdf@middlelinewidth@length}%
+ {\dimexpr\mdfboundingboxtotalheight%
+ \ifbool{mdf@topline}{+\mdf@middlelinewidth@length}{}
+ -2\interruptlength\relax}%
+ }%
+ }%
+ \appto\mdf@frame@rightline@single{%
+ \rlap{\color{white}%
+ \hspace*{\mdfboundingboxwidth}%
+ \hspace*{\mdf@innerrightmargin@length}%
+ \rule[\dimexpr-\mdfboundingboxdepth%
+ +\interruptlength\relax]%
+ {\mdf@middlelinewidth@length}%
+ {\dimexpr\mdfboundingboxtotalheight%
+ +\ifbool{mdf@topline}{\mdf@middlelinewidth@length}{0pt}
+ -2\interruptlength\relax}%
+ }%
+ }%
+}
+\makeatother
+\overlaplines
+
+\begin{mdframed}[linecolor=blue,linewidth=8pt]
+\ExampleText
+\end{mdframed}
+\end{LTXexample}
+\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
+%%$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
+\setcounter{errorcontextlines}{999}
+\documentclass[parskip=false,english,11pt]{ltxmdf}
+\ltxmdfsetifoot $Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
+
+\usepackage{showexpl}
+\lstset{style=lstltxmdf,explpreset={pos=b,rframe={}},}
+
+\newcommand\Loadedframemethod{TikZ}
+\usepackage[framemethod=\Loadedframemethod]{mdframed}
+
+\title{The \Pack{mdframed} package}
+\subtitle{Examples for \Opt{framemethod=\Loadedframemethod}}
+\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}}
+\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 the package \Pack{showexpl}.}
+
+\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
+\ExampleText{round corner}
+\begin{LTXexample}
+\global\mdfdefinestyle{exampledefault}{%
+ outerlinewidth=5pt,innerlinewidth=0pt,
+ outerlinecolor=red,roundcorner=5pt
+}
+\begin{mdframed}[style=exampledefault]
+\ExampleText
+\end{mdframed}
+\end{LTXexample}
+
+\Examplesec{hidden line + frame title}
+\begin{LTXexample}
+\global\mdfapptodefinestyle{exampledefault}{%
+ topline=false,leftline=false,}
+\begin{mdframed}[style=exampledefault,frametitle={Inhomogeneous linear}]
+\ExampleText
+\end{mdframed}
+\end{LTXexample}
+\clearpage
+\Examplesec{framed picture which is centered}
+\begin{LTXexample}
+\begin{mdframed}[userdefinedwidth=6cm,align=center,
+ linecolor=blue,middlelinewidth=4pt,roundcorner=5pt]
+\includegraphics[width=\linewidth]{donald-duck}
+\end{mdframed}
+\end{LTXexample}
+
+\Examplesec{Gimmick}
+\begin{LTXexample}
+\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{LTXexample}
+
+\Examplesec{complex example with TikZ}
+
+\begin{tltxmdfexample}
+\tikzstyle{titregris} =
+ [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{}
+\define@key{mdf}{exercisepoints}{%
+ \def\mdf@@exercisepoints{#1}
+}
+\renewrobustcmd\mdfcreateextratikz{%
+ \node[titregris,xshift=1cm] at (P-|O) %
+ {~\mdf@frametitlefont{\theexercise}~};
+ \ifdefempty{\mdf@@exercisepoints}%
+ {}%
+ {\node[titregris,left,xshift=-1cm] at (P)%
+ {~\mdf@frametitlefont{\mdf@@exercisepoints points}~};}%
+}
+\makeatother
+
+\mdfdefinestyle{exercisestyle}{%
+ outerlinewidth=1pt,
+ innerlinewidth=0pt,
+ roundcorner=2pt,
+ linecolor=gray,
+ tikzsetting={shading = exersicebackground},
+ innertopmargin=1.2\baselineskip,
+ skipabove={\dimexpr0.5\baselineskip+\topskip\relax},
+ needspace=3\baselineskip,
+ frametitlefont=\sffamily\bfseries,
+ settings={\global\stepcounter{exercise}},
+ }
+
+\begin{mdframed}[style=exercisestyle,]
+\ExampleText
+\end{mdframed}
+
+\begin{mdframed}[style=exercisestyle,exercisepoints=10]
+\ExampleText
+\end{mdframed}
+\end{tltxmdfexample}
+
+\tikzstyle{titregris} =
+ [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{}
+\define@key{mdf}{exercisepoints}{%
+ \def\mdf@@exercisepoints{#1}
+}
+\newrobustcmd\mdfcreateextratikzlocal{%
+ \node[titregris,xshift=1cm] at (P-|O) {~\textbf{\theexercise}~};
+ \ifdefempty{\mdf@@exercisepoints}%
+ {}%
+ {\node[titregris,left,xshift=-1cm] at (P)%
+ {~\mdf@frametitlefont{\mdf@@exercisepoints points}~};}%
+}
+\makeatother
+
+\mdfdefinestyle{exercisestyle}{%
+ outerlinewidth=1pt,
+ innerlinewidth=0pt,
+ roundcorner=2pt,
+ linecolor=gray,
+ tikzsetting={shading = exersicebackground},
+ innertopmargin=1.2\baselineskip,
+ skipabove={\dimexpr0.5\baselineskip+\topskip\relax},
+ needspace=3\baselineskip,
+ frametitlefont=\sffamily\bfseries,
+ settings={\global\stepcounter{exercise}\let\mdfcreateextratikz\mdfcreateextratikzlocal},
+ }
+
+\begin{mdframed}[style=exercisestyle,]
+\ExampleText
+\end{mdframed}
+
+\begin{mdframed}[style=exercisestyle,exercisepoints=10]
+\ExampleText
+\end{mdframed}
+
+\clearpage
+\Examplesec{Theorem environments}
+\begin{LTXexample}
+\mdfdefinestyle{theoremstyle}{%
+ linecolor=red,linewidth=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{LTXexample}
+
+\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
+%%$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
+\setcounter{errorcontextlines}{999}
+\documentclass[parskip=false,english,11pt]{ltxmdf}
+\ltxmdfsetifoot$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
+
+\lstDeleteShortInline{|}
+\newcommand\Loadedframemethod{PSTricks}
+\usepackage[framemethod=\Loadedframemethod]{mdframed}
+
+\usepackage{showexpl}
+\lstset{style=lstltxmdf,explpreset={pos=b,rframe={}},}
+
+\title{The \Pack{mdframed} package}
+\subtitle{Examples for \Opt{framemethod=\Loadedframemethod}}
+\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}}
+\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 the package \Pack{showexpl}.}
+X
+\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{LTXexample}
+\global\mdfdefinestyle{exampledefault}{%
+ linecolor=red,middlelinewidth=3pt,%
+ leftmargin=1cm,rightmargin=1cm
+}
+\begin{mdframed}[style=exampledefault,roundcorner=5]
+\ExampleText
+\end{mdframed}
+\end{LTXexample}
+
+\Examplesec{hidden line + frame title}
+\begin{LTXexample}
+\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{LTXexample}
+
+\clearpage
+
+\Examplesec{Dash Lines}
+\begin{LTXexample}
+\global\mdfdefinestyle{exampledefault}{%
+ pstrickssetting={linestyle=dashed,},linecolor=red,linewidth=5pt}
+\begin{mdframed}[style=exampledefault,]
+\ExampleText
+\end{mdframed}
+\end{LTXexample}
+
+\Examplesec{Double Lines}
+\begin{LTXexample}
+\global\mdfdefinestyle{exampledefault}{%
+ pstrickssetting={doubleline=true,doublesep=6pt},
+ linecolor=red,linewidth=5pt,middlelinewidth=4pt}
+\begin{mdframed}[style=exampledefault,]
+\ExampleText
+\end{mdframed}
+\end{LTXexample}
+\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
+%%$Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
+\setcounter{errorcontextlines}{999}
+\documentclass[parskip=false,english,11pt,ltxlipsum]{ltxmdf}
+\ltxmdfsetifoot $Id: mdframed.dtx 312 2012-01-08 12:43:36Z marco $
+
+\usepackage{showexpl}
+\lstset{style=lstltxmdf,explpreset={pos=b,rframe={}},}
+
+\newcommand\Loadedframemethod{default}
+\usepackage[framemethod=\Loadedframemethod]{mdframed}
+
+\title{The \Pack{mdframed} package}
+\subtitle{Examples for \Opt{framemethod=\Loadedframemethod}}
+\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}}
+\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 the package \Pack{showexpl}.}
+
+\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-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={lstlisting}]
+\surroundwithmdframed{listings}
+\end{tltxmdfexample}
+
+\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{LTXexample}
+\begin{multicols}{2}
+\lipsum[1]
+\begin{mdframed}
+\ExampleText
+\end{mdframed}
+\lipsum[2]
+\end{multicols}
+\end{LTXexample}
+\clearpage
+\twocolumn[\Examplesec{Working in twocolumn mode}]
+\begin{tltxmdfexample}
+\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}
+\lipsum[1]\lipsum[2]
+\begin{mdframed}[leftmargin=10pt,%
+ rightmargin=10pt,%
+ linecolor=red,
+ backgroundcolor=yellow]
+\ExampleText
+\end{mdframed}
+\lipsum[2]
+\clearpage
+\onecolumn
+\Examplesec{Working inside enumerate}
+\begin{LTXexample}
+Text Text Text Text Text Text Text Text
+\begin{enumerate}
+\item in the following \ldots
+ \begin{mdframed}[linecolor=blue,linewidth=2]
+ \ExampleText
+ \end{mdframed}
+\item \lipsum[2]
+\end{enumerate}
+Text Text Text Text Text Text
+\end{LTXexample}
+\end{document}
+ \endinput
+% \end{macrocode}
+%
+%\iffalse
+% \begin{macrocode}
+%</mdframed-example-texsx>
+% \end{macrocode}
+%\fi
+%
+%
+%
% \Finale
%
\endinput