From e37d4911c750550896c4155f452736200d977b83 Mon Sep 17 00:00:00 2001 From: Benjamin Chausse Date: Mon, 16 Jan 2023 02:51:22 -0500 Subject: Almost done... --- rapport/algpseudocode.sty | 92 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 rapport/algpseudocode.sty (limited to 'rapport/algpseudocode.sty') diff --git a/rapport/algpseudocode.sty b/rapport/algpseudocode.sty new file mode 100644 index 0000000..8cc2bf0 --- /dev/null +++ b/rapport/algpseudocode.sty @@ -0,0 +1,92 @@ +% 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}% +% +\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}}% + }% + {}% +% -- cgit v1.2.3