[luatex] Using Lua to filter a macro argument

Craig Parker-Feldmann tschaka-doung at email.de
Fri Oct 6 17:30:38 CEST 2017

The following example uses the Lua “string.gsub” function.
I can imagine many of the LaTeX packages of the past could be replaced by processing things with Lua.
What I want to know is: am I going about this in a sensible way? Is using the “string.gsub” function a good idea? I am aware of the LPEG library, but, to be honest, learning it is pretty daunting. I am also unsure as to which strategy I would use to implement the percent character in a pattern expression.
Feedback please.
----- CUT HERE -----
% Implements \directlua.
% Takes a TeX stream, and runs it through the
% equivalent of the *NIX “sed” utility in conjunction with
% the “gsub” function.
% Searches for the string “beta” and replaces it with the
% string “BANANA”.
\def \massageZtring#1{%
    local myZtring = "#1"
    local BasketA, BasketB = string.gsub (myZtring,
      "beta", "BANANA")
    tex.print (BasketA)
}% End of \massageZtring
The following paragraph has been run through a Lua filter.\par
\massageZtring {alpha beta gamma}\par
----- CUT HERE -----

More information about the luatex mailing list