summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/algorithm2e
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-07-19 21:09:48 +0000
committerKarl Berry <karl@freefriends.org>2017-07-19 21:09:48 +0000
commit7635442426a86740fe22aa86536c77017010bb5d (patch)
treefc062f7a613acebdd3395bcfc11126973d9745f8 /Master/texmf-dist/tex/latex/algorithm2e
parenta186753945724fc04284f43bc643065d28bc6393 (diff)
algorithm2e (19jul17)
git-svn-id: svn://tug.org/texlive/trunk@44846 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/algorithm2e')
-rw-r--r--Master/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty114
1 files changed, 74 insertions, 40 deletions
diff --git a/Master/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty b/Master/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
index 07ab7ff9921..0904a7cf54c 100644
--- a/Master/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
+++ b/Master/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
@@ -1,6 +1,6 @@
% algorithm2e.sty --- style file for algorithms
% almost everything can be customized by users. See the document for more explanations
-%% Copyright 1996-2015 Christophe Fiorio
+%% Copyright 1996-2017 Christophe Fiorio
%
% This work may be distributed and/or modified under the conditions of the LaTeX Project
% Public License, either version 1.3 of this license or (at your option) any later version.
@@ -24,7 +24,7 @@
% - algorithm2e-discussion@lirmm.fr mailing list for discussion about package^^J%
% subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'^^J%
%
-% $Id: algorithm2e.sty,v 5.1 2015/10/18 21:37:30 cfiorio Exp $
+% $Id: algorithm2e.sty,v 5.2 2017/07/18 15:26:26 fioriochristophe Exp $
%
% PACKAGES REQUIRED:
%
@@ -33,7 +33,7 @@
% - xspace (in packages/tools)
% - relsize (in contrib/misc/relsize.sty)
%
-%%%%%%%%%%%%%%% Release 5.1
+%%%%%%%%%%%%%%% Release 5.2
%
% Package options:
% ---------------
@@ -156,6 +156,15 @@
%
% History:
%
+% - July 18 2017 - revision 5.2
+% * FIX: There was an overfull box 0.8pt with boxruled algorithm. This is fixed.
+% * FIX: problem when mixing caption package and figure option. This bug was partially corrected
+% in 5.0 for one side document but with false indentation and not working for two side
+% document. This is now fully fixed.
+% * FIX: misaligned lines numbers with noline option
+% * FIX: Fix croation keywords thanks to Ivan Kolan
+% * FIX: there was an overfull hbox of 8.5pt when using [H] and ruled caption. This is fixed.
+% * FIX: \SetCustomAlgoRuledWidth only changed midrule. This is fixed, it changes all the rules
% - October 19 2015 - revision 5.1
% * CHANGE/ADD: l commands (the ones as \lIf) can now be used with a
% star. If done, no end of line are done, so you can enclose
@@ -338,7 +347,8 @@
% | else:
% | return 0
% with appropriate typo.
-% * ADD: option croatian: croatian keywords (thanks to Ivan Gavran)
+% * ADD: option croatian: croatian keywords (thanks to Ivan Kohan and
+% Yvan Gavran)
% * ADD: option ngerman: same as german option but so can be used with global option ngerman
% of babel
% * ADD: option spanish: Spanish support (thanks to Mario Abarca)
@@ -870,7 +880,7 @@
%
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
%
-\ProvidesPackage{algorithm2e}[2013/01/06 v5.00 algorithms environments]
+\ProvidesPackage{algorithm2e}[2017/07/18 v5.2 algorithms environments]
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%% Initial Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1057,11 +1067,11 @@
\newboolean{algocf@displayblockmarkers}\setboolean{algocf@displayblockmarkers}{false}%
\DeclareOption{displayblockmarkers}{%
\setboolean{algocf@displayblockmarkers}{true}%
-}
-\newboolean{algocf@displaygroupmarkers}{\setboolean{algocf@displaygroupmarkers}{false}
+}%
+\newboolean{algocf@displaygroupmarkers}\setboolean{algocf@displaygroupmarkers}{false}
\DeclareOption{displaygroupmarkers}{%
\setboolean{algocf@displaygroupmarkers}{true}%
-}
+}%
%
\newboolean{algocf@nokwfunc}\setboolean{algocf@nokwfunc}{false}%
\DeclareOption{nokwfunc}{%
@@ -1179,7 +1189,7 @@
\renewcommand{\algorithmcfname}{Algorithmus}%
\renewcommand{\algorithmautorefname}{\algorithmcfname}%
\renewcommand{\algorithmcflinename}{Zeile}%
-\renewcommand{\algocf@typo}{\ }%
+\renewcommand{\algocf@typo}{}%
\renewcommand{\@algocf@procname}{Prozedur}%
\renewcommand{\@algocf@funcname}{Funktion}%
\renewcommand{\procedureautorefname}{\@algocf@procname}%
@@ -1308,11 +1318,11 @@
\renewcommand{\listalgorithmcfname}{Algoritma Listesi}%
\renewcommand{\algorithmcfname}{Algoritma}%
\renewcommand{\algorithmautorefname}{algoritma}%
-\renewcommand{\algorithmcflinename}{çizgi}%
+\renewcommand{\algorithmcflinename}{\c{c}izgi}%
\renewcommand{\algocf@typo}{}%
-\renewcommand{\@algocf@procname}{Prosedür}%
+\renewcommand{\@algocf@procname}{Prosed\"ur}%
\renewcommand{\@algocf@funcname}{Fonksiyon}%
-\renewcommand{\procedureautorefname}{prosedür}%
+\renewcommand{\procedureautorefname}{prosed\"ur}%
\renewcommand{\functionautorefname}{fonksiyon}%
\renewcommand{\algocf@languagechoosen}{turkish}%
}%
@@ -1481,6 +1491,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%% Package Loading %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
+\RequirePackage{ifoddpage}%
\RequirePackage{xspace}%
%
\ifthenelse{\boolean{algocf@endfloat}}{%
@@ -1512,14 +1523,14 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Main Part %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\newcommand{\algocf@name}{algorithm2e}%
-\newcommand{\algocf@date}{october 19 2015}%
-\newcommand{\algocf@version}{Release 5.1}%
+\newcommand{\algocf@date}{July 18 2017}%
+\newcommand{\algocf@version}{Release 5.2}%
\newcommand{\algocf@id}{\algocf@version\space -- \algocf@date\space --}%
-\typeout{********************************************************^^JPackage `\algocf@name'\space\algocf@id^^J%
- - algorithm2e-announce@lirmm.fr mailing list for announcement about releases^^J%
- - algorithm2e-discussion@lirmm.fr mailing list for discussion about package^^J%
- subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'^^J%
- - Author: Christophe Fiorio (christophe.fiorio@umontpellier.fr)^^J********************************************************}%
+% \typeout{********************************************************^^JPackage `\algocf@name'\space\algocf@id^^J%
+% - algorithm2e-announce@lirmm.fr mailing list for announcement about releases^^J%
+% - algorithm2e-discussion@lirmm.fr mailing list for discussion about package^^J%
+% subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'^^J%
+% - Author: Christophe Fiorio (christophe.fiorio@umontpellier.fr)^^J********************************************************}%
%%
%%
%%
@@ -1768,8 +1779,12 @@
%
\newcommand{\algocf@push}[1]{\advance\skiptotal by #1\moveright #1}%
\newcommand{\algocf@pop}[1]{\advance\skiptotal by -#1}%
-\newcommand{\algocf@addskiptotal}{\advance\skiptotal by 0.4pt\advance\hsize by -0.4pt\advance\hsize by -\skiplength}% 0.4 pt=width of \vrule
-\newcommand{\algocf@subskiptotal}{\advance\skiptotal by -0.4pt\advance\hsize by 0.4pt\advance\hsize by \skiplength}% 0.4 pt=width of \vrule
+\newcommand{\algocf@addskiptotal}{%
+ \advance\hsize by -\skiplength%
+}% \skiplength=skiptext+0.4 pt that is the width of \vrule
+\newcommand{\algocf@subskiptotal}{%
+ \advance\hsize by \skiplength%
+}% \skiplength=skiptext+0.4 pt that is the width of \vrule
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
@@ -1840,7 +1855,7 @@
\hbox{%
\vtop{\algocf@push{\skiptext}%
\vtop{\algocf@addskiptotal #1}}}% inside the block
- \algocf@pop{\skiprule}%
+ \algocf@pop{\skiprule}%\algocf@subskiptotal%
\algocf@eblockcode%
% \nointerlineskip% no vskip after
}%
@@ -1882,22 +1897,27 @@
\renewcommand{\@algocf@endoption}[1]{}%
\algocf@setBlock}%
%
+\newboolean{algocf@optAlgoNoLine}\setboolean{algocf@optAlgoNoLine}{false}
\newcommand{\SetAlgoNoLine}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Noline
+\setboolean{algocf@optAlgoNoLine}{true}%
\renewcommand{\algocf@@block}[2]{\algocf@@@block{\algocf@Noline{##1}}{##2}}%
\renewcommand{\algocf@group}[1]{\algocf@Noline{##1}}%
\renewcommand{\Hlne}{}}%
%
\newcommand{\SetAlgoVlined}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Vline
+\setboolean{algocf@optAlgoNoLine}{false}%
\renewcommand{\algocf@@block}[2]{\algocf@Vline{##1}}%
\renewcommand{\algocf@group}[1]{\algocf@Vsline{##1}}%\ifthenelse{\boolean{algocf@optnoend}}{\relax}{\strut\ignorespaces}}%
\renewcommand{\Hlne}{\algocf@Hlne}}%
%
\newcommand{\SetAlgoLined}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Line
+\setboolean{algocf@optAlgoNoLine}{false}%
\renewcommand{\algocf@@block}[2]{\algocf@@@block{\strut\algocf@Vsline{##1}}{##2}}% no skip after a block so garantie at least one line
\renewcommand{\algocf@group}[1]{\algocf@Vsline{##1}}%\ifthenelse{\boolean{algocf@optnoend}}{\relax}{\strut\ignorespaces}}%
\renewcommand{\Hlne}{}}%
%
\newcommand{\SetNothing}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Noline
+\setboolean{algocf@optAlgoNoLine}{true}%
\renewcommand{\algocf@@block}[2]{\algocf@Noline{##1}\par}%
%\long
\renewcommand{\algocf@group}[1]{\algocf@Noline{##1}}%
@@ -2077,6 +2097,19 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
+% KwProgFn
+%
+\newcommand{\SetKwProgFn}[4]{%\SetKwProg{Env}{Title}{is}{end}
+ \algocf@newcmdsides{#1}{4}{\KwSty{#2}\ifArgumentEmpty{#2}\relax{\ }{##2}\KwSty{#3}{##3}\ifArgumentEmpty{##1}\relax{ ##1}\algocf@group{##4}\KwSty{#4}}{\relax}{\strut\par}%
+ \algocf@newcommand{l#1}{\@ifstar{\csname algocf@l#1star\endcsname}{\csname algocf@l#1\endcsname}}%
+ \algocf@newcmdside{algocf@l#1}{3}{\KwSty{#2} \ProgSty{##2}\KwSty{#3}\algocf@bgroupcode\ ##3\algocf@egroupcode\@endalgocfline\ifArgumentEmpty{##1}\relax\ {##1}\strut\par}%
+ \algocf@newcmdside{algocf@l#1star}{3}{\KwSty{#2} \ProgSty{##2}\KwSty{#3}\algocf@bgroupcode\ ##3\algocf@egroupcode}%
+}%
+%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
% Kw
%
\newcommand{\SetKw}[2]{%
@@ -2278,13 +2311,15 @@
\addtolength{\hsize}{\algomargin}%
}%
%
+\newlength{\algocf@lcaptionbox}%
\newcommand{\algocf@makecaption@plainruled}[2]{\algocf@makecaption@plain{#1}{#2}}%
\newcommand{\algocf@makecaption@tworuled}[2]{\algocf@makecaption@ruled{#1}{#2}}%
\newcommand{\algocf@makecaption@algoruled}[2]{\algocf@makecaption@ruled{#1}{#2}}%
\newcommand{\algocf@makecaption@boxruled}[2]{\algocf@makecaption@ruled{#1}{#2}}%
\newcommand{\algocf@makecaption@ruled}[2]{%
\global\sbox\algocf@capbox{\hskip\AlCapHSkip% .5\algomargin%
- \parbox[t]{\hsize}{\algocf@captiontext{#1}{#2}}}% then caption is not centered
+ \setlength{\algocf@lcaptionbox}{\hsize}\addtolength{\algocf@lcaptionbox}{-\AlCapHSkip}%
+ \parbox[t]{\algocf@lcaptionbox}{\algocf@captiontext{#1}{#2}}}% then caption is not centered
}%
%
\newlength{\algoheightruledefault}\setlength{\algoheightruledefault}{0.8pt}%
@@ -2299,17 +2334,16 @@
\newcommand{\algocf@caption@tworuled}{\box\algocf@capbox\hrule height0pt depth0pt\kern\interspacealgoruled}%
\newcommand{\algocf@caption@algoruled}{\algocf@caption@ruled}%
\newcommand{\algocf@caption@boxruled}{%
- \addtolength{\hsize}{-0.8pt}%
- \hbox to\hsize{%
- \vrule%\hskip-0.35pt%
+ \hbox{%
+ \vrule%
\vbox{%
+ \addtolength{\hsize}{-0.8pt}%
\hrule\vskip\interspacetitleboxruled%
\hbox to\hsize{\unhbox\algocf@capbox\hfill}\vskip\interspacetitleboxruled%
+ \addtolength{\hsize}{0.8pt}%
}%
- %\hskip-0.35pt%
\vrule%
}\nointerlineskip%
- \addtolength{\hsize}{0.8pt}%
}%
%
%
@@ -2491,8 +2525,8 @@
\def\@algocf@pre@boxed{\noindent\begin{lrbox}{\algocf@algoframe}}
\def\@algocf@post@boxed{\end{lrbox}\framebox[\hsize]{\box\algocf@algoframe}\par}%
\def\@algocf@capt@boxed{under}%
-\def\@algocf@pre@ruled{\hrule height\algoheightrule depth0pt\kern\interspacetitleruled}%
-\def\@algocf@post@ruled{\kern\interspacealgoruled\hrule height\algoheightrule\relax}%
+\def\@algocf@pre@ruled{\hrule width\algocf@ruledwidth height\algoheightrule depth0pt\kern\interspacetitleruled}%
+\def\@algocf@post@ruled{\kern\interspacealgoruled\hrule width\algocf@ruledwidth height\algoheightrule\relax}%
\def\@algocf@capt@ruled{top}%
\def\@algocf@pre@algoruled{\hrule width\algocf@ruledwidth height\algoheightrule depth0pt\kern\interspacetitleruled}%
\def\@algocf@post@algoruled{\kern\interspacealgoruled\hrule width\algocf@ruledwidth height\algoheightrule \relax}%
@@ -2587,9 +2621,10 @@
\hbox to\algowidth\bgroup\hbox to \algomargin{\hfill}\vtop\bgroup%
\ifthenelse{\boolean{algocf@slide}}{\parskip 0.5ex\color{black}}{}%
% initialization
- \addtolength{\hsize}{-1.5\algomargin}%
+ \addtolength{\hsize}{-\algomargin}\addtolength{\hsize}{-1.5em}% 1.5em to let space for line numbering
\let\@mathsemicolon=\;\def\;{\ifmmode\@mathsemicolon\else\@endalgoln\fi}%
- \raggedright\AlFnt{}%
+ \raggedright%
+ \AlFnt{}%
\ifthenelse{\boolean{algocf@slide}}{\IncMargin{\skipalgocfslide}}{}%
\@algoinsideskip%
% \let\@emathdisplay=\]\def\]{\algocf@endline\@emathdisplay\nl}%
@@ -2633,9 +2668,6 @@
% \let\algocf@originalfloatboxreset=\@floatboxreset%
% \let\@floatboxreset=\@algofloatboxreset%
\newenvironment{algocf@algorithm}[1][htbp]{%
- \ifthenelse{\equal{\algocf@float}{figure}}{%
- \ifthenelse{\boolean{algocf@figurecaption}}{\captionsetup{margin={-\algomargin,\algomargin}}}{}%
- }{}%
\@algocf@init%
\ifthenelse{\equal{\algocf@float}{figure}}{% if option figure set
\ifthenelse{\boolean{algocf@algostar}}{% if algorithm* with figure option
@@ -2643,11 +2675,13 @@
\ifthenelse{\boolean{algocf@customruledwidth}}{\relax}{\setlength{\algocf@ruledwidth}{\linewidth}}%
\let\algocf@oldeverypar=\everypar%
\algocf@seteverypar%
+ \addtolength{\linewidth}{-\algomargin}% caption package use \linewidth as basic width of caption
}{% else algorithm environment with figure option
\begin{figure}[#1]% call figure
\ifthenelse{\boolean{algocf@customruledwidth}}{\relax}{\setlength{\algocf@ruledwidth}{\linewidth}}%
\let\algocf@oldeverypar=\everypar%
\algocf@seteverypar%
+ \addtolength{\linewidth}{-\algomargin}% so now \linewidth==\hsize. Needed by caption package that uses \linewidth as basic width of caption
}%
}{% else normal algorithm environment
\@algocf@init@caption%
@@ -2664,7 +2698,7 @@
\let\algocf@oldeverypar=\everypar%
\algocf@seteverypar%
}{% else algorithm environment
- \begin{algocf}[#1]% call algcf
+ \begin{algocf}[#1]% call algocf
\ifthenelse{\boolean{algocf@customruledwidth}}{\relax}{\setlength{\algocf@ruledwidth}{\linewidth}}%
\let\algocf@oldeverypar=\everypar%
\algocf@seteverypar%
@@ -3013,10 +3047,10 @@
%
% Croatian keywords
%
-\ifthenelse{\boolean{algocf@localkw@croatian}\OR\equal{\algocf@languagechoosen}{croatian}}{%
+\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{croatian}}{%
\SetKwInput{KwUlaz}{Ulaz}%KwIn
\SetKwInput{KwIzlaz}{Izlaz}%KwOut
-\SetKwInput{KwPodaci}{Podaci}%KwData
+\SetKwInput{KwPodatci}{Podatci}%KwData
\SetKwInput{KwRezultat}{Rezultat}%KwResult
\SetKw{KwDo}{do}%KwTo
\SetKw{KwVrati}{vrati}%KwRet
@@ -3034,7 +3068,7 @@
\SetKwFor{ZaSve}{za sve}{\v{c}ini}{kraj za sve}%ForAll
\SetKwFor{Dok}{dok}{\v{c}ini}{kraj dok}%While
}{}%
-
+%
%
% --- Turkish keywords
%
@@ -3164,7 +3198,7 @@
\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{croatian}}{%
\SetKwInput{KwIn}{Ulaz}%KwIn
\SetKwInput{KwOut}{Izlaz}%KwOut
-\SetKwInput{KwData}{Podaci}%KwData
+\SetKwInput{KwData}{Podatci}%KwData
\SetKwInput{KwResult}{Rezultat}%KwResult
\SetKw{KwTo}{do}%KwTo
\SetKw{KwRet}{vrati}%KwRet