CTAN Comprehensive TeX Archive Network

Verzeichnis macros/generic/multiexpand

README.md

Variations on the \expandafter primitive

The package defines \multiexpand, \multiexpandafter, \MultiExpand and \MultiExpandAfter, replacing large chains of \expandafter. These four commands take as an argument the number of expansion to be done. If e is available, this number is evaluated using \numexpr.

Say we want to expand \C five times before \A and \B in \A\B\C. The traditional approach would be to insert 31 \expandafter before \A and the same number before \B. With this package one can use any of

\expandafter\A\expandafter\B\romannumeral\multiexpand{5}\C
\expandafter\A\romannumeral\multiexpandafter{5}\B\C
\MultiExpandAfter{2}\A\MultiExpandAfter{5}\B\C
\MultiExpandAfter{2}\A\MultiExpandAfter{2}\B\MultiExpand{5}\C

In one step of expansion (triggered by the \expandafter's), \romannumeral\multiexpand{5} expands the following token 5 times, whereas \romannumeral\multiexpandafter{5} expands the token after that 5 times. The macros \MultiExpandAfter and \MultiExpand take two steps of expansion, but do not require \romannumeral. Another example is that in two steps of expansion,

\MultiExpandAfter{2}\a\MultiExpandAfter{3}{%
  \MultiExpandAfter{9}\b\MultiExpandAfter{10}\c\d}

expands \d 10 times, then \c 7 times (9-2), then \b once (3-2).

The package can be built from the file multiexpand.dtx' by running pdflatex multiexpand.dtx pdflatex multiexpand.dtx

Herunterladen des vollständigen Inhalts dieses Pakets in einem Zip-Archiv (372.1k).

multiexpand – Variations on the primitive command \expandafter

The package provides two user commands; one that performs multiple expansions, and one that does multiple \expandafter operations, in a single macro call.

The author suggests that the same effect could be provided by use of the command variant mechanisms of 3 (see, for example, the interface documentation of the experimental 3 kernel).

Paketmultiexpand
Fehlermeldungenhttps://github.com/blefloch/latex-multiexpand/issues
Repositoryhttps://github.com/blefloch/latex-multiexpand
Version1.5 2017-11-29
LizenzenThe Project Public License 1.3c
Copyright2011–2017 Bruno Le Floch
BetreuerBruno Le Floch
Enthalten inTeX Live als multiexpand
MiKTeX als multiexpand
ThemenMakro-Unterstützung
...
Gästebuch Seiten-Struktur Impressum Autor kontaktieren