summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.tex')
-rw-r--r--Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.tex467
1 files changed, 467 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.tex b/Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.tex
new file mode 100644
index 00000000000..cafa5aa6879
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/mdframed/mdframed-doc-en.tex
@@ -0,0 +1,467 @@
+%Documenation of the package mdframed
+%%$Id: mdframed-doc-en.tex 101 2010-12-22 16:26:58Z marco $
+%%$Rev: 101 $
+%%$Author: marco $
+%%$Dater:$
+\setcounter{errorcontextlines}{999}
+\def\mdversion{0.6a}
+\documentclass[english,11pt,]{scrartcl}
+%\usepackage{showframe}
+\usepackage[nofancy,draft]{svninfo}
+\svnInfo $Id: mdframed-doc-en.tex 101 2010-12-22 16:26:58Z marco $
+\usepackage{babel}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+
+\usepackage[de,T1,altbullet]{lucidabr}
+\usepackage{microtype}
+\usepackage[french=quotes]{csquotes}
+%\let\glqq\flqq
+%\let\grqq\frqq
+\let\grqq\grqq
+
+\usepackage{scrpage2}
+\clearscrheadfoot
+\pagestyle{scrheadings}
+\automark[subsection]{section}
+\renewcommand{\sectionmark}[1]{\markboth{\sectionmarkformat #1}{}}%
+\renewcommand{\subsectionmark}[1]{\markright{\subsectionmarkformat #1}} %nur Titel ohne Nr.
+\ihead{\rightmark}
+\ohead{\leftmark}
+\ofoot{\pagemark}
+\ifoot{\svnId}
+
+
+\usepackage[left=5cm,right=3cm,top=3cm,bottom=2cm]{geometry}
+
+
+\usepackage{xcolor}
+\definecolor{titleblue}{rgb}{0,0,0.9}
+
+\usepackage{amsmath,amsthm}
+
+\usepackage[]{graphicx}
+
+\usepackage[style=0]{mdframed}
+
+
+\usepackage{xspace}
+\usepackage{multicol}
+\columnseprule0.4pt
+
+\usepackage{listings}
+\lstnewenvironment{mdexample}[1][]
+ {\lstset{%
+ basicstyle=\small,%
+ xleftmargin=20pt,%
+ xrightmargin=20pt,%
+ frame=single,%
+ rulecolor=\color{titleblue},%
+ framesep=5pt,%
+ framerule=1pt,%
+ language=[LaTeX]TeX,#1,%
+ columns=fixed,%
+ fontadjust=true,%
+ basewidth=0.65em,%
+ breakatwhitespace=true}%
+ }%
+% morekeywords={\usepackage,\end,\begin,\lipsum,\documentclass,\newtheorem,\newenvironment,\section,\label\mbox{ }}%
+ {}
+
+\makeatletter
+\begingroup
+ \text@command\relax
+ \global\let\xspace@check@icr\check@icr
+\endgroup
+\xspaceaddexceptions{\xspace@check@icr}
+
+\renewcommand\tableofcontents{%
+\setcounter{tocdepth}{2}%
+ \begin{multicols}{2}[\centering\textbf{\sffamily\Large\contentsname}]
+ \@starttoc{toc}
+ \end{multicols}
+}
+\makeatother
+\newcommand*\mdoption[1]{\textsf{\bfseries\color{titleblue}#1}}
+\newcommand*\mdname{\textsf{mdframed}\xspace}
+\newcommand*\mdpack[1]{\textsf{#1}\xspace}
+\newcommand*\mdsetting[1]{\textsf{#1}\xspace}
+\newcommand*\mdcommand[1]{\texttt{\textbackslash #1}\xspace}
+
+\newcommand*\mdDescribeMacro[2][]{\par\kern\baselineskip%
+ \noindent\llap{%
+ \textsf{\bfseries\color{titleblue}#2}%
+ \quad}\mdDefault{#1}\ignorespaces}
+\newcommand*{\mdDefault}[1]{%
+ \ifx\relax#1\relax\else\marginpar{\small\mdsetting{default=#1}}\fi}
+
+ \usepackage{pst-node}
+ \usepackage{pstricks-add}
+
+\usepackage{hyperref}
+\hypersetup{%
+pdftitle={Documenation of mdframed},%
+pdfauthor={Marco Daniel},%
+colorlinks=true,%
+linkcolor=titleblue,
+urlcolor=cyan,
+bookmarksdepth=4,
+}
+%\usepackage{showframe}
+\begin{document}
+\thispagestyle{empty}
+\begin{center}
+ \color{titleblue}
+ \Large\bfseries \sffamily The \mdname package\footnote{Extending the package \texttt{framed.sty}.}
+
+ \vspace*{0.5\baselineskip}
+ \normalfont\large\normalcolor auto-split frame environment
+
+ \vspace*{.5\baselineskip}
+ \href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}%
+ \footnote{With thanks to Heiko Oberdiek, Rolf Niepraschk,
+ Martin Scharrer and Herbert Voss.},
+ \href{mailto:marco.daniel@mada-nada.de}{Elke Schubert}%
+ \qquad \mdversion\ \qquad \today
+\end{center}
+\begin{abstract}
+Working with the command \mdcommand{fbox} or \mdcommand{fcolorbox}, one has to handle page breaks by hand, meaning that you have to split up the \mdcommand{fbox} into two. The present package defines the environment \mdname which automatically deals with page breaks, whence the name \glqq breakable\grqq.
+
+By using \mdcommand{newenvironment} the user may choose between several individual designs.
+\end{abstract}
+
+\tableofcontents
+
+\section{Motivation}
+Many users wish to (further) emphasize lemmata, definitions, proofs etc. The package \mdname allows to
+create environments with breakable frames. I think an example is the best way to demonstrate the properties.
+\begin{mdexample}
+\newtheorem{mdtheorem}{Theorem}[section]
+\newenvironment{theorem}{\begin{mdframed}%
+ [linewidth=2,leftmargin=40,rightmargin=40,%
+ backgroundcolor=yellow,linecolor=blue,%
+ splittopskip=\topskip,skipbelow=\baselineskip,%
+ skipabove=\baselineskip]%
+ \begin{mdtheorem}}{\end{mdtheorem}\end{mdframed}}
+\begin{theorem}[Pythagorean theorem]
+In any right triangle, the area of the square whose
+side is the hypotenuse is equal to the sum of the
+areas of the squares whose sides are the two legs.
+\[ a^2+b^2=c^2 \]
+\end{theorem}
+\end{mdexample}
+
+\newtheorem{mdtheorem}{Theorem}[section]
+\newenvironment{theorem}{\begin{mdframed}%
+ [linewidth=2,leftmargin=40,rightmargin=40,%
+ backgroundcolor=yellow,linecolor=blue,%
+ splittopskip=\topskip,skipbelow=\baselineskip,%
+ skipabove=\baselineskip]%
+ \begin{mdtheorem}}%
+ {\end{mdtheorem}\end{mdframed}}
+
+\begin{theorem}[Pythagorean theorem]
+ In any right triangle, the area of the square whose side is the hypotenuse
+ is equal to the sum of the areas of the squares whose sides are the two legs.
+\[ a^2+b^2=c^2 \]
+\end{theorem}
+
+\section{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}.
+
+Load the package as usual:
+\begin{mdexample}
+ \usepackage[<GLOBAL OPTIONS>]{mdframed}
+\end{mdexample}
+
+The package defines only one environment with the following syntax:
+\begin{mdexample}
+ \begin{mdframed}[<LOCAL OPTIONS>]
+ <CONTENT>
+ \end{mdframed}
+\end{mdexample}
+
+\section{Options}
+The package allows to set global and local options which are explained below.
+
+\subsection{Global Options}
+The following options are only global options.
+
+\mdDescribeMacro[none]{xcolor}
+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.
+
+
+\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 header.
+
+\subsubsection{Options with lengths}
+
+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
+the second one is a number (e.g. 2) which will be multiplied by \mdoption{1 defaultunit}.
+\mdDescribeMacro[pt]{defaultunit} see the sentence above.
+
+\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}}
+ \label{fig:laengen}
+\end{center}
+
+\mdDescribeMacro[0pt]{skipabove} Sets an additional skip above the frame.
+\mdDescribeMacro[0pt]{skipbelow} Sets an additional skip below the frame.
+\mdDescribeMacro[]{margin} This option is not longer supported. Use \mdoption{leftmargin}
+ and \mdoption{rightmargin} instead.
+\mdDescribeMacro[0pt]{leftmargin} Sets the length of the left margin of the environment.
+\mdDescribeMacro[0pt]{rightmargin} Sets the length of the right margin of the environment.
+
+\mdDescribeMacro[10pt]{innerleftmargin} Sets the length of the inner left margin of the environment.
+\mdDescribeMacro[10pt]{innerrightmargin} Sets the length of the inner right margin of the environment.
+\mdDescribeMacro[\newline.4\textbackslash baselineskip]{innertopmargin} Sets the length of the inner top margin of the environment.
+\mdDescribeMacro[\newline.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{}
+\mdDescribeMacro[0pt]{splittopskip} Sets the length of the skip above the splitted part of the environment.
+\mdDescribeMacro[0pt]{splitbottomskip} Sets the length of the skip below the splitted part of the environment.
+ \textbf{This works only with \mdoption{style=0} and \mdoption{style=3}.}
+\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}.}
+\mdDescribeMacro[0pt]{innerlinewidth} Sets the width of the inner line around the environment.
+ \textbf{This works only with \mdoption{style=1}.}
+\mdDescribeMacro[0pt]{outerlinewidth} Sets the width of the outer line around the environment.
+ \textbf{This works only with \mdoption{style=1}.}
+\mdDescribeMacro[\newline linewidth]{middlelinewidth} Sets the width of the middle line around the environment.
+ \textbf{This works only with \mdoption{style=1}.}
+
+
+\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}.}
+\mdDescribeMacro[\newline linecolor]{middlelinecolor} Sets the color of the middle line around the environment.
+ \textbf{This works only with \mdoption{style=1}.}
+\mdDescribeMacro[\newline linecolor]{outerlinecolor} Sets the color of the outer line around the environment.
+ \textbf{This works only with \mdoption{style=1}.}
+\mdDescribeMacro[white]{backgroundcolor} Sets the color of the background of the environment.
+\mdDescribeMacro[black]{fontcolor} Sets the color of the contents of the environment.
+
+\subsection{Hidden Lines}
+\textbf{The following options work only with \mdoption{style=0} and \mdoption{style=3}.}
+
+\mdDescribeMacro[true]{topline} Draws a line at the top.
+\mdDescribeMacro[true]{bottomline} Draws a line at the bottom.
+\mdDescribeMacro[true]{leftline} Draws a line on the left.
+\mdDescribeMacro[true]{rightline} Draws a line on the right.
+
+\subparagraph{Remark:} By setting \mdoption{style=3} only the following combinations are implemented
+\begin{itemize}
+ \item \mdoption{leftline=true, rightline=true, bottomline=true, topline=true}
+ \item \mdoption{leftline=true, rightline=true, bottomline=false, topline=true}
+ \item \mdoption{leftline=true, rightline=true, bottomline=true, topline=false}
+ \item \mdoption{leftline=true, rightline=false, bottomline=true, topline=true}
+ \item \mdoption{leftline=false, rightline=true, bottomline=true, topline=true}
+ \item \mdoption{leftline=false, rightline=false, bottomline=false, topline=false}
+ \item \mdoption{leftline=false, rightline=false, bottomline=true, topline=true}
+ \item \mdoption{leftline=true, rightline=true, bottomline=false, topline=false}
+ \item \mdoption{leftline=true, rightline=false, bottomline=false, topline=false}
+ \item \mdoption{leftline=false, rightline=true, bottomline=false, topline=false}
+ \item \mdoption{leftline=false, rightline=false, bottomline=true, topline=false}
+ \item \mdoption{leftline=false, rightline=false, bottomline=false, topline=true}
+\end{itemize}
+\subsubsection{Useful options}
+
+
+
+
+\mdDescribeMacro[false]{ntheorem} Before setting this boolkey, you have to load the package \mdpack{ntheorem}.
+
+ With this option you set the values \mdcommand{theorempreskipamount}
+ and\newline \mdcommand{theorempostskipamount} to 0pt.
+\mdDescribeMacro[none]{pstrickssetting} With this key you can pass several options to \mdcommand{psset}. For example
+ 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}.}
+
+
+\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}.
+
+ 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 \mdpack{gmverb}.
+ \item So far it isn't possible to use the multicolumn environment.
+ \item So far it isn't possible to use footnotes.
+\end{enumerate}
+
+
+\section{ToDo}
+\begin{enumerate}
+ \item see \glqq Known Problems\grqq.
+ \item No limitations of any style.
+ \item Create new styles.
+ \item Improve page breaks.
+\end{enumerate}
+
+\section{Acknowledgement}
+Thanks for the bug reports and suggestions
+
+\textsf{Dick Nickalls;\quad Dr. Dietrich Grau;\quad Piazza Luca}.
+\medskip
+
+\noindent Thanks for proofreading
+
+\textsf{Nahid Shajari}.
+
+\clearpage
+\appendix
+\section{More information}
+\addtocontents{toc}{\protect\setcounter{tocdepth}{-4}}
+In the following section I want to present how to create
+your own frame.
+\subsection{How does \mdpack{mdframed} work?}
+With the environment \mdcommand{begin\{mdframed\}} \ldots \mdcommand{end\{mdframed\}}
+the whole contents will be saved in a \mdcommand{savebox} called \mdcommand{@tempboxa}.
+After the calculation of the width and the height of the \mdcommand{@tempboxa} the box
+will be set sequently. 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} \\
+ %
+ \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}
+
+\captionof{figure}{Setting the contents of \mdpack{mdframed}}\label{fig:way}
+\end{center}
+
+The width of the contents is the result of the settings of \mdoption{leftmargin}, \mdoption{rightmargin}, \mdoption{linewidth}, \mdoption{innerleftmargin} and \mdoption{innerrightmargin} (see figure \eqref{fig:laengen}).
+\subsection{The Framecommands}
+The package \mdpack{mdframed} knows four kinds of \glqq Framecommand\grqq. These commands tell \LaTeX\ how to set the contents of \mdpack{mdframed}.
+\begin{description}
+ \item[\mdcommand{md@putbox@single}] This command sets the contents of a single non-splitted frame.
+ \item[\mdcommand{md@putbox@first}] This command sets the contents of the first frame of a splitted frame.
+ \item[\mdcommand{md@putbox@middle}] This command sets the contents of the middle frame of a splitted frame.
+ \item[\mdcommand{md@putbox@second}] This command sets the contents of the last frame of a splitted frame.
+\end{description}
+
+Uses the explained commands we give an example. The command \mdcommand{box} use 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).
+\begin{mdexample}
+\makeatletter
+ \def\md@putbox@single{\box\@tempboxa}
+\makeatother
+\end{mdexample}
+I am using the command \mdcommand{leftline} to start the \glqq Framecommands\grqq\ at the left.
+\begin{mdexample}
+\makeatletter
+ \def\md@putbox@single{\leftline{\box\@tempboxa}}
+\makeatother
+\end{mdexample}
+
+Now you have to know how the lengths are named. Every length which can be modified by the options has the following syntax
+\begin{mdexample}
+\mdf@'Name of the Length'@length
+\end{mdexample}
+For example the leftmargin is
+
+\begin{mdexample}
+\mdf@leftmargin@length
+\end{mdexample}
+
+To create only a line at the left with the correct \mdoption{leftmargin} you can set \mdcommand{md@putboxsingle} as follows
+
+\begin{mdexample}
+\makeatletter
+\def\md@putbox@single{%
+ \leftline{%
+ \hspace*{\mdf@leftmargin@length}%
+ \rule[-\dp\@tempboxa]{\mdf@linewidth}%
+ {\ht\@tempboxa+\dp\@tempboxa}%
+ \box\@tempboxa
+ }%
+}
+\makeatother
+\end{mdexample}
+
+In this way you can do what you want. If you create your own style you
+can save the file as \mdpack{md-frame-X.mdf}.
+\mdpack{X} must be an integer.
+In this way you can use the option \mdoption{style} to
+load the file by setting \mdoption{style=X}.
+
+
+\end{document}
+