From c8dccd1fa1da5e45bdd951746b942f8de1ffcb29 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Tue, 1 Mar 2016 11:27:13 +0100 Subject: implementation of loc transliteration tables --- arabluatex.lua | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'arabluatex.lua') diff --git a/arabluatex.lua b/arabluatex.lua index b716bea..d76a284 100644 --- a/arabluatex.lua +++ b/arabluatex.lua @@ -236,6 +236,38 @@ local function transdmg(str) return str end +local function transloc(str) + str = string.gsub(str, "\\arb(%b{})", function(inside) + inside = string.sub(inside, 2, -2) + for i = 1,#hamzatrloc do + inside = string.gsub(inside, hamzatrloc[i].a, hamzatrloc[i].b) + end + for i = 1,#tanwintrloc do + inside = string.gsub(inside, tanwintrloc[i].a, tanwintrloc[i].b) + end + for i = 1,#trigraphstrloc do + inside = string.gsub(inside, trigraphstrloc[i].a, trigraphstrloc[i].b) + end + for i = 1,#digraphstrloc do + inside = string.gsub(inside, digraphstrloc[i].a, digraphstrloc[i].b) + end + for i = 1,#singletrloc do + inside = string.gsub(inside, singletrloc[i].a, singletrloc[i].b) + end + for i = 1,#longvtrloc do + inside = string.gsub(inside, longvtrloc[i].a, longvtrloc[i].b) + end + for i = 1,#shortvtrloc do + inside = string.gsub(inside, shortvtrloc[i].a, shortvtrloc[i].b) + end + for i = 1,#finaltrloc do + inside = string.gsub(inside, finaltrloc[i].a, finaltrloc[i].b) + end + return string.format("\\txtrans{%s}", inside) + end) +return str +end + function processvoc(str) str = "\\arb{".. str.."}" str = protectarb(str) @@ -273,6 +305,8 @@ function processtrans(str, mode) str = holdcmd(str) if mode == "dmg" then str = transdmg(str) + elseif mode == "loc" then + str = transloc(str) else end str = unprotectarb(str) return str -- cgit v1.2.3