替换字符串但忽略空格和 TeX 注释的 Lua 函数

替换字符串但忽略空格和 TeX 注释的 Lua 函数

我想要一个 LuaTeX 的 Lua 函数,名为

replaceButIgnoreSpacesAndComments (<string>, <what to replace>, <what to replace it by>)

它应该像字符串替换函数一样工作,只不过在扫描<string>,它必须忽略所有空格和 TeX 注释。最好不要消除不过,它所替换的文本之外一般都有注释和空格。

换句话说,我希望replaceButIgnoreSpacesAndComments大致像这样工作:如果我运行

replaceButIgnoreSpacesAndComments( [[
    \mymacro
    [
        3 % this is my comment
    ]
    {
        4 % this is my argument
    } + b + c % another comment
]] , "\mymacro[3]{4}", "\frac{x+3}{x+4}")

那么这应该返回字符串

[[
    \frac{x+3}{x+4} + b + c % another comment
]]

TeX 命令\ReplaceButIgnoreSpacesAndComments也可以,但是我不知道如何让它保留注释。

我还想要一个变体,,replaceOnceButIgnoreSpacesAndComments它应该有点像\tl_replace_once:Nnn,即它应该只替换第一次出现的情况。

相关内容