aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arabluatex.dtx18
-rw-r--r--arabluatex.lua35
2 files changed, 10 insertions, 43 deletions
diff --git a/arabluatex.dtx b/arabluatex.dtx
index d54290a..091ceb7 100644
--- a/arabluatex.dtx
+++ b/arabluatex.dtx
@@ -4059,7 +4059,7 @@ wa-ya.sIru ta.hta 'l-jild-i
4059\DeclareOptionX{trans}{\def\al@mode{trans}} 4059\DeclareOptionX{trans}{\def\al@mode{trans}}
4060\define@boolkey{arabluatex.sty}[@pkg@]{export}[true]{% 4060\define@boolkey{arabluatex.sty}[@pkg@]{export}[true]{%
4061 \AtBeginDocument{\luadirect{al_openstream()}% 4061 \AtBeginDocument{\luadirect{al_openstream()}%
4062 \MkArbBreak{@al@ob, @al@cb}} 4062 \MkArbBreak{@al@ob,@al@cb}}
4063 \AtEndDocument{\luadirect{al_closestream()}} 4063 \AtEndDocument{\luadirect{al_closestream()}}
4064} 4064}
4065\ExecuteOptionsX{voc} 4065\ExecuteOptionsX{voc}
@@ -4094,8 +4094,8 @@ wa-ya.sIru ta.hta 'l-jild-i
4094% and attempt to load the Amiri font which is included in \TeX{}live: 4094% and attempt to load the Amiri font which is included in \TeX{}live:
4095% \begin{macrocode} 4095% \begin{macrocode}
4096\AtBeginDocument{\ifdefined\arabicfont\relax\else 4096\AtBeginDocument{\ifdefined\arabicfont\relax\else
4097\PackageWarning{arabluatex}{\string\arabicfont\ is not defined.^^JI 4097\PackageWarning{arabluatex}{\string\arabicfont\ is not defined.^^J
4098 will try to load Amiri}% 4098 I will try to load Amiri}%
4099\newfontfamily\arabicfont[Script=Arabic]{Amiri}\fi}% 4099\newfontfamily\arabicfont[Script=Arabic]{Amiri}\fi}%
4100% \end{macrocode} 4100% \end{macrocode}
4101% \begin{macro}{\setRL} 4101% \begin{macro}{\setRL}
@@ -4471,7 +4471,8 @@ wa-ya.sIru ta.hta 'l-jild-i
4471% Then follows the environment itself: 4471% Then follows the environment itself:
4472% \begin{macrocode} 4472% \begin{macrocode}
4473\NewDocumentEnvironment{arabverse}{O{}}% 4473\NewDocumentEnvironment{arabverse}{O{}}%
4474{\bgroup\setkeys[al]{verse}[width,gutter,color,utf,delim,mode,metre]{#1}% 4474{\bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim, mode,
4475 metre]{#1}%
4475 \if@pkg@export\ifal@verse@export% 4476 \if@pkg@export\ifal@verse@export%
4476 \ArbOutFile{\begin{arabverse}}% 4477 \ArbOutFile{\begin{arabverse}}%
4477 \luadirect{tooutfile(\luastringN{[#1]})}% 4478 \luadirect{tooutfile(\luastringN{[#1]})}%
@@ -4480,10 +4481,11 @@ wa-ya.sIru ta.hta 'l-jild-i
4480 \ifx\al@mode\al@mode@trans% 4481 \ifx\al@mode\al@mode@trans%
4481 \ifal@verse@utf\setRL\else\setLR\fi% 4482 \ifal@verse@utf\setRL\else\setLR\fi%
4482 \else\setRL\fi}% 4483 \else\setRL\fi}%
4483%{\hfill\setkeys[al]{verse}[width,gutter,utf,mode]{#1}\egroup\par} 4484{\hfill\setkeys[al]{verse}[width, gutter, color, utf, delim, mode,
4484{\hfill\setkeys[al]{verse}[width,gutter,color,utf,delim,mode,export]{#1}% 4485 export]{#1}%
4485 \egroup\par% 4486 \egroup\par%
4486 \bgroup\setkeys[al]{verse}[width,gutter,color,utf,delim,mode,metre]{#1}% 4487 \bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim, mode,
4488 metre]{#1}%
4487 \if@pkg@export\ifal@verse@export% 4489 \if@pkg@export\ifal@verse@export%
4488 \ArbOutFile{\end{arabverse}}\else\fi\else\fi\egroup} 4490 \ArbOutFile{\end{arabverse}}\else\fi\else\fi\egroup}
4489% \end{macrocode} 4491% \end{macrocode}
@@ -4695,7 +4697,7 @@ wa-ya.sIru ta.hta 'l-jild-i
4695% right direction. 4697% right direction.
4696% \begin{macrocode} 4698% \begin{macrocode}
4697\NewDocumentCommand{\arbpardir}{}{% 4699\NewDocumentCommand{\arbpardir}{}{%
4698 \ifx\al@mode\al@mode@trans\setLR\else\setRL\fi} 4700 \ifx\al@mode\al@mode@trans\setLR\else\booltrue{al@rlmode}\setRL\fi}
4699% \end{macrocode} 4701% \end{macrocode}
4700% \end{macro} 4702% \end{macro}
4701% 4703%
diff --git a/arabluatex.lua b/arabluatex.lua
index ac6a251..b578ec5 100644
--- a/arabluatex.lua
+++ b/arabluatex.lua
@@ -54,7 +54,6 @@ local arbargs = lpeg.Cs(spce^-1 * bsqbrackets^-1 * bcbraces)
54local baytargs = lpeg.Cs(spce * bcbraces * bsqbrackets^-1 * bcbraces) 54local baytargs = lpeg.Cs(spce * bcbraces * bsqbrackets^-1 * bcbraces)
55 55
56local function protectarb(str) 56local function protectarb(str)
57-- str = string.gsub(str, "(\\arb%s?)(%[.-%])(%b{})", "\\@arb%2%3")
58 str = string.gsub(str, "(\\arb%s?)(%[.-%])(%b{})", "\\al@brk{\\arb%2%3}") 57 str = string.gsub(str, "(\\arb%s?)(%[.-%])(%b{})", "\\al@brk{\\arb%2%3}")
59 str = string.gsub(str, "(\\LR%s?)(%b{})", "\\@LR%2") 58 str = string.gsub(str, "(\\LR%s?)(%b{})", "\\@LR%2")
60 str = string.gsub(str, "(\\RL%s?)(%b{})", "\\@RL%2") 59 str = string.gsub(str, "(\\RL%s?)(%b{})", "\\@RL%2")
@@ -740,18 +739,6 @@ function arbtoutf(str)
740 body = string.gsub(body, "(\\arbmark)%s?(%b{})", "}%1%2\\ArbOutFile{") 739 body = string.gsub(body, "(\\arbmark)%s?(%b{})", "}%1%2\\ArbOutFile{")
741 return string.format("%s{%s}", tag, body) 740 return string.format("%s{%s}", tag, body)
742 end) 741 end)
743 -- str = string.gsub(str, "(\\arb%s?)(%b[])(%b{})", "}%1%2%3\\ArbOutFile{")
744 -- str = string.gsub(str, "(\\arb)%s?(%b{})", "}%1%2\\ArbOutFile{")
745 -- str = gsub(str, lpeg.Cs("\\bayt") * baytargs, "}\\ArbOutFile{\\bayt}%1%2\\ArbOutFile{")
746-- str = gsub(str, lpeg.Cs("\\arb") * arbargs, "}%1%2\\ArbOutFile{")
747-- str = string.gsub(str, "(\\abjad)%s?(%b{})", "}%1%2\\ArbOutFile{")
748-- str = string.gsub(str, "(\\abjad)(%s?)(%b{})", "}%1%3\\ArbOutFile{")
749-- str = string.gsub(str, "(\\begin%s?{arab})", "}%1")
750-- str = string.gsub(str, "(\\end%s?{arab})", "%1\\ArbOutFile{")
751-- str = string.gsub(str, "(\\begin)", "\n%1")
752-- str = string.gsub(str, "(\\end)", "\n%1")
753-- str = string.gsub(str, "(\\bayt)", "\n%1")
754 -- str = string.gsub(str, "(\\\\)", "%1\n")
755 return str 742 return str
756end 743end
757 744
@@ -770,27 +757,6 @@ function al_closestream()
770 local f = io.open(tex.jobname..utffilesuffix.."_tmp.tex", "r") 757 local f = io.open(tex.jobname..utffilesuffix.."_tmp.tex", "r")
771 local o = io.open(tex.jobname..utffilesuffix..".tex", "w") 758 local o = io.open(tex.jobname..utffilesuffix..".tex", "w")
772 local t = f:read("*a") 759 local t = f:read("*a")
773 --[[ next lines need work!
774 -- t = string.gsub(t, "{\\textdir TRT\\arabicfont{}", "\\txarb{")
775 t = string.gsub(t, "(\\bayt%s?)\\txarb(%b{})\\txarb(%b{})\\txarb(%b{})",
776 function(tag, bodyi, bodyii, bodyiii)
777 bodyii = string.sub(bodyii, 2, -2)
778 return string.format("%s%s[%s]%s",
779 tag, bodyi, bodyii, bodyiii)
780 end)
781 t = string.gsub(t, "(\\bayt%s?)\\txarb(%b{})\\txarb(%b{})", "%1%2%3")
782 t = string.gsub(t, "{\\textdir TRT\\arbmetre{\\arabicfont{}", "\\arbmetre{\\txarb{")
783 t = string.gsub(t, "(\\bayt%s?)\\txtrans(%b{})\\txtrans(%b{})\\txtrans(%b{})",
784 function(tag, bodyi, bodyii, bodyiii)
785 bodyii = string.sub(bodyii, 2, -2)
786 return string.format("%s%s[%s]%s",
787 tag, bodyi, bodyii, bodyiii)
788 end)
789 t = string.gsub(t, "(\\bayt%s?)\\txtrans(%b{})\\txtrans(%b{})", "%1%2%3")
790 t = string.gsub(t, "\\txtrans{\\arbmetre{", "\\arbmetre{\\txtrans{")
791 t = string.gsub(t, "\\arbmetre", "\\\\\n\\hfill")
792 t = string.gsub(t, "(\\bayt)", "\n%1")
793 --]]
794 t = string.gsub(t, "\\arabicfont{}", "") 760 t = string.gsub(t, "\\arabicfont{}", "")
795 t = string.gsub(t, "\\par ", "\n\n") 761 t = string.gsub(t, "\\par ", "\n\n")
796 t = string.gsub(t, "(%s?)(\\@al@ob%s?)", "{") 762 t = string.gsub(t, "(%s?)(\\@al@ob%s?)", "{")
@@ -808,7 +774,6 @@ function al_closestream()
808 f:close() 774 f:close()
809 o:close() 775 o:close()
810 os.remove(tex.jobname..utffilesuffix.."_tmp.tex") 776 os.remove(tex.jobname..utffilesuffix.."_tmp.tex")
811-- os.rename(tex.jobname.."_out_tmp.tex", tex.jobname.."_out.tex")
812 return true 777 return true
813end 778end
814 779