From e82ab073e2d0b9a8e00142895e2e0fca120d4041 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Tue, 6 Dec 2016 10:23:54 +0100 Subject: intermediate commit: added punctuation characters in trigraphs rules (all modes) before al-; first implementation of Arabic verse environment --- arabluatex.dtx | 26 ++++++++++++++++++++++++-- arabluatex_fullvoc.lua | 24 ++++++++++++------------ arabluatex_novoc.lua | 14 +++++++------- arabluatex_voc.lua | 28 ++++++++++++++-------------- 4 files changed, 57 insertions(+), 35 deletions(-) diff --git a/arabluatex.dtx b/arabluatex.dtx index 5788d62..c13d563 100644 --- a/arabluatex.dtx +++ b/arabluatex.dtx @@ -1514,8 +1514,8 @@ vowels (see §~3). % \begin{quote} % |wa-"ust"u`mila| \arb[novoc]{wa-"ust"u`mila} % \arb[trans]{wa-"ust"u`mila}, |huwa| |"inhazama| \arb[novoc]{huwa -% "inhazama} \arb[trans]{huwa "inhazama}, |al-"intiqA.du| -% \arb[novoc]{al-"intiqA.du} \arb[trans]{al-"intiqA.du}. +% "inhazama} \arb[trans]{huwa "inhazama}, |al-"intiqA.d-u| +% \arb[novoc]{al-"intiqA.d-u} \arb[trans]{al-"intiqA.d-u}. % \end{quote} % \end{compactenum} % @@ -2698,6 +2698,7 @@ wa-ya.sIru ta.hta 'l-jild-i \RequirePackage{luacode} \RequirePackage{xparse} \RequirePackage{environ} +\RequirePackage{xkeyval} % \end{macrocode} % The following boolean will be set to |true| in |RL| mode: % \begin{macrocode} @@ -2964,6 +2965,27 @@ wa-ya.sIru ta.hta 'l-jild-i \else \fi\fi\fi\fi}[\par] % \end{macrocode} % \end{environment} +% \begin{environment}{arbverse} +% \changes{v1.6}{2016/11/30}{New environment \texttt{arbverse} for +% typesetting Arabic poetry} The environment |arbverse| shall +% receive different options. Let us define them first. +% \begin{macrocode} +\newlength{\al@bayt@width} +\setlength{\al@bayt@width}{.3\textwidth} +\define@key[al]{verse}{width}{\setlength{\al@bayt@width}{#1}} +\define@key[al]{verse}{metre}{#1} +\define@boolkey[al]{verse}{utf}[true]{} +\define@choicekey[al]{verse}{mode}{fullvoc, voc, novoc, + trans}{\def\al@mode{#1}} +\presetkeys[al]{verse}{utf=false}{} +\NewDocumentEnvironment{arbverse}{O{} O{}}% +{\par\bgroup\setkeys[al]{verse}[metre]{#1}% + \ifx\al@mode\al@mode@trans% + \ifal@verse@utf\setRL\else\setLR\fi% + \else\setRL\fi% +}{\\\setkeys[al]{verse}[width,utf,mode]{#1}\egroup\par} +% \end{macrocode} +% \end{environment} % \begin{macro}{\abjad} \cs{abjad}\marg{number} expresses its argument % in Arabic letters in accordance with the \arb[trans]{'abjad} % arrangement of the alphabet. \meta{number} must be between 1 and diff --git a/arabluatex_fullvoc.lua b/arabluatex_fullvoc.lua index 898aecd..22c3ac4 100644 --- a/arabluatex_fullvoc.lua +++ b/arabluatex_fullvoc.lua @@ -293,24 +293,24 @@ tanwinfveasy = { -- no assimilations (see below) trigraphsfv = { -- trigraphs or more -- 'llatI / 'llad_I {a="^'ll(a)([%_]?[dt])", b="ٱلّ%1%2"}, - {a="([%s%-])'ll(a)([%_]?[dt])", b="%1ٱلّ%2%3"}, + {a="([%p%s%-])'ll(a)([%_]?[dt])", b="%1ٱلّ%2%3"}, --p -- al- + lām {a="^(a)l%-(l)", b="ا%1ل%2%2"}, - {a="([%s%-])(a)l%-(l)", b="%1ا%2ل%3%3"}, + {a="([%p%s%-])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p -- al- + solar consonant {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2%2"}, - {a="([%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3%3"}, + {a="([%p%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3%3"}, --p -- assim. art. + solar consonant {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل%2"}, - {a="([%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل%3"}, + {a="([%p%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل%3"}, --p -- al- + initial unstable hamza {a="^(a)l%-(\"?[uai])", b="ا%1ل%2ٱ"}, - {a="([%s%-])(a)l%-(\"?[uai])", b="%1ا%2ل%3ٱ"}, + {a="([%p%s%-])(a)l%-(\"?[uai])", b="%1ا%2ل%3ٱ"}, --p -- li-/la + art. + initial unstable hamza is a special orthography {a="l([ai])%-l%-(\"?[uai])", b="ل%1ل%2ٱ"}, -- al- + lunar consonant (i.e. what remains) {a="^(a)l%-", b="ا%1لْ"}, - {a="([%s%-])(a)l%-", b="%1ا%2لْ"}, + {a="([%p%s%-])(a)l%-", b="%1ا%2لْ"}, --p -- diphthongs to be resolved before ʾalif conjunctionis {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, @@ -350,24 +350,24 @@ trigraphsfv = { -- trigraphs or more trigraphsfveasy = { -- trigraphs or more (see 'easy' tag below for the diffs) -- 'llatI / 'llad_I {a="^'ll(a)([%_]?[dt])", b="ٱلّ%1%2"}, - {a="([%s%-])'ll(a)([%_]?[dt])", b="%1ٱلّ%2%3"}, + {a="([%p%s%-])'ll(a)([%_]?[dt])", b="%1ٱلّ%2%3"}, --p -- al- + lām {a="^(a)l%-(l)", b="ا%1ل%2%2"}, - {a="([%s%-])(a)l%-(l)", b="%1ا%2ل%3%3"}, + {a="([%p%s%-])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p -- al- + solar consonant {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2%2"}, - {a="([%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3%3"}, + {a="([%p%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3%3"}, --p -- assim. art. + solar consonant {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل%2"}, - {a="([%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل%3"}, + {a="([%p%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل%3"}, --p -- al- + initial unstable hamza {a="^(a)l%-(\"?[uai])", b="ا%1ل%2ٱ"}, - {a="([%s%-])(a)l%-(\"?[uai])", b="%1ا%2ل%3ٱ"}, + {a="([%p%s%-])(a)l%-(\"?[uai])", b="%1ا%2ل%3ٱ"}, --p -- li-/la + art. + initial unstable hamza is a special orthography {a="l([ai])%-l%-(\"?[uai])", b="ل%1ل%2ٱ"}, -- al- + lunar consonant (i.e. what remains) {a="^(a)l%-", b="ا%1لْ"}, - {a="([%s%-])(a)l%-", b="%1ا%2لْ"}, + {a="([%p%s%-])(a)l%-", b="%1ا%2لْ"}, --p -- diphthongs to be resolved before ʾalif conjunctionis {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, diff --git a/arabluatex_novoc.lua b/arabluatex_novoc.lua index f069f5a..b88eaf2 100644 --- a/arabluatex_novoc.lua +++ b/arabluatex_novoc.lua @@ -64,27 +64,27 @@ trigraphsnv = { -- trigraphs or more {a="l%-l_ah", b="l-ll_ah"}, -- 'llatI / 'llad_I {a="^'ll(a)([%_]?[dt])", b="ال%1%2"}, - {a="([%s%-])'ll(a)([%_]?[dt])", b="%1ال%2%3"}, + {a="([%p%s%-])'ll(a)([%_]?[dt])", b="%1ال%2%3"}, --p -- al- + lām {a="^(a)l%-(l)", b="ا%1ل%2"}, - {a="([%s%-])(a)l%-(l)", b="%1ا%2ل%3"}, + {a="([%p%s%-])(a)l%-(l)", b="%1ا%2ل%3"}, --p -- al- + solar consonant {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2"}, - {a="([%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3"}, + {a="([%p%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3"}, --p -- assim. art. + solar consonant {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل"}, - {a="([%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل"}, + {a="([%p%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل"}, --p -- al- + initial unstable hamza {a="^(a)l%-(\")([uai])", b="ا%1لٱ%3"}, - {a="([%s%-])(a)l%-(\")([uai])", b="%1ا%2لٱ%4"}, + {a="([%p%s%-])(a)l%-(\")([uai])", b="%1ا%2لٱ%4"}, --p {a="^(a)l%-([uai])", b="ا%1لا%2"}, - {a="([%s%-])(a)l%-([uai])", b="%1ا%2لا%3"}, + {a="([%p%s%-])(a)l%-([uai])", b="%1ا%2لا%3"}, --p -- li-/la- + art. + initial unstable hamza is a special orthography {a="l([ai])%-l%-(\")([uai])", b="ل%1لٱ%3"}, {a="l([ai])%-l%-([uai])", b="ل%1لا%2"}, -- al- + lunar consonant (i.e. what remains) {a="^(a)l%-", b="ا%1ل"}, - {a="([%s%-])(a)l%-", b="%1ا%2ل"}, + {a="([%p%s%-])(a)l%-", b="%1ا%2ل"}, --p -- art. with waṣla + lām {a="'l%-(l)", b="ال%1"}, -- art. with waṣla + solar consonant diff --git a/arabluatex_voc.lua b/arabluatex_voc.lua index ddd8fda..fb704ea 100644 --- a/arabluatex_voc.lua +++ b/arabluatex_voc.lua @@ -415,27 +415,27 @@ tanwineasy = { -- 'easy' requires some lines to be taken out: trigraphs = { -- trigraphs or more -- 'llatI / 'llad_I {a="^'ll(a)([%_]?[dt])", b="الّ%1%2"}, - {a="([%s%-])'ll(a)([%_]?[dt])", b="%1الّ%2%3"}, + {a="([%p%s%-])'ll(a)([%_]?[dt])", b="%1الّ%2%3"}, --p -- al- + lām {a="^(a)l%-(l)", b="ا%1ل%2%2"}, - {a="([%s%-])(a)l%-(l)", b="%1ا%2ل%3%3"}, + {a="([%p%s%-])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p -- al- + solar consonant {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2%2"}, - {a="([%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3%3"}, + {a="([%p%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3%3"}, --p -- assim. art. + solar consonant {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل%2"}, - {a="([%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل%3"}, + {a="([%p%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل%3"}, --p -- al- + initial unstable hamza {a="^(a)l%-(\")([uai])", b="ا%1ل%3ٱ"}, - {a="([%s%-])(a)l%-(\")([uai])", b="%1ا%2ل%4ٱ"}, + {a="([%p%s%-])(a)l%-(\")([uai])", b="%1ا%2ل%4ٱ"}, --p {a="^(a)l%-([uai])", b="ا%1ل%2ا"}, - {a="([%s%-])(a)l%-([uai])", b="%1ا%2ل%3ا"}, + {a="([%p%s%-])(a)l%-([uai])", b="%1ا%2ل%3ا"}, --p -- li-/la- + art. + initial unstable hamza is a special orthography {a="l([ai])%-l%-(\")([uai])", b="ل%1ل%3ٱ"}, {a="l([ai])%-l%-([uai])", b="ل%1ل%2ا"}, -- al- + lunar consonant (i.e. what remains) {a="^(a)l%-", b="ا%1ل"}, - {a="([%s%-])(a)l%-", b="%1ا%2ل"}, + {a="([%p%s%-])(a)l%-", b="%1ا%2ل"}, --p -- diphthongs to be resolved before ʾalif conjunctionis {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, @@ -480,27 +480,27 @@ trigraphseasy = { -- differences marked below with 'easy' {a="l%-l_ah", b="l-ll_ah"}, -- 'llatI / 'llad_I {a="^'ll(a)([%_]?[dt])", b="الّ%1%2"}, - {a="([%s%-])'ll(a)([%_]?[dt])", b="%1الّ%2%3"}, + {a="([%p%s%-])'ll(a)([%_]?[dt])", b="%1الّ%2%3"}, --p -- al- + lām (easy) {a="^(a)l%-(l)", b="ا%1ل%2"}, - {a="([%s%-])(a)l%-(l)", b="%1ا%2ل%3"}, + {a="([%p%s%-])(a)l%-(l)", b="%1ا%2ل%3"}, --p -- al- + solar consonant (easy) {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2"}, - {a="([%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3"}, + {a="([%p%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3"}, --p -- assim. art. + solar consonant (easy) {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل"}, - {a="([%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل"}, + {a="([%p%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل"}, --p -- al- + initial unstable hamza {a="^(a)l%-(\")([uai])", b="ا%1ل%3ٱ"}, - {a="([%s%-])(a)l%-(\")([uai])", b="%1ا%2ل%4ٱ"}, + {a="([%p%s%-])(a)l%-(\")([uai])", b="%1ا%2ل%4ٱ"}, --p {a="^(a)l%-([uai])", b="ا%1ل%2ا"}, - {a="([%s%-])(a)l%-([uai])", b="%1ا%2ل%3ا"}, + {a="([%p%s%-])(a)l%-([uai])", b="%1ا%2ل%3ا"}, --p -- li-/la- + art. + initial unstable hamza is a special orthography {a="l([ai])%-l%-(\")([uai])", b="ل%1ل%3ٱ"}, {a="l([ai])%-l%-([uai])", b="ل%1ل%2ا"}, -- al- + lunar consonant (i.e. what remains) {a="^(a)l%-", b="ا%1ل"}, - {a="([%s%-])(a)l%-", b="%1ا%2ل"}, + {a="([%p%s%-])(a)l%-", b="%1ا%2ل"}, --p -- diphthongs to be resolved before ʾalif conjunctionis {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, -- cgit v1.2.3