From d25d0378431299c184512fa1958bfc0ec9f18cb2 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Mon, 28 May 2018 18:05:12 +0200 Subject: commands with no argument are now processed by \MkArbBreak{}. added \pstart and \pend to 'albrkcmds' --- arabluatex.lua | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'arabluatex.lua') diff --git a/arabluatex.lua b/arabluatex.lua index b99fbca..f6110f9 100644 --- a/arabluatex.lua +++ b/arabluatex.lua @@ -53,12 +53,15 @@ local function unprotectarb(str) return str end --- 'albrkcmds' is what is set by default. 'brkcmds' is what may be --- set in the preamble as argument of \MkArbBreak{} +-- commands the arguments of which must not be processed by +-- arabluatex. 'albrkcmds' is what is set by default. 'brkcmds' is +-- what may be set in the preamble as argument of \MkArbBreak{} local albrkcmds = { "Footnote", "Marginpar", "edtext", + "pstart", + "pend", "arbmark" } local brkcmds = {} @@ -79,20 +82,21 @@ end local dblbkslash = lpeg.Cs("\\") local bsqbrackets = lpeg.Cs{ "[" * ((1 - lpeg.S"[]") + lpeg.V(1))^0 * "]" } local bcbraces = lpeg.Cs{ "{" * ((1 - lpeg.S"{}") + lpeg.V(1))^0 * "}" } -local spce = lpeg.P(" ") +local spce = lpeg.Cs(" ") local bsqbracketsii = lpeg.Cs(bsqbrackets^-2) -local bcbracesii = lpeg.Cs(bcbraces * bcbraces^-1) +local bcbracesii = lpeg.Cs(bcbraces^-2) +local cmdargs = lpeg.Cs(spce * bsqbracketsii * bcbracesii) local function breakcmd(str) for i = 1,#albrkcmds do - str = gsub(str, dblbkslash * lpeg.Cs(albrkcmds[i]) * spce^-1 * bsqbracketsii * bcbracesii, "}%1%2%3%4\\arb{") + str = gsub(str, dblbkslash * lpeg.Cs(albrkcmds[i]) * cmdargs, "}%1%2%3\\arb{") end -- user commands if next(brkcmds) == nil then -- nothing to do else for i = 1,#brkcmds do - str = gsub(str, dblbkslash * lpeg.Cs(brkcmds[i]) * spce^-1 * bsqbracketsii * bcbracesii, "}%1%2%3%4\\arb{") + str = gsub(str, dblbkslash * lpeg.Cs(brkcmds[i]) * cmdargs, "}%1%2%3\\arb{") end end -- process \item[], then \item -- cgit v1.2.3