From c7abaf641065af7a8b9b7b6edfeaa734c4f15fc5 Mon Sep 17 00:00:00 2001 From: be5invis Date: Thu, 22 Dec 2022 01:11:18 -0800 Subject: [PATCH] Add Characters - LATIN CAPITAL LETTER BETA (`U+A7B4`) (#1492). - LATIN SMALL LETTER BETA (`U+A7B5`) (#1492). --- changes/17.0.0.md | 4 ++++ font-src/glyphs/letter/latin-ext/thorn.ptl | 11 +++++---- font-src/glyphs/letter/latin/lower-p.ptl | 9 +++----- font-src/glyphs/letter/latin/upper-b.ptl | 21 +++++++++++++---- font-src/glyphs/letter/shared.ptl | 26 ++++++++++++---------- params/variants.toml | 16 ++++++------- 6 files changed, 51 insertions(+), 36 deletions(-) diff --git a/changes/17.0.0.md b/changes/17.0.0.md index 04f8a7378..3d9e0b9c7 100644 --- a/changes/17.0.0.md +++ b/changes/17.0.0.md @@ -1,7 +1,11 @@ +* Reordered variants of certain characters, including: + - Ampersand (`&`). * Add Characters - LATIN CAPITAL LETTER REVERSED HALF H (`U+A7F5`) (#1490). - LATIN SMALL LETTER REVERSED HALF H (`U+A7F6`) (#1490). - LATIN LETTER SMALL CAPITAL TURNED M (`U+A7FA`) (#1490). + - LATIN CAPITAL LETTER BETA (`U+A7B4`) (#1492). + - LATIN SMALL LETTER BETA (`U+A7B5`) (#1492). * Add tailed variant of et-like `&` (#1491). * Add serifs to Wynn and Yogh under Slab (#1489). * Adjust the shape of Cyrillic Omega (#1489). diff --git a/font-src/glyphs/letter/latin-ext/thorn.ptl b/font-src/glyphs/letter/latin-ext/thorn.ptl index 1dcd9f241..fbbe0b678 100644 --- a/font-src/glyphs/letter/latin-ext/thorn.ptl +++ b/font-src/glyphs/letter/latin-ext/thorn.ptl @@ -8,8 +8,7 @@ glyph-module glyph-block Letter-Latin-Thorn : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Latin-Lower-P : SmallPSerifLB - glyph-block-import Letter-Shared-Shapes : LetterBarOverlay + glyph-block-import Letter-Shared-Shapes : LetterBarOverlay SerifFrame define xThornLeftStroke : SB * 1.25 define yThornBowlBot : CAP * 0.19 + [if SLAB (Stroke * 0.375) 0] @@ -31,8 +30,8 @@ glyph-block Letter-Latin-Thorn : begin include : VBarLeft xThornLeftStroke 0 CAP if SLAB : begin - include : CenterBottomSerif (xThornLeftStroke + HalfStroke * HVContrast) 0 Jut - include : CenterTopSerif (xThornLeftStroke + HalfStroke * HVContrast) CAP Jut + local sf : SerifFrame Ascender 0 xThornLeftStroke RightSB + include : composite-proc sf.lt.fullSide sf.lb.fullSide create-glyph 'Thorn' 0xDE : glyph-proc include : MarkSet.capital @@ -43,8 +42,8 @@ glyph-block Letter-Latin-Thorn : begin include : OBarLeftShape include : VBarLeft SB Descender Ascender if SLAB : begin - include : tagged 'serifLT' : LeftwardTopSerif SB Ascender SideJut - include : SmallPSerifLB + local sf : SerifFrame Ascender Descender SB RightSB + include : composite-proc sf.lt.outer sf.lb.fullSide create-glyph 'ThornBarTop/Overlay' : LetterBarOverlay.l.in x -- xThornLeftStroke diff --git a/font-src/glyphs/letter/latin/lower-p.ptl b/font-src/glyphs/letter/latin/lower-p.ptl index 54152c6b2..d389b748c 100644 --- a/font-src/glyphs/letter/latin/lower-p.ptl +++ b/font-src/glyphs/letter/latin/lower-p.ptl @@ -10,13 +10,10 @@ glyph-block Letter-Latin-Lower-P : begin glyph-block-import Common-Derivatives glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend HooktopLeftBar PalatalHook + glyph-block-import Letter-Shared-Shapes : SerifFrame - define [SmallPSerifLT] : tagged 'serifLT' : LeftwardTopSerif SB XH SideJut - - glyph-block-export SmallPSerifLB - define [SmallPSerifLB] : tagged 'serifLB' : union - LeftwardBottomSerif (SB + HalfStroke * HVContrast) Descender Jut - RightwardBottomSerif (SB + HalfStroke * HVContrast) Descender MidJutSide + define [SmallPSerifLT] : return [SerifFrame XH Descender SB RightSB].lt.outer + define [SmallPSerifLB] : return [SerifFrame XH Descender SB RightSB].lb.fullSide define [EaredBody] : glyph-proc include : tagged 'bowl' : OBarLeftShape diff --git a/font-src/glyphs/letter/latin/upper-b.ptl b/font-src/glyphs/letter/latin/upper-b.ptl index 5a1a1cde2..81baaa0bc 100644 --- a/font-src/glyphs/letter/latin/upper-b.ptl +++ b/font-src/glyphs/letter/latin/upper-b.ptl @@ -9,7 +9,7 @@ glyph-block Letter-Latin-Upper-B : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Letter-Shared-Metrics : BowlXDepth - glyph-block-import Letter-Shared-Shapes : ShoulderMidKnotRhs LetterBarOverlay + glyph-block-import Letter-Shared-Shapes : ShoulderMidKnotRhs LetterBarOverlay SerifFrame glyph-block-import Letter-Blackboard : BBS BBD define BArcMix 0.93 @@ -58,8 +58,10 @@ glyph-block Letter-Latin-Upper-B : begin topArcShift -- topArcShift topArcInnerShift -- topArcInnerShift include : VBarLeft SB 0 top stroke - if serifTop : include : tagged 'serifLT' : LeftwardTopSerif SB top SideJut - if serifBot : include : tagged 'serifLB' : LeftwardBottomSerif SB 0 SideJut + + local sf : SerifFrame top 0 SB RightSB + if serifTop : include sf.lt.outer + if serifBot : include sf.lb.outer define [BShapeMask] : params [top [stroke : AdviceStroke2 2 3 top] [barPos BBarPos] [topArcShift 0] [topArcInnerShift 0]] : glyph-proc include : BShapeArcsT spiro-outline top @@ -146,6 +148,13 @@ glyph-block Letter-Latin-Upper-B : begin include [refer-glyph "smcpB.\(suffix)"] AS_BASE ALSO_METRICS include : BOverlayBar XH bp + create-glyph "latn/Beta.\(suffix)" : glyph-proc + include : MarkSet.capDesc + include : body CAP [AdviceStroke2 2 3 CAP] ts false + include : VBarLeft SB Descender 0 + if bs : begin + local fs : SerifFrame CAP Descender SB RightSB + include fs.lb.fullSide select-variant 'B' 'B' link-reduced-variant 'B/sansSerif' 'B' MathSansSerif @@ -153,6 +162,7 @@ glyph-block Letter-Latin-Upper-B : begin select-variant 'currency/bitcoin' 0x20BF (follow -- 'B') select-variant 'BBar' 0x243 (follow -- 'B') select-variant 'smcpBBar' 0x1D03 (follow -- 'B') + select-variant 'latn/Beta' 0xA7B4 (follow -- 'B') alias 'grek/Beta' 0x392 'B' alias-reduced-variant 'grek/Beta/sansSerif' 'grek/Beta' 'B/sansSerif' MathSansSerif alias 'cyrl/Ve' 0x412 'B' @@ -274,4 +284,7 @@ glyph-block Letter-Latin-Upper-B : begin archv g4.up.end (SB + HVContrast * (Stroke - ShoulderFine)) adb [widths.rhs ShoulderFine] # flat (RightSB - ymiddle / 2 - HalfStroke) 0 - # curl (SB + HalfStroke) 0 [heading Leftward] \ No newline at end of file + # curl (SB + HalfStroke) 0 [heading Leftward] + + derive-composites 'latn/beta' 0xA7B5 'grek/beta' + if SLAB [SerifFrame XH Descender SB RightSB].lb.fullSide [no-shape] diff --git a/font-src/glyphs/letter/shared.ptl b/font-src/glyphs/letter/shared.ptl index a3378ccf0..54efe7a34 100644 --- a/font-src/glyphs/letter/shared.ptl +++ b/font-src/glyphs/letter/shared.ptl @@ -449,23 +449,25 @@ glyph-block Letter-Shared-Shapes : begin local rBarInner : right - 1.0 * sw * HVContrast return : object lt : object - full : tagged 'serifLT' : CenterTopSerifAsymmetric lBarCenter top Jut jutIn sw - outer : tagged 'serifLT' : LeftwardTopSerif left top SideJut sw - inner : tagged 'serifLT' : RightwardTopSerif lBarInner top sideJutIn sw + full : tagged 'serifLT' : CenterTopSerifAsymmetric lBarCenter top Jut jutIn sw + fullSide : tagged 'serifLT' : CenterTopSerifAsymmetric lBarCenter top Jut jutFS sw + outer : tagged 'serifLT' : LeftwardTopSerif left top SideJut sw + inner : tagged 'serifLT' : RightwardTopSerif lBarInner top sideJutIn sw rt : object - full : tagged 'serifRT' : CenterTopSerifAsymmetric rBarCenter top jutIn Jut sw - outer : tagged 'serifRT' : RightwardTopSerif right top SideJut sw - inner : tagged 'serifRT' : LeftwardTopSerif rBarInner top sideJutIn sw + full : tagged 'serifRT' : CenterTopSerifAsymmetric rBarCenter top jutIn Jut sw + fullSide : tagged 'serifRT' : CenterTopSerifAsymmetric rBarCenter top jutFS Jut sw + outer : tagged 'serifRT' : RightwardTopSerif right top SideJut sw + inner : tagged 'serifRT' : LeftwardTopSerif rBarInner top sideJutIn sw lb : object - full : tagged 'serifLB' : CenterBottomSerifAsymmetric lBarCenter bot Jut jutIn sw + full : tagged 'serifLB' : CenterBottomSerifAsymmetric lBarCenter bot Jut jutIn sw fullSide : tagged 'serifLB' : CenterBottomSerifAsymmetric lBarCenter bot Jut jutFS sw - outer : tagged 'serifLB' : LeftwardBottomSerif left bot SideJut sw - inner : tagged 'serifLB' : RightwardBottomSerif lBarInner bot sideJutIn sw + outer : tagged 'serifLB' : LeftwardBottomSerif left bot SideJut sw + inner : tagged 'serifLB' : RightwardBottomSerif lBarInner bot sideJutIn sw rb : object - full : tagged 'serifRB' : CenterBottomSerifAsymmetric rBarCenter bot jutIn Jut sw + full : tagged 'serifRB' : CenterBottomSerifAsymmetric rBarCenter bot jutIn Jut sw fullSide : tagged 'serifRB' : CenterBottomSerifAsymmetric rBarCenter bot jutFS Jut sw - outer : tagged 'serifRB' : RightwardBottomSerif right bot SideJut sw - inner : tagged 'serifRB' : LeftwardBottomSerif rBarInner bot sideJutIn sw + outer : tagged 'serifRB' : RightwardBottomSerif right bot SideJut sw + inner : tagged 'serifRB' : LeftwardBottomSerif rBarInner bot sideJutIn sw glyph-block-export WithAIHSerifsMask define [WithAIHSerifsMask top bottom left right s] : begin diff --git a/params/variants.toml b/params/variants.toml index 6fd976440..67510c160 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -6505,26 +6505,26 @@ rank = 3 description = "Ampersand (`&`) with an open contour at lower half" selector.ampersand = "lowerOpen" -[prime.ampersand.variants.et-toothed] +[prime.ampersand.variants.flat-top] rank = 4 +description = "Ampersand (`&`) drawn with a flat top" +selector.ampersand = "flatTop" + +[prime.ampersand.variants.et-toothed] +rank = 5 description = "Ampersand (`&`) drawn like a ligature of Ɛ and t with tooth" selector.ampersand = "etToothed" [prime.ampersand.variants.et-toothless-corner] -rank = 5 +rank = 6 description = "Ampersand (`&`) drawn like a ligature of Ɛ and t without tooth (corner)" selector.ampersand = "etToothlessCorner" [prime.ampersand.variants.et-toothless-rounded] -rank = 6 +rank = 7 description = "Ampersand (`&`) drawn like a ligature of Ɛ and t without tooth (rounded)" selector.ampersand = "etToothlessRounded" -[prime.ampersand.variants.flat-top] -rank = 7 -description = "Ampersand (`&`) drawn with a flat top" -selector.ampersand = "flatTop" - [prime.ampersand.variants.et-tailed] rank = 8 description = "Ampersand (`&`) drawn like a ligature of Ɛ and t with tail"