Fix incorrect shape of Proportional To (U+221D
), Infinity (U+221E
) and Inverted Lazy S (U+223E
) under Italic/Oblique.
This commit is contained in:
parent
9313fbf7b0
commit
a2dbab91e0
9 changed files with 36 additions and 28 deletions
1
changes/7.2.7.md
Normal file
1
changes/7.2.7.md
Normal file
|
@ -0,0 +1 @@
|
|||
* Fix incorrect shape of Proportional To (`U+221D`), Infinity (`U+221E`) and Inverted Lazy S (`U+223E`) under Italic/Oblique.
|
|
@ -613,9 +613,9 @@ glyph-block Autobuild-Rotated : begin
|
|||
for-width-kinds WideWidth1 : do
|
||||
local s : (RightSB - SB - O * 4 + (MosaicWidth - Width) * 0.5) / CAP
|
||||
local df : Miniature {'eight.lnum.crossing' 'rotetedPropto' 'revS'}
|
||||
crowd -- 4
|
||||
scale -- s
|
||||
slopeAngle -- 0
|
||||
crowd -- (4 / [Math.sqrt MosaicWidthScalar])
|
||||
scale -- s
|
||||
forceUpright -- true
|
||||
|
||||
define [InftyLikeShape gn u gns] : begin
|
||||
create-glyph [MangleName gn] [MangleUnicode u] : glyph-proc
|
||||
|
|
|
@ -188,13 +188,15 @@ glyph-block Recursive-Build : begin
|
|||
local gs : buildGlyphs p shouldBuildList shouldBuildUnicodes
|
||||
return gs.glyphStore
|
||||
|
||||
define [MiniatureParaT] : params [pp crowd scale [sbscale (Width / UPM)] [mono false] [mono2 false]] : begin
|
||||
define [MiniatureParaT] : params [pp crowd scale [sbscale (Width / UPM)] [mono false] [mono2 false] [forceUpright false]] : begin
|
||||
local forkedPara : Object.create pp
|
||||
forkedPara.stroke = [AdviceStroke crowd : Math.pow [clamp 0 1 (HalfUPM / Width)] 0.5] / scale
|
||||
forkedPara.ess = pp.ess * forkedPara.stroke / pp.stroke
|
||||
forkedPara.dotsize = pp.dotsize * forkedPara.stroke / pp.stroke
|
||||
forkedPara.periodsize = pp.periodsize * forkedPara.stroke / pp.stroke
|
||||
forkedPara.sb = SB * sbscale
|
||||
if forceUpright : begin
|
||||
forkedPara.slopeAngle = 0
|
||||
if mono : begin
|
||||
forkedPara.diversityM = 1
|
||||
if mono2 : begin
|
||||
|
|
|
@ -109,7 +109,7 @@ glyph-block Symbol-Math-Arith : begin
|
|||
|
||||
do "dotted"
|
||||
foreach { suffix { DrawAt kDotRadius overshoot } } [Object.entries DotVariants] : do
|
||||
local dr : DotRadius * kDotRadius
|
||||
local dr : DotRadius * kDotRadius * OperatorStroke / Stroke
|
||||
create-glyph "dotplus.\(suffix)" : glyph-proc
|
||||
local gap : AdviceStroke 12
|
||||
include : union
|
||||
|
|
|
@ -19,4 +19,4 @@ glyph-block Symbol-Math-Boxed : begin
|
|||
MakeMathBoxed 0x229E 'innerPlus'
|
||||
MakeMathBoxed 0x229F 'innerMinus'
|
||||
MakeMathBoxed 0x22A0 'innerMultiply'
|
||||
MakeMathBoxed 0x22A1 'mathcdot'
|
||||
MakeMathBoxed 0x22A1 'mathCDotInner'
|
||||
|
|
|
@ -20,7 +20,7 @@ glyph-block Symbol-Math-Circled : begin
|
|||
MakeMathCircled 0x2296 'innerMinus'
|
||||
MakeMathCircled 0x2297 'innerMultiply'
|
||||
MakeMathCircled 0x2298 'innerMultiplyStroke1'
|
||||
MakeMathCircled 0x2299 'mathcdot'
|
||||
MakeMathCircled 0x2299 'mathCDotInner'
|
||||
MakeMathCircled 0x229A 'whiteSmallCircle.NWID'
|
||||
MakeMathCircled 0x229B 'mathAsterisk'
|
||||
|
||||
|
@ -32,7 +32,7 @@ glyph-block Symbol-Math-Circled : begin
|
|||
refer-glyph : MangleName 'mathOOutlineBig'
|
||||
refer-glyph src
|
||||
|
||||
MakeMathBigCircled 0x2A00 'mathcdotBig'
|
||||
MakeMathBigCircled 0x2A00 'mathCDotBig'
|
||||
MakeMathBigCircled 0x2A01 'innerPlusBig'
|
||||
MakeMathBigCircled 0x2A02 'innerMultiplyBig'
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ glyph-block Symbol-Math-Dots-And-Colons : begin
|
|||
glyph-block-import Shared-Symbol-Shapes : DotVariants
|
||||
|
||||
foreach { suffix { DrawAt kDotRadius overshoot } } [Object.entries DotVariants] : do
|
||||
local radius1 : PeriodRadius * kDotRadius
|
||||
local radius1 : PeriodRadius * kDotRadius * OperatorStroke / Stroke
|
||||
local radius : Math.min radius1 (0.5 * [AdviceStroke 3.5 (Width / kDotRadius)] * PeriodSize * kDotRadius / Stroke)
|
||||
local left : mix 0 Width (1 / 4)
|
||||
local right : mix 0 Width (3 / 4)
|
||||
|
@ -39,11 +39,14 @@ glyph-block Symbol-Math-Dots-And-Colons : begin
|
|||
include : DrawAt left yLowerColon (radius - overshoot)
|
||||
include : DrawAt right yLowerColon (radius - overshoot)
|
||||
|
||||
create-glyph "mathcdot.\(suffix)" : glyph-proc
|
||||
create-glyph "mathCDot.\(suffix)" : glyph-proc
|
||||
include : DrawAt Middle SymbolMid (radius - overshoot)
|
||||
|
||||
create-glyph "mathCDotInner.\(suffix)" : glyph-proc
|
||||
include : DrawAt Middle SymbolMid (radius * OperatorStroke / Stroke - overshoot)
|
||||
|
||||
for-width-kinds WideWidth1
|
||||
create-glyph "\[MangleName 'mathcdotBig'].\(suffix)" : glyph-proc
|
||||
create-glyph "\[MangleName 'mathCDotBig'].\(suffix)" : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : DrawAt MosaicMiddle SymbolMid (radius1 - overshoot)
|
||||
|
||||
|
@ -51,7 +54,8 @@ glyph-block Symbol-Math-Dots-And-Colons : begin
|
|||
select-variant 'because' 0x2235 (follow -- 'punctuationDot')
|
||||
select-variant 'mathcolon' 0x2236 (follow -- 'punctuationDot')
|
||||
select-variant 'coloncolon' 0x2237 (follow -- 'punctuationDot')
|
||||
select-variant 'mathcdot' (follow -- 'punctuationDot')
|
||||
select-variant 'mathCDot' 0x22C5 (follow -- 'punctuationDot')
|
||||
select-variant 'mathCDotInner' (follow -- 'punctuationDot')
|
||||
|
||||
for-width-kinds WideWidth1
|
||||
select-variant [MangleName 'mathcdotBig'] (follow -- 'punctuationDot')
|
||||
select-variant [MangleName 'mathCDotBig'] (follow -- 'punctuationDot')
|
||||
|
|
|
@ -63,28 +63,30 @@ glyph-block Symbol-Math-Relation-Equal : begin
|
|||
refer-glyph 'equal'
|
||||
refer-glyph 'parallel.upright'
|
||||
|
||||
define EqDotDistance : EqualHalfSpace * 2 + DotRadius * OperatorStroke / Stroke
|
||||
|
||||
WithDotVariants 'oneDotApproxEq' 0x2250 : function [DrawAt kr ov] : glyph-proc
|
||||
local dr : DotRadius * kr
|
||||
local dr : DotRadius * kr * OperatorStroke / Stroke
|
||||
include : refer-glyph 'equal'
|
||||
include : DrawAt Middle (SymbolMid + EqualHalfSpace * 2.5) (dr - ov)
|
||||
include : DrawAt Middle (SymbolMid + EqDotDistance) (dr - ov)
|
||||
|
||||
WithDotVariants 'twoDotApproxEqCenter' 0x2251 : function [DrawAt kr ov] : glyph-proc
|
||||
local dr : DotRadius * kr
|
||||
local dr : DotRadius * kr * OperatorStroke / Stroke
|
||||
include : refer-glyph 'equal'
|
||||
include : DrawAt Middle (SymbolMid + EqualHalfSpace * 2.5) (dr - ov)
|
||||
include : DrawAt Middle (SymbolMid - EqualHalfSpace * 2.5) (dr - ov)
|
||||
include : DrawAt Middle (SymbolMid + EqDotDistance) (dr - ov)
|
||||
include : DrawAt Middle (SymbolMid - EqDotDistance) (dr - ov)
|
||||
|
||||
WithDotVariants 'twoDotApproxEq' 0x2252 : function [DrawAt kr ov] : glyph-proc
|
||||
local dr : DotRadius * kr
|
||||
local dr : DotRadius * kr * OperatorStroke / Stroke
|
||||
include : refer-glyph 'equal'
|
||||
include : DrawAt [mix SB RightSB (1/6)] (SymbolMid + EqualHalfSpace * 2.5) (dr - ov)
|
||||
include : DrawAt [mix SB RightSB (5/6)] (SymbolMid - EqualHalfSpace * 2.5) (dr - ov)
|
||||
include : DrawAt [mix SB RightSB (1/6)] (SymbolMid + EqDotDistance) (dr - ov)
|
||||
include : DrawAt [mix SB RightSB (5/6)] (SymbolMid - EqDotDistance) (dr - ov)
|
||||
|
||||
WithDotVariants 'twoDotApproxEqAlt' 0x2253 : function [DrawAt kr ov] : glyph-proc
|
||||
local dr : DotRadius * kr
|
||||
local dr : DotRadius * kr * OperatorStroke / Stroke
|
||||
include : refer-glyph 'equal'
|
||||
include : DrawAt [mix SB RightSB (5/6)] (SymbolMid + EqualHalfSpace * 2.5) (dr - ov)
|
||||
include : DrawAt [mix SB RightSB (1/6)] (SymbolMid - EqualHalfSpace * 2.5) (dr - ov)
|
||||
include : DrawAt [mix SB RightSB (5/6)] (SymbolMid + EqDotDistance) (dr - ov)
|
||||
include : DrawAt [mix SB RightSB (1/6)] (SymbolMid - EqDotDistance) (dr - ov)
|
||||
|
||||
create-glyph 'ringInEqual' 0x2256 : glyph-proc
|
||||
local ringSw : AdviceStroke 4
|
||||
|
@ -181,7 +183,7 @@ glyph-block Symbol-Math-Relation-Colons : begin
|
|||
|
||||
define ColonEqSbSquash 0.5
|
||||
define [ColonEqColonShape sign DrawAt kr ov] : new-glyph : glyph-proc
|
||||
local dr : DotRadius * kr
|
||||
local dr : DotRadius * kr * OperatorStroke / Stroke
|
||||
include : DrawAt Middle dr (dr - ov)
|
||||
include : DrawAt Middle (XH - dr) (dr - ov)
|
||||
|
||||
|
@ -229,8 +231,8 @@ glyph-block Symbol-Math-Relation-Sym : begin
|
|||
|
||||
WithDotVariants 'twoDotSym' 0x223B : function [DrawAt kr ov] : composite-proc
|
||||
refer-glyph 'sym'
|
||||
DrawAt Middle PlusTop (DotRadius * kr - ov)
|
||||
DrawAt Middle PlusBot (DotRadius * kr - ov)
|
||||
DrawAt Middle PlusTop (DotRadius * kr * OperatorStroke / Stroke - ov)
|
||||
DrawAt Middle PlusBot (DotRadius * kr * OperatorStroke / Stroke - ov)
|
||||
|
||||
VDual 'approx' 0x2248 'sym' approxDist
|
||||
|
||||
|
|
|
@ -22,4 +22,3 @@ glyph-block Symbol-Punctuation-Interpuncts : begin
|
|||
alias 'period/mid' null 'interpunct'
|
||||
alias 'greekbullet' 0x387 'interpunct'
|
||||
alias 'hyphenpoint' 0x2027 'interpunct'
|
||||
alias 'mathCDot' 0x22C5 'interpunct'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue