From 69dadb18107576354ce0ddf0caa9a66aafb895eb Mon Sep 17 00:00:00 2001 From: Logo <21302803+Logo121@users.noreply.github.com> Date: Thu, 24 Oct 2024 10:05:39 +0800 Subject: [PATCH] Draft: Armenian Letters (again) (#2556) * split * more fixes, 2 new char * reapplying changes * finetune lower keh * Adjust jut sizes * balance lower liun and to (?) * cleanup * move aliases * modify flatside * dash, changelog * changelog fix, lower-q-group fix * fix changelog --------- Co-authored-by: Belleve --- changes/{31.9.2.md => 32.0.0.md} | 4 + changes/{ => archives/31.x}/31.0.0.md | 0 changes/{ => archives/31.x}/31.1.0.md | 0 changes/{ => archives/31.x}/31.2.0.md | 0 changes/{ => archives/31.x}/31.3.0.md | 0 changes/{ => archives/31.x}/31.4.0.md | 0 changes/{ => archives/31.x}/31.5.0.md | 0 changes/{ => archives/31.x}/31.6.0.md | 0 changes/{ => archives/31.x}/31.6.1.md | 0 changes/{ => archives/31.x}/31.7.0.md | 0 changes/{ => archives/31.x}/31.7.1.md | 0 changes/{ => archives/31.x}/31.8.0.md | 0 changes/{ => archives/31.x}/31.9.0.md | 0 changes/{ => archives/31.x}/31.9.1.md | 0 packages/font-glyphs/src/common/shapes.ptl | 148 +++++--- packages/font-glyphs/src/index.ptl | 1 + packages/font-glyphs/src/letter/armenian.ptl | 25 ++ .../src/letter/armenian/aliases.ptl | 23 ++ .../font-glyphs/src/letter/armenian/ca.ptl | 66 ++++ .../src/letter/armenian/eh-liun-hiun.ptl | 79 ++++ .../font-glyphs/src/letter/armenian/feh.ptl | 43 +++ .../src/letter/armenian/hook-group.ptl | 130 +++++++ .../font-glyphs/src/letter/armenian/keh.ptl | 53 +++ .../src/letter/armenian/lower-dza-cheh.ptl | 80 ++++ .../src/letter/armenian/lower-q-group.ptl | 27 ++ .../src/letter/armenian/lower-sha-group.ptl | 80 ++++ .../src/letter/armenian/lower-u-group.ptl | 347 ++++++++++++++++++ .../src/letter/armenian/shared.ptl | 97 +++++ .../font-glyphs/src/letter/armenian/to.ptl | 63 ++++ .../src/letter/armenian/upper-cheh.ptl | 38 ++ .../src/letter/armenian/upper-co.ptl | 37 ++ .../src/letter/armenian/upper-dza-group.ptl | 66 ++++ .../src/letter/armenian/upper-gim-group.ptl | 72 ++++ .../src/letter/armenian/upper-ho.ptl | 43 +++ .../src/letter/armenian/upper-u-group.ptl | 52 +++ .../src/letter/armenian/upper-xeh.ptl | 27 ++ .../src/letter/armenian/upper-yi.ptl | 24 ++ .../src/letter/armenian/upper-za-group.ptl | 63 ++++ .../font-glyphs/src/letter/latin/lower-q.ptl | 5 +- .../font-glyphs/src/letter/latin/upper-q.ptl | 1 + packages/font-glyphs/src/letter/shared.ptl | 71 ++-- packages/font-glyphs/src/meta/macros.ptl | 2 +- .../src/symbol/punctuation/dashes.ptl | 8 + .../src/symbol/punctuation/small.ptl | 1 + params/variants.toml | 22 +- 45 files changed, 1688 insertions(+), 110 deletions(-) rename changes/{31.9.2.md => 32.0.0.md} (57%) rename changes/{ => archives/31.x}/31.0.0.md (100%) rename changes/{ => archives/31.x}/31.1.0.md (100%) rename changes/{ => archives/31.x}/31.2.0.md (100%) rename changes/{ => archives/31.x}/31.3.0.md (100%) rename changes/{ => archives/31.x}/31.4.0.md (100%) rename changes/{ => archives/31.x}/31.5.0.md (100%) rename changes/{ => archives/31.x}/31.6.0.md (100%) rename changes/{ => archives/31.x}/31.6.1.md (100%) rename changes/{ => archives/31.x}/31.7.0.md (100%) rename changes/{ => archives/31.x}/31.7.1.md (100%) rename changes/{ => archives/31.x}/31.8.0.md (100%) rename changes/{ => archives/31.x}/31.9.0.md (100%) rename changes/{ => archives/31.x}/31.9.1.md (100%) create mode 100644 packages/font-glyphs/src/letter/armenian.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/aliases.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/ca.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/eh-liun-hiun.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/feh.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/hook-group.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/keh.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/lower-dza-cheh.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/lower-q-group.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/lower-sha-group.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/lower-u-group.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/shared.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/to.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/upper-cheh.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/upper-co.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/upper-dza-group.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/upper-ho.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/upper-u-group.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/upper-xeh.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/upper-yi.ptl create mode 100644 packages/font-glyphs/src/letter/armenian/upper-za-group.ptl diff --git a/changes/31.9.2.md b/changes/32.0.0.md similarity index 57% rename from changes/31.9.2.md rename to changes/32.0.0.md index a9877b933..f7872a0c3 100644 --- a/changes/31.9.2.md +++ b/changes/32.0.0.md @@ -4,4 +4,8 @@ - LONG RIGHT TACK (`U+27DD`). - LONG LEFT TACK (`U+27DE`). - UP ARROW THROUGH CIRCLE (`U+29BD`). +* Add Armenian letters: + - ARMENIAN CAPITAL LETTER AYB (`U+0531`) ... ARMENIAN CAPITAL LETTER FEH (`U+0556`). + - ARMENIAN SMALL LETTER TURNED AYB (`U+0560`) ... ARMENIAN HYPHEN (`U+058A`). + - ARMENIAN DRAM SIGN (`U+058F`). * Optimize `semi-chancery-straight-serifed` and `semi-chancery-curly-serifed` variants for `x` (`cv58`). diff --git a/changes/31.0.0.md b/changes/archives/31.x/31.0.0.md similarity index 100% rename from changes/31.0.0.md rename to changes/archives/31.x/31.0.0.md diff --git a/changes/31.1.0.md b/changes/archives/31.x/31.1.0.md similarity index 100% rename from changes/31.1.0.md rename to changes/archives/31.x/31.1.0.md diff --git a/changes/31.2.0.md b/changes/archives/31.x/31.2.0.md similarity index 100% rename from changes/31.2.0.md rename to changes/archives/31.x/31.2.0.md diff --git a/changes/31.3.0.md b/changes/archives/31.x/31.3.0.md similarity index 100% rename from changes/31.3.0.md rename to changes/archives/31.x/31.3.0.md diff --git a/changes/31.4.0.md b/changes/archives/31.x/31.4.0.md similarity index 100% rename from changes/31.4.0.md rename to changes/archives/31.x/31.4.0.md diff --git a/changes/31.5.0.md b/changes/archives/31.x/31.5.0.md similarity index 100% rename from changes/31.5.0.md rename to changes/archives/31.x/31.5.0.md diff --git a/changes/31.6.0.md b/changes/archives/31.x/31.6.0.md similarity index 100% rename from changes/31.6.0.md rename to changes/archives/31.x/31.6.0.md diff --git a/changes/31.6.1.md b/changes/archives/31.x/31.6.1.md similarity index 100% rename from changes/31.6.1.md rename to changes/archives/31.x/31.6.1.md diff --git a/changes/31.7.0.md b/changes/archives/31.x/31.7.0.md similarity index 100% rename from changes/31.7.0.md rename to changes/archives/31.x/31.7.0.md diff --git a/changes/31.7.1.md b/changes/archives/31.x/31.7.1.md similarity index 100% rename from changes/31.7.1.md rename to changes/archives/31.x/31.7.1.md diff --git a/changes/31.8.0.md b/changes/archives/31.x/31.8.0.md similarity index 100% rename from changes/31.8.0.md rename to changes/archives/31.x/31.8.0.md diff --git a/changes/31.9.0.md b/changes/archives/31.x/31.9.0.md similarity index 100% rename from changes/31.9.0.md rename to changes/archives/31.x/31.9.0.md diff --git a/changes/31.9.1.md b/changes/archives/31.x/31.9.1.md similarity index 100% rename from changes/31.9.1.md rename to changes/archives/31.x/31.9.1.md diff --git a/packages/font-glyphs/src/common/shapes.ptl b/packages/font-glyphs/src/common/shapes.ptl index 21b4550db..ba14f4a79 100644 --- a/packages/font-glyphs/src/common/shapes.ptl +++ b/packages/font-glyphs/src/common/shapes.ptl @@ -192,34 +192,17 @@ glyph-block CommonShapes : begin local width : fallback _width Stroke local ada : fallback _ada SmallArchDepthA local adb : fallback _adb SmallArchDepthB - if (u - d > ada + adb) : then : begin - return : sink - widths width 0 - arch.lhs.centerAt.rtl.t middle u (sw -- width) - archv - flat (l + OX) (u - ada) - curl (l + OX) (d + adb) - arcvh - arch.lhs.centerAt.ltr.b middle d (sw -- width) - archv - flat (r - OX) (d + ada) - curl (r - OX) (u - adb) - arcvh - close - : else : begin - local ymiddlea : mix d u (adb / (ada + adb)) - local ymiddleb : mix d u (ada / (ada + adb)) - return : sink - widths width 0 - arch.lhs.centerAt.rtl.t middle u (sw -- width) - archv - g4 (l + OX) ymiddlea - arcvh - arch.lhs.centerAt.ltr.b middle d (sw -- width) - archv - g4 (r - OX) ymiddleb - arcvh - close + return : sink + widths width 0 + arch.lhs.centerAt.rtl.t middle u (sw -- width) + archv + flatside.ld l d u ada adb + arcvh + arch.lhs.centerAt.ltr.b middle d (sw -- width) + archv + flatside.ru r d u ada adb + arcvh + close glyph-block-export OShape define [OShape u d l r _width _ada _adb] : OShapeT dispiro u d l r _width _ada _adb @@ -235,39 +218,20 @@ glyph-block CommonShapes : begin local width : fallback _width Stroke local ada : fallback _ada SmallArchDepthA local adb : fallback _adb SmallArchDepthB - if (u - d > ada + adb) : then : begin - include : dispiro - widths.lhs width - arch.lhs.centerAt.rtl.t middle u (sw -- width) (knot-ty -- flat) - arch.lhs.centerAt.rtl.t (middle - gap / 2) u (sw -- width) (knot-ty -- curl) - archv - flat (l + OX) (u - ada) - curl (l + OX) (d + adb) - arcvh - arch.lhs.centerAt.ltr.b (middle - gap / 2) d (sw -- width) (knot-ty -- flat) - arch.lhs.centerAt.ltr.b (middle + gap / 2) d (sw -- width) (knot-ty -- curl) - archv - flat (r - OX) (d + ada) - curl (r - OX) (u - adb) - arcvh - arch.lhs.centerAt.rtl.t (middle + gap / 2) u (sw -- width) (knot-ty -- flat) - arch.lhs.centerAt.rtl.t middle u (sw -- width) (knot-ty -- curl) - : else : begin - local ymiddlea : mix d u (adb / (ada + adb)) - local ymiddleb : mix d u (ada / (ada + adb)) - include : dispiro - arch.lhs.centerAt.rtl.t middle u (sw -- width) (knot-ty -- flat) - arch.lhs.centerAt.rtl.t (middle - gap / 2) u (sw -- width) (knot-ty -- curl) - archv - g4 (l + OX) ymiddlea - arcvh - arch.lhs.centerAt.ltr.b (middle - gap / 2) d (sw -- width) (knot-ty -- flat) - arch.lhs.centerAt.ltr.b (middle + gap / 2) d (sw -- width) (knot-ty -- curl) - archv - g4 (r - OX) ymiddleb - arcvh - arch.lhs.centerAt.rtl.t (middle + gap / 2) u (sw -- width) (knot-ty -- flat) - arch.lhs.centerAt.rtl.t middle u (sw -- width) (knot-ty -- curl) + include : dispiro + widths.lhs width + arch.lhs.centerAt.rtl.t middle u (sw -- width) (knot-ty -- flat) + arch.lhs.centerAt.rtl.t (middle - gap / 2) u (sw -- width) (knot-ty -- curl) + archv + flatside.ld l d u ada adb + arcvh + arch.lhs.centerAt.ltr.b (middle - gap / 2) d (sw -- width) (knot-ty -- flat) + arch.lhs.centerAt.ltr.b (middle + gap / 2) d (sw -- width) (knot-ty -- curl) + archv + flatside.ru r d u ada adb + arcvh + arch.lhs.centerAt.rtl.t (middle + gap / 2) u (sw -- width) (knot-ty -- flat) + arch.lhs.centerAt.rtl.t middle u (sw -- width) (knot-ty -- curl) glyph-block-export HSerif define HSerif : namespace @@ -530,6 +494,68 @@ glyph-block CommonShapes : begin local args : object [yRef y] sw swTerminal isTail noSwash [overshoot o] return : WithKnotProxy [hookProxy args] : new FunctionInterpolator hookEndBlender args + glyph-block-export flatside + define flatside : namespace + export : define flex-params [ld]: begin + local-parameter : x # X-position of the stroke, without overshoot + local-parameter : d # Y-position of the ring's bottom + local-parameter : u # Y-position of the ring's top + local-parameter : ada -- ArchDepthA + local-parameter : adb -- ArchDepthB + local-parameter : overshoot -- OX + local-parameter : af -- nothing # Additional function for the control knots + + return : if (u - d > ada + adb) + list + flat (x + overshoot) (u - ada) af + curl (x + overshoot) (d + adb) + g4 (x + overshoot) [mix d u (adb / (ada + adb))] af + + export : define flex-params [lu]: begin + local-parameter : x # X-position of the stroke, without overshoot + local-parameter : d # Y-position of the ring's bottom + local-parameter : u # Y-position of the ring's top + local-parameter : ada -- ArchDepthA + local-parameter : adb -- ArchDepthB + local-parameter : overshoot -- OX + local-parameter : af -- nothing # Additional function for the control knots + + return : if (u - d > ada + adb) + list + flat (x + overshoot) (d + adb) af + curl (x + overshoot) (u - ada) + g4 (x + overshoot) [mix d u (adb / (ada + adb))] af + + export : define flex-params [rd]: begin + local-parameter : x # X-position of the stroke, without overshoot + local-parameter : d # Y-position of the ring's bottom + local-parameter : u # Y-position of the ring's top + local-parameter : ada -- ArchDepthA + local-parameter : adb -- ArchDepthB + local-parameter : overshoot -- OX + local-parameter : af -- nothing # Additional function for the control knots + + return : if (u - d > ada + adb) + list + flat (x - overshoot) (u - adb) af + curl (x - overshoot) (d + ada) + g4 (x - overshoot) [mix d u (ada / (ada + adb))] af + + export : define flex-params [ru]: begin + local-parameter : x # X-position of the stroke, without overshoot + local-parameter : d # Y-position of the ring's bottom + local-parameter : u # Y-position of the ring's top + local-parameter : ada -- ArchDepthA + local-parameter : adb -- ArchDepthB + local-parameter : overshoot -- OX + local-parameter : af -- nothing # Additional function for the control knots + + return : if (u - d > ada + adb) + list + flat (x - overshoot) (d + ada) af + curl (x - overshoot) (u - adb) + g4 (x - overshoot) [mix d u (ada / (ada + adb))] af + glyph-block-export arch define arch : namespace export : define adjust-x : namespace diff --git a/packages/font-glyphs/src/index.ptl b/packages/font-glyphs/src/index.ptl index a52b08bf4..b8ca71228 100644 --- a/packages/font-glyphs/src/index.ptl +++ b/packages/font-glyphs/src/index.ptl @@ -79,6 +79,7 @@ export : define [buildGlyphs para recursive] : begin run-glyph-module "./letter/latin.mjs" run-glyph-module "./letter/greek.mjs" run-glyph-module "./letter/cyrillic.mjs" + run-glyph-module "./letter/armenian.mjs" # Numbers run-glyph-module "./number/index.mjs" diff --git a/packages/font-glyphs/src/letter/armenian.ptl b/packages/font-glyphs/src/letter/armenian.ptl new file mode 100644 index 000000000..b6e83b6c8 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian.ptl @@ -0,0 +1,25 @@ +$$include '../meta/macros.ptl' + +export : define [apply] : begin + define $$Capture$$ this + run-glyph-module "./armenian/shared.mjs" + run-glyph-module "./armenian/upper-u-group.mjs" + run-glyph-module "./armenian/lower-u-group.mjs" + run-glyph-module "./armenian/hook-group.mjs" + run-glyph-module "./armenian/upper-gim-group.mjs" + run-glyph-module "./armenian/lower-q-group.mjs" + run-glyph-module "./armenian/upper-za-group.mjs" + run-glyph-module "./armenian/eh-liun-hiun.mjs" + run-glyph-module "./armenian/to.mjs" + run-glyph-module "./armenian/upper-xeh.mjs" + run-glyph-module "./armenian/ca.mjs" + run-glyph-module "./armenian/upper-ho.mjs" + run-glyph-module "./armenian/upper-dza-group.mjs" + run-glyph-module "./armenian/lower-dza-cheh.mjs" + run-glyph-module "./armenian/upper-cheh.mjs" + run-glyph-module "./armenian/upper-yi.mjs" + run-glyph-module "./armenian/lower-sha-group.mjs" + run-glyph-module "./armenian/upper-co.mjs" + run-glyph-module "./armenian/keh.mjs" + run-glyph-module "./armenian/feh.mjs" + run-glyph-module "./armenian/aliases.mjs" diff --git a/packages/font-glyphs/src/letter/armenian/aliases.ptl b/packages/font-glyphs/src/letter/armenian/aliases.ptl new file mode 100644 index 000000000..c6841ed0a --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/aliases.ptl @@ -0,0 +1,23 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" + +glyph-module + +glyph-block Letter-Armenian-Aliases : begin + glyph-block-import Common-Derivatives + + alias 'armn/Seh' 0x54D 'U' + alias 'armn/Tiun' 0x54F 'S/sansSerif' + alias 'armn/Piur' 0x553 'grek/Phi' + alias 'armn/Oh' 0x555 'O' + alias 'armn/aybTurned' 0x560 'm' + alias 'armn/ayb' 0x561 'turnm' + alias 'armn/ho' 0x570 'h' + alias 'armn/yi' 0x575 [if SLAB 'dotlessj.flatHookSerifed' 'dotlessj.flatHookSerifless'] + alias 'armn/vo' 0x578 'n' + alias 'armn/peh' 0x57A 'turnmLeg' + alias 'armn/seh' 0x57D 'u' + alias 'armn/co' 0x581 'cyrl/de.BGR' + alias 'armn/oh' 0x585 'o' + alias 'armn/yiBar' 0x588 [if SLAB 'dotlessjBar.flatHookSerifed' 'dotlessjBar.flatHookSerifless'] diff --git a/packages/font-glyphs/src/letter/armenian/ca.ptl b/packages/font-glyphs/src/letter/armenian/ca.ptl new file mode 100644 index 000000000..da7c8f345 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/ca.ptl @@ -0,0 +1,66 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Ca : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + + # Common Params + define barPos : XH / 2 + define highBarPos XH + define jut Jut + + do "Ca" + create-glyph 'armn/Ca' 0x53E : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : VBar.l df.leftSB (CAP - VJut) CAP df.mvs + local yStart : CAP - VJut + df.mvs + include : dispiro + widths.rhs.heading df.mvs Rightward + flat df.leftSB yStart + curl df.middle yStart + archv + flat df.rightSB (yStart - ArchDepthB) + curl df.rightSB (0 + ArchDepthA) + arch.rhs 0 (sw -- df.mvs) + flat df.leftSB (0 + ArchDepthB) + curl df.leftSB (yStart - ArchDepthA) + arcvh + flat df.rightSB CAP + curl (df.rightSB + jut - [HSwToV : 0.5 * df.mvs]) CAP + + create-glyph 'armn/ca' 0x56E : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.b + + local x1 : mix df.leftSB df.rightSB 0.45 + local x2 : mix df.leftSB df.rightSB 0.3 + local xOffset : 0.5 * [HSwToV df.mvs] + local y2 : mix Ascender XH 0.5 + include : dispiro + widths.rhs df.mvs + flat (x1 + xOffset) Ascender [heading Downward] + curl (x2 + xOffset) y2 [heading Downward] + + local x3 : mix df.leftSB df.rightSB 0.1 + local x4 : mix df.leftSB df.rightSB 0.6 + + include : intersection [MaskBelowLine (x1 - xOffset) Ascender (x2 - xOffset) y2 100] : dispiro + widths.rhs df.mvs + flat (x3 + xOffset) Ascender + curl (x4 + xOffset) XH + straight.down.end (df.rightSB - OX) (XH - SmallArchDepthB) + curl (df.rightSB - OX) (0 + SmallArchDepthA) + arch.rhs 0 (sw -- df.mvs) + flat (df.leftSB + OX) (0 + SmallArchDepthB) + curl (df.leftSB + OX) (XH - SmallArchDepthA) + arcvh + flat df.middle XH + curl df.rightSB XH + diff --git a/packages/font-glyphs/src/letter/armenian/eh-liun-hiun.ptl b/packages/font-glyphs/src/letter/armenian/eh-liun-hiun.ptl new file mode 100644 index 000000000..37477b082 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/eh-liun-hiun.ptl @@ -0,0 +1,79 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Eh-Liun-Hiun : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar + + # Common Params + define barPos : XH / 2 + define highBarPos XH + define jut Jut + + do "Eh" + create-glyph 'armn/Eh' 0x537 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : VBar.l df.leftSB 0 CAP df.mvs + include : [ArmHBar.short df 1].base + include : [ArmHBar.normal df 1].high + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include : composite-proc sf.lt.full sf.lb.outer + + create-glyph 'armn/eh' 0x567 : glyph-proc + local df : include : DivFrame para.diversityF + include : df.markSet.b + include : VBar.l df.leftSB 0 Ascender df.mvs + include : [ArmHBar.short df 0].base + include : [ArmHBar.normal df 0].high + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include sf.lt.outer + if [not para.isItalic] : include sf.lb.outer + + do "Liun" + create-glyph 'armn/Liun' 0x53C : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : VBar.l df.leftSB 0 CAP df.mvs + include : [ArmHBar.normal df 1].base + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include : composite-proc sf.lt.full sf.lb.outer + + create-glyph 'armn/liun' 0x56C : glyph-proc + local df : include : DivFrame para.diversityII + include : df.markSet.p + local xMiddle : df.middle - [IBalance2 df] + include : VBar.m xMiddle Descender XH df.mvs + include : HBar.b xMiddle (xMiddle + LongJut * df.div) Descender df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df XH Descender + include : sf.mt.leftAt xMiddle + + do "Hiun" + create-glyph 'armn/Hiun' 0x552 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : VBar.l df.leftSB 0 CAP df.mvs + include : [ArmHBar.normal df 1].high + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include : composite-proc sf.lt.full sf.lb.full + + create-glyph 'armn/hiun' 0x582 : glyph-proc + local df : include : DivFrame para.diversityF + include : VBar.l df.leftSB 0 XH df.mvs + include : [ArmHBar.normal df 1].base + if SLAB : begin + local sf : SerifFrame.fromDf df XH 0 + include sf.lt.outer + if [not para.isItalic] : begin + include sf.lb.full diff --git a/packages/font-glyphs/src/letter/armenian/feh.ptl b/packages/font-glyphs/src/letter/armenian/feh.ptl new file mode 100644 index 000000000..24f0ccdc6 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/feh.ptl @@ -0,0 +1,43 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Feh : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + + define [FehBody df top bot ada adb] : glyph-proc + local midy : mix bot top HBarPos + include : dispiro + widths.lhs df.mvs + straight.left.start df.middle top + g4 df.leftSB [YSmoothMidR top (midy - 0.5 * df.mvs) ada adb] + straight.right.end df.middle (midy - 0.5 * df.mvs) [heading Rightward] + include : dispiro + widths.rhs df.mvs + straight.right.start df.middle (midy + 0.5 * df.mvs) [heading Rightward] + flatside.rd df.rightSB 0 (midy + 0.5 * df.mvs) SmallArchDepthA SmallArchDepthB + hookend 0 (sw -- df.mvs) + g4 (df.leftSB + OX) Hook + + create-glyph 'armn/Feh' 0x556 : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.capital + include : FehBody df CAP 0 ArchDepthA ArchDepthB + include : VBar.m df.middle 0 CAP df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include sf.mt.right + + create-glyph 'armn/feh' 0x586 : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.bp + include : FehBody df Ascender 0 ArchDepthA ArchDepthB + include : VBar.m df.middle Descender Ascender df.mvs + if (SLAB && [not para.Italic]) : begin + local sf : SerifFrame.fromDf df Ascender Descender + include sf.mb.full diff --git a/packages/font-glyphs/src/letter/armenian/hook-group.ptl b/packages/font-glyphs/src/letter/armenian/hook-group.ptl new file mode 100644 index 000000000..492979417 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/hook-group.ptl @@ -0,0 +1,130 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Hook-Group : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar LeftHook RightHook + + do "Ben" + create-glyph 'armn/Ben' 0x532 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : RightHook df CAP df.mvs SLAB 0 + include : [ArmHBar.normal df 1].mid + + do "Da" + create-glyph 'armn/Da' 0x534 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : LeftHook df CAP df.mvs SLAB 0 + include : [ArmHBar.right df 1].mid + + do "Ech" + create-glyph 'armn/Ech' 0x535 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : LeftHook df CAP df.mvs SLAB 0 + include : FlipAround df.middle (CAP / 2) + include : [ArmHBar.normal df 1].high + + do "Et" + create-glyph 'armn/Et' 0x538 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : RightHook df CAP df.mvs + include : [ArmHBar.normal df 1].base + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include sf.lb.outer + + do "Ini" + create-glyph 'armn/Ini' 0x53B : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : RightHook df XH df.mvs + include : VBar.l df.leftSB 0 CAP + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include : composite-proc sf.lt.full sf.lb.full + + do "Ken" + create-glyph 'armn/Ken' 0x53F : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + local midy : XH / 2 - df.mvs / 2 + include : dispiro + widths.lhs df.mvs + flat df.leftSB CAP [heading Downward] + curl df.leftSB (midy + ArchDepthB) + arch.lhs midy (sw -- df.mvs) + flat df.rightSB (midy + ArchDepthA) + curl df.rightSB XH [heading Upward] + include : VBar.r df.rightSB 0 XH + + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + local sf2 : SerifFrame.fromDf df XH 0 + include : composite-proc sf.lt.full sf2.rt.full sf.rb.full + + do "Ghat" + create-glyph 'armn/Ghat' 0x542 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : LeftHook df CAP df.mvs SLAB 0 + include : [ArmHBar.right df 1 SLAB].base + + do "Nu" + create-glyph 'armn/Nu' 0x546 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : LeftHook df CAP df.mvs SLAB SLAB + include : FlipAround df.middle (CAP / 2) + include : [ArmHBar.left df 1 SLAB].top + + do "Peh" + create-glyph 'armn/Peh' 0x54A : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.capital + include : LeftHook df CAP df.mvs SLAB + include : VBar.m df.middle (XH / 2) (CAP - 0.5 * df.mvs) df.mvs + + do "Vew" + create-glyph 'armn/Vew' 0x54E : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + local midy : XH / 2 - df.mvs / 2 + include : dispiro + widths.lhs df.mvs + flat df.leftSB XH [heading Downward] + curl df.leftSB (midy + ArchDepthB) + arch.lhs midy (sw -- df.mvs) + flat df.rightSB (midy + ArchDepthA) + curl df.rightSB XH [heading Upward] + include : VBar.r df.rightSB 0 CAP df.mvs + include : [ArmHBar.right df 1 SLAB].base + + if SLAB : begin + local sf : SerifFrame.fromDf df XH 0 + local sf2 : SerifFrame.fromDf df CAP 0 + include : composite-proc sf.lt.full sf2.rt.full sf.rb.full + + do "Reh" + create-glyph 'armn/Reh' 0x550 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : RightHook df CAP df.mvs SLAB 0 + + do "Dram" + glyph-block-import Letter-Shared-Shapes : LetterBarOverlay + create-glyph 'armn/Dram' 0x58F : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : LeftHook df CAP df.mvs SLAB 0 + include : LetterBarOverlay.r df.rightSB (CAP * 0.37) + include : LetterBarOverlay.r df.rightSB (CAP * 0.60 - OverlayStroke * 0.25) diff --git a/packages/font-glyphs/src/letter/armenian/keh.ptl b/packages/font-glyphs/src/letter/armenian/keh.ptl new file mode 100644 index 000000000..6aa7bbeab --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/keh.ptl @@ -0,0 +1,53 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Keh : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : OBarRight OBarLeft + glyph-block-import Letter-Shared-Shapes : SerifFrame + + # Common Params + define barPos : XH / 2 + define highBarPos XH + define jut Jut + + do "K'eh" + create-glyph 'armn/Keh' 0x554 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + local bot : Math.max (XH - (CAP - XH)) (2.2 * df.mvs) + include : OBarLeft.roundedTop + top -- CAP + bot -- bot + left -- df.leftSB + right -- df.rightSB + yTerminal -- 0 + sw -- df.mvs + include : HBar.m (df.leftSB - jut + [HSwToV : 0.5 * df.mvs]) (df.rightSB) [mix [if SLAB df.mvs 0] bot 0.5] df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include sf.lb.full + + create-glyph 'armn/keh' 0x584 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.p + local ostroke : df.adviceStroke 3.75 + local bot : Math.max (0.1 * XH) (1 * ostroke) + include : OBarLeft.shape + left -- df.leftSB + right -- df.rightSB + bot -- bot + sw -- df.mvs + fine -- (df.mvs * ShoulderFine / Stroke) + include : VBar.l df.leftSB Descender XH df.mvs + include : HCrossBar (df.leftSB - jut + [HSwToV : 0.5 * df.mvs]) df.rightSB 0 ostroke + if SLAB : begin + local sf : SerifFrame.fromDf df XH Descender + include sf.lt.outer + if [not para.isItalic] : begin + include sf.lb.full diff --git a/packages/font-glyphs/src/letter/armenian/lower-dza-cheh.ptl b/packages/font-glyphs/src/letter/armenian/lower-dza-cheh.ptl new file mode 100644 index 000000000..716818261 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/lower-dza-cheh.ptl @@ -0,0 +1,80 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Lower-Dza-Cheh : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : OBarRight OBarLeft + glyph-block-import Letter-Shared-Shapes : SerifFrame + + do "Dz'a" + create-glyph 'armn/dza' 0x571 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.b + local x1 : mix df.leftSB df.rightSB 0.25 + local x2 : mix df.leftSB df.rightSB 0.75 + local xOffset : 0.5 * [HSwToV df.mvs] + local y2 : Math.min [mix Ascender XH 0.5] (XH + 0.5 * SmallArchDepthA) + include : dispiro + widths.center df.mvs + straight.down.start x1 Ascender [heading Downward] + arcvh + flat df.middle y2 + curl x2 y2 [heading Rightward] + + local stemFine : df.mvs * (ShoulderFine / Stroke) + include : dispiro + widths.lhs df.mvs + curl x2 (y2 + 0.5 * df.mvs) + archv.superness 1.5 + straight.down.end df.leftSB (XH - SmallArchDepthA) + curl df.leftSB (0 + SmallArchDepthB) + OBarRight.arcEnd 0 df.leftSB df.rightSB df.mvs stemFine SmallArchDepthA SmallArchDepthB + include : intersection + spiro-outline + curl x2 (y2 + 0.5 * df.mvs) + archv.superness 1.5 + # curl df.middle XH + straight.down.end df.leftSB (XH - SmallArchDepthA) + corner df.leftSB 0 + corner VERY-FAR 0 + corner VERY-FAR Ascender + dispiro + widths.rhs df.mvs + flat df.leftSB XH + curl df.middle XH + archv + flat df.rightSB (XH - SmallArchDepthB) + curl df.rightSB 0 [heading Downward] + if SLAB : begin + local sf : SerifFrame.fromDf df Ascender 0 + include sf.rb.outer + + do "Cheh" + create-glyph 'armn/cheh' 0x573 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.b + local x1 : mix df.leftSB df.rightSB 0.75 + local stemFine : df.mvs * (ShoulderFine / Stroke) + include : dispiro + widths.lhs df.mvs + flat df.rightSB Ascender + curl x1 Ascender + archv + flat df.leftSB (XH - SmallArchDepthA) + curl df.leftSB (0 + SmallArchDepthB) + OBarRight.arcEnd 0 df.leftSB df.rightSB df.mvs stemFine SmallArchDepthA SmallArchDepthB + include : dispiro + widths.rhs df.mvs + flat df.leftSB XH + curl df.middle XH + archv + flat df.rightSB (XH - SmallArchDepthB) + curl df.rightSB 0 [heading Downward] + if SLAB : begin + local sf : SerifFrame.fromDf df Ascender 0 + include sf.rb.outer diff --git a/packages/font-glyphs/src/letter/armenian/lower-q-group.ptl b/packages/font-glyphs/src/letter/armenian/lower-q-group.ptl new file mode 100644 index 000000000..57dc1180f --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/lower-q-group.ptl @@ -0,0 +1,27 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Lower-Q-Group : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar + + do "Gim" + create-glyph 'armn/gim' 0x563 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.p + include : refer-glyph 'q/tailless' + include : [ArmHBar.right df 0].base + + do "Za" + create-glyph 'armn/za' 0x566 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.p + include : refer-glyph 'q/tailless' + eject-contour 'serifRB' + include : [ArmHBar.right df 0].desc diff --git a/packages/font-glyphs/src/letter/armenian/lower-sha-group.ptl b/packages/font-glyphs/src/letter/armenian/lower-sha-group.ptl new file mode 100644 index 000000000..b1a7265a9 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/lower-sha-group.ptl @@ -0,0 +1,80 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Lower-Sha-Group : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar TwoNeck + + # Common Params + define barPos : XH / 2 + define highBarPos XH + define jut Jut + + do "Sha" + create-glyph 'armn/sha' 0x577 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.p + include : dispiro + widths.rhs df.mvs + g4 df.leftSB (XH - SHook) + hookstart XH (sw -- df.mvs) + TwoNeck df XH Descender + include : [ArmHBar.normal df 0].desc + + do "Ch'a" + create-glyph 'armn/cha' 0x579 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.p + local x1 : mix df.leftSB df.rightSB 0.1 + local x2 : mix df.leftSB df.rightSB 0.9 + local y2 : XH / 2 + include : dispiro + widths.center df.mvs + straight.down.start (x1 + [HSwToV : 0.5 * df.mvs]) XH [heading Downward] + arcvh + flat (df.middle + [HSwToV : 0.5 * df.mvs]) y2 + curl x2 y2 [heading Rightward] + include : dispiro + widths.rhs df.mvs + flat x2 (y2 - df.mvs / 2) + curl df.leftSB (Descender + df.mvs) [widths.lhs df.mvs] + include : [ArmHBar.normal df 0].desc + + do "Jheh" + create-glyph 'armn/jheh' 0x57B : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.p + local refY : XH - SmallArchDepthB * 1.5 - df.mvs / 2 * (1 - TanSlope) + local x1 : df.middle + [HSwToV : [StrokeWidthBlend 0 0.4] * df.mvs] + local y1 : mix (Descender + df.mvs) refY [StrokeWidthBlend 0.65 0.7] + + include : dispiro + widths.lhs df.mvs + straight.up.start x1 y1 [heading Upward] + g4 [pre@mix@post 0.5] [pre@mix@post 0.5] [widths.center df.mvs] + flat df.leftSB (XH - 1.1 * SmallArchDepthA) [widths.rhs df.mvs] + curl df.leftSB (XH - SmallArchDepthA) + arch.rhs XH (sw -- df.mvs) + TwoNeck df XH Descender + + local dx : df.leftSB - df.rightSB + local dy : (Descender + df.mvs) - refY + local hypot : Math.hypot dx dy + local cosAngle : dy / hypot + local sinAngle : (-dx) / hypot + local joinX : mix df.leftSB (df.rightSB + cosAngle * df.mvs) 0.2 + local joinY : mix (Descender + df.mvs) (refY + sinAngle * [HSwToV df.mvs]) 0.2 + local fine : df.mvs * (ShoulderFine / Stroke) + + include : dispiro + widths.lhs df.mvs + straight.down.start (x1 - [HSwToV df.mvs]) y1 [heading Downward] + flat joinX joinY [widths.lhs fine] + curl df.leftSB (Descender + df.mvs) + include : [ArmHBar.normal df 0].desc \ No newline at end of file diff --git a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl new file mode 100644 index 000000000..e4a4b0b22 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl @@ -0,0 +1,347 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Lower-U-Group : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : nShoulder nShoulderKnots + glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar TwoNeck + glyph-block-import Letter-Latin-U : USerifs + + # Common Params + define barPos : XH / 2 + define highBarPos XH + define jut Jut + + do "Ben" + create-glyph 'armn/ben' 0x562 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.p + include : VBar.l df.leftSB Descender XH df.mvs + include : nShoulder + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + top -- XH + bottom -- (XH / 2) + stroke -- df.mvs + include : [ArmHBar.normal df 0].base + if SLAB : begin + local sf : SerifFrame.fromDf df XH Descender + include sf.lt.outer + if [not para.isItalic] : begin + local sf2 : SerifFrame.fromDf df XH (XH / 2) + include : composite-proc sf.lb.full sf2.rb.full + + do "Da" + create-glyph 'armn/da' 0x564 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.p + include : refer-glyph 'latn/eta' + include : [ArmHBar.right df 0].base + + do "Ech" + create-glyph 'armn/ech' 0x565 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.b + include : nShoulder + top -- 0 + bottom -- (-Ascender) + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + stroke -- df.mvs + include : FlipAround df.middle 0 + include : VBar.r df.rightSB 0 [mix 0 XH 0.6] df.mvs + include : [ArmHBar.normal df 0].high + if SLAB : include : USerifs.Toothed df Ascender df.mvs + eject-contour 'serifRT' + + do "Et" + create-glyph 'armn/et' 0x568 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.b + include : VBar.l df.leftSB Descender XH df.mvs + include : nShoulder + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + top -- XH + bottom -- 0 + stroke -- df.mvs + include : [ArmHBar.normal df 0].desc + if SLAB : begin + local sf : SerifFrame.fromDf df XH Descender + local sf2 : SerifFrame.fromDf df XH 0 + include sf.lt.outer + if para.isItalic + include sf2.rb.outer + include : composite-proc sf.lb.full sf2.rb.full + + do "Ini" + create-glyph 'armn/ini' 0x56B : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.bp + include : VBar.l df.leftSB Descender Ascender df.mvs + include : nShoulder + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + top -- XH + bottom -- 0 + stroke -- df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df Ascender Descender + local sf2 : SerifFrame.fromDf df XH 0 + include sf.lt.outer + if para.isItalic + include sf2.rb.outer + include : composite-proc sf.lb.full sf2.rb.full + + do "Xeh" + create-glyph 'armn/xeh' 0x56D : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.bp + include : nShoulder + top -- XH + bottom -- (XH / 2) + left -- (df.leftSB + [HSwToV df.mvs]) + right -- (df.middle + [HSwToV : df.mvs / 2]) + stroke -- df.mvs + include : FlipAround df.middle (XH / 2) + include : nShoulder + top -- XH + bottom -- (XH / 2) + left -- (df.leftSB + [HSwToV df.mvs]) + right -- (df.middle + [HSwToV : df.mvs / 2]) + stroke -- df.mvs + include : VBar.l df.leftSB Descender Ascender df.mvs + include : VBar.r df.rightSB 0 XH df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df Ascender Descender + local sf2 : SerifFrame.fromDf df XH 0 + include sf.lt.outer + if para.isItalic + include sf2.rb.outer + include : composite-proc sf.lb.full sf2.rt.inner sf2.rb.outer + + do "Ken" + create-glyph 'armn/ken' 0x56F : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.bp + include : nShoulder + top -- 0 + bottom -- (-Ascender) + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + stroke -- df.mvs + include : FlipAround df.middle 0 + include : VBar.r df.rightSB Descender XH df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df Ascender 0 + local sf2 : SerifFrame.fromDf df XH Descender + include sf.lt.outer + if para.isItalic + include sf2.rb.outer + include : composite-proc sf2.rt.inner sf2.rb.full + + do "Ghat" + create-glyph 'armn/ghat' 0x572 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.p + include : VBar.l df.leftSB 0 XH df.mvs + include : nShoulder + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + top -- XH + bottom -- Descender + stroke -- df.mvs + include : [ArmHBar.right df 0 (SLAB && [not para.isItalic])].desc + if SLAB : begin + local sf : SerifFrame.fromDf df XH 0 + include sf.lt.outer + if [not para.isItalic] : begin + local sf2 : SerifFrame.fromDf df XH Descender + include : composite-proc sf.lb.full sf2.rb.full + + do "Men" + create-glyph 'armn/men' 0x574 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.b + include : nShoulder + top -- 0 + bottom -- (-XH) + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + stroke -- df.mvs + include : FlipAround df.middle 0 + include : VBar.r df.rightSB 0 Ascender df.mvs + include : [ArmHBar.right df 0].top + if SLAB : begin + local sf : SerifFrame.fromDf df XH 0 + local sf2 : SerifFrame.fromDf df Ascender 0 + include : composite-proc sf.lt.outer sf2.rb.outer + + do "Nu" + create-glyph 'armn/nu' 0x576 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.b + include : nShoulder + top -- 0 + bottom -- (-Ascender) + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + stroke -- df.mvs + include : FlipAround df.middle 0 + include : VBar.r df.rightSB 0 XH df.mvs + include : [ArmHBar.left df 0 SLAB].top + if SLAB : begin + local sf : SerifFrame.fromDf df XH 0 + include sf.rb.outer + if [not para.isItalic] : include sf.rt.inner + + do "Rra" + create-glyph 'armn/rra' 0x57C : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.e + include : VBar.l df.leftSB 0 XH df.mvs + + # Combination of nShoulderKnots and the straight 2 shape + local fine : df.mvs * (ShoulderFine / Stroke) + local left : Math.max (df.rightSB - [HSwToV df.mvs] - jut) df.middle + include : dispiro + widths.rhs fine + flat (df.leftSB + [HSwToV : df.mvs - fine]) (XH - SmallArchDepthA - TINY) + curl (df.leftSB + [HSwToV : df.mvs - fine]) (XH - SmallArchDepthA) + arch.rhs XH (sw -- df.mvs) (swBefore -- fine) + TwoNeck df XH 0 left + include : HBar.b left (left + [HSwToV df.mvs] + jut) 0 df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df XH 0 + include sf.lt.outer + if [not para.isItalic] : begin + include : composite-proc sf.lb.outer + + # Alternate straight 'n' form + # include : nShoulder + # left -- (df.leftSB + [HSwToV df.mvs]) + # right -- df.rightSB + # top -- XH + # bottom -- 0 + # stroke -- df.mvs + # include : [ArmHBar.right df 0].base + # if SLAB : begin + # local sf : SerifFrame.fromDf df XH 0 + # include sf.lt.outer + # if [not para.isItalic] : begin + # include : composite-proc sf.lb.full + + do "Vew" + create-glyph 'armn/vew' 0x57E : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.bp + include : nShoulder + top -- 0 + bottom -- (-XH) + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + stroke -- df.mvs + include : FlipAround df.middle 0 + include : VBar.r df.rightSB Descender Ascender df.mvs + include : [ArmHBar.right df 1].desc + + if SLAB : begin + local sf : SerifFrame.fromDf df XH 0 + include sf.lt.outer + if [not para.isItalic] : begin + local sf2 : SerifFrame.fromDf df Ascender Descender + include sf2.rt.inner + + do "Tiun" + create-glyph 'armn/tiun' 0x57F : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.e + include : nShoulder + top -- XH + bottom -- 0 + left -- (df.middle + [HSwToV : df.mvs / 2]) + right -- df.rightSB + stroke -- df.mvs + include : FlipAround df.middle (XH / 2) + include : nShoulder + top -- XH + bottom -- 0 + left -- (df.middle + [HSwToV : df.mvs / 2]) + right -- df.rightSB + stroke -- df.mvs + include : VBar.m df.middle 0 XH df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df XH 0 + include : composite-proc sf.lt.outer sf.rb.outer + if [not para.isItalic] : include : composite-proc sf.mt.left sf.mb.right sf.rb.outer + + do "Reh" + create-glyph 'armn/reh' 0x580 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.b + include : nShoulder + top -- XH + bottom -- 0 + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + stroke -- df.mvs + include : VBar.l df.leftSB Descender XH df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df XH Descender + local sf2 : SerifFrame.fromDf df XH 0 + include sf.lt.outer + if para.isItalic + include sf2.rb.outer + include : composite-proc sf.lb.full sf2.rb.full + + do "P'iur" + create-glyph 'armn/piur' 0x583 : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.bp + include : nShoulder + top -- XH + bottom -- 0 + left -- (df.middle + [HSwToV : df.mvs / 2]) + right -- df.rightSB + stroke -- df.mvs + include : FlipAround df.middle (XH / 2) + include : nShoulder + top -- XH + bottom -- 0 + left -- (df.middle + [HSwToV : df.mvs / 2]) + right -- df.rightSB + stroke -- df.mvs + include : VBar.m df.middle Descender Ascender df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df XH 0 + local sf2 : SerifFrame.fromDf df Ascender Descender + include sf.lt.outer + if para.isItalic + include sf.rb.outer + include : composite-proc sf2.mt.left sf2.mb.full sf.rb.full + + do "Ew" + create-glyph 'armn/ew' 0x587 : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.b + include : nShoulder + top -- 0 + bottom -- (-Ascender) + left -- (df.middle + [HSwToV : df.mvs / 2]) + right -- df.rightSB + stroke -- df.mvs + include : FlipAround df.middle 0 + include : VBar.m df.middle 0 XH df.mvs + include : HBar.b df.middle df.rightSB 0 df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df Ascender 0 + include sf.lt.outer + if [not para.isItalic] : begin + local sf2 : SerifFrame.fromDf df XH 0 + include sf2.mt.left diff --git a/packages/font-glyphs/src/letter/armenian/shared.ptl b/packages/font-glyphs/src/letter/armenian/shared.ptl new file mode 100644 index 000000000..be6e7a7ad --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/shared.ptl @@ -0,0 +1,97 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Shared-Shapes : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + + define barPos : XH / 2 + define highBarPos XH + define jut Jut + + define JUT-NORMAL 0 + define JUT-SHORT 1 + define JUT-RIGHT 2 + define JUT-LEFT 3 + + glyph-block-export ArmHBar + define [ArmHBar hPos df fCapital fOverslab] : namespace + define left : match hPos + [Just JUT-RIGHT] df.rightSB + [Just JUT-LEFT] (df.leftSB - (jut * [if fOverslab 1.5 1]) + [HSwToV : 0.5 * df.mvs]) + -- df.leftSB + define right : match hPos + [Just JUT-RIGHT] (df.rightSB + (jut * [if fOverslab 1.5 1]) - [HSwToV : 0.5 * df.mvs]) + [Just JUT-SHORT] (df.rightSB - (jut - [HSwToV : 0.5 * df.mvs]) * df.div) + [Just JUT-LEFT] df.leftSB + -- df.rightSB + + export : define [top] : glyph-proc + include : HBar.t left right [if fCapital CAP Ascender] df.mvs + export : define [high] : glyph-proc + include : HBar.t left right highBarPos df.mvs + export : define [mid] : glyph-proc + include : HBar.m left right barPos df.mvs + export : define [base] : glyph-proc + include : HBar.b left right 0 df.mvs + export : define [desc] : glyph-proc + include : HBar.b left right Descender df.mvs + export : define [at y] : glyph-proc + include : HBar.m left right y df.mvs + + set [ArmHBar.normal df fCapital fOverslab] : ArmHBar JUT-NORMAL df fCapital fOverslab + set [ArmHBar.short df fCapital fOverslab] : ArmHBar JUT-SHORT df fCapital fOverslab + set [ArmHBar.right df fCapital fOverslab] : ArmHBar JUT-RIGHT df fCapital fOverslab + set [ArmHBar.left df fCapital fOverslab] : ArmHBar JUT-LEFT df fCapital fOverslab + + glyph-block-export RightHook + define [RightHook df top sw baseSerif hookSerif _base _hookY] : glyph-proc + local base : fallback _base 0 + local hookY : fallback _hookY (top - Hook) + include : dispiro + widths.lhs df.mvs + g4 df.rightSB hookY + hookstart top (sw -- sw) + flat df.leftSB (top - ArchDepthA) + curl df.leftSB base [heading Downward] + if baseSerif : begin + local sf : SerifFrame.fromDf df top base + include sf.lb.full + if hookSerif : begin + local sf : SerifFrame.fromDf df top hookY + include sf.rb.full + + glyph-block-export LeftHook + define [LeftHook df top sw baseSerif hookSerif _base _hookY] : glyph-proc + local base : fallback _base 0 + local hookY : fallback _hookY (top - Hook) + include : dispiro + widths.rhs df.mvs + g4 df.leftSB hookY + hookstart top (sw -- sw) + flat df.rightSB (top - ArchDepthB) + curl df.rightSB base [heading Downward] + if baseSerif : begin + local sf : SerifFrame.fromDf df top base + include sf.rb.full + if hookSerif : begin + local sf : SerifFrame.fromDf df top hookY + include sf.lb.full + + glyph-block-export TwoNeck + define [TwoNeck df top bot _left _right _adb _flatp] : begin + local adb : fallback _adb SmallArchDepthB + local flatp : fallback _flatp 0.75 + local left : fallback _left df.leftSB + local right : fallback _right df.rightSB + local refY : top - adb * 1.5 - df.mvs / 2 * (1 - TanSlope) + return : list + g4.down.mid right (top - adb) + flat [mix left right flatp] [mix (bot + df.mvs) refY flatp] + curl left (bot + df.mvs) [widths.lhs df.mvs] + diff --git a/packages/font-glyphs/src/letter/armenian/to.ptl b/packages/font-glyphs/src/letter/armenian/to.ptl new file mode 100644 index 000000000..3a6deebee --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/to.ptl @@ -0,0 +1,63 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-To : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : nShoulderKnots SerifFrame + glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar + + # Common Params + define barPos : XH / 2 + define highBarPos XH + define jut Jut + + do "T'o" + create-glyph 'armn/To' 0x539 : glyph-proc + local df : include : DivFrame 1 + local fine : df.adviceStroke2 6 3 CAP + local barPosT : barPos + df.mvs / 2 + include : dispiro + widths.rhs df.mvs + flat df.leftSB 0 [heading Upward] + curl df.leftSB (CAP - ArchDepthA) + arch.rhs CAP (sw -- df.mvs) + flat df.rightSB (CAP - ArchDepthB) + curl df.rightSB (0 + ArchDepthA) + arch.rhs 0 (sw -- df.mvs) (swAfter -- fine) + g4 (df.middle - [HSwToV : fine / 2]) [mix 0 barPosT 0.5] [widths.rhs fine] + arcvh + flat [mix df.leftSB df.rightSB 0.7] barPosT [widths.rhs df.mvs] + curl df.rightSB barPosT + include : [ArmHBar.right df 1].mid + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include sf.lb.full + + create-glyph 'armn/to' 0x569 : glyph-proc + local df : include : DivFrame 1 + local fine : df.adviceStroke2 6 3 XH + include : df.markSet.p + include : VBar.l df.leftSB Descender XH df.mvs + local barPosT : XH / 2 + df.mvs / 2 + include : dispiro + nShoulderKnots + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + top -- XH + bottom -- (0 + ArchDepthA) + stroke -- df.mvs + arch.rhs 0 (sw -- df.mvs) (swAfter -- fine) + g4 (df.middle - [HSwToV : fine / 2]) [mix 0 barPosT 0.5] [widths.rhs fine] + arcvh + flat [mix df.leftSB df.rightSB 0.7] barPosT [widths.rhs df.mvs] + curl (df.rightSB + jut - [HSwToV : 0.5 * df.mvs]) barPosT + if SLAB : begin + local sf : SerifFrame.fromDf df XH Descender + include sf.lt.outer + if [not para.isItalic] : begin + include sf.lb.full \ No newline at end of file diff --git a/packages/font-glyphs/src/letter/armenian/upper-cheh.ptl b/packages/font-glyphs/src/letter/armenian/upper-cheh.ptl new file mode 100644 index 000000000..f353fbb0c --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/upper-cheh.ptl @@ -0,0 +1,38 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Upper-Cheh : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + + # Common Params + define barPos : XH / 2 + define highBarPos XH + define jut Jut + + do "Cheh" + create-glyph 'armn/Cheh' 0x543 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + local x1 : mix df.leftSB df.rightSB 0.75 + include : dispiro + widths.lhs df.mvs + flat x1 CAP + curl df.middle CAP + archv + flat df.leftSB (CAP - ArchDepthA) + curl df.leftSB (0 + ArchDepthB) + arcvh + flat df.middle 0 + curl df.rightSB 0 + include : dispiro + widths.rhs df.mvs + flat (df.leftSB - jut + [HSwToV : 0.5 * df.mvs]) XH + curl df.middle XH + archv + flat df.rightSB (XH - ArchDepthA) + curl df.rightSB 0 [heading Downward] diff --git a/packages/font-glyphs/src/letter/armenian/upper-co.ptl b/packages/font-glyphs/src/letter/armenian/upper-co.ptl new file mode 100644 index 000000000..151388f56 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/upper-co.ptl @@ -0,0 +1,37 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Upper-Co : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar + + do "C'o" + create-glyph 'armn/Co' 0x551 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + local midy : CAP * HBarPos + local midyTop : midy + 0.5 * df.mvs + local midyBot : midy - 0.5 * df.mvs + include : [ArmHBar.left df 1].at midy + include : dispiro + widths.lhs df.mvs + flat df.leftSB midyBot + curl df.middle midyBot + archv + flatside.ru df.rightSB midyBot CAP ArchDepthA ArchDepthB 0 + arch.lhs CAP (sw -- df.mvs) + flatside.ld df.leftSB midyBot CAP ArchDepthA ArchDepthB 0 + arcvh + straight.right.end df.middle midyBot [heading Rightward] + include : dispiro + widths.rhs df.mvs + straight.right.start df.middle midyTop [heading Rightward] + flatside.rd df.rightSB 0 midyTop SmallArchDepthA SmallArchDepthB + hookend 0 (sw -- df.mvs) + g4 (df.leftSB + OX) Hook diff --git a/packages/font-glyphs/src/letter/armenian/upper-dza-group.ptl b/packages/font-glyphs/src/letter/armenian/upper-dza-group.ptl new file mode 100644 index 000000000..84c5308a6 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/upper-dza-group.ptl @@ -0,0 +1,66 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Upper-Dza : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : CurlyTail + glyph-block-import Letter-Shared-Shapes : SerifFrame + + # Common Params + define barPos : XH / 2 + define highBarPos XH + define jut Jut + + do "Dz'a" + create-glyph 'armn/Dza' 0x541 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : dispiro + widths.rhs df.mvs + g4 df.leftSB (CAP - Hook) + hookstart CAP (sw -- df.mvs) + flat (df.rightSB - OX) (CAP - ArchDepthB) + curl (df.rightSB - OX) (CAP / 2) + CurlyTail.n df.mvs 0 df.leftSB df.rightSB 0 (yLoopTop -- (CAP - Hook) * 0.5) + + do "Sha" + create-glyph 'armn/Sha' 0x547 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + local fine : df.mvs * (ShoulderFine / Stroke) + include : dispiro + widths.rhs df.mvs + curl df.leftSB CAP [heading Rightward] + flat df.middle ([mix XH CAP 0.5] + df.mvs - fine) [heading Rightward] + curl df.rightSB (XH + df.mvs) [heading Rightward] + include : dispiro + widths.rhs df.mvs + g4 df.rightSB Hook + hookstart 0 (sw -- df.mvs) + flat df.leftSB ArchDepthB + curl df.leftSB ([mix XH CAP 0.5] - ArchDepthA) + arcvh + flat df.middle [mix XH CAP 0.5] [widths.rhs fine] + + do "Cha" + create-glyph 'armn/Cha' 0x549 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + local fine : df.mvs * (ShoulderFine / Stroke) + include : dispiro + widths.rhs df.mvs + g4 df.leftSB (CAP - Hook) + hookstart CAP (sw -- df.mvs) + flat df.rightSB (CAP - ArchDepthB) + curl df.rightSB ([mix (0.5 * XH) df.mvs 0.5] - fine + ArchDepthA) + arcvh + flat df.middle ([mix (0.5 * XH) df.mvs 0.5] - fine) [widths.rhs fine] + include : dispiro + widths.rhs df.mvs + flat [mix df.leftSB df.rightSB 0.1] (0.5 * XH) [heading Rightward] + curl [mix df.leftSB df.rightSB 0.9] df.mvs [heading Rightward] diff --git a/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl b/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl new file mode 100644 index 000000000..b5f2ec30d --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl @@ -0,0 +1,72 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Upper-Gim-Group : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar + + # Common Params + define barPos : XH / 2 + define highBarPos XH + define jut Jut + + do "Gim" + create-glyph 'armn/Gim' 0x533 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + local barPosB : barPos - df.mvs / 2 + include : dispiro + widths.lhs df.mvs + flat df.rightSB 0 [heading Upward] + curl df.rightSB (CAP - ArchDepthB) + arch.lhs CAP (sw -- df.mvs) + flat df.leftSB (CAP - ArchDepthA) + curl df.leftSB (barPosB + ArchDepthB) + arcvh + flat df.middle barPosB + curl (df.rightSB + jut - [HSwToV : 0.5 * df.mvs]) barPosB + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include sf.rb.full + + do "Zhe" + create-glyph 'armn/Zhe' 0x53A : glyph-proc + local df : include : DivFrame 1 + include : dispiro + widths.rhs df.mvs + flat df.rightSB CAP [heading Downward] + curl df.rightSB (0 + ArchDepthA) + arch.rhs 0 (sw -- df.mvs) + flat (df.leftSB + OX) (0 + ArchDepthB) + curl (df.leftSB + OX) (highBarPos - ArchDepthA) + arcvh + flat df.middle highBarPos + curl df.rightSB highBarPos + include : [ArmHBar.right df 1].high + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include sf.rt.full + + create-glyph 'armn/zhe' 0x56A : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.b + include : dispiro + widths.rhs df.mvs + flat df.rightSB Ascender [heading Downward] + curl df.rightSB (0 + SmallArchDepthA) + arch.rhs 0 (sw -- df.mvs) + flat (df.leftSB + OX) (0 + SmallArchDepthB) + curl (df.leftSB + OX) (highBarPos - SmallArchDepthA) + arcvh + flat df.middle highBarPos + curl df.rightSB highBarPos + include : [ArmHBar.right df 0].high + if SLAB : begin + local sf : SerifFrame.fromDf df Ascender 0 + include sf.rt.inner diff --git a/packages/font-glyphs/src/letter/armenian/upper-ho.ptl b/packages/font-glyphs/src/letter/armenian/upper-ho.ptl new file mode 100644 index 000000000..175054924 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/upper-ho.ptl @@ -0,0 +1,43 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Upper-Ho : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + + # Common Params + define barPos : XH / 2 + define highBarPos XH + define jut Jut + + do "Ho" + create-glyph 'armn/Ho' 0x540 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + + local x1 : mix df.leftSB df.rightSB 0.1 + local midy : CAP * HBarPos + include : dispiro + widths.rhs df.mvs + flat x1 CAP + curl df.middle CAP + archv + g4 df.rightSB [YSmoothMidR CAP (midy - df.mvs / 2) ArchDepthA ArchDepthB] + flat df.middle (midy - df.mvs / 2) [heading Downward] + + include : dispiro + widths.rhs df.mvs + flat (df.leftSB - jut + [HSwToV : 0.5 * df.mvs]) (midy + df.mvs / 2) + curl df.middle (midy + df.mvs / 2) + archv + flat (df.rightSB - O * 2) [YSmoothMidR (midy + df.mvs / 2) 0 ArchDepthA ArchDepthB] + curl (df.rightSB - O * 2) 0 + + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include sf.rb.full diff --git a/packages/font-glyphs/src/letter/armenian/upper-u-group.ptl b/packages/font-glyphs/src/letter/armenian/upper-u-group.ptl new file mode 100644 index 000000000..0b31c80a9 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/upper-u-group.ptl @@ -0,0 +1,52 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Upper-U-Group : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Latin-U : UShape USerifs + glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar + + do "Ayb" + glyph-block-import Letter-Latin-Upper-Q : QCrossing + create-glyph 'armn/Ayb' 0x531 : glyph-proc + local df : include : DivFrame 1 3 + include : df.markSet.capital + include : UShape df CAP 1 df.mvs + include : QCrossing df CAP df.mvs + if SLAB : include : USerifs.Toothless df CAP df.mvs + + do "Men" + create-glyph 'armn/Men' 0x544 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : UShape df CAP 0 df.mvs + include : [ArmHBar.right df 1 SLAB].top + if SLAB : begin + include : USerifs.Toothless df CAP df.mvs + + do "Vo" + create-glyph 'armn/Vo' 0x548 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : UShape df CAP 1 df.mvs + include : FlipAround Middle (CAP / 2) + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include : composite-proc sf.lb.full sf.rb.full + + do "Rra" + create-glyph 'armn/Rra' 0x54C : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : UShape df CAP 1 df.mvs + include : FlipAround Middle (CAP / 2) + include : [ArmHBar.right df 1].mid + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include : composite-proc sf.lb.full sf.rb.full diff --git a/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl b/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl new file mode 100644 index 000000000..28d25f124 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl @@ -0,0 +1,27 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Upper-Xeh : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Latin-Lower-AE-OE : SubDfAndShift + glyph-block-import Letter-Latin-U : UShape + + do "Xeh" + create-glyph 'armn/Xeh' 0x53D : glyph-proc + local df : include : DivFrame para.diversityM 3 + local { subDf shift } : SubDfAndShift 1 df + include : df.markSet.capital + include : VBar.l df.leftSB 0 CAP df.mvs + include : HBar.t df.leftSB df.middle XH df.mvs + include : with-transform [ApparentTranslate shift 0] : UShape subDf XH 0 subDf.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + local sf2 : SerifFrame.fromDf df XH 0 + include : composite-proc sf.lt.full sf.lb.full sf2.rt.full + if sf2.enoughSpaceForFullSerifs : include sf2.mt.full diff --git a/packages/font-glyphs/src/letter/armenian/upper-yi.ptl b/packages/font-glyphs/src/letter/armenian/upper-yi.ptl new file mode 100644 index 000000000..da959dc23 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/upper-yi.ptl @@ -0,0 +1,24 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Upper-Yi : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Greek-Lower-Epsilon : CyrZe + + do "Yi" + create-glyph 'armn/Yi' 0x545 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + local blend : 1 + 2 * O / (df.rightSB - df.leftSB) + local midy : mix 0 CAP OverlayPos + local ze : CyrZe 0 0 CAP 0 df.leftSB df.rightSB blend Hook + include : ze.Shape + if SLAB : begin + local yiJut : Math.min VJut : CAP - 2 * Hook - df.mvs + include : VBar.l (df.leftSB - 2 * O) (midy - 0.5 * yiJut) (midy + 0.5 * yiJut) df.mvs diff --git a/packages/font-glyphs/src/letter/armenian/upper-za-group.ptl b/packages/font-glyphs/src/letter/armenian/upper-za-group.ptl new file mode 100644 index 000000000..6f38482ea --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/upper-za-group.ptl @@ -0,0 +1,63 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Upper-Za-Group : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar + + do "Za" + create-glyph 'armn/Za' 0x536 : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + local fine : df.mvs * (ShoulderFine / Stroke) + local fine2 : df.adviceStroke 4 + include : dispiro + widths.rhs df.mvs + straight.up.start df.leftSB (CAP - ArchDepthA) + arch.rhs CAP (sw -- df.mvs) + flat df.rightSB (CAP - ArchDepthB) + curl df.rightSB (df.mvs - fine + ArchDepthA) + arcvh + flat df.leftSB (df.mvs - fine) [widths.rhs fine] + include : VBar.l df.leftSB 0 VJut fine2 + include : [ArmHBar.normal df 1].base + + do "Jheh" + create-glyph 'armn/Jheh' 0x54B : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + local fine : df.mvs * (ShoulderFine / Stroke) + local fine2 : df.adviceStroke 4 + local x1 : df.middle + [HSwToV : [StrokeWidthBlend 0 0.5] * fine2] + include : dispiro + widths.rhs df.mvs + straight.up.start df.leftSB (CAP - ArchDepthA) + arch.rhs CAP (sw -- df.mvs) + flat df.rightSB (CAP - ArchDepthB) + curl df.rightSB (df.mvs - fine + ArchDepthA) + arcvh + flat df.leftSB (df.mvs - fine) [widths.rhs fine] + include : intersection + spiro-outline + flat df.rightSB CAP + curl df.rightSB (df.mvs - fine + ArchDepthA) + arcvh + corner df.leftSB (df.mvs - fine) [widths.rhs fine] + corner df.leftSB CAP + dispiro + widths.lhs df.mvs + flat df.leftSB (CAP - ArchDepthA) + curl df.leftSB (CAP - 1.1 * ArchDepthA) + g4 [pre@mix@post 0.5] [pre@mix@post 0.5] [widths.center df.mvs] + flat x1 (0.55 * ArchDepthB) [widths.rhs fine2] + curl x1 (0.5 * ArchDepthB) [widths.rhs fine2] + arcvh + flat df.leftSB (df.mvs - fine) [widths.rhs fine] + include : VBar.l df.leftSB 0 VJut fine2 + include : [ArmHBar.normal df 1].base diff --git a/packages/font-glyphs/src/letter/latin/lower-q.ptl b/packages/font-glyphs/src/letter/latin/lower-q.ptl index 5645edc20..9acb7ba24 100644 --- a/packages/font-glyphs/src/letter/latin/lower-q.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-q.ptl @@ -100,8 +100,9 @@ glyph-block Letter-Latin-Lower-Q : begin select-variant 'q' 'q' link-reduced-variant 'q/sansSerif' 'q' MathSansSerif alias 'cyrl/qa' 0x51B 'q' - select-variant 'QRTail' 0x24A (follow -- 'qRTail') - select-variant 'qRTail' 0x24B + select-variant 'QRTail' 0x24A (follow -- "q/tailless") + select-variant 'qRTail' 0x24B (follow -- "q/tailless") + select-variant "q/tailless" (shapeFrom -- 'q') select-variant "q/hookTopBase" (shapeFrom -- 'q') derive-glyphs 'qHookTop' 0x2A0 "q/hookTopBase" : function [src gr] : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin/upper-q.ptl b/packages/font-glyphs/src/letter/latin/upper-q.ptl index c0e21cbd0..e1c0c665d 100644 --- a/packages/font-glyphs/src/letter/latin/upper-q.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-q.ptl @@ -104,6 +104,7 @@ glyph-block Letter-Latin-Upper-Q : begin flat [Math.min (df.middle + HookX - 1) (df.middle - [HSwToV HalfStroke] - TailDepth)] (Stroke + TailDepth) curl (df.middle + HookX) (Stroke + TailDepth) + glyph-block-export QCrossing define [QCrossing df top sw] : begin define k 1.5 define cor : DiagCor (k * (df.rightSB - df.middle)) (df.rightSB - df.middle - OX) diff --git a/packages/font-glyphs/src/letter/shared.ptl b/packages/font-glyphs/src/letter/shared.ptl index 357866c86..5d47aadd4 100644 --- a/packages/font-glyphs/src/letter/shared.ptl +++ b/packages/font-glyphs/src/letter/shared.ptl @@ -288,74 +288,67 @@ glyph-block Letter-Shared-Shapes : begin curl xend yend export : define [shape] : with-params [ - [top XH] [left SB] [right RightSB] [sw Stroke] [fine ShoulderFine] + [top XH] [bot 0] [left SB] [right RightSB] [sw Stroke] [fine ShoulderFine] [ada SmallArchDepthA] [adb SmallArchDepthB] ] : begin return : dispiro widths.lhs fine - flat (left + [HSwToV : sw - fine]) (top - ada - TINY) - curl (left + [HSwToV : sw - fine]) (0 + adb) - arch.lhs 0 (sw -- sw) (swBefore -- fine) - flat (right - OX) (0 + ada) - curl (right - OX) (top - adb) + flatside.ld (left + [HSwToV : sw - fine]) bot top ada adb 0 + arch.lhs bot (sw -- sw) (swBefore -- fine) + flatside.ru right bot top ada adb arch.lhs top (sw -- sw) (swAfter -- fine) - flat (left + [HSwToV : sw - fine]) (top - ada) [widths.lhs fine] - curl (left + [HSwToV : sw - fine]) (top - ada - TINY) + flatside.ld (left + [HSwToV : sw - fine]) bot top ada adb 0 (af -- [widths.lhs fine]) export : define [toothless] : with-params [ - [top XH] [left SB] [right RightSB] [rise SHook] [sw Stroke] [fine ShoulderFine] + [top XH] [bot 0] [left SB] [right RightSB] [rise SHook] [sw Stroke] [fine ShoulderFine] [mBlend Math.SQRT1_2] [ada SmallArchDepthA] [adb SmallArchDepthB] ] : begin return : dispiro - g4 left rise [widths.lhs sw] + g4 left (bot + rise) [widths.lhs sw] alsoThru.g2 0.5 mBlend important - arch.lhs.centerAt.ltr.b [mix left right 0.5] 0 (sw -- sw) + arch.lhs.centerAt.ltr.b [mix left right 0.5] bot (sw -- sw) archv - flat (right - OX) (0 + ada) - curl (right - OX) (top - adb) + flatside.ru right bot top ada adb arch.lhs top (sw -- sw) (swAfter -- fine) flat (left + [HSwToV : sw - fine]) (top - ada) [widths.lhs fine] curl (left + [HSwToV : sw - fine]) (top - ada - TINY) [widths.lhs fine] export : define [rounded] : with-params [ - [top XH] [left SB] [right RightSB] [yTerminal CAP] [sw Stroke] [fine ShoulderFine] + [top XH] [bot 0] [left SB] [right RightSB] [yTerminal CAP] [sw Stroke] [fine ShoulderFine] [ada SmallArchDepthA] [adb SmallArchDepthB] ] : begin return : dispiro flat left yTerminal [widths.lhs.heading sw Downward] curl left [Math.min adb (yTerminal - TINY)] - arch.lhs 0 (sw -- sw) - flat (right - OX) (0 + ada) - curl (right - OX) (top - adb) + arch.lhs bot (sw -- sw) + flatside.ru right bot top ada adb arch.lhs top (sw -- sw) (swAfter -- fine) flat (left + [HSwToV : sw - fine]) (top - ada + TINY) [widths.lhs fine] curl (left + [HSwToV : sw - fine]) (top - ada) [widths.lhs fine] export : define [toothlessTop] : with-params [ - [top XH] [left SB] [right RightSB] [rise SHook] [sw Stroke] [fine ShoulderFine] + [top XH] [bot 0] [left SB] [right RightSB] [rise SHook] [sw Stroke] [fine ShoulderFine] [mBlend Math.SQRT1_2] [ada SmallArchDepthA] [adb SmallArchDepthB] ] : begin return : dispiro - flat (left + [HSwToV : sw - fine]) (top - ada - TINY) [widths.lhs fine] - curl (left + [HSwToV : sw - fine]) (0 + adb) [widths.lhs fine] - arch.lhs 0 (sw -- sw) (swBefore -- fine) - flat (right - OX) (0 + ada) - curl (right - OX) (top - adb) + flat (left + [HSwToV : sw - fine]) (bot + adb + TINY) [widths.lhs fine] + curl (left + [HSwToV : sw - fine]) (bot + adb) [widths.lhs fine] + arch.lhs bot (sw -- sw) (swBefore -- fine) + flatside.ru right bot top ada adb arcvh arch.lhs.centerAt.rtl.t [mix left right 0.5] top (sw -- sw) alsoThru.g2 0.5 (1 - mBlend) important g4 left (top - rise) [widths.lhs sw] export : define [roundedTop] : with-params [ - [top XH] [left SB] [right RightSB] [yTerminal Descender] [sw Stroke] + [top XH] [bot 0] [left SB] [right RightSB] [yTerminal Descender] [sw Stroke] [fine ShoulderFine] [ada SmallArchDepthA] [adb SmallArchDepthB] ] : begin return : dispiro - flat (left + [HSwToV : sw - fine]) (top - ada - TINY) [widths.lhs fine] - curl (left + [HSwToV : sw - fine]) (0 + adb) [widths.lhs fine] - arch.lhs 0 (sw -- sw) (swBefore -- fine) - flat (right - OX) (0 + ada) - curl (right - OX) (top - adb) + flat (left + [HSwToV : sw - fine]) (bot + adb + TINY) [widths.lhs fine] + curl (left + [HSwToV : sw - fine]) (bot + adb) [widths.lhs fine] + arch.lhs bot (sw -- sw) (swBefore -- fine) + flatside.ru right bot top ada adb arch.lhs top (sw -- sw) flat left [Math.max (yTerminal + TINY - TanSlope * Stroke) (top - ada)] curl left yTerminal [widths.lhs.heading sw Downward] @@ -386,25 +379,27 @@ glyph-block Letter-Shared-Shapes : begin curl xend yend export : define [shape] : with-params [ - [top XH] [left SB] [right RightSB] [sw Stroke] [fine ShoulderFine] + [top XH] [bot 0] [left SB] [right RightSB] [sw Stroke] [fine ShoulderFine] [ada SmallArchDepthA] [adb SmallArchDepthB] ] : new-glyph : glyph-proc include : OBarLeft.shape top -- top + bot -- bot left -- left right -- right sw -- sw fine -- fine ada -- ada adb -- adb - include : FlipAround [mix left right 0.5] (top / 2) + include : FlipAround [mix left right 0.5] [mix bot top 0.5] export : define [toothless] : with-params [ - [top XH] [left SB] [right RightSB] [rise SHook] [sw Stroke] [fine ShoulderFine] + [top XH] [bot 0] [left SB] [right RightSB] [rise SHook] [sw Stroke] [fine ShoulderFine] [mBlend Math.SQRT1_2] [ada SmallArchDepthA] [adb SmallArchDepthB] ] : new-glyph : glyph-proc include : OBarLeft.toothlessTop top -- top + bot -- bot left -- left right -- right rise -- rise @@ -413,14 +408,15 @@ glyph-block Letter-Shared-Shapes : begin mBlend -- mBlend ada -- ada adb -- adb - include : FlipAround [mix left right 0.5] (top / 2) + include : FlipAround [mix left right 0.5] [mix bot top 0.5] export : define [rounded] : with-params [ - [top XH] [left SB] [right RightSB] [sw Stroke] [fine ShoulderFine] + [top XH] [bot 0] [left SB] [right RightSB] [sw Stroke] [fine ShoulderFine] [yTerminal CAP] [ada SmallArchDepthA] [adb SmallArchDepthB] ] : new-glyph : glyph-proc include : OBarLeft.roundedTop top -- top + bot -- bot left -- left right -- right sw -- sw @@ -428,7 +424,7 @@ glyph-block Letter-Shared-Shapes : begin yTerminal -- (top - yTerminal) ada -- ada adb -- adb - include : FlipAround [mix left right 0.5] (top / 2) + include : FlipAround [mix left right 0.5] [mix bot top 0.5] glyph-block-export FlatHookDepth define [FlatHookDepth df s] : object @@ -711,6 +707,11 @@ glyph-block Letter-Shared-Shapes : begin [rightAt x] : tagged 'serifMB' : HSerif.mbAsymmetric x bot 0 jutIn swSerif set this.mt : object full : tagged 'serifMT' : HSerif.mtAsymmetric [mix lBarCenter rBarCenter 0.5] top jutIn jutIn swSerif + [fullAt x] : tagged 'serifMT' : HSerif.mtAsymmetric x top jutIn jutIn swSerif + left : tagged 'serifMT' : HSerif.mtAsymmetric [mix lBarCenter rBarCenter 0.5] top jutIn 0 swSerif + [leftAt x] : tagged 'serifMT' : HSerif.mtAsymmetric x top jutIn 0 swSerif + right : tagged 'serifMT' : HSerif.mtAsymmetric [mix lBarCenter rBarCenter 0.5] top 0 jutIn swSerif + [rightAt x] : tagged 'serifMT' : HSerif.mtAsymmetric x top 0 jutIn swSerif public [slice l r] : begin local ink : HSwToV this.swRef diff --git a/packages/font-glyphs/src/meta/macros.ptl b/packages/font-glyphs/src/meta/macros.ptl index fb21c142b..efca73508 100644 --- a/packages/font-glyphs/src/meta/macros.ptl +++ b/packages/font-glyphs/src/meta/macros.ptl @@ -201,7 +201,7 @@ define-macro glyph-block-import : syntax-rules CommonShapes `[no-shape tagged Rect SquareAt Ring RingAt DotAt RingStroke RingStrokeAt DotStrokeAt Circle Ellipse OShapeT OShape OShapeOutline OShapeFlatTB HSerif VSerif NeedSlab NeedNotItalic HBar HOverlayBar VBar FlatSlashShape hookstart hookend - arch Ungizmo Regizmo FlipAround ScaleAround Realign ForceUpright DiagCor NameUni + flatside arch Ungizmo Regizmo FlipAround ScaleAround Realign ForceUpright DiagCor NameUni PointingTo with-transform with-outlined remove-holes radicalize clear-geometry clear-anchors ExtLineCenter ExtLineLhs ExtLineRhs DiagCorDs HCrossBar MaskAbove MaskBelow MaskLeft MaskRight HalfRectTriangle MaskAboveLine MaskBelowLine diff --git a/packages/font-glyphs/src/symbol/punctuation/dashes.ptl b/packages/font-glyphs/src/symbol/punctuation/dashes.ptl index 0d933a717..a459fe596 100644 --- a/packages/font-glyphs/src/symbol/punctuation/dashes.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/dashes.ptl @@ -51,6 +51,14 @@ glyph-block Symbol-Punctuation-Dashes : begin local df : include : DivFrame para.diversityF include : HBar.m df.leftSB df.rightSB SymbolMid + create-glyph 'armn/hyphen' 0x58A : glyph-proc + local df : include : DivFrame para.diversityF + include : dispiro + widths.center + g4 df.leftSB SymbolMid [heading Rightward] + g4 df.middle (0.95 * SymbolMid) + g4 df.rightSB SymbolMid [heading Rightward] + alias 'softhyphen' 0xAD 'hyphen' alias 'gpHyphen' 0x2010 'hyphen' alias 'nbHyphen' 0x2011 'hyphen' diff --git a/packages/font-glyphs/src/symbol/punctuation/small.ptl b/packages/font-glyphs/src/symbol/punctuation/small.ptl index 7b608bb0e..db5578200 100644 --- a/packages/font-glyphs/src/symbol/punctuation/small.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/small.ptl @@ -295,6 +295,7 @@ glyph-block Symbol-Punctuation-Small : begin select-variant 'dottedCross' 0x205C (follow -- 'punctuationDot') alias 'grek/question' 0x37E 'semicolon' + alias 'armn/fullstop' 0x589 'colon' turned 'turnSemiColon' 0x2E35 'semicolon' [DivFrame para.diversityF].middle (XH / 2) diff --git a/params/variants.toml b/params/variants.toml index 407e7177f..7832712a4 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -3953,7 +3953,7 @@ keyAffix = "" selectorAffix.q = "" selectorAffix."q/sansSerif" = "" selectorAffix."q/hookTopBase" = "" -selectorAffix.qRTail = "" +selectorAffix."q/tailless" = "" selectorAffix.gha = "" [prime.q.variants-buildup.stages.body.earless-corner] @@ -3962,7 +3962,7 @@ descriptionAffix = "earless (cornered) shape" selectorAffix.q = "earlessCorner" selectorAffix."q/sansSerif" = "earlessCorner" selectorAffix."q/hookTopBase" = "earlessCorner" -selectorAffix.qRTail = "earlessCorner" +selectorAffix."q/tailless" = "earlessCorner" selectorAffix.gha = "" [prime.q.variants-buildup.stages.body.earless-rounded] @@ -3971,7 +3971,7 @@ descriptionAffix = "earless (rounded) shape" selectorAffix.q = "earlessRounded" selectorAffix."q/sansSerif" = "earlessRounded" selectorAffix."q/hookTopBase" = "" -selectorAffix.qRTail = "earlessRounded" +selectorAffix."q/tailless" = "earlessRounded" selectorAffix.gha = "" [prime.q.variants-buildup.stages.terminal."*"] @@ -3983,7 +3983,7 @@ descriptionAffix = "straight terminal" selectorAffix.q = "straight" selectorAffix."q/sansSerif" = "straight" selectorAffix."q/hookTopBase" = "straight" -selectorAffix.qRTail = "straight" +selectorAffix."q/tailless" = "straight" selectorAffix.gha = "straight" [prime.q.variants-buildup.stages.terminal.tailed] @@ -3992,7 +3992,7 @@ descriptionAffix = "tailed terminal" selectorAffix.q = "tailed" selectorAffix."q/sansSerif" = "tailed" selectorAffix."q/hookTopBase" = "tailed" -selectorAffix.qRTail = "straight" +selectorAffix."q/tailless" = "straight" selectorAffix.gha = "tailed" [prime.q.variants-buildup.stages.terminal.diagonal-tailed] @@ -4001,7 +4001,7 @@ descriptionAffix = "diagonally tailed terminal" selectorAffix.q = "diagonalTailed" selectorAffix."q/sansSerif" = "diagonalTailed" selectorAffix."q/hookTopBase" = "diagonalTailed" -selectorAffix.qRTail = "straight" +selectorAffix."q/tailless" = "straight" selectorAffix.gha = "diagonalTailed" [prime.q.variants-buildup.stages.serifs.serifless] @@ -4011,7 +4011,7 @@ descriptionJoiner = "without" selectorAffix.q = "serifless" selectorAffix."q/sansSerif" = "serifless" selectorAffix."q/hookTopBase" = "serifless" -selectorAffix.qRTail = "serifless" +selectorAffix."q/tailless" = "serifless" selectorAffix.gha = "serifless" [prime.q.variants-buildup.stages.serifs.bottom-serifed] @@ -4021,7 +4021,7 @@ descriptionAffix = "serif at bottom" selectorAffix.q = "bottomSerifed" selectorAffix."q/sansSerif" = "serifless" selectorAffix."q/hookTopBase" = "bottomSerifed" -selectorAffix.qRTail = "serifless" +selectorAffix."q/tailless" = "serifless" selectorAffix.gha = "bottomSerifed" [prime.q.variants-buildup.stages.serifs.motion-serifed] @@ -4031,7 +4031,7 @@ descriptionAffix = "motion serifs" selectorAffix.q = "motionSerifed" selectorAffix."q/sansSerif" = "serifless" selectorAffix."q/hookTopBase" = "serifless" -selectorAffix.qRTail = "motionSerifed" +selectorAffix."q/tailless" = "motionSerifed" selectorAffix.gha = "serifless" [prime.q.variants-buildup.stages.serifs.serifed__eared] @@ -4042,7 +4042,7 @@ descriptionAffix = "serifs" selectorAffix.q = "serifed" selectorAffix."q/sansSerif" = "serifless" selectorAffix."q/hookTopBase" = "bottomSerifed" -selectorAffix.qRTail = "motionSerifed" +selectorAffix."q/tailless" = "motionSerifed" selectorAffix.gha = "bottomSerifed" [prime.q.variants-buildup.stages.serifs.serifed__eareless] @@ -4053,7 +4053,7 @@ descriptionAffix = "serifs" selectorAffix.q = "bottomSerifed" selectorAffix."q/sansSerif" = "serifless" selectorAffix."q/hookTopBase" = "bottomSerifed" -selectorAffix.qRTail = "serifless" +selectorAffix."q/tailless" = "serifless" selectorAffix.gha = "bottomSerifed"