From 905e4b59250e7a09de14faed63264e115ea93a8e Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 1 May 2010 23:09:39 +0000 Subject: mdframed 0.3b (1may10) git-svn-id: svn://tug.org/texlive/trunk@18071 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/mdframed/mdframed.sty | 286 +++++++++++++++------- 1 file changed, 195 insertions(+), 91 deletions(-) (limited to 'Master/texmf-dist/tex/latex/mdframed') diff --git a/Master/texmf-dist/tex/latex/mdframed/mdframed.sty b/Master/texmf-dist/tex/latex/mdframed/mdframed.sty index 84b1ed38ca2..d9d0bae8f0d 100644 --- a/Master/texmf-dist/tex/latex/mdframed/mdframed.sty +++ b/Master/texmf-dist/tex/latex/mdframed/mdframed.sty @@ -36,7 +36,7 @@ \def\mdframedpackagename{mdframed} \def\md@PackageWarning#1{\PackageWarning{\mdframedpackagename}{#1}} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{mdframed}[2010/04/23 v0.3a: mdframed] +\ProvidesPackage{mdframed}[2010/04/30 v0.3b: mdframed] %%==================================================%% %%=============== Benoetigte Pakete ================%% @@ -130,6 +130,9 @@ } } + + + %%%Laengentests %%\mdf@linewidth \begingroup @@ -169,20 +172,73 @@ %%==================================================%% -%%==Deklaration diverser Eingabe und Hilfsparameter=%% -%%==================================================%% +%%========Sicherstellen der key-value-Syntax========%% +%%================ HIER DIE LOKALEN ================%% +%%==================================================%% +\define@key{mdfl}{linewidth}[\mdf@linewidth]{% +\def\@tempa{#1} +\md@iflength{\@tempa}% + {\global\edef\mdfl@linewidth{\the\md@templength}}% + {\global\edef\mdfl@linewidth{\the\md@templength}} +\let\mdf@linewidth\mdfl@linewidth +} -\newskip\md@framed@margin \md@framed@margin\mdf@margin %% Abstand |LinksRechts| -\newskip\md@framed@linewidth \md@framed@linewidth\mdf@linewidth %% Dicke der Linie +\define@key{mdfl}{rightmargin}[\mdf@rightmargin]{% +\def\@tempa{#1} +\md@iflength{\@tempa}% + {\global\edef\mdfl@rightmargin{\the\md@templength}}% + {\global\edef\mdfl@rightmargin{\the\md@templength}} +\let\mdf@rightmargin\mdfl@rightmargin +} -\newskip\md@framed@leftmargin \md@framed@leftmargin\mdf@leftmargin %% Laenge des Linken Abstandes |<->|TEXT... -\newskip\md@framed@rightmargin \md@framed@rightmargin\mdf@rightmargin %% Laenge des Linken Abstandes ...TEXT|<->| +\define@key{mdfl}{leftmargin}[\mdf@leftmargin]{% +\def\@tempa{#1} +\md@iflength{\@tempa}% + {\global\edef\mdfl@leftmargin{\the\md@templength}}% + {\global\edef\mdfl@leftmargin{\the\md@templength}} +\let\mdf@leftmargin\mdfl@leftmargin +} + +\define@key{mdfl}{margin}[\mdf@margin]{% +\def\@tempa{#1} +\md@iflength{\@tempa}% + {\global\edef\mdfl@margin{\the\md@templength}}% + {\global\edef\mdfl@margin{\the\md@templength}} +\let\mdf@margin\mdfl@margin +} +\define@key{mdfl}{backgroundcolor}[\mdf@backgroundcolor]{% +\def\@tempa{#1} +\let\mdf@backgroundcolor\@tempa\relax +} + +\define@key{mdfl}{linecolor}[\mdf@linecolor]{% +\def\@tempa{#1} +\let\mdf@linecolor\@tempa\relax +} + +\define@key{mdfl}{fontcolor}[\mdf@fontcolor]{% +\def\@tempa{#1} +\let\mdf@fontcolor\@tempa\relax +} + +\define@key{mdfl}{defaultunit}[\mdf@defaultunit]{% +\def\@tempa{#1} +\let\mdf@defaultunit\@tempa\relax +} + +\define@key{mdfl}{ntheorem}[false]{% + \def\@tempa{#1} + \def\md@true{true} + \ifx\@tempa\md@true\relax + \mdf@ntheoremtrue% + \fi +} -\newskip\md@outsidemargin \md@outsidemargin\mdf@leftmargin %% Hilfslaenge -- Speicherung des gesamt - %% vorgebenen left-right-margin - \advance\md@outsidemargin\mdf@rightmargin +%%==================================================%% +%%==Deklaration diverser Eingabe und Hilfsparameter=%% +%%==================================================%% \newcommand\mdframedabovespace[1]{\def\md@space@above@frame{#1}} \mdframedabovespace{\baselineskip} %% Abstand vor der Frame-Umgebung @@ -198,29 +254,29 @@ \newif\ifmd@box@empty \md@box@emptyfalse %% Ifabfrage, die prueft, ob der Inhalt einer Box leer ist %% default - ist nicht leer -\def\md@@linecolor{\color{\mdf@linecolor}} %% Abkuerzungskommando Linienfarbe - -\def\md@@fontcolor{\color{\mdf@fontcolor}} %% Abkuerzungskommando Schriftfarbe - -\def\md@@backgroundcolor{\color{\mdf@backgroundcolor}}%% Abkuerzungskommando Hintergrundfarbe - %%==================================================%% %%===Globale Umgebung -- noch keine Modifikation ===%% %%==================================================%% \newenvironment{mdframed}[1][]% default-Umgebung - {\setkeys{mdf}{#1}% - \addvspace{\mdf@skipabove}% - \ifmdf@ntheorem - \ifdefined\theorempreskipamount - \theorempreskipamount0pt - \theorempostskipamount0pt - \else + {\trivlist\item\relax\endtrivlist% + \vskip -2\topsep% + \vskip -2\parskip% + \vskip -2\partopsep% + \vskip -2\lineskip% + \vspace*{\mdf@skipabove}% + \setkeys{mdfl}{#1}% + \ifmdf@ntheorem% + \ifdefined\theorempreskipamount% + \theorempreskipamount0pt% + \theorempostskipamount0pt% + \else% {\md@PackageWarning{You haven not loaded ntheorem yet}}% \fi% \fi% - \mdframed@global@env}% + \mdframed@global@env% + }% {\endmdframed@global@env\addvspace{\mdf@skipbelow}} @@ -239,10 +295,10 @@ %%================= Breite der BOX =================%% %%==================================================%% \def\md@margin@equation{% %% Berechnung der moeglichen Breite fuer den Rahmeninhalt - \advance\hsize by - \md@framed@margin %% hsize minus Randvorgabe - \advance\hsize by -2\md@framed@linewidth %% hsize minus Linienbreite - \advance\hsize by - \mdf@leftmargin %% hsize minus gewuenschten linken Abstand - \advance\hsize by - \mdf@rightmargin %% hsize minus gewuenschten linken Abstand + \advance\hsize by - \mdf@margin% %% hsize minus Randvorgabe + \advance\hsize by - \mdf@linewidth% %% hsize minus Linienbreite + \advance\hsize by - \mdf@leftmargin% %% hsize minus gewuenschten linken Abstand + \advance\hsize by - \mdf@rightmargin% %% hsize minus gewuenschten linken Abstand \advance\hsize by - \width\md@arrayparboxrestore}%% Beruecksichtigung das Auszaehlung bzw. list-Umgebung enthalten %%==================================================%% @@ -253,7 +309,7 @@ \def\md@sizeofframe{\begingroup \setbox\z@\vbox{% \vskip-5in \hbox{\hskip-5in - \fboxsep2\baselineskip\fboxrule\md@framed@linewidth\fbox% + \fboxsep2\baselineskip\fboxrule\mdf@linewidth\fbox% {\hbox{\vrule \@height 4.7in \@depth.3in \@width 5in}}}% \vskip\z@skip}% \global\md@temp@frame@hsize\wd\z@ \global\md@temp@frame@vsize\ht\z@ @@ -263,9 +319,12 @@ %%==================================================%% %%============Start der globalen Umgebung===========%% %%==================================================%% -\def\mdframed@global@env{\par - %Bestimmung zusatzlichen Freiraumes gemaess Vorgabe des Rahmens - \let\width\md@temp@frame@hsize \let\height\md@temp@frame@vsize + +\let\md@hsize\hsize +\def\mdframed@global@env{\par% +% %Bestimmung zusatzlichen Freiraumes gemaess Vorgabe des Rahmens + \let\width\md@temp@frame@hsize + \let\height\md@temp@frame@vsize % Einfuegen von Strafpunkten und Abstaenden \begingroup \skip@\lastskip @@ -303,28 +362,40 @@ \vskip-\skip@ \penalty 1800 \vskip\skip@ \fi \addvspace{\topsep}% - \endgroup + \endgroup% % clear out pending page break \nobreak \vskip 2\baselineskip \vskip\height %%%\@M=10000 \penalty9999 \vskip -2\baselineskip \vskip-\height \penalty9999 % updates \pagetotal - \md@adjheight - \setbox\@tempboxa\vbox\bgroup - \begingroup %%% zweites begingroup noetig, dass fontcolor gesetzt werden kann - \md@@fontcolor %%% Setzen der Schriftfarbe - \md@margin@equation - \textwidth\hsize \columnwidth\hsize +%%%%SIEHE LATEX.ltx -- ersten Absatz ignorieren +\def\@doendpe{\@endpetrue + \def\par{\@restorepar\par\@endpefalse}\everypar + {{\setbox\z@\lastbox}\everypar{}\@endpefalse}} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + \md@adjheight% + \advance\hsize by - \mdf@margin% %% hsize minus Randvorgabe links + \advance\hsize by - \mdf@margin% %% hsize minus Randvorgabe rechts + \advance\hsize by - \mdf@linewidth% %% hsize minus Linienbreite links + \advance\hsize by - \mdf@linewidth% %% hsize minus Linienbreite rechts + \advance\hsize by - \mdf@leftmargin% %% hsize minus gewuenschten linken Abstand + \advance\hsize by - \mdf@rightmargin% %% hsize minus gewuenschten linken Abstand + \advance\hsize by - \width\md@arrayparboxrestore%% Beruecksichtigung das Auszaehlung bzw. list-Umgebung enthalten + \setbox\@tempboxa\vbox\bgroup\@doendpe% + \begingroup% %%% zweites begingroup noetig, dass fontcolor gesetzt werden kann + \color{\mdf@fontcolor}% %%% Setzen der Schriftfarbe +% \md@margin@equation% + \textwidth\hsize \columnwidth\hsize% } -\def\endmdframed@global@env{\par +\def\endmdframed@global@env{\par% \kern\z@ %%%\z@=0 - \hrule\@width\hsize\@height\z@ + \hrule\@width\md@hsize\@height\z@% \penalty-100 % put depth into height - \endgroup - \egroup - \begingroup - \md@put@frame - \endgroup + \endgroup% + \egroup% + \begingroup% + \md@put@frame% + \endgroup% } @@ -368,10 +439,10 @@ \expandafter%%% ???? % \endgroup \ifdim\dimen@>\ht\@tempboxa %%% Pruefe, ob Box noch auf Seite passt - \ifmd@content@split %%% Pruefe ob \@tempboxa gesplittet wurde - \md@putbox@second %%% Wurde gesplittet- nehme zweiten Teil der Umrandung - \else %%% - \md@putbox@single %%% Box wurde nicht gesplitter - einfacher Rahmen + \ifmd@content@split% %%% Pruefe ob \@tempboxa gesplittet wurde + \md@putbox@second% %%% Wurde gesplittet- nehme zweiten Teil der Umrandung + \else% %%% + \md@putbox@single% %%% Box wurde nicht gesplitter - einfacher Rahmen \fi% \md@afterframe %%% siehe Anweisung \else %%%Box muss gesplittet werden @@ -440,12 +511,12 @@ \else % Bekommt Material fuer das Abspalten am Kopf (Got material split off at the head) \egroup %%%Moegliches egroup \md@resto@set - \ifvoid\@tempboxa %%% prueft, ob die \tempbox@ (abgesplitteter unterer Teil) leer ist. + \ifvoid\@tempboxa% %%% prueft, ob die \tempbox@ (abgesplitteter unterer Teil) leer ist. \setbox\@tempboxa\box\tw@ \ifmd@box@empty - \md@putbox@single % - \else - \md@putbox@second % + \md@putbox@single% + \else% + \md@putbox@second% \fi \md@afterframe \else % Es ist wirklich gesplittet mit oberen Teil in \tw@ und unteren Teil in \tempboxa@ @@ -481,36 +552,47 @@ \rlap{\color{\mdf@backgroundcolor}% \setlength{\fp@putboxa@length@md}{\ht\@tempboxa}% \addtolength{\fp@putboxa@length@md}{\baselineskip}% - \addtolength{\fp@putboxa@length@md}{\md@framed@linewidth}% - \rule[-0.5\baselineskip]{\md@textwidth-\md@outsidemargin}{\fp@putboxa@length@md}% + \addtolength{\fp@putboxa@length@md}{\mdf@linewidth}% + \rule[-0.5\baselineskip]% + {\md@textwidth-\mdf@leftmargin-\mdf@rightmargin-\mdf@linewidth-\mdf@linewidth}% + {\fp@putboxa@length@md}% }% }% \def\md@frame@leftandbottomline@single{% \setlength{\fp@putboxa@length@md}{\ht\@tempboxa}% \addtolength{\fp@putboxa@length@md}{0.5\baselineskip}% - \rlap{\md@@linecolor\vrule width \md@framed@linewidth height \fp@putboxa@length@md depth 0.5\baselineskip}% - \rlap{\md@@linecolor\rule[-0.5\baselineskip-\md@framed@linewidth]{\md@textwidth-\md@outsidemargin}{\md@framed@linewidth}% + \rlap{\color{\mdf@linecolor}\vrule width \mdf@linewidth% + height \fp@putboxa@length@md% + depth 0.5\baselineskip}% + \rlap{\color{\mdf@linecolor}\rule[-0.5\baselineskip-\mdf@linewidth]% + {\md@textwidth-\mdf@leftmargin-\mdf@rightmargin}{\mdf@linewidth}% }% }% \def\md@frame@topandrightline@single{% - \llap{\md@@linecolor\vrule width \md@framed@linewidth height \fp@putboxa@length@md depth 0.5\baselineskip}% - \llap{\md@@linecolor\rule[\fp@putboxa@length@md]{\md@textwidth-\md@outsidemargin}{\md@framed@linewidth}}% + \llap{\color{\mdf@linecolor}\vrule width \mdf@linewidth% + height \fp@putboxa@length@md% + depth 0.5\baselineskip}% + \llap{\color{\mdf@linecolor}\rule[\fp@putboxa@length@md]% + {\md@textwidth-\mdf@leftmargin-\mdf@rightmargin}{\mdf@linewidth}}% }% \def\md@putbox@single{%%%%% Ausgabe der ungesplitteten Gesamtbox \ifvoid\@tempboxa \else - \centerline{% - \null\hspace*{\md@framed@leftmargin}% - \md@frame@background@single% + \leftline{% + \null\hspace*{\mdf@leftmargin}% \md@frame@leftandbottomline@single% - \hfill{\box\@tempboxa}\hfill% - \md@frame@topandrightline@single% - \hspace*{\mdf@rightmargin}\null% - }% + \hspace*{\mdf@linewidth}% + \md@frame@background@single% + \hspace*{\mdf@margin}% + {\box\@tempboxa}% + \hspace*{\mdf@margin}% + \hspace*{\mdf@linewidth}% + \md@frame@topandrightline@single% + }% \fi } @@ -520,35 +602,46 @@ \def\md@frame@background@first{% \rlap{\color{\mdf@backgroundcolor}% \setlength{\fp@putboxa@length@md}{\ht\tw@}% - \addtolength{\fp@putboxa@length@md}{0.5\baselineskip}% - \addtolength{\fp@putboxa@length@md}{-\md@framed@linewidth}% - \rule{\md@textwidth-\md@outsidemargin}{\fp@putboxa@length@md}% + \addtolength{\fp@putboxa@length@md}{1.4\baselineskip}% + \addtolength{\fp@putboxa@length@md}{-\mdf@linewidth}% + \rule[-0.4\baselineskip]{\md@textwidth-\mdf@leftmargin-\mdf@rightmargin-\mdf@linewidth-\mdf@linewidth}% + {\fp@putboxa@length@md}% }% }% \def\md@frame@topandleftline@first{% \setlength{\fp@putboxa@length@md}{\ht\tw@}% - \addtolength{\fp@putboxa@length@md}{0.5\baselineskip}% - \rlap{\md@@linecolor \vrule width \md@framed@linewidth height \fp@putboxa@length@md% - \rule[\fp@putboxa@length@md-\md@framed@linewidth]{\hsize-\md@framed@linewidth-\md@outsidemargin}{\md@framed@linewidth}% + \addtolength{\fp@putboxa@length@md}{\baselineskip}% + \rlap{\color{\mdf@linecolor} \vrule width \mdf@linewidth% + height \fp@putboxa@length@md% + depth 0.4\baselineskip% + }% + \rlap{\color{\mdf@linecolor}\rule[\fp@putboxa@length@md-\mdf@linewidth]{\md@textwidth-\mdf@leftmargin-\mdf@rightmargin}% + {\mdf@linewidth}% }% }% \def\md@frame@rightline@first{% - \llap{\md@@linecolor \vrule width \md@framed@linewidth height \fp@putboxa@length@md}% + \llap{\color{\mdf@linecolor}\vrule width \mdf@linewidth% + height \fp@putboxa@length@md% + depth 0.4\baselineskip% + }% }% \def\md@putbox@first{%%%% Ausgabe der Teilbox 1 - \centerline{% - \null\hspace*{\mdf@leftmargin}% - \md@frame@background@first% + \leftline{% + \null\hspace*{\mdf@leftmargin}% \md@frame@topandleftline@first% - \hfill{\box\tw@}\hfill% + \hspace*{\mdf@linewidth}% + \md@frame@background@first% + \hspace*{\mdf@margin}% + {\box\tw@}% + \hspace*{\mdf@margin}% + \hspace*{\mdf@linewidth}% \md@frame@rightline@first% - \null\hspace*{\mdf@rightmargin}\null% - }% + }% } %%=second=%% @@ -557,34 +650,45 @@ \rlap{\color{\mdf@backgroundcolor}% \setlength{\fp@putboxa@length@md}{\ht\@tempboxa}% \addtolength{\fp@putboxa@length@md}{0.7\baselineskip}% - \rule[-0.5\baselineskip]{\md@textwidth-\md@outsidemargin}{\fp@putboxa@length@md}% + \rule[-0.5\baselineskip]{\md@textwidth-\mdf@leftmargin-\mdf@rightmargin-\mdf@linewidth-\mdf@linewidth}% + {\fp@putboxa@length@md}% }% }% \def\md@frame@leftandbottomline@second{% \setlength{\fp@putboxa@length@md}{\ht\@tempboxa}% \addtolength{\fp@putboxa@length@md}{0.2\baselineskip}% %Linienueberschuss auf zweiter Seite -- derzeit 0pt - \rlap{\md@@linecolor \vrule width \md@framed@linewidth height \fp@putboxa@length@md depth 0.5\baselineskip}% - \rlap{\md@@linecolor \rule[-0.5\baselineskip-\md@framed@linewidth]{\md@textwidth-\md@outsidemargin}{\md@framed@linewidth}}% + \rlap{\color{\mdf@linecolor}\vrule width \mdf@linewidth% + height \fp@putboxa@length@md% + depth 0.5\baselineskip% + }% + \rlap{\color{\mdf@linecolor}\rule[-0.5\baselineskip-\mdf@linewidth]% + {\md@textwidth-\mdf@leftmargin-\mdf@rightmargin}% + {\mdf@linewidth}}% }% \def\md@frame@rightline@second{% - \llap{\md@@linecolor\vrule width \md@framed@linewidth height \fp@putboxa@length@md depth 0.5\baselineskip}% + \llap{\color{\mdf@linecolor}\vrule width \mdf@linewidth% + height \fp@putboxa@length@md% + depth 0.5\baselineskip}% }% \def\md@putbox@second{%%%%% Ausgabe der Teilbox 2 - \ifvoid\@tempboxa + \ifvoid\@tempboxa% \else - \centerline{% + \leftline{% \null\hspace*{\mdf@leftmargin}% - \md@frame@background@second% \md@frame@leftandbottomline@second% - \hfill{\box\@tempboxa}\hfill% + \hspace*{\mdf@linewidth}% + \md@frame@background@second% + \hspace*{\mdf@margin}% + {\box\@tempboxa}% + \hspace*{\mdf@margin}% + \hspace*{\mdf@linewidth}% \md@frame@rightline@second% - \hspace*{\mdf@rightmargin}\null% }% - \fi -} + \fi% +}% -- cgit v1.2.3