Optimize arch depths of Armenian letters. (#2668)

* Optimize arch depths of Armenian letters.

* Cleanup of `Հ`/`Ց`/`Ֆ`/`ֆ`.
This commit is contained in:
John McWilliams 2025-02-02 16:24:15 -05:00 committed by GitHub
parent 077fb54680
commit 4021817f9f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 120 additions and 81 deletions

13
changes/32.5.1.md Normal file
View file

@ -0,0 +1,13 @@
* Refine shape of the following characters:
- ARMENIAN CAPITAL LETTER XEH (`U+053D`).
- ARMENIAN CAPITAL LETTER CA (`U+053E`).
- ARMENIAN CAPITAL LETTER HO (`U+0540`).
- ARMENIAN CAPITAL LETTER CO (`U+0551`).
- ARMENIAN CAPITAL LETTER FEH (`U+0556`).
- ARMENIAN SMALL LETTER ZHE (`U+056A`).
- ARMENIAN SMALL LETTER XEH (`U+056D`).
- ARMENIAN SMALL LETTER CHA (`U+0579`).
- ARMENIAN SMALL LETTER TIWN (`U+057F`).
- ARMENIAN SMALL LETTER PIWR (`U+0583`).
- ARMENIAN SMALL LETTER FEH (`U+0586`).
- ARMENIAN SMALL LIGATURE ECH YIWN (`U+0587`).

View file

@ -19,11 +19,17 @@ glyph-block Letter-Armenian-Ca : begin
create-glyph 'armn/Ca' 0x53E : glyph-proc create-glyph 'armn/Ca' 0x53E : glyph-proc
local df : include : DivFrame 1 local df : include : DivFrame 1
include : df.markSet.capital include : df.markSet.capital
include : VBar.l df.leftSB (CAP - VJut) CAP df.mvs
local yStart : CAP - VJut + df.mvs local yStart : CAP - VJut + df.mvs
local xStart : Math.min df.leftSB : Math.max
[mix df.leftSB df.rightSB 0.4] - [HSwToV : 1.5 * df.mvs] - jut
df.leftSB - jut + [HSwToV : 0.5 * df.mvs]
include : VBar.l xStart (yStart - df.mvs) CAP df.mvs
include : dispiro include : dispiro
widths.rhs.heading df.mvs Rightward widths.rhs.heading df.mvs Rightward
flat df.leftSB yStart flat xStart yStart
curl df.middle yStart curl df.middle yStart
archv archv
flat df.rightSB (yStart - ArchDepthB) flat df.rightSB (yStart - ArchDepthB)

View file

@ -18,14 +18,14 @@ glyph-block Letter-Armenian-Feh : begin
widths.lhs sw widths.lhs sw
straight.left.start df.middle top straight.left.start df.middle top
archv archv
flatside.ld df.leftSB midyBot top ada adb g4 df.leftSB [mix top midyBot (ada / (ada + adb))]
arcvh arcvh
straight.right.end df.middle midyBot [heading Rightward] straight.right.end df.middle midyBot [heading Rightward]
include : dispiro include : dispiro
widths.rhs sw widths.rhs sw
straight.right.start df.middle midyTop [heading Rightward] straight.right.start df.middle midyTop [heading Rightward]
archv archv
flatside.rd df.rightSB 0 midyTop ada adb g4 (df.rightSB - OX) [mix midyTop 0 (adb / (ada + adb))]
hookend 0 (sw -- sw) hookend 0 (sw -- sw)
g4 (df.leftSB + OX) (0 + hook) g4 (df.leftSB + OX) (0 + hook)

View file

@ -36,7 +36,8 @@ glyph-block Letter-Armenian-Lower-Sha-Group : begin
local y2 : XH / 2 local y2 : XH / 2
include : dispiro include : dispiro
widths.center df.mvs widths.center df.mvs
straight.down.start (x1 + [HSwToV : 0.5 * df.mvs]) XH [heading Downward] flat (x1 + [HSwToV : 0.5 * df.mvs]) XH [heading Downward]
curl (x1 + [HSwToV : 0.5 * df.mvs]) [Math.min (y2 + 0.8 * SmallArchDepthB) (XH - TINY)] [heading Downward]
arcvh arcvh
flat (df.middle + [HSwToV : 0.5 * df.mvs]) y2 flat (df.middle + [HSwToV : 0.5 * df.mvs]) y2
curl x2 y2 [heading Rightward] curl x2 y2 [heading Rightward]

View file

@ -49,10 +49,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
include : df.markSet.p include : df.markSet.p
include : VBar.l df.leftSB Descender XH df.mvs include : VBar.l df.leftSB Descender XH df.mvs
include : nShoulder.shape include : nShoulder.shape
left -- (df.leftSB + [HSwToV df.mvs]) top -- XH
right -- df.rightSB
top -- XH
bottom -- (XH / 2) bottom -- (XH / 2)
left -- (df.leftSB + [HSwToV df.mvs])
right -- df.rightSB
stroke -- df.mvs stroke -- df.mvs
include : [ArmHBar.normal df].base include : [ArmHBar.normal df].base
if SLAB : begin if SLAB : begin
@ -65,10 +65,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
include : df.markSet.p include : df.markSet.p
include : VBar.l df.leftSB 0 XH df.mvs include : VBar.l df.leftSB 0 XH df.mvs
include : nShoulder.shape include : nShoulder.shape
left -- (df.leftSB + [HSwToV df.mvs]) top -- XH
right -- df.rightSB
top -- XH
bottom -- Descender bottom -- Descender
left -- (df.leftSB + [HSwToV df.mvs])
right -- df.rightSB
stroke -- df.mvs stroke -- df.mvs
include : [ArmHBar.right df].base include : [ArmHBar.right df].base
if SLAB : begin if SLAB : begin
@ -84,10 +84,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
local df : include : DivFrame 1 local df : include : DivFrame 1
include : df.markSet.b include : df.markSet.b
include : uBowl.shape include : uBowl.shape
top -- Ascender top -- Ascender
bottom -- 0 bottom -- 0
left -- df.leftSB left -- df.leftSB
right -- (df.rightSB - [HSwToV df.mvs]) right -- (df.rightSB - [HSwToV df.mvs])
stroke -- df.mvs stroke -- df.mvs
include : VBar.r df.rightSB 0 [mix 0 XH 0.6] df.mvs include : VBar.r df.rightSB 0 [mix 0 XH 0.6] df.mvs
include : [ArmHBar.normal df].high include : [ArmHBar.normal df].high
@ -100,10 +100,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
include : df.markSet.b include : df.markSet.b
include : VBar.l df.leftSB Descender XH df.mvs include : VBar.l df.leftSB Descender XH df.mvs
include : nShoulder.shape include : nShoulder.shape
left -- (df.leftSB + [HSwToV df.mvs]) top -- XH
right -- df.rightSB
top -- XH
bottom -- 0 bottom -- 0
left -- (df.leftSB + [HSwToV df.mvs])
right -- df.rightSB
stroke -- df.mvs stroke -- df.mvs
include : [ArmHBar.normal df].desc include : [ArmHBar.normal df].desc
if SLAB : begin if SLAB : begin
@ -118,10 +118,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
include : df.markSet.bp include : df.markSet.bp
include : VBar.l df.leftSB Descender Ascender df.mvs include : VBar.l df.leftSB Descender Ascender df.mvs
include : nShoulder.shape include : nShoulder.shape
left -- (df.leftSB + [HSwToV df.mvs]) top -- XH
right -- df.rightSB
top -- XH
bottom -- 0 bottom -- 0
left -- (df.leftSB + [HSwToV df.mvs])
right -- df.rightSB
stroke -- df.mvs stroke -- df.mvs
if SLAB : begin if SLAB : begin
local sf : SerifFrame.fromDf df Ascender Descender local sf : SerifFrame.fromDf df Ascender Descender
@ -133,18 +133,23 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
create-glyph 'armn/xeh' 0x56D : glyph-proc create-glyph 'armn/xeh' 0x56D : glyph-proc
local df : include : DivFrame para.advanceScaleMM 3 local df : include : DivFrame para.advanceScaleMM 3
include : df.markSet.bp include : df.markSet.bp
local subDf : df.slice 3 2 OX
include : uBowl.shape include : uBowl.shape
top -- (XH / 2) top -- (XH / 2)
bottom -- 0 bottom -- 0
left -- (df.middle - [HSwToV : df.mvs / 2]) left -- (df.middle - [HSwToV : 0.5 * df.mvs])
right -- (df.rightSB - [HSwToV df.mvs]) right -- (df.rightSB - [HSwToV df.mvs])
stroke -- df.mvs stroke -- df.mvs
ada -- subDf.smallArchDepthA
adb -- subDf.smallArchDepthB
include : nShoulder.shape include : nShoulder.shape
top -- XH top -- XH
bottom -- (XH / 2) bottom -- (XH / 2)
left -- (df.leftSB + [HSwToV df.mvs]) left -- (df.leftSB + [HSwToV df.mvs])
right -- (df.middle + [HSwToV : df.mvs / 2]) right -- (df.middle + [HSwToV : 0.5 * df.mvs])
stroke -- df.mvs stroke -- df.mvs
ada -- subDf.smallArchDepthA
adb -- subDf.smallArchDepthB
include : VBar.l df.leftSB Descender Ascender df.mvs include : VBar.l df.leftSB Descender Ascender df.mvs
include : VBar.r df.rightSB 0 XH df.mvs include : VBar.r df.rightSB 0 XH df.mvs
if SLAB : begin if SLAB : begin
@ -160,10 +165,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
local df : include : DivFrame 1 local df : include : DivFrame 1
include : df.markSet.bp include : df.markSet.bp
include : uBowl.shape include : uBowl.shape
top -- Ascender top -- Ascender
bottom -- 0 bottom -- 0
left -- df.leftSB left -- df.leftSB
right -- (df.rightSB - [HSwToV df.mvs]) right -- (df.rightSB - [HSwToV df.mvs])
stroke -- df.mvs stroke -- df.mvs
include : VBar.r df.rightSB Descender XH df.mvs include : VBar.r df.rightSB Descender XH df.mvs
if SLAB : begin if SLAB : begin
@ -180,10 +185,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
include : df.markSet.b include : df.markSet.b
include : VBar.l df.leftSB 0 Ascender df.mvs include : VBar.l df.leftSB 0 Ascender df.mvs
include : nShoulder.shape include : nShoulder.shape
left -- (df.leftSB + [HSwToV df.mvs]) top -- XH
right -- df.rightSB
top -- XH
bottom -- 0 bottom -- 0
left -- (df.leftSB + [HSwToV df.mvs])
right -- df.rightSB
stroke -- df.mvs stroke -- df.mvs
if SLAB : begin if SLAB : begin
local sf : SerifFrame.fromDf df Ascender 0 local sf : SerifFrame.fromDf df Ascender 0
@ -197,10 +202,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
include : df.markSet.p include : df.markSet.p
include : VBar.l df.leftSB 0 XH df.mvs include : VBar.l df.leftSB 0 XH df.mvs
include : nShoulder.shape include : nShoulder.shape
left -- (df.leftSB + [HSwToV df.mvs]) top -- XH
right -- df.rightSB
top -- XH
bottom -- Descender bottom -- Descender
left -- (df.leftSB + [HSwToV df.mvs])
right -- df.rightSB
stroke -- df.mvs stroke -- df.mvs
include : [ArmHBar.right df].desc include : [ArmHBar.right df].desc
if SLAB : begin if SLAB : begin
@ -213,10 +218,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
local df : include : DivFrame 1 local df : include : DivFrame 1
include : df.markSet.b include : df.markSet.b
include : uBowl.shape include : uBowl.shape
top -- XH top -- XH
bottom -- 0 bottom -- 0
left -- df.leftSB left -- df.leftSB
right -- (df.rightSB - [HSwToV df.mvs]) right -- (df.rightSB - [HSwToV df.mvs])
stroke -- df.mvs stroke -- df.mvs
include : VBar.r df.rightSB 0 Ascender df.mvs include : VBar.r df.rightSB 0 Ascender df.mvs
include : [ArmHBar.right df].asc include : [ArmHBar.right df].asc
@ -230,10 +235,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
local df : include : DivFrame 1 local df : include : DivFrame 1
include : df.markSet.b include : df.markSet.b
include : uBowl.shape include : uBowl.shape
top -- Ascender top -- Ascender
bottom -- 0 bottom -- 0
left -- df.leftSB left -- df.leftSB
right -- (df.rightSB - [HSwToV df.mvs]) right -- (df.rightSB - [HSwToV df.mvs])
stroke -- df.mvs stroke -- df.mvs
include : VBar.r df.rightSB 0 XH df.mvs include : VBar.r df.rightSB 0 XH df.mvs
include : [ArmHBar.left df].asc include : [ArmHBar.left df].asc
@ -248,10 +253,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
include : df.markSet.e include : df.markSet.e
include : VBar.l df.leftSB 0 XH df.mvs include : VBar.l df.leftSB 0 XH df.mvs
include : nShoulder.shape include : nShoulder.shape
left -- (df.leftSB + [HSwToV df.mvs]) top -- XH
right -- df.rightSB
top -- XH
bottom -- 0 bottom -- 0
left -- (df.leftSB + [HSwToV df.mvs])
right -- df.rightSB
stroke -- df.mvs stroke -- df.mvs
if SLAB : begin if SLAB : begin
local sf : SerifFrame.fromDf df XH 0 local sf : SerifFrame.fromDf df XH 0
@ -279,14 +284,14 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
include : VBar.l df.leftSB 0 XH df.mvs include : VBar.l df.leftSB 0 XH df.mvs
# Combination of nShoulder.knots and the straight 2 shape # Combination of nShoulder.knots and the straight 2 shape
local left : Math.max df.middle : df.rightSB - [HSwToV df.mvs] - jut local left : Math.max df.middle : (df.rightSB - [HSwToV df.mvs]) - jut
include : dispiro include : dispiro
widths.rhs df.shoulderFine widths.rhs df.shoulderFine
flat (df.leftSB + [HSwToV : df.mvs - df.shoulderFine]) (XH - SmallArchDepthA - TINY) flat (df.leftSB + [HSwToV : df.mvs - df.shoulderFine]) (XH - SmallArchDepthA - TINY)
curl (df.leftSB + [HSwToV : df.mvs - df.shoulderFine]) (XH - SmallArchDepthA) curl (df.leftSB + [HSwToV : df.mvs - df.shoulderFine]) (XH - SmallArchDepthA)
arch.rhs XH (sw -- df.mvs) (swBefore -- df.shoulderFine) arch.rhs XH (sw -- df.mvs) (swBefore -- df.shoulderFine)
TwoNeck df XH 0 left TwoNeck df XH 0 left
include : HBar.b left (left + [HSwToV df.mvs] + jut) 0 df.mvs include : HBar.b left ((left + [HSwToV df.mvs]) + jut) 0 df.mvs
if SLAB : begin if SLAB : begin
local sf : SerifFrame.fromDf df XH 0 local sf : SerifFrame.fromDf df XH 0
include sf.lt.outer include sf.lt.outer
@ -294,10 +299,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
# Alternate straight 'n' form # Alternate straight 'n' form
# include : nShoulder.shape # include : nShoulder.shape
# left -- (df.leftSB + [HSwToV df.mvs]) # top -- XH
# right -- df.rightSB
# top -- XH
# bottom -- 0 # bottom -- 0
# left -- (df.leftSB + [HSwToV df.mvs])
# right -- df.rightSB
# stroke -- df.mvs # stroke -- df.mvs
# include : [ArmHBar.right df].base # include : [ArmHBar.right df].base
# if SLAB : begin # if SLAB : begin
@ -310,10 +315,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
local df : include : DivFrame 1 local df : include : DivFrame 1
include : df.markSet.e include : df.markSet.e
include : uBowl.shape include : uBowl.shape
top -- XH top -- XH
bottom -- 0 bottom -- 0
left -- df.leftSB left -- df.leftSB
right -- (df.rightSB - [HSwToV df.mvs]) right -- (df.rightSB - [HSwToV df.mvs])
stroke -- df.mvs stroke -- df.mvs
include : VBar.r df.rightSB 0 XH df.mvs include : VBar.r df.rightSB 0 XH df.mvs
if SLAB : begin if SLAB : begin
@ -327,10 +332,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
local df : include : DivFrame 1 local df : include : DivFrame 1
include : df.markSet.bp include : df.markSet.bp
include : uBowl.shape include : uBowl.shape
top -- XH top -- XH
bottom -- 0 bottom -- 0
left -- df.leftSB left -- df.leftSB
right -- (df.rightSB - [HSwToV df.mvs]) right -- (df.rightSB - [HSwToV df.mvs])
stroke -- df.mvs stroke -- df.mvs
include : VBar.r df.rightSB Descender Ascender df.mvs include : VBar.r df.rightSB Descender Ascender df.mvs
include : [ArmHBar.right df].desc include : [ArmHBar.right df].desc
@ -343,18 +348,23 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
create-glyph 'armn/tiun' 0x57F : glyph-proc create-glyph 'armn/tiun' 0x57F : glyph-proc
local df : include : DivFrame para.advanceScaleMM 3 local df : include : DivFrame para.advanceScaleMM 3
include : df.markSet.e include : df.markSet.e
local subDf : df.slice 3 2 OX
include : uBowl.shape include : uBowl.shape
top -- XH top -- XH
bottom -- 0 bottom -- 0
left -- df.leftSB left -- df.leftSB
right -- (df.middle - [HSwToV : 0.5 * df.mvs]) right -- (df.middle - [HSwToV : 0.5 * df.mvs])
stroke -- df.mvs stroke -- df.mvs
ada -- subDf.smallArchDepthA
adb -- subDf.smallArchDepthB
include : nShoulder.shape include : nShoulder.shape
top -- XH top -- XH
bottom -- 0 bottom -- 0
left -- (df.middle + [HSwToV : df.mvs / 2]) left -- (df.middle + [HSwToV : 0.5 * df.mvs])
right -- df.rightSB right -- df.rightSB
stroke -- df.mvs stroke -- df.mvs
ada -- subDf.smallArchDepthA
adb -- subDf.smallArchDepthB
include : VBar.m df.middle 0 XH df.mvs include : VBar.m df.middle 0 XH df.mvs
if SLAB : begin if SLAB : begin
local sf : SerifFrame.fromDf df XH 0 local sf : SerifFrame.fromDf df XH 0
@ -367,10 +377,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
local df : include : DivFrame 1 local df : include : DivFrame 1
include : df.markSet.b include : df.markSet.b
include : nShoulder.shape include : nShoulder.shape
top -- XH top -- XH
bottom -- 0 bottom -- 0
left -- (df.leftSB + [HSwToV df.mvs]) left -- (df.leftSB + [HSwToV df.mvs])
right -- df.rightSB right -- df.rightSB
stroke -- df.mvs stroke -- df.mvs
include : VBar.l df.leftSB Descender XH df.mvs include : VBar.l df.leftSB Descender XH df.mvs
if SLAB : begin if SLAB : begin
@ -383,18 +393,23 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
create-glyph 'armn/piur' 0x583 : glyph-proc create-glyph 'armn/piur' 0x583 : glyph-proc
local df : include : DivFrame para.advanceScaleMM 3 local df : include : DivFrame para.advanceScaleMM 3
include : df.markSet.bp include : df.markSet.bp
local subDf : df.slice 3 2 OX
include : uBowl.shape include : uBowl.shape
top -- XH top -- XH
bottom -- 0 bottom -- 0
left -- df.leftSB left -- df.leftSB
right -- (df.middle - [HSwToV : 0.5 * df.mvs]) right -- (df.middle - [HSwToV : 0.5 * df.mvs])
stroke -- df.mvs stroke -- df.mvs
ada -- subDf.smallArchDepthA
adb -- subDf.smallArchDepthB
include : nShoulder.shape include : nShoulder.shape
top -- XH top -- XH
bottom -- 0 bottom -- 0
left -- (df.middle + [HSwToV : df.mvs / 2]) left -- (df.middle + [HSwToV : 0.5 * df.mvs])
right -- df.rightSB right -- df.rightSB
stroke -- df.mvs stroke -- df.mvs
ada -- subDf.smallArchDepthA
adb -- subDf.smallArchDepthB
include : VBar.m df.middle Descender Ascender df.mvs include : VBar.m df.middle Descender Ascender df.mvs
if SLAB : begin if SLAB : begin
local sf : SerifFrame.fromDf df XH 0 local sf : SerifFrame.fromDf df XH 0
@ -408,12 +423,15 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
create-glyph 'armn/ew' 0x587 : glyph-proc create-glyph 'armn/ew' 0x587 : glyph-proc
local df : include : DivFrame para.advanceScaleMM 3 local df : include : DivFrame para.advanceScaleMM 3
include : df.markSet.b include : df.markSet.b
local subDf : df.slice 3 2 OX
include : uBowl.shape include : uBowl.shape
top -- Ascender top -- Ascender
bottom -- 0 bottom -- 0
left -- df.leftSB left -- df.leftSB
right -- (df.middle - [HSwToV : 0.5 * df.mvs]) right -- (df.middle - [HSwToV : 0.5 * df.mvs])
stroke -- df.mvs stroke -- df.mvs
ada -- subDf.smallArchDepthA
adb -- subDf.smallArchDepthB
include : VBar.m df.middle 0 XH df.mvs include : VBar.m df.middle 0 XH df.mvs
include : HBar.b df.middle df.rightSB 0 df.mvs include : HBar.b df.middle df.rightSB 0 df.mvs
if SLAB : begin if SLAB : begin

View file

@ -27,15 +27,15 @@ glyph-block Letter-Armenian-Upper-Co : begin
flat (df.leftSB - jut + [HSwToV : 0.5 * df.mvs]) midyBot flat (df.leftSB - jut + [HSwToV : 0.5 * df.mvs]) midyBot
curl df.middle midyBot curl df.middle midyBot
archv archv
flatside.ru df.rightSB midyBot CAP ArchDepthA ArchDepthB 0 g4 df.rightSB [mix midyBot CAP (ArchDepthA / (ArchDepthA + ArchDepthB))]
arch.lhs CAP (sw -- df.mvs) arch.lhs CAP (sw -- df.mvs)
flatside.ld df.leftSB midyBot CAP ArchDepthA ArchDepthB 0 g4 df.leftSB [mix CAP midyBot (ArchDepthA / (ArchDepthA + ArchDepthB))]
arcvh arcvh
straight.right.end df.middle midyBot [heading Rightward] straight.right.end df.middle midyBot [heading Rightward]
include : dispiro include : dispiro
widths.rhs df.mvs widths.rhs df.mvs
straight.right.start df.middle midyTop [heading Rightward] straight.right.start df.middle midyTop [heading Rightward]
archv archv
flatside.rd df.rightSB 0 midyTop ArchDepthA ArchDepthB g4 (df.rightSB - OX) [mix midyTop 0 (ArchDepthB / (ArchDepthA + ArchDepthB))]
hookend 0 (sw -- df.mvs) hookend 0 (sw -- df.mvs)
g4 (df.leftSB + OX) Hook g4 (df.leftSB + OX) Hook

View file

@ -57,7 +57,7 @@ glyph-block Letter-Armenian-Upper-Gim-Group : begin
flat df.rightSB Ascender [heading Downward] flat df.rightSB Ascender [heading Downward]
curl df.rightSB (0 + SmallArchDepthA) curl df.rightSB (0 + SmallArchDepthA)
arch.rhs 0 (sw -- df.mvs) arch.rhs 0 (sw -- df.mvs)
flatside.lu df.leftSB 0 highBarPos ArchDepthA ArchDepthB flatside.lu df.leftSB 0 highBarPos SmallArchDepthA SmallArchDepthB
arcvh arcvh
flat df.middle highBarPos flat df.middle highBarPos
curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) highBarPos curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) highBarPos

