From 5117d5c264e21bf3fd2016f0a4267abeebf15f9b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 12 Jan 2006 23:59:24 +0000 Subject: misc209 git-svn-id: svn://tug.org/texlive/trunk@1099 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/misc209/bar.sty | 548 +++++++++++++++++++++ Master/texmf-dist/tex/latex/misc209/bibmods.sty | 65 +++ Master/texmf-dist/tex/latex/misc209/example.sty | 414 ++++++++++++++++ .../texmf-dist/tex/latex/misc209/hangcaption.sty | 113 +++++ Master/texmf-dist/tex/latex/misc209/multibox.sty | 63 +++ Master/texmf-dist/tex/latex/misc209/multind.sty | 65 +++ Master/texmf-dist/tex/latex/misc209/portland.sty | 124 +++++ Master/texmf-dist/tex/latex/misc209/psboxit.sty | 175 +++++++ Master/texmf-dist/tex/latex/misc209/shadow.sty | 90 ++++ Master/texmf-dist/tex/latex/misc209/version.sty | 56 +++ 10 files changed, 1713 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/misc209/bar.sty create mode 100644 Master/texmf-dist/tex/latex/misc209/bibmods.sty create mode 100644 Master/texmf-dist/tex/latex/misc209/example.sty create mode 100644 Master/texmf-dist/tex/latex/misc209/hangcaption.sty create mode 100644 Master/texmf-dist/tex/latex/misc209/multibox.sty create mode 100644 Master/texmf-dist/tex/latex/misc209/multind.sty create mode 100644 Master/texmf-dist/tex/latex/misc209/portland.sty create mode 100644 Master/texmf-dist/tex/latex/misc209/psboxit.sty create mode 100644 Master/texmf-dist/tex/latex/misc209/shadow.sty create mode 100644 Master/texmf-dist/tex/latex/misc209/version.sty (limited to 'Master') diff --git a/Master/texmf-dist/tex/latex/misc209/bar.sty b/Master/texmf-dist/tex/latex/misc209/bar.sty new file mode 100644 index 00000000000..c8271ca86e5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/misc209/bar.sty @@ -0,0 +1,548 @@ +% BAR.STY --- Style File zum Setzen von Balkendiagrammen +% Autor: J. Bleser, E. Lang +% Hochschulrechenzentrum +% Technische Hochschule Darmstadt +% !!! Dieses Style-File ist urheberrechtlich geschuetzt !!! +% !!! Aenderungen nur mit Zustimmung der Autoren !!! +\typeout{Option BAR, Version 1.0 Sep. 92, J.Bleser, TH Darmstadt, HRZ} +\typeout{bug fix for CTAN April 1994 (SPQR, for David Carlisle)} +\newcount\breite \newcount\hoehe \newcount\tiefe +\newcount\lhoehe \newcount\anzbar \newcount\hbarI +\newcount\xpos \newcount\lxpos \newcount\halfbreite +\newcount\ypos \newcount\lypos +\newcount\tmpa \newcount\tmpb \newcount\tmpc +\newcount\tmpd \newcount\tmpe +\newcount\xmin \newcount\xmax \newcount\xstep +\newcount\deltax \newcount\yhoehe % +\newcount\ymin \newcount\ymax \newcount\ystep +\newcount\yminII \newcount\ymaxII \newcount\deltay +\newcount\ymove \newcount\xmove \newcount\inter +\newcount\exact \newcount\xexact +\newdimen\dtmpa \newdimen\dtmpb +\newdimen\dmin \newdimen\dmax \newdimen\dstep +\newdimen\dxmin \newdimen\dxmax \newdimen\dxstep +\newdimen\faktor \newdimen\dinter +\newbox\mybox \newbox\xbox \newbox\ybox +\newif\if@xaxis \newif\if@yaxis +\newif\if@hlineon +\newif\iffaktor\faktorfalse + + +\def\setnumberpos#1{\def\my@number{\expandafter\csname my@#1\endcsname}} +\def\my@number{\my@outside} + + +\def\m@nth{month}\def\d@y{day} +\def\setxvaluetyp#1{\gdef\x@value{#1}% + \ifx\x@value\m@nth\let\myx@value\Monat@% + \else\ifx\x@value\d@y\let\myx@value\Tag@% + \else\let\myx@value\Zahl@n% + \fi% + \fi% +} + + +\def\solid{solid}\gdef\l@style{\relax} +\def\setlinestyle#1{\gdef\l@style{#1}% + \ifx\l@style\solid\let\my@lstyle=\mylinebox% + \else\let\my@lstyle=\mydotbox% + \fi% +} + + +\def\setwidth#1{\global\breite=#1% + \ifdim\dinter>0pt\inter\dinter\multiply\inter\breite\divide\inter65536\fi% + \halfbreite\breite\divide\halfbreite2% +} + + +\def\setdepth#1{\ifnum#1<10\global\tiefe=0\else\global\tiefe=#1\fi} + + +\def\setstretch#1{\global\faktor=#1pt\faktortrue} + + +\def\setstyle#1{\def\my@style{#1}} +\def\my@style{\tt} + + +\def\setprecision#1{\global\exact=#1} +\exact=0 + + +\def\sethspace#1{\dinter#1pt\dtmpa#1pt\multiply\dtmpa\breite% + \inter\dtmpa\divide\inter65536% +} + + +\def\setxname{\@ifnextchar [{\isetxname}{\isetxname[]}} +\def\isetxname[#1]#2{\global\setbox\xbox=\hbox{\makebox(0,0)[#1]{#2}}} + + +\def\setyname{\@ifnextchar [{\isetyname}{\isetyname[l]}} +\def\isetyname[#1]#2{\global\setbox\ybox=\hbox{\makebox(0,0)[#1]{#2}}} + + +\newcount\vorz % +\def\setyaxis{\@ifnextchar [{\i@setyaxis}{\i@setyaxis[0]}} +\def\i@setyaxis[#1]#2#3#4{% + \dmin#2\faktor\ymin\dmin\divide\ymin by65536% + \dmax#3\faktor\ymax\dmax\divide\ymax by65536% + \ifnum\ymin>\ymax\vorz-1\else\vorz1\fi% + \ifnum\ymin>0\ymin-\ymin\fi% + \ifnum\ymax<0\ymax-\ymax\fi% + \dstep#4\faktor\ystep\dstep\divide\ystep by65536% + \ifnum\ystep<0\ystep-\ystep\fi% + \@yaxistrue% + \setbox0=\hbox{\the\ymax}\setbox1=\hbox{\the\ymin} + \ifdim\wd0>\wd1\xmove=\wd0\else\xmove=\wd1\fi% + \divide\xmove by65536\advance\xmove by4% + \global\xmove=\the\xmove% + \deltay\ymax\advance\deltay-\ymin\tmpb\deltay% + \divide\deltay\ystep% + \advance\deltay by1% + \dmin=#2pt\dstep=#4pt% + \thicklines% + \multiput(0,\ymin)(0,\ystep){\deltay}{\line(-1,0){4}% + \put(-6,0){\makebox(0,0)[r]{{\my@style\dimIIreal\dmin}}% + \global\advance\dmin by\dstep}}% + \dtmpa=#1\faktor\ymove\dtmpa\divide\ymove by65536\ifnum\ymove<0\ymove=0\fi% + \tmpa\ymin\advance\tmpa by-\ymove\advance\tmpb by\ymove% + \global\yhoehe\tmpb % + \put(0,\tmpa){\line(0,1){\tmpb}}% + \thinlines% +} + + +\def\setxaxis#1#2#3{% + \dxmin#1pt\dxmax#2pt\dxstep#3pt\global\xexact\exact% + \@xaxistrue\let\mytmp@style=\my@style% +} + + +\def\hlineon{\global\@hlineontrue} + + +\def\bar#1#2{\@ifnextchar [{\@bar{#1}{#2}}{\@bar{#1}{#2}[]}} +\def\@bar#1#2[#3]{% + \dtmpa#1\faktor\hoehe\dtmpa\divide\hoehe by65536% + \multiply\hoehe\vorz% + \ypos0\def\@user{#1}% + \ifnum\hoehe<\yminII\yminII=\hoehe\fi\ifnum\hoehe>\ymaxII\ymaxII=\hoehe\fi% + \ifnum\anzbar=0\hbarI=\hoehe\fi% + \ifnum#2>-1% + \ifnum\hoehe<0\ypos=\hoehe\tmpa=-\hoehe\else\tmpa=\hoehe\fi% + \ifnum #2=1\put(\xpos,\ypos){\framebox(\breite,\tmpa){}}\fi% + \ifnum #2=2\put(\xpos,\ypos){\framebox(\breite,\tmpa){}}% + \tmpc=\breite\divide\tmpc by3\tmpb=\xpos\advance\tmpb by1% + \multiput(\tmpb,\ypos)(3,0){\tmpc}{\line(0,1){\tmpa}}% + \fi + \ifnum #2=3\put(\xpos,\ypos){\framebox(\breite,\tmpa){}}% + \tmpc=\tmpa\divide\tmpc by3\tmpb=\ypos\advance\tmpb by1% + \multiput(\xpos,\tmpb)(0,3){\tmpc}{\line(1,0){\breite}}% + \fi + \ifnum #2=4\put(\xpos,\ypos){\framebox(\breite,\tmpa){}}% + \tmpc=\breite\divide\tmpc by3\tmpb=\xpos\advance\tmpb by1% + \multiput(\tmpb,\ypos)(3,0){\tmpc}{\line(0,1){\tmpa}}% + \tmpc=\tmpa\divide\tmpc by3\tmpb=\ypos\advance\tmpb by1% + \multiput(\xpos,\tmpb)(0,3){\tmpc}{\line(1,0){\breite}}% + \fi + \ifnum #2=5\put(\xpos,\ypos){\framebox(\breite,\tmpa){}}% + \tmpc=\breite\divide\tmpc by4\tmpb=\xpos\advance\tmpb by1% + \multiput(\tmpb,\ypos)(4,0){\tmpc}{\rule{2pt}{\tmpa pt}}% + \tmpc=\tmpa\divide\tmpc by4\tmpb=\ypos\advance\tmpb by1% + \multiput(\xpos,\tmpb)(0,4){\tmpc}{\rule{\breite pt}{2pt}}% + \fi + \ifnum #2=6\put(\xpos,\ypos){\framebox(\breite,\tmpa){}}% + \tmpb=\breite\divide\tmpb by-2% + \ifnum\hoehe>0\advance\tmpb by\tmpa\fi% + \tmpc=\tmpa\divide\tmpc by4% + \multiput(\xpos,\ypos)(0,4){\tmpc}{% + \ifdim\@ydim<\tmpb pt\line(2,1){\breite}% + \else\tmpd=\@ydim\divide\tmpd by65536% + \ifnum\tmpd<0\else\advance\tmpd by-\tmpa\fi% + \multiply\tmpd by-2\line(2,1){\tmpd}% + \fi% + }% + \tmpb=\breite\divide\tmpb by8\tmpc=\breite\advance\tmpc by-8% + \tmpd=\tmpa\multiply\tmpd 2\advance\xpos by 8% + \multiput(\xpos,\ypos)(8,0){\tmpb}{% + \ifnum\tmpc<\tmpd\line(2,1){\tmpc}\else\line(2,1){\tmpd}\fi% + \global\advance\tmpc by-8% + }% + \advance\xpos by -8% + \fi% + \ifnum #2=7\put(\xpos,\ypos){\framebox(\breite,\tmpa){}}% + \tmpb=\breite\divide\tmpb by2% + \ifnum\hoehe>0\ypos=\hoehe\else\ypos=0\advance\tmpb by-\tmpa\fi% + \tmpc=\tmpa\divide\tmpc by4% + \multiput(\xpos,\ypos)(0,-4){\tmpc}{% + \ifdim\@ydim<\tmpb pt\tmpd=\@ydim\divide\tmpd by65536% + \ifnum\tmpd<0\advance\tmpd by\tmpa\fi% + \multiply\tmpd by2\line(2,-1){\tmpd}% + \else\line(2,-1){\breite}% + \fi% + }% + \tmpb=\breite\divide\tmpb by8\advance\tmpb by 1\tmpc=\breite% + \tmpd=\tmpa\multiply\tmpd 2% + \multiput(\xpos,\ypos)(8,0){\tmpb}{% + \ifnum\tmpc>\tmpd\line(2,-1){\tmpd}\else\line(2,-1){\tmpc}\fi% + \global\advance\tmpc by-8% + }% + \fi% + \ifnum #2=8\put(\xpos,\ypos){\rule{\breite pt}{\tmpa pt}}\fi + \my@number% + \fi% + \tmpc-\baselineskip\divide\tmpc 65536% + \divide\tmpc 2% + \put(\xpos,\ypos){\put(0,\tmpc){\makebox(\breite,0){#3}}}% + \ifnum\anzbar>0 + \ifnum\tiefe>0 + \ifnum\lhoehe<\hoehe + \ifnum\lhoehe>0\machDachI(\lxpos,\lhoehe) + \else\machDachI(\lxpos,0) + \fi + \else + \ifnum\lhoehe>0\machDachII(\lxpos,\lhoehe) + \else\machDachII(\lxpos,0) + \fi + \fi% + \fi% + \if@hlineon\machHLines\fi% + \fi% + \lxpos\xpos\advance\xpos\breite\advance\xpos\inter% + \advance\anzbar1\lhoehe\hoehe% +} + + +\newenvironment{barenv}% +{\par% + \xpos0\breite40\halfbreite20\tiefe0\lhoehe0\anzbar0% + \yminII0\ymaxII0\inter0\dinter0pt\vorz1% + \exact0\ymove0\xmove0\unitlength1pt\@xaxisfalse\@yaxisfalse\@hlineonfalse% + \let\my@lstyle=\mydotbox\let\myx@value=\Zahl@n% + \faktor1pt% + \def\vline{\my@vline}% + \def\hspace{\my@hspace}% + \setbox\@tempboxa=\hbox\bgroup% + \begin{picture}(0,0)\thinlines% +}% +{% + \advance\xpos by-\inter% + \ifnum\tiefe>0 + \put(\xpos,0){\line(1,1){\tiefe}}% +%%%DPC CHANGE +% \put(\xpos,\hoehe){\line(1,1){\tiefe}\put(0,\tiefe){\line(0,1){-\hoehe}}}% + \put(\xpos,\hoehe){\line(1,1){\tiefe}% + \put(0,\tiefe){\ifnum\hoehe<\z@\line(0,1){-\hoehe}\fi}}% +%%%END DPC CHANGE + \fi% + \deltax=\lhoehe\bar{0}{-1}\lhoehe=\deltax% + \thicklines% + \if@yaxis\else\tmpa=\ymaxII\advance\tmpa by-\yminII\advance\tmpa by\tiefe% + \put(0,\yminII){\line(0,1){\tmpa}}% + \fi% + \if@xaxis% + \advance\ymin by-\ymove% + \tmpe=\exact\global\exact=\xexact% + \put(0,\ymin){\line(1,0){\lxpos}}% + \xstep=\dxstep\divide\xstep by65536% + \dtmpa=\dxmax\advance\dtmpa by-\dxmin% + \deltax=\dtmpa\divide\deltax by65536\divide\deltax by\xstep% + \advance\deltax by1% + \tmpa=\breite\divide\tmpa by2% + \tmpb=\breite\advance\tmpb by\inter% + \multiput(\tmpa,\ymin)(\tmpb,0){\deltax}{% + \line(0,-1){4}\myx@value\dxmin% + \global\advance\dxmin by\dxstep}% + \global\exact=\tmpe% + \fi% + \put(0,0){\line(1,0){\lxpos}}% + \if@xaxis\tmpa=-20\else\tmpa=-10\fi% + \ifvoid\xbox\else\put(\lxpos,\ymin){\put(0,\tmpa){\box\xbox}}\fi% + \tmpa=\ymax\advance\tmpa by6\advance\tmpa by\tiefe% + \ifvoid\ybox\else\put(\tiefe,\tmpa){\box\ybox}\fi% + \if@hlineon% + \ifnum\lhoehe<0% + \tmpb=-\ymin\advance\tmpb by\lhoehe% + \advance\tmpb by\ymove\divide\tmpb by\ystep% + \tmpa=\ymin\advance\tmpa by\tiefe\advance\tmpa by\ymove% + \multiput(\lxpos,\tmpa)(0,\ystep){\tmpb}{% + \ifdim\@ydim<\lhoehe pt% + \else\ypos=-\@ydim\divide\ypos by65536% + \advance\ypos by\lhoehe\advance\ypos by\tiefe% + \tmpe=\tiefe\advance\tmpe by-\ypos% + \ifnum\ypos>0\put(\tmpe,0){\thinlines\my@lstyle\ypos}\fi% + \fi% + }% + \fi% + \put(0,\ymin){\line(1,0){\lxpos}}% + \tmpa=\ymax\advance\tmpa by-\ymin% + \ifnum\tiefe>0 + \put(0,\ymax){\line(1,1){\tiefe}\put(0,\tiefe){\line(1,0){\lxpos}% + \line(0,-1){\tmpa}\put(0,-\tmpa){\line(-1,-1){\tiefe}}}}% + \else\put(0,\ymax){\line(1,0){\lxpos}\line(0,-1){\tmpa}}% + \fi% + \thinlines% + \ifnum\hbarI<0\tmpa=-\ymin\advance\tmpa by\hbarI\advance\tmpa by-\tiefe% + \put(\tiefe,\tiefe){\line(0,1){\ymax}}% + \put(\tiefe,\hbarI){\line(0,-1){\tmpa}}% + \else\tmpa=\ymax\advance\tmpa by-\hbarI\advance\ymax by\tiefe% + \put(\tiefe,\ymax){\line(0,-1){\tmpa}}% + \ifnum\ymin<0\tmpa=\ymin% + \advance\tmpa by\tiefe\put(\tiefe,\tmpa){\line(0,1){-\tmpa}}% + \fi% + \fi% + \ifnum\hbarI<0\tmpa=\hbarI\tmpb=0\else\tmpa=0\tmpb=\hbarI\fi% + \tmpc=-\ymin\advance\tmpc \tmpa% + \ifnum\tmpc>\tiefe\tmpc=\tiefe\fi + \ifnum\ymove>0\put(0,\ymin){\line(1,1){\tmpc}}\fi% + \advance\ymin by\ymove% + \multiput(0,\ymin)(0,\ystep){\deltay}{% + \ifdim\@ydim<\tmpa pt% + \tmpc=-\@ydim\divide\tmpc by65536\advance\tmpc by\tmpa% + \ifnum\tmpc>\tiefe\tmpc=\tiefe\fi% + \ifx\l@style\solid\line(1,1){\tmpc}% + \else\divide\tmpc by 3\multiput(0,0)(3,3){\tmpc}{.}% + \fi% + \else\ifdim\@ydim>\tmpb pt% + \ifx\l@style\solid\line(1,1){\tiefe}% + \else\tmpe=\tiefe\divide\tmpe by3\multiput(0,0)(3,3){\tmpe}{.}% + \fi% + \fi% + \fi% + }% + \fi% + \thinlines% + \ifnum\ymaxII<\ymax\global\ymaxII=\ymax\else\global\ymaxII=\ymaxII\fi% + \ifnum\yminII>\ymin\global\yminII=\ymin\else\global\yminII=\yminII\fi% + \global\advance\yminII by-\ymove% + \global\xpos=\the\xpos\global\advance\xpos by20% + \end{picture} + \egroup% + \global\advance\ymaxII by\tiefe\advance\ymaxII by-\yminII% + \advance\xpos by-\breite% + \begin{picture}(\the\xpos,\the\ymaxII) + \put(\xmove,-\yminII){\box\@tempboxa} + \end{picture} + \faktorfalse +} + + +\def\legend#1#2{% + \begin{picture}(20,10) + \put(0,0){\framebox(20,10){}} + \ifnum #1=2\multiput(1,0)(3,0){7}{\line(0,1){10}}\fi% + \ifnum #1=3\multiput(0,1)(0,3){3}{\line(1,0){20}}\fi% + \ifnum #1=4\multiput(1,0)(3,0){7}{\line(0,1){10}}% + \multiput(0,1)(0,3){3}{\line(1,0){20}}% + \fi% + \ifnum #1=5\multiput(1,0)(4,0){5}{\rule{2pt}{10pt}}% + \multiput(0,2)(0,4){2}{\rule{20pt}{2pt}}% + \fi% + \ifnum #1=6% + \put(0,0){\line(2,1){20}}\put(0,4){\line(2,1){13}}\put(8,0){\line(2,1){12}}% + \fi% + \ifnum #1=7% + \put(0,10){\line(2,-1){20}}\put(0,6){\line(2,-1){12}}% + \put(8,10){\line(2,-1){12}}% + \fi% + \ifnum #1=8\put(0,0){\rule{20\unitlength}{10\unitlength}}\fi% + \end{picture}% + \quad#2% +} + + + +\def\my@vline{% + \tmpa\ymin\advance\tmpa-\ymove% + \put(\xpos,\tmpa){\line(0,1){\yhoehe}} +} + + +\def\my@hspace#1{% + \dtmpa#1pt\multiply\dtmpa\breite% + \tmpa\dtmpa\divide\tmpa65536% + \global\advance\xpos\tmpa +} + + + +\def\mydotbox#1{\tmpe=#1\advance\tmpe by2\lower0.8pt\hbox to\tmpe pt{\dotfill}} + + +\def\mylinebox#1{\line(1,0){#1}} + + +% Parameter: umzuwandelnde Dimension. +\def\dimIIreal#1{% + \dtmpa=#1\tmpa=\dtmpa\divide\tmpa by65536\advance\dtmpa by-\tmpa pt% + \the\tmpa\ifnum\exact>0,\fi% + \tmpb=\exact% + \@whilenum\tmpb>0\do{% + \advance\dtmpa by0.05pt\dtmpa=10\dtmpa\advance\dtmpa by-0.5pt% + \tmpa=\dtmpa\divide\tmpa by65536\advance\dtmpa by-\tmpa pt% + \the\tmpa\advance\tmpb by-1}% +} + + +\def\machDachI(#1,#2){% + \tmpa=\hoehe\advance\tmpa by-#2\tmpd=\tmpa\ifnum\tmpd<0\tmpd=-\tmpd\fi% + \ifnum\hoehe<0\machDachII(#1,#2)% + \else + \tmpb=\breite\advance\tmpb by-\tiefe% + \advance\tmpb by\inter% + \ifnum\tmpa<\tiefe\advance\tmpa by-\tiefe\advance\tmpb by-\tmpa\fi% + \ifnum\tmpb>\breite\tmpb=\breite\fi% + \ifnum\breite<\tiefe\put(#1,#2){\line(1,1){\breite}}% + \else\put(#1,#2){\line(1,1){\tiefe}\put(0,\tiefe){\line(1,0){\tmpb}}}% + \fi% + \fi% + \tmpa=#1\advance\tmpa by\breite% + \ifnum\inter>0% + \ifnum\tmpd<\inter\tmpb=\tiefe\else\tmpb=\inter\fi% + \put(\tmpa,\lhoehe){\line(1,1){\tmpb}}% + \fi% + \ifnum\lhoehe<0\put(\tmpa,\lhoehe){% + \ifnum\hoehe<0\tmpb=-\lhoehe\advance\tmpb by\hoehe% + \ifnum\tmpb>\tiefe\tmpa=\tiefe\else\tmpa=\tmpb\tmpb=0\fi% + \line(1,1){\tmpa}\put(0,\tmpa){\advance\tmpb by-\tiefe\line(0,1){\tmpb}}% + \else\tmpa=-\lhoehe\advance\tmpa by-\tiefe% + \ifnum-\lhoehe<\tiefe\tmpb=-\lhoehe\else\tmpb=\tiefe\fi% + \line(1,1){\tmpb}\put(0,\tmpb){\line(0,1){\tmpa}}% + \fi% + }% + \fi +} + + +\def\machDachII(#1,#2){% + \tmpa=#1\advance\tmpa by\breite\tmpb=0% + \ifnum\hoehe>0\ifnum\lhoehe<0\tmpb=\lhoehe\fi + \put(\tmpa,\tmpb){\line(1,1){\inter}} + \else\put(\tmpa,0){\line(1,1){\tiefe}} + \fi + \ifnum\hoehe<0\tmpa=\lhoehe\else\tmpa=\lhoehe\advance\tmpa by-\hoehe\fi + \ifnum\tmpa<0\tmpa=\inter\else\advance\tmpa by\inter\fi% + \put(#1,#2){\line(1,1){\tiefe}\put(0,\tiefe){\line(1,0){\breite}% + \line(0,-1){\tmpa}\line(-1,-1){\tiefe}}}% +} + + +\def\machHLinesI{% + \tmpc=\breite\advance\tmpc by2% + \setbox\mybox=\hbox to\tmpc pt{\dotfill} + \multiput(\lxpos,\ymin)(0,\ystep){\deltay}{% + \ifdim\@ydim<\tmpa pt\lower0.8pt\copy\mybox\fi% + \ifdim\@ydim>\tmpb pt\lower0.8pt\copy\mybox\fi% + } +} + + +\def\machHLinesII{% + \multiput(\lxpos,\lypos)(0,\ystep){\deltay}{% + \ifdim\@ydim<\tmpa pt% + \ifdim\@ydim>\tmpc pt\ypos=\breite\advance\ypos by-\tiefe% + \else\ypos=\breite% + \fi% + \my@lstyle\ypos + \else% + \ifdim\@ydim>\tmpc pt% + \else% + \ypos=-\@ydim\divide\ypos by65536% + \advance\ypos by\lhoehe\advance\ypos by\tiefe% + \tmpe=\breite\advance\tmpe by-\ypos% + \ifnum\ypos>0\ifnum\tmpe>0\put(\tmpe,0){\my@lstyle\ypos}\fi\fi% + \fi% + \fi% + \ifdim\@ydim>\tmpb pt% + \ypos=\breite\advance\ypos by-\tiefe% + \ifdim\@ydim>\tmpd pt\ypos=\breite% + \else\ifdim\@ydim<\hoehe pt% + \else\tmpe=\@ydim\divide\tmpe by65536\advance\tmpe by-\hoehe% + \advance\ypos by\tmpe% + \fi% + \fi% + \my@lstyle\ypos + \fi% + }% +\ifnum\ymove>0% + \tmpb=\ymin\advance\tmpb by-\ymove\advance\tmpb by\tiefe% + \ifnum\lhoehe>\tmpb\ypos=\breite% + \ifnum\hoehe<\tmpb\advance\ypos by-\tiefe\fi% + \put(\lxpos,\tmpb){\line(1,0){\ypos}} + \fi% +\fi% +} + + +\def\machHLines{% + \tmpe=\baselineskip\divide\tmpe by65536\advance\tmpe by3% + \ifnum\lhoehe<0\tmpa=\lhoehe\tmpb=0\else\tmpa=0\tmpb=\lhoehe\fi% + \ifnum\hoehe<0\tmpc=\hoehe\tmpd=0\else\tmpc=0\tmpd=\hoehe\fi% + \advance\tmpb by\tiefe\advance\tmpd by\tiefe% + \advance\lxpos by\tiefe% + \lypos=\ymin\advance\lypos by\tiefe% + \machHLinesII% +} + + +\def\@user{} +\def\my@empty{} +\def\my@inside{% + \ifnum\hoehe<0\put(\xpos,\hoehe){\makebox(\breite,\tmpa){{\my@style\@user}}}% + \else\put(\xpos,0){\makebox(\breite,\tmpa){{\my@style\@user}}}% + \fi% +} +\def\my@outside{% + \tmpa=\hoehe% + \ifnum\hoehe<0\advance\tmpa by-6\else\advance\tmpa by\tiefe\advance\tmpa by6% + \fi% + \tmpb=\breite\divide\tmpb by2\advance\tmpb by\xpos% + \ifnum\hoehe>0\advance\tmpb by\tiefe\fi% + \put(\tmpb,\tmpa){\makebox(0,0){{\my@style\@user}}}% +} +\def\my@up{% + \ifnum\hoehe>0\tmpa=\hoehe\advance\tmpa by\tiefe\advance\tmpa by8% + \else\tmpa=\tiefe\advance\tmpa by8% + \fi% + \tmpb=\breite\divide\tmpb by2\advance\tmpb by\xpos\advance\tmpb by\tiefe% + \put(\tmpb,\tmpa){\makebox(0,0){{\my@style\@user}}}% +} +\def\my@down{% + \ifnum\hoehe>0\tmpa=-6\else\tmpa=\hoehe\advance\tmpa by-6\fi% + \tmpb=\breite\divide\tmpb by2\advance\tmpb by\xpos% + \put(\tmpb,\tmpa){\makebox(0,0){{\my@style\@user}}}% +} +\def\my@axis{% + \ifnum\hoehe>0\tmpa=-6\else\tmpa=6\fi% + \tmpb=\breite\divide\tmpb by2\advance\tmpb by\xpos% + \put(\tmpb,\tmpa){\makebox(0,0){{\my@style\@user}}}% +} + + +\def\Monat@#1{% + \tmpd=#1\divide\tmpd by65536\tmpd=\the\tmpd% + \tmpc=\tmpd\divide\tmpc by12\multiply\tmpc by12\advance\tmpd -\tmpc% + \put(0,-10){\makebox(0,0){{\mytmp@style% + \ifcase\tmpd Dez\or Jan\or Feb\or M\"ar\or Apr\or Mai\or Jun\or Jul% + \or Aug\or Sep\or Okt\or Nov% + \fi% + }}}% +} + + +\def\Tag@#1{% + \tmpd=#1\divide\tmpd by65536\tmpd=\the\tmpd% + \tmpc=\tmpd\divide\tmpc by7\multiply\tmpc by7\advance\tmpd -\tmpc% + \put(0,-10){\makebox(0,0){{\mytmp@style% + \ifcase\tmpd Son\or Mon\or Die\or Mit\or Don\or Fre\or Sam\fi% + }}}% +} + + +\def\Zahl@n#1{% + \dtmpa=#1% + \put(0,-10){\makebox(0,0){{\mytmp@style\dimIIreal\dxmin}}}% +} +\endinput diff --git a/Master/texmf-dist/tex/latex/misc209/bibmods.sty b/Master/texmf-dist/tex/latex/misc209/bibmods.sty new file mode 100644 index 00000000000..068dd3c9812 --- /dev/null +++ b/Master/texmf-dist/tex/latex/misc209/bibmods.sty @@ -0,0 +1,65 @@ +% -*-latex-*- +%% /u/sy/beebe/tex/bib/bibmods.sty, Mon Jul 9 08:40:33 1990 +%% Edit by Nelson H.F. Beebe + +%% ===================================================================== +%% @LaTeX-style-file{ +%% author = "Nelson H. F. Beebe ", +%% version = "1.01", +%% date = "10 September 1991", +%% filename = "bibmods.sty", +%% address = "Center for Scientific Computing +%% and Department of Mathematics +%% South Physics Building +%% University of Utah +%% Salt Lake City, UT 84112 +%% USA +%% Tel: (801) 581-5254", +%% checksum = "14420 65 318 2830", +%% email = "beebe at science.utah.edu (Internet)", +%% codetable = "ISO/ASCII", +%% supported = "yes", +%% docstring = "This LaTeX style file provides a modification +%% to the thebibliography environment to improve +%% spacing. +%% +%% The checksum field above contains a CRC-16 +%% checksum as the first value, followed by the +%% equivalent of the standard UNIX wc (word +%% count) utility output of lines, words, and +%% characters. This is produced by Robert +%% Solovay's checksum utility." +%% } +%% ===================================================================== + +% The standard LaTeX \bibliography definition invokes \sloppy, which in turn +% sets \tolerance to 10000. This gives spacing that is too stretchable, +% with the result that wide white spaces appear in order to give right- +% justified output in two-column mode. We redefine \thebibliography +% to invoke the original definition, then reset the tolerance to a more +% reasonable value. We also allow a little \emergencystretch (a TeX 3.0 +% feature) to allow individual lines to be slightly longer; if that +% name is unknown, the code avoids its use, so as to work with earlier +% versions of TeX. + +% TeXbook, p. 308: +\def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax} + +\let\oldthebibliography=\thebibliography +\renewcommand{\thebibliography}[1]{\oldthebibliography{#1} + \hyphenpenalty=1 + % \emergencystretch is a new feature of TeX 3.0; use it only if known + \ifundefined{emergencystretch} + \relax + \else + \emergencystretch=3pt + \fi + \if@twocolumn + \tolerance=6000 %need looser tolerances in two-column mode + \else + \tolerance=2000 + \fi +\hbadness=10000 \relax} + +\overfullrule=3pt % to catch problems in the output. + diff --git a/Master/texmf-dist/tex/latex/misc209/example.sty b/Master/texmf-dist/tex/latex/misc209/example.sty new file mode 100644 index 00000000000..1144ed56572 --- /dev/null +++ b/Master/texmf-dist/tex/latex/misc209/example.sty @@ -0,0 +1,414 @@ +% Save file as: EXAMPLE.STY Source: FILESERV@SHSU.BITNET +% example.sty 20 May 91 +%------------------------------------------------------------ +% Copyright (c) 1988, 1991 by J.Schrod. +% Distributed under the terms of the GNU General Public License. + +% +% LaTeX style option example +% tested with style article, should also work with other styles +% don't use it with twoside or twocolumn option +% +% [LaTeX in MAKEPROG] + + +% +% Author +% js: Joachim Schrod +% Contributors +% (** enough place for your name **) +% + +% +% VERSION HISTORY (MSCF -- most significant change first) +% +% DATE WHO REMARKS +% 91-05-20 js documentation added for distribution +% 88-06-29 js created it for THD LaTeX tutorial + + + + +%%%% +%%%% +%%%% These TeX macros were documented with the documentation system +%%%% MAKEPROG and automatically converted to the current form. +%%%% If you have MAKEPROG available you may transform it back to +%%%% the original input: Remove every occurence of three percents +%%%% and one optional blank from the beginning of a line and remove +%%%% every line which starts with four percents. The following lex +%%%% program will do this: +%%%% +%%%% %% +%%%% +%%%% ^%%%\ ? ; +%%%% ^%%%%.*\n ; +%%%% +%%%% MAKEPROG may be obtained over the net from the Bitnet-Listserver +%%%% LISTSERV@DHDURZ1 (filelist WEBWARE), from tuglib@science.utah.edu, +%%%% or via ftp from june.cs.washington.edu. +%%%% +%%%% +%%% \documentstyle[progltx,example]{article} + + +%%% \nofiles % don't need an aux file +%%% \hfuzz=18pt % expected overfull hboxes in code + + +%%% \begin{document} + + +%%% \title{The {\tt example\/} Style Option} +%%% \author{% % LaTeX does not discard unnecessary glue... +%%% Joachim Schrod% +%%% \thanks{% +%%% TU~Darmstadt, Alexanderstr.~10, D-6100 Darmstadt, Germany.\hfil\break +%%% Email: {\tt xitijsch@ddathd21.bitnet}.% +%%% }% +%%% } +%%% \date{20 May 91} + +%%% \maketitle + + + +%%% \chap What's this style option for?. + +%%% This style option makes it easier to produce examples for \TeX{} +%%% courses. It realizes an |example| environment; the text within such +%%% an environment is typeset two times: On the left side just like any +%%% ordinary text, on the right side verbatim. So an author can be sure +%%% that the verbatim and the typeset part of an \TeX{} example is +%%% consistent. The usage is simple: Type +%%% % +%%% \begin{quote} +%%% |\begin{example}| +%%% |Some \TeX{} text.| +%%% |\end{example}| +%%% \end{quote} +%%% % +%%% and you get +%%% % +%%% \begin{example} +%%% Some \TeX{} text. +%%% \end{example} +%%% % +%%% Just note one important point: {\it The end of the environment must +%%% be on a line of it's own, there must be no space in front of the +%%% |\end|, and there must be no text -- even no comment -- behind}. For +%%% further information have a look at the section on possible +%%% enhancements. + + +%%% \sect This program is free software; you can redistribute it and/or +%%% modify it under the terms of the GNU General Public License as +%%% published by the Free Software Foundation; either version~1, or (at your +%%% option) any later version. + +%%% This program is distributed in the hope that it will be useful, but +%%% {\bf without any warranty\/}; without even the implied warranty of +%%% {\bf merchantability\/} or {\bf fitness for a particular purpose}. See +%%% the GNU General Public License for more details. + +%%% You should have received a copy of the GNU General Public License +%%% along with this program; if not, write to the Free Software Foundation, +%%% Inc., 675~Mass Ave, Cambridge, MA~02139, USA. + + +%%% \sect The implementation uses an auxiliary file. This file has the +%%% extension |tmp|. Be aware of this if you use such a file name in other +%%% options. The file is not needed outside of the environment. + +%%% All public markups start with |Example|, all private ones with +%%% |example_|. These two prefixes are reserved. + +%%% The width of an example column is available for inspection and change +%%% in the dimension register |\ExampleWidth|. + + +%%% \sect This style option still has at least one problem which you +%%% should be aware of: I've encountered false indentation while I've +%%% used it within an item of a |list| environment. I remember that there +%%% was a difference if it was used with or without text in front of it. +%%% But I didn't needed this stuff so I decided not to look at. + +%%% Might be, that |\everypar| is not handled correctly or that some flags +%%% should be looked at. (Remember that an |\item| in \LaTeX{} does not +%%% set anything -- it just stores it away until the start of the next +%%% paragraph!) + +%%% Furthermore I set |\oddsidemargin| and |\evensidemargin| to 0\,pt, but +%%% I do not remember why. Is this really necessary? (I should have +%%% documented it in the beginning, nothing lives longer than a +%%% provision\,\dots) + + +%%% \sect And some future enhancements would be easy to make: +%%% % +%%% \begin{itemize} + +%%% \item The algorithm for typesetting the verbatim text should be those +%%% of |progltx|. Then tabulators and all those stuff would be handled +%%% right. + +%%% \item The algorithm for detecting the environment end should be those +%%% of |progltx|, too. It would allow for comments; a markup which forbids +%%% a comment behind it should be forbidden. + +%%% \item There should be a way to specify texts which are only printed in +%%% the \TeX{} part resp.\ the verbatim part. This would be helpful for +%%% inserting help lines, additional information etc. (Implementation is +%%% straightforward.) + +%%% \item The implementation does not care for the |twoside| option. Then +%%% the order should be mirrored. I.e., verbatim left and \TeX{} text +%%% right. + +%%% \item Other arrangements of \TeX{} text and verbatim text should be +%%% possible. E.g., on a slide there should not be beside each other but +%%% below. Perhaps also on a multi-column layout. + +%%% \end{itemize} + + +%%% \sect Before we start we declare some shorthands for category codes. +%%% By declaring the underscore~`(|_|)' as letters we can use it in our +%%% macros. (I agree with {\sc D.~Knuth} that +%%% |\identifier_several_words_long| is more readable than +%%% |\IdentifierSeveralWordsLong| and in every case better than +%%% |\p@@@s|.) As this is a \LaTeX{} style option the at sign is a letter +%%% anyhow; so we can use the ``private'' Plain and \LaTeX{} macros; and +%%% with the underscore we can make our own macros more readable. But as +%%% we have to restore this category code at the end of this macro file +%%% we store its former value in the control sequence |\uscode|. This +%%% method is better than to use a group because not all macros have to +%%% be defined global this way. + +%%% \beginprog +\chardef\escape=0 +\chardef\open=1 +\chardef\close=2 +\chardef\letter=11 +\chardef\other=12 +%\chardef\active=13 % is defined in Plain already + +\chardef\uscode=\catcode`\_ % top level macro file! + +\catcode`\_=\letter +%%% \endprog + + +%%% \sect Now some setup where I don't remember why I've done them, +%%% perhaps it was only needed in our tutorials. -- But never change a +%%% running program by yourself, let others do the work\,\dots + +%%% \beginprog +\oddsidemargin=0pt +\evensidemargin=\oddsidemargin +%%% \endprog + + + + +%%% \chap The Work is Simple. + +%%% Guess, the problem of implementation is no problem: We write the whole +%%% stuff to a file and read it back twice. One time for typesetting it as +%%% it is, second time for typesetting it verbatim. That's all. + +%%% So let's define our file variable and name first: + +%%% \beginprog +\newwrite\example_file +\def\example_name{\jobname.tmp } % <-- space! +%%% \endprog + + +%%% \sect Both parts of one example will be placed besides each other. We +%%% use the margin for the example, too. (There is not much place anyhow.) +%%% Between the two parts there is |\columnsep| space left. + +%%% \beginprog +\newdimen\ExampleWidth + \ExampleWidth=\textwidth + \advance\ExampleWidth by \marginparwidth % stick into margins + \advance\ExampleWidth by -\columnsep % between columns + \divide\ExampleWidth by 2 +%%% \endprog + + +%%% \sect When we're about, we may specify how to set the two parts. We +%%% may assume that the complete text is in the file |\example_name|. Both +%%% parts are typeset as minipages (it's better than vtop's for +%%% |\footnote| examples and such like). Sectioning markups and other +%%% stuff which setup things must behave as if they were not there -- +%%% nobody wants an entry in his table of contents because he has used a +%%% |\section| markup in an example. + +%%% The horizontal rules are needed for a better (still not correct) +%%% interline spacing. + +%%% {\it FIXME: How about index and glossary entries?} + +%%% \beginprog +\def\ExampleSet{% + \begin{minipage}[t]{\ExampleWidth}% + \hrule height\z@ + \def\markboth##1##2{}% + \def\markright##1{}% + \def\addcontentsline##1##2##3{}% + \input \example_name + \par + \hrule height\z@ + \end{minipage}% + } +%%% \endprog + + +%%% \sect Grmpfh, the \LaTeX{} |verbatim| environment is sloppy +%%% implemented (to say it polite). I will establish at least that a tab +%%% is typeset as 8~spaces; this will help some people. + +%%% {\it FIXME: other\/ |verbatim| implementation!} + +%%% \beginprog +\begingroup + \catcode`\^^I=\active + \gdef\@vobeytabs{\catcode`\^^I\active \let^^I\@xobeytab} + \global\let^^I=\@xobeytab% % for \write's +\endgroup +\def\@xobeytab{\space\space\space\space\space\space\space\space} +%%% \endprog + + +%%% \sect The verbatim code is taken from \LaTeX{}: + +%%% \beginprog +\def\ExampleVerb{% + \begin{minipage}[t]{\ExampleWidth}% + \hrule height\z@ + \begingroup + \small + \parindent\z@ + \rightskip\@flushglue + \@makeother\"\@verbatim + \frenchspacing \@vobeyspaces \@vobeytabs + \input \example_name + \endverbatim + \endgroup + \hrule height\z@ + \end{minipage}% + } +%%% \endprog + + + + +%%% \chap Writing the example to the auxiliary file. + +%%% Now we come to the real environment: We open our auxiliary file and +%%% start copying line by line afterwards. When we see the environment +%%% end we will finish. As a convenience for input we will ignore empty +%%% lines at the beginning of the example, this is flagged by |@ignore|. + +%%% \beginprog +\def\example{ + \par + \immediate\openout\example_file\example_name + \begingroup + \@makeother\"\let\do\@makeother \dospecials + \obeylines \obeyspaces + \@ignoretrue \copy_line + } +%%% \endprog + + +%%% \sect We need a reference line of the example end to compare against. +%%% This line we call |\end_of_example|. Of course all catcodes have to +%%% set up appropriately. + +%%% \beginprog +\begingroup + \catcode`\|=\escape % | is temporary escape character + \catcode`\[=\open % [ and ] are temporary grouping symbols + \catcode`\]=\close + \catcode`\{=\other % these are `other' in verbatim mode + \catcode`\}=\other + \catcode`\\=|other + |gdef|end_of_example[\end{example}] +|endgroup +%%% \endprog + + +%%% \sect Following the ``golden rules of \TeX{} macro coding,'' we will +%%% split gathering of the next line and working with it. If the line +%%% equals our reference line we will stop our envirenment. Of course, we +%%% must call |\end| ourselves as we have just read it from the input and +%%% it is already tokenized. + +%%% If we are inmidst the example we write the line to the auxiliary file, +%%% if we shall not skip empty lines as indicated by |@ignore|. + +%%% {\it FIXME: The comparison should not be so rude!} + +%%% \beginprog +\begingroup + \obeylines \gdef\copy_line#1^^M{\write_line{#1}}% +\endgroup + +\def\write_line#1{% + \def\Next{#1}% + \ifx \Next\end_of_example + \def\Next{\end{example}}% % finish example + \else + \ifx \Next\empty + \if@ignore % ignore empty lines at the beginning + \else % but write them out later + \immediate\write\example_file{\Next}% + \fi + \else + \immediate\write\example_file{\Next}% + \@ignorefalse % at least one non-empty line written + \fi + \let\Next\copy_line % next line of example + \fi + \Next + } +%%% \endprog + + +%%% \sect Now we may handle our real work: The example text is written +%%% out, we just have to set it two times. But first we must close the +%%% file. Both parts are set by a |\leftline| which inserts glue by |\hss| +%%% and will not yield an overfull hbox this way, it just sticks out to +%%% the right. + +%%% We try to mimic a displayed equation in spacing -- it's better than +%%% nothing (polishing needed). + +%%% \beginprog +\def\endexample{% + \endgroup + \immediate\closeout\example_file + \penalty \predisplaypenalty + \vskip \abovedisplayskip + \leftline{\ExampleSet \hskip\columnsep \ExampleVerb}% + \penalty \postdisplaypenalty + \vskip \belowdisplayskip + } +%%% \endprog + + +%%% \sect We must restore our catcode and are finished. + +%%% \beginprog +\catcode`\_=\uscode + +\endinput +%%% \endprog + + + +%%% \end{document} + diff --git a/Master/texmf-dist/tex/latex/misc209/hangcaption.sty b/Master/texmf-dist/tex/latex/misc209/hangcaption.sty new file mode 100644 index 00000000000..6a7e3fb5b62 --- /dev/null +++ b/Master/texmf-dist/tex/latex/misc209/hangcaption.sty @@ -0,0 +1,113 @@ +%%% ==================================================================== +%%% @LaTeX-style-file{ +%%% filename = "hangcaption.sty", +%%% version = "2.00", +%%% date = "27 August 1992", +%%% time = "22:23:46 EDT", +%%% author = "David M. Jones", +%%% address = "MIT Laboratory for Computer Science +%%% Room NE43-316 +%%% 545 Technology Square +%%% Cambridge, MA 02139 +%%% USA", +%%% telephone = "(617) 253-5936", +%%% FAX = "(617) 253-3480", +%%% checksum = "57880 113 520 5319", +%%% email = "dmjones@theory.lcs.mit.edu", +%%% codetable = "ISO/ASCII", +%%% keywords = "LaTeX, caption", +%%% supported = "no", +%%% abstract = "Defines a variant of the caption command to +%%% produce captions with hanging +%%% indentation.", +%%% docstring = "This is the debugged version of a modified +%%% caption macro, \hangcaption, to produce +%%% captions with hanging indentation, like +%%% this: +%%% +%%% Figure 1.1: XXXXX XXX XXXX XXXX XXX +%%% XXX XXX XXX XXX XX XXX +%%% +%%% The length variable \captionwidth controls +%%% how the caption is typeset. If the width +%%% of the caption is less than \captionwidth, +%%% the \hangcaption is typeset the same way a +%%% short \caption would be (usually centered). +%%% Otherwise, it is set as shown above, with a +%%% total width equal to \captionwidth. +%%% \captionwidth is set to \hsize normally, +%%% but you may want to change it temporarily +%%% to match the width of a \tabular* +%%% environment, for example. +%%% +%%% \hangcaption is used in the same way as +%%% \caption. To retain compatibility with +%%% previous versions of this style, the +%%% \hangcaption is also available under the +%%% name \isucaption. +%%% +%%% I did not write this file. The original +%%% author is unknown. However, I did fix a bug, +%%% namely, I removed a superflous "^^" that was +%%% causing one of the close braces to be +%%% interpreted as an equals sign, thus messing +%%% up the brace balancing. I also tacked an +%%% "\endinput" on to the end of the file and +%%% added this header, and incorporated a few +%%% changes suggested by Harm Bakker, George +%%% Greenwade, and Rainer Schoepf. +%%% +%%% v2.00 (27 Aug 1992): altered \numberline to +%%% use \the... instead of \fnum@... (fix due to +%%% Harm Bakker ). +%%% Changed \isucaption to \hangcaption at George +%%% Greenwade's suggestion. +%%% +%%% v1.03 (12 August 1992): minor changes to +%%% header. +%%% +%%% v1.02 (12 August 1992): patches by Rainer +%%% Schoepf to (a) +%%% work around a bug in LaTeX and (b) measure +%%% the caption correctly by including room for +%%% the colon and the space. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== + +\newlength\captionwidth \captionwidth=\hsize + +\def\hangcaption{\refstepcounter\@captype\@dblarg{\@hangcaption\@captype}} + +\long\def\@hangcaption#1[#2]#3{% + \baselineskip 14.5\p@ + \addcontentsline{\csname ext@#1\endcsname}{#1}% + {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}% + \par + \begingroup + \@parboxrestore + \setbox\@tempboxa\hbox{\csname fnum@#1\endcsname: #3}% + \ifdim \wd\@tempboxa > \captionwidth + \begingroup + \setbox\@tempboxa\hbox{\csname fnum@#1\endcsname: }% + \advance \captionwidth by -\wd\@tempboxa + \@makecaption{\csname fnum@#1\endcsname}% + {\ignorespaces{\protect\parbox[t]{\captionwidth}{\leavevmode#3}}}% + \endgroup + \else + \begingroup + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}% + \endgroup + \fi + \par\vspace{1.7ex}% + \endgroup} + +\let\isucaption\hangcaption + +\endinput diff --git a/Master/texmf-dist/tex/latex/misc209/multibox.sty b/Master/texmf-dist/tex/latex/misc209/multibox.sty new file mode 100644 index 00000000000..afe5530d15e --- /dev/null +++ b/Master/texmf-dist/tex/latex/misc209/multibox.sty @@ -0,0 +1,63 @@ +% MULTIBOX.STY - a style option to provide multiple boxes in pictures +% ============ +% Author: Brian HAMILTON KELLY, Royal Military College of Science, +% Shrivenham, SWINDON, SN6 8LA, United Kingdom +% Date: 13 October 1988 +% +% This style file option provides two new commands for use in the picture +% environment: +% +% \multimake(x,y)(dx,dy){n}(w,h)[]{Text_1}{Text_2}...{Text_n} +% \multiframe(x,y)(dx,dy){n}(w,h)[]{Text_1}{Text_2}...{Text_n} +% +% These commands set the n texts Text_1..Text_n inside a \makebox or +% \framebox respectively. The first box has its lower-left corner at (x,y), +% and successive boxes are located at (x+dx,y+dy),..,(x+(n-1)dx,y+(n-1)dy). +% Each box has width and height determined by (w,h), and the optional +% box placement parameter is applied to all the generated texts +% + +\newtoks\multi@rg + +\def\multiframe{\let\@putitem=\@iframepicbox \multib@x} +\def\multimake{\let\@putitem=\@imakepicbox \multib@x} + +\def\multib@x(#1,#2)(#3,#4)#5(#6,#7){\@xdim=#1\unitlength \@ydim=#2\unitlength + \def\@dxdim{#3} \def\@dydim{#4} + \@multicnt=#5 \def\@Xsize{#6} \def\@Ysize{#7} + \@ifnextchar [{\imultib@x}{\imultib@x[]} + } + +% The liberal use of % at the ends of lines is to prevent the ingestion of +% superfluous spaces which would otherwise upset the horizontal positioning +% of the boxes. + +\def\imultib@x[#1]{\@killglue\relax + \def\p@sarg{#1}% + \d@multi + } + +% We need the expanded definition of \i@putitem because \@imakepicbox DOESN'T +% expand its #3 argument (the optional text placement bit). However, it can +% only recognize the letters b, t, l and r in this position, so \p@sarg is no +% use. Therefore we expand the arguments, producing an appropriate call. + +\def\d@multi{% + \ifnum\@multicnt > 0 + \def\next@rg##1{% + \multi@rg={{##1}}% Assign the next argument of original text to \multi@rg + \edef\@iputitem{% + \noexpand\@putitem(\@Xsize,\@Ysize)[\p@sarg]{\the\multi@rg}% + }% + \raise\@ydim\hbox to \z@{\kern \@xdim \@iputitem\hss}% + \advance\@xdim by \@dxdim\unitlength \advance\@ydim by \@dydim\unitlength + \advance\@multicnt by \m@ne + \d@multi}% End of (re-)definition of \next@rg + \else + \let\next@rg=\ignorespaces + \fi % Now execute \next@rg; + \next@rg % This will read the text, set it and then call \d@multi recursively + } + + + diff --git a/Master/texmf-dist/tex/latex/misc209/multind.sty b/Master/texmf-dist/tex/latex/misc209/multind.sty new file mode 100644 index 00000000000..ef91c28df08 --- /dev/null +++ b/Master/texmf-dist/tex/latex/misc209/multind.sty @@ -0,0 +1,65 @@ +% indexes document style option for producing multiple indexes +% for use with the modified bbok style, CHbook.sty +% Written by F.W. Long, Version 1.1, 12 August 1991. + +% Modified by F.W. Long, Version 1.1a, 29 August 1991 +% to get the index heading correctly spaced. + +% Modified by F.W. Long, Version 1.1b, 31 August 1991 +% to remove the abbreviation \ix (which should be in the document, not here). + +% Modified \makeindex and \index commands to allow multiple indexes +% in both cases the first parameter is the index name. +% They now work more like \@starttoc and \addcontentsline. +% \index is no longer defined inside \makeindex but determines +% whether the appropriate file is defined before writing to it. + +\def\makeindex#1{\begingroup + \makeatletter + \if@filesw \expandafter\newwrite\csname #1@idxfile\endcsname + \expandafter\immediate\openout \csname #1@idxfile\endcsname #1.idx\relax + \typeout{Writing index file #1.idx }\fi \endgroup} + +\def\index#1{\@bsphack\begingroup + \def\protect##1{\string##1\space}\@sanitize + \@wrindex{#1}} + +% \@wrindex now checks that the appropriate file is defined. + +\def\@wrindex#1#2{\let\thepage\relax + \xdef\@gtempa{\@ifundefined{#1@idxfile}{}{\expandafter + \write\csname #1@idxfile\endcsname{\string + \indexentry{#2}{\thepage}}}}\endgroup\@gtempa + \if@nobreak \ifvmode\nobreak\fi\fi\@esphack} + +% Modified \printindex command to allow multiple indexes. +% This now takes over much of the work of \theindex. +% Again, the first parameter is the index name. +% The second parameter is the index title (as printed). + +\newif\if@restonecol +\def\printindex#1#2{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi + \columnseprule \z@ \columnsep 35pt + \newpage \twocolumn[{\Large\bf #2 \vskip4ex}] + \markright{\uppercase{#2}} + \addcontentsline{toc}{section}{#2} + \@input{#1.ind}} + +% The following index commands are taken from book.sty. +% \theindex is modified to not start a chapter. + +\def\theindex{\parindent\z@ + \parskip\z@ plus .3pt\relax\let\item\@idxitem} +\def\@idxitem{\par\hangindent 40pt} +\def\subitem{\par\hangindent 40pt \hspace*{20pt}} +\def\subsubitem{\par\hangindent 40pt \hspace*{30pt}} +\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} +\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax} + +% the command \ix allows an abbreviation for the general index + +%\def\ix#1{#1\index{general}{#1}} + +% define the \see command from makeidx.sty + +\def\see#1#2{{\em see\/} #1} diff --git a/Master/texmf-dist/tex/latex/misc209/portland.sty b/Master/texmf-dist/tex/latex/misc209/portland.sty new file mode 100644 index 00000000000..56ebf455e88 --- /dev/null +++ b/Master/texmf-dist/tex/latex/misc209/portland.sty @@ -0,0 +1,124 @@ +% This is PORTLAND.STY by H.Partl, TU Wien, as of 16 Dec 1988. +% Definition of commands and environments \portrait and \landscape +% for switching between PORTRAIT and LANDSCAPE printing. To be +% called as document style option with any available style. +% +% Commands: +% \portrait sets or resets the page layout to the initial values +% (i.e. the values valid at \begin{document}) +% \landscape sets the page layout such that the horizontal and +% vertical measures are interchanged with respect to +% the initial values. The text area will occupy the +% same position on the page as in \portrait mode. +% Both command issue a \clearpage before changing the layout. +% +% Environments: +% \begin{portrait} ... \end{portrait} +% \begin{landscape} ... \end{landscape} +% Both issue \clearpage at the \begin and at the \end. +% +% Implementation Dependencies: +% You should insert the correct paper height (11in or 197mm or ...) +% into \paperheight for correct positioning. +% If your printer driver allows mixing of protrait and landscape pages +% within one printout, you should insert the corresponding \special +% commands just after the four \clearpage commands. +% If your printer only allows printing of the whole document either in +% protrait or in landscape orientation, you should print the document +% twice (or selected parts of it) - once in portrait and once in landscape - +% and then merge the correct pages. +% If your printer can't print in landscape orientation, then these commands +% can be used only for small pages that fit onto the paper in both direc- +% tions. + +\newdimen \paperheight % needed for calculation of bottom margin. +\paperheight 297mm % <--- 11in for US paper or 297mm for A4 paper! + +\newdimen\phoffset +\newdimen\pvoffset +\newdimen\ptextwidth +\newdimen\ptextheight +\newdimen\ptopmargin +\newdimen\poddsidemargin +\newdimen\pevensidemargin + +\newdimen\lhoffset +\newdimen\lvoffset +\newdimen\ltextwidth +\newdimen\ltextheight +\newdimen\ltopmargin +\newdimen\loddsidemargin +\newdimen\levensidemargin + +\def\set@portland@values{% +% portrait values = current values +\phoffset\hoffset +\pvoffset\voffset +\ptextwidth\textwidth +\ptextheight\textheight +\ptopmargin\topmargin +\poddsidemargin\oddsidemargin +\pevensidemargin\evensidemargin +% landscape margins will be measured from zero point +\lhoffset \z@ +\lvoffset \z@ +% landscape textwidth = portrait textheight +\ltextwidth \ptextheight +% landscape textheight = portrait textwidth +\ltextheight \ptextwidth +% landscape left margin = portrait bottom margin (same for odd and even) +\loddsidemargin \paperheight +\advance \loddsidemargin by -\ptextheight +\advance \loddsidemargin by -\headsep +\advance \loddsidemargin by -\headheight +\advance \loddsidemargin by -\ptopmargin +\advance \loddsidemargin by -\pvoffset +\advance \loddsidemargin by -2in +\levensidemargin \loddsidemargin +% landscape top margin (incl. head) = portrait oddside left margin +\ltopmargin \poddsidemargin +\advance \ltopmargin by -\headheight +\advance \ltopmargin by -\headsep +\advance \ltopmargin by \phoffset +} + +\def\portrait{\clearpage \message{ \string\portrait }% + \hoffset\phoffset + \voffset\pvoffset + \textwidth\ptextwidth + \textheight\ptextheight + \@colht\textheight \@colroom\textheight \vsize\textheight + \columnwidth\textwidth \@clubpenalty\clubpenalty + \if@twocolumn \advance\columnwidth -\columnsep + \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue + \fi + \hsize\columnwidth \linewidth\hsize + \topmargin\ptopmargin + \oddsidemargin\poddsidemargin + \evensidemargin\pevensidemargin + } + +\def\endportrait{\clearpage \message{ \string\endportrait }} + +\def\landscape{\clearpage \message{ \string\landscape }% + \hoffset\lhoffset + \voffset\lvoffset + \textwidth\ltextwidth + \textheight\ltextheight + \@colht\textheight \@colroom\textheight \vsize\textheight + \columnwidth\textwidth \@clubpenalty\clubpenalty + \if@twocolumn \advance\columnwidth -\columnsep + \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue + \fi + \hsize\columnwidth \linewidth\hsize + \topmargin\ltopmargin + \oddsidemargin\loddsidemargin + \evensidemargin\levensidemargin + } + +\def\endlandscape{\clearpage \message{ \string\endlandscape }} + +\let\set@document@values \document +\def\document{\set@document@values \set@portland@values} + +\endinput diff --git a/Master/texmf-dist/tex/latex/misc209/psboxit.sty b/Master/texmf-dist/tex/latex/misc209/psboxit.sty new file mode 100644 index 00000000000..6f9bbd99428 --- /dev/null +++ b/Master/texmf-dist/tex/latex/misc209/psboxit.sty @@ -0,0 +1,175 @@ +% psboxes.sty +% +% This package enables to put a PostScript drawing behind a TeX box. +% The drawing is parametrized by the position and the size of the +% TeX box. To put a gray [rounded] box behind a word use +% \PScommands % Once at the begining +% +% ... text text \psboxit{25 cartouche}{THE WORD} text text +% \psboxit{box 0.5 setgray fill}{\spbox{ANOTHER WORD}} +% text text ... +% +% * If your boxes are ill sized try to change 16384 to +% something else (original code used 65536). +% % 65536 is the internal unit of TeX (scaled point, TeXBook page 57) +% Those macros were adapted from Tom Sheffler (CMU)'s psframe.sty style. In +% particular, the spacebox macro was just copied from his style. +% +% Je'ro^me MAILLOT, INRIA +% maillot@bora.inria.fr +% August 1991 +% +% +% A Few PostScript definitions to use with \psboxit +% Call \PScommands once at the begining of your program, this will +% define : box roundedbox rectcartouche and cartouche. They are 4 +% PostScript programs. Change the values before setlinewidth end +% setgray to customize your boxes +% +% Ex : \psboxit{25 cartouche}{blah blah} +% \psboxit{rectcartouche}{blah blah} +% +\long\def\PScommands{\special{! TeXDict begin +/box{% Processes the path of a rectangle. +% Needs : x0 y0 x1 y1. +newpath 2 copy moveto 3 copy pop exch lineto 4 copy pop pop +lineto 4 copy exch pop exch pop lineto closepath } bind def +% +% +/min{ 2 copy gt { exch } if pop } bind def% +/max{ 2 copy lt { exch } if pop } bind def% +/roundedbox{% Processes the path of a rounded rectangle. +% Needs : x0 y0 x1 y1 radius. +% The bounding box is augmented by +/- radius to allow easily to +% frame several rounded boxes around the same Texture box. Ex: +% \psboxit{4 copy 15 roundedbox 25 roundedbox} {\spbox{Some Text}} +% draws two scaled boxes arond the same word. Delete the `radius +% sub' and `radius add' commands to suppress that enlargement. +% +/radius exch store +3 2 roll % x0 x1 y1 y0 +2 copy min radius sub /miny exch store + max radius add /maxy exch store +2 copy min radius sub /minx exch store + max radius add /maxx exch store +newpath +minx radius add miny moveto +maxx miny maxx maxy radius arcto +maxx maxy minx maxy radius arcto +minx maxy minx miny radius arcto +minx miny maxx miny radius arcto 16 {pop} repeat +closepath +}bind def +% +% +/rectcartouche{% Draws a filled and framed box +% Needs : x0 y0 x1 y1 +box gsave .95 setgray fill grestore 1 setlinewidth stroke }bind def +% +% +/cartouche{% Draws a filled and framed rounded box +% Needs : x0 y0 x1 y1 radius +roundedbox gsave .95 setgray fill grestore 1 setlinewidth stroke }bind def +% +end }% Closes dictionnary +}\PScommands% +%% +%% PSBOXIT +%% +%% \psboxit{PS program}{TeX stuff} +%% +%% The bounding box of the TeX stuff is pushed on the PostScript stack +%% and then the program in the first argument is called +%% +%% EXAMPLE: set some text on a gray background, Use the SPBOX macro to +%% give some space around the text. +%% +%% \psboxit{box 0.5 setgray fill}{\spbox{Some Text}} +%% +%% See \PScommands for the \box definition +%% +\chardef \atcode = \the \catcode `\@ +\catcode `\@ = 11 + +\long\def\psboxit#1#2{% +\begingroup\setbox0=\hbox{#2}% +\dimen0=\ht0 \advance\dimen0 by \dp0% + % Write out the PS code to set the current path using HEIGHT, + % WIDTH , DEPTH of box0. + \hbox{% + \special{ps: gsave currentpoint translate + 0 + \number\dp0 \space 15800 div % hand tuned for dvips + \number\wd0 \space 15800 div % hand tuned for dvips + \number\ht0 \space -15800 div % hand tuned for dvips +% \number\dp0 \space 16384 div +% \number\wd0 \space 16384 div +% \number\ht0 \space -16384 div % Bounding box +% \number\dp0 \space 65536 div +% \number\wd0 \space 65536 div +% \number\ht0 \space -65536 div % Bounding box + #1 grestore}% + \copy0% +}%HBOX +\endgroup% +}% + +% SPACEBOX +% +% This macro simply takes some TeX stuff, and puts FOUR sides on it +% so that the box is the same size as the thing you'd get with +% an \fbox{} command. (All I did was modify the code for \fbox{} +% so that all rules were replaced with struts). +% +% USAGE: \spbox{text} is just like \fbox{text} but makes no rules +% +% REASON: so that if using \pspath{...}{\fbox{stuff}} +% there is a way to get another box the same size: +% \pspath{...}{\spbox{stuff}} +% +\long\def\spbox#1{\leavevmode\setbox1\hbox{#1}% + \dimen0\fboxrule \advance\dimen0 \fboxsep% + \advance\dimen0 \dp1% + \hbox{\lower \dimen0\hbox% + {\vbox{\hrule height \fboxrule width 0pt% + \hbox{\vrule width \fboxrule height 0pt \hskip\fboxsep% + \vbox{\vskip\fboxsep \box1\vskip\fboxsep}\hskip% + \fboxsep\vrule width \fboxrule height 0pt}% + \hrule height \fboxrule width 0pt}}}}% + +\def\Gbox#1{\psboxit{box 0.9 setgray fill}{#1}} +%% +\newsavebox{\gray@box}% +\newdimen\gray@space +% +\long\def\Beginboxitpara#1{\edef\gray@tmp{#1}% +\gray@space=\fboxsep \advance\gray@space by -\fboxrule +\par\prevdepth=-1000pt\vskip 0.5\baselineskip\noindent +\setbox\gray@box=% +\hbox\bgroup \vrule width \fboxrule + \vtop\bgroup \hrule + \vbox\bgroup + \kern\gray@space + \hbox\bgroup + \kern\gray@space + \vtop\bgroup + \hsize=\linewidth\advance\hsize-2\fboxsep\noindent + \ignorespaces} +\def\Endboxitpara{% + \egroup + \kern\gray@space + \egroup + \kern\gray@space + \egroup \hrule + \egroup\vrule width \fboxrule + \egroup + \psboxit{\gray@tmp}{\box\gray@box}% + \vskip 0.5\baselineskip +\par} + +\newenvironment{boxitpara}[1]{\Beginboxitpara{#1}}{\Endboxitpara} +\newenvironment{boxitpara*}[1]{\Beginboxitpara{#1}\hbox to\hsize{}}% +{\Endboxitpara} + +\catcode `\@ = \the \atcode +\endinput diff --git a/Master/texmf-dist/tex/latex/misc209/shadow.sty b/Master/texmf-dist/tex/latex/misc209/shadow.sty new file mode 100644 index 00000000000..c07d11b9155 --- /dev/null +++ b/Master/texmf-dist/tex/latex/misc209/shadow.sty @@ -0,0 +1,90 @@ +%% +%% This is file `shadow.sty', +%% +%% Copyright 1994, 2003 Mauro Orlandini +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.2 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%%% ====================================================================== +%%% @LaTeX-style{ +%%% filename = "shadow.sty", +%%% version = "1.3", +%%% date = "19 February 2003", +%%% author = "Mauro Orlandini", +%%% address = "TeSRE Institute/CNR +%%% Area della Ricerca di Bologna +%%% Via Gobetti 101 +%%% 40129 Bologna, Italy", +%%% e-mail = "orlandini@bo.iasf.cnr.it", +%%% telephone = "+39 51 639-8667", +%%% FAX = "+39 51 639-8723", +%%% supported = "yes", +%%% abstract = "The command \shabox has the same meaning of the +%%% LaTeX command \fbox except for the fact that a +%%% "shadow" is added to the bottom and the right side +%%% of the box. It computes the right dimension of the +%%% box, even if the text spans over more than one +%%% line; in this case a warning messagge is given.", +%%% codetable = "ISO/ASCII", +%%% docstring = "There are three parameters governing: +%%% 1. the width of the lines delimiting the box: +%%% \sboxrule +%%% 2. the separation between the edge of the box and +%%% its contents: \sboxsep +%%% 3. the dimension of the shadow: \sdim +%%% Sintax: \shabox{} +%%% where is the text to be put in the +%%% framed box. It can be an entire paragraph. +%%% Adapted from the file dropshadow.tex by +%%% drstrip@cd.sandia.gov. +%%% V1.1 Works in a double column environment. +%%% V1.2 When there is an online shadow box, it +%%% will be centered on the line (in V1.1 the +%%% box was aligned with the baseline). +%%% (Courtesy by Mike Piff)" +%%% V1.3 Added a number of missing % signs +%%% no other cleanup done (FMi) +%%% +%%% } +%%% ====================================================================== +% +% +\ProvidesPackage{shadow}[2003/02/19 v1.3 shadow boxes (M.O.)] + +\newdimen\txtwdth \newdimen\sht \newdimen\shw \newbox\shbox +\newdimen\sboxsep \newdimen\sboxrule \newdimen\sdim +\sboxsep = 10pt +\sdim = 4pt +\sboxrule = .4pt +\def\shabox#1{\setbox\@tempboxa\hbox{#1}% +\shw\wd\@tempboxa +\if@twocolumn\txtwdth\columnwidth\else\txtwdth\textwidth\fi +\ifdim\shw<\txtwdth + \leavevmode\setbox\@tempboxa\hbox{#1}% +\else + \typeout{Shadow Warning: Box dimension greater than textwidth.}% + \setbox\@tempboxa\vbox{\hsize\txtwdth\advance\hsize-2\sboxsep + \advance\hsize-2\sboxrule \advance\hsize-2\sdim \advance\hsize-15pt#1}% +\fi + \setbox\shbox\hbox{\@tempdima\sboxrule + \advance\@tempdima \sboxsep \advance\@tempdima \dp\@tempboxa + \hbox{\lower \@tempdima\hbox + {\vbox{\hrule \@height \sboxrule + \hbox{\vrule \@width \sboxrule \hskip\sboxsep + \vbox{\vskip\sboxsep \box\@tempboxa\vskip\sboxsep}\hskip + \sboxsep\vrule \@width \sboxrule}% + \hrule \@height \sboxrule}}}}% +\sht\ht\shbox \advance\sht-\sdim +\leavevmode\vbox{\baselineskip0pt\lineskip0pt\vtop{%% V1.2 + %% Added \vtop + %% From M.Piff + \hbox{\copy\shbox\vrule width\sdim height\sht}% + \hbox{\kern\sdim\vrule height\sdim width \wd\shbox}}}} + +\endinput diff --git a/Master/texmf-dist/tex/latex/misc209/version.sty b/Master/texmf-dist/tex/latex/misc209/version.sty new file mode 100644 index 00000000000..9e8a305a84f --- /dev/null +++ b/Master/texmf-dist/tex/latex/misc209/version.sty @@ -0,0 +1,56 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Version control macros. These let you define environments whose contents +% will be optionally added to or deleted from the text when you run LaTeX. +% Usage: place either of the following near the start of your file: +% \includeversion{NAME} +% \excludeversion{NAME} +% Here, "NAME" is any name you choose. The first one indicates that text +% between \begin{NAME} and \end{NAME} will be processed in the normal way. +% The second indicates that text between \begin{NAME} and \end{NAME} will +% be totally deleted. +% You can define environments for as many versions as you want. +% A ``comment'' environment has already been pre-defined for you with +% \excludeversion{comment}; you can override this using \includeversion. +% +% Example: +% \includeversion{abridged}\excludeversion{unabridged} +% Text for the +% \begin{abridged} +% short +% \end{abridged} +% \begin{unabridged} +% long and really longwinded, opaque and boring +% \end{unabridged} +% version of the paper. Punctuation works correctly\begin{unabridged} +% because sphack is used\end{unabridged}. +% \begin{comment} This is deleted by default. \end{comment} +% +% Stephen Bellantoni 1990, loosely based on "annotation.sty" by Tom Hofmann. +% +% Additional Notes: This package still works in LaTeX2e. Large +% tracts of excluded text will likely cause a "TeX capacity exceeded" +% error though. See also comment.sty, verbatim.sty, optional.sty. +% -- Donald Arseneau April, 2000 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begingroup +\catcode`@=11\relax% +\catcode`{=12\relax\catcode`}=12\relax% +\catcode`(=1\relax \catcode`)=2\relax% +\gdef\includeversion#1(% + \expandafter\gdef\csname #1\endcsname% + ()% + \expandafter\gdef\csname end#1\endcsname% + ()% +)% +\gdef\excludeversion#1(% + \expandafter\gdef\csname #1\endcsname% + (\@bsphack\catcode`{=12\relax\catcode`}=12\relax\csname #1@NOTE\endcsname)% + \long\expandafter\gdef\csname #1@NOTE\endcsname ##1\end{#1}% + (\csname #1END@NOTE\endcsname)% + \expandafter\gdef\csname #1END@NOTE\endcsname% + (\@esphack\end(#1))% +)% +\endgroup +\excludeversion{comment} + -- cgit v1.2.3