summaryrefslogtreecommitdiff
path: root/tex/context/base/type-imp-husayni.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/type-imp-husayni.mkiv')
-rw-r--r--tex/context/base/type-imp-husayni.mkiv290
1 files changed, 171 insertions, 119 deletions
diff --git a/tex/context/base/type-imp-husayni.mkiv b/tex/context/base/type-imp-husayni.mkiv
index b3c1af5b7..b81996c33 100644
--- a/tex/context/base/type-imp-husayni.mkiv
+++ b/tex/context/base/type-imp-husayni.mkiv
@@ -1,137 +1,144 @@
-\definefontfeature
+%D \module
+%D [ file=type-imp-husayni,
+%D version=2008.08.08, % or whatever ... onwards
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Husayni,
+%D author=Idris Samawi Hamid \& Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D For a detailed list of features and names, see husayni.lfg. In fact, the following
+%D sets will go there.
+
+\definefontfeature
[husayni-default]
- [analyze=yes,mode=node,
- language=dflt,script=arab,
- ccmp=yes, % adds identity dots to unicode letters; includes dynamic dot placement
- init=yes,medi=yes,fina=yes, % contextual analysis
- % dlig=yes, % Hamzahbelow under YaaHamzahabove
- rlig=yes, % indispensable
- calt=yes, % ayah+numerals
- salt=yes, % includes manual justification with Tatwiil
- % fchr=yes % formatting chars
- anum=yes, % replace latin numerals with arabic-script ones
- ss01=yes, % Allah, Muhammad,
- % ss02=yes, % ss01 + Allah_final
- ss03=yes, % level-1 stack over Jiim, initial entry only
- % ss04=yes, % level-1 stack over Jiim, initial/medial entry
- % ss05=yes, % multi-level Jiim stacking, initial/medial entry
- % ss06=yes, % aesthetic Faa/Qaaf for FJ_mm, FJ_mf connection
- ss07=yes, % initial-entry stacking over Haa
- % ss08=yes, % initial/medial stacking over Haa, minus HM_mf strings
- % ss09=yes, % initial/medial Haa stacking plus HM_mf strings
- ss10=yes, % basic dipped Miim, initial-entry B_S-stack over Miim
- % ss11=yes, % full dipped Miim, initial-entry B_S-stack over Miim
- ss12=yes, % XBM_im initial-medial entry B_S-stack over Miim,
- % ss13=yes, % full initial-medial entry B_S-stacked Miim
- % ss14=yes, initial entry, stacked Laam on Miim
- ss15=yes, % full stacked Laam-on-Miim
- ss16=yes, % initial entry, stacked Ayn-on-Miim
- % ss17=yes, % full stacked Ayn-on-Miim
- % ss18=yes, % LMJ_im % already contained in ss03--05, may remove
- ss19=yes, % LM_im
- % ss20=yes, % KLM_m, sloped Miim
- % ss21=yes, % KLM_i_mm/LM_mm, sloped Miim
- % ss22=yes, % filled sloped Miim
- % ss23=yes, % LM_mm, non-sloped Miim
- ss24=yes, % BR_i_mf, BN_i_mf
- ss25=yes, % basic LH_im % might merge with ss24
- ss26=yes, % full Yaa.final special strings: BY_if, BY_mf, LY_mf
- ss27=yes, % basic thin Miim.final
- % ss28=yes, % full thin Miim.final % to be moved to jsnn
- % ss29=yes, % basic short Miim.final
- % ss30=yes, % full short Miim.final % to be moved to jsnn
- ss31=yes, % basic Raa.final strings: JR and SR
- % ss32=yes, % basic Raa.final strings: JR, SR, and BR
- % ss33=yes, % TtR % to be moved to jsnn
- ss34=yes, % AyR style % also available in jsnn
- ss35=yes, % full Kaaf contexts
- ss36=yes, % full Laam contexts
- ss37=yes, % Miim-Miim contexts
- ss38=yes, % basic dipped Haa, B_SH_mm
- % ss39=yes, % full dipped Haa, B_S_LH_i_mm_Mf
- % ss40=yes, % aesthetic dipped medial Haa
- ss41=yes, % high and low Baa strings
- ss42=yes, % diagonal entry
- ss43=yes, % initial alternates
- % ss44=yes, % hooked final alif
- % ss45=yes, % BMA_f
- % ss46=yes, % BM_mm_alt, for JBM combinations
- % ss47=yes, % Shaddah-<kasrah> combo
- % ss48=yes, % Auto-sukuun
- % ss49=yes, % No vowels
- % ss50=yes, % Shaddah/MaaddahHamzah only
- % ss51=yes, % No Skuun
- % ss52=yes, % No Waslah
- % ss53=yes, % No Waslah
- % ss54=yes, % chopped finals
- % ss55=yes, % idgham-tanwin
- ss60=yes, %
- % js01=yes, % Raawide
- % js02=yes, % Yaawide
- % js03=yes, % Kaafwide
- % js04=yes, % Nuunwide
- % js05=yes, % Kaafwide Nuunwide Siinwide Baawide
- % js06=yes, % final Haa wide
- % js07=yes, % thin Miim
- % js08=yes, % short Miim
- % js09=yes, % wide Siin
- % js10=yes, % thuluth-style initial Haa, final Miim, MRw_mf
- % js11=yes, % level-1 stretching
- % js12=yes, % level-2 stretching
- % js13=yes, % level-3 stretching
- % js14=yes, % final Alif
- % js15=yes, % hooked final Alif
- js16=yes, % aesthetic medial Faa/Qaaf
- % js17=yes, % fancy isol Haa after Daal, Raa, and Waaw
- % js18=yes, % Laamwide, alternate substitution
- % js19=yes, % level-4 stretching, only siin and Hhaa for basmalah
- % js20=yes, % level-5 stretching, only siin and Hhaa for basmalah
- % js21=yes, % Haa.final_alt2
- % calt=yes, % to be used for vowel/dot-based dynamics
- % ttwl=yes, % for simple, horizontal stretching, not yet implemented in luatex/mkiv
- % flts=yes, % Final Glyph On Line Alternates Short: Baa-like
- % fltw=yes, % Final Glyph On Line Alternates Wide: Baa-like
- % gclr=yes, % Geometric Cursive LR : for testing GPOS only!
- % gcrl=yes, % Geometric Cursive RL
- % gklr=yes, % Geometric Kerning LR
- % gkrl=yes, % Geometric Kerning RL
- kern=yes, % includes kerning of dot-base pairs, and final pairs in continuous strings
- curs=yes, % we don't curs final pairs, padj for that
- mark=yes, % vowels
- mkmk=yes, % stacked vowels
+ [analyze=yes,
+ mode=node,
+ language=dflt,
+ script=arab,
+ ccmp=yes, % adds identity dots to unicode letters; includes dynamic dot placement
+ init=yes, % contextual analysis
+ medi=yes, % contextual analysis
+ fina=yes, % contextual analysis
+ rlig=yes, % indispensable
+ calt=yes, % ayah+numerals
+ salt=yes, % includes manual justification with Tatwiil
+ anum=yes, % replace latin numerals with arabic-script ones
+ ss01=yes, % Allah, Muhammad,
+ ss03=yes, % level-1 stack over Jiim, initial entry only
+ ss10=yes, % basic dipped Miim, initial-entry B_S-stack over Miim
+ ss12=yes, % XBM_im initial-medial entry B_S-stack over Miim,
+ ss15=yes, % full stacked Laam-on-Miim
+ ss16=yes, % initial entry, stacked Ayn-on-Miim
+ ss19=yes, % LM_im
+ ss24=yes, % BR_i_mf, BN_i_mf
+ ss25=yes, % basic LH_im % might merge with ss24
+ ss26=yes, % full Yaa.final special strings: BY_if, BY_mf, LY_mf
+ ss27=yes, % basic thin Miim.final
+ ss31=yes, % basic Raa.final strings: JR and SR
+ ss34=yes, % AyR style % also available in jsnn
+ ss35=yes, % full Kaaf contexts
+ ss36=yes, % full Laam contexts
+ ss37=yes, % Miim-Miim contexts
+ ss38=yes, % basic dipped Haa, B_SH_mm
+ ss41=yes, % high and low Baa strings
+ ss42=yes, % diagonal entry
+ ss43=yes, % initial alternates
+ ss60=yes, %
+ js16=yes, % aesthetic medial Faa/Qaaf
+ kern=yes, % includes kerning of dot-base pairs, and final pairs in continuous strings
+ curs=yes, % we don't curs final pairs, padj for that
+ mark=yes, % vowels
+ mkmk=yes, % stacked vowels
tlig=yes,
- colorscheme=husayni:default]
+ goodies=husayni,
+ colorscheme=default]
+
+\definefontfeature
+ [husayni-alternative] % was husayni-default2
+ [analyze=yes,
+ mode=node,
+ language=dflt,
+ script=arab,
+ ccmp=yes, % adds identity dots to unicode letters; includes dynamic dot placement
+ init=yes, % contextual analysis
+ medi=yes, % contextual analysis
+ fina=yes, % contextual analysis
+ rlig=yes, % indispensable
+ calt=yes, % ayah+numerals
+ salt=yes, % includes manual justification with Tatwiil
+ anum=yes, % replace latin numerals with arabic-script ones
+ ss01=yes, % Allah, Muhammad,
+ ss03=yes, % level-1 stack over Jiim, initial entry only
+ ss10=yes, % basic dipped Miim, initial-entry B_S-stack over Miim
+ ss12=yes, % XBM_im initial-medial entry B_S-stack over Miim,
+ ss15=yes, % full stacked Laam-on-Miim
+ ss16=yes, % initial entry, stacked Ayn-on-Miim
+ ss19=yes, % LM_im
+ ss24=yes, % BR_i_mf, BN_i_mf
+ ss25=yes, % basic LH_im % might merge with ss24
+ ss26=yes, % full Yaa.final special strings: BY_if, BY_mf, LY_mf
+ ss27=yes, % basic thin Miim.final
+ ss31=yes, % basic Raa.final strings: JR and SR
+ ss34=yes, % AyR style % also available in jsnn
+ ss35=yes, % full Kaaf contexts
+ ss36=yes, % full Laam contexts
+ ss37=yes, % Miim-Miim contexts
+ ss38=yes, % basic dipped Haa, B_SH_mm
+ ss41=yes, % high and low Baa strings
+ ss42=yes, % diagonal entry
+ ss43=yes, % initial alternates
+ ss60=yes, %
+ js16=yes, % aesthetic medial Faa/Qaaf
+ kern=yes, % includes kerning of dot-base pairs, and final pairs in continuous strings
+ curs=yes, % we don't curs final pairs, padj for that
+ mark=yes, % vowels
+ mkmk=yes, % stacked vowels
+ tlig=yes]
\definefontfeature
[husayni-tt]
- [analyze=yes,mode=node,
- language=dflt,script=arab,
- ccmp=yes, % adds identity dots to unicode letters; includes dynamic dot placement
- init=yes,medi=yes,fina=yes, % contextual analysis
- rlig=yes, % indispensable
+ [analyze=yes,
+ mode=node,
+ language=dflt,
+ script=arab,
+ ccmp=yes,
+ init=yes,
+ medi=yes,
+ fina=yes,
+ rlig=yes,
fchr=yes,
- kern=yes, % includes kerning of dot-base pairs, and final pairs in continuous strings
- curs=yes, % we don't curs final pairs, padj for that
- mark=yes, % vowels
- mkmk=yes] % stacked vowels
+ kern=yes,
+ curs=yes,
+ mark=yes,
+ mkmk=yes]
\definefontfeature
[husayni-mono]
- [analyze=yes,mode=node,
- language=dflt,script=arab,ccmp=no,
- init=yes,medi=yes,fina=yes,isol=yes,
- rlig=yes,liga=yes,
+ [analyze=yes,
+ mode=node,
+ language=dflt,
+ script=arab,
+ ccmp=no,
+ init=yes,
+ medi=yes,
+ fina=yes,
+ isol=yes,
mset=yes]
-
+
\definedelimitedtext
[ornatequote]
[left={‏\char"FD3F\penalty10000},
- right={‏\char"FD3E\penalty10000}]
-
+ right={‏\char"FD3E\penalty10000}]
+
\definedelimitedtext
[arparenthesis]
[left={‏\char"0028},
- right={‏\char"0029}]
+ right={‏\char"0029}]
\definedelimitedtext
[arquotation]
@@ -143,4 +150,49 @@
[arquote]
[left={‏\symbol[rightquote]},
right={‏\symbol[leftquote]},
- leftmargin=standard] \ No newline at end of file
+ leftmargin=standard]
+
+\definebodyfontenvironment
+ [husayni-default]
+ [default]
+ [interlinespace=4.4ex]
+
+\definefontfallback
+ [husayni-latin]
+ [file:lmroman12-regular*default]
+ [basiclatin,latin-1supplement,latinextended-A,latinextendedadditional]
+ [force=no,
+ rscale=.7]
+
+\definefontfallback
+ [husayni-mono]
+ [file:cour*husayni-mono]
+ [arabic,arabicpresentationformsa,arabicpresentationformsb,arabicsupplement,0x200C,0x200D,0x200E,0x200F]
+ % [force=no]
+
+\definebodyfontenvironment[20.7pt]
+\definebodyfontenvironment[24.8pt]
+\definebodyfontenvironment[29.8pt]
+\definebodyfontenvironment[35.8pt]
+
+\starttypescriptcollection[husayni]
+
+ \starttypescript [naskh] [husayni] [name]
+ \definefontsynonym [Arabic-Light] [name:husayni] [goodies=husayni,features=husayni-default]
+ \definefontsynonym [Arabic-Bold] [name:husayni] [goodies=husayni,features=husayni-default]
+ \definefontsynonym [Arabic-Italic] [name:husayni] [goodies=husayni,features=husayni-default]
+ \definefontsynonym [Arabic-Bold-Italic] [name:husayni] [goodies=husayni,features=husayni-default]
+
+ \definefontsynonym [Serif] [Arabic-Light]
+ \definefontsynonym [SerifItalic] [Arabic-Italic]
+ \definefontsynonym [SerifBold] [Arabic-Bold]
+ \definefontsynonym [SerifBoldItalic] [Arabic-Bold-Italic]
+ \stoptypescript
+
+ \starttypescript [husayni-default]
+ \definetypeface [husayni-default] [rm] [naskh] [husayni] [default] [fallbacks=husayni-latin]
+ \definetypeface [husayni-default] [tt] [mono] [modern] [default] [fallbacks=husayni-latin]
+ \definetypeface [husayni-default] [mm] [math] [xitsbidi] [default]
+ \stoptypescript
+
+\stoptypescriptcollection