Harmonize serifs and hook/bar terminals of զ
/լ
/յ
/ց
(Armenian). (#2571)
* Make bar terminal of `լ` match `զ` under QP. * Make `զ`/`լ`/`յ`/`ց` match each other. * Reduce glyph count surrounding `g` and cleanup. * Minor cleanup of `ծ` and `ձ`. * Subtle optimization of `◌՟`. * Add Armenian language sample.
This commit is contained in:
parent
a6fe9a9fdf
commit
072a307920
10 changed files with 58 additions and 59 deletions
2
changes/32.0.2.md
Normal file
2
changes/32.0.2.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
* Make serif of Armenian Lower Yi (`U+0575`) consistent with Armenian Lower Liwn (`U+056C`).
|
||||
* Make hook of Armenian Lower Co (`U+0581`) consistent with Armenian Lower Yi (`U+0575`).
|
|
@ -10,7 +10,7 @@ glyph-block Letter-Armenian-Aliases : begin
|
|||
alias 'armn/Tiun' 0x54F 'S.serifless'
|
||||
alias 'armn/Piur' 0x553 'grek/Phi'
|
||||
alias 'armn/Oh' 0x555 'O'
|
||||
alias 'armn/yi' 0x575 : if SLAB 'dotlessj.flatHookSerifed' 'dotlessj.flatHookSerifless'
|
||||
alias 'armn/co' 0x581 'g.singleStorey'
|
||||
alias 'armn/yi' 0x575 : if SLAB 'dotlessj.flatHookShortSerifed' 'dotlessj.flatHookSerifless'
|
||||
alias 'armn/co' 0x581 : if (SLAB && [not para.isItalic]) 'g.singleStoreyFlatHookSerifed' 'g.singleStoreyFlatHookSerifless'
|
||||
alias 'armn/oh' 0x585 'o'
|
||||
alias 'armn/yiBar' 0x588 : if SLAB 'dotlessjBar.flatHookSerifed' 'dotlessjBar.flatHookSerifless'
|
||||
alias 'armn/yiBar' 0x588 : if SLAB 'dotlessjBar.flatHookShortSerifed' 'dotlessjBar.flatHookSerifless'
|
||||
|
|
|
@ -41,8 +41,8 @@ glyph-block Letter-Armenian-Ca : begin
|
|||
|
||||
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
|
||||
local xOffset : HSwToV : 0.5 * df.mvs
|
||||
local y2 : mix XH Ascender 0.5
|
||||
include : dispiro
|
||||
widths.rhs df.mvs
|
||||
flat (x1 + xOffset) Ascender [heading Downward]
|
||||
|
@ -55,11 +55,11 @@ glyph-block Letter-Armenian-Ca : begin
|
|||
widths.rhs df.mvs
|
||||
flat (x3 + xOffset) Ascender
|
||||
curl (x4 + xOffset) XH
|
||||
straight.down.end (df.rightSB - OX) (XH - SmallArchDepthB)
|
||||
flat (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)
|
||||
curl (df.leftSB + OX) (highBarPos - SmallArchDepthA)
|
||||
arcvh
|
||||
flat df.middle XH
|
||||
curl df.rightSB XH
|
||||
flat df.middle highBarPos
|
||||
curl (df.rightSB + jut - [HSwToV : 0.5 * df.mvs]) highBarPos
|
||||
|
|
|
@ -52,8 +52,9 @@ glyph-block Letter-Armenian-Eh-Liun-Hiun : begin
|
|||
local df : include : DivFrame : if SLAB para.diversityI para.diversityII
|
||||
include : df.markSet.p
|
||||
local xMiddle : df.middle - [IBalance2 df]
|
||||
local longJut : if (df.div < 1) (jut * [if SLAB 1.5 1]) LongJut
|
||||
include : VBar.m xMiddle Descender XH df.mvs
|
||||
include : HBar.b xMiddle (xMiddle + LongJut * df.div) Descender df.mvs
|
||||
include : HBar.b xMiddle (xMiddle + longJut) Descender df.mvs
|
||||
if SLAB : include : HSerif.lt xMiddle XH Jut df.mvs
|
||||
|
||||
do "Hiun"
|
||||
|
|
|
@ -21,10 +21,10 @@ glyph-block Letter-Armenian-Lower-Dza-Cheh : begin
|
|||
include : df.markSet.b
|
||||
local x1 : mix df.leftSB df.rightSB 0.25
|
||||
local x2 : mix df.leftSB df.rightSB 0.75
|
||||
local y2 : Math.min [mix Ascender XH 0.5] (XH + 0.5 * SmallArchDepthA)
|
||||
local y2 : Math.min (XH + 0.5 * SmallArchDepthA) : mix XH Ascender 0.5
|
||||
include : dispiro
|
||||
widths.center df.mvs
|
||||
straight.down.start x1 Ascender [heading Downward]
|
||||
straight.down.start x1 Ascender
|
||||
arcvh
|
||||
flat df.middle y2
|
||||
curl x2 y2 [heading Rightward]
|
||||
|
|
|
@ -53,7 +53,7 @@ glyph-block Letter-Latin-Lower-G : begin
|
|||
|
||||
derive-composites "gBar.doubleStorey" null "g.doubleStorey" [OverlayW obwDoubleStorey]
|
||||
|
||||
create-glyph 'g.openDoubleStorey' : glyph-proc
|
||||
create-glyph 'g.doubleStoreyOpen' : glyph-proc
|
||||
include : MarkSet.p
|
||||
local obot : XH * DesignParameters.gBarPos - O - Stroke * 0.4
|
||||
include : OShape XH obot SB (RightSB - 0.3 * SB)
|
||||
|
@ -81,10 +81,10 @@ glyph-block Letter-Latin-Lower-G : begin
|
|||
set-base-anchor 'overlay' Middle [mix (Descender + O) groundy 0.5]
|
||||
set-base-anchor 'strike' Middle (XH / 2)
|
||||
|
||||
derive-composites "gBar.openDoubleStorey" null "g.openDoubleStorey" [OverlayW obwDoubleStorey]
|
||||
derive-composites "gBar.doubleStoreyOpen" null "g.doubleStoreyOpen" [OverlayW obwDoubleStorey]
|
||||
|
||||
define SingleStorey : namespace
|
||||
export : define [RoundHookT sink df yTop offset sw] : sink
|
||||
export : define [BentHookT sink df yTop offset sw] : sink
|
||||
widths.rhs sw
|
||||
[if (sink == spiro-outline) corner flat] (df.rightSB - offset) yTop [heading Downward]
|
||||
curl (df.rightSB - offset) (Descender + SmallArchDepthA)
|
||||
|
@ -92,7 +92,7 @@ glyph-block Letter-Latin-Lower-G : begin
|
|||
g4 (df.leftSB + offset) (Descender + SHook)
|
||||
if (sink == spiro-outline) {[corner df.leftSB XH]} {}
|
||||
|
||||
export : define [RoundHook df y0] : RoundHookT dispiro df y0 0 df.mvs
|
||||
export : define [BentHook df y0] : BentHookT dispiro df y0 0 df.mvs
|
||||
export : define [FlatHook df y0] : begin
|
||||
local hd : FlatHookDepth df (9 / 8)
|
||||
local xTerminal : Math.min (df.rightSB - hd.x - TINY) : mix df.leftSB df.rightSB (1 / 5)
|
||||
|
@ -126,10 +126,6 @@ glyph-block Letter-Latin-Lower-G : begin
|
|||
include : SeriflessBody df top
|
||||
include : tagged 'serifRT' : HSerif.rt df.rightSB top SideJut
|
||||
|
||||
export : define [AutoSerifedBody df top] : glyph-proc
|
||||
include : SeriflessBody df top
|
||||
if (SLAB && [not para.isItalic]) : include : tagged 'serifRT' : HSerif.rt df.rightSB top SideJut
|
||||
|
||||
export : define [EarlessCornerBody df top] : glyph-proc
|
||||
include : OBarLeft.toothless
|
||||
top -- top
|
||||
|
@ -151,10 +147,9 @@ glyph-block Letter-Latin-Lower-G : begin
|
|||
|
||||
define SingleStoreyConfig : SuffixCfg.weave
|
||||
object # hook
|
||||
singleStorey SingleStorey.RoundHook
|
||||
singleStorey SingleStorey.BentHook
|
||||
singleStoreyFlatHook SingleStorey.FlatHook
|
||||
object # ear/serif
|
||||
"" { SingleStorey.AutoSerifedBody 0 }
|
||||
serifless { SingleStorey.SeriflessBody 0 }
|
||||
serifed { SingleStorey.SerifedBody 0 }
|
||||
earlessCorner { SingleStorey.EarlessCornerBody DToothlessRise }
|
||||
|
@ -231,8 +226,8 @@ glyph-block Letter-Latin-Lower-G : begin
|
|||
left -- SB
|
||||
right -- RightSB - BBD
|
||||
sw -- BBS
|
||||
include : SingleStorey.RoundHookT dispiro [DivFrame 1] XH 0 BBS
|
||||
include : SingleStorey.BentHookT dispiro [DivFrame 1] XH 0 BBS
|
||||
include : HBar.t (RightSB - BBD) RightSB XH BBS
|
||||
include : intersection
|
||||
VBar.r (RightSB - BBD) Descender XH BBS
|
||||
SingleStorey.RoundHookT spiro-outline [DivFrame 1] XH 1 BBS
|
||||
SingleStorey.BentHookT spiro-outline [DivFrame 1] XH 1 BBS
|
||||
|
|
|
@ -100,18 +100,18 @@ glyph-block Letter-Latin-Lower-J : begin
|
|||
export : define FlatHookSerifed para.diversityI
|
||||
|
||||
define JConfig : object
|
||||
'bentHookSerifless' { "BentHook" Serifs.None XMiddle.BentHook Marks.Serifless Div.BentHook }
|
||||
'bentHookSerifed' { "BentHook" Serifs.Long XMiddle.BentHook Marks.Serifed Div.BentHook }
|
||||
'bentHookShortSerifed' { "BentHook" Serifs.Short XMiddle.BentHook Marks.Serifed Div.BentHook }
|
||||
'straightSerifless' { "Straight" Serifs.None XMiddle.StraightSerifless Marks.Serifless Div.StraightSerifless }
|
||||
'straightSerifed' { "Straight" Serifs.Long XMiddle.StraightSerifed Marks.Serifed Div.StraightSerifed }
|
||||
'straightShortSerifed' { "Straight" Serifs.Short XMiddle.StraightSerifed Marks.Serifed Div.StraightSerifed }
|
||||
'flatHookSerifless' { "FlatHook" Serifs.None XMiddle.FlatHookSerifless Marks.Serifless Div.FlatHookSerifless }
|
||||
'flatHookSerifed' { "FlatHook" Serifs.Long XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed }
|
||||
'flatHookShortSerifed' { "FlatHook" Serifs.Short XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed }
|
||||
'diagonalTailedSerifless' { "DiagonalTailed" Serifs.None XMiddle.FlatHookSerifless Marks.Serifless Div.FlatHookSerifless }
|
||||
'diagonalTailedSerifed' { "DiagonalTailed" Serifs.Long XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed }
|
||||
'diagonalTailedShortSerifed' { "DiagonalTailed" Serifs.Short XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed }
|
||||
'bentHookSerifless' { "BentHook" Serifs.None XMiddle.BentHook Marks.Serifless Div.BentHook }
|
||||
'bentHookSerifed' { "BentHook" Serifs.Long XMiddle.BentHook Marks.Serifed Div.BentHook }
|
||||
'bentHookShortSerifed' { "BentHook" Serifs.Short XMiddle.BentHook Marks.Serifed Div.BentHook }
|
||||
'straightSerifless' { "Straight" Serifs.None XMiddle.StraightSerifless Marks.Serifless Div.StraightSerifless }
|
||||
'straightSerifed' { "Straight" Serifs.Long XMiddle.StraightSerifed Marks.Serifed Div.StraightSerifed }
|
||||
'straightShortSerifed' { "Straight" Serifs.Short XMiddle.StraightSerifed Marks.Serifed Div.StraightSerifed }
|
||||
'flatHookSerifless' { "FlatHook" Serifs.None XMiddle.FlatHookSerifless Marks.Serifless Div.FlatHookSerifless }
|
||||
'flatHookSerifed' { "FlatHook" Serifs.Long XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed }
|
||||
'flatHookShortSerifed' { "FlatHook" Serifs.Short XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed }
|
||||
'diagonalTailedSerifless' { "DiagonalTailed" Serifs.None XMiddle.FlatHookSerifless Marks.Serifless Div.FlatHookSerifless }
|
||||
'diagonalTailedSerifed' { "DiagonalTailed" Serifs.Long XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed }
|
||||
'diagonalTailedShortSerifed' { "DiagonalTailed" Serifs.Short XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed }
|
||||
|
||||
foreach { suffix { shapeId Serif xMiddleT Marks div } } [Object.entries JConfig] : do
|
||||
local df : DivFrame div
|
||||
|
@ -135,8 +135,8 @@ glyph-block Letter-Latin-Lower-J : begin
|
|||
select-variant 'dotlessj' 0x237
|
||||
|
||||
link-reduced-variant 'dotlessj/sansSerif' 'dotlessj' MathSansSerif
|
||||
CreateAccentedComposition 'j' 'j' 'dotlessj' 'tittleAbove'
|
||||
CreateAccentedComposition 'j/sansSerif' null 'dotlessj/sansSerif' 'tittleAbove'
|
||||
CreateAccentedComposition 'j' 'j' 'dotlessj' 'tittleAbove'
|
||||
CreateAccentedComposition 'j/sansSerif' null 'dotlessj/sansSerif' 'tittleAbove'
|
||||
link-reduced-variant 'j/sansSerif' 'j' MathSansSerif
|
||||
|
||||
select-variant 'dotlessjBar' 0x25F (follow -- 'dotlessj')
|
||||
|
|
|
@ -1390,5 +1390,5 @@ glyph-block Mark-Above : begin
|
|||
|
||||
local leftEnd : markMiddle - markExtend * 1.5
|
||||
local rightEnd : markMiddle + markExtend * 1.5
|
||||
include : VBar.m leftEnd aboveMarkBot aboveMarkTop (markFine * 2)
|
||||
include : VBar.l leftEnd aboveMarkBot aboveMarkTop (markFine * 2)
|
||||
include : HBar.b leftEnd rightEnd aboveMarkBot (markFine * 2)
|
||||
|
|
|
@ -2763,19 +2763,6 @@ descriptionLeader = "`g`"
|
|||
next = "openness"
|
||||
rank = 1
|
||||
descriptionAffix = "double-storey shape"
|
||||
selectorAffix.g = ""
|
||||
selectorAffix."g/sansSerif" = ""
|
||||
selectorAffix."g/hookTopBase" = ""
|
||||
selectorAffix."gScript" = ""
|
||||
selectorAffix."g/single/autoSerifed/slab" = ""
|
||||
selectorAffix."g/single/autoSerifed/sans" = ""
|
||||
|
||||
[prime.g.variants-buildup.stages.openness."*"]
|
||||
next = "END"
|
||||
|
||||
[prime.g.variants-buildup.stages.openness.closed]
|
||||
rank = 1
|
||||
keyAffix = ""
|
||||
selectorAffix.g = "doubleStorey"
|
||||
selectorAffix."g/sansSerif" = "doubleStorey"
|
||||
selectorAffix."g/hookTopBase" = "singleStoreySerifless"
|
||||
|
@ -2783,15 +2770,28 @@ selectorAffix."gScript" = "singleStoreyScriptCut"
|
|||
selectorAffix."g/single/autoSerifed/slab" = "singleStoreySerifed"
|
||||
selectorAffix."g/single/autoSerifed/sans" = "singleStoreySerifless"
|
||||
|
||||
[prime.g.variants-buildup.stages.openness."*"]
|
||||
next = "END"
|
||||
|
||||
[prime.g.variants-buildup.stages.openness.closed]
|
||||
rank = 1
|
||||
keyAffix = ""
|
||||
selectorAffix.g = ""
|
||||
selectorAffix."g/sansSerif" = ""
|
||||
selectorAffix."g/hookTopBase" = ""
|
||||
selectorAffix."gScript" = ""
|
||||
selectorAffix."g/single/autoSerifed/slab" = ""
|
||||
selectorAffix."g/single/autoSerifed/sans" = ""
|
||||
|
||||
[prime.g.variants-buildup.stages.openness.open]
|
||||
rank = 1
|
||||
descriptionAffix = "open contour"
|
||||
selectorAffix.g = "openDoubleStorey"
|
||||
selectorAffix."g/sansSerif" = "openDoubleStorey"
|
||||
selectorAffix."g/hookTopBase" = "singleStoreySerifless"
|
||||
selectorAffix."gScript" = "singleStoreyScriptCut"
|
||||
selectorAffix."g/single/autoSerifed/slab" = "singleStoreySerifed"
|
||||
selectorAffix."g/single/autoSerifed/sans" = "singleStoreySerifless"
|
||||
selectorAffix.g = "open"
|
||||
selectorAffix."g/sansSerif" = "open"
|
||||
selectorAffix."g/hookTopBase" = ""
|
||||
selectorAffix."gScript" = ""
|
||||
selectorAffix."g/single/autoSerifed/slab" = ""
|
||||
selectorAffix."g/single/autoSerifed/sans" = ""
|
||||
|
||||
[prime.g.variants-buildup.stages.storey.single-storey]
|
||||
next = "hook"
|
||||
|
@ -2807,7 +2807,7 @@ selectorAffix."g/single/autoSerifed/sans" = "singleStorey"
|
|||
[prime.g.variants-buildup.stages.hook."*"]
|
||||
next = "ear"
|
||||
|
||||
[prime.g.variants-buildup.stages.hook.standard]
|
||||
[prime.g.variants-buildup.stages.hook.bent-hook]
|
||||
rank = 1
|
||||
keyAffix = ""
|
||||
selectorAffix.g = ""
|
||||
|
|
|
@ -4,6 +4,7 @@ import themes from "../themes/index.mjs";
|
|||
const languages = [
|
||||
{ lang: 'English', sample: 'Shaw, those twelve beige hooks are joined if I patch a young, gooey mouth.' },
|
||||
{ lang: 'IPA', sample: '[liə̯bə̆ ɡʷɯ̹ʔ̚ daŋ˕ sŋə̆r̥ra] [ʔɹie˦ na˦ ɡɨ˨ tɕie˦] [ʔɣɛw˦˨ tɕi˦˨ ʔɨwk˦ ʔɨwk˦] [jaw⁴ tsɨ³ tʂɨ¹ ʋu² tʂi¹]', localeId :'und-fonipa' },
|
||||
{ lang: 'Armenian', sample: 'Չին ֆիզիկոսը օճառաջուր ցողելով բժշկում է հայ գնդապետի փքված ձախ թևը։' },
|
||||
{ lang: 'Azerbaijani', sample: 'Zəfər, jaketini də papağını da götür, bu axşam hava çox soyuq olacaq.', localeId :'az' },
|
||||
{ lang: 'Belarusian', sample: 'У Іўі худы жвавы чорт у зялёнай камізэльцы пабег пад’есці фаршу з юшкай.' },
|
||||
{ lang: 'Breton', sample: 'Yec’hed mat Jakez ! Skarzhit ar gwerennoù-mañ, kavet e vo gwin betek fin ho puhez.' },
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue