Index of /macros/generic/bitelist
README for the `bitelist' package
"Split list at list inside in TeX's Mouth"
(C) Uwe Lueck 2012/03/28
`bitelist.sty' provides commands for "splitting" a token list
at the first occurrence of a contained token list. I.e., for given
token lists s, t return b and shortest a, such that t = a s b.
As opposed to other packages providing similar features,
(i) the method uses TeX's mechanism of reading delimited macro
(ii) the splitting macros work by pure expansion, without
assignments, provided the macro doing the search has been
defined before processing (e.g., a file);
(iii) instead of using one macro for a "substring" test and another
one to replace the "substring"--which includes extracting
corresponding prefix and suffix--, the *same* macro that
detects the occurrence returns the split;
(iv) e-TeX is not required.
(And LaTeX is not required.) This improves `fifinddo.sty' (v0.51).
An elaborated approach (additionally to a simpler one) is provided
that does not loose outer braces of prefix/suffix.
"Substring" detection and "string" replacement are (implicitly)
included with respect to certain representations of characters by tokens.
Counting occurrences and "global" replacement could be achieved
by applying the operation to earlier results, etc.--so
this approach seems to be "fundamental" for a certain larger
set of list analysis tasks.
The documentation aims to prove the correctness of the methods
with mathematical rigour.
KEYWORDs: macro programming, text filtering, substrings
RELATEd PACKAGEs: datatool, stringstrings, ted, texapi, xstring
The package file `bitelist.sty' and the documentation files
`bitelist.pdf' and `bitelist.tex' 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, see
We did our best to help you, but there is NO WARRANTY.
The `bitelist' package is author-maintained in the sense of
The latest public version of the package is available at
A TDS version of the package is available as
Please report bugs, problems, and suggestions via