%% %% This is file `alg.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% alg.dtx (with options: `package') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from alg.sty. %% %% For distribution of the original source see the terms %% for copying and modification in the file alg.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) \def\filedate{13 March 2001} %% alg.dtx %% Copyright (c) 1995, 1999, 2001 Staffan Ulfberg \NeedsTeXFormat{LaTeX2e}[1996/12/01] \ProvidesPackage{alg} [2001/02/12] \RequirePackage{float, ifthen} \newlength{\algleftmarginwidth}\setlength{\algleftmarginwidth}{.5in} \newlength{\algrightmarginwidth}\setlength{\algrightmarginwidth}{.5in} \newlength{\alglinenowidth}\setlength{\alglinenowidth}{1.2cm} \newlength{\algtabwidth}\setlength{\algtabwidth}{.5cm} \newlength{\alg@fromleft} \newlength{\alg@tmplen} \newsavebox{\alg@tmpbox} \newcounter{alg@inmargin}\setcounter{alg@inmargin}{0} \newcounter{algline} \newboolean{alg@linenums} \newboolean{alg@nonumber} \def\alg@language{english} \@ifpackageloaded{babel}{ \iflanguage{english}{\def\alg@language{english}}{} \iflanguage{american}{\def\alg@language{american}}{} %\iflanguage{swedish}{\def\alg@language{swedish}}{} %\iflanguage{french}{\def\alg@language{french}}{} %\iflanguage{german}{\def\alg@language{german}}{}}{} \DeclareOption{english}{\def\alg@language{english}} \DeclareOption{american}{\def\alg@language{american}} %\DeclareOption{swedish}{\def\alg@language{swedish}} \DeclareOption{french}{\def\alg@language{french}} \DeclareOption{german}{\def\alg@language{german}} \ProcessOptions \ifthenelse{\equal{\alg@language}{english}}{ \def\alg@floatname{Algorithm} \def\alg@listname{List of Algorithms} \def\alg@descname{Description} \def\alg@inputname{Input} \def\alg@outputname{Output}}{} \ifthenelse{\equal{\alg@language}{american}}{ \def\alg@floatname{Algorithm} \def\alg@listname{List of Algorithms} \def\alg@descname{Description} \def\alg@inputname{Input} \def\alg@outputname{Output}}{} \ifthenelse{\equal{\alg@language}{swedish}}{ \def\alg@floatname{Algoritm} \def\alg@listname{Algoritmer} \def\alg@descname{Beskrivning} \def\alg@inputname{Input} \def\alg@outputname{Output}}{} \ifthenelse{\equal{\alg@language}{french}}{ \def\alg@floatname{Algorithme} \def\alg@listname{Liste des algorithmes} \def\alg@descname{Description} \def\alg@inputname{Entr\'{e}e} \def\alg@outputname{Sortie}}{} \ifthenelse{\equal{\alg@language}{german}}{ \def\alg@floatname{Algorithmus} \def\alg@listname{Algorithmenverzeichnis} \def\alg@descname{Beschreibung} \def\alg@inputname{Eingabe} \def\alg@outputname{Ausgabe}}{} \newcommand\floatc@alg[2]{{\bfseries\rmfamily \hspace{\algleftmarginwidth}#1:} #2\par} \newcommand\fs@alg{ \let\@fs@capt\floatc@alg \def\@fs@pre{}\def\@fs@post{}\def\@fs@mid{\vspace{3pt}} \let\@fs@iftopcapt\iftrue} \floatstyle{alg} \newfloat{algorithmfloat}{h}{loa} \floatname{algorithmfloat}{\alg@floatname} \newcommand{\listofalgorithms}{\listof{algorithmfloat}{\alg@listname}} \newcommand{\alg@margin} { \ifthenelse{\value{alg@inmargin}=0} { \advance\leftskip\algleftmarginwidth \advance\rightskip\algrightmarginwidth \alg@fromleft=\leftskip } {} \stepcounter{alg@inmargin} \parskip=0cm\parindent=0cm } \newcommand{\alg@unmargin} { \setcounter{alg@inmargin}{0}% \advance\leftskip-\algleftmarginwidth% \advance\rightskip-\algrightmarginwidth% } \newenvironment{algorithm}[1][H] { \begin{algorithmfloat}[#1]\alg@margin } { \alg@unmargin\end{algorithmfloat} } \newenvironment{alg@tab}[1] { \setboolean{alg@nonumber}{false}% \ifthenelse{\value{alg@inmargin}=0} {\vskip\baselineskip}{} \alg@margin \let\\=\alg@cr \catcode`\^^M=10 \setcounter{algline}{0}\refstepcounter{algline} \advance\leftskip#1 \alg@putlineno\ignorespaces } { \setbox\alg@tmpbox=\lastbox \ifhbox\alg@tmpbox{\vskip-\baselineskip}\else\par\fi \alg@unmargin \ifthenelse{\value{alg@inmargin}=0}{\vskip\baselineskip}{} } \newenvironment{algtab}[1][\alglinenowidth] { \setboolean{alg@linenums}{true}\begin{alg@tab}{#1} } {\end{alg@tab}} \newenvironment{algtab*}[1][0cm] { \setboolean{alg@linenums}{false}\begin{alg@tab}{#1} } {\end{alg@tab}} \newcommand{\alg@kill}{\setbox\alg@tmpbox=\lastbox% \ifvoid\alg@tmpbox\PackageError{alg}{Attempt to remove label in middle of line}\fi} \newcommand{\algbegin}[1][\algtabwidth]{\advance\leftskip#1% \alg@kill\alg@putlineno\ignorespaces} \newcommand{\algend}[1][\algtabwidth]{\advance\leftskip-1#1% \alg@kill\alg@putlineno\ignorespaces} \newcommand{\algnonumber}{\alg@kill\alg@putlabel{}% \setboolean{alg@nonumber}{true}\ignorespaces} \newcommand{\alg@cr}{\par\refstepcounter{algline}% \setboolean{alg@nonumber}{false}\alg@putlineno\ignorespaces} \newcommand{\alg@putlineno} {% \ifthenelse{\boolean{alg@linenums}} {% \ifthenelse{\boolean{alg@nonumber}}{\alg@putlabel{}} {% \alg@putlabel{(\arabic{algline})}}}% {\alg@putlabel{}}} \newcommand{\alg@putlabel}[1]{{% \alg@tmplen=\leftskip \advance\alg@tmplen-\alg@fromleft% \makebox[0cm][r]{\makebox[\alg@tmplen][l]{#1}}}} \newcommand{\algdescript}[1]{\alg@margin\textbf{\alg@descname: }#1\par} \newcommand{\alginout}[2]{\alg@margin\textbf{\alg@inputname: }#1\par \textbf{\alg@outputname: }#2\par} \newcommand{\algname}[2]{\alg@margin\textsc{#1}(#2)\par} \newcommand{\alglabel}[1]{% \ifthenelse{\boolean{alg@linenums}}{% \label{#1}}{\alg@kill\alg@putlabel{#1}}\ignorespaces} \newcommand{\algref}[1]{\ifthenelse{\boolean{alg@linenums}}% {\ref{#1}}{#1}} \newcommand{\algand}{\mbox{\textbf{and }}} \newcommand{\algbreak}{\textbf{break}} \newcommand{\algcall}[2]{\textsc{#1}(#2)} \newcommand{\algcase}[1]{\algend\textbf{case} #1\\\algbegin} \newcommand{\algcontinue}{\textbf{continue}} \newcommand{\algdefault}{\algend\textbf{default}\\\algbegin} \newcommand{\algelse}{\algend\textbf{else}\\\algbegin} \newcommand{\algelseif}[1]{\algelsif{#1}} \newcommand{\algelsif}[1]{\algend\textbf{else if} #1\\\algbegin} \newcommand{\algerror}{\textbf{error }} \newcommand{\algfalse}{\mbox{\textbf{false }}} \newcommand{\algforto}[2]{\textbf{for} #1 \textbf{to} #2\\\algbegin} \newcommand{\algforeach}[1]{\textbf{foreach} #1\\\algbegin} \newcommand{\alggoto}{\textbf{goto~}} \newcommand{\algif}[1]{\textbf{if} #1\\\algbegin} \newcommand{\algifthen}[2]{\textbf{if} #1 \textbf{then} #2\\} \newcommand{\algifthenelse}[3]{\setbox\alg@tmpbox= \hbox{\textbf{if} #1 }\copy\alg@tmpbox\textbf{then} #2\\ \settowidth{\alg@tmplen}{\box\alg@tmpbox}% \algbegin[\alg@tmplen]\textbf{else} #3\\ \algend[\alg@tmplen]} \newcommand{\algnot}{\mbox{\textbf{not }}} \newcommand{\algor}{\mbox{\textbf{or }}} \newcommand{\algpardo}{\mbox{\textbf{pardo}}} \newcommand{\algprint}{\textbf{print }} \newcommand{\algrepeat}{\textbf{repeat}\\\algbegin} \newcommand{\algreturn}{\textbf{return~}} \newcommand{\algswitch}[1]{\textbf{switch} #1\\\algbegin} \newcommand{\algtrue}{\mbox{\textbf{true }}} \newcommand{\alguntil}[1]{\algend\textbf{until} #1\ \\} \newcommand{\algwhile}[1]{\textbf{while} #1\\\algbegin} \endinput %% %% End of file `alg.sty'.