From 55c7d8a9ced9c5c6edf4e69ef145ae5c65c8e2e1 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Sat, 12 Nov 2016 14:55:30 +0100 Subject: arabluatex.ins now generates arabluatex-patch.sty which will receive code from other sources that has to be modified temporarily --- arabluatex.dtx | 16 +++++++++++++++- arabluatex.ins | 5 ++++- arabluatex.lua | 13 +++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/arabluatex.dtx b/arabluatex.dtx index 1391460..74474b8 100644 --- a/arabluatex.dtx +++ b/arabluatex.dtx @@ -198,7 +198,7 @@ % % \fi % -% \CheckSum{379} +% \CheckSum{0} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -2747,5 +2747,19 @@ wa-ya.sIru ta.hta 'l-jild-i % % \fi % +% \iffalse +%<*patch> +% \fi +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{arabluatex-patch}% +[2016/11/13 v1.0 arabluatex patches] +% \end{macrocode} +% +% \iffalse +% +% \fi +% % \Finale \endinput diff --git a/arabluatex.ins b/arabluatex.ins index 69d9f53..df4c625 100644 --- a/arabluatex.ins +++ b/arabluatex.ins @@ -73,7 +73,10 @@ This release of 'arabluatex' consists of the following source files: \endpreamble -\generate{\file{arabluatex.sty}{\from{arabluatex.dtx}{package}}} +\generate{% + \file{arabluatex.sty}{\from{arabluatex.dtx}{package}} + \file{arabluatex-patch.sty}{\from{arabluatex.dtx}{patch}} + } \Msg{***********************************************************} \Msg{*} diff --git a/arabluatex.lua b/arabluatex.lua index 956f796..6e5b042 100644 --- a/arabluatex.lua +++ b/arabluatex.lua @@ -29,6 +29,9 @@ require("arabluatex_trans") local function protectarb(str) str = string.gsub(str, "(\\arb.?)(%[.-%])(%b{})", "\\@arb%2%3") + str = string.gsub(str, "(\\begin.?)(%b{})(%b[])", "\\@begin%3%2") + str = string.gsub(str, "(\\begin.?)(%b{})", "\\@begin%2") + str = string.gsub(str, "(\\end.?)(%b{})", "\\@end%2") str = string.gsub(str, "\\par", "\\p@r{}") str = string.gsub(str, "\\@@par", "\\p@r{}") return str @@ -36,11 +39,21 @@ end local function unprotectarb(str) str = string.gsub(str, "(\\@arb)(%[.-%])(%b{})", "\\arb%2%3") + str = string.gsub(str, "(\\@begin)(%b[])(%b{})", "\\begin%3%2") + str = string.gsub(str, "(\\@begin)(%b{})", "\\begin%2") + str = string.gsub(str, "(\\@end)(%b{})", "\\end%2") str = string.gsub(str, "\\p@r{}", "\\par") return str end local function breakcmd(str) + -- handle \item[], then \item[] + str = string.gsub(str, "\\(item.?)(%b[])", + function(tag, body) + body = string.sub(body, 2, -2) + return string.format("}\\item[\\arb{%s}] \\arb{", body) + end) + str = string.gsub(str, "(\\item)(%s+)", "%1{}%2") -- \edtext str = string.gsub(str, "\\(edtext.-)(%b{})(%b{})", function(tag, bodylem, bodyvar) -- cgit v1.2.3