Optimize math symbols' footprint; Refine shape of angled arrows
This commit is contained in:
parent
8b937efbd8
commit
554a180e76
6 changed files with 159 additions and 163 deletions
|
@ -1,5 +1,7 @@
|
|||
"use strict";
|
||||
|
||||
const { Radical } = require("../../support/gr");
|
||||
|
||||
module.exports = function gcFont(gs, excludedChars, restFont, cfg) {
|
||||
markSweepOtl(restFont.GSUB);
|
||||
markSweepOtl(restFont.GPOS);
|
||||
|
@ -64,9 +66,14 @@ function mark(gs, excludedChars, restFont, cfg) {
|
|||
function markInitial(gs, excludedChars) {
|
||||
let sink = new Set();
|
||||
for (const g of gs) {
|
||||
if (!g) continue;
|
||||
if (g.glyphRank > 0) sink.add(g.name);
|
||||
if (!g || !g.unicode) continue;
|
||||
for (const u of g.unicode) if (!excludedChars.has(u)) sink.add(g.name);
|
||||
if (Radical.get(g)) sink.add(g.name);
|
||||
if (g.unicode) {
|
||||
for (const u of g.unicode) {
|
||||
if (!excludedChars.has(u)) sink.add(g.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
return sink;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ $$include '../meta/macros.ptl'
|
|||
import '../support/transform' as Transform
|
||||
|
||||
import [mix linreg clamp fallback] from '../support/utils'
|
||||
import [Cv AnyDerivingCv] from '../support/gr'
|
||||
import [Cv AnyDerivingCv Radical] from '../support/gr'
|
||||
import [designParameters] from '../meta/aesthetics'
|
||||
|
||||
glyph-module
|
||||
|
@ -642,9 +642,7 @@ glyph-block CommonShapes : begin
|
|||
include giz
|
||||
include g
|
||||
|
||||
define [WithTransform tfm gr] : new-glyph : glyph-proc
|
||||
include gr
|
||||
include tfm
|
||||
define [WithTransform tfm gr] : glyph-proc : include : new-glyph : composite-proc gr tfm
|
||||
|
||||
define [ReverseContours gr] : begin
|
||||
local g : new-glyph gr
|
||||
|
@ -656,4 +654,8 @@ glyph-block CommonShapes : begin
|
|||
set currentGlyph.markAnchors {.}
|
||||
set currentGlyph.markBnchors {.}
|
||||
|
||||
glyph-block-export Rect SquareAt Ring RingAt DotAt RingStroke RingStrokeAt DotStrokeAt CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar FlatSlashShape hookstart hookend CyrDescender FlipAround ScaleAround Realign ForceUpright diagCor CreateWaveShape NameUni PointingTo WithAIHSerifsMask WithTransform ReverseContours clear-anchors OBarLeftToothlessShape OBarLeftRoundedShape OBarRightToothlessShape OBarRightRoundedShape
|
||||
define [AsRadical gr] : glyph-proc
|
||||
Radical.set currentGlyph
|
||||
include gr true true
|
||||
|
||||
glyph-block-export Rect SquareAt Ring RingAt DotAt RingStroke RingStrokeAt DotStrokeAt CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar FlatSlashShape hookstart hookend CyrDescender FlipAround ScaleAround Realign ForceUpright diagCor CreateWaveShape NameUni PointingTo WithAIHSerifsMask WithTransform ReverseContours clear-anchors OBarLeftToothlessShape OBarLeftRoundedShape OBarRightToothlessShape OBarRightRoundedShape AsRadical
|
||||
|
|
|
@ -210,10 +210,10 @@ glyph-block Symbol-Arrow : begin
|
|||
include : shape xm ym x1 y1 arrowSize
|
||||
include : shape xm ym x2 y2 arrowSize
|
||||
|
||||
define [anglearrow shape bar id unicode x1 y1 x2 y2 x3 y3]
|
||||
define [anglearrow shape bar id unicode x1 y1 x2 y2 x3 y3 size]
|
||||
create-glyph id unicode : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : shape x2 y2 x3 y3 arrowSize
|
||||
include : shape x2 y2 x3 y3 size
|
||||
include : bar x1 y1 x2 y2
|
||||
|
||||
arrow ArrowShape [MangleName 'arrowleft'] [MangleUnicode 0x2190] arrowRSB SymbolMid arrowSB SymbolMid
|
||||
|
@ -229,10 +229,19 @@ glyph-block Symbol-Arrow : begin
|
|||
arrow [HookArrowShape 1] [MangleName 'hookarrowleft'] [MangleUnicode 0x21A9] arrowRSB SymbolMid arrowSB SymbolMid
|
||||
arrow [HookArrowShape (-1)] [MangleName 'hookarrowright'] [MangleUnicode 0x21AA] arrowSB SymbolMid arrowRSB SymbolMid
|
||||
|
||||
anglearrow ArrowShape [lambda [x1 y1 x2 y2] : VBarLeft x1 y1 y2] [MangleName 'arrow-up-angle-right'] [MangleUnicode 0x21b1] arrowSB arrowBot arrowSB (arrowTop - arrowSize) arrowRSB (arrowTop - arrowSize)
|
||||
anglearrow ArrowShape [lambda [x1 y1 x2 y2] : VBarRight x1 y1 y2] [MangleName 'arrow-up-angle-left'] [MangleUnicode 0x21b0] arrowRSB arrowBot arrowRSB (arrowTop - arrowSize) arrowSB (arrowTop - arrowSize)
|
||||
anglearrow ArrowShape [lambda [x1 y1 x2 y2] : VBarLeft x1 y1 y2] [MangleName 'arrow-down-angle-right'] [MangleUnicode 0x21b3] arrowSB arrowTop arrowSB (arrowBot + arrowSize) arrowRSB (arrowBot + arrowSize)
|
||||
anglearrow ArrowShape [lambda [x1 y1 x2 y2] : VBarRight x1 y1 y2] [MangleName 'arrow-down-angle-left'] [MangleUnicode 0x21b2] arrowRSB arrowTop arrowRSB (arrowBot + arrowSize) arrowSB (arrowBot + arrowSize)
|
||||
do "Bend and Angle arrows"
|
||||
define bendSize : mix OperatorStroke arrowSize 0.75
|
||||
define bendL : mix arrowMidX arrowSB [Math.max (bendSize / (arrowMidX - arrowSB)) : Math.pow 0.6 (2 / MosaicWidthScalar)]
|
||||
define bendR : mix arrowMidX arrowRSB [Math.max (bendSize / (arrowMidX - arrowSB)) : Math.pow 0.6 (2 / MosaicWidthScalar)]
|
||||
define [VBR x1 y1 x2 y2] : VBarRight x1 y1 y2 OperatorStroke
|
||||
define [VBL x1 y1 x2 y2] : VBarLeft x1 y1 y2 OperatorStroke
|
||||
define [HBT x1 y1 x2 y2] : HBarTop x1 x2 y1 OperatorStroke
|
||||
anglearrow ArrowShape VBR [MangleName 'arrow-up-angle-bend-left'] [MangleUnicode 0x21b0] bendR arrowBot bendR (arrowTop - bendSize) bendL (arrowTop - bendSize) bendSize
|
||||
anglearrow ArrowShape VBL [MangleName 'arrow-up-angle-bend-right'] [MangleUnicode 0x21b1] bendL arrowBot bendL (arrowTop - bendSize) bendR (arrowTop - bendSize) bendSize
|
||||
anglearrow ArrowShape VBR [MangleName 'arrow-down-angle-bend-left'] [MangleUnicode 0x21b2] bendR arrowTop bendR (arrowBot + bendSize) bendL (arrowBot + bendSize) bendSize
|
||||
anglearrow ArrowShape VBL [MangleName 'arrow-down-angle-bend-right'] [MangleUnicode 0x21b3] bendL arrowTop bendL (arrowBot + bendSize) bendR (arrowBot + bendSize) bendSize
|
||||
anglearrow ArrowShape HBT [MangleName 'arrow-right-angle-down'] [MangleUnicode 0x21b4] arrowSB arrowTop (arrowRSB - arrowSize) arrowTop (arrowRSB - arrowSize) arrowBot arrowSize
|
||||
anglearrow ArrowShape VBR [MangleName 'arrow-down-angle-left'] [MangleUnicode 0x21b5] arrowRSB arrowTop arrowRSB (arrowBot + arrowSize) arrowSB (arrowBot + arrowSize) arrowSize
|
||||
|
||||
arrow ArrowShape [MangleName 'arrowupleft'] [MangleUnicode 0x2196] arrowDiagRSB arrowDiagBot arrowDiagSB arrowDiagTop
|
||||
arrow ArrowShape [MangleName 'arrowupright'] [MangleUnicode 0x2197] arrowDiagSB arrowDiagBot arrowDiagRSB arrowDiagTop
|
||||
|
|
|
@ -12,22 +12,27 @@ glyph-block NotGlyphFn : begin
|
|||
glyph-block-export notGlyph
|
||||
|
||||
define [notGlyphGeneric newid unicode oldid top bot prop shift F] : begin
|
||||
create-glyph (newid || 'not' + oldid) unicode : glyph-proc
|
||||
include : refer-glyph oldid
|
||||
include : F
|
||||
local component : F
|
||||
fallback top BgOpTop
|
||||
fallback bot BgOpBot
|
||||
mix SB RightSB [fallback prop 0.25]
|
||||
mix RightSB SB [fallback prop 0.25]
|
||||
adviceBlackness 4
|
||||
fallback shift 0
|
||||
create-glyph (newid || 'not' + oldid) unicode : glyph-proc
|
||||
include : refer-glyph oldid
|
||||
include component
|
||||
|
||||
define [notGlyph] : params [newid unicode oldid top bot prop shift] : begin
|
||||
notGlyphGeneric newid unicode oldid top bot prop shift
|
||||
lambda [t b l r sw sh] : dispiro
|
||||
lambda [t b l r sw sh] : begin
|
||||
local slashBarName ".NotGlyphSlash{\(l),\(r),\(t),\(b),\(sw)}"
|
||||
if [not : query-glyph slashBarName] : begin
|
||||
create-glyph slashBarName : AsRadical : dispiro
|
||||
widths.center sw
|
||||
flat (sh + l) b
|
||||
curl (sh + r) t
|
||||
flat l b
|
||||
curl r t
|
||||
return : WithTransform [Translate sh 0] [refer-glyph slashBarName]
|
||||
|
||||
define [notGlyph.right] : params [newid unicode oldid top bot prop shift] : begin
|
||||
notGlyph newid unicode oldid top bot prop (-OperatorStroke * 0.5)
|
||||
|
@ -989,60 +994,49 @@ glyph-block Symbol-Math-Relation : begin
|
|||
create-glyph 'normalSupersetOf' 0x22B3 : glyph-proc
|
||||
include : NormalSupersetShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB
|
||||
|
||||
create-glyph : glyph-proc
|
||||
include : LessShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) SB RightSB
|
||||
create-derived 'less.narrow' : glyph-proc
|
||||
include : Upright
|
||||
include : Translate 0 (-lessEqDist)
|
||||
include : Italify
|
||||
create-derived 'lessEq' 0x2264 : glyph-proc
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) OperatorStroke
|
||||
create-derived 'lessEqBarNegated' 0x2A87 : BarNegator (SymbolMid - dH) lessEqDist
|
||||
create-derived 'lessSym' 0x2272 : glyph-proc
|
||||
include : symWave (SymbolMid - dH - lessEqDist) 1
|
||||
create-derived 'lessSymBarNegated' 0x22E6 : BarNegator (SymbolMid - dH) lessEqDist
|
||||
create-derived 'lessEqslant' 0x2A7D : glyph-proc
|
||||
include : LessShapeB (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB OperatorStroke
|
||||
create-glyph 'lessEqUpper' : AsRadical : LessShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) SB RightSB
|
||||
create-glyph 'greaterEqUpper' : AsRadical : GreaterShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) SB RightSB
|
||||
create-glyph 'normalSubsetUpper' : AsRadical : NormalSubsetShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) SB RightSB
|
||||
create-glyph 'normalSupersetUpper' : AsRadical : NormalSupersetShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) SB RightSB
|
||||
create-glyph 'eqLower' : AsRadical : HBar SB RightSB (SymbolMid - dH - lessEqDist) OperatorStroke
|
||||
create-glyph 'eqBarNegatedLower' : AsRadical : union [refer-glyph 'eqLower'] [BarNegator (SymbolMid - dH) lessEqDist]
|
||||
create-glyph 'symLower' : AsRadical : symWave (SymbolMid - dH - lessEqDist) 1
|
||||
create-glyph 'symBarNegatedLower' : AsRadical : union [refer-glyph 'symLower'] [BarNegator (SymbolMid - dH) lessEqDist]
|
||||
|
||||
create-glyph 'normalSubsetEq' 0x22B4 : glyph-proc
|
||||
include : NormalSubsetShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) SB RightSB
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) OperatorStroke
|
||||
create-glyph 'less.narrow' : composite-proc [refer-glyph 'lessEqUpper'] [Upright] [Translate 0 (-lessEqDist)] [Italify]
|
||||
create-glyph 'lessEq' 0x2264 : composite-proc [refer-glyph 'lessEqUpper'] [refer-glyph 'eqLower']
|
||||
create-glyph 'lessEqBarNegated' 0x2A87 : composite-proc [refer-glyph 'lessEqUpper'] [refer-glyph 'eqBarNegatedLower']
|
||||
create-glyph 'lessSym' 0x2272 : composite-proc [refer-glyph 'lessEqUpper'] [refer-glyph 'symLower']
|
||||
create-glyph 'lessSymBarNegated' 0x22E6 : composite-proc [refer-glyph 'lessEqUpper'] [refer-glyph 'symBarNegatedLower']
|
||||
create-glyph 'lessEqslant' 0x2A7D : composite-proc [refer-glyph 'lessEqUpper']
|
||||
LessShapeB (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB OperatorStroke
|
||||
|
||||
create-glyph : glyph-proc
|
||||
include : GreaterShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) SB RightSB
|
||||
create-derived 'greater.narrow' : glyph-proc
|
||||
include : Upright
|
||||
include : Translate 0 (-lessEqDist)
|
||||
include : Italify
|
||||
create-derived 'greaterEq' 0x2265 : glyph-proc
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) OperatorStroke
|
||||
create-derived 'greaterEqBarNegated' 0x2A88 : BarNegator (SymbolMid - dH) lessEqDist
|
||||
create-derived 'greaterSym' 0x2273 : glyph-proc
|
||||
include : symWave (SymbolMid - dH - lessEqDist) 1
|
||||
create-derived 'greaterSymBarNegated' 0x22E7 : BarNegator (SymbolMid - dH) lessEqDist
|
||||
create-derived 'greaterEqslant' 0x2A7E : glyph-proc
|
||||
include : GreaterShapeB (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB OperatorStroke
|
||||
create-glyph 'greater.narrow' : composite-proc [refer-glyph 'greaterEqUpper'] [Upright] [Translate 0 (-lessEqDist)] [Italify]
|
||||
create-glyph 'greaterEq' 0x2265 : composite-proc [refer-glyph 'greaterEqUpper'] [refer-glyph 'eqLower']
|
||||
create-glyph 'greaterEqBarNegated' 0x2A88 : composite-proc [refer-glyph 'greaterEqUpper'] [refer-glyph 'eqBarNegatedLower']
|
||||
create-glyph 'greaterSym' 0x2273 : composite-proc [refer-glyph 'greaterEqUpper'] [refer-glyph 'symLower']
|
||||
create-glyph 'greaterSymBarNegated' 0x22E7 : composite-proc [refer-glyph 'greaterEqUpper'] [refer-glyph 'symBarNegatedLower']
|
||||
create-glyph 'greaterEqslant' 0x2A7E : composite-proc [refer-glyph 'greaterEqUpper']
|
||||
GreaterShapeB (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB OperatorStroke
|
||||
|
||||
create-glyph 'normalSupersetEq' 0x22B5 : glyph-proc
|
||||
include : NormalSupersetShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) SB RightSB
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) OperatorStroke
|
||||
create-glyph 'normalSubsetEq' 0x22B4 : composite-proc [refer-glyph 'normalSubsetUpper'] [refer-glyph 'eqLower']
|
||||
create-glyph 'normalSupersetEq' 0x22B5 : composite-proc [refer-glyph 'normalSupersetUpper'] [refer-glyph 'eqLower']
|
||||
|
||||
# Ligation
|
||||
create-glyph : glyph-proc
|
||||
do "Ligation Glyphs"
|
||||
define l : 0.3 * Width
|
||||
define r : 2 * Width - l
|
||||
define l2 : l - Width
|
||||
define r2 : r - Width
|
||||
create-derived 'less.lig2' : glyph-proc
|
||||
create-glyph 'less.lig2' : glyph-proc
|
||||
include : LessShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) l r
|
||||
create-derived 'greater.lig2' : glyph-proc
|
||||
create-glyph 'greater.lig2' : glyph-proc
|
||||
include : GreaterShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) l r
|
||||
create-derived 'eq.at-lteq.lig2.flat' : glyph-proc
|
||||
create-glyph 'eq.at-lteq.lig2.flat' : glyph-proc
|
||||
include : HBar l2 r2 (SymbolMid - dH - lessEqDist) OperatorStroke
|
||||
create-aliased-glyph 'eq.at-gteq.lig2.flat'
|
||||
create-derived 'eq.at-lteq.lig2.slanted' : glyph-proc
|
||||
create-glyph 'eq.at-lteq.lig2.slanted' : glyph-proc
|
||||
include : LessShapeB (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) l2 r2 OperatorStroke
|
||||
create-derived 'eq.at-gteq.lig2.slanted' : glyph-proc
|
||||
create-glyph 'eq.at-gteq.lig2.slanted' : glyph-proc
|
||||
include : GreaterShapeB (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) l2 r2 OperatorStroke
|
||||
|
||||
select-variant 'eq.at-lteq.lig2'
|
||||
|
@ -1061,26 +1055,25 @@ glyph-block Symbol-Math-Relation : begin
|
|||
SymbolMid - dH + lessEqDist * 2 / 3
|
||||
SymbolMid - dH - lessEqDist
|
||||
|
||||
create-glyph 'lessEqEq' 0x2266 : glyph-proc
|
||||
include : LessShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
||||
include : HBar SB RightSB (SymbolMid - dH + lessEqDist * 2 / 3) lesslessSW
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) lesslessSW
|
||||
create-derived 'lessEqEqBarNegated' 0x2268 : EqEqBarNegation
|
||||
create-glyph 'lessSymSym' 0x2A85 : glyph-proc
|
||||
include : LessShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
||||
include : symWave (SymbolMid - dH + lessEqDist * 2 / 3) 1 lesslessSW
|
||||
include : symWave (SymbolMid - dH - lessEqDist) 1 lesslessSW
|
||||
create-derived 'lessSymSymBarNegated' 0x2A89 : EqEqBarNegation
|
||||
create-glyph 'greaterEqEq' 0x2267 : glyph-proc
|
||||
include : GreaterShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
||||
include : HBar SB RightSB (SymbolMid - dH + lessEqDist * 2 / 3) lesslessSW
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) lesslessSW
|
||||
create-derived 'greaterEqEqBarNegated' 0x2269 : EqEqBarNegation
|
||||
create-glyph 'greaterSymSym' 0x2A86 : glyph-proc
|
||||
include : GreaterShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
||||
include : symWave (SymbolMid - dH + lessEqDist * 2 / 3) 1 lesslessSW
|
||||
include : symWave (SymbolMid - dH - lessEqDist) 1 lesslessSW
|
||||
create-derived 'greaterSymSymBarNegated' 0x2A8A : EqEqBarNegation
|
||||
create-glyph 'lessEqEqUpper' : AsRadical : LessShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
||||
create-glyph 'greaterEqEqUpper' : AsRadical : GreaterShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
||||
create-glyph 'eqEqLower' : AsRadical : union
|
||||
HBar SB RightSB (SymbolMid - dH + lessEqDist * 2 / 3) lesslessSW
|
||||
HBar SB RightSB (SymbolMid - dH - lessEqDist) lesslessSW
|
||||
create-glyph 'symSymLower' : AsRadical : union
|
||||
symWave (SymbolMid - dH + lessEqDist * 2 / 3) 1 lesslessSW
|
||||
symWave (SymbolMid - dH - lessEqDist) 1 lesslessSW
|
||||
create-glyph 'eqEqBarNegatedLower' : AsRadical : union [refer-glyph 'eqEqLower'] [EqEqBarNegation]
|
||||
create-glyph 'symSymBarNegatedLower' : AsRadical : union [refer-glyph 'symSymLower'] [EqEqBarNegation]
|
||||
|
||||
create-glyph 'lessEqEq' 0x2266 : composite-proc [refer-glyph 'lessEqEqUpper'] [refer-glyph 'eqEqLower']
|
||||
create-glyph 'lessEqEqBarNegated' 0x2268 : composite-proc [refer-glyph 'lessEqEqUpper'] [refer-glyph 'eqEqBarNegatedLower']
|
||||
create-glyph 'lessSymSym' 0x2A85 : composite-proc [refer-glyph 'lessEqEqUpper'] [refer-glyph 'symSymLower']
|
||||
create-glyph 'lessSymSymBarNegated' 0x2A89 : composite-proc [refer-glyph 'lessEqEqUpper'] [refer-glyph 'symSymBarNegatedLower']
|
||||
create-glyph 'greaterEqEq' 0x2267 : composite-proc [refer-glyph 'greaterEqEqUpper'] [refer-glyph 'eqEqLower']
|
||||
create-glyph 'greaterEqEqBarNegated' 0x2269 : composite-proc [refer-glyph 'greaterEqEqUpper'] [refer-glyph 'eqEqBarNegatedLower']
|
||||
create-glyph 'greaterSymSym' 0x2A86 : composite-proc [refer-glyph 'greaterEqEqUpper'] [refer-glyph 'symSymLower']
|
||||
create-glyph 'greaterSymSymBarNegated' 0x2A8A : composite-proc [refer-glyph 'greaterEqEqUpper'] [refer-glyph 'symSymBarNegatedLower']
|
||||
|
||||
create-glyph 'lessGreater' 0x2276 : glyph-proc
|
||||
include : LessShape (SymbolMid + llggHeight / 2) (SymbolMid - llggHeight / 6 + lessEqDist) SB RightSB lesslessSW
|
||||
|
@ -1136,64 +1129,39 @@ glyph-block Symbol-Math-Relation : begin
|
|||
include : SucceedsShapeA top bot l r [fallback s OperatorStroke] CThin
|
||||
include : SucceedsShapeB top bot l r [fallback s OperatorStroke] CThin
|
||||
|
||||
create-glyph 'precedes' 0x227a : glyph-proc
|
||||
include : PrecedesShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB
|
||||
create-glyph 'precedes' 0x227a : AsRadical : PrecedesShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB
|
||||
create-glyph 'succeeds' 0x227b : AsRadical : SucceedsShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB
|
||||
create-glyph 'precedesEqUpper' : AsRadical : PrecedesShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) SB RightSB
|
||||
create-glyph 'precedesEqEqUpper' : AsRadical : PrecedesShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
||||
create-glyph 'succeedsEqUpper' : AsRadical : SucceedsShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) SB RightSB
|
||||
create-glyph 'succeedsEqEqUpper' : AsRadical : SucceedsShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
||||
|
||||
create-glyph 'succeeds' 0x227b : glyph-proc
|
||||
include : SucceedsShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB
|
||||
create-glyph 'precedes.narrow' : composite-proc [refer-glyph 'precedesEqUpper'] [Upright] [Translate 0 (-lessEqDist)] [Italify]
|
||||
create-glyph 'precedesEq' 0x2AAF : composite-proc [refer-glyph 'precedesEqUpper'] [refer-glyph 'eqLower']
|
||||
create-glyph 'precedesEqBarNegated' 0x2AB1 : composite-proc [refer-glyph 'precedesEqUpper'] [refer-glyph 'eqBarNegatedLower']
|
||||
create-glyph 'precedesSym' 0x227E : composite-proc [refer-glyph 'precedesEqUpper'] [refer-glyph 'symLower']
|
||||
create-glyph 'precedesSymBarNegated' 0x22E8 : composite-proc [refer-glyph 'precedesEqUpper'] [refer-glyph 'symBarNegatedLower']
|
||||
create-glyph 'precedesEqSlant' 0x227C : composite-proc [refer-glyph 'precedesEqUpper']
|
||||
PrecedesShapeB (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB OperatorStroke 1
|
||||
|
||||
create-glyph : glyph-proc
|
||||
include : PrecedesShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) SB RightSB
|
||||
create-derived 'precedes.narrow' : glyph-proc
|
||||
include : Upright
|
||||
include : Translate 0 (-lessEqDist)
|
||||
include : Italify
|
||||
create-derived 'precedesEq' 0x2AAF : glyph-proc
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) OperatorStroke
|
||||
create-derived 'precedesEqBarNegated' 0x2AB1 : BarNegator (SymbolMid - dH) lessEqDist
|
||||
create-derived 'precedesSym' 0x227E : glyph-proc
|
||||
include : symWave (SymbolMid - dH - lessEqDist) 1
|
||||
create-derived 'precedesSymBarNegated' 0x22E8 : BarNegator (SymbolMid - dH) lessEqDist
|
||||
create-derived 'precedesEqSlant' 0x227C : glyph-proc
|
||||
include : PrecedesShapeB (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB OperatorStroke 1
|
||||
|
||||
create-glyph 'precedesEqEq' 0x2AB3 : glyph-proc
|
||||
include : PrecedesShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
||||
include : HBar SB RightSB (SymbolMid - dH + lessEqDist * 2 / 3) lesslessSW
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) lesslessSW
|
||||
create-derived 'precedesEqEqBarNegated' 0x2AB5 : EqEqBarNegation
|
||||
create-glyph 'precedesSymSym' 0x2AB7 : glyph-proc
|
||||
include : PrecedesShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
||||
include : symWave (SymbolMid - dH + lessEqDist * 2 / 3) 1 lesslessSW
|
||||
include : symWave (SymbolMid - dH - lessEqDist) 1 lesslessSW
|
||||
create-derived 'precedesSymSymBarNegated' 0x2AB9 : EqEqBarNegation
|
||||
create-glyph 'precedesEqEq' 0x2AB3 : composite-proc [refer-glyph 'precedesEqEqUpper'] [refer-glyph 'eqEqLower']
|
||||
create-glyph 'precedesEqEqBarNegated' 0x2AB5 : composite-proc [refer-glyph 'precedesEqEqUpper'] [refer-glyph 'eqEqBarNegatedLower']
|
||||
create-glyph 'precedesSymSym' 0x2AB7 : composite-proc [refer-glyph 'precedesEqEqUpper'] [refer-glyph 'symSymLower']
|
||||
create-glyph 'precedesSymSymBarNegated' 0x2AB9 : composite-proc [refer-glyph 'precedesEqEqUpper'] [refer-glyph 'symSymBarNegatedLower']
|
||||
|
||||
|
||||
create-glyph : glyph-proc
|
||||
include : SucceedsShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist) SB RightSB
|
||||
create-derived 'succeeds.narrow' : glyph-proc
|
||||
include : Upright
|
||||
include : Translate 0 (-lessEqDist)
|
||||
include : Italify
|
||||
create-derived 'succeedsEq' 0x2AB0 : glyph-proc
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) OperatorStroke
|
||||
create-derived 'sycceedseqBarNegated' 0x2AB2 : BarNegator (SymbolMid - dH) lessEqDist
|
||||
create-derived 'succeedsSym' 0x227F : glyph-proc
|
||||
include : symWave (SymbolMid - dH - lessEqDist) 1
|
||||
create-derived 'succeedsSymBarNegated' 0x22E9 : BarNegator (SymbolMid - dH) lessEqDist
|
||||
create-derived 'succeedsEqSlant' 0x227D : glyph-proc
|
||||
include : SucceedsShapeB (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB OperatorStroke 1
|
||||
create-glyph 'succeeds.narrow' : composite-proc [refer-glyph 'succeedsEqUpper'] [Upright] [Translate 0 (-lessEqDist)] [Italify]
|
||||
create-glyph 'succeedsEq' 0x2AB0 : composite-proc [refer-glyph 'succeedsEqUpper'] [refer-glyph 'eqLower']
|
||||
create-glyph 'sycceedseqBarNegated' 0x2AB2 : composite-proc [refer-glyph 'succeedsEqUpper'] [refer-glyph 'eqBarNegatedLower']
|
||||
create-glyph 'succeedsSym' 0x227F : composite-proc [refer-glyph 'succeedsEqUpper'] [refer-glyph 'symLower']
|
||||
create-glyph 'succeedsSymBarNegated' 0x22E9 : composite-proc [refer-glyph 'succeedsEqUpper'] [refer-glyph 'symBarNegatedLower']
|
||||
create-glyph 'succeedsEqSlant' 0x227D : composite-proc [refer-glyph 'succeedsEqUpper']
|
||||
SucceedsShapeB (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB OperatorStroke 1
|
||||
|
||||
create-glyph 'succeedsEqEq' 0x2AB4 : glyph-proc
|
||||
include : SucceedsShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
||||
include : HBar SB RightSB (SymbolMid - dH + lessEqDist * 2 / 3) lesslessSW
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) lesslessSW
|
||||
create-derived 'succeedsEqEqBarNegated' 0x2AB6 : EqEqBarNegation
|
||||
create-glyph 'succeedsSymSym' 0x2AB8 : glyph-proc
|
||||
include : SucceedsShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
||||
include : symWave (SymbolMid - dH + lessEqDist * 2 / 3) 1 lesslessSW
|
||||
include : symWave (SymbolMid - dH - lessEqDist) 1 lesslessSW
|
||||
create-derived 'succeedsSymSymBarNegated' 0x2ABA : EqEqBarNegation
|
||||
create-glyph 'succeedsEqEq' 0x2AB4 : composite-proc [refer-glyph 'succeedsEqEqUpper'] [refer-glyph 'eqEqLower']
|
||||
create-glyph 'succeedsEqEqBarNegated' 0x2AB6 : composite-proc [refer-glyph 'succeedsEqEqUpper'] [refer-glyph 'eqEqBarNegatedLower']
|
||||
create-glyph 'succeedsSymSym' 0x2AB8 : composite-proc [refer-glyph 'succeedsEqEqUpper'] [refer-glyph 'symSymLower']
|
||||
create-glyph 'succeedsSymSymBarNegated' 0x2ABA : composite-proc [refer-glyph 'succeedsEqEqUpper'] [refer-glyph 'symSymBarNegatedLower']
|
||||
|
||||
|
||||
create-glyph 'sym' 0x223C : symWave SymbolMid 1
|
||||
|
@ -1284,15 +1252,13 @@ glyph-block Symbol-Math-Relation : begin
|
|||
turned 'supst' 0x2283 'subst' Middle SymbolMid
|
||||
turned 'doubleSupst' 0x22D1 'doubleSubst' Middle SymbolMid
|
||||
|
||||
create-glyph : glyph-proc
|
||||
include : SubsetShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist)
|
||||
create-derived 'substBar' 0x2286 : glyph-proc
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) OperatorStroke
|
||||
create-derived 'substBarNegated' 0x228A : BarNegator (SymbolMid - dH) lessEqDist
|
||||
create-derived 'supstBar' 0x2287 : glyph-proc
|
||||
include : FlipAround Middle (SymbolMid + lessEqDist)
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) OperatorStroke
|
||||
create-derived 'supstBarNegated' 0x228B : BarNegator (SymbolMid - dH) lessEqDist
|
||||
create-glyph 'substBarUpper' : AsRadical : SubsetShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist)
|
||||
create-glyph 'supstBarUpper' : AsRadical : SupsetShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist)
|
||||
|
||||
create-glyph 'substBar' 0x2286 : composite-proc [refer-glyph 'substBarUpper'] [refer-glyph 'eqLower']
|
||||
create-glyph 'substBarNegated' 0x228A : composite-proc [refer-glyph 'substBarUpper'] [refer-glyph 'eqBarNegatedLower']
|
||||
create-glyph 'supstBar' 0x2287 : composite-proc [refer-glyph 'supstBarUpper'] [refer-glyph 'eqLower']
|
||||
create-glyph 'supstBarNegated' 0x228B : composite-proc [refer-glyph 'supstBarUpper'] [refer-glyph 'eqBarNegatedLower']
|
||||
|
||||
create-glyph 'element' 0x2208 : glyph-proc
|
||||
include : SubsetShape (SymbolMid + dH * 4 / 3) (SymbolMid - dH * 4 / 3)
|
||||
|
@ -1306,20 +1272,20 @@ glyph-block Symbol-Math-Relation : begin
|
|||
|
||||
turned nothing 0x220D 'smallElement' Middle SymbolMid
|
||||
|
||||
create-glyph 'prefix' 0x228F : glyph-proc
|
||||
include : PrefixShape (SymbolMid + dH) (SymbolMid - dH)
|
||||
create-glyph 'suffix' 0x2290 : glyph-proc
|
||||
include : SuffixShape (SymbolMid + dH) (SymbolMid - dH)
|
||||
create-glyph 'prefix' 0x228F : PrefixShape (SymbolMid + dH) (SymbolMid - dH)
|
||||
create-glyph 'suffix' 0x2290 : SuffixShape (SymbolMid + dH) (SymbolMid - dH)
|
||||
|
||||
create-glyph : glyph-proc
|
||||
include : PrefixShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist)
|
||||
create-derived 'prefixBar' 0x2291 : glyph-proc
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) OperatorStroke
|
||||
create-derived 'prefixBarNegated' 0x22E4 : BarNegator (SymbolMid - dH) lessEqDist
|
||||
create-derived 'suffixBar' 0x2292 : glyph-proc
|
||||
include : FlipAround Middle (SymbolMid + lessEqDist)
|
||||
include : HBar SB RightSB (SymbolMid - dH - lessEqDist) OperatorStroke
|
||||
create-derived 'suffixBarNegated' 0x22E5 : BarNegator (SymbolMid - dH) lessEqDist
|
||||
create-glyph 'prefixBarUpper' : AsRadical : PrefixShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist)
|
||||
create-glyph 'suffixBarUpper' : AsRadical : SuffixShape (SymbolMid + dH + lessEqDist) (SymbolMid - dH + lessEqDist)
|
||||
|
||||
create-glyph 'prefixBar' 0x2291 : composite-proc [refer-glyph 'prefixBarUpper'] [refer-glyph 'eqLower']
|
||||
create-glyph 'prefixBarNegated' 0x22E4 : composite-proc [refer-glyph 'prefixBarUpper'] [refer-glyph 'eqBarNegatedLower']
|
||||
create-glyph 'suffixBar' 0x2292 : composite-proc [refer-glyph 'suffixBarUpper'] [refer-glyph 'eqLower']
|
||||
create-glyph 'suffixBarNegated' 0x22E5 : composite-proc [refer-glyph 'suffixBarUpper'] [refer-glyph 'eqBarNegatedLower']
|
||||
|
||||
create-glyph 'prefixElement' 0x22FF : glyph-proc
|
||||
include : PrefixShape (SymbolMid + dH * 4 / 3) (SymbolMid - dH * 4 / 3)
|
||||
include : HBar (SB + HalfStroke) RightSB SymbolMid
|
||||
|
||||
create-glyph 0x22F8 : composite-proc
|
||||
refer-glyph 'element'
|
||||
|
|
|
@ -143,7 +143,7 @@ define-macro glyph-block-import : syntax-rules
|
|||
HooktopLeftBar FlatSlashShape hookstart hookend CyrDescender FlipAround ScaleAround
|
||||
Realign ForceUpright diagCor CreateWaveShape NameUni PointingTo WithAIHSerifsMask
|
||||
WithTransform ReverseContours clear-anchors OBarLeftToothlessShape OBarLeftRoundedShape
|
||||
OBarRightToothlessShape OBarRightRoundedShape]
|
||||
OBarRightToothlessShape OBarRightRoundedShape AsRadical]
|
||||
|
||||
Overmarks `[markExtend markHalfStroke markStress markFine markMiddle markDotsRadius
|
||||
aboveMarkTop aboveMarkBot aboveMarkMid belowMarkBot belowMarkTop commaOvershoot
|
||||
|
|
|
@ -69,8 +69,8 @@ const TieGlyph = {
|
|||
|
||||
const DoNotDeriveVariants = {
|
||||
get(glyph) {
|
||||
if (glyph && glyph.related) return glyph.related.DoNotDeriveVariants;
|
||||
else return null;
|
||||
if (glyph && glyph.related) return !!glyph.related.DoNotDeriveVariants;
|
||||
else return false;
|
||||
},
|
||||
set(glyph) {
|
||||
if (!glyph.related) glyph.related = {};
|
||||
|
@ -78,6 +78,17 @@ const DoNotDeriveVariants = {
|
|||
}
|
||||
};
|
||||
|
||||
const Radical = {
|
||||
get(glyph) {
|
||||
if (glyph && glyph.related) return !!glyph.related.radical;
|
||||
else return false;
|
||||
},
|
||||
set(glyph) {
|
||||
if (!glyph.related) glyph.related = {};
|
||||
glyph.related.radical = true;
|
||||
}
|
||||
};
|
||||
|
||||
const CvTagCache = new Map();
|
||||
function Cv(tag) {
|
||||
if (CvTagCache.has(tag)) return CvTagCache.get(tag);
|
||||
|
@ -295,6 +306,7 @@ exports.getGrMesh = getGrMesh;
|
|||
exports.TieMark = TieMark;
|
||||
exports.TieGlyph = TieGlyph;
|
||||
exports.DoNotDeriveVariants = DoNotDeriveVariants;
|
||||
exports.Radical = Radical;
|
||||
exports.AnyDerivingCv = AnyDerivingCv;
|
||||
exports.CcmpDecompose = CcmpDecompose;
|
||||
exports.CvDecompose = CvDecompose;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue