summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/xfor
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-01-27 01:57:19 +0000
committerKarl Berry <karl@freefriends.org>2009-01-27 01:57:19 +0000
commit859083925d4a5369db7c4336785eab6ce24a155e (patch)
treeb74e89145a103dc019dbd7bd8f679dea60ea79a9 /Master/texmf-dist/doc/latex/xfor
parent0eafc5607fb62a88e9dba8e8ef3a11efae9fd904 (diff)
xfor 1.04 (26jan09)
git-svn-id: svn://tug.org/texlive/trunk@11989 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/xfor')
-rw-r--r--Master/texmf-dist/doc/latex/xfor/CHANGES4
-rw-r--r--Master/texmf-dist/doc/latex/xfor/README50
-rw-r--r--Master/texmf-dist/doc/latex/xfor/sample.tex90
-rw-r--r--Master/texmf-dist/doc/latex/xfor/xfor.pdfbin108179 -> 117739 bytes
4 files changed, 98 insertions, 46 deletions
diff --git a/Master/texmf-dist/doc/latex/xfor/CHANGES b/Master/texmf-dist/doc/latex/xfor/CHANGES
index 1899d18a565..926dfd76f44 100644
--- a/Master/texmf-dist/doc/latex/xfor/CHANGES
+++ b/Master/texmf-dist/doc/latex/xfor/CHANGES
@@ -1,5 +1,9 @@
xfor change log:
+v1.04 (25 January 2009):
+ rewrite of internals to improve loop efficiency
+ (code provided by Morten Høgholm)
+
v1.03 (21 August 2007):
fixed license text
diff --git a/Master/texmf-dist/doc/latex/xfor/README b/Master/texmf-dist/doc/latex/xfor/README
index b8980b3caea..a4c8c8ac0f8 100644
--- a/Master/texmf-dist/doc/latex/xfor/README
+++ b/Master/texmf-dist/doc/latex/xfor/README
@@ -1,25 +1,25 @@
-LaTeX Package : xfor
-
-Last Modified : 21 August 2007
-Version : 1.03
-Author : Nicola Talbot
-
-This package redefines \@for so that it is possible to
-prematurely terminate the loop. There is also a look ahead
-facility to access the next element before moving on to the
-next iteration.
-
-The package is supplied using the TeX Directory Structure (TDS).
-Files in texmf directory should go in the corresponding
-$LOCALTEXMF directories.
-
-*Remember to refresh TeX's database*
-
-The package and documentation source code is also supplied as a
-dtx and ins file located in texmf/source.
-
-This material is subject to the LaTeX Project Public License.
-See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for the details of that license.
-
-http://theoval.cmp.uea.ac.uk/~nlct/
-
+LaTeX Package : xfor
+
+Last Modified : 25 January 2009
+Version : 1.04
+Author : Nicola Talbot
+
+This package redefines \@for so that it is possible to
+prematurely terminate the loop. There is also a look ahead
+facility to access the next element before moving on to the
+next iteration.
+
+The package is supplied using the TeX Directory Structure (TDS).
+Files in texmf directory should go in the corresponding
+$LOCALTEXMF directories.
+
+*Remember to refresh TeX's database*
+
+The package and documentation source code is also supplied as a
+dtx and ins file located in texmf/source.
+
+This material is subject to the LaTeX Project Public License.
+See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for the details of that license.
+
+http://theoval.cmp.uea.ac.uk/~nlct/
+
diff --git a/Master/texmf-dist/doc/latex/xfor/sample.tex b/Master/texmf-dist/doc/latex/xfor/sample.tex
index b1027185b18..f740bdbc66f 100644
--- a/Master/texmf-dist/doc/latex/xfor/sample.tex
+++ b/Master/texmf-dist/doc/latex/xfor/sample.tex
@@ -1,16 +1,57 @@
-\errorcontextlines=100
+%%
+%% This is file `sample.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xfor.dtx (with options: `sample.tex,package')
+%%
+%% xfor.dtx
+%% Copyright 2009 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files xfor.dtx and xfor.ins and the derived files xfor.sty, sample.tex.
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\listfiles
\documentclass{article}
\usepackage{xfor}
\makeatletter
-% \insertinto{new value}{list}
+
+
+\newtoks\tmptok
+
\newcommand{\insertinto}[2]{%
\def\nlst{}%
\@for\n:=#2\do{%
-% store new list in \toks@
-\expandafter\toks@\expandafter{\nlst}%
-% test current value against new value
+\expandafter\tmptok\expandafter{\nlst}%
\ifnum\n>#1\relax
\edef\newstuff{\number#1,\n}%
% end for loop at the end of this iteration
@@ -18,14 +59,12 @@
\else
\edef\newstuff{\n}%
\fi
-% append new stuff to new list
\ifx\nlst\@empty
\edef\nlst{\newstuff}%
\else
- \edef\nlst{\the\toks@,\newstuff}%
+ \edef\nlst{\the\tmptok,\newstuff}%
\fi
}%
-% check to see if for loop was prematurely terminated
\if@endfor
% loop may have been terminated during final iteration, in
% which case \@forremainder is empty.
@@ -34,39 +73,48 @@
\else
% loop prematurely ended, append remainder of original list
% to new list
- \expandafter\toks@\expandafter{\nlst}%
- \edef\nlst{\the\toks@,\@forremainder}%
+ \expandafter\tmptok\expandafter{\nlst}%
+ \edef\nlst{\the\tmptok,\@forremainder}%
\fi
\else
- % wasn't prematurely terminated, so new value hasn't been added
- % add now.
- \expandafter\toks@\expandafter{\nlst}%
+ % wasn't prematurely terminated, so new value hasn't been added.
+ % Add now.
+ \expandafter\tmptok\expandafter{\nlst}%
\ifx\nlst\@empty
\edef\nlst{\number#1}%
\else
- \edef\nlst{\the\toks@,\number#1}%
+ \edef\nlst{\the\tmptok,\number#1}%
\fi
\fi
\global\let#2=\nlst
}
+
\newcommand{\insertionsort}[1]{%
\def\sortedlist{}%
\@for\val:=#1\do{{\insertinto{\val}{\sortedlist}}}%
\let#1=\sortedlist}
+
\makeatother
\begin{document}
-\def\mylist{1,2,5,9,12,15,18,20}%
-\def\newval{11}%
-Original list: \mylist. New value: \newval.
-
-\insertinto{\newval}{\mylist}
-New list: \mylist.
-
Unsorted list:
\def\mylist{4,2,7,1,10,11,20,15}\mylist.
\insertionsort{\mylist}%
Sorted list: \mylist.
+
+Iterate through the list (next element in parentheses):
+\makeatletter
+\@for\n:=\mylist\do{%
+\n
+\ifx\@xfor@nextelement\@nnil
+ % last iteration
+\else
+ (\@xfor@nextelement);
+\fi
+}.
\end{document}
+\endinput
+%%
+%% End of file `sample.tex'.
diff --git a/Master/texmf-dist/doc/latex/xfor/xfor.pdf b/Master/texmf-dist/doc/latex/xfor/xfor.pdf
index 1ec378b63a9..8f4b34ccb17 100644
--- a/Master/texmf-dist/doc/latex/xfor/xfor.pdf
+++ b/Master/texmf-dist/doc/latex/xfor/xfor.pdf
Binary files differ