optimize shape for /sym

This commit is contained in:
be5invis 2017-01-16 18:53:09 +08:00
parent 3dd93782c1
commit 238d9c4ace
6 changed files with 31 additions and 27 deletions

View File

@ -537,6 +537,7 @@ export : define [apply] : begin
list 0x1D58 'u' list 0x1D58 'u'
list 0x1D5A 'turnm' list 0x1D5A 'turnm'
list 0x1D5B 'v' list 0x1D5B 'v'
list 0x1D5C 'latinayin'
list 0x1D5D 'beta' list 0x1D5D 'beta'
list 0x1D5E 'gamma' list 0x1D5E 'gamma'
list 0x1D5F 'delta' list 0x1D5F 'delta'

View File

@ -544,18 +544,6 @@ export : define [apply] : begin
.af [lambda [before after] [HookShape before after false y tight sw kkaf dontadjust]] .af [lambda [before after] [HookShape before after false y tight sw kkaf dontadjust]]
} }
define [WaveShape] : params [l r cy extendy tension sw] : glyph-construction
local cx : mix l r 0.5
local wavex : (r - l) * tension
local endwavey : extendy * 0.97
include : dispiro
widths.center sw
g4 l (cy - endwavey)
bezcontrols.absolute (l + wavex) (cy + extendy) (cx - wavex * 0.8) (cy + extendy) 8 important
g4 cx cy
bezcontrols.absolute (cx + wavex * 0.8) (cy - extendy) (r - wavex) (cy - extendy) 8 important
g4 r (cy + endwavey)
define [CyrDescender x shift connex] : glyph-construction define [CyrDescender x shift connex] : glyph-construction
local descenderOverflow : if SLAB SIDEJUT ((RIGHTSB - SB) * [fallback shift 0.1]) local descenderOverflow : if SLAB SIDEJUT ((RIGHTSB - SB) * [fallback shift 0.1])
include : VBarRight (x + descenderOverflow + 0.25 * STROKE) (HALFSTROKE - LONGJUT) STROKE include : VBarRight (x + descenderOverflow + 0.25 * STROKE) (HALFSTROKE - LONGJUT) STROKE
@ -642,4 +630,4 @@ export : define [apply] : begin
apply-transform : Translate sx sy apply-transform : Translate sx sy
apply-transform : Italify apply-transform : Italify
return [object select-variant italic-variant alias composite into-unicode turned dual vdual fwl fwr dwl dwr dwc Ring RingAt DotAt CircleRing CircleRingAt CircleDotAt OShape OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs halfXStrand xStrand nShoulderKnots nShoulder mShoulderSpiro HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR HookShape hookstart hookend WaveShape CyrDescender refair Fork Miniature Thinner Widen FlipAround ScaleAround Realign] return [object select-variant italic-variant alias composite into-unicode turned dual vdual fwl fwr dwl dwr dwc Ring RingAt DotAt CircleRing CircleRingAt CircleDotAt OShape OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs halfXStrand xStrand nShoulderKnots nShoulder mShoulderSpiro HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR HookShape hookstart hookend CyrDescender refair Fork Miniature Thinner Widen FlipAround ScaleAround Realign]

View File

@ -1633,8 +1633,14 @@ export : define [apply] : begin
save 'cyres' 0x441 save 'cyres' 0x441
save 'lunatesigma' 0x3F2 save 'lunatesigma' 0x3F2
turned nothing 0x186 'C' MIDDLE (CAP / 2) turned 'turnC' 0x186 'C' MIDDLE (CAP / 2)
turned nothing 0x254 'c' MIDDLE (XH / 2) turned 'turnc' 0x254 'c' MIDDLE (XH / 2)
composite glyphs.turnc [into-unicode 0x037B]
composite glyphs.turnC [into-unicode 0x03FD]
composite glyphs.c [DotAt (MIDDLE + HALFSTROKE / 4) (XH/2) DOTRADIUS] [into-unicode 0x037C]
composite glyphs.turnc [DotAt (MIDDLE - HALFSTROKE / 4) (XH/2) DOTRADIUS] [into-unicode 0x037D]
composite glyphs.C [DotAt (MIDDLE + HALFSTROKE / 4) (CAP/2) DOTRADIUS] [into-unicode 0x03FE]
composite glyphs.turnC [DotAt (MIDDLE - HALFSTROKE / 4) (CAP/2) DOTRADIUS] [into-unicode 0x03FF]
sketch # strenchedC sketch # strenchedC
set-width WIDTH set-width WIDTH

View File

@ -190,8 +190,8 @@ export : define [apply] : begin
define [TildeShape] : params [ttop tbot leftEnd rightEnd hs] : glyph-construction define [TildeShape] : params [ttop tbot leftEnd rightEnd hs] : glyph-construction
local fine : hs * 8 / 9 local fine : hs * 8 / 9
local hsvh : hs * 2 / (ttop - tbot) local hsvh : hs * 2 / [Math.abs (ttop - tbot)]
local hvc : (rightEnd - leftEnd) / (ttop - tbot) local hvc : (rightEnd - leftEnd) / [Math.abs (ttop - tbot)]
local defaultHvc : markExtend * 3 / (aboveMarkTop - aboveMarkBot - markFine / 2) local defaultHvc : markExtend * 3 / (aboveMarkTop - aboveMarkBot - markFine / 2)
local hsvhThin 0.116 local hsvhThin 0.116
@ -1307,4 +1307,4 @@ export : define [apply] : begin
return [object markExtend markHalfStroke markStress markFine return [object markExtend markHalfStroke markStress markFine
markMiddle markDotsRadius aboveMarkTop aboveMarkBot markMiddle markDotsRadius aboveMarkTop aboveMarkBot
aboveMarkMid belowMarkBot belowMarkTop commaOvershoot aboveMarkMid belowMarkBot belowMarkTop commaOvershoot
commaOvershoot2 commaAboveRadius] commaOvershoot2 commaAboveRadius TildeShape]

