Cleanup of loosely related O-derived characters. (#2544)
* Cleanup of #2541 . * Optimize glyph of `OE`/`smcpOE`.
This commit is contained in:
parent
c8f87995a9
commit
1666e2b37a
4 changed files with 44 additions and 24 deletions
|
@ -1,6 +1,7 @@
|
|||
* Add IJ-acute ligatures (#2483).
|
||||
* Allowed customizing menu WWS value to name map (#2488).
|
||||
* Optimize glyphs for `rounded-serifless` and `rounded-serifed` variants for Capital Eszett (`ẞ`).
|
||||
* Optimize glyph for Capital OE (`U+0152`) under Quasi-Proportional.
|
||||
* 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 Cyrillic Capital/Lower Broad On (`U+047A`, `U+047B`).
|
||||
|
|
|
@ -13,7 +13,7 @@ glyph-block Letter-Greek-Phi : begin
|
|||
glyph-block-import Letter-Latin-Lower-AE-OE : SubDfAndShift
|
||||
|
||||
define [VarPhiRing fFlatTB df y2 y3] : glyph-proc
|
||||
local gap : Math.max df.mvs : 0.25 * (df.rightSB - df.leftSB)
|
||||
local gap : Math.max (0.25 * (df.rightSB - df.leftSB)) : HSwToV df.mvs
|
||||
include : VBar.m df.middle y2 y3 df.mvs
|
||||
include : if fFlatTB
|
||||
OShapeFlatTB y3 y2 df.leftSB df.rightSB df.mvs (ArchDepthA * df.div) (ArchDepthB * df.div) gap
|
||||
|
@ -130,7 +130,7 @@ glyph-block Letter-Greek-Phi : begin
|
|||
local df : include : DivFrame para.diversityM 3
|
||||
include : df.markSet.capital
|
||||
|
||||
local vJut : Math.max (LongJut - 0.5 * Stroke) : if SLAB (1.25 * Stroke - O) 0
|
||||
local vJut : Math.max (LongJut - 0.5 * Stroke) : if SLAB (1.5 * Stroke) 0
|
||||
|
||||
local top : CAP + vJut
|
||||
local bot : 0 - vJut
|
||||
|
|
|
@ -210,13 +210,26 @@ glyph-block Letter-Latin-Upper-AE-OE : begin
|
|||
local yBar : top * eBarPos
|
||||
local { jutTop jutBot jutMid } : EFVJutLength top eBarPos sw
|
||||
|
||||
local ada : df.archDepthA ArchDepth sw
|
||||
local adb : df.archDepthB ArchDepth sw
|
||||
|
||||
# O half
|
||||
if (top > ada + adb) : then : begin
|
||||
include : dispiro
|
||||
widths.lhs sw 0
|
||||
straight.left.start eleft top [heading Leftward]
|
||||
archv
|
||||
flat df.leftSB (top - ArchDepthA)
|
||||
curl df.leftSB (ArchDepthB)
|
||||
flat df.leftSB (top - ada)
|
||||
curl df.leftSB (0 + adb)
|
||||
arcvh
|
||||
straight.right.end eleft 0 [heading Rightward]
|
||||
: else : begin
|
||||
local yMidLeft : top * (adb / (ada + adb))
|
||||
include : dispiro
|
||||
widths.lhs sw 0
|
||||
straight.left.start eleft top [heading Leftward]
|
||||
archv
|
||||
g4 df.leftSB yMidLeft
|
||||
arcvh
|
||||
straight.right.end eleft 0 [heading Rightward]
|
||||
|
||||
|
|
|
@ -64,9 +64,12 @@ glyph-block Letter-Latin-O : begin
|
|||
create-glyph 'cyrl/BroadOn' 0x47A : glyph-proc
|
||||
define df : include : DivFrame [mix 1 para.diversityM 0.5] 3
|
||||
include : df.markSet.capital
|
||||
local gap : Math.max (0.25 * (df.rightSB - df.leftSB)) : HSwToV (rBroadOn * Math.SQRT2)
|
||||
local ada : ArchDepthA * df.div
|
||||
local adb : ArchDepthB * df.div
|
||||
local dist : df.rightSB - df.leftSB
|
||||
local gap : Math.min
|
||||
Math.max (0.25 * dist) [HSwToV : Math.SQRT2 * rBroadOn]
|
||||
Math.max (dist - [HSwToV : 3 * df.mvs]) [HSwToV df.mvs]
|
||||
local ada : df.archDepthA ArchDepth df.mvs
|
||||
local adb : df.archDepthB ArchDepth df.mvs
|
||||
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 (CAP - df.mvs / 2 - O) rBroadOn
|
||||
|
@ -74,9 +77,12 @@ glyph-block Letter-Latin-O : begin
|
|||
create-glyph 'cyrl/broadOn' 0x47B : glyph-proc
|
||||
define df : include : DivFrame [mix 1 para.diversityM 0.5] 3
|
||||
include : df.markSet.e
|
||||
local gap : Math.max (0.25 * (df.rightSB - df.leftSB)) : HSwToV (rBroadOn * Math.SQRT2)
|
||||
local ada : ArchDepthA * df.div
|
||||
local adb : ArchDepthB * df.div
|
||||
local dist : df.rightSB - df.leftSB
|
||||
local gap : Math.min
|
||||
Math.max (0.25 * dist) [HSwToV : Math.SQRT2 * rBroadOn]
|
||||
Math.max (dist - [HSwToV : 3 * df.mvs]) [HSwToV df.mvs]
|
||||
local ada : df.archDepthA SmallArchDepth df.mvs
|
||||
local adb : df.archDepthB SmallArchDepth df.mvs
|
||||
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 (XH - df.mvs / 2 - O) rBroadOn
|
||||
|
@ -183,15 +189,15 @@ glyph-block Letter-Latin-O : begin
|
|||
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 arcXR1 : df.leftSB + innerDist * (3 / 4) + [HSwToV : 4 * df.mvs]
|
||||
local arcXL : df.leftSB + innerDist * (1 / 4) + [HSwToV : 1 * df.mvs]
|
||||
local arcXR : 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 heightInner : CAP - 2 * heightGap
|
||||
local smInner : clamp (df.mvs * 1.5) (0.499 * heightInner) (ArchDepth * heightInner / CAP)
|
||||
local adaInner : [ArchDepthAOf smInner : arcXR1 - arcXL1 + df.leftSB * 2] * df.div
|
||||
local adbInner : [ArchDepthBOf smInner : arcXR1 - arcXL1 + df.leftSB * 2] * df.div
|
||||
local adaInner : [ArchDepthAOf smInner : arcXR - arcXL + df.leftSB * 2] * df.div
|
||||
local adbInner : [ArchDepthBOf smInner : arcXR - arcXL + df.leftSB * 2] * df.div
|
||||
include : OShapeFlatTB CAP 0 df.leftSB df.rightSB df.mvs ada adb gap
|
||||
include : OShapeFlatTB (CAP - heightGap) (0 + heightGap) arcXL1 arcXR1 df.mvs adaInner adbInner gapInner
|
||||
include : OShapeFlatTB (CAP - heightGap) (0 + heightGap) arcXL arcXR df.mvs adaInner adbInner gapInner
|
||||
include : VBar.m df.middle (df.mvs / 2) (CAP - df.mvs / 2) df.mvs
|
||||
|
||||
create-glyph 'romanHundredThousand' 0x2188 : glyph-proc
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue