Add raised cap-height cent sign (¢) variants to VSAM (#2044).

This commit is contained in:
be5invis 2023-10-13 20:25:02 -07:00
parent 6f59a5250c
commit c7440bb5a2
6 changed files with 103 additions and 50 deletions

View file

@ -2,4 +2,5 @@
* Fix `ss02`, `ss04`, `ss06`, `ss13`, `ss17`'s application on `i` and `j` (#2033). * Fix `ss02`, `ss04`, `ss06`, `ss13`, `ss17`'s application on `i` and `j` (#2033).
* Add tailed lower lambda (#2036). * Add tailed lower lambda (#2036).
* Add `arrow-lr` ligation group for C-like's spaceship operators (#2041). * Add `arrow-lr` ligation group for C-like's spaceship operators (#2041).
* Add raised cap-height cent sign (`¢`) variants to `VSAM` (#2044).
* Fix `cv02`, `cv04`, `cv05`, `cv06`, `cv11`, `cv12`, `cv15`, `cv17`, `cv18`, `cv25`, `cv28`, `cv43`, `cv70`, `cv71`, `cv81`, and `cv82` for `ss17` under slab. * Fix `cv02`, `cv04`, `cv05`, `cv06`, `cv11`, `cv12`, `cv15`, `cv17`, `cv18`, `cv25`, `cv28`, `cv43`, `cv70`, `cv71`, `cv81`, and `cv82` for `ss17` under slab.

View file

@ -1,7 +1,7 @@
$$include '../../../meta/macros.ptl' $$include '../../../meta/macros.ptl'
import [mix linreg clamp fallback] from"../../../support/utils.mjs" import [mix linreg clamp fallback] from"../../../support/utils.mjs"
import [Dotless CvDecompose MathSansSerif] from"../../../support/gr.mjs" import [DependentSelector CvDecompose MathSansSerif] from"../../../support/gr.mjs"
glyph-module glyph-module
@ -10,6 +10,7 @@ glyph-block Letter-Latin-C : begin
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors ExtendBelowBaseAnchors glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors ExtendBelowBaseAnchors
glyph-block-import Mark-Shared-Metrics : markStroke glyph-block-import Mark-Shared-Metrics : markStroke
glyph-block-import Letter-Shared : CreateDependentComposite
glyph-block-import Letter-Shared-Shapes : SerifFrame CurlyTail DToothlessRise glyph-block-import Letter-Shared-Shapes : SerifFrame CurlyTail DToothlessRise
glyph-block-import Letter-Shared-Shapes : SerifedArcStart SerifedArcEnd InwardSlabArcStart glyph-block-import Letter-Shared-Shapes : SerifedArcStart SerifedArcEnd InwardSlabArcStart
glyph-block-import Letter-Shared-Shapes : ArcStartSerif ArcEndSerif glyph-block-import Letter-Shared-Shapes : ArcStartSerif ArcEndSerif
@ -180,12 +181,27 @@ glyph-block Letter-Latin-C : begin
create-glyph "c.\(suffix)" : glyph-proc create-glyph "c.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
local lf : CLetterForm [DivFrame 1] sty styBot XH 0
ada -- SmallArchDepthA
adb -- SmallArchDepthB
include : lf.full
create-glyph "c/centKernelStd.\(suffix)" : glyph-proc
set-base-anchor 'cvDecompose' 0 0 set-base-anchor 'cvDecompose' 0 0
local lf : CLetterForm [DivFrame 1] sty styBot XH 0 local lf : CLetterForm [DivFrame 1] sty styBot XH 0
ada -- SmallArchDepthA ada -- SmallArchDepthA
adb -- SmallArchDepthB adb -- SmallArchDepthB
include : lf.full include : lf.full
create-glyph "c/centKernelCap.\(suffix)" : glyph-proc
set-base-anchor 'cvDecompose' 0 0
local t : CAP / 2 + XH / 2
local b : CAP / 2 - XH / 2
local lf : CLetterForm [DivFrame 1] sty styBot t b
ada -- SmallArchDepthA
adb -- SmallArchDepthB
include : lf.full
create-glyph "revSmallC.\(suffix)" : glyph-proc create-glyph "revSmallC.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
local lf : CLetterForm [DivFrame 1] sty styBot XH 0 local lf : CLetterForm [DivFrame 1] sty styBot XH 0
@ -294,6 +310,8 @@ glyph-block Letter-Latin-C : begin
link-reduced-variant 'c/sansSerif' 'c' MathSansSerif link-reduced-variant 'c/sansSerif' 'c' MathSansSerif
link-reduced-variant 'c/turnDescBase' 'c' link-reduced-variant 'c/turnDescBase' 'c'
select-variant 'revSmallC' 0x2184 (follow -- 'c') select-variant 'revSmallC' 0x2184 (follow -- 'c')
select-variant 'c/centKernelStd' (follow -- 'c')
select-variant 'c/centKernelCap' (follow -- 'c')
alias 'cyrl/es' 0x441 'c' alias 'cyrl/es' 0x441 'c'
alias 'grek/lunateSmallSigma' 0x3F2 'c.serifless' alias 'grek/lunateSmallSigma' 0x3F2 'c.serifless'
select-variant 'turncSideways' 0x1D12 (follow -- 'c') select-variant 'turncSideways' 0x1D12 (follow -- 'c')
@ -333,43 +351,54 @@ glyph-block Letter-Latin-C : begin
LetterBarOverlay.l SB (CAP * 0.6) LetterBarOverlay.l SB (CAP * 0.6)
derive-composites 'currency/euroSign' 0x20AC 'C' 'currency/euroSign/overlay' derive-composites 'currency/euroSign' 0x20AC 'C' 'currency/euroSign/overlay'
create-glyph 'currency/centSignBar.open' : glyph-proc define CentBarConfig : object
set-width 0 open { (Descender / 2) (XH - Descender / 2) 0 "std" }
set-mark-anchor 'cvDecompose' 0 0 through { (Descender / 2) (XH - Descender / 2) 1 "std" }
include : dispiro interrupted { (Descender / 2) (XH - Descender / 2) 2 "std" }
widths.center [AdviceStroke 3] openCap { 0 CAP 0 "cap" }
flat Middle (XH - HalfStroke) throughCap { 0 CAP 1 "cap" }
curl Middle (XH - Descender / 2) [heading Upward] interruptedCap { 0 CAP 2 "cap" }
include : dispiro
widths.center [AdviceStroke 3]
flat Middle (Descender / 2) [heading Upward]
curl Middle HalfStroke
create-glyph 'currency/centSignBar.through' : glyph-proc foreach { suffix { bot top fillType selector } } [Object.entries CentBarConfig] : do
include [refer-glyph 'currency/centSignBar.open'] AS_BASE ALSO_METRICS create-glyph "cent/bar.\(suffix)" : glyph-proc
define w : AdviceStroke 3
define fine : AdviceStroke [StrokeWidthBlend 3 5.5]
define fine : AdviceStroke [StrokeWidthBlend 3 5] local yMid : mix bot top 0.5
include : VBar.m Middle (XH - HalfStroke) (0 + HalfStroke) fine local fillBottom : yMid - XH / 2
local fillTop : yMid + XH / 2
create-glyph 'currency/centSignBar.barInterrupted' : glyph-proc # Draw the outside subbars
include [refer-glyph 'currency/centSignBar.open'] AS_BASE ALSO_METRICS include : dispiro
flat Middle fillTop [widths.center w]
curl Middle top [heading Upward]
include : dispiro
flat Middle fillBottom [widths.center w]
curl Middle bot [heading Downward]
define cofine : AdviceStroke 4 include : match fillType
define fine : AdviceStroke [StrokeWidthBlend 3 5] [Just 1] : VBar.m Middle fillBottom fillTop fine
define gap : Math.max (XH / 8) [AdviceStroke2 6 6 XH] [Just 2] : begin
include : dispiro define cofine : AdviceStroke 4
flat Middle (XH - HalfStroke) [widths.center.heading cofine Downward] define gap : Math.max (XH / 8) [AdviceStroke2 6 6 XH]
curl Middle (XH / 2 + gap / 2) [widths.center.heading fine Downward]
include : dispiro
flat Middle (HalfStroke) [widths.center.heading cofine Upward]
curl Middle (XH / 2 - gap / 2) [widths.center.heading fine Upward]
select-variant 'currency/centSignBar' (follow -- 'cent') union
dispiro
flat Middle fillTop [widths.center.heading cofine Downward]
curl Middle (yMid + gap / 2) [widths.center.heading fine Downward]
dispiro
flat Middle fillBottom [widths.center.heading cofine Upward]
curl Middle (yMid - gap / 2) [widths.center.heading fine Upward]
create-glyph 'currency/centSign' 0xA2 : glyph-proc __ : no-shape
include [refer-glyph 'c'] AS_BASE ALSO_METRICS
include [refer-glyph 'currency/centSignBar'] DependentSelector.set currentGlyph selector
CvDecompose.set currentGlyph { 'c' 'currency/centSignBar' }
select-variant 'cent/bar' (follow -- 'cent')
CreateDependentComposite 'cent/centSign' 0xA2 "cent/bar" : object
'std' 'c/centKernelStd'
'cap' 'c/centKernelCap'
turned 'turnC' 0x186 'C' Middle (CAP / 2) turned 'turnC' 0x186 'C' Middle (CAP / 2)
turned 'turnc' 0x254 'c' Middle (XH / 2) turned 'turnc' 0x254 'c' Middle (XH / 2)

View file

@ -248,7 +248,7 @@ glyph-block Letter-Latin-S : begin
include : SAutoSlabStart doTS XH sw Hook include : SAutoSlabStart doTS XH sw Hook
include : SAutoSlabEnd doBS 0 sw Hook include : SAutoSlabEnd doBS 0 sw Hook
create-glyph "DollarKernelStd.\(suffix)" : glyph-proc create-glyph "S/dollarKernelStd.\(suffix)" : glyph-proc
define top : CAP * 0.95 define top : CAP * 0.95
define bot : CAP * 0.05 define bot : CAP * 0.05
local sw : AdviceStroke2 2 3 (top - bot) local sw : AdviceStroke2 2 3 (top - bot)
@ -258,7 +258,7 @@ glyph-block Letter-Latin-S : begin
include : SAutoSlabStart doTS top sw Hook include : SAutoSlabStart doTS top sw Hook
include : SAutoSlabEnd doBS bot sw Hook include : SAutoSlabEnd doBS bot sw Hook
create-glyph "DollarKernelCap.\(suffix)" : glyph-proc create-glyph "S/dollarKernelCap.\(suffix)" : glyph-proc
define top : CAP * 0.88 define top : CAP * 0.88
define bot : CAP * 0.12 define bot : CAP * 0.12
local sw : AdviceStroke2 2 3 (top - bot) local sw : AdviceStroke2 2 3 (top - bot)
@ -350,8 +350,8 @@ glyph-block Letter-Latin-S : begin
alias 'cyrl/DzeRev' 0xA644 'revS' alias 'cyrl/DzeRev' 0xA644 'revS'
alias 'cyrl/dzeRev' 0xA645 'revs' alias 'cyrl/dzeRev' 0xA645 'revs'
select-variant 'DollarKernelStd' (follow -- 'S') select-variant 'S/dollarKernelStd' (follow -- 'S')
select-variant 'DollarKernelCap' (follow -- 'S') select-variant 'S/dollarKernelCap' (follow -- 'S')
select-variant 'SSwash' 0x2C7E select-variant 'SSwash' 0x2C7E
select-variant 'sSwash' 0x23F select-variant 'sSwash' 0x23F
@ -500,5 +500,5 @@ glyph-block Letter-Latin-S : begin
select-variant 'dollar/bar' (follow -- 'dollar') select-variant 'dollar/bar' (follow -- 'dollar')
CreateDependentComposite 'dollar' '$' "dollar/bar" : object CreateDependentComposite 'dollar' '$' "dollar/bar" : object
'std' 'DollarKernelStd' 'std' 'S/dollarKernelStd'
'cap' 'DollarKernelCap' 'cap' 'S/dollarKernelCap'

View file

@ -6667,17 +6667,17 @@ selector.dollar = "interrupted"
[prime.dollar.variants.open-cap] [prime.dollar.variants.open-cap]
rank = 4 rank = 4
description = "Dollar symbol with open contour, not exceeding baseline and ascender" description = "Dollar symbol with open contour, sized not exceeding baseline and ascender"
selector.dollar = "openCap" selector.dollar = "openCap"
[prime.dollar.variants.through-cap] [prime.dollar.variants.through-cap]
rank = 5 rank = 5
description = "Dollar symbol with strike-through vertical bar, not exceeding baseline and ascender" description = "Dollar symbol with strike-through vertical bar, sized not exceeding baseline and ascender"
selector.dollar = "throughCap" selector.dollar = "throughCap"
[prime.dollar.variants.interrupted-cap] [prime.dollar.variants.interrupted-cap]
rank = 6 rank = 6
description = "Dollar symbol with interrupted strike-through vertical bar, not exceeding baseline and ascender" description = "Dollar symbol with interrupted strike-through vertical bar, sized not exceeding baseline and ascender"
selector.dollar = "interruptedCap" selector.dollar = "interruptedCap"
@ -6826,7 +6826,22 @@ selector.cent = "through"
[prime.cent.variants.bar-interrupted] [prime.cent.variants.bar-interrupted]
rank = 3 rank = 3
description = "Cent sign (`¢`) with vertical bar breaks at center" description = "Cent sign (`¢`) with vertical bar breaks at center"
selector.cent = "barInterrupted" selector.cent = "interrupted"
[prime.cent.variants.open-cap]
rank = 4
description = "Cent sign (`¢`) with open contour, sized not exceeding baseline and ascender"
selector.cent = "openCap"
[prime.cent.variants.through-cap]
rank = 5
description = "Cent sign (`¢`) with vertical bar all through the `c` part, sized not exceeding baseline and ascender"
selector.cent = "throughCap"
[prime.cent.variants.bar-interrupted-cap]
rank = 6
description = "Cent sign (`¢`) with vertical bar breaks at center, sized not exceeding baseline and ascender"
selector.cent = "interruptedCap"
@ -7473,6 +7488,7 @@ eight = "two-circles"
nine = "closed-contour" nine = "closed-contour"
asterisk = "hex-low" asterisk = "hex-low"
brace = "straight" brace = "straight"
cent = "through-cap"
guillemet = "straight" guillemet = "straight"
at = "fourfold" at = "fourfold"
percent = "rings-continuous-slash" percent = "rings-continuous-slash"
@ -7546,6 +7562,7 @@ nine = "closed-contour"
asterisk = "hex-mid" asterisk = "hex-mid"
underscore = "low" underscore = "low"
brace = "straight" brace = "straight"
cent = "through-cap"
guillemet = "straight" guillemet = "straight"
number-sign = "slanted" number-sign = "slanted"
at = "fourfold" at = "fourfold"
@ -7813,7 +7830,7 @@ brace = "straight"
guillemet = "straight" guillemet = "straight"
number-sign = "slanted" number-sign = "slanted"
at = "fourfold" at = "fourfold"
cent = "open" cent = "open-cap"
percent = "rings-continuous-slash" percent = "rings-continuous-slash"
bar = "force-upright" bar = "force-upright"
pilcrow = "low" pilcrow = "low"
@ -7891,6 +7908,7 @@ seven = "curly-serifless"
nine = "closed-contour" nine = "closed-contour"
asterisk = "hex-mid" asterisk = "hex-mid"
paren = "large-contour" paren = "large-contour"
cent = "through-cap"
guillemet = "straight" guillemet = "straight"
number-sign = "slanted" number-sign = "slanted"
at = "fourfold" at = "fourfold"
@ -8107,6 +8125,7 @@ asterisk = "penta-low"
guillemet = "straight" guillemet = "straight"
number-sign = "slanted" number-sign = "slanted"
dollar = "open" dollar = "open"
cent = "through-cap"
bar = "force-upright" bar = "force-upright"
pilcrow = "low" pilcrow = "low"
micro-sign = "tailed-serifless" micro-sign = "tailed-serifless"
@ -8237,6 +8256,7 @@ tilde = "high"
asterisk = "hex-high" asterisk = "hex-high"
caret = "high" caret = "high"
brace = "straight" brace = "straight"
cent = "through-cap"
guillemet = "straight" guillemet = "straight"
percent = "rings-continuous-slash" percent = "rings-continuous-slash"
@ -8399,6 +8419,7 @@ nine = "closed-contour"
guillemet = "straight" guillemet = "straight"
number-sign = "slanted" number-sign = "slanted"
percent = "rings-continuous-slash" percent = "rings-continuous-slash"
cent = "through-cap"
pilcrow = "low" pilcrow = "low"
micro-sign = "toothed-serifless" micro-sign = "toothed-serifless"
punctuation-dot = "square" punctuation-dot = "square"
@ -8776,7 +8797,7 @@ number-sign = "slanted"
ampersand = "upper-open" ampersand = "upper-open"
at = "fourfold" at = "fourfold"
dollar = "interrupted" dollar = "interrupted"
cent = "bar-interrupted" cent = "bar-interrupted-cap"
pilcrow = "low" pilcrow = "low"
partial-derivative = "straight-bar" partial-derivative = "straight-bar"
micro-sign = "tailed-serifless" micro-sign = "tailed-serifless"
@ -8890,6 +8911,7 @@ eight = "two-circles"
nine = "closed-contour" nine = "closed-contour"
asterisk = "hex-mid" asterisk = "hex-mid"
underscore = "low" underscore = "low"
cent = "through-cap"
guillemet = "straight" guillemet = "straight"
number-sign = "slanted" number-sign = "slanted"
percent = "rings-continuous-slash" percent = "rings-continuous-slash"

View file

@ -69,7 +69,10 @@ export async function gatherCoverageData(covUpright, covItalic, covOblique) {
} }
let featureSeries = []; let featureSeries = [];
for (const [id, x] of featureSeriesStore.values()) featureSeries[id] = x; for (const [id, x] of featureSeriesStore.values()) {
for (let gr of x.groups) gr.sort((a, b) => a.css.localeCompare(b.css));
featureSeries[id] = x;
}
return { unicodeCoverage, featureSeries }; return { unicodeCoverage, featureSeries };
} }

View file

@ -33,11 +33,9 @@ async function main(argv) {
nonMergeSets: ligationData.nonMergeSets nonMergeSets: ligationData.nonMergeSets
} }
}, },
{ spaces: 2 } null,
2
) )
); );
await fs.promises.writeFile( await fs.promises.writeFile(argv.exportPathCov, JSON.stringify({ version, ...cl }, null, 2));
argv.exportPathCov,
JSON.stringify({ version, ...cl }, { spaces: 2 })
);
} }