/pkg/vignettes/algpseudocode.sty
https://code.google.com/ · TeX · 92 lines · 66 code · 0 blank · 26 comment · 1 complexity · 8dfffa296b2349618eda3a914290b6aa MD5 · raw file
- % PSEUDOCODE ALGORITHMIC STYLE -- Released 27 APR 2005
- % for LaTeX version 2e
- %
- % Copyright Szasz Janos
- % E-mail szaszjanos@users.sourceforge.net
- % Based on Peter Williams's algorithmic.sty
- %
- \NeedsTeXFormat{LaTeX2e}%
- \ProvidesPackage{algpseudocode}%
- \RequirePackage{ifthen}%
- \RequirePackage{algorithmicx}%
- \typeout{Document Style - pseudocode environments for use with the `algorithmicx' style}%
- %
- \def\ALG@noend{f}%
- \newboolean{ALG@compatible}%
- \setboolean{ALG@compatible}{false}%
- %
- \DeclareOption{noend}{\def\ALG@noend{t}}%
- \DeclareOption{end}{\def\ALG@noend{f}}%
- \DeclareOption{compatible}{\typeout{For compatibility mode use algcompatible.sty!!!}\setboolean{ALG@compatible}{true}}%
- \DeclareOption{noncompatible}{\setboolean{ALG@noncompatible}{false}}%
- \ProcessOptions%
- %
- % *** DECLARATIONS ***
- %
- \algnewlanguage{pseudocode}%
- \alglanguage{pseudocode}%
- %
- % *** KEYWORDS ***
- %
- \algnewcommand\algorithmicend{\textbf{end}}
- \algnewcommand\algorithmicdo{\textbf{do}}
- \algnewcommand\algorithmicwhile{\textbf{while}}
- \algnewcommand\algorithmicfor{\textbf{for}}
- \algnewcommand\algorithmicforall{\textbf{for all}}
- \algnewcommand\algorithmicloop{\textbf{loop}}
- \algnewcommand\algorithmicrepeat{\textbf{repeat}}
- \algnewcommand\algorithmicuntil{\textbf{until}}
- \algnewcommand\algorithmicprocedure{\textbf{procedure}}
- \algnewcommand\algorithmicfunction{\textbf{function}}
- \algnewcommand\algorithmicif{\textbf{if}}
- \algnewcommand\algorithmicthen{\textbf{then}}
- \algnewcommand\algorithmicelse{\textbf{else}}
- \algnewcommand\algorithmicrequire{\textbf{Require:}}
- \algnewcommand\algorithmicensure{\textbf{Ensure:}}
- \algnewcommand\algorithmicreturn{\textbf{return}}
- \algnewcommand\textproc{\textsc}
- %
- % *** DECLARED LOOPS ***
- %
- \algdef{SE}[WHILE]{While}{EndWhile}[1]{\algorithmicwhile\ #1\ \algorithmicdo}{\algorithmicend\ \algorithmicwhile}%
- \algdef{SE}[FOR]{For}{EndFor}[1]{\algorithmicfor\ #1\ \algorithmicdo}{\algorithmicend\ \algorithmicfor}%
- \algdef{S}[FOR]{ForAll}[1]{\algorithmicforall\ #1\ \algorithmicdo}%
- \algdef{SE}[LOOP]{Loop}{EndLoop}{\algorithmicloop}{\algorithmicend\ \algorithmicloop}%
- \algdef{SE}[REPEAT]{Repeat}{Until}{\algorithmicrepeat}[1]{\algorithmicuntil\ #1}%
- \algdef{SE}[IF]{If}{EndIf}[1]{\algorithmicif\ #1\ \algorithmicthen}{\algorithmicend\ \algorithmicif}%
- \algdef{C}[IF]{IF}{ElsIf}[1]{\algorithmicelse\ \algorithmicif\ #1\ \algorithmicthen}%
- \algdef{Ce}[ELSE]{IF}{Else}{EndIf}{\algorithmicelse}%
- \algdef{SE}[PROCEDURE]{Procedure}{EndProcedure}%
- [2]{\algorithmicprocedure\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}%
- {\algorithmicend\ \algorithmicprocedure}%
- \algdef{SE}[FUNCTION]{Function}{EndFunction}%
- [2]{\algorithmicfunction\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}%
- {\algorithmicend\ \algorithmicfunction}%
- %
- \ifthenelse{\equal{\ALG@noend}{t}}%
- {%
- \algtext*{EndWhile}%
- \algtext*{EndFor}%
- \algtext*{EndLoop}%
- \algtext*{EndIf}%
- \algtext*{EndProcedure}%
- \algtext*{EndFunction}%
- }{}%
- %
- % *** OTHER DECLARATIONS ***
- %
- \algnewcommand\Require{\item[\algorithmicrequire]}%
- \algnewcommand\Ensure{\item[\algorithmicensure]}%
- \algnewcommand\Return{\algorithmicreturn{} }%
- \algnewcommand\Call[2]{\textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}%
- %
- %
- %
- \ifthenelse{\boolean{ALG@compatible}}%
- {%
- \ifthenelse{\equal{\ALG@noend}{t}}%
- {\RequirePackage[noend]{algcompatible}}%
- {\RequirePackage{algcompatible}}%
- }%
- {}%
- %