Miscellaneous optimizations for metrics of certain phonetic/etc. characters. (#2504)
* Fix variant application to half parentheses. * Make Capital/Lower Small Capital I slightly wider. * Make Komi Dje slightly wider. * Optimize bowl height of Cyrillic Tje. * Optimize descender offset for Cyrillic Dhe/The.
This commit is contained in:
parent
3289cc13c4
commit
3cbbfaa88a
8 changed files with 43 additions and 33 deletions
|
@ -2,6 +2,9 @@
|
||||||
* Improve widths of overline marks of Serbian italic lower Ghe/Pe/Te.
|
* Improve widths of overline marks of Serbian italic lower Ghe/Pe/Te.
|
||||||
* Remove crossbar variants for `Z`/`z` when under Polish locale (`PLK`) to avoid confusion with the handwritten `Ż`/`ż` allograph, `Ƶ`/`ƶ`.
|
* Remove crossbar variants for `Z`/`z` when under Polish locale (`PLK`) to avoid confusion with the handwritten `Ż`/`ż` allograph, `Ƶ`/`ƶ`.
|
||||||
* Make serif variants for Latin Capital/Small Schwa (`Ə`/`ə`) only appear under Turkic (Turkish/Azerbaijani/etc.) locales (`TRK`, `AZE`, `GAG`, `KAZ`, `TAT`, `CRT`) as other languages that use Latin Schwa (including the IPA) unify its metrics with Open O (`Ɔ`/`ɔ`) or a literal Turned E (`Ǝ`/`ǝ`).
|
* Make serif variants for Latin Capital/Small Schwa (`Ə`/`ə`) only appear under Turkic (Turkish/Azerbaijani/etc.) locales (`TRK`, `AZE`, `GAG`, `KAZ`, `TAT`, `CRT`) as other languages that use Latin Schwa (including the IPA) unify its metrics with Open O (`Ɔ`/`ɔ`) or a literal Turned E (`Ǝ`/`ǝ`).
|
||||||
|
* Make serifs of Latin Letter Small Capital I (`ɪ`) slightly wider under Quasi-Proportional.
|
||||||
|
* Make Cyrillic Small Letter Komi Dje (`ԃ`) slightly wider under Quasi-Proportional.
|
||||||
|
* Make Latin Capital Letter Small Capital I (`Ɪ`) slightly wider under Etoile.
|
||||||
* Add Characters:
|
* Add Characters:
|
||||||
- CYRILLIC CAPITAL LETTER TJE (`U+1C89`) ... CYRILLIC SMALL LETTER TJE (`U+1C8A`).
|
- CYRILLIC CAPITAL LETTER TJE (`U+1C89`) ... CYRILLIC SMALL LETTER TJE (`U+1C8A`).
|
||||||
- COMPOSITION SYMBOL (`U+2384`).
|
- COMPOSITION SYMBOL (`U+2384`).
|
||||||
|
|
|
@ -36,7 +36,7 @@ glyph-block Letter-Cyrillic-Tje : begin
|
||||||
left -- [mix df.leftSB df.rightSB 0.3] + OX
|
left -- [mix df.leftSB df.rightSB 0.3] + OX
|
||||||
right -- df.rightSB
|
right -- df.rightSB
|
||||||
stroke -- df.mvs
|
stroke -- df.mvs
|
||||||
bowl -- [Math.min (YeriBarPos * top + HalfStroke) (top - 1.25 * jutTop)]
|
bowl -- YeriBarPos * top + [Math.min HalfStroke jutMid]
|
||||||
eject-contour 'serifYeriLT'
|
eject-contour 'serifYeriLT'
|
||||||
eject-contour 'serifYeriLB'
|
eject-contour 'serifYeriLB'
|
||||||
|
|
||||||
|
|
|
@ -100,11 +100,10 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
|
||||||
|
|
||||||
glyph-block-export CyrZe
|
glyph-block-export CyrZe
|
||||||
define [CyrZe] : with-params [
|
define [CyrZe] : with-params [
|
||||||
slabTop slabBot top bot left right blend hook _stroke
|
slabTop slabBot top bot left right blend hook [stroke : AdviceStroke2 2 3 (top - bot)]
|
||||||
[xo OX] [yo O] [op OverlayPos] [ada2 SmallArchDepthA] [adb2 SmallArchDepthB]
|
[xo OX] [yo O] [op OverlayPos] [ada2 SmallArchDepthA] [adb2 SmallArchDepthB]
|
||||||
] : namespace
|
] : namespace
|
||||||
export : define [Dim] : begin
|
export : define [Dim] : begin
|
||||||
local stroke : fallback _stroke : AdviceStroke2 2 3 (top - bot)
|
|
||||||
local midx : mix right left blend
|
local midx : mix right left blend
|
||||||
local midy : mix bot top op
|
local midy : mix bot top op
|
||||||
local topHeight : top - bot
|
local topHeight : top - bot
|
||||||
|
@ -247,7 +246,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
|
||||||
include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke)
|
include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke)
|
||||||
include : let [zeNoO : CyrZe slabTop slabBot CAP 0 SB RightSB StdBlend Hook (xo -- 0) (yo -- 0)]
|
include : let [zeNoO : CyrZe slabTop slabBot CAP 0 SB RightSB StdBlend Hook (xo -- 0) (yo -- 0)]
|
||||||
difference
|
difference
|
||||||
VBar.m Middle (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5]
|
VBar.m [arch.adjust-x.bot Middle] (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5]
|
||||||
zeNoO.ShapeMask
|
zeNoO.ShapeMask
|
||||||
|
|
||||||
create-glyph "cyrl/dhe.\(suffix)" : glyph-proc
|
create-glyph "cyrl/dhe.\(suffix)" : glyph-proc
|
||||||
|
@ -255,7 +254,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
|
||||||
include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke)
|
include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke)
|
||||||
include : let [zeNoO : CyrZe slabTop slabBot XH 0 SB RightSB StdBlend SHook (xo -- 0) (yo -- 0)]
|
include : let [zeNoO : CyrZe slabTop slabBot XH 0 SB RightSB StdBlend SHook (xo -- 0) (yo -- 0)]
|
||||||
difference
|
difference
|
||||||
VBar.m Middle (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5]
|
VBar.m [arch.adjust-x.bot Middle] (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5]
|
||||||
zeNoO.ShapeMask
|
zeNoO.ShapeMask
|
||||||
|
|
||||||
create-glyph "cyrl/DzjeKomi.\(suffix)" : glyph-proc
|
create-glyph "cyrl/DzjeKomi.\(suffix)" : glyph-proc
|
||||||
|
|
|
@ -359,7 +359,7 @@ glyph-block Letter-Latin-C : begin
|
||||||
include [refer-glyph src] AS_BASE ALSO_METRICS
|
include [refer-glyph src] AS_BASE ALSO_METRICS
|
||||||
include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke)
|
include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke)
|
||||||
include : difference
|
include : difference
|
||||||
VBar.m Middle (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5]
|
VBar.m [arch.adjust-x.bot Middle] (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5]
|
||||||
OShapeOutline.NoOvershoot CAP 0 SB RightSB Stroke ArchDepthA ArchDepthB
|
OShapeOutline.NoOvershoot CAP 0 SB RightSB Stroke ArchDepthA ArchDepthB
|
||||||
|
|
||||||
derive-multi-part-glyphs 'cyrl/The.BSH' null { 'cyrl/Es' 'invCommaBelow' } : lambda [srcs gr] : glyph-proc
|
derive-multi-part-glyphs 'cyrl/The.BSH' null { 'cyrl/Es' 'invCommaBelow' } : lambda [srcs gr] : glyph-proc
|
||||||
|
@ -375,7 +375,7 @@ glyph-block Letter-Latin-C : begin
|
||||||
include [refer-glyph src] AS_BASE ALSO_METRICS
|
include [refer-glyph src] AS_BASE ALSO_METRICS
|
||||||
include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke)
|
include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke)
|
||||||
include : difference
|
include : difference
|
||||||
VBar.m Middle (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5]
|
VBar.m [arch.adjust-x.bot Middle] (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5]
|
||||||
OShapeOutline.NoOvershoot XH 0 SB RightSB Stroke SmallArchDepthA SmallArchDepthB
|
OShapeOutline.NoOvershoot XH 0 SB RightSB Stroke SmallArchDepthA SmallArchDepthB
|
||||||
|
|
||||||
derive-multi-part-glyphs 'cyrl/the.BSH' null { 'cyrl/es' 'invCommaBelow' } : lambda [srcs gr] : glyph-proc
|
derive-multi-part-glyphs 'cyrl/the.BSH' null { 'cyrl/es' 'invCommaBelow' } : lambda [srcs gr] : glyph-proc
|
||||||
|
|
|
@ -124,7 +124,7 @@ glyph-block Letter-Latin-Lower-D : begin
|
||||||
include : LeaningAnchor.Above.VBar.r df.rightSB
|
include : LeaningAnchor.Above.VBar.r df.rightSB
|
||||||
|
|
||||||
if [not bottomSerif] : create-glyph "cyrl/djeKomi.\(suffix)" : glyph-proc
|
if [not bottomSerif] : create-glyph "cyrl/djeKomi.\(suffix)" : glyph-proc
|
||||||
local df : DivFrame 1 3
|
local df : include : DivFrame para.diversityM 3
|
||||||
include : df.markSet.b
|
include : df.markSet.b
|
||||||
|
|
||||||
local dfHalf : df.slice 3 2
|
local dfHalf : df.slice 3 2
|
||||||
|
|
|
@ -14,11 +14,13 @@ glyph-block Letter-Latin-Upper-I : begin
|
||||||
define [ISeriflessShape df top bot jut] : glyph-proc
|
define [ISeriflessShape df top bot jut] : glyph-proc
|
||||||
include : VBar.m df.middle bot top
|
include : VBar.m df.middle bot top
|
||||||
|
|
||||||
define [ISerifShape df top bot jut] : glyph-proc
|
define [ISerifShapeImpl df top bot jut] : glyph-proc
|
||||||
include : VBar.m df.middle bot top
|
include : VBar.m df.middle bot top
|
||||||
include : HSerif.mb df.middle bot (jut * df.div)
|
include : HSerif.mb df.middle bot jut
|
||||||
include : HSerif.mt df.middle top (jut * df.div)
|
include : HSerif.mt df.middle top jut
|
||||||
set-base-anchor 'trailing' (df.middle + jut * df.div) bot
|
set-base-anchor 'trailing' (df.middle + jut) bot
|
||||||
|
|
||||||
|
define [ISerifShape df top bot jut] : ISerifShapeImpl df top bot (jut * df.div)
|
||||||
|
|
||||||
define UpperIConfig : object
|
define UpperIConfig : object
|
||||||
'straight' { para.diversityI ISeriflessShape LongJut }
|
'straight' { para.diversityI ISeriflessShape LongJut }
|
||||||
|
@ -63,7 +65,9 @@ glyph-block Letter-Latin-Upper-I : begin
|
||||||
create-glyph 'smcpI' 0x26A : glyph-proc
|
create-glyph 'smcpI' 0x26A : glyph-proc
|
||||||
local df : include : DivFrame para.diversityI
|
local df : include : DivFrame para.diversityI
|
||||||
include : df.markSet.e
|
include : df.markSet.e
|
||||||
include : ISerifShape df XH 0 MidJutCenter
|
include : ISerifShapeImpl df XH 0 MidJutCenter
|
||||||
|
|
||||||
|
CreateAccentedComposition 'smcpIBarOver' 0x1D7B 'smcpI' 'barOver'
|
||||||
|
|
||||||
glyph-block-import Letter-Blackboard : BBS BBD BBBarCenter
|
glyph-block-import Letter-Blackboard : BBS BBD BBBarCenter
|
||||||
create-glyph 'mathbb/I' 0x1D540 : glyph-proc
|
create-glyph 'mathbb/I' 0x1D540 : glyph-proc
|
||||||
|
@ -71,5 +75,3 @@ glyph-block Letter-Latin-Upper-I : begin
|
||||||
include : BBBarCenter Middle 0 CAP
|
include : BBBarCenter Middle 0 CAP
|
||||||
include : HBar.t (Middle - BBD / 2 - Jut) (Middle + BBD / 2 + Jut) CAP BBS
|
include : HBar.t (Middle - BBD / 2 - Jut) (Middle + BBD / 2 + Jut) CAP BBS
|
||||||
include : HBar.b (Middle - BBD / 2 - Jut) (Middle + BBD / 2 + Jut) 0 BBS
|
include : HBar.b (Middle - BBD / 2 - Jut) (Middle + BBD / 2 + Jut) 0 BBS
|
||||||
|
|
||||||
CreateAccentedComposition 'smcpIBarOver' 0x1D7B 'smcpI' 'barOver'
|
|
||||||
|
|
|
@ -195,16 +195,8 @@ glyph-block Letter-Latin-Upper-T : begin
|
||||||
CreateAccentedComposition 'TCedilla' 0x0162 'T' 'cedillaBelow'
|
CreateAccentedComposition 'TCedilla' 0x0162 'T' 'cedillaBelow'
|
||||||
CreateAccentedComposition 'TComma' 0x021A 'T' 'commaBelow'
|
CreateAccentedComposition 'TComma' 0x021A 'T' 'commaBelow'
|
||||||
|
|
||||||
create-glyph 'mathbb/T' 0x1D54B : glyph-proc
|
|
||||||
local df : DivFrame 1
|
|
||||||
include : df.markSet.capital
|
|
||||||
include : HBar.t [TLeftX df] [TRightX df] CAP BBS
|
|
||||||
include : VBar.m (df.middle - BBD / 2) 0 CAP BBS
|
|
||||||
include : VBar.m (df.middle + BBD / 2) 0 CAP BBS
|
|
||||||
include : HBar.b (df.middle - BBD / 2) (df.middle + BBD / 2) 0 BBS
|
|
||||||
|
|
||||||
create-glyph 'capitalSmcpI' 0xA7AE : glyph-proc
|
create-glyph 'capitalSmcpI' 0xA7AE : glyph-proc
|
||||||
local df : include : DivFrame 1
|
local df : include : DivFrame [if SLAB [mix 1 para.diversityM 0.5] 1]
|
||||||
include : df.markSet.capital
|
include : df.markSet.capital
|
||||||
local l : TLeftX df
|
local l : TLeftX df
|
||||||
local r : TRightX df
|
local r : TRightX df
|
||||||
|
@ -218,3 +210,11 @@ glyph-block Letter-Latin-Upper-T : begin
|
||||||
include : tagged 'serifLT' : VSerif.dl l CAP VJut
|
include : tagged 'serifLT' : VSerif.dl l CAP VJut
|
||||||
include : tagged 'serifRB' : VSerif.ur r 0 VJut
|
include : tagged 'serifRB' : VSerif.ur r 0 VJut
|
||||||
include : tagged 'serifLB' : VSerif.ul l 0 VJut
|
include : tagged 'serifLB' : VSerif.ul l 0 VJut
|
||||||
|
|
||||||
|
create-glyph 'mathbb/T' 0x1D54B : glyph-proc
|
||||||
|
local df : DivFrame 1
|
||||||
|
include : df.markSet.capital
|
||||||
|
include : HBar.t [TLeftX df] [TRightX df] CAP BBS
|
||||||
|
include : VBar.m (df.middle - BBD / 2) 0 CAP BBS
|
||||||
|
include : VBar.m (df.middle + BBD / 2) 0 CAP BBS
|
||||||
|
include : HBar.b (df.middle - BBD / 2) (df.middle + BBD / 2) 0 BBS
|
||||||
|
|
|
@ -102,11 +102,26 @@ glyph-block Symbol-Punctuation-Brackets : begin
|
||||||
turned "parenRight.\(suffix)" null "parenLeft.\(suffix)" Middle SymbolMid
|
turned "parenRight.\(suffix)" null "parenLeft.\(suffix)" Middle SymbolMid
|
||||||
turned "doubleParenRight.\(suffix)" null "doubleParenLeft.\(suffix)" Middle SymbolMid
|
turned "doubleParenRight.\(suffix)" null "doubleParenLeft.\(suffix)" Middle SymbolMid
|
||||||
|
|
||||||
|
create-glyph "parenLeftUHalf.\(suffix)" : intersection
|
||||||
|
refer-glyph "parenLeft.\(suffix)"
|
||||||
|
MaskAbove SymbolMid
|
||||||
|
create-glyph "parenLeftLHalf.\(suffix)" : intersection
|
||||||
|
refer-glyph "parenLeft.\(suffix)"
|
||||||
|
MaskBelow SymbolMid
|
||||||
|
|
||||||
|
turned "parenRightUHalf.\(suffix)" null "parenLeftLHalf.\(suffix)" Middle SymbolMid
|
||||||
|
turned "parenRightLHalf.\(suffix)" null "parenLeftUHalf.\(suffix)" Middle SymbolMid
|
||||||
|
|
||||||
select-variant 'parenLeft' '('
|
select-variant 'parenLeft' '('
|
||||||
select-variant 'parenRight' ')'
|
select-variant 'parenRight' ')'
|
||||||
select-variant 'doubleParenLeft' 0x2E28 (follow -- 'parenLeft')
|
select-variant 'doubleParenLeft' 0x2E28 (follow -- 'parenLeft')
|
||||||
select-variant 'doubleParenRight' 0x2E29 (follow -- 'parenRight')
|
select-variant 'doubleParenRight' 0x2E29 (follow -- 'parenRight')
|
||||||
|
|
||||||
|
select-variant 'parenLeftUHalf' 0x2E59 (follow -- 'parenLeft')
|
||||||
|
select-variant 'parenRightUHalf' 0x2E5A (follow -- 'parenRight')
|
||||||
|
select-variant 'parenLeftLHalf' 0x2E5B (follow -- 'parenLeft')
|
||||||
|
select-variant 'parenRightLHalf' 0x2E5C (follow -- 'parenRight')
|
||||||
|
|
||||||
alias 'flattenedParenLeft' 0x27EE 'parenLeft.flatArc'
|
alias 'flattenedParenLeft' 0x27EE 'parenLeft.flatArc'
|
||||||
alias 'flattenedParenRight' 0x27EF 'parenRight.flatArc'
|
alias 'flattenedParenRight' 0x27EF 'parenRight.flatArc'
|
||||||
|
|
||||||
|
@ -140,15 +155,6 @@ glyph-block Symbol-Punctuation-Brackets : begin
|
||||||
|
|
||||||
turned 'zNotationParenRight' 0x2988 'zNotationParenLeft' Middle SymbolMid
|
turned 'zNotationParenRight' 0x2988 'zNotationParenLeft' Middle SymbolMid
|
||||||
|
|
||||||
create-glyph 'parenLeftUHalf' 0x2E59 : intersection
|
|
||||||
refer-glyph 'parenLeft'
|
|
||||||
MaskAbove SymbolMid
|
|
||||||
create-glyph 'parenLeftLHalf' 0x2E5B : intersection
|
|
||||||
refer-glyph 'parenLeft'
|
|
||||||
MaskBelow SymbolMid
|
|
||||||
turned 'parenRightUHalf' 0x2E5A 'parenLeftLHalf' Middle SymbolMid
|
|
||||||
turned 'parenRightLHalf' 0x2E5C 'parenLeftUHalf' Middle SymbolMid
|
|
||||||
|
|
||||||
define Bracket : namespace
|
define Bracket : namespace
|
||||||
export : define [HDim barLeft ext] : namespace
|
export : define [HDim barLeft ext] : namespace
|
||||||
export : define l : fallback barLeft : [mix SB RightSB DesignParameters.bracketOutside] - [HSwToV DesignParameters.bracketOutsideSwAdj] * Stroke
|
export : define l : fallback barLeft : [mix SB RightSB DesignParameters.bracketOutside] - [HSwToV DesignParameters.bracketOutsideSwAdj] * Stroke
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue