From f10c050224950720527f249ffb945bb75a210d70 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Mon, 20 Nov 2023 16:57:00 +0100 Subject: process \App{}{} command of ekdosis --- arabluatex.lua | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) (limited to 'arabluatex.lua') diff --git a/arabluatex.lua b/arabluatex.lua index ec318b7..3d6ec80 100644 --- a/arabluatex.lua +++ b/arabluatex.lua @@ -59,6 +59,20 @@ local baytargs = lpeg.Cs(spce * bcbraces * bsqbrackets^-1 * bcbraces) local arind = lpeg.Cs(dblbkslash * lpeg.P("arind") * spce^-1 * bsqbracketsii) local function protectarb(str) + -- \App[]{}{} + str = string.gsub(str, "(\\App%s?)(%b{})(%b{})", "%1[]%2%3") + str = gsub(str, lpeg.P("\\App") * spcenc^-1 * bsqbrackets * bcbraces * bcbraces, + function(opt, lem, rdg) + opt = string.sub(opt, 2, -2) + lem = string.sub(lem, 2, -2) + rdg = string.sub(rdg, 2, -2) + if opt == "" + then + return string.format("\\app{%s%s}", lem, rdg) + else + return string.format("\\app[%s]{%s%s}", opt, lem, rdg) + end + end) str = string.gsub(str, "(\\arb%s?)(%[.-%])(%b{})", "\\al@brk{\\arb%2%3}") str = string.gsub(str, "(\\LR%s?)(%b{})", "\\@LR%2") str = string.gsub(str, "(\\RL%s?)(%b{})", "\\@RL%2") @@ -121,14 +135,14 @@ end local function breakcmd(str) -- \par - str = gsub(str, dblbkslash * lpeg.Cs("par") * cmdargsnobs, "\\al@brk{%1%2%3}") + str = gsub(str, dblbkslash * lpeg.Cs("par") * cmdargsnobs, "\\al@brk{%1%2%3}") -- process \item[], then \item[] - str = string.gsub(str, "\\(item.?)(%b[])", - function(tag, body) - body = string.sub(body, 2, -2) - return string.format("\\al@brk{\\item[\\arb{%s}] }", body) - end) - str = string.gsub(str, "(\\item)(%s+)", "%1{}%2") + str = string.gsub(str, "\\(item.?)(%b[])", + function(tag, body) + body = string.sub(body, 2, -2) + return string.format("\\al@brk{\\item[\\arb{%s}] }", body) + end) + str = string.gsub(str, "(\\item)(%s+)", "%1{}%2") -- \textcolor str = string.gsub(str, "\\(textcolor%s?)(%b{})(%b{})", function(tag, bodycolor, bodytext) -- cgit v1.2.3