Optimize glyphs for Roman Numeral CD shapes. (#2541)

* Optimize glyphs for Roman Numeral CD shapes.

* Optimize gap.
This commit is contained in:
John McWilliams 2024-10-10 15:49:16 -04:00 committed by GitHub
parent 3aa0107191
commit e42c6c5ee0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 42 additions and 21 deletions

View file

@ -3,6 +3,8 @@
* Optimize glyphs for `rounded-serifless` and `rounded-serifed` variants for Capital Eszett (`ẞ`). * Optimize glyphs for `rounded-serifless` and `rounded-serifed` variants for Capital Eszett (`ẞ`).
* Optimize glyphs for closed epsilon shapes (`U+025E`, `U+029A`). * Optimize glyphs for closed epsilon shapes (`U+025E`, `U+029A`).
* Optimize glyphs for cursive variants for Greek Lower Beta (`β`) and Cyrillic Lower Ve (`в`). * Optimize glyphs for cursive variants for Greek Lower Beta (`β`) and Cyrillic Lower Ve (`в`).
* Optimize glyphs for Cyrillic Capital/Lower Broad On (`U+047A`, `U+047B`).
* Optimize glyphs for Roman Numeral CD shapes (`U+2180`, `U+2182`, `U+2188`).
* Optimize glyph for Cyrillic Lower Dzze (`U+A689`) under italics. * Optimize glyph for Cyrillic Lower Dzze (`U+A689`) under italics.
* Optimize glyphs for Volapük Ae/Oe/Ue (`U+A79A`..`U+A79F`). * Optimize glyphs for Volapük Ae/Oe/Ue (`U+A79A`..`U+A79F`).
* Optimize glyph for Latin Lower Dezh Digraph with Palatal Hook (`U+1DF12`). * Optimize glyph for Latin Lower Dezh Digraph with Palatal Hook (`U+1DF12`).

View file

@ -64,14 +64,20 @@ glyph-block Letter-Latin-O : begin
create-glyph 'cyrl/BroadOn' 0x47A : glyph-proc create-glyph 'cyrl/BroadOn' 0x47A : glyph-proc
define df : include : DivFrame [mix 1 para.diversityM 0.5] 3 define df : include : DivFrame [mix 1 para.diversityM 0.5] 3
include : df.markSet.capital include : df.markSet.capital
include : OShape CAP 0 df.leftSB df.rightSB df.mvs ArchDepthA ArchDepthB local gap : Math.max (0.25 * (df.rightSB - df.leftSB)) : HSwToV (rBroadOn * Math.SQRT2)
local ada : ArchDepthA * df.div
local adb : ArchDepthB * df.div
include : OShapeFlatTB CAP 0 df.leftSB df.rightSB df.mvs ada adb gap
include : DotAt df.middle (df.mvs / 2 + O) rBroadOn include : DotAt df.middle (df.mvs / 2 + O) rBroadOn
include : DotAt df.middle (CAP - df.mvs / 2 - O) rBroadOn include : DotAt df.middle (CAP - df.mvs / 2 - O) rBroadOn
create-glyph 'cyrl/broadOn' 0x47B : glyph-proc create-glyph 'cyrl/broadOn' 0x47B : glyph-proc
define df : include : DivFrame [mix 1 para.diversityM 0.5] 3 define df : include : DivFrame [mix 1 para.diversityM 0.5] 3
include : df.markSet.e include : df.markSet.e
include : OShape XH 0 df.leftSB df.rightSB df.mvs nothing nothing local gap : Math.max (0.25 * (df.rightSB - df.leftSB)) : HSwToV (rBroadOn * Math.SQRT2)
local ada : ArchDepthA * df.div
local adb : ArchDepthB * df.div
include : OShapeFlatTB XH 0 df.leftSB df.rightSB df.mvs ada adb gap
include : DotAt df.middle (df.mvs / 2 + O) rBroadOn include : DotAt df.middle (df.mvs / 2 + O) rBroadOn
include : DotAt df.middle (XH - df.mvs / 2 - O) rBroadOn include : DotAt df.middle (XH - df.mvs / 2 - O) rBroadOn
@ -160,31 +166,44 @@ glyph-block Letter-Latin-O : begin
create-glyph 'romanThousandCD' 0x2180 : glyph-proc create-glyph 'romanThousandCD' 0x2180 : glyph-proc
local df : include : DivFrame para.diversityM 3 local df : include : DivFrame para.diversityM 3
include : df.markSet.capital include : df.markSet.capital
include : OShape CAP 0 df.leftSB df.rightSB df.mvs ArchDepthA ArchDepthB local dist : df.rightSB - df.leftSB
local gap : Math.max (dist / 4) : HSwToV df.mvs
local ada : ArchDepthA * df.div
local adb : ArchDepthB * df.div
include : OShapeFlatTB CAP 0 df.leftSB df.rightSB df.mvs ada adb gap
include : VBar.m df.middle (df.mvs / 2) (CAP - df.mvs / 2) df.mvs include : VBar.m df.middle (df.mvs / 2) (CAP - df.mvs / 2) df.mvs
set-base-anchor 'trailing' Middle 0 set-base-anchor 'trailing' Middle 0
create-glyph 'romanTenThousand' 0x2182 : glyph-proc create-glyph 'romanTenThousand' 0x2182 : glyph-proc
local df : include : DivFrame para.diversityM 5 local df : include : DivFrame para.diversityM 5
include : df.markSet.capital include : df.markSet.capital
local dist : df.rightSB - df.leftSB
local innerDist : df.rightSB - df.leftSB - [HSwToV : 5 * df.mvs] local gap : Math.max (dist / 4) : HSwToV df.mvs
local gapInner : Math.max (dist / 8) : HSwToV df.mvs
local ada : ArchDepthA * df.div
local adb : ArchDepthB * df.div
local innerDist : dist - [HSwToV : 5 * df.mvs]
local arcXL1 : df.leftSB + innerDist * (1 / 4) + [HSwToV : 1 * df.mvs] local arcXL1 : df.leftSB + innerDist * (1 / 4) + [HSwToV : 1 * df.mvs]
local arcXR1 : df.leftSB + innerDist * (3 / 4) + [HSwToV : 4 * df.mvs] local arcXR1 : df.leftSB + innerDist * (3 / 4) + [HSwToV : 4 * df.mvs]
local heightGap : Math.min (df.mvs + (CAP - df.mvs * 4) / 5) (innerDist / 4 + df.mvs) local heightGap : Math.min (df.mvs + (CAP - df.mvs * 4) / 5) (innerDist / 4 + df.mvs)
local heightInner1 : CAP - 2 * heightGap local heightInner : CAP - 2 * heightGap
local smInner1 : clamp (df.mvs * 1.5) (0.499 * heightInner1) (ArchDepth * heightInner1 / CAP) local smInner : clamp (df.mvs * 1.5) (0.499 * heightInner) (ArchDepth * heightInner / CAP)
local adaInner1 : ArchDepthAOf smInner1 (arcXR1 - arcXL1 + df.leftSB * 2) local adaInner : [ArchDepthAOf smInner : arcXR1 - arcXL1 + df.leftSB * 2] * df.div
local adbInner1 : ArchDepthBOf smInner1 (arcXR1 - arcXL1 + df.leftSB * 2) local adbInner : [ArchDepthBOf smInner : arcXR1 - arcXL1 + df.leftSB * 2] * df.div
include : OShape CAP 0 df.leftSB df.rightSB df.mvs ArchDepthA ArchDepthB include : OShapeFlatTB CAP 0 df.leftSB df.rightSB df.mvs ada adb gap
include : OShape (CAP - heightGap) (0 + heightGap) arcXL1 arcXR1 df.mvs adaInner1 adbInner1 include : OShapeFlatTB (CAP - heightGap) (0 + heightGap) arcXL1 arcXR1 df.mvs adaInner adbInner gapInner
include : VBar.m df.middle (df.mvs / 2) (CAP - df.mvs / 2) df.mvs include : VBar.m df.middle (df.mvs / 2) (CAP - df.mvs / 2) df.mvs
create-glyph 'romanHundredThousand' 0x2188 : glyph-proc create-glyph 'romanHundredThousand' 0x2188 : glyph-proc
local df : include : DivFrame para.diversityM 7 local df : include : DivFrame para.diversityM 7
include : df.markSet.capital include : df.markSet.capital
local dist : df.rightSB - df.leftSB
local innerDist : df.rightSB - df.leftSB - [HSwToV : 7 * df.mvs] local gap : Math.max (dist / 4) : HSwToV df.mvs
local gapInner1 : Math.max (dist / 6) : HSwToV df.mvs
local gapInner2 : Math.max (dist / 12) : HSwToV df.mvs
local ada : ArchDepthA * df.div
local adb : ArchDepthB * df.div
local innerDist : dist - [HSwToV : 7 * df.mvs]
local arcXL1 : df.leftSB + innerDist * (1 / 6) + [HSwToV : 1 * df.mvs] local arcXL1 : df.leftSB + innerDist * (1 / 6) + [HSwToV : 1 * df.mvs]
local arcXR1 : df.leftSB + innerDist * (5 / 6) + [HSwToV : 6 * df.mvs] local arcXR1 : df.leftSB + innerDist * (5 / 6) + [HSwToV : 6 * df.mvs]
local arcXL2 : df.leftSB + innerDist * (2 / 6) + [HSwToV : 2 * df.mvs] local arcXL2 : df.leftSB + innerDist * (2 / 6) + [HSwToV : 2 * df.mvs]
@ -193,14 +212,14 @@ glyph-block Letter-Latin-O : begin
local heightInner1 : CAP - 2 * heightGap local heightInner1 : CAP - 2 * heightGap
local heightInner2 : CAP - 4 * heightGap local heightInner2 : CAP - 4 * heightGap
local smInner1 : clamp (df.mvs * 1.5) (0.499 * heightInner1) (ArchDepth * heightInner1 / CAP) local smInner1 : clamp (df.mvs * 1.5) (0.499 * heightInner1) (ArchDepth * heightInner1 / CAP)
local adaInner1 : ArchDepthAOf smInner1 (arcXR1 - arcXL1 + df.leftSB * 2) local adaInner1 : [ArchDepthAOf smInner1 : arcXR1 - arcXL1 + df.leftSB * 2] * df.div
local adbInner1 : ArchDepthBOf smInner1 (arcXR1 - arcXL1 + df.leftSB * 2) local adbInner1 : [ArchDepthBOf smInner1 : arcXR1 - arcXL1 + df.leftSB * 2] * df.div
local smInner2 : clamp (df.mvs * 1.5) (0.499 * heightInner2) (ArchDepth * heightInner2 / CAP) local smInner2 : clamp (df.mvs * 1.5) (0.499 * heightInner2) (ArchDepth * heightInner2 / CAP)
local adaInner2 : ArchDepthAOf smInner2 (arcXR2 - arcXL2 + df.leftSB * 2) local adaInner2 : [ArchDepthAOf smInner2 : arcXR2 - arcXL2 + df.leftSB * 2] * df.div
local adbInner2 : ArchDepthBOf smInner2 (arcXR2 - arcXL2 + df.leftSB * 2) local adbInner2 : [ArchDepthBOf smInner2 : arcXR2 - arcXL2 + df.leftSB * 2] * df.div
include : OShape CAP 0 df.leftSB df.rightSB df.mvs ArchDepthA ArchDepthB include : OShapeFlatTB CAP 0 df.leftSB df.rightSB df.mvs ada adb gap
include : OShape (CAP - heightGap) (0 + heightGap) arcXL1 arcXR1 df.mvs adaInner1 adbInner1 include : OShapeFlatTB (CAP - heightGap) (0 + heightGap) arcXL1 arcXR1 df.mvs adaInner1 adbInner1 gapInner1
include : OShape (CAP - 2 * heightGap) (0 + 2 * heightGap) arcXL2 arcXR2 df.mvs adaInner2 adbInner2 include : OShapeFlatTB (CAP - 2 * heightGap) (0 + 2 * heightGap) arcXL2 arcXR2 df.mvs adaInner2 adbInner2 gapInner2
include : VBar.m df.middle (df.mvs / 2) (CAP - df.mvs / 2) df.mvs include : VBar.m df.middle (df.mvs / 2) (CAP - df.mvs / 2) df.mvs
create-glyph 'oupperhalf' 0x1D16 : glyph-proc create-glyph 'oupperhalf' 0x1D16 : glyph-proc
@ -246,7 +265,7 @@ glyph-block Letter-Latin-O : begin
CreateAccentedComposition 'oDieresis' 0xF6 'o' 'dieresisAbove' CreateAccentedComposition 'oDieresis' 0xF6 'o' 'dieresisAbove'
create-glyph 'numeroRightHalf' : glyph-proc create-glyph 'numeroRightHalf' : glyph-proc
include : OShape XH [Math.max (Stroke * 1.5) (CAP * 0.1)] SB RightSB Stroke ArchDepthA ArchDepthB include : OShape XH [Math.max (CAP * 0.1) (Stroke * 1.5)] SB RightSB Stroke ArchDepthA ArchDepthB
include : HBar.b SB RightSB 0 include : HBar.b SB RightSB 0
CreateAccentedComposition 'oSbRsbUnderlineBelow' null 'o' 'sbRsbUnderlineBelow' CreateAccentedComposition 'oSbRsbUnderlineBelow' null 'o' 'sbRsbUnderlineBelow'