CTAN Comprehensive TeX Archive Network

Directory macros/generic/commado

             README for the `commado' bundle

      Iterate on comma-separated and filename lists

                (C) Uwe Lueck 2012/11/29

`commado.sty' provides 


to apply an existing one-parameter macro <cmd> to each item 
in a list <list> in which items are separated by commas. 

`filesdo.sty' provides 


to run <cmd>{<base>.<ext>} for some (at most) one-parameter 
macro <cmd>, each base filename <base> in the comma-separated 
list <bases> and each extension <ext> in the comma-separated 
list <exts>. 

As opposed to LaTeX’s internal \@for, no assignments are 
involved (unless <cmd> uses assignments, "expandability" in 
"TeX’s gullet").

Both packages are "generic," i.e., should work with Plain 
TeX, LaTeX or even other formats, relying on the `plainpkg' 
package for some minimal LaTeX-like behaviour.

RELATED PACKAGES: `loops' and others mentioned in the 
    `dowith' package documentation.

KEYWORDS: macro programming, programming structures, loops, 

REQUIRED PACKAGES: `plainpkg', `stacklet'

LICENSE: The package files `commado.sty', `filesdo.sty' and
    the files `commado.pdf' and `commado.tex' documenting 
    both package files can be redistributed and/or modified
    under the terms of the LaTeX Project Public License;
    either version 1.3c of the License, or any later version, 


    There is NO WARRANTY, indeed this still is somewhat

    The `commado' package is author-maintained in the sense 
    of the license.

The latest public version of the package is available at


A TDS version of the package is available as


Please report bugs, problems, suggestions, and bad English via


Download the contents of this package in one zip archive (587.6k).

commado – Expandable iteration on comma-separated and filename lists

The bundle provides two packages: commado and filesdo.

The package commado provides the command \DoWithCSL:

\DoWithCSL{<cmd>}{<list>} applies an existing one-parameter macro <cmd> to each item in a list <list> in which terms are separated by commas.

The package filesdo provides the command \DoWithBasesExts:


which runs the single parameter command <cmd> on each file whose base and extension are respectively from the comma-separated lists <bases> and <exts>.

These ‘loop’-like commands are (themselves) entirely expandable.

The packages rely on packages plainpkg, and stacklet

LicensesThe Project Public License 1.3
Copyright2012 Uwe Lück
MaintainerUwe Lück (deceased)
TDS archivecommado.tds.zip
Contained inTeX Live as commado
MiKTeX as commado
TopicsMacro support
See alsoloops
Guest Book Sitemap Contact Contact Author