From 08919135bf62e8a0e8510489f49de9e032a68c54 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 12 Jan 2006 23:55:49 +0000 Subject: flagderiv git-svn-id: svn://tug.org/texlive/trunk@919 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/flagderiv/flagderiv.sty | 157 +++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/flagderiv/flagderiv.sty (limited to 'Master/texmf-dist/tex/latex/flagderiv') diff --git a/Master/texmf-dist/tex/latex/flagderiv/flagderiv.sty b/Master/texmf-dist/tex/latex/flagderiv/flagderiv.sty new file mode 100644 index 00000000000..0b2504a5639 --- /dev/null +++ b/Master/texmf-dist/tex/latex/flagderiv/flagderiv.sty @@ -0,0 +1,157 @@ +%% +%% This is file `flagderiv.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% flagderiv.dtx (with options: `flagderiv') +%% +%% This is a generated file. +%% +%% Copyright (C) 2005 by Paul van Tilburg +%% +%% This package 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 2 of the License, or +%% (at your option) any later version. +%% +%% This package is distributed in the hope that it will be useful, +%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or 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 package; if not, write to the Free Software +%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{flagderiv} + [2005/08/26 v0.10 Flag style derivation package] +\RequirePackage{ifthen} +\newboolean{@inlcmnts} +\DeclareOption{inlcmnts}{\setboolean{@inlcmnts}{true}} +\ProcessOptions +\RequirePackage{array} +\RequirePackage{longtable} +\long\@namedef{NC@rewrite@*}#1#2{% + \count@#1\relax + \loop + \ifnum\count@>\z@ + \advance\count@\m@ne + \@temptokena\expandafter{\the\@temptokena#2}% + \repeat + \NC@find} +\newcounter{fd@flagcount} +\newcounter{fd@stepcount} +\newlength{\derivskip} +\setlength{\derivskip}{8pt} +\newcommand{\introsymb}{\textbf{var}} +\newcommand{\thestepcount}{(\arabic{fd@stepcount})} +\renewcommand{\thefd@stepcount}{\thestepcount} +\newcommand{\thesteplabel}[1]{#1} +\newcommand{\theinlcmnt}[1]{\{ #1 \}} +\newcommand{\inlcmnts}{\setboolean{@inlcmnts}{true}} +\newcommand{\noinlcmnts}{\setboolean{@inlcmnts}{false}} +\newcommand{\@labelprefix}{\relax} +\newcommand{\@derlabel}[1]{% + \ifthenelse{\equal{#1}{}}{}{\label{\@labelprefix#1}}% +} +\newcommand{\@derline}[3]{% + \mbox{#1} & + \setlength{\extrarowheight}{\derivskip}% + \ifthenelse{\value{fd@flagcount}=0}% + {\begin{array}[t]{@{}l}}% + {\begin{array}[t]{*{\value{fd@flagcount}}{|@{\hspace{2\arraycolsep}}}l}} + \ensuremath{#2} + \end{array} & + \mbox{#3} \\ +} +\newcommand{\@CMNTderline}[3]{% + \ifthenelse{\boolean{@inlcmnts}}{% + \ifthenelse{\equal{#3}{}}{}{% + \@derline{}{\mbox{\theinlcmnt{#3}}}{}% + } + \@derline{#1}{#2}{}% + }{% + \@derline{#1}{#2}{#3}% + }% +} +\newcommand{\@MANstep}[3]{\@CMNTderline{\thesteplabel{#1}}{#2}{#3}} +\newcommand{\@AUTOstep}[3]{% + \refstepcounter{fd@stepcount}% + \@derlabel{#1}\@CMNTderline{\thestepcount}{#2}{#3}% +} +\newcommand{\@MANskipsteps}[2]{\@CMNTderline{}{#1}{#2}} +\newcommand{\@AUTOskipsteps}[3]{% + \addtocounter{fd@stepcount}{#1}% + \@CMNTderline{}{#2}{#3}% +} +\newcommand{\@flagbox}[1]{% + \setlength{\fboxsep}{0.75ex}% + \fbox{#1}% +} +\newcommand{\@startflag}[3]{% + \@CMNTderline{#1}{\@flagbox{\ensuremath{#2}}}{#3}% + \addtocounter{fd@flagcount}{1}% +} +\newcommand{\@endflag}[1]{\addtocounter{fd@flagcount}{-#1}} +\newcommand{\@flagclose}[1][1]{\@endflag{#1}} +\newcommand{\@MANassume}[3]{\@startflag{\thesteplabel{#1}}{#2}{#3}} +\newcommand{\@AUTOassume}[3]{ + \refstepcounter{fd@stepcount}% + \@derlabel{#1}\@startflag{\thestepcount}{#2}{#3}% +} +\newcommand{\@MANintroduction}[3]{% + \@startflag{\thesteplabel{#1}}{\introsymb~#2}{#3}% +} +\newcommand{\@AUTOintroduction}[3]{ + \refstepcounter{fd@stepcount}% + \@derlabel{#1}\@startflag{\thestepcount}{\introsymb~#2}{#3}% +} +\newcommand{\@MANconclude}[4][1]{\@endflag{#1}\step*{#2}{#3}{#4}} +\newcommand{\@AUTOconclude}[4][1]{\@endflag{#1}\step{#2}{#3}{#4}} +\newenvironment{flagderiv}[1][]{% + \ifthenelse{\equal{#1}{}}{% + \renewcommand{\@labelprefix}{}% + }{% + \renewcommand{\@labelprefix}{#1:}% + }% + \setcounter{fd@flagcount}{0}% + \setcounter{fd@stepcount}{0}% + \newcommand{\assume}{\@ifstar{\@MANassume}{\@AUTOassume}} + \newcommand{\introduce}{\@ifstar{\@MANintroduction}{\@AUTOintroduction}} + \newcommand{\conclude}{\@ifstar{\@MANconclude}{\@AUTOconclude}} + \newcommand{\step}{\@ifstar{\@MANstep}{\@AUTOstep}} + \newcommand{\skipsteps}{\@ifstar{\@MANskipsteps}{\@AUTOskipsteps}} + \newcommand{\done}{\@flagclose} + \let\origref\ref% + \renewcommand{\ref}[1]{\origref{\@labelprefix##1}}% + \renewcommand{\tablename}{Derivation}% + \begin{longtable}[l]{rll} +}{% + \end{longtable} +} +\newenvironment{flagderiv*}[1][]{% + \ifthenelse{\equal{#1}{}}{% + \renewcommand{\@labelprefix}{}% + }{% + \renewcommand{\@labelprefix}{#1:}% + }% + \setcounter{fd@flagcount}{0}% + \setcounter{fd@stepcount}{0}% + \newcommand{\assume}{\@ifstar{\@MANassume}{\@AUTOassume}} + \newcommand{\introduce}{\@ifstar{\@MANintroduction}{\@AUTOintroduction}} + \newcommand{\conclude}{\@ifstar{\@MANconclude}{\@AUTOconclude}} + \newcommand{\step}{\@ifstar{\@MANstep}{\@AUTOstep}} + \newcommand{\skipsteps}{\@ifstar{\@MANskipsteps}{\@AUTOskipsteps}} + \newcommand{\done}{\@flagclose} + \let\origref\ref% + \renewcommand{\ref}[1]{\origref{\@labelprefix##1}}% + \renewcommand{\tablename}{Derivation} + \begin{tabular}{rll} +}{% + \end{tabular} +} +\endinput +%% +%% End of file `flagderiv.sty'. -- cgit v1.2.3