View File

@ -320,14 +320,21 @@ export : define [apply] : begin
composite glyphs.element glyphs.underlineBelow [into-unicode 0x22F8] composite glyphs.element glyphs.underlineBelow [into-unicode 0x22F8]
sketch # sym sketch # sym
include : WaveShape include : TildeShape
l -- SB ttop -- parenMid + ((operTop - parenMid) * 0.17)
r -- RIGHTSB tbot -- parenMid - ((operTop - parenMid) * 0.17)
cy -- parenMid leftEnd -- SB
extendy -- ((operTop - parenMid) * 0.17) rightEnd -- RIGHTSB
tension -- 0.15 hs -- OPERATORSTROKE / 2
sw -- OPERATORSTROKE
save 'sym' 0x223C save 'sym' 0x223C
sketch # flipsym
include : TildeShape
tbot -- parenMid + ((operTop - parenMid) * 0.17)
ttop -- parenMid - ((operTop - parenMid) * 0.17)
leftEnd -- SB
rightEnd -- RIGHTSB
hs -- OPERATORSTROKE / 2
save 'flipsym' 0x223D
sketch # ident sketch # ident
include : HBar SB RIGHTSB (parenMid + equalHalfSpace * 1.5) OPERATORSTROKE include : HBar SB RIGHTSB (parenMid + equalHalfSpace * 1.5) OPERATORSTROKE
@ -533,9 +540,11 @@ export : define [apply] : begin
### Others ### Others
alias 'mathbullet' 0x2219 'bullet' alias 'mathbullet' 0x2219 'bullet'
alias 'mathbar' 0x2223 'bar' alias 'mathbar' 0x2223 'bar'
notGlyph 'notmathbar' 0x2224 'mathbar' [mix parenMid operTop 0.5] [mix parenMid operBot 0.5] 0.1
alias 'mathsmallcircle' 0x2218 'hwsmallwhitecircle' alias 'mathsmallcircle' 0x2218 'hwsmallwhitecircle'
alias 'mathstar' 0x22C6 'hwblackstar' alias 'mathstar' 0x22C6 'hwblackstar'
sketch # sqrt sketch # sqrt
include : dispiro include : dispiro
widths.center OPERATORSTROKE widths.center OPERATORSTROKE

View File

@ -133,9 +133,9 @@ define-macro save : syntax-rules
define-macro glyph-module-entry : syntax-rules define-macro glyph-module-entry : syntax-rules
`[glyph-module-entry @::_opts] : begin `[glyph-module-entry @::_opts] : begin
define optionalImports : object define optionalImports : object
commonShapes `[define [object select-variant italic-variant alias composite into-unicode turned dual vdual fwl fwr dwl dwr dwc Ring RingAt DotAt CircleRing CircleRingAt CircleDotAt OShape OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs halfXStrand xStrand nShoulderKnots nShoulder mShoulderSpiro HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR HookShape hookstart hookend WaveShape CyrDescender refair Fork Miniature Thinner Widen FlipAround ScaleAround Realign] $capture.commonShapes] commonShapes `[define [object select-variant italic-variant alias composite into-unicode turned dual vdual fwl fwr dwl dwr dwc Ring RingAt DotAt CircleRing CircleRingAt CircleDotAt OShape OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs halfXStrand xStrand nShoulderKnots nShoulder mShoulderSpiro HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR HookShape hookstart hookend CyrDescender refair Fork Miniature Thinner Widen FlipAround ScaleAround Realign] $capture.commonShapes]
overmarks `[define [object markExtend markHalfStroke markStress markFine markMiddle markDotsRadius aboveMarkTop aboveMarkBot aboveMarkMid belowMarkBot belowMarkTop commaOvershoot commaOvershoot2 commaAboveRadius] $capture.overmarks] overmarks `[define [object markExtend markHalfStroke markStress markFine markMiddle markDotsRadius aboveMarkTop aboveMarkBot aboveMarkMid belowMarkBot belowMarkTop commaOvershoot commaOvershoot2 commaAboveRadius TildeShape] $capture.overmarks]
letterBasic `[define [object ISerifShape IotaShape LShape Belt VShape VHooktopShape WShape WHooktopShape YShape yBaseKnots SmallYShape KShape BShape ItalicCyrveShape PShape RShape CyrYaShape CShape GShape NShape UShape LatinUpsilon2Shape MShape SmallMShape HShape FShape fovershoot LongSShape EShape SmallEShape RevSmallEShape TShape SmallTShape] $capture.letterBasic] letterBasic `[define [object ISerifShape IotaShape LShape Belt VShape VHooktopShape WShape WHooktopShape YShape yBaseKnots SmallYShape KShape BShape ItalicCyrveShape PShape RShape CyrYaShape CShape GShape NShape UShape LatinUpsilon2Shape MShape SmallMShape HShape FShape fovershoot LongSShape EShape SmallEShape RevSmallEShape TShape SmallTShape] $capture.letterBasic]