From 7c076398e86f30aee6d265a2bf6c982dbac39048 Mon Sep 17 00:00:00 2001 From: be5invis Date: Wed, 22 Jun 2016 18:13:00 +0800 Subject: [PATCH] Added latin ayin --- glyphs/letters-unified-extended.ptl | 507 +++++++++++++++------------- 1 file changed, 266 insertions(+), 241 deletions(-) diff --git a/glyphs/letters-unified-extended.ptl b/glyphs/letters-unified-extended.ptl index ad1068f..12eb0f7 100644 --- a/glyphs/letters-unified-extended.ptl +++ b/glyphs/letters-unified-extended.ptl @@ -10,7 +10,7 @@ export : define [apply] : begin ########################################################################################### sketch include markset.e - + local middle : mix SB RIGHTSB 0.42 local fine : adviceBlackness 3.25 local k1 0.25 @@ -28,9 +28,9 @@ export : define [apply] : begin g4.right.mid (middle - CORRECTION_OMIDS) XO [widths 0 STROKE] bezcontrols (1 - k3) 0 (1 - k1) (1 - k2) 6 g4 (RIGHTSB - OX * 2) 0 [widths.heading 0 fine DOWNWARD] - + set-anchor 'overlay' BASE (middle - OX) (XH * OVERLAYPOS) - + save 'alpha' 0x3B1 save 'latinalpha' 0xAB64 @@ -41,7 +41,7 @@ export : define [apply] : begin include : LeftwardTopSerif (SB * 1.5) top SIDEJUT include : CenterBottomSerif (SB * 1.5 + HVCONTRAST * HALFSTROKE) 0 JUT include : tagged 'serifRT' : DownwardRightSerif (RIGHTSB - OX) top VJUT - + sketch # Gamma include markset.capital include : GammaShape CAP @@ -52,10 +52,10 @@ export : define [apply] : begin include markset.e include : GammaShape XH save 'cyrghe.upright' - + sketch # cyrghe.serbian include glyphs.dotlessi AS_BASE - include glyphs.macronAbove + include glyphs.macronAbove save 'cyrghe.serbian' italic-variant 'cyrghe' 0x433 @@ -64,29 +64,29 @@ export : define [apply] : begin include : GammaShape top eject-contour 'serifRT' include : VBarRight (RIGHTSB - OX) top (top + ACCENT) - + sketch # cyrGe include markset.capital include : CyrGeShape CAP - + save 'cyrGe' 0x490 - + sketch # cyrge include markset.e include : CyrGeShape XH - + save 'cyrge' 0x491 - + sketch # cyrGhayn include glyphs.cyrGhe AS_BASE include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (CAP * (1 - OVERLAYPOS)) - + save 'cyrGhayn' 0x492 - + sketch # cyrghayn.upright include glyphs.'cyrghe.upright' AS_BASE include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (XH * (1 - OVERLAYPOS)) - + save 'cyrghayn.upright' sketch # cyrghayn.italic @@ -94,20 +94,20 @@ export : define [apply] : begin include : FlatSlashShape MIDDLE (XH / 2) (OVERLAYSTROKE / 2) (-0.2) 0.75 save 'cyrghayn.italic' save 'voicedlaryngenalspirant' 0x1D24 - + italic-variant 'cyrghayn' 0x493 sketch # gamma include markset.p - + local xmid : [mix SB RIGHTSB 0.46] + HALFSTROKE include : dispiro g4 (SB + 0.4 * STROKE * HVCONTRAST) (XH - O) [widths.rhs] bezcontrols 0.33 0.17 1 0.62 6 important flat xmid 0 curl xmid DESCENDER [heading DOWNWARD] - + include : dispiro widths.rhs flat RIGHTSB XH [heading DOWNWARD] @@ -132,41 +132,41 @@ export : define [apply] : begin curl RIGHTSB TURN [heading UPWARD] quadcontrols 0 curviness g4 (MIDDLE + sw / 2) CAP [widths (sw * 0.8) 0] - + start-from (MIDDLE - sw / 2) CAP line-to (MIDDLE + sw / 2) CAP line-to MIDDLE (CAP - sw) - + if SLAB : begin include : CenterBottomSerif (SB + sw / 2 * HVCONTRAST) 0 JUT tag-contour 'serif' include : CenterBottomSerif (RIGHTSB - sw / 2 * HVCONTRAST) 0 JUT tag-contour 'serif' - + sketch # Lambda include markset.capital include : LambdaShape STROKE save 'Lambda' 0x39B save 'latinLambda' 0x245 - + sketch # Delta include glyphs.Lambda AS_BASE include : HBar (SB + HALFSTROKE) (RIGHTSB - HALFSTROKE) HALFSTROKE eject-contour 'serif' save 'Delta' 0x394 - + sketch include markset.b - + local xNeck : mix SB RIGHTSB 0.07 local bar : mix 0 XH 0.96 local xOTLeft : mix SB RIGHTSB 0.5 local fine : STROKE * 0.5 - + local sma : SMALLSMOOTHA * bar / XH local smb : SMALLSMOOTHB * bar / XH - + include : dispiro widths.rhs g4 [mix MIDDLE RIGHTSB 0.85] ([mix XH CAP 0.8] - STROKE) [heading LEFTWARD] @@ -186,13 +186,13 @@ export : define [apply] : begin curl.ai (SB + OX) (bar - sma) arcvh g4 xOTLeft (bar - (STROKE - fine) / 2) [widths 0 fine] - + save 'delta' 0x3B4 save 'cyrbe.serbian' save 'latindelta' 0x1E9F - + turned 'turndelta' 0x18D 'delta' MIDDLE (XH / 2) markset.p - + sketch # cyrbe include markset.b include : dispiro @@ -235,17 +235,17 @@ export : define [apply] : begin arcvh flat MIDDLE (midy + (fine - HALFSTROKE)) [widths.heading 0 fine RIGHTWARD] curl midx (midy + (fine - HALFSTROKE)) [heading RIGHTWARD] - + sketch # epsilon include markset.e include : SmallEpsilonShape XH save 'epsilon' 0x3B5 save 'latinepsilon' 0x25B - + sketch # latinEpsilon include markset.capital include : SmallEpsilonShape CAP - + save 'latinEpsilon' 0x190 define [CyrZeShape top hook] : glyph-construction local midx : mix RIGHTSB SB 0.65 @@ -269,7 +269,7 @@ export : define [apply] : begin arcvh flat MIDDLE (midy + (fine - HALFSTROKE)) [widths.heading fine 0 LEFTWARD] curl midx (midy + (fine - HALFSTROKE)) [heading LEFTWARD] - + sketch # cyrZe include markset.capital include : CyrZeShape CAP HOOK @@ -281,7 +281,7 @@ export : define [apply] : begin apply-transform : Translate 0 (XH - CAP) apply-transform : Italify save 'cyrze.BGR' - + sketch # cyrze include markset.e include : CyrZeShape XH @@ -295,7 +295,7 @@ export : define [apply] : begin include glyphs.O AS_BASE include : HBar (SB + STROKE * HVCONTRAST - O * 3) (RIGHTSB - STROKE * HVCONTRAST + O * 3) CAPMIDDLE save 'Theta' 0x398 - + sketch # theta include markset.b include : OShape CAP 0 (SB - O) (RIGHTSB + O) STROKE (SMALLSMOOTHA * 100) (SMALLSMOOTHB * 100) @@ -318,13 +318,13 @@ export : define [apply] : begin arcvh 12 flat (RIGHTSB - (STROKE - [mix DESCENDER STROKE 0.5]) * 1.1) DESCENDER [heading LEFTWARD] curl [Math.min (RIGHTSB - (STROKE - [mix DESCENDER STROKE 0.5]) * 1.1 - 1) [mix SB RIGHTSB 0.5]] DESCENDER [heading LEFTWARD] - + save 'zeta' 0x3B6 - + sketch # xi include markset.if include : HBar SB (RIGHTSB + O) (CAP - HALFSTROKE) - + local xbar : mix SB RIGHTSB 0.85 local ybar : mix 0 CAP 0.55 include : dispiro @@ -358,7 +358,7 @@ export : define [apply] : begin straight.up.end SB SMALLSMOOTHB [widths.heading 0 [adviceBlackness 4] UPWARD] if SLAB : begin include : LeftwardTopSerif SB XH SIDEJUT - + save 'mu' 0x3BC sketch @@ -371,7 +371,7 @@ export : define [apply] : begin include : DownwardRightSerif (RIGHTSB - OX) CAP VJUT include : UpwardLeftSerif (SB + OX) 0 VJUT include : UpwardRightSerif (RIGHTSB - OX) 0 VJUT - + save 'Xi' 0x39E @@ -382,19 +382,19 @@ export : define [apply] : begin include : HBarTop (SB - endexpand) (RIGHTSB + endexpand) top fine include : VBarLeft (SB + shrink) bottom (top - fine / 2) fine include : VBarRight (RIGHTSB - shrink) bottom (top - fine / 2) fine - + if (!noserif && SLAB) : begin include : CenterBottomSerif (SB + shrink + fine * 0.5 * HVCONTRAST) bottom JUT fine include : CenterBottomSerif (RIGHTSB - shrink - fine * 0.5 * HVCONTRAST) bottom JUT fine include : CenterTopSerif (SB + shrink + fine * 0.5 * HVCONTRAST) top JUT fine include : CenterTopSerif (RIGHTSB - shrink - fine * 0.5 * HVCONTRAST) top JUT fine - + sketch # Pi include markset.capital include : PiShape CAP 0 (shrinkrate -- 0) save 'Pi' 0x3A0 save 'cyrPe' 0x41F - + sketch # cyrpe.upright include markset.e include : PiShape XH 0 @@ -410,17 +410,17 @@ export : define [apply] : begin include markset.e include : PiShape XH 0 (noserif -- true) (shrinkrate -- 0.06) save 'pi' 0x3C0 - + list PiShape define [SigmaShape top bottom _fine] : glyph-construction local cor 1.15 local fine : fallback _fine STROKE - + include : HBarTop SB RIGHTSB top fine include : HBarBottom SB RIGHTSB bottom fine - + local midx : mix SB RIGHTSB 0.4 start-from SB (bottom + fine) line-to (SB + fine * cor) (bottom + fine) @@ -429,19 +429,19 @@ export : define [apply] : begin line-to SB (top - fine) line-to midx [mix bottom top 0.5] reverse-last - + if SLAB : begin include : DownwardRightSerif RIGHTSB top VJUT include : UpwardRightSerif RIGHTSB bottom VJUT - + sketch # Sigma set-width WIDTH include markset.capital - + include : SigmaShape CAP 0 save 'Sigma' 0x3A3 save 'latinSigma' 0x1A9 - + list SigmaShape @@ -453,13 +453,13 @@ export : define [apply] : begin include : OShape y2 y1 SB RIGHTSB MVERTSTROKE SMOOTHA SMOOTHB include : VBar MIDDLE y1 y2 MVERTSTROKE include : VBar MIDDLE (y2 - HALFSTROKE) CAP - + if SLAB : begin include : tagged 'serifMT' : CenterTopSerif MIDDLE CAP JUT include : tagged 'serifMB' : CenterBottomSerif MIDDLE 0 JUT save 'Phi' 0x3A6 save 'cyrEf' 0x424 - + sketch # taillessphi include markset.e local x0 : mix SB RIGHTSB 0.1 @@ -480,16 +480,16 @@ export : define [apply] : begin archv flat (MIDDLE - MVERTSTROKE / 2 * HVCONTRAST) y3 curl (MIDDLE - MVERTSTROKE / 2 * HVCONTRAST) (MVERTSTROKE * 0.2) [heading DOWNWARD] - + save 'taillessphi' 0x2C77 - + sketch # phi include markset.p include glyphs.taillessphi include : VBar MIDDLE DESCENDER (MVERTSTROKE * 0.2) - + save 'phi' 0x3C6 - + sketch # varphi include markset.if local y1 0 @@ -498,9 +498,9 @@ export : define [apply] : begin include : OShape y2 y1 SB RIGHTSB MVERTSTROKE nothing nothing nothing true include : VBar MIDDLE y1 y2 MVERTSTROKE include : VBar MIDDLE (y2 - HALFSTROKE) CAP - + save 'varphi' 0x3D5 - + sketch # cyref include glyphs.varphi AS_BASE if SLAB : begin @@ -530,9 +530,9 @@ export : define [apply] : begin include : tagged 'serifRT' : RightwardTopSerif RIGHTSB y2 SIDEJUT include : tagged 'serifMT' : CenterTopSerif MIDDLE CAP JUT include : tagged 'serifMB' : CenterBottomSerif MIDDLE 0 JUT - + save 'Psi' 0x3A8 - + sketch # smcpPsi include markset.e local y : XH * 0.3 @@ -552,9 +552,9 @@ export : define [apply] : begin include : tagged 'serifLT' : LeftwardTopSerif SB y2 SIDEJUT include : tagged 'serifRT' : RightwardTopSerif RIGHTSB y2 SIDEJUT include : tagged 'serifMB' : CenterBottomSerif MIDDLE 0 JUT - + save 'smcpPsi' 0x1D2A - + sketch # psi include markset.if local fine : adviceBlackness 3.5 @@ -598,20 +598,20 @@ export : define [apply] : begin include : HBar SB x1 HALFSTROKE include : VBarLeft x2 0 (yattach) fine include : HBar x2 RIGHTSB HALFSTROKE - + sketch # latinUpsilon1 include markset.capital include : OmegaShape CAP 0.08 SMOOTHA SMOOTHB save 'Omega' 0x3A9 - + include : FlipAround MIDDLE (CAP / 2) save 'latinUpsilon1' 0x1B1 - + sketch # latinupsilon1 include markset.e include : OmegaShape XH 0.08 SMALLSMOOTHA SMALLSMOOTHB save 'latinomega' 0xAB65 - + include : FlipAround MIDDLE (XH / 2) save 'latinupsilon1' 0x28A @@ -626,7 +626,7 @@ export : define [apply] : begin local x1 : SB + OX * 2 local y3 : XH / 2 local y4 : XH * 0.65 - + include : dispiro widths.lhs fine g4 x0 y0 @@ -647,15 +647,15 @@ export : define [apply] : begin flat (MIDDLE - (mfine - fine / 2) * HVCONTRAST) y3 [widths.heading 0 mfine UPWARD] curl (MIDDLE - (mfine - fine / 2) * HVCONTRAST) y4 [heading UPWARD] end [function : set this.angles 4] - + save 'omega' 0x3C9 - + sketch # pomega include glyphs.omega AS_BASE include : HBar SB RIGHTSB (XH - HALFSTROKE) - + save 'pomega' 0x3D6 - + sketch # closeomega include markset.e local fine : adviceBlackness 3.25 @@ -696,7 +696,7 @@ export : define [apply] : begin local left : fallback _left SB local right : fallback _right RIGHTSB local jut : fallback _jut JUT - + local bowl : top * 0.55 + HALFSTROKE local turnRadius : bowl * 0.45 local turnbottom : mix 0 bowl (SMOOTHA / (SMOOTHA + SMOOTHB)) @@ -716,15 +716,15 @@ export : define [apply] : begin tag-contour 'serifYeriLB' include : CenterTopSerif (left + fine / 2 * HVCONTRAST) top jut tag-contour 'serifYeriLT' - + define [RevCyrYeriShape top _left _right _fine _jut] : glyph-construction local fine : fallback _fine STROKE local left : fallback _left SB local right : fallback _right RIGHTSB local jut : fallback _jut JUT - + local bowl : top * 0.55 + HALFSTROKE - + local turnRadius : bowl * 0.45 local turnbottom : mix 0 bowl (SMOOTHB / (SMOOTHA + SMOOTHB)) local trShrink [Math.pow ((right - left) / (RIGHTSB - SB)) 0.5] @@ -743,19 +743,19 @@ export : define [apply] : begin tag-contour 'serifYeriRB' include : CenterTopSerif (right - fine / 2 * HVCONTRAST) top jut tag-contour 'serifYeriRT' - + sketch # cyrYeri include markset.capital include : CyrYeriShape CAP SB RIGHTSB - + save 'cyrYeri' 0x42C - + sketch # cyryeri include markset.e include : CyrYeriShape XH SB RIGHTSB - + save 'cyryeri' 0x44C - + sketch # cyrBe include glyphs.cyrYeri AS_BASE include : HBar SB [mix SB RIGHTSB 0.9] (CAP - HALFSTROKE) @@ -763,7 +763,7 @@ export : define [apply] : begin include : DownwardRightSerif [mix SB RIGHTSB 0.9] CAP VJUT save 'cyrBe' 0x411 save 'latinBe' 0x182 - + sketch # ZhuangToneSix include glyphs.cyrYeri AS_BASE eject-contour 'serifYeriLT' @@ -774,16 +774,16 @@ export : define [apply] : begin line-to SB (CAP - s * 2) line-to (SB - O) (CAP - s * 2) reverse-last - + save 'ZhuangToneSix' 0x184 - + sketch # latinDe include markset.capital include : RevCyrYeriShape CAP include : HBarTop [mix RIGHTSB SB 0.9] (RIGHTSB + O) CAP if SLAB : begin include : DownwardLeftSerif [mix RIGHTSB SB 0.9] CAP VJUT - + save 'latinDe' 0x18B define [CyrYerShape top] : glyph-construction local left : if SLAB ([mix SB RIGHTSB 0.35] - MVERTSTROKE / 2 * HVCONTRAST) [mix SB RIGHTSB 0.1] @@ -792,17 +792,17 @@ export : define [apply] : begin include : HBarTop barleft (STROKE * 0.1 + left) top if SLAB : begin include : DownwardLeftSerif barleft top VJUT (MVERTSTROKE / HVCONTRAST) - + sketch # cyrYer include markset.capital include : CyrYerShape CAP - + save 'cyrYer' 0x42A - + sketch # cyryer include markset.e include : CyrYerShape XH - + save 'cyryer' 0x44A define [CyrYeryShape top] : glyph-construction include : CyrYeriShape top (SB + O) [mix (RIGHTSB - MVERTSTROKE * HVCONTRAST) (MIDDLE + MVERTSTROKE / 2 * HVCONTRAST) 0.5] MVERTSTROKE (JUT * 0.75) @@ -810,17 +810,17 @@ export : define [apply] : begin if SLAB : begin include : CenterTopSerif (RIGHTSB - O - MVERTSTROKE / 2 * HVCONTRAST) top (JUT * 0.75) include : CenterBottomSerif (RIGHTSB - O - MVERTSTROKE / 2 * HVCONTRAST) 0 (JUT * 0.75) - + sketch # cyrYery include markset.capital include : CyrYeryShape CAP - + save 'cyrYery' 0x42B - + sketch # cyryery include markset.e include : CyrYeryShape XH - + save 'cyryery' 0x44B list CyrYeriShape RevCyrYeriShape @@ -842,22 +842,22 @@ export : define [apply] : begin flat (RIGHTSB - halftopstroke) top [widths.heading 0 topstroke DOWNWARD] curl (SB + halftopstroke) 0 [widths.heading topstroke 0 DOWNWARD] include : AICyrISerifs top - + sketch # cyrI include markset.capital include : CyrIShape CAP - + save 'cyrI' 0x418 - + sketch # cyri.upright include markset.e include : CyrIShape XH - + save 'cyri.upright' sketch # cyri.italic include glyphs.u AS_BASE - + save 'cyri.italic' italic-variant 'cyri' 0x438 @@ -872,13 +872,13 @@ export : define [apply] : begin include : AIVSerifs top include : LeftwardBottomSerif SB 0 SIDEJUT include : RightwardBottomSerif RIGHTSB 0 SIDEJUT - + sketch # cyrTse include markset.capital include : CyrTseShape CAP - + save 'cyrTse' 0x426 - + sketch # cyrtse.upright include markset.e include : CyrTseShape XH @@ -892,7 +892,7 @@ export : define [apply] : begin save 'cyrtse.italic' italic-variant 'cyrtse' 0x446 - + define [CyrDzheShape top] : glyph-construction include : VBarLeft SB 0 top include : HBarBottom SB RIGHTSB 0 @@ -902,13 +902,13 @@ export : define [apply] : begin include : AIVSerifs top include : LeftwardBottomSerif SB 0 SIDEJUT include : RightwardBottomSerif RIGHTSB 0 SIDEJUT - + sketch # cyrDzhe include markset.if include : CyrDzheShape CAP - + save 'cyrDzhe' 0x40F - + sketch # cyrdzhe.upright include markset.p include : CyrDzheShape XH @@ -920,7 +920,7 @@ export : define [apply] : begin save 'cyrdzhe.italic' italic-variant 'cyrdzhe' 0x45F - + define [CyrDeShape top] : glyph-construction local descenderOverflow : if SLAB SIDEJUT ((RIGHTSB - SB) * 0.075) @@ -932,7 +932,7 @@ export : define [apply] : begin include : halfXStrand (topleft + STROKE * HVCONTRAST) top (cutleft + HALFSTROKE * HVCONTRAST * 0.8) HALFSTROKE 0.1 0.75 0.5 include : VBarLeft (cutleft - descenderOverflow) (-LONGJUT + HALFSTROKE) 0 include : VBarRight (cutright + descenderOverflow) (-LONGJUT + HALFSTROKE) 0 - + if SLAB : then include : dispiro widths.rhs @@ -940,17 +940,17 @@ export : define [apply] : begin curl (cutright + descenderOverflow) top : else include : HBarTop topleft cutright top - + sketch # cyrDe include markset.if include : CyrDeShape CAP - + save 'cyrDe' 0x414 - + sketch # cyrde.upright include markset.e include : CyrDeShape XH - + save 'cyrde.upright' sketch # cyrde.italic @@ -971,7 +971,7 @@ export : define [apply] : begin curl (RIGHTSB - OX) (XH - SMALLSMOOTHB) quadcontrols 0 0.8 g4 (SB + STROKE * 1.1) CAP - + save 'cyrde.italic' italic-variant 'cyrde' 0x434 @@ -983,7 +983,7 @@ export : define [apply] : begin local cutright : mix SB RIGHTSB 0.95 include : VBarRight cutright 0 top include : HBar cutleft cutright (top - HALFSTROKE) - include : LegShape + include : LegShape ztop -- (cutleft <> top) zbot -- ([mix SB 0 [if SLAB 0.5 0.25]] <> 0) xb -- cutleft2 @@ -991,13 +991,13 @@ export : define [apply] : begin include : RightwardTopSerif cutright top SIDEJUT include : LeftwardTopSerif cutleft top SIDEJUT include : CenterBottomSerif (cutright - HALFSTROKE * HVCONTRAST) 0 JUT - + sketch # cyrEl include markset.capital include : CyrElShape CAP - + save 'cyrEl' 0x41B - + sketch # cyrel include markset.e include : CyrElShape XH @@ -1021,13 +1021,13 @@ export : define [apply] : begin include : CyrAngleShape include : VBar MIDDLE 0 midtop fine include : HBar midx (WIDTH - midx) (top / 2) fine - + sketch # cyrZhe include markset.capital include : CyrZheShape CAP CAP save 'cyrZhe' 0x416 composite nothing glyphs.cyrZhe [CyrDescender (RIGHTSB - O * 4) nothing true] [into-unicode 0x496] - + sketch # cyrzhe include markset.e include : CyrZheShape XH XH @@ -1051,18 +1051,18 @@ export : define [apply] : begin line-to (midx + fine * cor) yb line-to midx yb reverse-last - + start-from (midx2 + fine * cor) yb line-to (SB + fine * cor + O * tovershoot) top line-to (SB + O * tovershoot) top line-to midx2 yb reverse-last - + start-from (WIDTH - SB - O * 4) 0 line-to (WIDTH - SB - fine * cor - O * 4) 0 line-to (WIDTH - midx - fine * cor) yb line-to (WIDTH - midx) yb - + start-from (WIDTH - midx2 - fine * cor) yb line-to (WIDTH - SB - fine * cor - O * tovershoot) top line-to (WIDTH - SB - O * tovershoot) top @@ -1115,13 +1115,13 @@ export : define [apply] : begin include : tagged 'serifLB' : LeftwardBottomSerif SB 0 SIDEJUT include : tagged 'serifRT' : RightwardTopSerif RIGHTSB top SIDEJUT include : tagged 'serifRB' : RightwardBottomSerif RIGHTSB 0 SIDEJUT - + sketch # cyrSha include markset.capital include : CyrShaShape CAP - + save 'cyrSha' 0x428 - + sketch # cyrsha.upright include markset.e include : CyrShaShape XH @@ -1129,18 +1129,18 @@ export : define [apply] : begin turned 'cyrsha.italic' null 'm' MIDDLE (XH / 2) italic-variant 'cyrsha' 0x448 - + define [CyrShchaShape top] : glyph-construction include : CyrShaShape top #eject-contour 'serifRB' include : CyrDescender RIGHTSB 0.05 - + sketch # cyrShcha include markset.capital include : CyrShchaShape CAP - + save 'cyrShcha' 0x429 - + sketch # cyrshcha.upright include markset.e include : CyrShchaShape XH @@ -1153,7 +1153,7 @@ export : define [apply] : begin save 'cyrshcha.italic' italic-variant 'cyrshcha' 0x449 - + # Serbian pe and te sketch # cyrte.serbian include glyphs.'cyrsha.italic' AS_BASE @@ -1177,21 +1177,21 @@ export : define [apply] : begin include : CenterTopSerif (RIGHTSB - HALFSTROKE * HVCONTRAST) top JUT include : CenterTopSerif (SB + HALFSTROKE * HVCONTRAST) top JUT include : CenterBottomSerif (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 JUT - + sketch # cyrChe include markset.capital include : CyrCheShape CAP [if SLAB 0.45 0.35] save 'cyrChe' 0x427 composite nothing glyphs.cyrChe [CyrDescender RIGHTSB] [into-unicode 0x4B6] - + sketch # cyrche include markset.e include : CyrCheShape XH [if SLAB 0.45 0.4] save 'cyrche' 0x447 composite nothing glyphs.cyrche [CyrDescender RIGHTSB] [into-unicode 0x4B7] - + turned 'cyrShha' 0x4BA 'cyrChe' MIDDLE (CAP / 2) - + sketch # cyrChevbar include glyphs.cyrChe AS_BASE local yc (CAP * [if SLAB 0.45 0.35] + STROKE * 0.1) @@ -1210,21 +1210,21 @@ export : define [apply] : begin include : VBarLeft (SB + O) 0 xtop MVERTSTROKE include : OShape top 0 xm (RIGHTSB - OX) MVERTSTROKE (sma * 0.8) (smb * 0.8) include : HBar (SB + O + 1) xm (top / 2) - + if SLAB : begin include : CenterTopSerif (SB + O + MVERTSTROKE / 2 * HVCONTRAST) top (JUT * 0.75) include : CenterBottomSerif (SB + O + MVERTSTROKE / 2 * HVCONTRAST) 0 (JUT * 0.75) - + sketch # cyrYu include markset.capital include : CyrYuShape CAP CAP SMOOTHA SMOOTHB save 'cyrYu' 0x42E - + sketch # cyryu include markset.e include : CyrYuShape XH XH SMALLSMOOTHA SMALLSMOOTHB save 'cyryu' 0x44E - + sketch # cyryu.BGR include markset.e include : CyrYuShape XH CAP SMALLSMOOTHA SMALLSMOOTHB @@ -1243,13 +1243,13 @@ export : define [apply] : begin include : HBarTop xlefttop MIDDLE top if SLAB : begin include : LeftwardTopSerif xlefttop top (jut - MVERTSTROKE / 2 * HVCONTRAST) - + sketch # cyrLje include markset.capital include : CyrLjeShape CAP - + save 'cyrLje' 0x409 - + sketch # cyrlje include markset.e include : CyrLjeShape XH @@ -1264,13 +1264,13 @@ export : define [apply] : begin if SLAB : begin include : CenterTopSerif (SB + MVERTSTROKE / 2 * HVCONTRAST) top jut include : CenterBottomSerif (SB + MVERTSTROKE / 2 * HVCONTRAST) 0 jut - + sketch # cyrNje include markset.capital include : CyrNjeShape CAP - + save 'cyrNje' 0x40A - + sketch # cyrnje include markset.e include : CyrNjeShape XH @@ -1279,10 +1279,10 @@ export : define [apply] : begin sketch # cyrTshe include markset.capital - + local left : [mix SB RIGHTSB 0.15] + OX local right : RIGHTSB - OX - + include : nShoulder left -- (left + STROKE * HVCONTRAST) right -- right @@ -1291,19 +1291,19 @@ export : define [apply] : begin widths.rhs flat (SB + OX) CAP curl [mix left RIGHTSB 0.475] CAP - + if SLAB : begin include : CenterBottomSerif (left + HVCONTRAST * HALFSTROKE) 0 JUT include : CenterBottomSerif (right - HVCONTRAST * HALFSTROKE) 0 JUT - + save 'cyrTshe' 0x40B - + sketch # cyrDje include markset.capital - + local left : [mix SB RIGHTSB 0.15] + OX local right: RIGHTSB - OX * 1.5 - + include : nShoulder left -- (left + STROKE * HVCONTRAST) right -- right @@ -1317,12 +1317,12 @@ export : define [apply] : begin flat (SB + OX) CAP curl [mix left RIGHTSB 0.475] CAP include : VerticalHook (right - HALFSTROKE * HVCONTRAST) (HOOK + HALFSTROKE + O) [Math.max ((left - right) / 2 + HALFSTROKE) (-HOOK * 1.2)] HOOK - + if SLAB : begin include : LeftwardBottomSerif left 0 SIDEJUT - + save 'cyrDje' 0x402 - + sketch # cyrdje include markset.if include glyphs.cyrtshe @@ -1361,7 +1361,7 @@ export : define [apply] : begin corner tl (tm - STROKE) [heading UPWARD] corner (RIGHTSB - HALFSTROKE * 1.2 - OX) t [heading UPWARD] save 'eszet' 0xDF - + sketch # Eszet include markset.capital include : dispiro @@ -1389,10 +1389,10 @@ export : define [apply] : begin sketch # AE set-width WIDTH include markset.capital - + local eleft : MIDDLE - MVERTSTROKE * 0.25 local turn : XH * 0.1 - + # A half include : dispiro widths.rhs MVERTSTROKE @@ -1400,12 +1400,12 @@ export : define [apply] : begin curl SB (CAP * 0.1) [heading UPWARD] quadcontrols 0 0.3 6 unimportant g4 (eleft - HALFSTROKE) CAP [widths.rhs (MVERTSTROKE * 0.8)] - + start-from (eleft - HALFSTROKE) CAP line-to eleft CAP line-to eleft (CAP - MVERTSTROKE) include : HBarTop ([mix SB (eleft - HALFSTROKE) (1/6)] + MVERTSTROKE * 0.5 * HVCONTRAST) (eleft + MVERTSTROKE / 2) (XH / 2) MVERTSTROKE - + # E half include : VBarLeft eleft 0 CAP MVERTSTROKE include : HBarTop (eleft - O) RIGHTSB CAP @@ -1417,12 +1417,12 @@ export : define [apply] : begin include : UpwardRightSerif RIGHTSB 0 VJUT MVERTSTROKE save 'AE' 0xC6 save 'cyrAE' 0x4D4 - + define [OEShape top] : glyph-construction local eleft MIDDLE - + # O half - + include : dispiro widths.lhs MVERTSTROKE 0 straight.left.start eleft top [heading LEFTWARD] @@ -1431,33 +1431,33 @@ export : define [apply] : begin curl SB SMOOTHB arcvh straight.right.end eleft 0 [heading RIGHTWARD] - + # E half include : VBarLeft eleft 0 top MVERTSTROKE include : HBarTop (eleft - O) RIGHTSB top include : HBar (eleft - O) (RIGHTSB - MVERTSTROKE / 4) (top * 0.54) include : HBarBottom (eleft - O) RIGHTSB 0 - + if SLAB : begin include : DownwardRightSerif RIGHTSB top VJUT MVERTSTROKE include : UpwardRightSerif RIGHTSB 0 VJUT MVERTSTROKE - + sketch # OE set-width WIDTH include markset.capital include : OEShape CAP save 'OE' 0x152 - + sketch # smcpOE include markset.e include : OEShape XH - + save 'smcpOE' 0x276 define aeepart : glyph-construction local eLeft : MIDDLE - MVERTSTROKE / 2 * HVCONTRAST + 0.1 local eMiddle : [mix eLeft (RIGHTSB - OX * 2) 0.5] - MVERTSTROKE * TANSLANT local barbottom (XH * EBARPOS - HALFSTROKE) - + local sma : SMALLSMOOTHA * 0.6 local smb : SMALLSMOOTHB * 0.6 include : dispiro @@ -1472,16 +1472,16 @@ export : define [apply] : begin hookend O true MVERTSTROKE g4 (RIGHTSB - OX * 2) (AHOOK + MVERTSTROKE * TANSLANT) [heading UPWARD] include : HBarBottom (eLeft + MVERTSTROKE / 2) (RIGHTSB - OX * 2 - MVERTSTROKE / 2) barbottom MVERTSTROKE - + define aeapart : glyph-construction local bartop (XH * OVERLAYPOS * 1.02 + HALFSTROKE) local abarRight : MIDDLE + MVERTSTROKE / 2 * HVCONTRAST - 0.1 local lowmiddle : mix (SB + OX * 2) abarRight 0.5 local barsmooth : mix SB abarRight 0.7 - + local sma : SMALLSMOOTHA * 0.6 local smb : SMALLSMOOTHB * 0.6 - + include : dispiro widths.rhs MVERTSTROKE g4 (SB + OX) (XH - AHOOK - MVERTSTROKE * TANSLANT) [heading UPWARD] @@ -1495,11 +1495,11 @@ export : define [apply] : begin arcvh flat barsmooth bartop curl (abarRight - 1) bartop [heading RIGHTWARD] - + define oeopart : glyph-construction local abarRight : MIDDLE + MVERTSTROKE / 2 * HVCONTRAST include : OShape XH 0 (SB + OX) (abarRight + OX) MVERTSTROKE (SMALLSMOOTHA * 0.6) (SMALLSMOOTHB * 0.6) - + sketch # ae set-width WIDTH include markset.e @@ -1508,8 +1508,8 @@ export : define [apply] : begin save 'ae' 0xE6 save 'cyrae' 0x4D5 turned nothing 0x1D02 'ae' MIDDLE (XH / 2) - - + + sketch # oe set-width WIDTH include markset.e @@ -1517,7 +1517,7 @@ export : define [apply] : begin include oeopart save 'oe' 0x153 turned nothing 0x1D14 'oe' MIDDLE (XH / 2) - + sketch # db set-width WIDTH include markset.b @@ -1527,9 +1527,9 @@ export : define [apply] : begin include : VBar MIDDLE (XH / 2) CAP MVERTSTROKE if SLAB : begin include : LeftwardTopSerif (MIDDLE - MVERTSTROKE / 2 * HVCONTRAST) CAP SIDEJUT - + save 'db' 0x238 - + sketch # qp set-width WIDTH include markset.p @@ -1539,9 +1539,9 @@ export : define [apply] : begin include : VBar MIDDLE DESCENDER (XH / 2) MVERTSTROKE if SLAB : begin include : CenterBottomSerif MIDDLE DESCENDER JUT - + save 'qp' 0x239 - + sketch # OU include markset.capital include : OShape (CAP * BARPOS + HALFSTROKE) 0 SB RIGHTSB nothing SMOOTHA SMOOTHB @@ -1554,9 +1554,9 @@ export : define [apply] : begin archv flat RIGHTSB (CAP * BARPOS - O - HALFSTROKE + SMOOTHA) [widths.lhs] curl RIGHTSB CAP [heading UPWARD] - + save 'OU' 0x222 - + sketch # ou include markset.b local bar : linreg 18 (XH * 0.9) 108 XH STROKE @@ -1570,9 +1570,9 @@ export : define [apply] : begin archv flat RIGHTSB (bar - O - STROKE + SMOOTHA) [widths.lhs] curl RIGHTSB CAP [heading UPWARD] - + save 'ou' 0x223 - + sketch # IJ include markset.capital include : create-glyph : glyph-construction @@ -1581,9 +1581,9 @@ export : define [apply] : begin include : create-glyph : glyph-construction include glyphs.'J.shorthook' apply-transform : Translate JBALANCE2 0 - + save 'IJ' 0x132 - + sketch # ij include markset.if include : create-glyph : glyph-construction @@ -1603,14 +1603,14 @@ export : define [apply] : begin local ezhLeft : mix SB RIGHTSB [fallback pleft 0.2] local ezhRight : mix SB RIGHTSB 0.925 include : HBarTop SB ezhRight top - + start-from ezhLeft yMidBar line-to (ezhLeft + STROKE * cor) (yMidBar - HALFSTROKE) line-to (ezhLeft + STROKE * cor) yMidBar line-to ezhRight (top - STROKE) line-to (ezhRight - STROKE * cor) (top - STROKE) reverse-last - + include : dispiro widths.rhs flat ezhLeft yMidBar [heading RIGHTWARD] @@ -1620,23 +1620,23 @@ export : define [apply] : begin if hookless {} : list hookend bot g4 SB (bot + HOOK * (top - bot) / [fallback para.cap0 CAP]) - + if SLAB : begin include : DownwardLeftSerif SB top VJUT - + define [RevEzhShape top bot pleft hookless] : glyph-construction local cor : 1.2 * HVCONTRAST local yMidBar : mix bot top 0.6 local ezhRight : mix RIGHTSB SB [fallback pleft 0.2] local ezhLeft : mix RIGHTSB SB 0.925 include : HBarTop ezhLeft RIGHTSB top - + start-from ezhRight yMidBar line-to (ezhRight - STROKE * cor) (yMidBar - HALFSTROKE) line-to (ezhRight - STROKE * cor) yMidBar line-to ezhLeft (top - STROKE) line-to (ezhLeft + STROKE * cor) (top - STROKE) - + include : dispiro widths.lhs flat ezhRight yMidBar [heading LEFTWARD] @@ -1648,40 +1648,40 @@ export : define [apply] : begin g4 RIGHTSB (bot + HOOK * ((top - bot) / CAP)) if SLAB : begin include : DownwardRightSerif RIGHTSB top VJUT - + sketch # Ezh set-width WIDTH include markset.capital include : EzhShape CAP 0 save 'Ezh' 0x1B7 save 'cyrEzh' 0x4E0 - + sketch # ezh set-width WIDTH include markset.p include : EzhShape XH DESCENDER save 'ezh' 0x292 save 'cyrezh' 0x4E1 - + sketch # revEzh include markset.capital include : RevEzhShape CAP 0 - + save 'revEzh' 0x1B8 - + sketch # revezh include markset.p include : RevEzhShape XH DESCENDER - + save 'revezh' 0x1B9 - + sketch # lyogh include markset.if include : EzhShape XH DESCENDER 0.4 include : VBarLeft SB (XH * 0.1) CAP - + save 'lyogh' 0x26E - + sketch # ezhtail local b : mix DESCENDER XH 0.25 include : EzhShape XH b nothing 0.5 @@ -1697,9 +1697,9 @@ export : define [apply] : begin arcvh flat [mix SB RIGHTSB 0.4] (DESCENDER + STROKE) curl RIGHTSB (DESCENDER + STROKE) - + save 'ezhtail' 0x1BA - + sketch # ezhcurlytail include markset.e local p (SMALLSMOOTHB / (SMALLSMOOTHA + SMALLSMOOTHB)) @@ -1728,10 +1728,10 @@ export : define [apply] : begin curl (MIDDLE + HALFSTROKE * HVCONTRAST) 0 [heading DOWNWARD] if SLAB : begin include : CenterBottomSerif MIDDLE 0 JUT - + save 'glottalstop' 0x294 save 'capglottalstop' 0x241 - + sketch # revglottalstop include markset.b include : dispiro @@ -1758,9 +1758,9 @@ export : define [apply] : begin curl (MIDDLE + HALFSTROKE * HVCONTRAST) 0 [heading DOWNWARD] if SLAB : begin include : CenterBottomSerif MIDDLE 0 JUT - + save 'smallglottalstop' 0x242 - + sketch # invglottalstopbar include markset.e local smooth : adviceGlottalStopSmooth XH (-1 - TANSLANT * (15 - (WIDTH / 500) * 12) * [clamp 0 1 : linreg 126 1 135 0.5 STROKE]) @@ -1774,9 +1774,9 @@ export : define [apply] : begin curl (MIDDLE - HALFSTROKE * HVCONTRAST) 0 [heading DOWNWARD] include : HOverlayBar (MIDDLE - LONGJUT * 0.6) (MIDDLE + LONGJUT * 0.6) (XH * 0.25) include : FlipAround MIDDLE (XH / 2) - + save 'invglottalstopbar' 0x1BE - + sketch # fineglottalstop include markset.b local fine : markHalfStroke * 2 @@ -1790,7 +1790,7 @@ export : define [apply] : begin curl (MIDDLE + fine / 2 * HVCONTRAST) 0 [heading DOWNWARD] if SLAB : begin include : CenterBottomSerif MIDDLE 0 JUT fine - + save 'fineglottalstop' sketch # finerevglottalstop @@ -1813,9 +1813,9 @@ export : define [apply] : begin sketch # glottalstopbar include glyphs.glottalstop AS_BASE include : HOverlayBar (MIDDLE - LONGJUT * 0.6) (MIDDLE + LONGJUT * 0.6) (CAP * 0.25) - + save 'glottalstopbar' 0x2A1 - + sketch # revglottalstopbar include glyphs.revglottalstop AS_BASE include : HOverlayBar (MIDDLE - LONGJUT * 0.6) (MIDDLE + LONGJUT * 0.6) (CAP * 0.25) @@ -1824,7 +1824,7 @@ export : define [apply] : begin sketch include markset.b - + include : OShape (CAP * 0.6) 0 SB RIGHTSB local ymiddlea : (CAP * 0.6 + SMALLSMOOTHA - SMALLSMOOTHB) / 2 include : dispiro @@ -1832,22 +1832,22 @@ export : define [apply] : begin g4.up.start (RIGHTSB - OX) ymiddlea quadcontrols 0 0.8 g4 (SB + STROKE * 1.1) CAP - + include : dispiro widths.center OVERLAYSTROKE flat [mix SB RIGHTSB 0.1] [mix XH CAP (-0.1)] curl [mix SB RIGHTSB 0.95] [mix XH CAP 0.3] - + save 'eth' 0xF0 sketch # Thorn set-width WIDTH include markset.capital - + local bowlTop (CAP * 0.81) local bowlBottom (CAP * 0.19) - + local turn : mix bowlTop bowlBottom (SMOOTHB / (SMOOTHA + SMOOTHB)) local turnRadius : (bowlTop - bowlBottom) / 2 include : dispiro @@ -1859,17 +1859,17 @@ export : define [apply] : begin arcvh flat (RIGHTSB - turnRadius + CORRECTION_OMIDS) bowlBottom curl (SB * 1.25 + 1) bowlBottom [heading LEFTWARD] - + include : VBarLeft (SB * 1.25) 0 CAP if SLAB : begin include : CenterBottomSerif (SB * 1.25 + HALFSTROKE * HVCONTRAST) 0 JUT include : CenterTopSerif (SB * 1.25 + HALFSTROKE * HVCONTRAST) CAP JUT - + save 'Thorn' 0xDE save 'Sho' 0x3F7 - + sketch # thorn - + include : create-glyph : glyph-construction include glyphs.b eject-contour 'serifLB' @@ -1878,7 +1878,7 @@ export : define [apply] : begin eject-contour 'bowl' eject-contour 'serifLT' include markset.if - + save 'thorn' 0xFE save 'sho' 0x3F8 @@ -1900,9 +1900,9 @@ export : define [apply] : begin include : CenterTopSerif (SB + O + MVERTSTROKE / 2 * HVCONTRAST) CAP jut include : CenterBottomSerif (SB + O + MVERTSTROKE / 2 * HVCONTRAST) 0 jut include : CenterTopSerif MIDDLE CAP jut - + save 'Hwair' 0x1F6 - + sketch # hwair include : VBarLeft (SB + O) 0 CAP MVERTSTROKE include : dispiro @@ -1934,10 +1934,10 @@ export : define [apply] : begin curl (MIDDLE + 1) (CAP - SMALLSMOOTHB * 0.6) [heading RIGHTWARD] alsothru 0.5 0.15 g4 (RIGHTSB - O * 2 - MVERTSTROKE * HVCONTRAST) CAP [widths 0 MVERTSTROKE] - - + + save 'Gha' 0x1A2 - + sketch # gha include markset.p local abarRight : MIDDLE + MVERTSTROKE / 2 * HVCONTRAST @@ -1963,13 +1963,13 @@ export : define [apply] : begin g4 (RIGHTSB - O) [mix bot top 0.7] alsothru 0.25 0.45 g4 (SB + STROKE * HVCONTRAST) [mix bot top 0.1] - + sketch # Wynn include markset.capital include : WynnShape 0 CAP - + save 'Wynn' 0x1F7 - + sketch # wynn include markset.p include : WynnShape DESCENDER XH @@ -1990,23 +1990,22 @@ export : define [apply] : begin g4 RIGHTSB ([mix bot (top - SMOOTHB) 0.475]) alsothruthem {{0.25 0.6} {0.5 0.81}} g4 SB (bot + O) - + sketch # Yogh include markset.capital include : YoghShape CAP 0 - + save 'Yogh' 0x21C - + sketch # yogh include markset.p include : YoghShape XH DESCENDER save 'yogh' 0x21D - define [RamsHornShape bottom top] : glyph-construction local hf : [adviceBlackness 4] / 2 local d : hf * 2 + WIDTH * 0.05 - + include : dispiro widths.center g4 (SB + HALFSTROKE * HVCONTRAST + O) top [heading DOWNWARD] @@ -2018,24 +2017,50 @@ export : define [apply] : begin g4 (MIDDLE - d + hf) (bottom + d * (1 + TANSLANT * 0.5)) quadcontrols 0 0.3 16 g4 (RIGHTSB - HALFSTROKE * HVCONTRAST - O) top [widths.heading HALFSTROKE HALFSTROKE UPWARD] - + sketch # latingamma include markset.p include : RamsHornShape DESCENDER XH - + save 'latingamma' 0x263 - + sketch # latinGamma include markset.if include : RamsHornShape DESCENDER CAP - + save 'latinGamma' 0x194 - + sketch # ramshorn include markset.e include : RamsHornShape 0 XH save 'ramshorn' 0x264 + ### Ayin + sketch # latinayin + include markset.e + local k1 0.65 + local k2 0.7 + local zmidy (XH * 0.15) + include : dispiro + widths.lhs + g4.right.start SB 0 [heading RIGHTWARD] + g4 MIDDLE zmidy + g4.up.mid [mix MIDDLE RIGHTSB k1] (XH * k2) [heading UPWARD] + arcvh + g4.left.mid MIDDLE (XH - O) [heading LEFTWARD] + archv + g4.down.mid [mix MIDDLE SB k1] (XH * k2) [heading DOWNWARD] + g4 MIDDLE zmidy + g4.right.end RIGHTSB 0 [heading RIGHTWARD] + include : spiro-outline + corner MIDDLE (zmidy + 1) + g4.up.mid ([mix MIDDLE RIGHTSB k1] - 1) (XH * k2) + g4.left.mid MIDDLE XH + g4.down.mid ([mix MIDDLE SB k1] + 1) (XH * k2) + close + reverse-last + save 'latinayin' 0x1D25 + define [ErTail left w dohook] : glyph-construction local right WIDTH @@ -2053,7 +2078,7 @@ export : define [apply] : begin if dohook {[hookend (XH * 0.5 - rise)]} {[arcvh]} g4 (right - [if dohook (markFine * 2) 0]) (XH * 0.5 - [if dohook (rise * 0.5) rise]) [if dohook nothing [heading RIGHTWARD]] #if dohook {[hookend (XH * 0.5 - rise)] [g4 right (XH * 0.5)]} {} - + sketch # rhotichook include : ErTail (-STROKE * HVCONTRAST) STROKE true save 'rhotichook' 0x2DE @@ -2064,13 +2089,13 @@ export : define [apply] : begin include thinfont.schwa include : ErTail (WIDTH * 0.85 - SB - markFine * HVCONTRAST * 1.25) save 'er' 0x25A - + sketch # revlatinepsiloner include markset.e include thinfont.revlatinepsilon include : ErTail (WIDTH * 0.85 - SB - markFine * HVCONTRAST * 1.25) save 'revlatinepsiloner' 0x25D - + sketch # bidentalpercussive local g : create-glyph : glyph-construction include : HBarTop SB RIGHTSB (CAP * 0.4) @@ -2082,5 +2107,5 @@ export : define [apply] : begin apply-transform : Italify include g save 'bidentalpercussive' 0x2AD - + return [object LambdaShape SigmaShape PiShape] \ No newline at end of file