summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/xfor
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-07-16 16:42:56 +0000
committerKarl Berry <karl@freefriends.org>2007-07-16 16:42:56 +0000
commitddc4d77ba98166cf86d502db2514f63216c9f134 (patch)
tree9d3405493dc35487b2d7a90ae96ec028215cac6a /Master/texmf-dist/tex/latex/xfor
parent33c85af6b9b145413f145c2f42ab33edebe0db80 (diff)
new latex package xfor, 28jun07
git-svn-id: svn://tug.org/texlive/trunk@4626 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/xfor')
-rw-r--r--Master/texmf-dist/tex/latex/xfor/xfor.sty93
1 files changed, 93 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/xfor/xfor.sty b/Master/texmf-dist/tex/latex/xfor/xfor.sty
new file mode 100644
index 00000000000..26ee7040312
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/xfor/xfor.sty
@@ -0,0 +1,93 @@
+%%
+%% This is file `xfor.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xfor.dtx (with options: `xfor.sty,package')
+%% Copyright (C) 2007 Nicola Talbot, all rights reserved.
+%% If you modify this file, you must change its name first.
+%% You are NOT ALLOWED to distribute this file alone. You are NOT
+%% ALLOWED to take money for the distribution or use of either this
+%% file or a changed version, except for a nominal charge for copying
+%% etc.
+%% \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 \~}
+%% store new list in \toks@
+%% test current value against new value
+%% append new stuff to new list
+%% check to see if for loop was prematurely terminated
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{xfor}[2007/06/27 v1.0 (NLCT)]
+\newif\if@endfor
+\long\def\@for#1:=#2\do#3{%
+\@endforfalse
+\def\@forremainder{}%
+\expandafter\def\expandafter\@fortmp\expandafter{#2}%
+\ifx\@fortmp\@empty
+\else
+ \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}%
+\fi
+}
+\long\def\@fornoop#1\@@#2#3{}
+\long\def\@forloop#1,#2,#3\@@#4#5{%
+\def#4{#1}%
+\ifx#4\@nnil
+\else
+ #5%
+ \if@endfor
+ \@iforgatherrest#2,#3%
+ \else
+ \def#4{#2}%
+ \ifx#4\@nnil
+ \else
+ #5%
+ \if@endfor
+ \@iforgatherrest#3%
+ \else
+ \@iforloop#3\@@#4{#5}%
+ \fi
+ \fi
+ \fi
+\fi
+}
+\def\@forgatherrest#1,\@nil,\@nil{\def\@forremainder{#1}}
+\def\@iforgatherrest#1\@nil,\@nil{%
+\def\@fortmp{#1}%
+\ifx\@fortmp\@empty
+ \def\@forremainder{}%
+\else
+ \@forgatherrest#1\@nil,\@nil
+\fi
+}
+\long\def\@iforloop#1,#2\@@#3#4{%
+\def#3{#1}%
+\ifx#3\@nnil
+ \let\@ifornext\@fornoop
+\else
+ #4\relax
+ \if@endfor
+ \@iforgatherrest#2\relax
+ \let\@ifornext\@fornoop
+ \else
+ \let\@ifornext\@iforloop
+ \fi
+\fi
+\@ifornext#2\@@#3{#4}%
+}
+\endinput
+%%
+%% End of file `xfor.sty'.