diff options
author | Karl Berry <karl@freefriends.org> | 2007-07-16 16:42:56 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-07-16 16:42:56 +0000 |
commit | ddc4d77ba98166cf86d502db2514f63216c9f134 (patch) | |
tree | 9d3405493dc35487b2d7a90ae96ec028215cac6a /Master/texmf-dist/tex/latex/xfor | |
parent | 33c85af6b9b145413f145c2f42ab33edebe0db80 (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.sty | 93 |
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'. |