View file

@ -29,7 +29,7 @@ glyph-block Letter-Armenian-Upper-Ho : begin
flat x1 CAP flat x1 CAP
curl df.middle CAP [heading Rightward] curl df.middle CAP [heading Rightward]
archv archv
flatside.rd df.rightSB midyBot CAP ArchDepthA ArchDepthB g4 (df.rightSB + O * 2) [mix CAP midyBot (ArchDepthB / (ArchDepthA + ArchDepthB))]
arcvh arcvh
straight.left.end df.middle midyBot [heading Leftward] straight.left.end df.middle midyBot [heading Leftward]
@ -38,8 +38,8 @@ glyph-block Letter-Armenian-Upper-Ho : begin
flat (df.leftSB - jut + [HSwToV : 0.5 * df.mvs]) midyTop flat (df.leftSB - jut + [HSwToV : 0.5 * df.mvs]) midyTop
curl df.middle midyTop [heading Rightward] curl df.middle midyTop [heading Rightward]
archv archv
flat (df.rightSB - O * 2) [YSmoothMidR midyTop 0 ArchDepthA ArchDepthB] flat df.rightSB [if (ArchDepthA + ArchDepthB < midyTop) (midyTop - ArchDepthB) : mix midyTop 0 (ArchDepthB / (ArchDepthA + ArchDepthB))]
curl (df.rightSB - O * 2) 0 [heading Downward] curl df.rightSB 0 [heading Downward]
if SLAB : begin if SLAB : begin
local sf : SerifFrame.fromDf df CAP 0 local sf : SerifFrame.fromDf df CAP 0

View file

@ -19,7 +19,8 @@ glyph-block Letter-Armenian-Upper-Xeh : begin
include : df.markSet.capital include : df.markSet.capital
include : VBar.l df.leftSB 0 CAP df.mvs include : VBar.l df.leftSB 0 CAP df.mvs
include : HBar.t df.leftSB df.middle XH df.mvs include : HBar.t df.leftSB df.middle XH df.mvs
include : with-transform [ApparentTranslate shift 0] : UShape subDf XH 0 subDf.mvs include : with-transform [ApparentTranslate shift 0]
UShape subDf XH 0 subDf.mvs subDf.archDepthA subDf.archDepthB
if SLAB : begin if SLAB : begin
local sf : SerifFrame.fromDf df CAP 0 local sf : SerifFrame.fromDf df CAP 0
local sf2 : SerifFrame.fromDf df XH 0 local sf2 : SerifFrame.fromDf df XH 0