Misc alphabetic fixes (#2269)

* Fix broken `s` variant glyphs for `U+1DF1E`.

* Fix glyph visual of `cyrl/Ef.BGR` under slab.

* Make descender serif of `latn/Beta` automatic.

* Make serifs of `cyrl/{Koppa|koppa}` more sensitive.

* Remove tailless variants for `U+2129`.

* Make educated guess for top-right serif of `U+04A5`.
This commit is contained in:
John McWilliams 2024-04-01 12:33:58 -04:00 committed by GitHub
parent 37ecd7354d
commit c9d9ee2319
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 27 additions and 15 deletions

6
changes/29.0.6.md Normal file
View file

@ -0,0 +1,6 @@
* Fix broken glyphs for serifed variants of LATIN SMALL LETTER S WITH CURL (`U+1DF1E`).
* Improve glyph visual for Bulgarian localization form for CYRILLIC CAPITAL LETTER EF (`U+0424`) under slab.
* Make descender serif of CYRILLIC {CAPITAL|SMALL} LETTER KOPPA (`U+0480`..`U+0481`) appear under any serifed variants for `C`/`c`.
* Make presence of descender serif automatic for LATIN CAPTITAL LETTER BETA (`U+A7B4`).
* Remove tailless variants for TURNED GREEK SMALL LETTER IOTA (`U+2129`).
* Make presence of top-right serif automatic for CYRILLIC SMALL LIGATURE EN GHE (`U+04A5`) under `cyrl/en`=`tailed-top-left-serifed`.

View file

@ -95,8 +95,8 @@ glyph-block Letter-Greek-Upper-Phi : begin
local df : include : DivFrame para.diversityM 3
include : df.markSet.capital
local top : CAP + LongJut - HalfStroke
local bot : 0 - LongJut + HalfStroke
local top : CAP + LongJut - [if SLAB 0 HalfStroke]
local bot : 0 - LongJut + [if SLAB 0 HalfStroke]
include : ExtendAboveBaseAnchors top
include : ExtendBelowBaseAnchors bot

View file

@ -255,14 +255,14 @@ glyph-block Letter-Latin-C : begin
difference base
Rect (top / 2) Descender (Middle + [HSwToV Stroke]) (Width * 4)
Rect (XH / 2) [mix Stroke Hook 0.5] Middle (Width * 4)
if styBot [HSerif.mb (Middle + [HSwToV HalfStroke]) Descender MidJutSide] [no-shape]
if styTop [HSerif.mb (Middle + [HSwToV HalfStroke]) Descender MidJutSide] [no-shape]
create-glyph "cyrl/Koppa.\(suffix)" : glyph-proc
if [not styBot] : create-glyph "cyrl/Koppa.\(suffix)" : glyph-proc
include : MarkSet.capDesc
local lf : CLetterForm [DivFrame 1] sty styBot CAP 0
include : KoppaShapeT sty styBot CAP : union [lf.baseTopOnly] [lf.topSerif]
create-glyph "cyrl/koppa.\(suffix)" : glyph-proc
if [not styBot] : create-glyph "cyrl/koppa.\(suffix)" : glyph-proc
include : MarkSet.p
local lf : CLetterForm [DivFrame 1] sty styBot XH 0
ada -- SmallArchDepthA
@ -318,8 +318,8 @@ glyph-block Letter-Latin-C : begin
select-variant 'cHookTop' 0x188
select-variant 'stretchedC' 0x297 (follow -- 'c')
select-variant 'cyrl/Koppa' 0x480 (follow -- 'C')
select-variant 'cyrl/koppa' 0x481 (follow -- 'c')
select-variant 'cyrl/Koppa' 0x480 (follow -- 'CTopSerifOnly')
select-variant 'cyrl/koppa' 0x481 (follow -- 'cTopSerifOnly')
select-variant 'C/descBase'
select-variant 'c/descBase'

View file

@ -319,7 +319,7 @@ glyph-block Letter-Latin-Lower-I : begin
alias 'cyrl/Iota' 0xA646 'latn/Iota'
CreateTurnedLetter 'turni' 0x1D09 'i' HalfAdvance (XH / 2)
CreateTurnedLetter 'turniota' 0x2129 'grek/iota' HalfAdvance (XH / 2)
CreateTurnedLetter 'grek/turniota' 0x2129 'latn/iota' HalfAdvance (XH / 2)
CreateAccentedComposition 'cyrl/ghe.SRB' null 'dotlessi/tailed' 'macronAbove'
CreateMultiAccentedComposition 'cyrl/gje.SRB' null 'dotlessi/tailed' { 'macronAbove' 'acuteAbove' }

View file

@ -335,13 +335,12 @@ glyph-block Letter-Latin-S : begin
flat (df.rightSB - 1) Descender [widths.lhs sw]
curl df.rightSB Descender
create-glyph "sCurlyTail.\(suffix)" : glyph-proc
if [not doBS] : create-glyph "sCurlyTail.\(suffix)" : glyph-proc
local df : include DfLower
include : df.markSet.e
local sw : AdviceStroke2 2 3 XH df.div
include : SmallSStrokeImpl df doTS CURLY-TAIL sw EssLower
include : SAutoSlabStart doTS XH sw Hook
include : SAutoSlabEnd doBS 0 sw Hook
include : SAutoSlabStart df doTS XH sw Hook
select-variant 'S' 'S'
link-reduced-variant 'S/sansSerif' 'S' MathSansSerif

View file

@ -166,12 +166,12 @@ glyph-block Letter-Latin-Upper-B : begin
body CAP currencySw ts bs
difference [BitcoinBar : AdviceStroke 5] [mask CAP : AdviceStroke2 2 3 CAP]
create-glyph "latn/Beta.\(suffix)" : glyph-proc
if (!bs) : create-glyph "latn/Beta.\(suffix)" : glyph-proc
include : MarkSet.capDesc
include : LeaningAnchor.Below.VBar.l SB
include : body CAP [AdviceStroke2 2 3 CAP] ts false
include : VBar.l SB Descender 0
if bs : begin
if SLAB : begin
local sf : SerifFrame.fromDf [DivFrame 1] CAP Descender
include sf.lb.fullSide
@ -180,7 +180,7 @@ glyph-block Letter-Latin-Upper-B : begin
select-variant 'currency/baht' 0xE3F (follow -- 'B')
select-variant 'currency/bitcoin' 0x20BF (follow -- 'B')
select-variant 'BStroke' 0x243 (follow -- 'B')
select-variant 'latn/Beta' 0xA7B4 (follow -- 'B')
select-variant 'latn/Beta' 0xA7B4
alias 'grek/Beta' 0x392 'B'
alias-reduced-variant 'grek/Beta/sansSerif' 'grek/Beta' 'B/sansSerif' MathSansSerif
alias 'cyrl/Ve' 0x412 'B'

View file

@ -94,7 +94,7 @@ glyph-block Letter-Latin-Upper-H : begin
serifless { HShape HTurned SLAB-NONE false }
tailedSerifless { TailedHShape HTurned SLAB-NONE false }
topLeftSerifed { HShape HTurned SLAB-TOP-LEFT false }
tailedTopLeftSerifed { TailedHShape HTurned SLAB-TOP-LEFT false }
tailedTopLeftSerifed { TailedHShape HTurned SLAB-TOP-LEFT SLAB }
topLeftBottomRightSerifed { HShape HTurned SLAB-TOP-LEFT-BOTTOM-RIGHT true }
serifed { HShape HTurned SLAB-ALL true }
tailedSerifed { TailedHShape HTurned SLAB-TAILED-CYRILLIC true }

View file

@ -71,6 +71,7 @@ descriptionAffix = "mostly symmetric shape"
selectorAffix.B = "standard"
selectorAffix."B/sansSerif" = "standard"
selectorAffix.Bhookleft = "standard"
selectorAffix."latn/Beta" = "standard"
selectorAffix.BBar = "standard"
selectorAffix.smcpB = "standard"
selectorAffix.smcpBBar = "standard"
@ -81,6 +82,7 @@ descriptionAffix = "more asymmetric shape"
selectorAffix.B = "moreAsymmetric"
selectorAffix."B/sansSerif" = "moreAsymmetric"
selectorAffix.Bhookleft = "moreAsymmetric"
selectorAffix."latn/Beta" = "moreAsymmetric"
selectorAffix.BBar = "moreAsymmetric"
selectorAffix.smcpB = "standard"
selectorAffix.smcpBBar = "standard"
@ -94,6 +96,7 @@ keyAffix = ""
selectorAffix.B = ""
selectorAffix."B/sansSerif" = ""
selectorAffix.Bhookleft = ""
selectorAffix."latn/Beta" = ""
selectorAffix.BBar = ""
selectorAffix.smcpB = ""
selectorAffix.smcpBBar = ""
@ -104,6 +107,7 @@ descriptionAffix = "interrupted middle bar"
selectorAffix.B = "interrupted"
selectorAffix."B/sansSerif" = "interrupted"
selectorAffix.Bhookleft = "interrupted"
selectorAffix."latn/Beta" = "interrupted"
selectorAffix.BBar = ""
selectorAffix.smcpB = "interrupted"
selectorAffix.smcpBBar = ""
@ -115,6 +119,7 @@ descriptionJoiner = "without"
selectorAffix.B = "serifless"
selectorAffix."B/sansSerif" = "serifless"
selectorAffix.Bhookleft = "serifless"
selectorAffix."latn/Beta" = "serifless"
selectorAffix.BBar = "serifless"
selectorAffix.smcpB = "serifless"
selectorAffix.smcpBBar = "serifless"
@ -125,6 +130,7 @@ descriptionAffix = "serifs at top"
selectorAffix.B = "unilateralSerifed"
selectorAffix."B/sansSerif" = "serifless"
selectorAffix.Bhookleft = "serifless"
selectorAffix."latn/Beta" = "unilateralSerifed"
selectorAffix.BBar = "unilateralSerifed"
selectorAffix.smcpB = "unilateralSerifed"
selectorAffix.smcpBBar = "unilateralSerifed"
@ -135,6 +141,7 @@ descriptionAffix = "serifs at both top and bottom"
selectorAffix.B = "bilateralSerifed"
selectorAffix."B/sansSerif" = "serifless"
selectorAffix.Bhookleft = "bilateralSerifed"
selectorAffix."latn/Beta" = "unilateralSerifed"
selectorAffix.BBar = "bilateralSerifed"
selectorAffix.smcpB = "bilateralSerifed"
selectorAffix.smcpBBar = "bilateralSerifed"