diff --git a/changes/29.0.6.md b/changes/29.0.6.md new file mode 100644 index 000000000..095f85a89 --- /dev/null +++ b/changes/29.0.6.md @@ -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`. diff --git a/packages/font-glyphs/src/letter/greek/upper-phi.ptl b/packages/font-glyphs/src/letter/greek/upper-phi.ptl index 8bb7ced19..fc911bf88 100644 --- a/packages/font-glyphs/src/letter/greek/upper-phi.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-phi.ptl @@ -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 diff --git a/packages/font-glyphs/src/letter/latin/c.ptl b/packages/font-glyphs/src/letter/latin/c.ptl index 68056337b..df5585160 100644 --- a/packages/font-glyphs/src/letter/latin/c.ptl +++ b/packages/font-glyphs/src/letter/latin/c.ptl @@ -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' diff --git a/packages/font-glyphs/src/letter/latin/lower-il.ptl b/packages/font-glyphs/src/letter/latin/lower-il.ptl index 31699b9ab..2a06c7f0a 100644 --- a/packages/font-glyphs/src/letter/latin/lower-il.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-il.ptl @@ -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' } diff --git a/packages/font-glyphs/src/letter/latin/s.ptl b/packages/font-glyphs/src/letter/latin/s.ptl index 0e45ee490..bd7d1e25f 100644 --- a/packages/font-glyphs/src/letter/latin/s.ptl +++ b/packages/font-glyphs/src/letter/latin/s.ptl @@ -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 diff --git a/packages/font-glyphs/src/letter/latin/upper-b.ptl b/packages/font-glyphs/src/letter/latin/upper-b.ptl index 4757cad1b..60bc7e222 100644 --- a/packages/font-glyphs/src/letter/latin/upper-b.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-b.ptl @@ -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' diff --git a/packages/font-glyphs/src/letter/latin/upper-h.ptl b/packages/font-glyphs/src/letter/latin/upper-h.ptl index 10b76f972..8dbd88ae7 100644 --- a/packages/font-glyphs/src/letter/latin/upper-h.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-h.ptl @@ -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 } diff --git a/params/variants.toml b/params/variants.toml index 0f4f75b4a..c6159919d 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -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"