diff options
author | Karl Berry <karl@freefriends.org> | 2011-09-11 23:33:45 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-09-11 23:33:45 +0000 |
commit | aa9c5f6a29813abf377376fe0669a48ca5ee5dde (patch) | |
tree | 3cf29c585eb77c4bfec9ea4eb9a296f8c4b391d8 /Master/texmf-dist/doc | |
parent | 245bdb189ef1aad54d7c3a6da23c072067179b67 (diff) |
mdframed 0.9e (11sep11)
git-svn-id: svn://tug.org/texlive/trunk@23902 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r-- | Master/texmf-dist/doc/latex/mdframed/README | 20 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.pdf | bin | 136219 -> 142805 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.tex | 444 |
3 files changed, 327 insertions, 137 deletions
diff --git a/Master/texmf-dist/doc/latex/mdframed/README b/Master/texmf-dist/doc/latex/mdframed/README index cf04fcfaf66..4ba5eac5f01 100644 --- a/Master/texmf-dist/doc/latex/mdframed/README +++ b/Master/texmf-dist/doc/latex/mdframed/README @@ -1,18 +1,20 @@ -%%$Id: README 190 2011-09-07 10:39:52Z marco $ -%%$Rev: 190 $ +%%$Id: README 198 2011-09-11 10:50:44Z marco $ +%%$Rev: 198 $ %%$Author: marco $ -%%$Date: 2011-09-07 12:39:52 +0200 (Mi, 07. Sep 2011) $ +%%$Date: 2011-09-11 12:50:44 +0200 (So, 11. Sep 2011) $ + +The standard methods for framing text (\fbox or \fcolorbox) +require you to handle page breaks by hand, meaning that you +have to split the \fbox into two. The present package +defines the environment \mdfamed which automatically deals +with pagebreaks in framed text. -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 ---------------------------- -v0.9b -- fixes bugs in \newmdtheoremenv (Thanks to Enrico Gregorio) - +v0.9e +- working with twoside modus diff --git a/Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.pdf b/Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.pdf Binary files differindex 6e4ab46c6d3..16a9edba958 100644 --- a/Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.pdf +++ b/Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.pdf diff --git a/Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.tex b/Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.tex index fb041fc1032..3795a2c3d27 100644 --- a/Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.tex +++ b/Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.tex @@ -1,6 +1,6 @@ %Documenation of the package mdframed -%%$Id: mdframed-doc-en.tex 188 2011-09-07 10:32:16Z marco $ -%%$Rev: 188 $ +%%$Id: mdframed-doc-en.tex 198 2011-09-11 10:50:44Z marco $ +%%$Rev: 198 $ %%$Author: marco $ %%$Dater:$ %% [latex -> ps -> pdf] @@ -8,7 +8,7 @@ \documentclass[english,11pt,]{scrartcl} %\usepackage{showframe} \usepackage[nofancy,draft,notoday]{svninfo} -\svnInfo $Id: mdframed-doc-en.tex 188 2011-09-07 10:32:16Z marco $ +\svnInfo $Id: mdframed-doc-en.tex 198 2011-09-11 10:50:44Z marco $ \usepackage{babel} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} @@ -34,11 +34,14 @@ \ifoot{\svnId} -\usepackage[left=5cm,right=3cm,top=3cm,bottom=2cm]{geometry} - +\usepackage[left=5cm,right=3cm,top=3cm,bottom=3cm]{geometry} +\usepackage{array,booktabs} \usepackage{xcolor} -\definecolor{titleblue}{rgb}{0,0,0.9} +\usepackage{tikz} +\usetikzlibrary{calc,backgrounds,arrows,matrix} + +\colorlet{titleblue}{blue!30!black} \usepackage{amsmath} \usepackage[amsmath]{ntheorem} @@ -80,7 +83,8 @@ skipabove,ntheorem,theorem,lemma,mdframed,linecolor,% frametitle,infobox,innerlinewidth,roundcorner,leftline,topline,% splitbottomskip,middlelinewidth,middlelinecolor,tikzsetting,% - rightline,bottomline,innerrightmargin,style,linewidth,lem,section},% + rightline,bottomline,innerrightmargin,style,linewidth,lem,section,% + definedstyle,needspace,mdf@globalstyle@cnt,framemethod},% moretexcs={newmdtheoremenv,newmdenv,theoremstyle,mdfsetup,@length,% md@putbox@single,@tempboxa,mdf@,% mdf@linewidth,mdf@leftmargin@length,interruptlength,% @@ -88,7 +92,7 @@ color,md@frame@leftline@single,mdf@innerbottommargin@length,% mdf@middlelinewidth@length,mdfboundingboxheight,% md@frame@rightline@single,mdfboundingboxwidth,% - mdf@innerrightmargin@length}, + mdf@innerrightmargin@length,mdfdefinestyle,defcounter}, #1, }% }% @@ -111,7 +115,7 @@ \makeatother \newcommand*\mdoption[1]{\textsf{\bfseries\color{titleblue}#1}} \newcommand*\mdname{\textsf{mdframed}\xspace} -\newcommand*\mdpack[1]{\textsf{#1}\xspace} +\newcommand*\mdpack[1]{\texttt{#1}\xspace} \newcommand*\mdsetting[1]{\textsf{#1}\xspace} \newcommand*\mdcommand[1]{\texttt{\textbackslash #1}\xspace} @@ -127,9 +131,6 @@ \textsf{\bfseries\color{titleblue}\textbackslash #2}% \quad}{#1}\ignorespaces} - \usepackage{pst-node} - \usepackage{pstricks-add} - \usepackage{hyperref} \hypersetup{% breaklinks=true, @@ -162,24 +163,18 @@ bookmarksdepth=4, \end{center} \begin{abstract} The standard methods for framing text (\mdcommand{fbox} or \mdcommand{fcolorbox}) require you to handle page breaks by hand, meaning that you have to split the \mdcommand{fbox} into two. The present package defines the environment \mdname which automatically deals with pagebreaks in framed text.\par -By using \mdcommand{newenvironment} the user may choose between several individual designs. +By defining new environments the user may choose between several individual designs. \end{abstract} +\vspace*{2\baselineskip} + \pdfbookmark[1]{\contentsname}{tocbook} \tableofcontents + + \section{Motivation} Many users wish to (further) emphasize lemmata, definitions, proofs, etc. The package \mdname allows you to create environments with breakable frames. I think an example is the best way to demonstrate its properties. -\begin{mdexample} -\newmdtheoremenv[outerlinewidth=2,leftmargin=40, - rightmargin=40,backgroundcolor=yellow,% - outerlinecolor=blue,innertopmargin=0pt,% - splittopskip=\topskip,skipbelow=\baselineskip,% - skipabove=\baselineskip,ntheorem]{theorem}% - {Theorem}[section] -\begin{theorem}[Pythagorean theorem] -... -\end{theorem} -\end{mdexample} + %\newtheorem{mdtheorem}{Theorem}[section] \newmdtheoremenv[outerlinewidth=2,leftmargin=40,rightmargin=40,% @@ -194,6 +189,21 @@ Many users wish to (further) emphasize lemmata, definitions, proofs, etc. The pa \[ a^2+b^2=c^2 \] \end{theorem} +The frame was defined with the following settings. + +\begin{mdexample} +\newmdtheoremenv[outerlinewidth=2,leftmargin=40, + rightmargin=40,backgroundcolor=yellow,% + outerlinecolor=blue,innertopmargin=0pt,% + splittopskip=\topskip,skipbelow=\baselineskip,% + skipabove=\baselineskip,ntheorem]{theorem}% + {Theorem}[section] +\begin{theorem}[Pythagorean theorem] +... +\end{theorem} +\end{mdexample} + + \section{Syntax}\label{sec:syntax} The package itself loads the packages \mdpack{kvoptions}, \mdpack{etoolbox}, \mdpack{calc} and \mdpack{color}. By setting the correct options \mdpack{mdframed} will load \mdpack{xcolor}, \mdpack{tikz} or \mdpack{pstricks}. @@ -212,10 +222,16 @@ The package defines only one environment with the following syntax: With version 0.8 you have two commands to create environments with \mdpack{mdframed}. -\par\kern\baselineskip% -\noindent\llap{\textsf{\bfseries\color{titleblue}autodetecting floats}\quad}\ignorespaces +\mdDescribeMacro{autodetecting floats} With version 0.9 I added a detection of \mdpack{float} or \mdpack{minipage} environments. If you use \mdname in such an environment \mdname will use the option \mdoption{nobreak} automaticlly. +\mdDescribeMacro{twoside-mode} With version 0.9d I added the detection of the \mdpack{twoside}. When you are using \mdname inside \mdpack{twoside} mode you have to set the option \mdoption{innermargin} +and \mdoption{outermargin} (see section \ref{optlength}). + +%%%%%%%%%%%%%%%%%%%%%%% +\section{Commands} +The following commands should countenance your by the handling with \mdpack{mdframed} + \mdDescribeCmd[]{newmdenv} The command has the following syntax: \begin{mdexample} \newmdenv[<MDFRAMED OPTIONS>]{Name of the environment} @@ -231,7 +247,7 @@ In this way you can simply use: \mdDescribeCmd[]{renewmdenv} By using this command you can redifine environments which are created by \mdcommand{newmdenv}. \mdDescribeCmd[]{newmdtheoremenv} -Since the package is often used to highlight theorem environments, I have created a command\footnote{Thanks to Martin Scharrer:\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: +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: \begin{mdexample}[deletekeywords={mdframed}] \newmdtheoremenv[<mdframed-options>]{<envname>}% @@ -250,10 +266,31 @@ The last four arguments are equivalent to the command \mdcommand{newtheorem}. On So far there is no \mdcommand{renewmdtheoremenv}! +\mdDescribeMacro{\textbackslash mdfsetup}To set the options globally +you can use the optional argument of \mdcommand{usepackage} or +you can use the command \mdcommand{mdfsetup} which is not limited to the preamble. + +\mdDescribeMacro{\textbackslash mdfdefinestyle} \mdcommand{mdfdefinestyle} allow the user to define diffenrent styles and use as an option of \mdpack{mdframed} via \mdoption{style}. The option \mdoption{style} is explained in section \ref{genopt}. + +Here a small example: +\begin{mdexample}[morekeywords={mystyle}] +\mdfdefinestyle{mystyle}{leftmargin=0pt,% + linecolor=blue} +.... +\begin{mdframed}[style=mystyle] +foo +\end{mdframed} +\end{mdexample} + + + + + +%%%%%%%%%%%%%%%%%%%%%%% \section{Options} The package allows the following global and local options: -\subsection{Global Options} +\subsection{Global Options}\label{globopt} The following options are only global options. \mdDescribeMacro[none]{xcolor} @@ -261,22 +298,37 @@ By setting this key, the package \mdpack{xcolor} will be loaded with the given value(s). Without any value \mbox{\mdname} loads the package \mdpack{color} without any options. -\mdDescribeMacro[0]{style} -With this key you can change the way frames are drawn. By using -\mdoption{style=0} the frames are drawn by the \LaTeX-command \mdcommand{rule}. -By setting the key to \mdoption{style=1} the package -\mdpack{tikz} will draw the frames. By setting the key to \mdoption{style=3} the -package \mdpack{pstricks} will draw the frames. The manipulation of the frames -depends on the \mdoption{style}. For further information see below. +\mdDescribeMacro[default]{framemethod} +With this key you can change the way frames are drawn. You can decide whether the frame is drawn with +\begin{enumerate} + \item \LaTeX-commands {\small\mdcommand{hrule}, \mdcommand{vrule}, \mdcommand{rule}}, + \item \mdpack{TikZ} {\small(the package \mdpack{TikZ} will be loaded)} or + \item \mdpack{PSTricks} {\small(the package \mdpack{pstricks} will be loaded)}. +\end{enumerate} +The option \mdoption{framemethod} requires a string. Allowed combination are listed in the following table. +\begin{table}[!ht] +\centering +\renewcommand*\arraystretch{1.3} +\caption{Allowed keys for \mdoption{framemethod}} +\begin{tabular}{@{}>{\small\bfseries}l>{\small\ttfamily}l@{}} +\toprule +\multicolumn{1}{@{}l}{\textbf{Method}} & \multicolumn{1}{l}{Allowed keys} \\\midrule +\LaTeX-commands & default, tex, latex, none, 0 \\ +\mdpack{TikZ} & tikz, 1 \\ +\mdpack{PSTricks} & pstricks, ps, postscript, 2 \\\bottomrule +\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.} + +\noindent\textbf{Note}\qquad The manipulation of the frames depends on the option \mdoption{framemethod}. For further information see below. + \subsection{Global and Local Options} The options listed below can be set globally or locally. -\mdDescribeMacro{\textbackslash mdfsetup}To set the options globally -you can use the optional argument of \mdcommand{usepackage} or -you can use the command \mdcommand{mdfsetup} which is not limited to the preamble. -\subsubsection{Options with lengths} +\subsubsection{Options with lengths}\label{optlength} In figure \eqref{fig:laengen} you can see the adjustable lengths which will be described below. All lengths accept two kinds of input. The first one is a length (e.g. 2pt) and @@ -285,43 +337,93 @@ the second one is a number (e.g. 2) which will be multiplied by \mdoption{1 defa \begin{center} % \includegraphics{laengen} -\psscalebox{0.7}{% -\Large -\begin{pspicture}(-2,-2)(12,8) - % - \psframe[fillstyle=vlines,linecolor=green!70!black,hatchcolor=green!70!black](2,2)(8,4) - \rput*(5,3){Contents} - \psframe[linecolor=red!70!black,linewidth=10pt](0,0)(10,6) - \psframe[linecolor=blue!70!black,linewidth=10pt](!0 0.1 3 mul add - 0 3 0.1 mul add )% - (! 10 0.1 3 mul neg add - 6 0.1 3 mul neg add) - \psframe[linecolor=yellow!70!black,linewidth=10pt](!0 0.2 3 mul add - 0 3 0.2 mul add )% - (! 10 0.2 3 mul neg add - 6 0.2 3 mul neg add) - \psline{<->}(5,6)(5,8) - \uput[0](5,7){skipabove} - \psline{<->}(5,0)(5,-2) - \uput[0](5,-1){skipbelow} - \psline{<->}(5,4)(5,5.1) - \uput*[90](5,4){innertopmargin} - \psline{<->}(5,2)(5,0.9) - \uput*[90](5,1){innerbottommargin} - \psline{<->}(10,3)(12,3) - \uput[0](10,2.8){rightmargin} - \psline{<->}(0,3)(-2,3) - \uput[180](0,2.8){leftmargin} - \psline{<->}(8,3)(9.1,3) - \uput*[0](8.2,3){\psrotateleft{innerrightmargin}} - \psline{<->}(0.9,3)(2,3) - \uput*[0](1.2,3){\psrotateleft{innerleftmargin}} - \psline(-2,8)(12,8)\uput*[0](-2,8){text above} - \psline(-2,-2)(12,-2)\uput*[0](-2,-2){text below} -\end{pspicture} -} - - \captionof{figure}{adjustable lengths of \mdpack{mdframed}} +\begin{tikzpicture}[scale=0.9] + %Declaration + \newlength{\linew} + \setlength{\linew}{5pt} + \tikzstyle{every node}=[font=\bfseries\large\sffamily] + \coordinate (innersep) at (3.2,2.25); + \coordinate (outersep) at (3.2,2); + %Center + \node[fill=green!10,draw=black,framed,rounded corners,minimum width=3cm,minimum height=1.5cm]% + (CenterNode) {Contents}; + + %frames + \draw[draw=red!70!black,line width=\linew] % + ($(CenterNode)+(innersep)$) % + rectangle ($(CenterNode)-(innersep)$); + \draw[draw=blue!70!black,line width=\linew] % + ($(CenterNode)+(innersep)+(\linew,\linew)$)% + rectangle ($(CenterNode)-(innersep)+(-\linew,-\linew)$); + \draw[draw=yellow!70!black,line width=\linew] + ($(CenterNode)+(innersep)+(2\linew,2\linew)$)% + rectangle ($(CenterNode)-(innersep)+(-2\linew,-2\linew)$); + \draw[draw=black,line width=1] ($(CenterNode)+(innersep)+(outersep)$)% + rectangle ($(CenterNode)-(innersep)-(outersep)$); + + + \tikzstyle{every node}=[font=\small\ttfamily] + %%innertopmargin + \draw[draw=black,triangle 45-triangle 45]let \p1=(innersep) in + (CenterNode.north) -- ($(CenterNode)+(0,\y1)-(0,.5\linew)$) ; + \path let \p1=(innersep) in + (CenterNode.north) edge node[align=center,framed,fill=white,draw=white]{innertopmargin} + ($(CenterNode)+(0,\y1)-(0,.5\linew)$) ; + %%innerbottommargin + \draw[draw=black,triangle 45-triangle 45]let \p1=(innersep) in + (CenterNode.south) -- ($(CenterNode)-(0,\y1)+(0,.5\linew)$) ; + \path let \p1=(innersep) in + (CenterNode.south) edge node[align=center,framed,fill=white,draw=white]{innerbottommargin} + ($(CenterNode)-(0,\y1)+(0,.5\linew)$) ; + + %%innerleftmargin + \draw[draw=black,triangle 45-triangle 45]let \p1=(innersep) in + (CenterNode.west) -- ($(CenterNode)-(\x1,0)+(.5\linew,0)$) ; + \path let \p1=(innersep) in + (CenterNode.west) edge + node[align=center,rotate=90,framed,fill=white,draw=white]{innerleftmargin} + ($(CenterNode)-(\x1,0)+(.5\linew,0)$) ; + %%innerrightmargin + \draw[draw=black,triangle 45-triangle 45]let \p1=(innersep) in + (CenterNode.east) -- ($(CenterNode)+(\x1,0)-(.5\linew,0)$) ; + \path let \p1=(innersep) in + (CenterNode.east) edge + node[align=center,rotate=90,framed,fill=white,draw=white]{innerrightmargin} + ($(CenterNode)+(\x1,0)-(.5\linew,0)$) ; + + + %%leftmargin + \draw[draw=black,triangle 45-triangle 45]let \p1=(innersep) , \p2=(outersep) in + ($(CenterNode)-(\x1,0)-(2.5\linew,0)$) -- ($(CenterNode)-(\x1,0)-(\x2,0)$) ; + \path let \p1=(innersep) , \p2=(outersep) in + ($(CenterNode)-(\x1,0)-(2.5\linew,0)$) edge + node[align=center,rotate=0,framed,fill=white,draw=white]{leftmargin} + ($(CenterNode)-(\x1,0)-(\x2,0)$) ; + %%rightmargin + \draw[draw=black,triangle 45-triangle 45]let \p1=(innersep) , \p2=(outersep) in + ($(CenterNode)+(\x1,0)+(2.5\linew,0)$) -- ($(CenterNode)+(\x1,0)+(\x2,0)$) ; + \path let \p1=(innersep) , \p2=(outersep) in + ($(CenterNode)+(\x1,0)+(2.5\linew,0)$) edge + node[align=center,rotate=0,framed,fill=white,draw=white]{rightmargin} + ($(CenterNode)+(\x1,0)+(\x2,0)$) ; + + %%skipabove + \draw[draw=black,triangle 45-triangle 45]let \p1=(innersep) , \p2=(outersep) in + ($(CenterNode)+(0,\y1)+(0,2.5\linew)$) -- ($(CenterNode)+(0,\y1)+(0,\y2)$) ; + \path let \p1=(innersep) , \p2=(outersep) in + ($(CenterNode)+(0,\y1)+(0,2.5\linew)$) edge + node[align=center,rotate=0,framed,fill=white,draw=white]{skipabove} + ($(CenterNode)+(0,\y1)+(0,\y2)$) ; + %%skipbelow + \draw[draw=black,triangle 45-triangle 45]let \p1=(innersep) , \p2=(outersep) in + ($(CenterNode)-(0,\y1)-(0,2.5\linew)$) -- ($(CenterNode)-(0,\y1)-(0,\y2)$) ; + \path let \p1=(innersep) , \p2=(outersep) in + ($(CenterNode)-(0,\y1)-(0,2.5\linew)$) edge + node[align=center,rotate=0,framed,fill=white,draw=white]{skipbelow} + ($(CenterNode)-(0,\y1)-(0,\y2)$) ; +\end{tikzpicture} + + \captionof{figure}{adjustable lengths of \mdname} \label{fig:laengen} \end{center} @@ -340,27 +442,31 @@ the second one is a number (e.g. 2) which will be multiplied by \mdoption{1 defa \paragraph*{The following lengths are not shown in figure \eqref{fig:laengen}.} \mbox{} +\mdDescribeMacro{outermargin} Sets the length of the outer margin. This option is only avaidable in \texttt{twoside}-mode. +\mdDescribeMacro{innermargin} Sets the length of the inner margint. This option is only avaidable in \texttt{twoside}-mode. + + \mdDescribeMacro[0pt]{splittopskip} Sets the length of the skip above the split part of the environment. \mdDescribeMacro[0pt]{splitbottomskip} Sets the length of the skip below the splitt part of the environment. \mdDescribeMacro[0.4pt]{linewidth} Sets the width of the line around the environment. \mdDescribeMacro[0pt]{roundcorner} Sets the size of the radius of the corners of the frames. - \textbf{This works only with \mdoption{style=1} and \mdoption{style=3}.} + \textbf{This works only with \mdoption{framemethod=TikZ} and \mdoption{framemethod=PSTricks}.} \mdDescribeMacro[0pt]{innerlinewidth} Sets the width of the inner line around the environment. - \textbf{This works only with \mdoption{style=1}.} + \textbf{This works only with \mdoption{framemethod=TikZ}.} \mdDescribeMacro[0pt]{outerlinewidth} Sets the width of the outer line around the environment. - \textbf{This works only with \mdoption{style=1}.} + \textbf{This works only with \mdoption{framemethod=TikZ}.} \mdDescribeMacro[\newline linewidth]{middlelinewidth} Sets the width of the middle line around the environment. - \textbf{This works only with \mdoption{style=1}.} + \textbf{This works only with \mdoption{framemethod=TikZ}.} \subsubsection{Colored Options} \mdDescribeMacro[black]{linecolor} Sets the color of the line around the environment. \mdDescribeMacro[\newline linecolor]{innerlinecolor} Sets the color of the inner line around the environment. - \textbf{This works only with \mdoption{style=1}.} + \textbf{This works only with\mdoption{framemethod=TikZ}.} \mdDescribeMacro[\newline linecolor]{middlelinecolor} Sets the color of the middle line around the environment. - \textbf{This works only with \mdoption{style=1}.} + \textbf{This works only with \mdoption{framemethod=TikZ}.} \mdDescribeMacro[\newline linecolor]{outerlinecolor} Sets the color of the outer line around the environment. - \textbf{This works only with \mdoption{style=1}.} + \textbf{This works only with \mdoption{framemethod=TikZ}.} \mdDescribeMacro[white]{backgroundcolor} Sets the color of the background of the environment. \mdDescribeMacro[black]{fontcolor} Sets the color of the contents of the environment. @@ -379,7 +485,7 @@ the second one is a number (e.g. 2) which will be multiplied by \mdoption{1 defa \mdDescribeMacro[\mbox{} \mdcommand{bfseries}\mdcommand{large}]{frametitleformat} Sets the format of the frame title. -\subsubsection{General options} +\subsubsection{General options}\label{genopt} @@ -391,6 +497,11 @@ the second one is a number (e.g. 2) which will be multiplied by \mdoption{1 defa \mdDescribeMacro[false]{nobreak} Sometimes it is useful to prevent a frame from splitting. The \mdoption{nobreak} option is used for this purpose. + +\mdDescribeMacro[0pt]{needspace} Sometimes it is useful to set a minimum height befor a frame should be splittet. For such cases you can use \mdoption{needspace}. + +\mdDescribeMacro{style} If you define a special style with \mdcommand{mdfdefinstyle} you can use the key \mdoption{style} to load the style. \mdname has no predefined styles. + %%\mdDescribeMacro[none]{settings} With version 0.9 of the package \mdname this option was added. This option allows the user to commit some macros. An example is shown in the appendix. %\mdDescribeMacro[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 \mdname on the current page will be printed in the \texttt{log} file. @@ -400,12 +511,12 @@ the second one is a number (e.g. 2) which will be multiplied by \mdoption{1 defa if you want all lines dashed you will have to set \mdoption{pstrickssetting=\{linestyle=dashed\}}. It is very important to put the options of \mdoption{pstrickssetting} in brackets. - \textbf{This works only with \mdoption{style=3}.} + \textbf{This works only with \mdoption{framemethod=PSTricks}.} \mdDescribeMacro[none]{tikzsetting} With this key you can pass several options to \mdcommand{tikzset}. Some examples are listed in the next section. It is very important to put the options of \mdoption{tikzsetting} in brackets. - \textbf{This works only with \mdoption{style=1}.} + \textbf{This works only with \mdoption{framemethod=TikZ}.} \section{Examples} -Now I present some examples. Of course I know that some of them are only gimmicks. To create the following examples I am using \mdoption{style=1}. +Now I present some examples. Of course I know that some of them are only gimmicks. To create the following examples I am using \mdoption{framemethod=TikZ}. \mdfsetup{skipabove=\baselineskip,skipbelow=\baselineskip} \begin{mdexample} \mdfsetup{outerlinewidth=5pt,innerlinewidth=0pt, @@ -469,8 +580,24 @@ Some Text Some Text Some Text Some Text Some Text Some Text %Some Text Some Text Some Text Some Text Some Text Some Text \clearpage \onecolumn -\clearpage +\subsection{Framed \texttt{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{mdexample}[moretexcs={BeforeBeginEnvironment,AfterEndEnvironment},morekeywords={lstlisting}] +\BeforeBeginEnvironment{lstlisting}{% + \begin{mdframed}[<modification>]% + \vspace{-0.7em}} +\AfterEndEnvironment{lstlisting}{% + \vspace{-0.5em}% + \end{mdframed}} +\end{mdexample} + + + \section{Errors, Warnings and Messages} + The package \mdpack{mdframed} provides different errors, warnings and messages in the \texttt{log}-file. Some \LaTeX-editors like \TeX Maker(X) have a special tab for errors and warnings @@ -480,19 +607,21 @@ The followings errors and warnings are generated by \mdpack{mdframed}. \begin{mdexample} The package ... does not exist but - is required by mdframed + needed by mdframed \end{mdexample} To avoid this problem you should install the required packages which are listed in section \ref{sec:syntax}. \begin{mdexample} - The style number ... does not exist - mdframed ues instead style=0 + package option style is depreciated + use framemethod instead mdframed +\end{mdexample} +With version 0.9d \mdname changed the meaning of the option \mdoption{style}. The option is used to load a defined style by \mdcommand{mdfdefinestyle}. Instead uses \mdoption{framemethod} (see section \ref{globopt}). + +\begin{mdexample} + Unknown framemethod .... mdframed \end{mdexample} -If you set the option \mdoption{style} and a file -\texttt{md-frame-'number'.mdf} does not exist -you will get this warning. So check the -option \mdoption{style}. +The input string for the option \mdoption{framemethod} is unkown. See section \ref{globopt}. \begin{mdexample} You have not loaded ntheorem yet @@ -529,7 +658,7 @@ So far I have no idea how to avoid such things. like enlargethispage or something else You got a bad break \end{mdexample} -See the explanation above. +See the explaation above. \begin{mdexample} You got a bad break @@ -562,10 +691,8 @@ body you will get this warning. \section{ToDo} \begin{enumerate} \item see \glqq Known Problems\grqq. - \item Work with \mdoption{twoside}-mode by setting \mdoption{inner} and \mdoption{outer}. \item Create new styles. \item Improve page breaks. - \item Section with version history. \end{enumerate} \section{Previous versions} @@ -573,7 +700,10 @@ If you have trouble with the new version of \mdname you can load \texttt{mdframe %With the new version 0.7a I changed the internal commands (I use \mdpack{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 \mdpack{mdframedpre} instead of \mdpack{mdframed}. \section{Acknowledgements} -Thanks for the bug reports and suggestions + +\vskip\baselineskip + + \textsf{Dick Nickalls;\quad Dr. Dietrich Grau;\quad Piazza Luca\quad Jobst Hoffmann}. \medskip @@ -584,7 +714,7 @@ Thanks for the bug reports and suggestions \clearpage \appendix \section{More information} -\addtocontents{toc}{\protect\setcounter{tocdepth}{-4}} +%\addtocontents{toc}{\protect\setcounter{tocdepth}{-4}} In the following section I want to present how to create your own frame. \subsection{How does \mdpack{mdframed} work?} @@ -594,29 +724,48 @@ After the calculation of the width and the height of the \mdcommand{@tempboxa} ( will be set sequently (done by \mdpack{md-frame-X.mdf}). The following figure demonstrates this. \begin{center} -\newcommand{\mybox}[1]{\psframebox[linecolor=gray,shadowcolor=lightgray]{\parbox{3.5cm}{\centering\small #1}}} -% \includegraphics{way} -\begin{psmatrix}[mnode=r,colsep=4,rowsep=1.2] - [name=s1] \mybox{read in and save contents in \textbackslash @tempboxa} & - [name=f1] \mybox{\textbackslash md@putbox@single} \\ - [name=s2] \mybox{split \textbackslash @tempboxa in \textbackslash tw@ to the free space of the page} & - [name=f2] \mybox{\textbackslash md@putbox@first} \\ - [name=s3] \mybox{contents of \textbackslash @tempboxa have enough space on the new page} & - [name=f3] \mybox{\textbackslash md@putbox@second} \\ - [name=s4] \mybox{split \textbackslash @tempboxa in \textbackslash tw@ to the free space of the page} & - [name=f4] \mybox{\textbackslash md@putbox@middle} \\[.5\baselineskip] - % - \psset{arrowinset=0,arrowscale=1.3,nodesep=3pt} - \ncline{->}{s1}{f1}\naput{enough space on page} - \ncline{->}{s1}{s2}\naput{not enough space on page} - \ncline{->}{s2}{f2}\naput{type out \textbackslash tw@} - \ncline[angle=90]{->}{f2}{s3}\ncput*{calculate the height of the new \textbackslash @tempboxa} - \ncline{->}{s3}{f3}\naput{yes} - \ncline{->}{s3}{s4}\naput{no} - \ncline{->}{s4}{f4}\naput{type out \textbackslash tw@} - \ncloop[angleA=180,angleB=-90,loopsize=4.5]{<-}{s3}{f4} - \nbput{calculate the height of the new \textbackslash @tempboxa} -\end{psmatrix} +\begin{tikzpicture} +\newcommand{\mybox}[1]{\parbox{3.5cm}{\centering\small #1}} +\tikzstyle{every node}=[font=\sffamily] +\tikzset{mymatrixnodes/.style={% + matrix of nodes, + nodes={framed,draw=black,fill=yellow!10,}, + column sep=4.2cm, + row sep=1.2cm, + }} +\matrix(m)[mymatrixnodes] + {% + \mybox{read in and save contents in \mdcommand{@tempboxa}} & + \mybox{\mdcommand{md@putbox@single}} \\ + \mybox{split \textbackslash @tempboxa in \mdcommand{tw@} to the free space of the page} & + \mybox{\mdcommand{md@putbox@first}} \\ + \mybox{contents of \mdcommand{@tempboxa} have enough space on the new page} & + \mybox{\mdcommand{md@putbox@second}} \\ + \mybox{split \mdcommand{@tempboxa} in \mdcommand{tw@} to the free space of the page} & + \mybox{\mdcommand{md@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 \mdcommand{tw@}} (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 \mdcommand{tw@}} (m-4-2); + +\draw (m-2-2) edge node[align=center,fill=white]% + {calculate the height of the new \mdcommand{@tempboxa}} (m-3-1); + + +\draw (m-1-1) edge node[align=center,anchor=west]{not enough space on page} (m-2-1); +\draw (m-3-1) edge node[align=center,anchor=west]{no} (m-4-1); + +\draw let \p1=($(m-4-2.south)-(0,1)$), \p2=($(m-3-1.west)-(0.8,0)$) in + (m-4-2.south) -- ($(m-4-2.south)+(0,-1)$) -- + node[align=center,anchor=north]% + {calculate the height of the new \mdcommand{@tempboxa}} (\x2,\y1) + -- ($(m-3-1.west)-(0.8,0)$)-- ($(m-3-1.west)$) ; + + +\end{tikzpicture} \captionof{figure}{Setting the contents of \mdpack{mdframed}}\label{fig:way} \end{center} @@ -679,6 +828,7 @@ can save the file as \mdpack{md-frame-X.mdf}. In this way you can use the option \mdoption{style} to load the file by setting \mdoption{style=X}. +\clearpage \subsection{Modify the frame} 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} @@ -689,6 +839,7 @@ First I will show the the result. \setlength{\interruptlength}{2.5ex} \newrobustcmd\overlaplines{% \input{md-frame-0.mdf}% + \global\defcounter{mdf@globalstyle@cnt}{0} \appto\md@frame@leftline@single{% \llap{\color{white}% \rule[-\dp\@tempboxa-\mdf@innerbottommargin@length% @@ -713,7 +864,7 @@ First I will show the the result. }% } \overlaplines -\newmdtheoremenv[style=0,ntheorem,linecolor=blue,linewidth=3pt]{lem}{Lemma}[section] +\newmdtheoremenv[style=0,ntheorem,linecolor=blue,linewidth=2pt]{lem}{Lemma}[section] \makeatother @@ -732,11 +883,11 @@ With the new length \mdcommand{interruptlength} you can manipulate the amount of \newlength{\interruptlength} \setlength{\interruptlength}{1.5ex} \makeatletter -\makeatletter \newlength{\interruptlength} \setlength{\interruptlength}{2.5ex} \newrobustcmd\overlaplines{% \input{md-frame-0.mdf}% + \global\defcounter{mdf@globalstyle@cnt}{0} \appto\md@frame@leftline@single{% \llap{\color{white}% \rule[-\dp\@tempboxa @@ -766,13 +917,50 @@ With the new length \mdcommand{interruptlength} you can manipulate the amount of } \overlaplines \newmdtheoremenv[style=0,ntheorem,linecolor=blue,% - linewidth=3pt]{lem}{Lemma}[section] + linewidth=10pt]{lem}{Lemma}[section] \makeatother \end{mdexample} + +\subsection{\mdname in combination with \mdpack{multicol}} +How I wrote in \glqq Known Problems\grqq\ you can't combine \mdpack{multicol} with \mdname. In a simple way without any breaks you can use: +\begin{mdexample}[moretexcs={lipsum},morekeywords={lipsum,multicols}] +\begin{multicols}{2} +\lipsum[1] +\begin{mdframed} +Text\par Text\par Text +\end{mdframed} +\lipsum[2] +\end{multicols} +\end{mdexample} +\begin{multicols}{2} +\lipsum[1] +\begin{mdframed} +Text\par Text\par Text +\end{mdframed} +\lipsum[2] +\end{multicols} + %\clearpage -\subsection{Revision history}\label{rev} +\twocolumn[\subsection{Revision history}\label{rev}] \setkomafont{subsubsection}{\normalfont\bfseries} -\small +\small\raggedright +\minisec{Version 0.9e submitted 11 Sep 2011} +\begin{itemize} +\item working with \texttt{twoside} modus +\end{itemize} + +\minisec{Version 0.9d submitted 10 Sep 2011} +\begin{itemize} +\item \textcolor{red}{changed the meaning of the option \mdoption{style}}!!! (inspired by Lars Madsen) +\item added option \mdoption{framemethod} (inspired by Lars Madsen) +\item added options \mdoption{needspace} (inspired by Lars Madsen) +\item added new command \mdcommand{mdfdefinestyle} (inspired by Lars Madsen) +\item fixes documentation +\item renamed \mdpack{md-frame-3.mdf} to \mdpack{md-frame-2.mdf} +\end{itemize} + +\footnotesize + \minisec{Version 0.9b submitted 7 Sep 2011} \begin{itemize} \item fixes bugs in \mdcommand{newmdtheoremenv} (Thanks to Enrico Gregorio) |