Fix shape of Reversed-E (#618).
This commit is contained in:
parent
6146a1f114
commit
43431f8ba8
8 changed files with 135 additions and 95 deletions
|
@ -1,3 +1,4 @@
|
||||||
* Fix placement of comma-shaped caron in l-caron and t-caron (#613).
|
* Fix placement of comma-shaped caron in l-caron and t-caron (#613).
|
||||||
* Fix placement of crossbar of `7` under onum and `VXAX`/`VXAY` (#615).
|
* Fix placement of crossbar of `7` under onum and `VXAX`/`VXAY` (#615).
|
||||||
* Fix placement of overflowing bar of R-bar (#614).
|
* Fix placement of overflowing bar of R-bar (#614).
|
||||||
|
* Fix shape of Reversed-E (#618).
|
|
@ -462,15 +462,15 @@ glyph-block Letter-Greek-Pi : begin
|
||||||
glyph-block-import Overmarks
|
glyph-block-import Overmarks
|
||||||
|
|
||||||
glyph-block-export PiShape
|
glyph-block-export PiShape
|
||||||
define [PiShape] : params [top bottom [shrinkrate 0.05] _fine noserif [endShrink 0] [df : DivFrame 1]] : glyph-construction
|
define [PiShape] : params [top bottom [shrinkrate 0.05] _fine noSerif [endShrink 0] [df : DivFrame 1]] : glyph-construction
|
||||||
local fine : fallback _fine Stroke
|
local fine : fallback _fine Stroke
|
||||||
local shrink : if (!noserif && SLAB) 0 (shrinkrate * (df.rightSB - df.leftSB))
|
local shrink : if (!noSerif && SLAB) 0 (shrinkrate * (df.rightSB - df.leftSB))
|
||||||
local endexpand : if (!noserif && SLAB) 0 (- endShrink * (df.rightSB - df.leftSB) || shrink / 2)
|
local endexpand : if (!noSerif && SLAB) 0 (- endShrink * (df.rightSB - df.leftSB) || shrink / 2)
|
||||||
include : HBarTop (df.leftSB - endexpand) (df.rightSB + endexpand) top fine
|
include : HBarTop (df.leftSB - endexpand) (df.rightSB + endexpand) top fine
|
||||||
include : VBarLeft (df.leftSB + shrink) bottom (top - fine / 2) fine
|
include : VBarLeft (df.leftSB + shrink) bottom (top - fine / 2) fine
|
||||||
include : VBarRight (df.rightSB - shrink) bottom (top - fine / 2) fine
|
include : VBarRight (df.rightSB - shrink) bottom (top - fine / 2) fine
|
||||||
|
|
||||||
if (!noserif && SLAB) : begin
|
if (!noSerif && SLAB) : begin
|
||||||
include : CenterBottomSerif (df.leftSB + shrink + fine * 0.5 * HVContrast) bottom Jut fine
|
include : CenterBottomSerif (df.leftSB + shrink + fine * 0.5 * HVContrast) bottom Jut fine
|
||||||
include : CenterBottomSerif (df.rightSB - shrink - fine * 0.5 * HVContrast) bottom Jut fine
|
include : CenterBottomSerif (df.rightSB - shrink - fine * 0.5 * HVContrast) bottom Jut fine
|
||||||
include : CenterTopSerif (df.leftSB + shrink + fine * 0.5 * HVContrast) top Jut fine
|
include : CenterTopSerif (df.leftSB + shrink + fine * 0.5 * HVContrast) top Jut fine
|
||||||
|
@ -495,7 +495,7 @@ glyph-block Letter-Greek-Pi : begin
|
||||||
italic-variant 'cyrpe' 0x43f
|
italic-variant 'cyrpe' 0x43f
|
||||||
sketch # pi
|
sketch # pi
|
||||||
include MarkSet.e
|
include MarkSet.e
|
||||||
include : PiShape XH 0 (noserif -- true) (shrinkrate -- 0.06)
|
include : PiShape XH 0 (noSerif -- true) (shrinkrate -- 0.06)
|
||||||
save 'pi' 0x3C0
|
save 'pi' 0x3C0
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3279,12 +3279,12 @@ glyph-block Letter-Latin-Lower-G : begin
|
||||||
|
|
||||||
sketch # g.doublestorey
|
sketch # g.doublestorey
|
||||||
include MarkSet.p
|
include MarkSet.p
|
||||||
local obot : XH * GBarPos - O - Stroke * 0.4
|
local obot : XH * designParameters.gBarPos - O - Stroke * 0.4
|
||||||
include : OShape XH obot SB (RightSB - 0.3 * SB)
|
include : OShape XH obot SB (RightSB - 0.3 * SB)
|
||||||
|
|
||||||
local gleftx ([mix 0 SB 0.85] + OX)
|
local gleftx ([mix 0 SB 0.85] + OX)
|
||||||
local grightx ([mix Width RightSB 0.825] - OX)
|
local grightx ([mix Width RightSB 0.825] - OX)
|
||||||
local groundy : Math.round : [mix Descender (XH * GBarPos) 0.64] + HalfStroke
|
local groundy : Math.round : [mix Descender (XH * designParameters.gBarPos) 0.64] + HalfStroke
|
||||||
local gtipy : [mix groundy (obot + Stroke + O) 1.005] - Stroke * CThin
|
local gtipy : [mix groundy (obot + Stroke + O) 1.005] - Stroke * CThin
|
||||||
include : dispiro
|
include : dispiro
|
||||||
g4.left.start [mix SB RightSB 0.4] gtipy [widths 0 (Stroke * CThin)]
|
g4.left.start [mix SB RightSB 0.4] gtipy [widths 0 (Stroke * CThin)]
|
||||||
|
@ -3311,12 +3311,12 @@ glyph-block Letter-Latin-Lower-G : begin
|
||||||
|
|
||||||
sketch # g.opendoublestorey
|
sketch # g.opendoublestorey
|
||||||
include MarkSet.p
|
include MarkSet.p
|
||||||
local obot : XH * GBarPos - O - Stroke * 0.4
|
local obot : XH * designParameters.gBarPos - O - Stroke * 0.4
|
||||||
include : OShape XH obot SB (RightSB - 0.3 * SB)
|
include : OShape XH obot SB (RightSB - 0.3 * SB)
|
||||||
|
|
||||||
local gleftx ([mix 0 SB 0.85] + OX)
|
local gleftx ([mix 0 SB 0.85] + OX)
|
||||||
local grightx ([mix Width RightSB 0.825] - OX)
|
local grightx ([mix Width RightSB 0.825] - OX)
|
||||||
local groundy : Math.round : [mix Descender (XH * GBarPos) 0.64] + HalfStroke
|
local groundy : Math.round : [mix Descender (XH * designParameters.gBarPos) 0.64] + HalfStroke
|
||||||
local gtipy : [mix groundy (obot + Stroke + O) 1.005] - Stroke * CThin
|
local gtipy : [mix groundy (obot + Stroke + O) 1.005] - Stroke * CThin
|
||||||
include : dispiro
|
include : dispiro
|
||||||
g4.left.start [mix SB RightSB 0.4] gtipy [widths 0 (Stroke * CThin)]
|
g4.left.start [mix SB RightSB 0.4] gtipy [widths 0 (Stroke * CThin)]
|
||||||
|
@ -4208,24 +4208,47 @@ glyph-block Letter-Latin-Lower-H : begin
|
||||||
glyph-block Letter-Latin-Upper-F : begin
|
glyph-block Letter-Latin-Upper-F : begin
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Overmarks
|
glyph-block-import Overmarks
|
||||||
glyph-block-export FShape
|
glyph-block-export FShape RevFShape EFVJutLength
|
||||||
|
|
||||||
define [FShape top y noserif] : glyph-construction
|
define [xMidBarShrink] : [Math.max HalfStroke ((RightSB - SB) * 0.15)] + [if SLAB (Stroke * 0.25) 0]
|
||||||
local stroke : adviceBlackness2 2.875 2 CAP
|
define [yMidBar top y] : top * [fallback y : designParameters.upperEBarPos SLAB]
|
||||||
local FBarLeft : SB * 1.5
|
define [EFVJutLength top pyBar stroke] : begin
|
||||||
include : VBarLeft (FBarLeft) 0 [fallback top CAP] stroke
|
local jutTop : Math.min VJut
|
||||||
include : HBarTop (FBarLeft - O) RightSB [fallback top CAP] stroke
|
top - [mix (top - stroke) ([yMidBar top pyBar] + stroke / 2) 0.5]
|
||||||
include : HBar (FBarLeft - O) (RightSB - [Math.max HalfStroke ((RightSB - SB) * 0.15)] - [if SLAB (Stroke * 0.25) 0]) ([fallback top CAP] * [fallback y [if SLAB 0.52 0.54]]) stroke
|
local jutBot : Math.min VJut
|
||||||
if (SLAB && !noserif) : begin
|
mix stroke ([yMidBar top pyBar] - stroke / 2) 0.5
|
||||||
include : LeftwardTopSerif FBarLeft [fallback top CAP] SideJut
|
return { jutTop jutBot }
|
||||||
include : LeftwardBottomSerif (FBarLeft + HalfStroke * HVContrast) 0 Jut
|
|
||||||
include : tagged 'serifBottom' : RightwardBottomSerif (FBarLeft + HalfStroke * HVContrast) 0 MidJutSide
|
define [FShape] : params [top pyBar noSerif] : glyph-construction
|
||||||
include : DownwardRightSerif RightSB [fallback top CAP] VJut
|
define stroke : adviceBlackness2 2.875 2 CAP
|
||||||
|
define xFBarLeft : SB * 1.5
|
||||||
|
include : VBarLeft (xFBarLeft) 0 top stroke
|
||||||
|
include : HBarTop (xFBarLeft - O) RightSB top stroke
|
||||||
|
include : HBar (xFBarLeft - O) (RightSB - [xMidBarShrink]) [yMidBar top pyBar] stroke
|
||||||
|
if (SLAB && !noSerif) : begin
|
||||||
|
include : LeftwardTopSerif xFBarLeft top SideJut
|
||||||
|
include : tagged 'serifBottom' : LeftwardBottomSerif xFBarLeft 0 SideJut
|
||||||
|
include : tagged 'serifBottom' : RightwardBottomSerif (xFBarLeft + HalfStroke * HVContrast) 0 MidJutSide
|
||||||
|
local { jutTop jutBot } : EFVJutLength top pyBar stroke
|
||||||
|
include : DownwardRightSerif RightSB top jutTop
|
||||||
|
|
||||||
|
define [RevFShape] : params [top pyBar noSerif] : glyph-construction
|
||||||
|
define stroke : adviceBlackness2 2.875 2 CAP
|
||||||
|
define xFBarRight : Width - SB * 1.5
|
||||||
|
include : VBarRight (xFBarRight) 0 top stroke
|
||||||
|
include : HBarTop SB (xFBarRight + O) top stroke
|
||||||
|
include : HBar (SB + [xMidBarShrink]) (xFBarRight + O) [yMidBar top pyBar] stroke
|
||||||
|
if (SLAB && !noSerif) : begin
|
||||||
|
include : RightwardTopSerif xFBarRight top SideJut
|
||||||
|
include : tagged 'serifBottom' : RightwardBottomSerif xFBarRight 0 SideJut
|
||||||
|
include : tagged 'serifBottom' : LeftwardBottomSerif (xFBarRight - HalfStroke * HVContrast) 0 MidJutSide
|
||||||
|
local { jutTop jutBot } : EFVJutLength top pyBar stroke
|
||||||
|
include : DownwardLeftSerif SB top jutTop
|
||||||
|
|
||||||
create-glyph 'F' 'F' : glyph-construction
|
create-glyph 'F' 'F' : glyph-construction
|
||||||
set-width Width
|
set-width Width
|
||||||
include MarkSet.capital
|
include MarkSet.capital
|
||||||
include : FShape
|
include : FShape CAP
|
||||||
|
|
||||||
create-glyph 'symbol/currency/frenchFrancSign' 0x20A3 : glyph-construction
|
create-glyph 'symbol/currency/frenchFrancSign' 0x20A3 : glyph-construction
|
||||||
include : refer-glyph "F"
|
include : refer-glyph "F"
|
||||||
|
@ -4363,7 +4386,7 @@ glyph-block Letter-Latin-Lower-F : begin
|
||||||
|
|
||||||
save 'iviby' 0x285
|
save 'iviby' 0x285
|
||||||
|
|
||||||
define fbar : XH * para.fbarpos + Stroke * para.fbarStrokeAdj
|
define fbar : XH * designParameters.fBarPos + Stroke * para.fbarStrokeAdj
|
||||||
sketch # f.straight
|
sketch # f.straight
|
||||||
local fovershoot2 (O * 2)
|
local fovershoot2 (O * 2)
|
||||||
include MarkSet.b
|
include MarkSet.b
|
||||||
|
@ -4502,19 +4525,33 @@ glyph-block Letter-Latin-Lower-F : begin
|
||||||
glyph-block Letter-Latin-Upper-E : begin
|
glyph-block Letter-Latin-Upper-E : begin
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Overmarks
|
glyph-block-import Overmarks
|
||||||
glyph-block-import Letter-Latin-Upper-F : FShape
|
glyph-block-import Letter-Latin-Upper-F : FShape RevFShape EFVJutLength
|
||||||
|
|
||||||
glyph-block-export EShape
|
glyph-block-export EShape
|
||||||
define [EShape top] : glyph-construction
|
define [EShape] : params [top pyBar noSerif] : glyph-construction
|
||||||
local stroke : adviceBlackness2 2.875 2 CAP
|
define stroke : adviceBlackness2 2.875 2 CAP
|
||||||
include : FShape top nothing true
|
define xEBarLeft : SB * 1.5
|
||||||
include : HBarBottom (SB * 1.5 - O) RightSB 0 stroke
|
include : FShape top pyBar true
|
||||||
if SLAB : begin
|
include : HBarBottom (xEBarLeft - O) RightSB 0 stroke
|
||||||
include : LeftwardTopSerif (SB * 1.5) [fallback top CAP] SideJut
|
if (SLAB && !noSerif) : begin
|
||||||
include : tagged 'serifBottom' : CenterBottomSerif (SB * 1.5 + HalfStroke * HVContrast) 0 Jut
|
include : LeftwardTopSerif xEBarLeft top SideJut
|
||||||
include : DownwardRightSerif RightSB [fallback top CAP] VJut
|
include : LeftwardBottomSerif xEBarLeft 0 SideJut
|
||||||
include : LeftwardBottomSerif (SB * 1.5) 0 SideJut
|
local { jutTop jutBot } : EFVJutLength top pyBar stroke
|
||||||
include : UpwardRightSerif RightSB 0 VJut
|
include : DownwardRightSerif RightSB top jutTop
|
||||||
|
include : UpwardRightSerif RightSB 0 jutBot
|
||||||
|
|
||||||
|
glyph-block-export RevEShape
|
||||||
|
define [RevEShape] : params [top pyBar noSerif] : glyph-construction
|
||||||
|
define stroke : adviceBlackness2 2.875 2 CAP
|
||||||
|
define xEBarRight : Width - SB * 1.5
|
||||||
|
include : RevFShape top pyBar true
|
||||||
|
include : HBarBottom SB (xEBarRight + O) 0 stroke
|
||||||
|
if (SLAB && !noSerif) : begin
|
||||||
|
include : RightwardTopSerif xEBarRight top SideJut
|
||||||
|
include : RightwardBottomSerif xEBarRight 0 SideJut
|
||||||
|
local { jutTop jutBot } : EFVJutLength top pyBar stroke
|
||||||
|
include : DownwardLeftSerif SB top jutTop
|
||||||
|
include : UpwardLeftSerif SB 0 jutBot
|
||||||
|
|
||||||
sketch # turnE
|
sketch # turnE
|
||||||
set-width Width
|
set-width Width
|
||||||
|
@ -4525,7 +4562,10 @@ glyph-block Letter-Latin-Upper-E : begin
|
||||||
save 'Epsilon' 0x395
|
save 'Epsilon' 0x395
|
||||||
save 'cyrIe' 0x415
|
save 'cyrIe' 0x415
|
||||||
|
|
||||||
include : FlipAround Middle (CAP / 2)
|
create-glyph 'revE' 0x18E : glyph-construction
|
||||||
|
set-width Width
|
||||||
|
include MarkSet.capital
|
||||||
|
include : RevEShape CAP
|
||||||
save 'turnE' 0x18E
|
save 'turnE' 0x18E
|
||||||
|
|
||||||
sketch # smcpturnE
|
sketch # smcpturnE
|
||||||
|
@ -4541,7 +4581,7 @@ glyph-block Letter-Latin-Lower-E : begin
|
||||||
glyph-block-export SmallEShape RevSmallEShape
|
glyph-block-export SmallEShape RevSmallEShape
|
||||||
|
|
||||||
define [SmallEShape top stroke barpos curly] : glyph-construction
|
define [SmallEShape top stroke barpos curly] : glyph-construction
|
||||||
local barbottom : top * [fallback barpos EBarPos] - (stroke / 2)
|
local barbottom : top * [fallback barpos designParameters.eBarPos] - (stroke / 2)
|
||||||
local hookx (RightSB - OXHook + TailAdjX * TanSlope)
|
local hookx (RightSB - OXHook + TailAdjX * TanSlope)
|
||||||
local hookmiddle : [mix (SB + O) hookx 0.55] + CorrectionOMidS
|
local hookmiddle : [mix (SB + O) hookx 0.55] + CorrectionOMidS
|
||||||
local hook : Math.min AHook : if para.isItalic top (stroke / 2 + (top - stroke * 3) / 4)
|
local hook : Math.min AHook : if para.isItalic top (stroke / 2 + (top - stroke * 3) / 4)
|
||||||
|
@ -4577,7 +4617,7 @@ glyph-block Letter-Latin-Lower-E : begin
|
||||||
save 'cyrSchwa' 0x4D8
|
save 'cyrSchwa' 0x4D8
|
||||||
|
|
||||||
define [RevSmallEShape top stroke barpos] : glyph-construction
|
define [RevSmallEShape top stroke barpos] : glyph-construction
|
||||||
local barbottom (top * [fallback barpos EBarPos] - HalfStroke)
|
local barbottom (top * [fallback barpos designParameters.eBarPos] - HalfStroke)
|
||||||
local hookx SB
|
local hookx SB
|
||||||
local hookmiddle : [mix (RightSB - O) hookx 0.55] + CorrectionOMidS
|
local hookmiddle : [mix (RightSB - O) hookx 0.55] + CorrectionOMidS
|
||||||
|
|
||||||
|
@ -5315,46 +5355,62 @@ glyph-block Letter-Latin-Eszet : begin
|
||||||
glyph-block Letter-Latin-Upper-AE-OE : begin
|
glyph-block Letter-Latin-Upper-AE-OE : begin
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Overmarks
|
glyph-block-import Overmarks
|
||||||
|
glyph-block-import Letter-Latin-Upper-F : EFVJutLength
|
||||||
|
|
||||||
sketch # AE
|
sketch # AE
|
||||||
define eBarPos : if SLAB 0.52 0.54
|
define df : DivFrame para.diversityM 3
|
||||||
local df : DivFrame para.diversityM 3
|
define eBarPos : designParameters.upperEBarPos SLAB
|
||||||
|
define sw : adviceBlackness2 designParameters.lllcrowdedness 3 CAP df.div
|
||||||
|
define eleft : df.middle - sw * 0.25 * HVContrast
|
||||||
|
define fine : adviceBlackness2 4 3 CAP df.div
|
||||||
|
define swVJut : Math.min sw ((df.rightSB - eleft - sw * HVContrast) * (4 / 5))
|
||||||
|
|
||||||
set-width df.width
|
set-width df.width
|
||||||
include df.markSet.capital
|
include df.markSet.capital
|
||||||
|
|
||||||
local eleft : df.middle - df.mvs * 0.25
|
|
||||||
local turn : XH * 0.1
|
local turn : XH * 0.1
|
||||||
|
|
||||||
# A half
|
# A half
|
||||||
include : dispiro
|
include : dispiro
|
||||||
widths.rhs df.mvs
|
widths.rhs sw
|
||||||
flat df.leftSB 0 [heading Upward]
|
flat df.leftSB 0 [heading Upward]
|
||||||
curl df.leftSB (CAP * 0.1) [heading Upward]
|
curl df.leftSB (CAP * 0.1) [heading Upward]
|
||||||
quadcontrols 0 0.3 6 unimportant
|
quadcontrols 0 0.3 6 unimportant
|
||||||
g4 (eleft - HalfStroke) CAP [widths.rhs (df.mvs * 0.8)]
|
g4 (eleft - HalfStroke) CAP [widths.rhs fine]
|
||||||
|
|
||||||
include : spiro-outline
|
include : spiro-outline
|
||||||
corner (eleft - HalfStroke) CAP
|
corner (eleft - HalfStroke) CAP
|
||||||
corner eleft CAP
|
corner eleft CAP
|
||||||
corner eleft (CAP - df.mvs)
|
corner eleft (CAP - sw)
|
||||||
include : HBarTop ([mix df.leftSB (eleft - HalfStroke) (1/6)] + df.mvs * 0.5 * HVContrast) (eleft + df.mvs / 2) (XH / 2) df.mvs
|
include : intersection
|
||||||
|
WithTransform [Translate (-O) 0] : spiro-outline
|
||||||
|
corner df.leftSB 0 [heading Upward]
|
||||||
|
curl df.leftSB (CAP * 0.1) [heading Upward]
|
||||||
|
quadcontrols 0 0.3 6 unimportant
|
||||||
|
corner (eleft - HalfStroke) CAP [widths.rhs fine]
|
||||||
|
corner eleft CAP
|
||||||
|
corner eleft 0
|
||||||
|
HBarTop 0 eleft (XH / 2) sw
|
||||||
|
|
||||||
# E half
|
# E half
|
||||||
include : VBarLeft eleft 0 CAP df.mvs
|
include : VBarLeft eleft 0 CAP sw
|
||||||
include : HBarTop (eleft - O) df.rightSB CAP
|
include : HBarTop (eleft - O) df.rightSB CAP
|
||||||
include : HBar (eleft - O) (df.rightSB - df.mvs / 4) (CAP * eBarPos)
|
include : HBar (eleft - O) (df.rightSB - sw / 4) (CAP * eBarPos)
|
||||||
include : HBarBottom (eleft - O) df.rightSB 0
|
include : HBarBottom (eleft - O) df.rightSB 0
|
||||||
if SLAB : begin
|
if SLAB : begin
|
||||||
include : CenterBottomSerif (df.leftSB + df.mvs / 2 * HVContrast) 0 Jut df.mvs
|
local { jutTop jutBot } : EFVJutLength CAP eBarPos sw
|
||||||
include : DownwardRightSerif df.rightSB CAP VJut df.mvs
|
include : CenterBottomSerif (df.leftSB + sw / 2 * HVContrast) 0 Jut sw
|
||||||
include : UpwardRightSerif df.rightSB 0 VJut df.mvs
|
include : DownwardRightSerif df.rightSB CAP jutTop swVJut
|
||||||
|
include : UpwardRightSerif df.rightSB 0 jutBot swVJut
|
||||||
save 'AE' 0xC6
|
save 'AE' 0xC6
|
||||||
save 'cyrAE' 0x4D4
|
save 'cyrAE' 0x4D4
|
||||||
|
|
||||||
define [OEShape top df] : glyph-construction
|
define [OEShape top df] : glyph-construction
|
||||||
define eleft df.middle
|
define eBarPos : designParameters.upperEBarPos SLAB
|
||||||
define eBarPos : if SLAB 0.52 0.54
|
|
||||||
define sw : adviceBlackness2 designParameters.lllcrowdedness 3 top df.div
|
define sw : adviceBlackness2 designParameters.lllcrowdedness 3 top df.div
|
||||||
|
define eleft : df.middle - sw * [if SLAB (1 / 3) (1 / 4)] * HVContrast
|
||||||
|
define swVJut : Math.min sw ((df.rightSB - eleft - sw * HVContrast) * (4 / 5))
|
||||||
|
|
||||||
# O half
|
# O half
|
||||||
include : dispiro
|
include : dispiro
|
||||||
widths.lhs sw 0
|
widths.lhs sw 0
|
||||||
|
@ -5366,19 +5422,15 @@ glyph-block Letter-Latin-Upper-AE-OE : begin
|
||||||
straight.right.end eleft 0 [heading Rightward]
|
straight.right.end eleft 0 [heading Rightward]
|
||||||
|
|
||||||
# E half
|
# E half
|
||||||
include : VBarLeft eleft 0 top (sw / 2)
|
include : VBarLeft eleft 0 top sw
|
||||||
include : VBarRight eleft sw (top - sw / 2) (sw / 2)
|
|
||||||
include : HBarTop (eleft - O) df.rightSB top sw
|
include : HBarTop (eleft - O) df.rightSB top sw
|
||||||
include : HBar (eleft - O) (df.rightSB - sw / 4) (top * 0.54) sw
|
include : HBar (eleft - O) (df.rightSB - sw / 4) (top * 0.54) sw
|
||||||
include : HBarBottom (eleft - O) df.rightSB 0 sw
|
include : HBarBottom (eleft - O) df.rightSB 0 sw
|
||||||
|
|
||||||
if SLAB : begin
|
if SLAB : begin
|
||||||
local jutTop : Math.min VJut
|
local { jutTop jutBot } : EFVJutLength top eBarPos sw
|
||||||
top - [mix (top - sw) (top * eBarPos + sw / 2) 0.5]
|
include : DownwardRightSerif df.rightSB top jutTop swVJut
|
||||||
local jutBot : Math.min VJut
|
include : UpwardRightSerif df.rightSB 0 jutBot swVJut
|
||||||
mix sw (top * eBarPos + sw / 2) 0.5
|
|
||||||
include : DownwardRightSerif df.rightSB top jutTop sw
|
|
||||||
include : UpwardRightSerif df.rightSB 0 jutBot sw
|
|
||||||
|
|
||||||
sketch # OE
|
sketch # OE
|
||||||
local df : DivFrame para.diversityM 3
|
local df : DivFrame para.diversityM 3
|
||||||
|
@ -5403,7 +5455,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin
|
||||||
local stroke : adviceBlackness2 2.875 3 XH df.div
|
local stroke : adviceBlackness2 2.875 3 XH df.div
|
||||||
local eLeft : df.middle - stroke / 2 * HVContrast + 0.1
|
local eLeft : df.middle - stroke / 2 * HVContrast + 0.1
|
||||||
local eMiddle : [mix eLeft (df.rightSB - OX * 2) 0.5] - stroke * TanSlope
|
local eMiddle : [mix eLeft (df.rightSB - OX * 2) 0.5] - stroke * TanSlope
|
||||||
local barbottom (XH * EBarPos - stroke / 2)
|
local barbottom (XH * designParameters.eBarPos - stroke / 2)
|
||||||
|
|
||||||
local sma : SmoothAOf [Math.max (stroke * 1.125) (SmallSmooth * 0.6 * df.div)] (Width * df.div)
|
local sma : SmoothAOf [Math.max (stroke * 1.125) (SmallSmooth * 0.6 * df.div)] (Width * df.div)
|
||||||
local smb : SmoothBOf [Math.max (stroke * 1.125) (SmallSmooth * 0.6 * df.div)] (Width * df.div)
|
local smb : SmoothBOf [Math.max (stroke * 1.125) (SmallSmooth * 0.6 * df.div)] (Width * df.div)
|
||||||
|
|
|
@ -351,22 +351,22 @@ glyph-block Numbers : begin
|
||||||
|
|
||||||
sketch # five.lnum
|
sketch # five.lnum
|
||||||
include MarkSet.capital
|
include MarkSet.capital
|
||||||
include : FiveShape CAP FiveBarPos
|
include : FiveShape CAP designParameters.fiveBarPos
|
||||||
save 'five.lnum' '5'
|
save 'five.lnum' '5'
|
||||||
sketch # five.onum
|
sketch # five.onum
|
||||||
include MarkSet.p
|
include MarkSet.p
|
||||||
include : FiveShape (XH - Descender) FiveBarPos
|
include : FiveShape (XH - Descender) designParameters.fiveBarPos
|
||||||
include : ShiftDown
|
include : ShiftDown
|
||||||
save 'five.onum'
|
save 'five.onum'
|
||||||
|
|
||||||
sketch # zhuangToneFive
|
sketch # zhuangToneFive
|
||||||
include MarkSet.capital
|
include MarkSet.capital
|
||||||
include : FiveShape CAP FiveBarPos
|
include : FiveShape CAP designParameters.fiveBarPos
|
||||||
save 'zhuangToneFive' 0x1BC
|
save 'zhuangToneFive' 0x1BC
|
||||||
|
|
||||||
sketch # zhuangtonefive
|
sketch # zhuangtonefive
|
||||||
include MarkSet.e
|
include MarkSet.e
|
||||||
include : FiveShape XH FiveBarPos
|
include : FiveShape XH designParameters.fiveBarPos
|
||||||
save 'zhuangtonefive' 0x1BD
|
save 'zhuangtonefive' 0x1BD
|
||||||
|
|
||||||
define [OpenContourSixShape charTop] : glyph-construction
|
define [OpenContourSixShape charTop] : glyph-construction
|
||||||
|
|
|
@ -28,6 +28,7 @@ glyph-block Symbol-Math-Letter-Like : begin
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Overmarks
|
glyph-block-import Overmarks
|
||||||
glyph-block-import Letter-Latin-Upper-A : LambdaShape AMaskShape DeltaShape
|
glyph-block-import Letter-Latin-Upper-A : LambdaShape AMaskShape DeltaShape
|
||||||
|
glyph-block-import Letter-Latin-Upper-E : RevEShape
|
||||||
|
|
||||||
sketch # micro
|
sketch # micro
|
||||||
include [refer-glyph 'mu'] AS_BASE
|
include [refer-glyph 'mu'] AS_BASE
|
||||||
|
@ -46,12 +47,7 @@ glyph-block Symbol-Math-Letter-Like : begin
|
||||||
save 'forall' 0x2200
|
save 'forall' 0x2200
|
||||||
|
|
||||||
sketch # exists
|
sketch # exists
|
||||||
include : HBarTop (SB * 1.5 - O) RightSB CAP OperatorStroke
|
include : RevEShape (top -- CAP) (pyBar -- 0.51) (noSerif -- true)
|
||||||
include : HBarBottom (SB * 1.5 - O) RightSB 0 OperatorStroke
|
|
||||||
include : HBar (SB * 1.5 - O) (RightSB - HalfStroke) (CAP * 0.5) OperatorStroke
|
|
||||||
include : VBarLeft (SB * 1.5) 0 CAP OperatorStroke
|
|
||||||
include : FlipAround Middle (CAP / 2)
|
|
||||||
|
|
||||||
save 'exists' 0x2203
|
save 'exists' 0x2203
|
||||||
|
|
||||||
sketch # emptyset
|
sketch # emptyset
|
||||||
|
@ -579,7 +575,7 @@ glyph-block Symbol-Math-VAndCup : begin
|
||||||
turned 'capDot' 0x2A40 'cupDot' Middle symbolMid
|
turned 'capDot' 0x2A40 'cupDot' Middle symbolMid
|
||||||
|
|
||||||
sketch # squareCap
|
sketch # squareCap
|
||||||
include : PiShape operTop operBot (shrinkrate -- 0) (_fine -- OperatorStroke) (div -- 1) (noserif -- true)
|
include : PiShape operTop operBot (shrinkrate -- 0) (_fine -- OperatorStroke) (div -- 1) (noSerif -- true)
|
||||||
save 'squareCap' 0x2293
|
save 'squareCap' 0x2293
|
||||||
turned 'squareCup' 0x2294 'squareCap' Middle symbolMid
|
turned 'squareCup' 0x2294 'squareCap' Middle symbolMid
|
||||||
|
|
||||||
|
|
|
@ -74,11 +74,8 @@ export : define [calculateMetrics para] : begin
|
||||||
define Stroke para.stroke
|
define Stroke para.stroke
|
||||||
define DotSize : fallback para.dotsize Stroke
|
define DotSize : fallback para.dotsize Stroke
|
||||||
define PeriodSize : fallback para.periodsize DotSize
|
define PeriodSize : fallback para.periodsize DotSize
|
||||||
define HBarPos : fallback para.barpos 0.5
|
define HBarPos : designParameters.hBarPos - 0.09 * Stroke / CAP
|
||||||
define GBarPos : fallback para.gbarpos 0.5
|
define OverlayPos designParameters.overlayPos
|
||||||
define EBarPos : fallback para.ebarpos HBarPos
|
|
||||||
define OverlayPos para.overlaypos
|
|
||||||
define FiveBarPos para.fivebarpos
|
|
||||||
define Jut para.jut
|
define Jut para.jut
|
||||||
define LongJut para.longjut
|
define LongJut para.longjut
|
||||||
define MidJutSide : Math.max Jut : mix (0.5 * Stroke * HVContrast) LongJut 0.5
|
define MidJutSide : Math.max Jut : mix (0.5 * Stroke * HVContrast) LongJut 0.5
|
||||||
|
@ -183,8 +180,8 @@ export : define [calculateMetrics para] : begin
|
||||||
tackTop tackBot plusTop plusBot pictTop pictBot bgopTop bgopBot Italify Upright Scale
|
tackTop tackBot plusTop plusBot pictTop pictBot bgopTop bgopBot Italify Upright Scale
|
||||||
Translate Rotate globalTransform TanSlope HVContrast Upward Downward Rightward Leftward
|
Translate Rotate globalTransform TanSlope HVContrast Upward Downward Rightward Leftward
|
||||||
UpwardT DownwardT LeftwardT RightwardT O OX OXHook Hook AHook SHook RHook JHook FHook HookX
|
UpwardT DownwardT LeftwardT RightwardT O OX OXHook Hook AHook SHook RHook JHook FHook HookX
|
||||||
Smooth SmallSmooth Stroke DotSize PeriodSize HBarPos GBarPos EBarPos OverlayPos
|
Smooth SmallSmooth Stroke DotSize PeriodSize HBarPos OverlayPos
|
||||||
FiveBarPos LongJut Jut VJut Accent AccentX CThin CThinB SLAB TailAdjX TailAdjY LBalance
|
LongJut Jut VJut Accent AccentX CThin CThinB SLAB TailAdjX TailAdjY LBalance
|
||||||
IBalance LBalance2 IBalance2 JBalance JBalance2 TBalance TBalance2 RBalance RBalance2
|
IBalance LBalance2 IBalance2 JBalance JBalance2 TBalance TBalance2 RBalance RBalance2
|
||||||
FBalance OneBalance WideWidth0 WideWidth1 WideWidth2 Ess EssQuestion
|
FBalance OneBalance WideWidth0 WideWidth1 WideWidth2 Ess EssQuestion
|
||||||
HalfStroke RightSB Middle CapMiddle DotRadius PeriodRadius SideJut SmoothA
|
HalfStroke RightSB Middle CapMiddle DotRadius PeriodRadius SideJut SmoothA
|
||||||
|
@ -294,8 +291,16 @@ export : define designParameters : object
|
||||||
braceCurlyM1 0.6
|
braceCurlyM1 0.6
|
||||||
braceCurlyM2 0.45
|
braceCurlyM2 0.45
|
||||||
braceOvershoot 0.02
|
braceOvershoot 0.02
|
||||||
|
# Crosdedness
|
||||||
lllcrowdedness (3 + 1 / 3)
|
lllcrowdedness (3 + 1 / 3)
|
||||||
|
# Bar position
|
||||||
|
hBarPos 0.525
|
||||||
|
eBarPos 0.5
|
||||||
|
fiveBarPos 0.64
|
||||||
|
overlayPos 0.52
|
||||||
|
fBarPos 0.91
|
||||||
|
gBarPos 0.42
|
||||||
|
upperEBarPos : lambda [slab] : if slab 0.52 0.53
|
||||||
|
|
||||||
export : define [GenDivFrame metrics] : lambda [_div _hPack _sbMul] : begin
|
export : define [GenDivFrame metrics] : lambda [_div _hPack _sbMul] : begin
|
||||||
local div : fallback _div 1
|
local div : fallback _div 1
|
||||||
|
|
|
@ -211,7 +211,7 @@ define-macro glyph-block : syntax-rules
|
||||||
Italify Upright Scale Translate Rotate globalTransform TanSlope
|
Italify Upright Scale Translate Rotate globalTransform TanSlope
|
||||||
HVContrast Upward Downward Rightward Leftward UpwardT DownwardT LeftwardT RightwardT O OX
|
HVContrast Upward Downward Rightward Leftward UpwardT DownwardT LeftwardT RightwardT O OX
|
||||||
OXHook Hook AHook SHook RHook JHook FHook HookX Smooth SmallSmooth Stroke DotSize
|
OXHook Hook AHook SHook RHook JHook FHook HookX Smooth SmallSmooth Stroke DotSize
|
||||||
PeriodSize HBarPos GBarPos EBarPos OverlayPos FiveBarPos LongJut Jut VJut
|
PeriodSize HBarPos OverlayPos LongJut Jut VJut
|
||||||
Accent AccentX CThin CThinB SLAB TailAdjX TailAdjY LBalance IBalance LBalance2
|
Accent AccentX CThin CThinB SLAB TailAdjX TailAdjY LBalance IBalance LBalance2
|
||||||
IBalance2 JBalance JBalance2 TBalance TBalance2 RBalance RBalance2 FBalance OneBalance
|
IBalance2 JBalance JBalance2 TBalance TBalance2 RBalance RBalance2 FBalance OneBalance
|
||||||
WideWidth0 WideWidth1 WideWidth2 Ess EssQuestion HalfStroke RightSB
|
WideWidth0 WideWidth1 WideWidth2 Ess EssQuestion HalfStroke RightSB
|
||||||
|
|
|
@ -148,12 +148,6 @@ smallsmooth = 200 # Vertical arc size in lowercase letters.
|
||||||
superness = 2.275 # Superness of arcs.
|
superness = 2.275 # Superness of arcs.
|
||||||
tightHookSuperness = 2.3 # superness of tight hooks
|
tightHookSuperness = 2.3 # superness of tight hooks
|
||||||
|
|
||||||
barpos = 0.525 # Position of most crossbars
|
|
||||||
overlaypos = 0.52 # Position of the overlay mark.
|
|
||||||
ebarpos = 0.50 # Position of the middle bar in `e`.
|
|
||||||
gbarpos = 0.42
|
|
||||||
fivebarpos = 0.64
|
|
||||||
fbarpos = 0.91 # Position of the middle bar in `f`
|
|
||||||
fbarStrokeAdj = 0.25 # Portion of the fill above the f-bar position
|
fbarStrokeAdj = 0.25 # Portion of the fill above the f-bar position
|
||||||
|
|
||||||
rbalance = 60
|
rbalance = 60
|
||||||
|
@ -181,7 +175,6 @@ vtipfineSlab = 0.9
|
||||||
jut = 70
|
jut = 70
|
||||||
vjut = 145
|
vjut = 145
|
||||||
smooth = 195
|
smooth = 195
|
||||||
barpos = 0.525
|
|
||||||
rhook = 110
|
rhook = 110
|
||||||
rbalance = 60
|
rbalance = 60
|
||||||
rbalance2 = 15
|
rbalance2 = 15
|
||||||
|
@ -198,7 +191,6 @@ periodsize = 55
|
||||||
jut = 75
|
jut = 75
|
||||||
vjut = 145
|
vjut = 145
|
||||||
smooth = 195
|
smooth = 195
|
||||||
barpos = 0.525
|
|
||||||
rhook = 110
|
rhook = 110
|
||||||
rbalance = 60
|
rbalance = 60
|
||||||
rbalance2 = 15
|
rbalance2 = 15
|
||||||
|
@ -215,7 +207,6 @@ periodsize = 77
|
||||||
jut = 80
|
jut = 80
|
||||||
vjut = 145
|
vjut = 145
|
||||||
smooth = 195
|
smooth = 195
|
||||||
barpos = 0.525
|
|
||||||
rhook = 110
|
rhook = 110
|
||||||
rbalance = 60
|
rbalance = 60
|
||||||
rbalance2 = 15
|
rbalance2 = 15
|
||||||
|
@ -233,7 +224,6 @@ essx = 1.12
|
||||||
jut = 85
|
jut = 85
|
||||||
vjut = 157
|
vjut = 157
|
||||||
smooth = 200
|
smooth = 200
|
||||||
barpos = 0.525
|
|
||||||
rhook = 110
|
rhook = 110
|
||||||
rbalance = 60
|
rbalance = 60
|
||||||
rbalance2 = 15
|
rbalance2 = 15
|
||||||
|
@ -247,7 +237,6 @@ essx = 1.07
|
||||||
jut = 85
|
jut = 85
|
||||||
vjut = 170
|
vjut = 170
|
||||||
smooth = 203
|
smooth = 203
|
||||||
barpos = 0.525
|
|
||||||
rhook = 110
|
rhook = 110
|
||||||
rbalance = 55
|
rbalance = 55
|
||||||
rbalance2 = 20
|
rbalance2 = 20
|
||||||
|
@ -261,7 +250,6 @@ essx = 1.06
|
||||||
jut = 89
|
jut = 89
|
||||||
vjut = 179
|
vjut = 179
|
||||||
smooth = 206
|
smooth = 206
|
||||||
barpos = 0.51
|
|
||||||
rhook = 95
|
rhook = 95
|
||||||
rbalance = 52
|
rbalance = 52
|
||||||
rbalance2 = 23
|
rbalance2 = 23
|
||||||
|
@ -275,7 +263,6 @@ essx = 1.05
|
||||||
jut = 96
|
jut = 96
|
||||||
vjut = 189
|
vjut = 189
|
||||||
smooth = 210
|
smooth = 210
|
||||||
barpos = 0.51
|
|
||||||
rhook = 97
|
rhook = 97
|
||||||
rbalance = 50
|
rbalance = 50
|
||||||
rbalance2 = 25
|
rbalance2 = 25
|
||||||
|
@ -289,7 +276,6 @@ essx = 1.03
|
||||||
jut = 100
|
jut = 100
|
||||||
vjut = 199
|
vjut = 199
|
||||||
smooth = 215
|
smooth = 215
|
||||||
barpos = 0.51
|
|
||||||
rhook = 105
|
rhook = 105
|
||||||
rbalance = 50
|
rbalance = 50
|
||||||
rbalance2 = 25
|
rbalance2 = 25
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue