Fix shape of Reversed-E (#618).

This commit is contained in:
be5invis 2020-06-21 02:34:35 -07:00
parent 6146a1f114
commit 43431f8ba8
8 changed files with 135 additions and 95 deletions

View file

@ -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).

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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