From 4dc0557998f51c5f19548dc2b7a1af6c34c06114 Mon Sep 17 00:00:00 2001 From: Logo <21302803+Logo121@users.noreply.github.com> Date: Sat, 7 Dec 2024 12:48:00 +0800 Subject: [PATCH 01/10] Collection of around 30 arithmetic symbols (#2610) * arithmetic * triangles * znotation angle bracket * sw fixes * log --- changes/32.2.1.md | 26 ++++++++++ packages/font-glyphs/src/letter/latin/c.ptl | 2 +- .../src/symbol/geometric/masked.ptl | 17 +++++++ .../src/symbol/geometric/plain.ptl | 4 +- .../font-glyphs/src/symbol/math/arith.ptl | 35 ++++++++++++- .../src/symbol/math/large-operators.ptl | 43 ++++++++++++++++ .../font-glyphs/src/symbol/math/relation.ptl | 51 +++++++++++++++++++ .../font-glyphs/src/symbol/math/v-and-cup.ptl | 48 ++++++++++++++++- .../src/symbol/punctuation/brackets.ptl | 17 +++++++ 9 files changed, 237 insertions(+), 6 deletions(-) diff --git a/changes/32.2.1.md b/changes/32.2.1.md index b73f3165ce..7cb59b9539 100644 --- a/changes/32.2.1.md +++ b/changes/32.2.1.md @@ -13,3 +13,29 @@ - CYRILLIC SMALL LETTER TCHE (`U+A693`). - LATIN EPIGRAPHIC LETTER ARCHAIC M (`U+A7FF`). - MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER (`U+1E06C`). +* Add characters: + - DOUBLE INTERSECTION (`U+22D2`). + - DOUBLE UNION (`U+22D3`). + - LEFT OUTER JOIN (`U+27D5`). + - RIGHT OUTER JOIN (`U+27D6`). + - FULL OUTER JOIN (`U+27D7`). + - Z NOTATION LEFT BINDING BRACKET (`U+2989`). + - Z NOTATION RIGHT BINDING BRACKET (`U+298A`). + - TRIANGLE WITH DOT ABOVE (`U+29CA`). + - TRIANGLE WITH UNDERBAR (`U+29CB`). + - TRIANGLE WITH SERIFS AT BOTTOM (`U+29CD`). + - N-ARY TIMES OPERATOR (`U+2A09`). + - JOIN (`U+2A1D`). + - LARGE LEFT TRIANGLE OPERATOR (`U+2A1E`). + - CLOSED UNION WITH SERIFS (`U+2A4C`). + - CLOSED INTERSECTION WITH SERIFS (`U+2A4D`). + - DOUBLE SQUARE INTERSECTION (`U+2A4E`). + - DOUBLE SQUARE UNION (`U+2A4F`). + - SLOPING LARGE OR (`U+2A57`). + - SLOPING LARGE AND (`U+2A58`). + - LOGICAL AND WITH MIDDLE STEM (`U+2A5A`). + - LOGICAL OR WITH MIDDLE STEM (`U+2A5B`). + - Z NOTATION DOMAIN ANTIRESTRICTION (`U+2A64`). + - Z NOTATION RANGE ANTIRESTRICTION (`U+2A65`). + - SMALLER THAN (`U+2AAA`) ... LARGER THAN OR EQUAL TO (`U+2AAD`). + - CLOSED SUBSET (`U+2ACF`) ... CLOSED SUPERSET OR EQUAL TO (`U+2AD2`). diff --git a/packages/font-glyphs/src/letter/latin/c.ptl b/packages/font-glyphs/src/letter/latin/c.ptl index a6c1c251d9..316ea8d18f 100644 --- a/packages/font-glyphs/src/letter/latin/c.ptl +++ b/packages/font-glyphs/src/letter/latin/c.ptl @@ -63,7 +63,7 @@ glyph-block Letter-Latin-C : begin g4 (df.leftSB + offset) (top - [fallback hook Hook]) hookstart (top - offset) (sw -- sw) - flatside.rd (df.rightSB + offset) bot top ada adb + flatside.rd (df.rightSB - offset) bot top ada adb match sb [Just SLAB-CLASSICAL] : SerifedArcEnd.RtlRhs (df.leftSB + offset) bot sw [fallback hook Hook] diff --git a/packages/font-glyphs/src/symbol/geometric/masked.ptl b/packages/font-glyphs/src/symbol/geometric/masked.ptl index d9729743e5..304e2d9927 100644 --- a/packages/font-glyphs/src/symbol/geometric/masked.ptl +++ b/packages/font-glyphs/src/symbol/geometric/masked.ptl @@ -432,3 +432,20 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1 intersection refer-glyph : MangleName 'blackLozenge' HBar.m 0 MosaicWidth Geom.MidY GeometryStroke + + define triangleSideRadius : Geom.Size * 2.1 / [Math.sqrt 3] + derive-multi-part-glyphs [MangleName 'whiteTriangleUpDotAbove'] [MangleUnicode 0x29CA] { [MangleName 'whiteTriangleUp'] 'dotAbove' } : lambda [srcs gr] : glyph-proc + local { base mark } srcs + include : refer-glyph mark + include : Translate (Middle + Geom.MidX) (Geom.Top - XH) + include [refer-glyph base] AS_BASE ALSO_METRICS + + create-glyph [MangleName 'whiteTriangleUpBarBelow'] [MangleUnicode 0x29CB] : glyph-proc + include [refer-glyph : MangleName 'whiteTriangleUp'] AS_BASE ALSO_METRICS + include : HBar.t (Geom.MidX - triangleSideRadius) (Geom.MidX + triangleSideRadius) (Geom.Bot - AccentClearance) GeometryStroke + + create-glyph [MangleName 'whiteTriangleUpSerifBottom'] [MangleUnicode 0x29CD] : glyph-proc + define jut : clamp 0 (MosaicMiddle - triangleSideRadius) (SideJut * MosaicWidthScalar) + include [refer-glyph : MangleName 'whiteTriangleUp'] AS_BASE ALSO_METRICS + include : HSerif.lb (Geom.MidX - triangleSideRadius) Geom.Bot jut GeometryStroke + include : HSerif.rb (Geom.MidX + triangleSideRadius) Geom.Bot jut GeometryStroke diff --git a/packages/font-glyphs/src/symbol/geometric/plain.ptl b/packages/font-glyphs/src/symbol/geometric/plain.ptl index 13ebac3500..d1373eb50f 100644 --- a/packages/font-glyphs/src/symbol/geometric/plain.ptl +++ b/packages/font-glyphs/src/symbol/geometric/plain.ptl @@ -614,7 +614,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 do "Other Polygon" glyph-block-import Shared-Symbol-Shapes : TriangleShape HZigzag - define fineGeometryStroke : AdviceStroke2 4 4 (Geom.Size * 2) + define fineGeometryStroke : AdviceStroke2 4 4 Geom.Size create-glyph [MangleName 'straightness'] [MangleUnicode 0x23E4] : glyph-proc set-width Geom.Width @@ -631,7 +631,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 create-glyph [MangleName 'conicalTaper'] [MangleUnicode 0x2332] : glyph-proc set-width Geom.Width include : TriangleShape Geom.Left (Geom.MidY - Geom.Size * 0.8) Geom.Left (Geom.MidY + Geom.Size * 0.8) Geom.Right Geom.MidY fineGeometryStroke - include : HBar.m [mix 0 Geom.Left 0.5] [mix Geom.Right Geom.Width 0.5] Geom.MidY fineGeometryStroke + include : HBar.m [mix 0 Geom.Left 0.5] [mix Geom.Right Geom.Width 0.5] Geom.MidY GeometryStroke create-glyph [MangleName 'slope'] [MangleUnicode 0x2333] : glyph-proc set-width Geom.Width diff --git a/packages/font-glyphs/src/symbol/math/arith.ptl b/packages/font-glyphs/src/symbol/math/arith.ptl index d34c16831c..01db8ccf70 100644 --- a/packages/font-glyphs/src/symbol/math/arith.ptl +++ b/packages/font-glyphs/src/symbol/math/arith.ptl @@ -137,7 +137,7 @@ glyph-block Symbol-Math-Arith : begin intersection MultiplyMask 1 1 1 union - VBar.l (Middle - Size) (SymbolMid - Size) (SymbolMid + Size) swBowtieHv + VBar.l (Middle - Size) (SymbolMid - Size) (SymbolMid + Size) swBowtieHv VBar.r (Middle + Size) (SymbolMid - Size) (SymbolMid + Size) swBowtieHv intersection Rect ParenTop ParenBot (Middle - Size) (Middle + Size) @@ -198,6 +198,39 @@ glyph-block Symbol-Math-Arith : begin refer-glyph 'bowtieRight' MultiplyMask 1 0 1 + define [JoinLeft ] : union + HBar.t [Math.max 0 : Middle - Size - Jut + [HSwToV : 0.5 * swBowtieHv]] (Middle - Size) (SymbolMid + Size) swBowtie + HBar.b [Math.max 0 : Middle - Size - Jut + [HSwToV : 0.5 * swBowtieHv]] (Middle - Size) (SymbolMid - Size) swBowtie + define [JoinRight] : union + HBar.t (Middle + Size) [Math.min Width : Middle + Size + Jut - [HSwToV : 0.5 * swBowtieHv]] (SymbolMid + Size) swBowtie + HBar.b (Middle + Size) [Math.min Width : Middle + Size + Jut - [HSwToV : 0.5 * swBowtieHv]] (SymbolMid - Size) swBowtie + define [JoinLeftMask ] : union + MaskAboveLine 0 (SymbolMid + Size) Middle (SymbolMid + Size) + MaskBelowLine 0 (SymbolMid - Size) Middle (SymbolMid - Size) + define [JoinRightMask] : union + MaskAboveLine Middle (SymbolMid + Size) Width (SymbolMid + Size) + MaskBelowLine Middle (SymbolMid - Size) Width (SymbolMid - Size) + create-glyph 'joinLeft' 0x27D5 : glyph-proc + include : difference + union + refer-glyph 'bowtie' + JoinLeft + JoinLeftMask + create-glyph 'joinRight' 0x27D6 : glyph-proc + include : difference + union + refer-glyph 'bowtie' + JoinRight + JoinRightMask + create-glyph 'joinFull' 0x27D7 : glyph-proc + include : difference + union + refer-glyph 'bowtie' + JoinLeft + JoinRight + JoinLeftMask + JoinRightMask + define HourglassStretch 1.6 create-glyph 'whiteHourglass' 0x29D6 : glyph-proc include : union diff --git a/packages/font-glyphs/src/symbol/math/large-operators.ptl b/packages/font-glyphs/src/symbol/math/large-operators.ptl index 3acdfa43f7..fb12357854 100644 --- a/packages/font-glyphs/src/symbol/math/large-operators.ptl +++ b/packages/font-glyphs/src/symbol/math/large-operators.ptl @@ -7,6 +7,7 @@ glyph-module glyph-block Symbol-Math-Large-Operators : for-width-kinds WideWidth1 glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Shared-Symbol-Shapes : TriangleShape glyph-block-import Letter-Latin-Long-S : LongSShape glyph-block-import Letter-Latin-U : UShape glyph-block-import Letter-Greek-Upper-Sigma : SigmaShape @@ -96,3 +97,45 @@ glyph-block Symbol-Math-Large-Operators : for-width-kinds WideWidth1 include : PiShape df BgOpTop BgOpBot (shrinkRate -- 0) (fine -- OperatorStroke) (doSerif -- false) turned [MangleName 'SquareCup'] [MangleUnicode 0x2A06] [MangleName 'SquareCap'] df.middle SymbolMid + + create-glyph [MangleName 'Multiply'] [MangleUnicode 0x2A09] : glyph-proc + set-width df.width + include : dispiro + widths.center OperatorStroke + corner df.leftSB BgOpTop + corner df.rightSB BgOpBot + include : dispiro + widths.center OperatorStroke + corner df.leftSB BgOpBot + corner df.rightSB BgOpTop + + create-glyph [MangleName 'Bowtie'] [MangleUnicode 0x2A1D] : glyph-proc + set-width df.width + define swBowtie : Math.min OperatorStroke : AdviceStroke 4.25 MosaicWidthScalar + define swBowtieHv : Math.min OperatorStroke : AdviceStroke 4.75 MosaicWidthScalar + include : union + intersection + MaskRight df.leftSB + MaskLeft df.rightSB + union + dispiro + widths.center swBowtie + corner df.leftSB BgOpTop + corner df.rightSB BgOpBot + dispiro + widths.center swBowtie + corner df.leftSB BgOpBot + corner df.rightSB BgOpTop + intersection + spiro-outline + corner df.leftSB BgOpBot + corner df.rightSB BgOpTop + corner df.rightSB BgOpBot + corner df.leftSB BgOpTop + union + VBar.l df.leftSB BgOpBot BgOpTop swBowtieHv + VBar.r df.rightSB BgOpBot BgOpTop swBowtieHv + + create-glyph [MangleName 'WhiteTriangleLeft'] [MangleUnicode 0x2A1E] : glyph-proc + set-width df.width + include : TriangleShape df.leftSB SymbolMid df.rightSB BgOpTop df.rightSB BgOpBot OperatorStroke diff --git a/packages/font-glyphs/src/symbol/math/relation.ptl b/packages/font-glyphs/src/symbol/math/relation.ptl index 3aed8db177..e405508850 100644 --- a/packages/font-glyphs/src/symbol/math/relation.ptl +++ b/packages/font-glyphs/src/symbol/math/relation.ptl @@ -450,6 +450,14 @@ glyph-block Symbol-Math-Relation-Inequality : begin Rect ([mix top bot 0.5] + gap / 2) ([mix top bot 0.5] - gap / 2) (l + O) (r - O) define [NormalSubsetShape top bot l r s] : LigationLessShape top bot l r s s 0 + define [AntirestrictionLeftShape top bot l r s s2] : union [NormalSubsetShape top bot l r s] + intersection + LessMaskShape top bot l r + HBar.m l r [mix top bot 0.5] [fallback s2 s OperatorStroke] + define [SmallerShape top bot l r s] : union [LessShape top bot l r s] + intersection + LessMaskShape top bot l r + HBar.m l r [mix top bot 0.5] [fallback s OperatorStroke] glyph-block-export GreaterShape define [GreaterShape top bot l r s] : union @@ -473,6 +481,14 @@ glyph-block Symbol-Math-Relation-Inequality : begin Rect ([mix top bot 0.5] + gap / 2) ([mix top bot 0.5] - gap / 2) (l + O) (r - O) define [NormalSupersetShape top bot l r s] : LigationGreaterShape top bot l r s s 0 + define [AntirestrictionRightShape top bot l r s s2] : union [NormalSupersetShape top bot l r s] + intersection + GreaterMaskShape top bot l r + HBar.m l r [mix top bot 0.5] [fallback s2 s OperatorStroke] + define [LargerShape top bot l r s] : union [GreaterShape top bot l r s] + intersection + GreaterMaskShape top bot l r + HBar.m l r [mix top bot 0.5] [fallback s OperatorStroke] create-glyph 'less' '<' : glyph-proc include : LessShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB @@ -484,6 +500,12 @@ glyph-block Symbol-Math-Relation-Inequality : begin create-glyph 'normalSubsetOf' 0x22B2 : glyph-proc include : NormalSubsetShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB + create-glyph 'zNotationDomainAntirestriction' 0x2A64 : glyph-proc + include : AntirestrictionLeftShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB OperatorStroke [AdviceStroke 4.5] + + create-glyph 'smaller' 0x2AAA : glyph-proc + include : SmallerShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB + create-glyph 'greater' '>' : glyph-proc include : GreaterShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB @@ -494,10 +516,18 @@ glyph-block Symbol-Math-Relation-Inequality : begin create-glyph 'normalSupersetOf' 0x22B3 : glyph-proc include : NormalSupersetShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB + create-glyph 'zNotationRangeAntirestriction' 0x2A65 : glyph-proc + include : AntirestrictionRightShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB OperatorStroke [AdviceStroke 4.5] + + create-glyph 'larger' 0x2AAB : glyph-proc + include : LargerShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB + create-glyph 'lessEqUpper' : LessShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB create-glyph 'greaterEqUpper' : GreaterShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB create-glyph 'normalSubsetUpper' : NormalSubsetShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB create-glyph 'normalSupersetUpper' : NormalSupersetShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB + create-glyph 'smallerEqUpper' : SmallerShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB + create-glyph 'largerEqUpper' : LargerShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB derive-composites 'less.narrow' null 'lessEqUpper' [ApparentTranslate 0 (-lessEqDist)] derive-composites 'lessEq' 0x2264 'lessEqUpper' 'eqLower' @@ -527,6 +557,8 @@ glyph-block Symbol-Math-Relation-Inequality : begin derive-composites 'normalSubsetEq' 0x22B4 'normalSubsetUpper' 'eqLower' derive-composites 'normalSupersetEq' 0x22B5 'normalSupersetUpper' 'eqLower' + derive-composites 'smallerEq' 0x2AAC 'smallerEqUpper' 'eqLower' + derive-composites 'largerEq' 0x2AAD 'largerEqUpper' 'eqLower' turned 'turnGreaterEq' 0x22DC 'greaterEq' Middle SymbolMid turned 'turnLessEq' 0x22DD 'lessEq' Middle SymbolMid @@ -593,6 +625,9 @@ glyph-block Symbol-Math-Relation-Inequality : begin include : GreaterShape (SymbolMid + llggHeight / 2 + lessEqDist) (SymbolMid - llggHeight / 6 + lessEqDist * 2) SB RightSB lesslessSW include : LessShape (SymbolMid + llggHeight / 6 - lessEqDist * 2) (SymbolMid - llggHeight / 2 - lessEqDist) SB RightSB lesslessSW include : HBar.m SB RightSB (SymbolMid) lesslessSW + create-glyph 'normalSupersetNormalSubset' 0x29CE : glyph-proc + include : NormalSupersetShape (SymbolMid + llggHeight / 2) (SymbolMid - llggHeight / 6 + lessEqDist) SB RightSB lesslessSW + include : NormalSubsetShape (SymbolMid + llggHeight / 6 - lessEqDist) (SymbolMid - llggHeight / 2) SB RightSB lesslessSW create-glyph 'lessless' 0x226A : glyph-proc include : LessShape (SymbolMid + dH) (SymbolMid - dH) (SB - lessEqDist / 2) (RightSB - lessEqDist * 2) lesslessSW @@ -749,6 +784,12 @@ glyph-block Symbol-Math-Relation-Subset : begin define [SupsetShape top bot sw] : glyph-proc include : SubsetShape top bot sw include : FlipAround Middle [mix top bot 0.5] + define [SubsetClosedShape top bot sw] : glyph-proc + include : SubsetShape top bot sw + include : VBar.r RightSB bot top sw + define [SupsetClosedShape top bot sw] : glyph-proc + include : SubsetClosedShape top bot sw + include : FlipAround Middle [mix top bot 0.5] create-glyph 'subst' 0x2282 SubsetShape (SymbolMid + dHSubstSimple) (SymbolMid - dHSubstSimple) @@ -760,9 +801,12 @@ glyph-block Symbol-Math-Relation-Subset : begin include : SubsetShape (SymbolMid + dHSubstSimple) (SymbolMid - dHSubstSimple) (sw -- sw) include : SubsetShape (SymbolMid + dHSubstSimple) (SymbolMid - dHSubstSimple) (sw -- sw) (offset -- gap + sw) + create-glyph 'substClosed' 0x2ACF + SubsetClosedShape (SymbolMid + dHSubstSimple) (SymbolMid - dHSubstSimple) OperatorStroke turned 'supst' 0x2283 'subst' Middle SymbolMid turned 'doubleSupst' 0x22D1 'doubleSubst' Middle SymbolMid + turned 'supstClosed' 0x2AD0 'substClosed' Middle SymbolMid create-glyph 'substBarUpper' SubsetShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) @@ -776,6 +820,13 @@ glyph-block Symbol-Math-Relation-Subset : begin derive-composites 'supstBarNoRise' null 'supst' 'eqLower2' derive-composites 'supstBarNegated' 0x228B 'supstBarUpper' 'eqBarNegatedLower' + create-glyph 'substClosedBar' 0x2AD1 : composite-proc + SubsetClosedShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) OperatorStroke + refer-glyph 'eqLower' + create-glyph 'supstClosedBar' 0x2AD2 : composite-proc + SupsetClosedShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) OperatorStroke + refer-glyph 'eqLower' + define supstDotShift : SB + [Math.max (OperatorStroke * 1.5) dHSubstSimple] - Middle derive-composites 'substDot' 0x2ABD 'mathCDot' [ApparentTranslate (+supstDotShift) 0] 'subst' derive-composites 'supstDot' 0x2ABE 'mathCDot' [ApparentTranslate (-supstDotShift) 0] 'supst' diff --git a/packages/font-glyphs/src/symbol/math/v-and-cup.ptl b/packages/font-glyphs/src/symbol/math/v-and-cup.ptl index 51d6cac0a6..54c839f482 100644 --- a/packages/font-glyphs/src/symbol/math/v-and-cup.ptl +++ b/packages/font-glyphs/src/symbol/math/v-and-cup.ptl @@ -7,7 +7,7 @@ glyph-module glyph-block Symbol-Math-VAndCup : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Latin-U : UShape + glyph-block-import Letter-Latin-U : UShape USerifs glyph-block-import Letter-Greek-Pi : PiShape glyph-block-import Letter-Cyrillic-Sha : CyrShaShape glyph-block-import Symbol-Arrow : ArrowShape @@ -126,6 +126,31 @@ glyph-block Symbol-Math-VAndCup : begin turned 'math/logic/equalOr' 0x2A62 'math/logic/andEqual' Middle SymbolMid turned 'math/logic/orEqual' 0x2A63 'math/logic/equalAnd' Middle SymbolMid + create-glyph 'wedgeMiddleStem' 0x2A5A : glyph-proc + include : union + WedgeShape OperTop OperBot [AdviceStroke 4] + VBar.m Middle OperBot OperTop [AdviceStroke 4] + + create-glyph 'veeMiddleStem' 0x2A5B : glyph-proc + include : union + VeeShape OperTop OperBot [AdviceStroke 4] + VBar.m Middle OperBot OperTop [AdviceStroke 4] + + create-glyph 'veeSlanted' 0x2A57 : glyph-proc + include : union + dispiro + widths.lhs OperatorStroke + flat SB OperTop [heading Downward] + curl SB OperBot [heading Downward] + dispiro + widths.rhs OperatorStroke + flat RightSB OperTop [heading Downward] + curl (SB + [HSwToV Stroke]) OperBot [heading Downward] + + turned 'wedgeSlanted' 0x2A58 'veeSlanted' Middle SymbolMid + + # Cup + create-glyph 'cup' 0x222A : glyph-proc include : UShape [DivFrame 1] OperTop OperBot (stroke -- OperatorStroke) @@ -171,7 +196,7 @@ glyph-block Symbol-Math-VAndCup : begin create-glyph 'doubleCup' 0x22D3 : glyph-proc local sw : AdviceStroke 6 - local gap : Math.max (Width / 8) (sw / 2) + local gap : Math.min [Math.max (Width / 8) (sw / 2)] : (RightSB - SB - [HSwToV : 4 * sw]) / 3 include : UShape [DivFrame 1] OperTop OperBot (stroke -- sw) include : UShape [DivFrame 1] OperTop OperBot stroke -- sw @@ -230,6 +255,16 @@ glyph-block Symbol-Math-VAndCup : begin flat SB OperBot curl RightSB OperTop + create-glyph 'cupClosedSerifed' 0x2A4C : glyph-proc + include : UShape [DivFrame 1] OperTop OperBot (stroke -- OperatorStroke) + include : HBar.t SB RightSB OperTop OperatorStroke + include : USerifs.Toothless [DivFrame 1] OperTop OperatorStroke + + turned 'capClosedSerifed' 0x2A4D 'cupClosedSerifed' Middle SymbolMid + + + # Square Cup + create-glyph 'squareCap' 0x2293 : glyph-proc include : PiShape [DivFrame 1] OperTop OperBot (shrinkRate -- 0) (fine -- OperatorStroke) (doSerif -- false) @@ -238,3 +273,12 @@ glyph-block Symbol-Math-VAndCup : begin create-glyph 'shuffleProduct' 0x29E2 : glyph-proc local df : include : DivFrame para.diversityM 3 include : CyrShaShape df OperTop OperBot (fine -- OperatorStroke) (doSerif -- false) + + create-glyph 'doubleSquareCap' 0x2A4E : glyph-proc + local sw : AdviceStroke 6 + local gap : Math.min [Math.max (Width / 8) (sw / 2)] : (RightSB - SB - [HSwToV : 4 * sw]) / 3 + local shrinkRate : (sw + gap) / (RightSB - SB) + include : PiShape [DivFrame 1] OperTop OperBot (fine -- sw) (shrinkRate -- 0) (fine -- sw) (doSerif -- false) + include : PiShape [DivFrame 1] (OperTop - sw - gap) OperBot (fine -- sw) (shrinkRate -- shrinkRate) (endShrink -- shrinkRate) (doSerif -- false) + + turned 'doubleSquareCup' 0x2A4F 'doubleSquareCap' Middle SymbolMid diff --git a/packages/font-glyphs/src/symbol/punctuation/brackets.ptl b/packages/font-glyphs/src/symbol/punctuation/brackets.ptl index 21ecd41479..7cc5411d15 100644 --- a/packages/font-glyphs/src/symbol/punctuation/brackets.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/brackets.ptl @@ -441,6 +441,10 @@ glyph-block Symbol-Punctuation-Brackets : begin widths.rhs sw flat inside ParenBot curl (outside + O) SymbolMid [widths.heading 0 (sw * fatten) Upward] + define [AngleLeftShapeMask outside inside sw] : spiro-outline + corner inside ParenTop + corner (outside + O) SymbolMid + corner inside ParenBot create-glyph 'angleLeft' 0x2329 : glyph-proc define dim : Paren.Dim [DivFrame 1] (delta -- 0) @@ -454,6 +458,19 @@ glyph-block Symbol-Punctuation-Brackets : begin include : AngleLeftShape farOutside middle fine include : AngleLeftShape middle dim.inside fine + create-glyph 'zNotationAngleLeft' 0x2989 : glyph-proc + local df : DivFrame 1 + local fine : AdviceStroke 4 + local dim : Paren.Dim df 0 (sw -- fine) + include : intersection + Rect [mix ParenBot ParenTop 2] [mix ParenTop ParenBot 2] 0 dim.inside + union + AngleLeftShape dim.outside dim.inside fine + intersection + VBar.r dim.inside dim.bottom dim.top fine + AngleLeftShapeMask dim.outside dim.inside fine + + turned 'zNotationAngleRight' 0x298A 'zNotationAngleLeft' Middle SymbolMid turned 'angleRight' 0x232A 'angleLeft' Middle SymbolMid turned 'dblAngleRight' 0x27EB 'dblAngleLeft' Middle SymbolMid alias 'mathAngleLeft' 0x27E8 'angleLeft' From d030b12e7b421c4603ae57def0b75d7aea317d0f Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Tue, 10 Dec 2024 00:28:34 -0500 Subject: [PATCH 02/10] Draft: Add new diversity classification `diversityMM` for composite characters and similar. (#2611) * Add new diversity classification `diversityMM`. * Optimize/harmonize glyphs for iotated letters. * Bump version. * Doc. * Make diversity of `W`/`w` variant-dependent. * Cleanup. * Revert change to Greek omega, keep code cleanup. * Revert changes to Cyrillic Zhe. * Make lowercase rounded `w` match Greek omega. * Harmonize other omega shapes. * Revert Cyrillic Capital Ef and (unsplit) lower ef. --- changes/32.2.1.md | 26 ---- changes/32.3.0.md | 113 ++++++++++++++++++ .../font-glyphs/src/auto-build/composite.ptl | 10 +- .../src/auto-build/recursive-build.ptl | 6 +- .../src/auto-build/transformed.ptl | 5 +- .../src/letter-like/fraktur/common.ptl | 4 +- .../src/letter/armenian/lower-u-group.ptl | 14 +-- .../src/letter/armenian/upper-xeh.ptl | 2 +- .../font-glyphs/src/letter/cyrillic/che.ptl | 4 +- .../font-glyphs/src/letter/cyrillic/de.ptl | 12 +- .../src/letter/cyrillic/dzzhe-zhwe.ptl | 20 ++-- .../font-glyphs/src/letter/cyrillic/e.ptl | 15 ++- .../font-glyphs/src/letter/cyrillic/el.ptl | 8 +- .../src/letter/cyrillic/iotified-a.ptl | 38 ++++-- .../font-glyphs/src/letter/cyrillic/lje.ptl | 4 +- .../src/letter/cyrillic/multiocular-o.ptl | 2 +- .../font-glyphs/src/letter/cyrillic/nje.ptl | 8 +- .../font-glyphs/src/letter/cyrillic/omega.ptl | 2 +- .../font-glyphs/src/letter/cyrillic/sha.ptl | 20 ++-- .../font-glyphs/src/letter/cyrillic/yat.ptl | 4 +- .../font-glyphs/src/letter/cyrillic/yeri.ptl | 6 +- .../font-glyphs/src/letter/cyrillic/yu.ptl | 26 ++-- .../src/letter/greek/lower-epsilon.ptl | 4 +- .../src/letter/greek/lower-omega.ptl | 10 +- packages/font-glyphs/src/letter/greek/phi.ptl | 10 +- packages/font-glyphs/src/letter/greek/pi.ptl | 4 +- .../src/letter/latin-ext/archaic-m.ptl | 2 +- .../src/letter/latin-ext/flattened-open-a.ptl | 2 +- .../font-glyphs/src/letter/latin-ext/gha.ptl | 4 +- .../src/letter/latin-ext/hwair.ptl | 2 +- .../src/letter/latin-ext/lower-ae-oe.ptl | 42 +++---- .../src/letter/latin-ext/lower-db-qp.ptl | 4 +- .../src/letter/latin-ext/sakha-yat.ptl | 2 +- .../src/letter/latin-ext/upper-aa-ao.ptl | 10 +- .../src/letter/latin-ext/upper-ae-oe.ptl | 8 +- .../font-glyphs/src/letter/latin/lower-d.ptl | 2 +- .../font-glyphs/src/letter/latin/lower-e.ptl | 24 ++-- .../font-glyphs/src/letter/latin/lower-m.ptl | 24 ++-- .../font-glyphs/src/letter/latin/lower-n.ptl | 4 +- packages/font-glyphs/src/letter/latin/o.ptl | 6 +- .../font-glyphs/src/letter/latin/upper-h.ptl | 10 +- .../font-glyphs/src/letter/latin/upper-m.ptl | 2 +- packages/font-glyphs/src/letter/latin/w.ptl | 43 ++++--- packages/font-glyphs/src/marks/above.ptl | 2 +- packages/font-glyphs/src/marks/overlay.ptl | 6 +- .../src/meta/unicode-knowledge.ptl | 2 +- .../font-glyphs/src/symbol/counting-rod.ptl | 4 +- packages/font-glyphs/src/symbol/letter.ptl | 7 -- .../font-glyphs/src/symbol/math/logicals.ptl | 4 +- .../font-glyphs/src/symbol/math/relation.ptl | 8 +- .../font-glyphs/src/symbol/math/v-and-cup.ptl | 6 +- params/parameters.toml | 3 + 52 files changed, 365 insertions(+), 245 deletions(-) create mode 100644 changes/32.3.0.md diff --git a/changes/32.2.1.md b/changes/32.2.1.md index 7cb59b9539..b73f3165ce 100644 --- a/changes/32.2.1.md +++ b/changes/32.2.1.md @@ -13,29 +13,3 @@ - CYRILLIC SMALL LETTER TCHE (`U+A693`). - LATIN EPIGRAPHIC LETTER ARCHAIC M (`U+A7FF`). - MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER (`U+1E06C`). -* Add characters: - - DOUBLE INTERSECTION (`U+22D2`). - - DOUBLE UNION (`U+22D3`). - - LEFT OUTER JOIN (`U+27D5`). - - RIGHT OUTER JOIN (`U+27D6`). - - FULL OUTER JOIN (`U+27D7`). - - Z NOTATION LEFT BINDING BRACKET (`U+2989`). - - Z NOTATION RIGHT BINDING BRACKET (`U+298A`). - - TRIANGLE WITH DOT ABOVE (`U+29CA`). - - TRIANGLE WITH UNDERBAR (`U+29CB`). - - TRIANGLE WITH SERIFS AT BOTTOM (`U+29CD`). - - N-ARY TIMES OPERATOR (`U+2A09`). - - JOIN (`U+2A1D`). - - LARGE LEFT TRIANGLE OPERATOR (`U+2A1E`). - - CLOSED UNION WITH SERIFS (`U+2A4C`). - - CLOSED INTERSECTION WITH SERIFS (`U+2A4D`). - - DOUBLE SQUARE INTERSECTION (`U+2A4E`). - - DOUBLE SQUARE UNION (`U+2A4F`). - - SLOPING LARGE OR (`U+2A57`). - - SLOPING LARGE AND (`U+2A58`). - - LOGICAL AND WITH MIDDLE STEM (`U+2A5A`). - - LOGICAL OR WITH MIDDLE STEM (`U+2A5B`). - - Z NOTATION DOMAIN ANTIRESTRICTION (`U+2A64`). - - Z NOTATION RANGE ANTIRESTRICTION (`U+2A65`). - - SMALLER THAN (`U+2AAA`) ... LARGER THAN OR EQUAL TO (`U+2AAD`). - - CLOSED SUBSET (`U+2ACF`) ... CLOSED SUPERSET OR EQUAL TO (`U+2AD2`). diff --git a/changes/32.3.0.md b/changes/32.3.0.md new file mode 100644 index 0000000000..6db09e4f96 --- /dev/null +++ b/changes/32.3.0.md @@ -0,0 +1,113 @@ +* Make certain M-width characters slightly wider under Quasi-Proportional. Affected characters: + - LATIN CAPITAL LETTER W (`U+0057`). + - LATIN SMALL LETTER M (`U+006D`). + - LATIN SMALL LETTER W (`U+0077`). + - LATIN CAPITAL LETTER AE (`U+00C6`). + - LATIN SMALL LETTER AE (`U+00E6`). + - LATIN CAPITAL LIGATURE OE (`U+0152`) ... LATIN SMALL LIGATURE OE (`U+0153`). + - LATIN CAPITAL LETTER W WITH CIRCUMFLEX (`U+0174`) ... LATIN SMALL LETTER W WITH CIRCUMFLEX (`U+0175`). + - LATIN SMALL LETTER HV (`U+0195`). + - LATIN CAPITAL LETTER TURNED M (`U+019C`). + - LATIN CAPITAL LETTER GHA (`U+01A2`) ... LATIN SMALL LETTER GHA (`U+01A3`). + - LATIN CAPITAL LETTER AE WITH MACRON (`U+01E2`) ... LATIN SMALL LETTER AE WITH MACRON (`U+01E3`). + - LATIN CAPITAL LETTER HWAIR (`U+01F6`). + - LATIN CAPITAL LETTER AE WITH ACUTE (`U+01FC`) ... LATIN SMALL LETTER AE WITH ACUTE (`U+01FD`). + - LATIN SMALL LETTER DB DIGRAPH (`U+0238`) ... LATIN SMALL LETTER QP DIGRAPH (`U+0239`). + - LATIN SMALL LETTER TURNED M (`U+026F`) ... LATIN SMALL LETTER M WITH HOOK (`U+0271`). + - LATIN SMALL LETTER TURNED W (`U+028D`). + - LATIN SMALL LETTER DZ DIGRAPH (`U+02A3`) ... LATIN SMALL LETTER LZ DIGRAPH (`U+02AB`). + - MODIFIER LETTER SMALL W (`U+02B7`). + - CYRILLIC CAPITAL LETTER LJE (`U+0409`) ... CYRILLIC CAPITAL LETTER NJE (`U+040A`). + - CYRILLIC CAPITAL LETTER SHA (`U+0428`) ... CYRILLIC CAPITAL LETTER SHCHA (`U+0429`). + - CYRILLIC SMALL LETTER EF (`U+0444`). + - CYRILLIC SMALL LETTER SHA (`U+0448`) ... CYRILLIC SMALL LETTER SHCHA (`U+0449`). + - CYRILLIC SMALL LETTER LJE (`U+0459`) ... CYRILLIC SMALL LETTER NJE (`U+045A`). + - CYRILLIC CAPITAL LETTER OMEGA (`U+0460`). + - CYRILLIC CAPITAL LETTER OMEGA WITH TITLO (`U+047C`). + - CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK (`U+04A6`) ... CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK (`U+04A7`). + - CYRILLIC CAPITAL LIGATURE A IE (`U+04D4`) ... CYRILLIC SMALL LIGATURE A IE (`U+04D5`). + - CYRILLIC CAPITAL LETTER KOMI DJE (`U+0502`) ... CYRILLIC SMALL LETTER KOMI ZJE (`U+0505`). + - CYRILLIC CAPITAL LETTER KOMI LJE (`U+0508`) ... CYRILLIC SMALL LETTER KOMI NJE (`U+050B`). + - CYRILLIC CAPITAL LETTER YAE (`U+0518`) ... CYRILLIC SMALL LETTER YAE (`U+0519`). + - CYRILLIC CAPITAL LETTER WE (`U+051C`) ... CYRILLIC SMALL LETTER WE (`U+051D`). + - CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK (`U+0520`) ... CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK (`U+0523`). + - CYRILLIC CAPITAL LETTER DZZHE (`U+052A`) ... CYRILLIC SMALL LETTER DZZHE (`U+052B`). + - ARMENIAN CAPITAL LETTER XEH (`U+053D`). + - ARMENIAN SMALL LETTER TURNED AYB (`U+0560`) ... ARMENIAN SMALL LETTER AYB (`U+0561`). + - ARMENIAN SMALL LETTER XEH (`U+056D`). + - ARMENIAN SMALL LETTER PEH (`U+057A`). + - ARMENIAN SMALL LETTER TIWN (`U+057F`). + - ARMENIAN SMALL LETTER PIWR (`U+0583`). + - ARMENIAN SMALL LIGATURE ECH YIWN (`U+0587`). + - CYRILLIC SMALL LETTER THREE-LEGGED TE (`U+1C85`). + - LATIN SMALL LETTER TURNED AE (`U+1D02`). + - LATIN SMALL LETTER TURNED OE (`U+1D14`). + - MODIFIER LETTER CAPITAL AE (`U+1D2D`). + - MODIFIER LETTER CAPITAL W (`U+1D42`). + - MODIFIER LETTER SMALL TURNED AE (`U+1D46`). + - MODIFIER LETTER SMALL M (`U+1D50`). + - MODIFIER LETTER SMALL TURNED M (`U+015A`). + - LATIN SMALL LETTER UE (`U+016B`). + - LATIN SMALL LETTER M WITH MIDDLE TILDE (`U+1D6F`). + - LATIN SMALL LETTER M WITH PALATAL HOOK (`U+1D86`). + - MODIFIER LETTER SMALL M WITH HOOK (`U+1DAC`) ... MODIFIER LETTER SMALL TURNED M WITH LONG LEG (`U+1DAD`). + - LATIN SMALL LETTER M WITH ACUTE (`U+1E3F`). + - LATIN SMALL LETTER M WITH DOT ABOVE (`U+1E41`). + - LATIN SMALL LETTER M WITH DOT BELOW (`U+1E43`). + - LATIN CAPITAL LETTER W WITH GRAVE (`U+1E80`) ... LATIN SMALL LETTER W WITH DOT BELOW (`U+1E89`). + - LATIN SMALL LETTER W WITH RING ABOVE (`U+1E98`). + - LATIN SUBSCRIPT SMALL LETTER M (`U+2098`). + - MILL SIGN (`U+20A5`). + - WON SIGN (`U+20A9`). + - SMALL ROMAN NUMERAL ONE THOUSAND (`U+217F`) ... ROMAN NUMERAL ONE THOUSAND C D (`U+2180`). + - ROMAN NUMERAL TEN THOUSAND (`U+2182`). + - ROMAN NUMERAL ONE HUNDRED THOUSAND (`U+2188`). + - VERY MUCH LESS-THAN (`U+22D8`) ... VERY MUCH GREATER-THAN (`U+22D9`). + - LEFT AND RIGHT DOUBLE TURNSTILE (`U+27DA`) ... LEFT AND RIGHT TACK (`U+27DB`). + - SHUFFLE PRODUCT (`U+29E2`). + - LATIN CAPITAL LETTER W WITH HOOK (`U+2C72`) ... LATIN SMALL LETTER W WITH HOOK (`U+2C73`). + - CYRILLIC CAPITAL LETTER BROAD OMEGA (`U+A64C`). + - CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O (`U+A66C`) ... CYRILLIC LETTER MULTIOCULAR O (`U+A66E`). + - CYRILLIC CAPITAL LETTER ZHWE (`U+A684`) ... CYRILLIC SMALL LETTER CCHE (`U+A687`). + - CYRILLIC CAPITAL LETTER DOUBLE O (`U+A698`) ... CYRILLIC SMALL LETTER DOUBLE O (`U+A699`). + - LATIN CAPITAL LETTER AA (`U+A732`) ... LATIN SMALL LETTER AU (`U+A737`). + - LATIN CAPITAL LETTER OO (`U+A74E`) ... LATIN SMALL LETTER OO (`U+A74F`). + - LATIN CAPITAL LETTER OMEGA (`U+A7B6`). + - MODIFIER LETTER SMALL LIGATURE OE (`U+A7F9`) ... LATIN SMALL CAPITAL LETTER TURNED M (`U+A7FA`). + - LATIN EPIGRAPHIC LETTER ARCHAIC M (`U+A7FF`). + - LATIN SMALL LETTER A REVERSED SCHWA (`U+AB31`). + - LATIN SMALL LETTER M WITH CROSSED-TAIL (`U+AB3A`). + - LATIN SMALL LETTER INVERTED OE (`U+AB40`) ... LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE (`U+AB42`). + - LATIN SMALL LETTER SAKHA YAT (`U+AB60`). + - LATIN SMALL LETTER UO (`U+AB63`). + - LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX HOOK (`U+AB66`) ... LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK (`U+AB67`). + - MODIFIER LETTER TURNED W (`U+AB69`). + - LATIN SMALL LIGATURE FFI (`U+FB03`) ... LATIN SMALL LIGATURE ST (`U+FB06`). + - MODIFIER LETTER SMALL AE (`U+10783`). + - LATIN SMALL LETTER DEZH DIGRAPH WITH PALATAL HOOK (`U+1DF12`). + - LATIN SMALL LETTER TESH DIGRAPH WITH PALATAL HOOK (`U+1DF17`). + - MODIFIER LETTER CYRILLIC SMALL EF (`U+1E042`). + - MODIFIER LETTER CYRILLIC SMALL SHA (`U+1E046`). + - CYRILLIC SUBSCRIPT SMALL LETTER EF (`U+1E060`). + - CYRILLIC SUBSCRIPT SMALL LETTER SHA (`U+1E064`). +* Add characters: + - DOUBLE INTERSECTION (`U+22D2`). + - DOUBLE UNION (`U+22D3`). + - LEFT OUTER JOIN (`U+27D5`) ... FULL OUTER JOIN (`U+27D7`). + - Z NOTATION LEFT BINDING BRACKET (`U+2989`). + - Z NOTATION RIGHT BINDING BRACKET (`U+298A`). + - TRIANGLE WITH DOT ABOVE (`U+29CA`). + - TRIANGLE WITH UNDERBAR (`U+29CB`). + - TRIANGLE WITH SERIFS AT BOTTOM (`U+29CD`). + - N-ARY TIMES OPERATOR (`U+2A09`). + - JOIN (`U+2A1D`). + - LARGE LEFT TRIANGLE OPERATOR (`U+2A1E`). + - CLOSED UNION WITH SERIFS (`U+2A4C`) ... DOUBLE SQUARE UNION (`U+2A4F`). + - SLOPING LARGE OR (`U+2A57`). + - SLOPING LARGE AND (`U+2A58`). + - LOGICAL AND WITH MIDDLE STEM (`U+2A5A`). + - LOGICAL OR WITH MIDDLE STEM (`U+2A5B`). + - Z NOTATION DOMAIN ANTIRESTRICTION (`U+2A64`). + - Z NOTATION RANGE ANTIRESTRICTION (`U+2A65`). + - SMALLER THAN (`U+2AAA`) ... LARGER THAN OR EQUAL TO (`U+2AAD`). + - CLOSED SUBSET (`U+2ACF`) ... CLOSED SUPERSET OR EQUAL TO (`U+2AD2`). diff --git a/packages/font-glyphs/src/auto-build/composite.ptl b/packages/font-glyphs/src/auto-build/composite.ptl index b89353e378..f6168d383b 100644 --- a/packages/font-glyphs/src/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -1348,7 +1348,7 @@ glyph-block Autobuild-Ligatures : begin define [createLigatures prefix _shrink1 _shrinkN wadj1 wadjN kKern demands] : for-width-kinds WideWidth2 local plainLigature : FMosaicWide && para.isQuasiProportional - local ww : if FMosaicWide MosaicWidth (MosaicWidth * para.diversityM) + local ww : if FMosaicWide MosaicWidth (MosaicWidth * para.diversityMM) local jobs : CollectJobs DECOMPOSABLE NOT-CENTERED ALLOW-PROPORTIONAL prefix MosaicNameSuffix demands local shrink1 : if plainLigature 1 [clamp 0 1 (_shrink1 * [mix Width ww 0.5] / Width)] local shrinkN : if plainLigature 1 [clamp 0 1 (_shrinkN * [mix Width ww 0.5] / Width)] @@ -1623,7 +1623,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin list 0xFB01 { 'f/compLigLeft1' 'dotlessi/compLigRight' } null list 0xFB02 { 'f/compLigLeft2' 'l/compLigRight' } null - createPhoneticLigatures ToLetter 'phonetic2' para.diversityM 2 stdShrink 1 : list + createPhoneticLigatures ToLetter 'phonetic2' para.diversityMM 2 stdShrink 1 : list list 0x02A3 { 'd/phoneticLeft' 'z/phoneticRight' } 'b' list 0x02A4 { 'd/phoneticLeft' 'ezh/phoneticRight' } 'bp' list 0x02A5 { 'd/phoneticLeft' 'zCurlyTail/phoneticRight' } 'b' @@ -1640,11 +1640,11 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin list 0xFB05 { 'longs/flatExt' 't/phoneticRight' } null list 0xFB06 { 's/compLigLeft' 't/phoneticRight' } null - createPhoneticLigatures ToLetter 'phonetic3' para.diversityM 3 stdShrink 1 : list + createPhoneticLigatures ToLetter 'phonetic3' para.diversityMM 3 stdShrink 1 : list list 0xFB03 { 'f/compLigLeft1' 'f/compLigLeft1' 'dotlessi/compLigRight' } null list 0xFB04 { 'f/compLigLeft3' 'f/compLigLeft2' 'l/compLigRight' } null - createPhoneticLigatures ToLetter 'phoneticSmcp' [mix 1 para.diversityM 1.5] 3 1 0.5 : list + createPhoneticLigatures ToLetter 'phoneticSmcp' para.diversityMM 3 1 0.5 : list list 0x2121 { 'smcpT' 'smcpE' 'smcpL' } 'e' list 0x213B { 'smcpF' 'smcpA' 'smcpX' } 'e' @@ -1705,7 +1705,7 @@ glyph-block Autobuild-Double-Emotions : begin applyRelations jobs.relApplications define stdShrink : clamp 0.625 0.9 : StrokeWidthBlend 0.625 0.9 - createDoubleEmotions 'doubleemotion' para.diversityM stdShrink stdShrink 1 1 : list + createDoubleEmotions 'doubleemotion' para.diversityMM stdShrink stdShrink 1 1 : list list 0x203c { 'exclam' 'zwsp' 'exclam' 'zwsp' } list 0x2047 { 'question/hookPart' 'question/dotPart' 'question/hookPart' 'question/dotPart' } list 0x2048 { 'question/hookPart' 'question/dotPart' 'exclam' 'zwsp' } diff --git a/packages/font-glyphs/src/auto-build/recursive-build.ptl b/packages/font-glyphs/src/auto-build/recursive-build.ptl index e98a269974..77a2a237f8 100644 --- a/packages/font-glyphs/src/auto-build/recursive-build.ptl +++ b/packages/font-glyphs/src/auto-build/recursive-build.ptl @@ -23,6 +23,7 @@ glyph-block Recursive-Build : begin if forceUpright : begin forkedPara.slopeAngle = 0 if mono : begin + forkedPara.diversityMM = 1 forkedPara.diversityM = 1 forkedPara.diversityT = 1 if mono2 : begin @@ -48,8 +49,9 @@ glyph-block Recursive-Build : begin forkedPara.accentWidth = AccentWidth * p forkedPara.jut = Jut * p forkedPara.longjut = LongJut * p - forkedPara.diversityM = 1 - forkedPara.diversityT = 1 + forkedPara.diversityMM = 1 + forkedPara.diversityM = 1 + forkedPara.diversityT = 1 if fMono : begin forkedPara.diversityF = 1 forkedPara.diversityI = 1 diff --git a/packages/font-glyphs/src/auto-build/transformed.ptl b/packages/font-glyphs/src/auto-build/transformed.ptl index c671c0b7b7..a771eee8aa 100644 --- a/packages/font-glyphs/src/auto-build/transformed.ptl +++ b/packages/font-glyphs/src/auto-build/transformed.ptl @@ -295,8 +295,9 @@ glyph-block Autobuild-Transformed-Texture : begin local forkedPara : Object.assign {.} para if (extL + extR > 0) : then : begin - forkedPara.diversityM = 1 + extL + extR - forkedPara.diversityT = 1 + extL + extR + forkedPara.diversityMM = 1 + extL + extR + forkedPara.diversityM = 1 + extL + extR + forkedPara.diversityT = 1 + extL + extR : else : begin forkedPara.diversityF = 1 + extL + extR forkedPara.diversityI = 1 + extL + extR diff --git a/packages/font-glyphs/src/letter-like/fraktur/common.ptl b/packages/font-glyphs/src/letter-like/fraktur/common.ptl index 9b8dce2d25..412c37bdb1 100644 --- a/packages/font-glyphs/src/letter-like/fraktur/common.ptl +++ b/packages/font-glyphs/src/letter-like/fraktur/common.ptl @@ -75,9 +75,9 @@ glyph-block LetterLike-Fraktur-Common : begin public [new thick thin] : begin this.fixed = false # .thick is the half length of the flat tip, projected to the X/Y axis - this.thick = 0.25 * [Math.sqrt 2] * thick + this.thick = 0.25 * Math.SQRT2 * thick # .thin is the half width of the thin tip, projected to the X/Y axis - this.thin = 0.25 * [Math.sqrt 2] * thin + this.thin = 0.25 * Math.SQRT2 * thin public [getPenShape gizmo] : begin local thickTf : gizmo.applyOffsetXY this.thick this.thick diff --git a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl index b9be9789f3..6173a86c30 100644 --- a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl @@ -20,7 +20,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "Turned Ayb" create-glyph 'armn/aybTurned' 0x560 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : SmallMArches df XH 0 0 0 if SLAB : begin @@ -33,7 +33,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "Ayb" create-glyph 'armn/ayb' 0x561 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : SmallMArches df XH 0 0 0 include : FlipAround df.middle (XH / 2) @@ -131,7 +131,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "Xeh" create-glyph 'armn/xeh' 0x56D : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.bp include : uBowl.shape top -- (XH / 2) @@ -261,7 +261,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "Peh" create-glyph 'armn/peh' 0x57A : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.p include : SmallMArches df XH 0 0 0 include : FlipAround df.middle (XH / 2) @@ -342,7 +342,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "Tiun" create-glyph 'armn/tiun' 0x57F : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : uBowl.shape top -- XH @@ -382,7 +382,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "P'iur" create-glyph 'armn/piur' 0x583 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.bp include : uBowl.shape top -- XH @@ -407,7 +407,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "Ew" create-glyph 'armn/ew' 0x587 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.b include : uBowl.shape top -- Ascender diff --git a/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl b/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl index f8d1720655..3fdb2ed67e 100644 --- a/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl +++ b/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl @@ -14,7 +14,7 @@ glyph-block Letter-Armenian-Upper-Xeh : begin do "Xeh" create-glyph 'armn/Xeh' 0x53D : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 local { subDf shift } : SubDfAndShift 1 df include : df.markSet.capital include : VBar.l df.leftSB 0 CAP df.mvs diff --git a/packages/font-glyphs/src/letter/cyrillic/che.ptl b/packages/font-glyphs/src/letter/cyrillic/che.ptl index bb41a95c14..5d43638bd9 100644 --- a/packages/font-glyphs/src/letter/cyrillic/che.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/che.ptl @@ -154,7 +154,7 @@ glyph-block Letter-Cyrillic-Che : begin CyrDescender.lSideJut (RightSB - [HSwToV Stroke]) 0 (jut -- MidJutSide) create-glyph 'cyrl/Cche' 0xA686 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital include : LeaningAnchor.Below.VBar.r df.rightSB include : CyrCcheShape df CAP [if SLAB 0.45 0.35] BODY.STRAIGHT @@ -194,7 +194,7 @@ glyph-block Letter-Cyrillic-Che : begin if SLAB [if para.isItalic slabItalic slabUprightBGR] SERIFS.NONE create-glyph "cyrl/cche.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : LeaningAnchor.Below.VBar.r df.rightSB include : CyrCcheShape df XH [if SLAB 0.45 0.4] body diff --git a/packages/font-glyphs/src/letter/cyrillic/de.ptl b/packages/font-glyphs/src/letter/cyrillic/de.ptl index de9677126f..ffb86bab7d 100644 --- a/packages/font-glyphs/src/letter/cyrillic/de.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/de.ptl @@ -56,7 +56,7 @@ glyph-block Letter-Cyrillic-De : begin return : object desc xTopLeft xTopRight - define [CyrSoftDeShape top df _sw vSlab] : glyph-proc + define [CyrSoftDeShape df top _sw vSlab] : glyph-proc local descenderOverflow : if SLAB SideJut ((df.rightSB - df.leftSB) * 0.075) local sw : fallback _sw Stroke local xm : if SLAB @@ -91,13 +91,13 @@ glyph-block Letter-Cyrillic-De : begin local df : include : DivFrame para.diversityM 3 include : df.markSet.capital include : ExtendBelowBaseAnchors BottomExtension - include : CyrSoftDeShape CAP df df.mvs false + include : CyrSoftDeShape df CAP df.mvs false create-glyph 'cyrl/DeSoft.topRightSerifed' : glyph-proc local df : include : DivFrame para.diversityM 3 include : df.markSet.capital include : ExtendBelowBaseAnchors BottomExtension - include : CyrSoftDeShape CAP df df.mvs true + include : CyrSoftDeShape df CAP df.mvs true select-variant 'cyrl/DeSoft' 0xA662 (follow -- 'cyrl/EnGhe/GhePart') @@ -105,13 +105,13 @@ glyph-block Letter-Cyrillic-De : begin local df : include : DivFrame para.diversityM 3 include : df.markSet.e include : ExtendBelowBaseAnchors BottomExtension - include : CyrSoftDeShape XH df df.mvs false + include : CyrSoftDeShape df XH df.mvs false create-glyph 'cyrl/deSoft.topRightSerifed' : glyph-proc local df : include : DivFrame para.diversityM 3 include : df.markSet.e include : ExtendBelowBaseAnchors BottomExtension - include : CyrSoftDeShape XH df df.mvs true + include : CyrSoftDeShape df XH df.mvs true select-variant 'cyrl/deSoft' 0xA663 (follow -- 'cyrl/enghe/ghePart') @@ -175,7 +175,7 @@ glyph-block Letter-Cyrillic-De : begin foreach { suffix { st sb }} [Object.entries EpsilonConfig] : do create-glyph "cyrl/dzze.italic.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.bp local dfLeft : df.slice 3 2 OX diff --git a/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl b/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl index d23bf2fc4e..9a573765d7 100644 --- a/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl @@ -31,21 +31,21 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin include : CyrDeItalicShapeT dispiro subDf sw create-glyph "cyrl/Dzzhe/left" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 + define df : include : DivFrame (para.diversityM ** 2) 3.5 include : df.markSet.capital include : ExtendBelowBaseAnchors (-LongVJut + HalfStroke) set-base-anchor 'cvDecompose' 0 0 include : CyrDzzheDeShape df CAP create-glyph "cyrl/dzzhe.upright/left" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 + define df : include : DivFrame (para.diversityM ** 2) 3.5 include : df.markSet.e include : ExtendBelowBaseAnchors (-LongVJut + HalfStroke) set-base-anchor 'cvDecompose' 0 0 include : CyrDzzheDeShape df XH create-glyph "cyrl/dzzhe.italic/left" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 + define df : include : DivFrame (para.diversityM ** 2) 3.5 include : df.markSet.b set-base-anchor 'cvDecompose' 0 0 include : CyrDzzheDeItalicShape df @@ -65,13 +65,13 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin foreach { suffix { slabTop slabBot } } [Object.entries EpsilonConfig] : do create-glyph "cyrl/Zhwe/left.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 + define df : include : DivFrame (para.diversityM ** 2) 3.5 include : df.markSet.capital set-base-anchor 'cvDecompose' 0 0 include : CyrZhweZeShape slabTop slabBot df CAP Hook create-glyph "cyrl/zhwe/left.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 + define df : include : DivFrame (para.diversityM ** 2) 3.5 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : CyrZhweZeShape slabTop slabBot df XH SHook @@ -115,28 +115,28 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin foreach { suffix { legShape fSlab fMidSlab } } [Object.entries ZheConfig] : do create-glyph "cyrl/Dzzhe/right.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 + define df : include : DivFrame (para.diversityM ** 2) 3.5 include : df.markSet.capital include : CyrRightZheShape legShape fSlab fMidSlab df CAP : DzzheLeft df create-glyph "cyrl/dzzhe.upright/right.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 + define df : include : DivFrame (para.diversityM ** 2) 3.5 include : df.markSet.e include : CyrRightZheShape legShape fSlab fMidSlab df XH : DzzheLeft df create-glyph "cyrl/dzzhe.italic/right.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 + define df : include : DivFrame (para.diversityM ** 2) 3.5 include : df.markSet.e include : DzzheZheItalicShape legShape fSlab fMidSlab df XH create-glyph "cyrl/Zhwe/right.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 + define df : include : DivFrame (para.diversityM ** 2) 3.5 include : df.markSet.capital set-base-anchor 'cvDecompose' 0 0 include : ZhweZheShape legShape fSlab fMidSlab df CAP Hook create-glyph "cyrl/zhwe/right.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 + define df : include : DivFrame (para.diversityM ** 2) 3.5 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : ZhweZheShape legShape fSlab fMidSlab df XH SHook diff --git a/packages/font-glyphs/src/letter/cyrillic/e.ptl b/packages/font-glyphs/src/letter/cyrillic/e.ptl index 4f3ccc785b..f5d2a0bbe0 100644 --- a/packages/font-glyphs/src/letter/cyrillic/e.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/e.ptl @@ -42,17 +42,20 @@ glyph-block Letter-Cyrillic-E : begin include : HBar.m SB [mix RightSB SB 0.35] (XH / 2) [AdviceStroke2 2 3 XH] define [IotifiedEShape fCapital df top ada adb] : glyph-proc - local gap : 0.25 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) + local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) - [HSwToV : 0.25 * df.mvs] define divSub : (df.width - gap - df.mvs) / Width define dfSub : DivFrame divSub 2 - local lf : CLetterForm dfSub sty styBot top 0 (ada -- ada) (adb -- adb) (sw -- df.mvs) + local lf : CLetterForm dfSub sty styBot top 0 + ada -- (ada * 0.7 * df.div) + adb -- (adb * 0.7 * df.div) + sw -- df.mvs include : with-transform [ApparentTranslate (Width * (df.div - divSub)) 0] : lf.full include : Iotified.full df top hBarRight -- [mix df.leftSB df.rightSB (3 / 4)] - hBarY -- (top / 2) - fCapital -- fCapital + hBarY -- (top / 2) + fCapital -- fCapital create-glyph "cyrl/EIotified.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityM 3 @@ -64,8 +67,8 @@ glyph-block Letter-Cyrillic-E : begin include : df.markSet.e include : IotifiedEShape false df XH SmallArchDepthA SmallArchDepthB - select-variant 'cyrl/E' 0x42D - select-variant 'cyrl/e' 0x44D + select-variant 'cyrl/E' 0x42D + select-variant 'cyrl/e' 0x44D select-variant 'cyrl/Ye' 0x404 select-variant 'cyrl/ye' 0x454 select-variant "cyrl/EIotified" 0x464 (follow -- 'cyrl/Ye') diff --git a/packages/font-glyphs/src/letter/cyrillic/el.ptl b/packages/font-glyphs/src/letter/cyrillic/el.ptl index 2195f7fdf8..e4ea8a443a 100644 --- a/packages/font-glyphs/src/letter/cyrillic/el.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/el.ptl @@ -75,7 +75,7 @@ glyph-block Letter-Cyrillic-El : begin include : CyrElShape SB RightSB XH BODY-STRAIGHT : if SLAB SLAB-ALL SLAB-NONE create-glyph 'cyrl/ElMidHook' 0x520 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capDesc local xm : df.middle + [HSwToV : 0.5 * df.mvs] @@ -108,7 +108,7 @@ glyph-block Letter-Cyrillic-El : begin include : CyrElShape SB RightSB XH body : if SLAB [if para.isItalic slabItalic slabUpright] SLAB-NONE create-glyph "cyrl/elMidHook.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.p local xm : df.middle + [HSwToV : 0.5 * df.mvs] @@ -142,7 +142,7 @@ glyph-block Letter-Cyrillic-El : begin derive-composites 'cyrl/elHook' 0x513 'cyrl/el.straight' [PalatalHook.rSideJut RightSB 0] create-glyph 'cyrl/LjeKomi' 0x508 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital local xm : df.middle + [HSwToV : 0.5 * df.mvs] @@ -159,7 +159,7 @@ glyph-block Letter-Cyrillic-El : begin if SLAB : include sf2.rt.full create-glyph 'cyrl/ljeKomi' 0x509 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e local xm : df.middle + [HSwToV : 0.5 * df.mvs] diff --git a/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl b/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl index 46e4939f63..3111faa33a 100644 --- a/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl @@ -9,7 +9,6 @@ glyph-block Letter-Cyrillic-Iotified-A : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Letter-Shared-Shapes : SerifFrame RightwardTailedBar - glyph-block-import Letter-Latin-Lower-AE-OE : SubDfAndShift define SLAB-NONE 0 define SLAB-FULL 1 @@ -134,20 +133,31 @@ glyph-block Letter-Cyrillic-Iotified-A : begin define df : include : DivFrame para.diversityM 3 include : df.markSet.e - local { subDf shift } : SubDfAndShift 1 df - include : with-transform [ApparentTranslate shift 0] [body subDf hookStyle df.mvs] + local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) - [HSwToV : 0.25 * df.mvs] + local divSub : (df.width - gap - df.mvs) / Width + local subDf : DivFrame divSub 2 + + local shift : Width * (df.div - divSub) + include : with-transform [ApparentTranslate shift 0] + body subDf hookStyle df.mvs include : difference Iotified.full df XH [mix df.leftSB df.rightSB (3 / 4)] (XH / 2) - with-transform [ApparentTranslate shift 0] [DoubleStorey.GetMask body df df.mvs] + with-transform [ApparentTranslate shift 0] + DoubleStorey.GetMask body df df.mvs foreach { suffix { body bar } } [Object.entries SingleStoreyConfig] : do create-glyph "cyrl/aIotified.\(suffix)" : glyph-proc define df : include : DivFrame para.diversityM 3 include : df.markSet.e - local { subDf shift } : SubDfAndShift 1 df - include : with-transform [ApparentTranslate shift 0] [body subDf XH bar df.mvs] + local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) - [HSwToV : 0.25 * df.mvs] + local divSub : (df.width - gap - df.mvs) / Width + local subDf : DivFrame divSub 2 + + local shift : Width * (df.div - divSub) + include : with-transform [ApparentTranslate shift 0] + body subDf XH bar df.mvs include : Iotified.full df XH (shift + subDf.leftSB + [HSwToV : 0.5 * df.mvs]) (XH / 2) @@ -165,12 +175,18 @@ glyph-block Letter-Cyrillic-Iotified-A : begin define df : include : DivFrame para.diversityM 3 include : df.markSet.e - local { subDf shift } : SubDfAndShift 1 df OX - local ada : subDf.archDepthA SmallArchDepth df.mvs - local adb : subDf.archDepthB SmallArchDepth df.mvs - include : with-transform [ApparentTranslate shift 0] [body subDf XH (stroke -- df.mvs) (ada -- ada) (adb -- adb)] + local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) - [HSwToV : 0.25 * df.mvs] + local divSub : (df.width - gap - df.mvs) / Width + local subDf : DivFrame divSub 2 - include : Iotified.full df XH df.middle (XH / 2) + local shift : Width * (df.div - divSub) + include : with-transform [ApparentTranslate shift 0] + body subDf XH + stroke -- df.mvs + ada -- (SmallArchDepthA * 0.7 * df.div) + adb -- (SmallArchDepthB * 0.7 * df.div) + + include : Iotified.full df XH (shift + subDf.leftSB + [HSwToV : 0.5 * df.mvs]) (XH / 2) select-variant 'cyrl/AIotified' 0xA656 (follow -- 'A') select-variant 'cyrl/aIotified' 0xA657 (follow -- 'cyrl/a') diff --git a/packages/font-glyphs/src/letter/cyrillic/lje.ptl b/packages/font-glyphs/src/letter/cyrillic/lje.ptl index 3e34858084..e8bd2e8415 100644 --- a/packages/font-glyphs/src/letter/cyrillic/lje.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/lje.ptl @@ -34,12 +34,12 @@ glyph-block Letter-Cyrillic-Lje : begin foreach { suffix { Uc Lc } } [Object.entries YeriConfig] : do create-glyph "cyrl/Lje.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital include : CyrLjeShape Uc df CAP create-glyph "cyrl/lje.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : CyrLjeShape Lc df XH diff --git a/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl b/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl index bb5443f25c..319ec4b462 100644 --- a/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl @@ -13,7 +13,7 @@ glyph-block Letter-Cyrillic-Multiocular-O : begin foreach { suffix { DrawAt kdr } } [Object.entries DotVariants] : do create-glyph "cyrl/multiocularO.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 6 + local df : include : DivFrame para.diversityMM 6 include : df.markSet.bp local subDf : df.slice 5 2 diff --git a/packages/font-glyphs/src/letter/cyrillic/nje.ptl b/packages/font-glyphs/src/letter/cyrillic/nje.ptl index a0dde561b2..4c74a63ba4 100644 --- a/packages/font-glyphs/src/letter/cyrillic/nje.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/nje.ptl @@ -55,24 +55,24 @@ glyph-block Letter-Cyrillic-Nje : begin foreach { suffix { slabType } } [Object.entries LeftHalfConfig] : do create-glyph "cyrl/Nje/leftHalf.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital include : LeftHalf slabType df CAP create-glyph "cyrl/nje/leftHalf.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : LeftHalf slabType df XH foreach { suffix { Uc Lc } } [Object.entries YeriConfig] : do create-glyph "cyrl/Nje/rightHalf.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital include : RightHalf Uc df CAP DependentSelector.set currentGlyph : if (suffix === "corner") 'full' 'reduced' create-glyph "cyrl/nje/rightHalf.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : RightHalf Lc df XH DependentSelector.set currentGlyph : if (suffix === "corner") 'full' 'reduced' diff --git a/packages/font-glyphs/src/letter/cyrillic/omega.ptl b/packages/font-glyphs/src/letter/cyrillic/omega.ptl index e429405634..f6e9d59f7c 100644 --- a/packages/font-glyphs/src/letter/cyrillic/omega.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/omega.ptl @@ -49,7 +49,7 @@ glyph-block Letter-Cyrillic-Omega : begin curl xMidBarCoLeft y4 [heading Upward] create-glyph 'cyrl/BroadOmega' 0xA64C : glyph-proc - define df : include : DivFrame para.diversityM 3 + define df : include : DivFrame para.diversityMM 3 include : [DivFrame df.div].markSet.capital include : CyrlOmegaShape df CAP 0.30 0.31 diff --git a/packages/font-glyphs/src/letter/cyrillic/sha.ptl b/packages/font-glyphs/src/letter/cyrillic/sha.ptl index 7c0d7300f0..d2f3e970d4 100644 --- a/packages/font-glyphs/src/letter/cyrillic/sha.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/sha.ptl @@ -10,7 +10,7 @@ glyph-block Letter-Cyrillic-Sha : begin glyph-block-import Letter-Shared-Shapes : RightwardTailedBar CyrDescender SerifFrame glyph-block-export CyrShaShape - define [CyrShaShape] : with-params [df top bot [fine Stroke] [doSerif false] [fInv false] [fCompact false]] : glyph-proc + define [CyrShaShape] : with-params [df top bot [fine Stroke] [doSerif false] [fInv false]] : glyph-proc local cofine : fine * df.mvs / Stroke include : union [if fInv HBar.t HBar.b] df.leftSB df.rightSB [if fInv top bot] fine @@ -23,36 +23,36 @@ glyph-block Letter-Cyrillic-Sha : begin if fInv : then : begin include : composite-proc sf.lt.outer sf.rt.outer - include : if (sf.enoughSpaceForFullSerifs && !fCompact) + include : if sf.enoughSpaceForFullSerifs composite-proc sf.lb.full sf.mb.full sf.rb.full composite-proc sf.lb.outer sf.rb.outer : else : begin include : composite-proc sf.lb.outer sf.rb.outer - include : if (sf.enoughSpaceForFullSerifs && !fCompact) + include : if sf.enoughSpaceForFullSerifs composite-proc sf.lt.full sf.mt.full sf.rt.full composite-proc sf.lt.outer sf.rt.outer create-glyph 'cyrl/Sha' 0x428 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital include : CyrShaShape df CAP 0 (doSerif -- SLAB) create-glyph 'cyrl/sha.upright' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : CyrShaShape df XH 0 (doSerif -- SLAB) alias 'cyrl/sha/reduced.upright' null 'cyrl/sha.upright' create-glyph 'cyrl/teThreeLeg.upright' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : CyrShaShape df XH 0 (doSerif -- SLAB) (fInv -- true) create-glyph 'smcpMTurned' 0xA7FA : glyph-proc - local df : include : DivFrame para.diversityT 3 + local df : include : DivFrame para.diversityM 3 include : df.markSet.e - include : CyrShaShape df XH 0 (doSerif -- SLAB) (fCompact -- true) + include : CyrShaShape df XH 0 (doSerif -- SLAB) define [CyrShchaShape] : with-params [df top bot [fine Stroke] [doSerif false]] : glyph-proc local cofine : fine * df.mvs / Stroke @@ -61,12 +61,12 @@ glyph-block Letter-Cyrillic-Sha : begin include : CyrDescender.rSideJut df.rightSB bot (refSw -- cofine) create-glyph 'cyrl/Shcha' 0x429 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital include : CyrShchaShape df CAP 0 (doSerif -- SLAB) create-glyph 'cyrl/shcha.upright' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : CyrShchaShape df XH 0 (doSerif -- SLAB) diff --git a/packages/font-glyphs/src/letter/cyrillic/yat.ptl b/packages/font-glyphs/src/letter/cyrillic/yat.ptl index 205bc32cf3..f134082635 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yat.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yat.ptl @@ -99,7 +99,7 @@ glyph-block Letter-Cyrillic-Yat : begin # Italic Yat create-glyph "cyrl/yat.italic/yeri.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e local xMidBarLeft : df.middle - [HSwToV : 0.5 * df.mvs] @@ -113,7 +113,7 @@ glyph-block Letter-Cyrillic-Yat : begin DependentSelector.set currentGlyph : if (suffix === "corner") 'full' 'reduced' create-glyph "cyrl/tje.italic/yeri.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityM 2] 4 + local df : include : DivFrame [mix 1 para.diversityMM 2] 4 include : df.markSet.e local dfSub : df.slice 4 3 0 diff --git a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl index 69c66edfab..6d976581ff 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl @@ -350,11 +350,11 @@ glyph-block Letter-Cyrillic-Yeri : begin include : df.markSet.e include : CyrYeryShape Lc df XH false fTail if [not fTail] : create-glyph "cyrl/YeryBack.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityM 1.5] 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital include : CyrYeryShape Uc df CAP true fTail create-glyph "cyrl/yeryBack.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityM 1.5] 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : CyrYeryShape Lc df XH true fTail @@ -399,7 +399,7 @@ glyph-block Letter-Cyrillic-Yeri : begin include : RevYeri.Shape CAP create-glyph 'cyrl/DjeKomi' 0x502 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital local xm : df.middle + [HSwToV : 0.5 * df.mvs] diff --git a/packages/font-glyphs/src/letter/cyrillic/yu.ptl b/packages/font-glyphs/src/letter/cyrillic/yu.ptl index d82368f993..b991812084 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yu.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yu.ptl @@ -1,6 +1,6 @@ $$include '../../meta/macros.ptl' -import [mix barMixL linreg clamp fallback] from "@iosevka/util" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module @@ -18,24 +18,32 @@ glyph-block Letter-Cyrillic-Yu : begin define SLAB-OUTWARD 2 define [CyrYuShape df slabType top xtop ada adb] : glyph-proc - local xm : barMixL df.leftSB df.rightSB [HSwToV df.mvs] [StrokeWidthBlend 0.4 0.45] - include : OShape top 0 xm df.rightSB df.mvs (ada * 0.7 * df.div) (adb * 0.7 * df.div) + local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) - [HSwToV : 0.25 * df.mvs] + local divSub : (df.width - gap - df.mvs) / Width + local subDf : DivFrame divSub 2 + + local shift : Width * (df.div - divSub) + include : with-transform [ApparentTranslate shift 0] + OShape top 0 subDf.leftSB subDf.rightSB df.mvs (ada * 0.7 * df.div) (adb * 0.7 * df.div) include : if (slabType === SLAB-BULGARIAN) - Iotified.ascender df xtop xm (top / 2) - Iotified.full df xtop xm (top / 2) (fCapital -- (slabType === SLAB-ALL)) + Iotified.ascender df xtop (shift + subDf.leftSB + [HSwToV : 0.5 * df.mvs]) (top / 2) + Iotified.full df xtop (shift + subDf.leftSB + [HSwToV : 0.5 * df.mvs]) (top / 2) + fCapital -- (slabType === SLAB-ALL) define [CyrRevYuShape df slabType top xtop ada adb fTail] : glyph-proc - local xm : barMixL df.leftSB df.rightSB [HSwToV df.mvs] [StrokeWidthBlend 0.4 0.45] - local revXm : df.leftSB + df.rightSB - xm - include : OShape top 0 df.leftSB revXm df.mvs (ada * 0.7 * df.div) (adb * 0.7 * df.div) + local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) - [HSwToV : 0.25 * df.mvs] + local divSub : (df.width - gap - df.mvs) / Width + local subDf : DivFrame divSub 2 + + include : OShape top 0 subDf.leftSB subDf.rightSB df.mvs (ada * 0.7 * df.div) (adb * 0.7 * df.div) local useItalicShape : slabType !== SLAB-ALL && para.isItalic local slabTop : if useItalicShape SLAB-NONE SLAB-FULL local slabBottom : if useItalicShape SLAB-OUTWARD SLAB-FULL include : Iotified.RevShape df xtop - hBarLeft -- revXm + hBarLeft -- (subDf.rightSB - [HSwToV : 0.5 * df.mvs]) hBarY -- (top / 2) slabTop -- slabTop slabBottom -- slabBottom diff --git a/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl index abc8d7ca3f..8fe22aa169 100644 --- a/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl @@ -277,7 +277,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin include : CyrDescender.rSideJut (RightSB - OX * 2) 0 create-glyph "cyrl/ZjeKomi.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital local xm : df.middle + [HSwToV : 0.5 * df.mvs] @@ -301,7 +301,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin if SLAB : include sf2.rt.full create-glyph "cyrl/zjeKomi.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e local xm : df.middle + [HSwToV : 0.5 * df.mvs] diff --git a/packages/font-glyphs/src/letter/greek/lower-omega.ptl b/packages/font-glyphs/src/letter/greek/lower-omega.ptl index 9146f37378..47b292cda8 100644 --- a/packages/font-glyphs/src/letter/greek/lower-omega.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-omega.ptl @@ -35,12 +35,12 @@ glyph-block Letter-Greek-Lower-Omega : begin create-glyph 'grek/omega' 0x3C9 : glyph-proc local df : include : DivFrame para.diversityM 3 - include : [DivFrame df.div].markSet.e + include : df.markSet.e include : LowerOmegaShape df XH 0.5 0.65 create-glyph 'grek/pomega' 0x3D6 : glyph-proc local df : include : DivFrame para.diversityM 3 - include : [DivFrame df.div].markSet.e + include : df.markSet.e include : union HBar.m df.leftSB df.rightSB (XH - HalfStroke) @@ -50,7 +50,7 @@ glyph-block Letter-Greek-Lower-Omega : begin create-glyph 'closeomega' 0x277 : glyph-proc local df : include : DivFrame para.diversityM 3 - include : [DivFrame df.div].markSet.e + include : df.markSet.e local fine : AdviceStroke 3 local mfine : fine * CThin local y0 : XH - O @@ -71,8 +71,8 @@ glyph-block Letter-Greek-Lower-Omega : begin curl (df.middle - [HSwToV : mfine - fine / 2]) y4 [heading Upward] create-glyph 'latn/Omega' 0xA7B6 : glyph-proc - local df : include : DivFrame para.diversityM 3 - include : [DivFrame df.div].markSet.capital + local df : include : DivFrame para.diversityMM 3 + include : df.markSet.capital include : LowerOmegaShape df CAP 0.5 0.65 alias 'latn/omega' 0xA7B7 'grek/omega' diff --git a/packages/font-glyphs/src/letter/greek/phi.ptl b/packages/font-glyphs/src/letter/greek/phi.ptl index 328d69485d..3678f2da76 100644 --- a/packages/font-glyphs/src/letter/greek/phi.ptl +++ b/packages/font-glyphs/src/letter/greek/phi.ptl @@ -126,7 +126,7 @@ glyph-block Letter-Greek-Phi : begin include : GrekCapitalPhiImpl true df create-glyph 'cyrl/Ef.BGR' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital local vJut : Math.max (LongVJut - HalfStroke) : if SLAB (1.5 * Stroke) 0 @@ -180,8 +180,8 @@ glyph-block Letter-Greek-Phi : begin define CyrlLowerEfConfig : SuffixCfg.weave object # bowl - "" { VarPhiRing Stroke } - splitBowl { CyrlEfSplitRing nothing } + "" { VarPhiRing Stroke para.diversityM } + splitBowl { CyrlEfSplitRing nothing para.diversityMM } object # bar serifless { StraightBar nothing nothing } topSerifed { StraightBar MtSerif nothing } @@ -189,9 +189,9 @@ glyph-block Letter-Greek-Phi : begin cursive { CursiveBar nothing nothing } diagonalTailedCursive { DiagonalTailCursiveBar nothing nothing } - foreach { suffix { { Bowl barSw } { Bar sMT sMB } } } [Object.entries CyrlLowerEfConfig] : do + foreach { suffix { { Bowl barSw div } { Bar sMT sMB } } } [Object.entries CyrlLowerEfConfig] : do create-glyph "cyrl/ef.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame div 3 include : df.markSet.bp include : Bowl true df 0 XH local mvs : fallback barSw df.mvs diff --git a/packages/font-glyphs/src/letter/greek/pi.ptl b/packages/font-glyphs/src/letter/greek/pi.ptl index 875a500492..22d06d85e7 100644 --- a/packages/font-glyphs/src/letter/greek/pi.ptl +++ b/packages/font-glyphs/src/letter/greek/pi.ptl @@ -94,11 +94,11 @@ glyph-block Letter-Greek-Pi : begin include sf.rb.outer create-glyph 'cyrl/PeMidHook' 0x4A6 : glyph-proc - define df : include : DivFrame para.diversityM 3 + define df : include : DivFrame para.diversityMM 3 include : df.markSet.capDesc include : CyrlPeHookShape df CAP create-glyph 'cyrl/peMidHook.upright' : glyph-proc - define df : include : DivFrame para.diversityM 3 + define df : include : DivFrame para.diversityMM 3 include : df.markSet.p include : CyrlPeHookShape df XH diff --git a/packages/font-glyphs/src/letter/latin-ext/archaic-m.ptl b/packages/font-glyphs/src/letter/latin-ext/archaic-m.ptl index 484b662fe6..a676fedda3 100644 --- a/packages/font-glyphs/src/letter/latin-ext/archaic-m.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/archaic-m.ptl @@ -37,6 +37,6 @@ glyph-block Letter-Latin-Archaic-M : begin include : difference sf.rt.full [MaskLeft : mix cl cr 0.7] create-glyph "ArchaicM" 0xA7FF : glyph-proc - local df : include : DivFrame [mix 1 para.diversityM 1.5] 4.5 + local df : include : DivFrame [mix 1 para.diversityMM 1.5] 4.5 include : df.markSet.capital include : ArchaicMShape df CAP 0 diff --git a/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl b/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl index 441b97027e..da3a5c8aab 100644 --- a/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl @@ -10,7 +10,7 @@ glyph-block Letter-Latin-Flattened-Open-A : begin glyph-block-import Common-Derivatives create-glyph 'flattenedOpena' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : dispiro diff --git a/packages/font-glyphs/src/letter/latin-ext/gha.ptl b/packages/font-glyphs/src/letter/latin-ext/gha.ptl index a5f8c26261..45141f9547 100644 --- a/packages/font-glyphs/src/letter/latin-ext/gha.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/gha.ptl @@ -44,13 +44,13 @@ glyph-block Letter-Latin-Gha : begin foreach { suffix { terminal doSerif } } [Object.entries GhaConfig] : do create-glyph "Gha.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capDesc include : GhaShape df terminal CAP Descender doSerif include : LeaningAnchor.Below.VBar.r (df.rightSB - O) create-glyph "gha.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.p include : GhaShape df terminal XH Descender doSerif include : LeaningAnchor.Below.VBar.r (df.rightSB - O) diff --git a/packages/font-glyphs/src/letter/latin-ext/hwair.ptl b/packages/font-glyphs/src/letter/latin-ext/hwair.ptl index e7962e582a..9916c13962 100644 --- a/packages/font-glyphs/src/letter/latin-ext/hwair.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/hwair.ptl @@ -18,7 +18,7 @@ glyph-block Letter-Latin-Hwair : begin foreach { suffix { serifLT serifLB } } [pairs-of Variants] : do create-glyph "hwair.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.b include : LeaningAnchor.Above.VBar.l df.leftSB include : VBar.l df.leftSB 0 Ascender df.mvs diff --git a/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl b/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl index ced694bdbb..6b6db360ee 100644 --- a/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl @@ -48,13 +48,13 @@ glyph-block Letter-Latin-Lower-AE-OE : begin foreach { suffix { bodyR hookStyle } } [Object.entries DoubleStoreyConfig] : do create-glyph "ae/a.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : AAShape DoubleStorey.ToothlessRounded hookStyle 0 df 0 create-glyph "aa.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e local [left] : AAShape DoubleStorey.ToothlessRounded hookStyle 0 df @@ -84,24 +84,24 @@ glyph-block Letter-Latin-Lower-AE-OE : begin subDf.archDepthB ad df.mvs create-glyph 'oe/o' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : oeOPart 0 df XH SmallArchDepth create-glyph 'ao/o' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 set-mark-anchor 'cvDecompose' 0 0 include : oeOPart 1 df XH SmallArchDepth create-glyph 'OO/left' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital set-base-anchor 'cvDecompose' 0 0 include : oeOPart 0 df CAP ArchDepth create-glyph 'OO/right' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 set-mark-anchor 'cvDecompose' 0 0 include : oeOPart 1 df CAP ArchDepth @@ -127,13 +127,13 @@ glyph-block Letter-Latin-Lower-AE-OE : begin foreach { suffix { body revbody } } [Object.entries Config] : do create-glyph "ae/e.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 3 + local df : DivFrame para.diversityMM 3 set-width 0 set-mark-anchor 'cvDecompose' 0 0 include : EShape 1 df body create-glyph "aeInvE/right.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 3 + local df : DivFrame para.diversityMM 3 set-width 0 set-mark-anchor 'cvDecompose' 0 0 include : InvEShape 1 df revbody @@ -141,7 +141,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin do "u subglyphs" glyph-block-import Letter-Latin-U : UShapeGroup SmallUConfigT - define df : DivFrame para.diversityM 3 + define df : DivFrame para.diversityMM 3 define { subDf shift } : SubDfAndShift 1 df 0 local ada : subDf.archDepthA SmallArchDepth df.mvs local adb : subDf.archDepthB SmallArchDepth df.mvs @@ -197,20 +197,20 @@ glyph-block Letter-Latin-Lower-AE-OE : begin foreach { suffix { sty styBot } } [Object.entries CConfig] : do create-glyph "oeOpenO/left.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : openOShape df sty styBot create-glyph "cyrl/este.upright/left.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3.5 + local df : include : DivFrame para.diversityMM 3.5 local subDfLeft : df.slice 3.25 1.875 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : EsTeLeftShape subDfLeft styBot create-glyph "cyrl/este.italic/left.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 4.75 + local df : include : DivFrame para.diversityMM 4.75 local subDfLeft : df.slice 4.5 2 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 @@ -226,7 +226,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin if [not fTailed] : begin create-glyph "cyrl/yae/left.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 @@ -329,7 +329,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin foreach { suffix { doST doSB } } [Object.entries TConfig] : do create-glyph "cyrl/este.upright/right.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3.5 + local df : include : DivFrame para.diversityMM 3.5 local subDfLeft : df.slice 3.25 1.875 local subdfRight : df.restCompact 1 subDfLeft 2 @@ -342,7 +342,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin glyph-block-import Letter-Latin-Lower-M : mShapeBodyImpl SmallMConfig foreach { suffix { {Body earless} {shortLeg} {tailed} {Serifs} } } [pairs-of SmallMConfig] : do create-glyph "cyrl/este.italic/right.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 4.75 + local df : DivFrame para.diversityMM 4.75 local subDfLeft : df.slice 4.5 2 local subdfRight : df.restCompact 0.5 subDfLeft 3 set-width 0 @@ -371,13 +371,13 @@ glyph-block Letter-Latin-Lower-AE-OE : begin create-glyph "rightHalfSlashOverlay" : glyph-proc local fine : 0.375 * OverlayStroke - local { subDf shift } : SubDfAndShift 1 [DivFrame para.diversityM 3] OX + local { subDf shift } : SubDfAndShift 1 [DivFrame para.diversityMM 3] OX include : dispiro flat (shift + subDf.leftSB + OX + fine) [mix XH 0 1.05] [widths.center : 2 * fine] curl (shift + subDf.rightSB - OX - fine) [mix 0 XH 1.05] create-glyph "rightHalfBarOverlay" : glyph-proc - local { subDf shift } : SubDfAndShift 1 [DivFrame para.diversityM 3] OX + local { subDf shift } : SubDfAndShift 1 [DivFrame para.diversityMM 3] OX include : HBar.m (shift + subDf.leftSB + OX + 1) (shift + subDf.rightSB - OX - 1) (XH * 0.5) OverlayStroke define [OODots df kHeight fRound kdr] : glyph-proc @@ -392,12 +392,12 @@ glyph-block Letter-Latin-Lower-AE-OE : begin create-glyph "OODots.\(suffix)" : glyph-proc set-width 0 set-mark-anchor 'slash' 0 0 0 0 - local df : DivFrame para.diversityM 3 + local df : DivFrame para.diversityMM 3 include : OODots df 2 (DrawAt === DotAt) kdr create-glyph "ooDots.\(suffix)" : glyph-proc set-width 0 set-mark-anchor 'slash' 0 0 0 0 - local df : DivFrame para.diversityM 3 + local df : DivFrame para.diversityMM 3 include : OODots df 1.5 (DrawAt === DotAt) kdr select-variant "aa" 0xA733 (follow -- 'a/doubleStorey') @@ -432,8 +432,8 @@ glyph-block Letter-Latin-Lower-AE-OE : begin alias 'cyrl/oo' 0xA699 'oo' - CreateTurnedLetter 'turnae' 0x1D02 'ae' HalfAdvance (XH / 2) [DivFrame para.diversityM 3] - CreateTurnedLetter 'turnoe' 0x1D14 'oe' HalfAdvance (XH / 2) [DivFrame para.diversityM 3] + CreateTurnedLetter 'turnae' 0x1D02 'ae' HalfAdvance (XH / 2) [DivFrame para.diversityMM 3] + CreateTurnedLetter 'turnoe' 0x1D14 'oe' HalfAdvance (XH / 2) [DivFrame para.diversityMM 3] derive-composites 'turnoeSlashO' 0xAB41 'turnoe' 'rightHalfSlashOverlay' derive-composites 'turnoeBarO' 0xAB42 'turnoe' 'rightHalfBarOverlay' diff --git a/packages/font-glyphs/src/letter/latin-ext/lower-db-qp.ptl b/packages/font-glyphs/src/letter/latin-ext/lower-db-qp.ptl index 060a491222..bec136cd90 100644 --- a/packages/font-glyphs/src/letter/latin-ext/lower-db-qp.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/lower-db-qp.ptl @@ -33,7 +33,7 @@ glyph-block Letter-Latin-Lower-DB-QP : begin adb -- adb create-glyph 'db' 0x238 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.b include : DbCenterShape df include : VBar.m df.middle XH Ascender df.mvs @@ -41,7 +41,7 @@ glyph-block Letter-Latin-Lower-DB-QP : begin include : HSerif.lt (df.middle - [HSwToV : 0.5 * df.mvs]) Ascender SideJut create-glyph 'qp' 0x239 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.p include : DbCenterShape df include : FlipAround df.middle (XH / 2) diff --git a/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl b/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl index 86d1c36ccf..472e520af8 100644 --- a/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl @@ -23,7 +23,7 @@ glyph-block Letter-Latin-Sakha-Yat : begin foreach { suffix { Uc Lc } } [Object.entries YeriConfig] : do create-glyph "latn/yatSakha.upright.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : SakhaYatShape Lc df XH diff --git a/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl b/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl index a7bddc0fa5..7f34158299 100644 --- a/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl @@ -30,8 +30,8 @@ glyph-block Letter-Latin-Upper-AA-AO : begin define SLAB-RIGHT 4 define ALetters : object - AA { 0xA732 para.diversityM 'capital' CAP } - smcpAA { null para.diversityT 'e' XH } + AA { 0xA732 para.diversityMM 'capital' CAP } + smcpAA { null para.diversityT 'e' XH } foreach { prefix { code div mk height } } [Object.entries ALetters] : do foreach { suffix { bodyShape slabKind } } [Object.entries AConfig] : do @@ -101,7 +101,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin do "AO" derive-multi-part-glyphs 'AO' 0xA734 {"AA/Left" "AA/LeftMask" "OO/right"} function [srcs gr] : glyph-proc - define df : DivFrame para.diversityM 3.5 + define df : DivFrame para.diversityMM 3.5 define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) [AdviceStroke 6] define { left leftMask right } srcs include [refer-glyph left] AS_BASE ALSO_METRICS @@ -111,7 +111,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin glyph-block-import Letter-Latin-U : CapitalUConfig foreach { suffix { Base {Slabs fLTSlab} } } [Object.entries CapitalUConfig] : do create-glyph "AU/Right.\(suffix)" : glyph-proc - define df : DivFrame para.diversityM 3.5 + define df : DivFrame para.diversityMM 3.5 local { subDf shift } : SubDfAndShift 1 df include : with-transform [ApparentTranslate shift 0] union [Base subDf CAP df.mvs] [Slabs subDf CAP] @@ -123,7 +123,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin select-variant 'AA/AU/LeftMask' (follow -- 'A') derive-multi-part-glyphs 'AU' 0xA736 {'AA/AU/Left' 'AA/AU/LeftMask' 'AU/Right'} function [srcs gr] : glyph-proc - define df : include : DivFrame para.diversityM 3.5 + define df : include : DivFrame para.diversityMM 3.5 local { subDf shift } : SubDfAndShift 1 df include : df.markSet.capital define { left mask right } srcs diff --git a/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl b/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl index 74854fc34d..8e03dc2a46 100644 --- a/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl @@ -141,7 +141,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin if [not fTailed] : begin create-glyph "cyrl/Yae/left.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital local sw : AESW df CAP local bp : RBarPos CAP fSlabBot @@ -172,7 +172,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin foreach { suffix { bodyShape slabKind } } [Object.entries AConfig] : do create-glyph "AE/AHalf.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3 + define df : include : DivFrame para.diversityMM 3 include : df.markSet.capital set-base-anchor 'cvDecompose' 0 0 include : AEAHalf df bodyShape CAP slabKind @@ -184,7 +184,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin foreach { suffix { slabKind } } [Object.entries EConfig] : do create-glyph "AE/EHalf.\(suffix)" : glyph-proc - define df : DivFrame para.diversityM 3 + define df : DivFrame para.diversityMM 3 set-width 0 set-mark-anchor 'cvDecompose' 0 0 include : AEEHalf df CAP slabKind @@ -244,7 +244,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin foreach { suffix { slabKind } } [Object.entries EConfig] : do create-glyph "OE.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3 + define df : include : DivFrame para.diversityMM 3 include : df.markSet.capital include : OEShape CAP df slabKind create-glyph "smcpOE.\(suffix)" : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin/lower-d.ptl b/packages/font-glyphs/src/letter/latin/lower-d.ptl index 0b80eeec03..30684b2fdd 100644 --- a/packages/font-glyphs/src/letter/latin/lower-d.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-d.ptl @@ -124,7 +124,7 @@ glyph-block Letter-Latin-Lower-D : begin include : LeaningAnchor.Above.VBar.r df.rightSB if [not bottomSerif] : create-glyph "cyrl/djeKomi.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.b local dfHalf : df.slice 3 2 diff --git a/packages/font-glyphs/src/letter/latin/lower-e.ptl b/packages/font-glyphs/src/letter/latin/lower-e.ptl index 21e07e3311..857200992e 100644 --- a/packages/font-glyphs/src/letter/latin/lower-e.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-e.ptl @@ -124,32 +124,32 @@ glyph-block Letter-Latin-Lower-E : begin fDesc Body df top [stroke df.mvs] [barpos nothing] [ada SmallArchDepthA] [adb SmallArchDepthB] [tailSlab nothing] ] : glyph-proc - local gap : (df.width - 2 * df.leftSB - 2.5 * stroke) * 0.375 - [HSwToV : 0.25 * stroke] + local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * stroke) - [HSwToV : 0.25 * stroke] define divSub : (df.width - gap - stroke) / Width - define dfSub : DivFrame divSub 2 - include : Body dfSub top + define subDf : DivFrame divSub 2 + include : Body subDf top stroke -- stroke barpos -- barpos - ada -- [clamp (stroke * 1.5) (top - adb * divSub - TINY) (ada * divSub)] - adb -- [clamp (stroke * 1.5) (top - ada * divSub - TINY) (adb * divSub)] + ada -- (ada * 0.7 * df.div) + adb -- (adb * 0.7 * df.div) tailSlab -- tailSlab - define offset : Width * (df.div - divSub) + define shift : Width * (df.div - divSub) if fDesc : begin local desc : (-LongVJut) + HalfStroke include : ExtendBelowBaseAnchors desc include : difference - VBar.m dfSub.middle desc (stroke + O) [AdviceStroke 3.5 df.div] - OShapeOutline.NoOvershoot top 0 dfSub.leftSB dfSub.rightSB stroke - include : Translate offset 0 + VBar.m subDf.middle desc (stroke + O) [AdviceStroke 3.5 df.div] + OShapeOutline.NoOvershoot top 0 subDf.leftSB subDf.rightSB stroke + include : Translate shift 0 local hd : FlatHookDepth df local yBar : top * DesignParameters.eBarPos - 0.5 * stroke - include : intersection [MaskLeft : dfSub.leftSB + offset] : dispiro + include : intersection [MaskLeft : subDf.leftSB + shift] : dispiro flat (df.leftSB - [HSwToV : 0.25 * stroke]) (yBar + Hook) [widths.lhs.heading stroke Downward] curl (df.leftSB - [HSwToV : 0.25 * stroke]) (yBar + [Math.min Hook hd.y] - 0.25 * stroke) [heading Downward] arcvh - flat [Math.min (df.leftSB + hd.x - [HSwToV : 0.5 * stroke]) (dfSub.leftSB + offset)] yBar - curl (dfSub.middle + offset) yBar + flat [Math.min (df.leftSB + hd.x - [HSwToV : 0.5 * stroke]) (subDf.leftSB + shift)] yBar + curl (subDf.middle + shift) yBar define SmallEConfig : object flatCrossbar { SmallEShape RevSmallEShape } diff --git a/packages/font-glyphs/src/letter/latin/lower-m.ptl b/packages/font-glyphs/src/letter/latin/lower-m.ptl index 030de4fe9f..43efc08a07 100644 --- a/packages/font-glyphs/src/letter/latin/lower-m.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-m.ptl @@ -89,7 +89,7 @@ glyph-block Letter-Latin-Lower-M : begin local sf : SerifFrame.fromDf df top rbot return sf.rb.outer - define [dfM] : DivFrame para.diversityM 3 + define [dfM] : DivFrame para.diversityMM 3 glyph-block-export MEnoughSpaceForFullSerifs define [MEnoughSpaceForFullSerifs _df _mid] : begin @@ -262,7 +262,7 @@ glyph-block Letter-Latin-Lower-M : begin include : EngHook df.rightSB 0 Descender (sw -- df.mvs) create-glyph "mCrossedTail.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3.25 + local df : include : DivFrame para.diversityMM 3.25 include : df.markSet.e local fine : AdviceStroke 4.5 df.div @@ -282,7 +282,7 @@ glyph-block Letter-Latin-Lower-M : begin if (Body === SmallMArches && !shortLeg) : begin if (!tailed) : begin create-glyph "cyrl/tjeKomi.italic.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityM 2] 4 + local df : include : DivFrame [mix 1 para.diversityMM 2] 4 include : df.markSet.e local subDf : df.slice 4 3 0 include : Body subDf XH 0 0 (XH / 2) @@ -299,7 +299,7 @@ glyph-block Letter-Latin-Lower-M : begin if SLAB : include sf2.rt.full create-glyph "cyrl/tje.italic/base/corner.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityM 2] 4 + local df : include : DivFrame [mix 1 para.diversityMM 2] 4 include : df.markSet.e local subDf : df.slice 4 3 0 include : Body subDf XH 0 0 (XH - SmallArchDepthB - TINY) @@ -310,7 +310,7 @@ glyph-block Letter-Latin-Lower-M : begin eject-contour 'serifRB' create-glyph "cyrl/teMidHook.italic.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityM 2] 4 + local df : include : DivFrame [mix 1 para.diversityMM 2] 4 include : df.markSet.e local subDf : df.slice 4 3 0 include : mShapeBody subDf XH @@ -339,10 +339,10 @@ glyph-block Letter-Latin-Lower-M : begin alias 'cyrl/te/reduced.BGR' null 'cyrl/te.italic' alias 'cyrl/teThreeLeg.italic' null 'cyrl/te.italic' derive-composites 'cyrl/teDescender.italic' null 'cyrl/te.italic/descBase' : do - local df : DivFrame para.diversityM 3 + local df : DivFrame para.diversityMM 3 CyrDescender.rSideJut df.rightSB 0 (refSw -- df.mvs) derive-composites 'mPalatalHook' 0x1D86 'm/descBase' : do - local df : DivFrame para.diversityM 3 + local df : DivFrame para.diversityMM 3 PalatalHook.r xLink -- df.rightSB x -- df.rightSB + SideJut @@ -380,18 +380,18 @@ glyph-block Letter-Latin-Lower-M : begin include : turnMShapeBodyImpl df top Body toothless tailed Serifs create-glyph "turnm.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : dfM include : df.markSet.e include : turnMShapeBody df XH create-glyph "capitalTurnm.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : dfM include : df.markSet.capital include : turnMShapeBody df CAP if (!tailed) : begin create-glyph "turnmLeg.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : dfM include : df.markSet.p include : turnMShapeBody df XH eject-contour 'serifLT' @@ -402,7 +402,7 @@ glyph-block Letter-Latin-Lower-M : begin include : LeaningAnchor.Below.VBar.r df.rightSB create-glyph "turnmSideways.\(suffix)" : glyph-proc - local realHeight : XH * para.diversityM + local realHeight : XH * para.diversityMM local realTop : XH / 2 + realHeight / 2 local realBot : XH / 2 - realHeight / 2 local df : DivFrame (realHeight / Width) 3 (XH * 0.1 / SB) @@ -413,7 +413,7 @@ glyph-block Letter-Latin-Lower-M : begin if (Body === SmallMArches && !tailed) : begin create-glyph "cyrl/shcha.italic.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : dfM include : df.markSet.e include : turnMShapeBody df XH eject-contour 'serifLT' diff --git a/packages/font-glyphs/src/letter/latin/lower-n.ptl b/packages/font-glyphs/src/letter/latin/lower-n.ptl index a60f14658f..f747f4a98c 100644 --- a/packages/font-glyphs/src/letter/latin/lower-n.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-n.ptl @@ -261,7 +261,7 @@ glyph-block Letter-Latin-Lower-N : begin if sLT : include : sLT [DivFrame 1] XH create-glyph "cyrl/peMidHook.italic.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.p local dfHalf : df.slice 3 2 @@ -274,7 +274,7 @@ glyph-block Letter-Latin-Lower-N : begin include : MidHook.m df XH if (!tailed) : create-glyph "cyrl/yat.italic/base.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e local dfSub : df.slice 3 2 diff --git a/packages/font-glyphs/src/letter/latin/o.ptl b/packages/font-glyphs/src/letter/latin/o.ptl index c6aaf62fd6..ebb74962e5 100644 --- a/packages/font-glyphs/src/letter/latin/o.ptl +++ b/packages/font-glyphs/src/letter/latin/o.ptl @@ -170,7 +170,7 @@ glyph-block Letter-Latin-O : begin include : VBar.m Middle (O + 1) (XH - O - 1) fine create-glyph 'romanThousandCD' 0x2180 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital local dist : df.rightSB - df.leftSB local gap : Math.max (dist / 4) : HSwToV df.mvs @@ -181,7 +181,7 @@ glyph-block Letter-Latin-O : begin set-base-anchor 'trailing' Middle 0 create-glyph 'romanTenThousand' 0x2182 : glyph-proc - local df : include : DivFrame para.diversityM 5 + local df : include : DivFrame para.diversityMM 5 include : df.markSet.capital local dist : df.rightSB - df.leftSB local gap : Math.max (dist / 4) : HSwToV df.mvs @@ -201,7 +201,7 @@ glyph-block Letter-Latin-O : begin include : VBar.m df.middle (df.mvs / 2) (CAP - df.mvs / 2) df.mvs create-glyph 'romanHundredThousand' 0x2188 : glyph-proc - local df : include : DivFrame para.diversityM 7 + local df : include : DivFrame para.diversityMM 7 include : df.markSet.capital local dist : df.rightSB - df.leftSB local gap : Math.max (dist / 4) : HSwToV df.mvs diff --git a/packages/font-glyphs/src/letter/latin/upper-h.ptl b/packages/font-glyphs/src/letter/latin/upper-h.ptl index f50a6f97be..ce6862c51d 100644 --- a/packages/font-glyphs/src/letter/latin/upper-h.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-h.ptl @@ -195,17 +195,17 @@ glyph-block Letter-Latin-Upper-H : begin select-variant "cyrl/enghe.\(suffix)" (follow -- 'cyrl/enghe/ghePart') create-glyph "Hwair.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital include : HwairShape df CAP XH slabType create-glyph "cyrl/NjeKomi.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital include : HwairShape df CAP (CAP / 2) slabType create-glyph "cyrl/njeKomi.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.e include : HwairShape df XH (XH / 2) slabType @@ -223,7 +223,7 @@ glyph-block Letter-Latin-Upper-H : begin include : OverlayStrokeShape XH slabType create-glyph "cyrl/EnMidHook.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.capDesc local xm : df.middle + [HSwToV : 0.5 * df.mvs] @@ -232,7 +232,7 @@ glyph-block Letter-Latin-Upper-H : begin include : MidHook.m df CAP create-glyph "cyrl/enMidHook.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : df.markSet.p local xm : df.middle + [HSwToV : 0.5 * df.mvs] diff --git a/packages/font-glyphs/src/letter/latin/upper-m.ptl b/packages/font-glyphs/src/letter/latin/upper-m.ptl index e415467580..ec35e1c19c 100644 --- a/packages/font-glyphs/src/letter/latin/upper-m.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-m.ptl @@ -155,7 +155,7 @@ glyph-block Letter-Latin-Upper-M : begin include : LeaningAnchor.Below.VBar.l df.leftSB include : MShape XH df form slab slanted - define cyrSoftEmDf : DivFrame (para.diversityM ** 2) 4 + define cyrSoftEmDf : DivFrame (para.diversityM * para.diversityM) 4 define cyrSoftemDf : DivFrame (para.diversityT * para.diversityM) 4 DefineSelectorGlyph "cyrl/EmSoft" suffix cyrSoftEmDf 'capital' diff --git a/packages/font-glyphs/src/letter/latin/w.ptl b/packages/font-glyphs/src/letter/latin/w.ptl index 281cfc551c..4e4c6c52dc 100644 --- a/packages/font-glyphs/src/letter/latin/w.ptl +++ b/packages/font-glyphs/src/letter/latin/w.ptl @@ -348,19 +348,18 @@ glyph-block Letter-Latin-W : begin define WConfig : SuffixCfg.weave # Body object - straight { WShapeImpl WHooktopShape FORM-STRAIGHT } - straightAsymmetric { WShapeImpl WHooktopShape FORM-ASYMMETRIC } - straightDoubleV { WShapeImpl WHooktopShape FORM-DOUBLE-V } - straightFlatTop { WShapeImpl WHooktopShape FORM-FLAT-TOP } - straightVerticalSides { WVertSides WVSHookTopShape FORM-STRAIGHT } - roundedVerticalSides { WRounded WHookTopRounded FORM-CURLY } - curly { WShapeImpl WHooktopShape FORM-CURLY } - cursive { WCursiveImpl WHookTopCursive FORM-CURLY } - cyrlCapialOmega { WShapeImpl WHooktopShape FORM-CYRL-OMEGA } - cyrlSmallOmega { WShapeImpl WHooktopShape FORM-CYRL-OMEGA } + straight { WShapeImpl WHooktopShape FORM-STRAIGHT para.diversityM para.diversityM } + straightAsymmetric { WShapeImpl WHooktopShape FORM-ASYMMETRIC para.diversityM para.diversityM } + straightDoubleV { WShapeImpl WHooktopShape FORM-DOUBLE-V para.diversityM para.diversityM } + straightFlatTop { WShapeImpl WHooktopShape FORM-FLAT-TOP para.diversityMM para.diversityMM } + straightVerticalSides { WVertSides WVSHookTopShape FORM-STRAIGHT para.diversityM para.diversityT } + roundedVerticalSides { WRounded WHookTopRounded FORM-CURLY para.diversityMM para.diversityM } + curly { WShapeImpl WHooktopShape FORM-CURLY para.diversityM para.diversityM } + cursive { WCursiveImpl WHookTopCursive FORM-CURLY para.diversityM para.diversityM } + cyrlOmega { WShapeImpl WHooktopShape FORM-CYRL-OMEGA para.diversityMM para.diversityM } # Serifs - function [body] : if (body == 'cyrlCapialOmega' || body == 'cyrlSmallOmega') + function [body] : if (body == 'cyrlOmega') then : object ["" SERIFS-CYRL-OMEGA] else : object serifless SERIFS-NONE @@ -371,9 +370,9 @@ glyph-block Letter-Latin-W : begin [Just 'cursive'] SERIFS-MOTION __ SERIFS-ALL - foreach { suffix { {implT hookTopImplT bodyType} slabType } } [pairs-of WConfig] : do + foreach { suffix { {implT hookTopImplT bodyType Udiv Ldiv} slabType } } [pairs-of WConfig] : do create-glyph "W.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame Udiv 3 include : df.markSet.capital include : implT df CAP bodyType slabType @@ -383,7 +382,7 @@ glyph-block Letter-Latin-W : begin include : implT df XH bodyType slabType create-glyph "w.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame Ldiv 3 include : df.markSet.e include : implT df XH bodyType slabType @@ -397,15 +396,21 @@ glyph-block Letter-Latin-W : begin include : implT df (CAP / 2 - gap / 2) bodyType slabType if hookTopImplT : create-glyph "WHookTop.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame Udiv 3 include : df.markSet.capital include : hookTopImplT df CAP bodyType slabType if hookTopImplT : create-glyph "wHookTop.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame Ldiv 3 include : df.markSet.e include : hookTopImplT df XH bodyType slabType + create-glyph "currency/wonSign.\(suffix)" : glyph-proc + local df : DivFrame Udiv 3 + include [refer-glyph "W.\(suffix)"] AS_BASE ALSO_METRICS + include : HOverlayBar [mix df.leftSB 0 0.7] [mix df.rightSB df.width 0.7] (CAP * 0.6) + include : HOverlayBar [mix df.leftSB 0 0.7] [mix df.rightSB df.width 0.7] (CAP * 0.35) + select-variant 'W' 'W' link-reduced-variant 'W/sansSerif' 'W' MathSansSerif select-variant 'WHookTop' 0x2C72 @@ -414,12 +419,14 @@ glyph-block Letter-Latin-W : begin select-variant 'smcpW' 0x1D21 (follow -- 'W') select-variant 'ww' 0x2AC (follow -- 'w') select-variant 'wHookTop' 0x2C73 + select-variant 'currency/wonSign' 0x20A9 (follow -- 'W') + alias 'cyrl/We' 0x51C 'W' alias 'cyrl/we' 0x51D 'w' CreateTurnedLetter 'turnw' 0x28D 'w' HalfAdvance (XH / 2) - alias 'cyrl/Omega' 0x460 'W.cyrlCapialOmega' - alias 'cyrl/omega' 0x461 [if para.isItalic 'w.cyrlSmallOmega' 'w.cyrlCapialOmega'] + alias 'cyrl/Omega' 0x460 'W.cyrlOmega' + alias 'cyrl/omega' 0x461 'w.cyrlOmega' glyph-block-import Letter-Blackboard : BBS BBD glyph-block-import Letter-Latin-V : BBVShape BBVOuterMaskShape diff --git a/packages/font-glyphs/src/marks/above.ptl b/packages/font-glyphs/src/marks/above.ptl index c80d0bb66f..3c9560ae7b 100644 --- a/packages/font-glyphs/src/marks/above.ptl +++ b/packages/font-glyphs/src/marks/above.ptl @@ -522,7 +522,7 @@ glyph-block Mark-Above : begin curl rightEnd aboveMarkMid create-glyph 'cyrl/te.SRB/overlineAbove' : glyph-proc - local df : DivFrame para.diversityM 3 + local df : DivFrame para.diversityMM 3 set-width 0 set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack diff --git a/packages/font-glyphs/src/marks/overlay.ptl b/packages/font-glyphs/src/marks/overlay.ptl index 2711ba0b94..149520e9c5 100644 --- a/packages/font-glyphs/src/marks/overlay.ptl +++ b/packages/font-glyphs/src/marks/overlay.ptl @@ -169,14 +169,14 @@ glyph-block Mark-Overlay : begin rightEnd -- markMiddle + Width / 2 - SB hs -- OverlayStroke / 2 - create-glyph 'tildeStrikeDivM' : glyph-proc + create-glyph 'tildeStrikeDivMM' : glyph-proc set-width 0 set-mark-anchor 'strike' markMiddle (XH / 2) markMiddle (XH / 2) include : TildeShape ttop -- XH / 2 + tildeHeight / 2 tbot -- XH / 2 - tildeHeight / 2 - leftEnd -- markMiddle - Width / 2 * para.diversityM - rightEnd -- markMiddle + Width / 2 * para.diversityM + leftEnd -- markMiddle - Width / 2 * para.diversityMM + rightEnd -- markMiddle + Width / 2 * para.diversityMM hs -- OverlayStroke / 2 do "Slashes" diff --git a/packages/font-glyphs/src/meta/unicode-knowledge.ptl b/packages/font-glyphs/src/meta/unicode-knowledge.ptl index 42532d7f63..50e6cdab4c 100644 --- a/packages/font-glyphs/src/meta/unicode-knowledge.ptl +++ b/packages/font-glyphs/src/meta/unicode-knowledge.ptl @@ -153,7 +153,7 @@ export : define decompOverrides : object 0x1D6C { 'b' 'tildeOverOnExension' } 0x1D6D { 'd' 'tildeOverOnExension' } 0x1D6E { 'f' 'tildeOver' } - 0x1D6F { 'm' 'tildeStrikeDivM' } + 0x1D6F { 'm' 'tildeStrikeDivMM' } 0x1D70 { 'n' 'tildeStrike' } 0x1D71 { 'p' 'tildeOverOnExension' } 0x1D74 { 's' 'tildeStrike' } diff --git a/packages/font-glyphs/src/symbol/counting-rod.ptl b/packages/font-glyphs/src/symbol/counting-rod.ptl index 1a0cd0932f..1709630e46 100644 --- a/packages/font-glyphs/src/symbol/counting-rod.ptl +++ b/packages/font-glyphs/src/symbol/counting-rod.ptl @@ -9,7 +9,7 @@ glyph-block Symbol-Counting-Rod : begin glyph-block-import Common-Derivatives do "Counting Rods" - define rodDiv : Math.min 2 : mix 1 para.diversityM 2 + define rodDiv : Math.min 2 : mix 1 para.diversityMM 2 define rodDf : DivFrame rodDiv 5 define rodSw rodDf.mvs define hRodSw : AdviceStroke 3 rodDiv @@ -88,7 +88,7 @@ glyph-block Symbol-Counting-Rod : begin include : rodTens 4 1 do "Tally Marks" - define rodDiv : Math.min 2 : mix 1 para.diversityM 2 + define rodDiv : Math.min 2 : mix 1 para.diversityMM 2 create-glyph 'tallyMarkOne' 0x1D377 : glyph-proc local df : include : DivFrame : if (para.diversityII < 1) (rodDiv / 4) 1 diff --git a/packages/font-glyphs/src/symbol/letter.ptl b/packages/font-glyphs/src/symbol/letter.ptl index 313d53a503..a85f656976 100644 --- a/packages/font-glyphs/src/symbol/letter.ptl +++ b/packages/font-glyphs/src/symbol/letter.ptl @@ -75,13 +75,6 @@ glyph-block Symbol-Currency-Letter-Derived : begin derive-composites 'currency/nairaSign' 0x20A6 'currency/nairaSignBase' 'currency/overlay/NS' derive-composites 'currency/hryvniaSign' 0x20B4 'revS' 'currency/overlay/NS' - create-glyph 'currency/overlay/W' : glyph-proc - local df : DivFrame para.diversityM 3 - include : HOverlayBar [mix SB 0 0.7] [mix df.rightSB df.width 0.7] (CAP * 0.6) - include : HOverlayBar [mix SB 0 0.7] [mix df.rightSB df.width 0.7] (CAP * 0.35) - - derive-composites 'currency/wonSign' 0x20A9 'W' 'currency/overlay/W' - derive-composites 'currency/dongSign' 0x20AB 'dStroke' 'sbRsbUnderlineBelow' derive-composites 'currency/kipSign' 0x20AD 'K' 'hStrike' diff --git a/packages/font-glyphs/src/symbol/math/logicals.ptl b/packages/font-glyphs/src/symbol/math/logicals.ptl index be1a240262..41dd7647fa 100644 --- a/packages/font-glyphs/src/symbol/math/logicals.ptl +++ b/packages/font-glyphs/src/symbol/math/logicals.ptl @@ -116,7 +116,7 @@ glyph-block Symbol-Math-Logicals : begin include : VBar.m Middle (SymbolMid * 2) 0 OperatorStroke create-glyph 'turnedTautologyTautology' 0x27DA : glyph-proc - local df : include : DivFrame para.diversityM 4 + local df : include : DivFrame para.diversityMM 4 local vs : df.mvs * OperatorStroke / Stroke local innerSB : Math.min (SB * [Math.min (df.div / 1.5) 1]) df.leftSB local l : Math.max (df.middle - innerSB - vs / 2) : mix df.middle df.leftSB (1 / 3) @@ -131,7 +131,7 @@ glyph-block Symbol-Math-Logicals : begin include : HBar.m r df.rightSB b OperatorStroke create-glyph 'dashvvdash' 0x27DB : glyph-proc - local df : include : DivFrame para.diversityM 4 + local df : include : DivFrame para.diversityMM 4 local vs : df.mvs * OperatorStroke / Stroke local innerSB : Math.min (SB * [Math.min (df.div / 1.5) 1]) df.leftSB local l : Math.max (df.middle - innerSB - vs / 2) : mix df.middle df.leftSB (1 / 3) diff --git a/packages/font-glyphs/src/symbol/math/relation.ptl b/packages/font-glyphs/src/symbol/math/relation.ptl index e405508850..c0f12eff6c 100644 --- a/packages/font-glyphs/src/symbol/math/relation.ptl +++ b/packages/font-glyphs/src/symbol/math/relation.ptl @@ -35,7 +35,7 @@ glyph-block Symbol-Math-Relation-Common : begin define dHSmallElem : dH * (3 / 4) glyph-block-export lessEqDist - define lessEqDist : Math.max [AdviceStroke 4] (XH * 0.16) + define lessEqDist : Math.max (XH * 0.16) : AdviceStroke 4 glyph-block-export dSH define dSH : (dH * 2 + lessEqDist * 2) / 3 @@ -230,7 +230,7 @@ glyph-block Symbol-Math-Relation-Addons : begin glyph-block-export lesslessSW muchLessSW lesslessSWO llggHeight define lesslessSW : AdviceStroke 3.5 - define muchLessSW : AdviceStroke 4.5 para.diversityM + define muchLessSW : AdviceStroke 4.5 para.diversityMM define lesslessSWO : Math.max lesslessSW lessEqDist define llggHeight : dH * 2 + lessEqDist * 2 @@ -637,12 +637,12 @@ glyph-block Symbol-Math-Relation-Inequality : begin include : GreaterShape (SymbolMid + dH) (SymbolMid - dH) (SB + lessEqDist * 2) (RightSB + lessEqDist / 2) lesslessSW create-glyph 'muchLess' 0x22D8 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : LessShape (SymbolMid + dH) (SymbolMid - dH) [mix df.leftSB df.rightSB (0/3)] [mix df.leftSB df.rightSB (1/3)] muchLessSW include : LessShape (SymbolMid + dH) (SymbolMid - dH) [mix df.leftSB df.rightSB (1/3)] [mix df.leftSB df.rightSB (2/3)] muchLessSW include : LessShape (SymbolMid + dH) (SymbolMid - dH) [mix df.leftSB df.rightSB (2/3)] [mix df.leftSB df.rightSB (3/3)] muchLessSW create-glyph 'muchGreater' 0x22D9 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : GreaterShape (SymbolMid + dH) (SymbolMid - dH) [mix df.leftSB df.rightSB (0/3)] [mix df.leftSB df.rightSB (1/3)] muchLessSW include : GreaterShape (SymbolMid + dH) (SymbolMid - dH) [mix df.leftSB df.rightSB (1/3)] [mix df.leftSB df.rightSB (2/3)] muchLessSW include : GreaterShape (SymbolMid + dH) (SymbolMid - dH) [mix df.leftSB df.rightSB (2/3)] [mix df.leftSB df.rightSB (3/3)] muchLessSW diff --git a/packages/font-glyphs/src/symbol/math/v-and-cup.ptl b/packages/font-glyphs/src/symbol/math/v-and-cup.ptl index 54c839f482..15272f3769 100644 --- a/packages/font-glyphs/src/symbol/math/v-and-cup.ptl +++ b/packages/font-glyphs/src/symbol/math/v-and-cup.ptl @@ -196,7 +196,7 @@ glyph-block Symbol-Math-VAndCup : begin create-glyph 'doubleCup' 0x22D3 : glyph-proc local sw : AdviceStroke 6 - local gap : Math.min [Math.max (Width / 8) (sw / 2)] : (RightSB - SB - [HSwToV : 4 * sw]) / 3 + local gap : Math.min ((RightSB - SB - [HSwToV : 4 * sw]) / 3) : Math.max (Width / 8) (sw / 2) include : UShape [DivFrame 1] OperTop OperBot (stroke -- sw) include : UShape [DivFrame 1] OperTop OperBot stroke -- sw @@ -271,12 +271,12 @@ glyph-block Symbol-Math-VAndCup : begin turned 'squareCup' 0x2294 'squareCap' Middle SymbolMid create-glyph 'shuffleProduct' 0x29E2 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityMM 3 include : CyrShaShape df OperTop OperBot (fine -- OperatorStroke) (doSerif -- false) create-glyph 'doubleSquareCap' 0x2A4E : glyph-proc local sw : AdviceStroke 6 - local gap : Math.min [Math.max (Width / 8) (sw / 2)] : (RightSB - SB - [HSwToV : 4 * sw]) / 3 + local gap : Math.min ((RightSB - SB - [HSwToV : 4 * sw]) / 3) : Math.max (Width / 8) (sw / 2) local shrinkRate : (sw + gap) / (RightSB - SB) include : PiShape [DivFrame 1] OperTop OperBot (fine -- sw) (shrinkRate -- 0) (fine -- sw) (doSerif -- false) include : PiShape [DivFrame 1] (OperTop - sw - gap) OperBot (fine -- sw) (shrinkRate -- shrinkRate) (endShrink -- shrinkRate) (doSerif -- false) diff --git a/params/parameters.toml b/params/parameters.toml index bba8419a98..3b810b928f 100644 --- a/params/parameters.toml +++ b/params/parameters.toml @@ -78,6 +78,7 @@ slab = 0 onumZeroHeightRatio = 1.145 # Reset diversity +diversityMM = 1 diversityM = 1 diversityT = 1 diversityF = 1 @@ -128,6 +129,7 @@ forceMonospace = true [spacing-quasi-proportional] spacing = 3 isQuasiProportional = true +diversityMM = 1.5 # 9/6 diversityM = 1.3333333333333 # 8/6 diversityT = 1.1666666666666 # 7/6 diversityF = 0.8333333333333 # 5/6 @@ -137,6 +139,7 @@ diversityII = 0.5 # 3/6 [spacing-quasi-proportional-extension-only] spacing = 3 isQuasiProportional = true +diversityMM = 1.50 # 9/6 diversityM = 1.3333333333333 # 8/6 diversityT = 1.1666666666666 # 7/6 diversityF = 1.00 From 8ad0efe7df358ca79b5ec9b441a0aa41d45e22f1 Mon Sep 17 00:00:00 2001 From: Logo <21302803+Logo121@users.noreply.github.com> Date: Thu, 12 Dec 2024 03:36:22 +0800 Subject: [PATCH 03/10] Collection of around 17 arrows (#2613) * Arrows * doc --- changes/32.3.0.md | 3 + packages/font-glyphs/src/symbol/arrow.ptl | 173 ++++++++++++++++++++-- 2 files changed, 161 insertions(+), 15 deletions(-) diff --git a/changes/32.3.0.md b/changes/32.3.0.md index 6db09e4f96..0c4c8d317c 100644 --- a/changes/32.3.0.md +++ b/changes/32.3.0.md @@ -111,3 +111,6 @@ - Z NOTATION RANGE ANTIRESTRICTION (`U+2A65`). - SMALLER THAN (`U+2AAA`) ... LARGER THAN OR EQUAL TO (`U+2AAD`). - CLOSED SUBSET (`U+2ACF`) ... CLOSED SUPERSET OR EQUAL TO (`U+2AD2`). + - ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW (`U+2B8C`) ... ANTICLOCKWISE TRIANGLE-HEADED TOP U-SHAPED ARROW (`U+2B8F`). + - RETURN LEFT (`U+2B90`) ... FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE (`U+2B94`). + - DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS (`U+2BA0`) ... RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS (`U+2BA7`). diff --git a/packages/font-glyphs/src/symbol/arrow.ptl b/packages/font-glyphs/src/symbol/arrow.ptl index c35315ceff..0fd6cfa1d5 100644 --- a/packages/font-glyphs/src/symbol/arrow.ptl +++ b/packages/font-glyphs/src/symbol/arrow.ptl @@ -536,7 +536,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 create-glyph id unicode : glyph-proc set-width MosaicWidth include : union - shape x2 y2 x3 y3 size + shape x2 y2 x3 y3 [fallback size arrowHeadSize] bar x1 y1 x2 y2 do "Straight Arrow" @@ -706,23 +706,166 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 define bendT : SymbolMid + bendArrowHeadSize * 2 define bendB : SymbolMid - bendArrowHeadSize * 2 - define [VBS x1 y1 x2 y2] : VBar.m x1 y1 (y2 - 0.5 * arrowSw) arrowSw - define [VBE x1 y1 x2 y2] : VBar.m x1 y1 (y2 + 0.5 * arrowSw) arrowSw - define [HBS x1 y1 x2 y2] : HBar.m x1 (x2 - 0.5 * arrowSw) y1 arrowSw - define [HBE x1 y1 x2 y2] : HBar.m x1 (x2 + 0.5 * arrowSw) y1 arrowSw + define [VBS x1 y1 x2 y2] : ArrowBar x1 y1 x2 (y2 - halfArrowSw) halfArrowSw 0 0 + define [VBE x1 y1 x2 y2] : ArrowBar x1 y1 x2 (y2 + halfArrowSw) halfArrowSw 0 0 + define [HBS x1 y1 x2 y2] : ArrowBar x1 y1 (x2 - halfArrowSw) y2 halfArrowSw 0 0 + define [HBE x1 y1 x2 y2] : ArrowBar x1 y1 (x2 + halfArrowSw) y2 halfArrowSw 0 0 - MkAngleArrow ArrowShape VBE [MangleName 'Arrow-up-angle-bend-left'] [MangleUnicode 0x21b0] bendR arrowBot bendR (arrowTop - bendArrowHeadSize) bendL (arrowTop - bendArrowHeadSize) bendArrowHeadSize - MkAngleArrow ArrowShape VBE [MangleName 'Arrow-up-angle-bend-right'] [MangleUnicode 0x21b1] bendL arrowBot bendL (arrowTop - bendArrowHeadSize) bendR (arrowTop - bendArrowHeadSize) bendArrowHeadSize - MkAngleArrow ArrowShape VBS [MangleName 'Arrow-down-angle-bend-left'] [MangleUnicode 0x21b2] bendR arrowTop bendR (arrowBot + bendArrowHeadSize) bendL (arrowBot + bendArrowHeadSize) bendArrowHeadSize - MkAngleArrow ArrowShape VBS [MangleName 'Arrow-down-angle-bend-right'] [MangleUnicode 0x21b3] bendL arrowTop bendL (arrowBot + bendArrowHeadSize) bendR (arrowBot + bendArrowHeadSize) bendArrowHeadSize + MkAngleArrow ArrowShape VBE [MangleName 'arrowUpTipBendLeft'] [MangleUnicode 0x21B0] bendR arrowBot bendR (arrowTop - bendArrowHeadSize) bendL (arrowTop - bendArrowHeadSize) bendArrowHeadSize + MkAngleArrow ArrowShape VBE [MangleName 'arrowUpTipBendRight'] [MangleUnicode 0x21B1] bendL arrowBot bendL (arrowTop - bendArrowHeadSize) bendR (arrowTop - bendArrowHeadSize) bendArrowHeadSize + MkAngleArrow ArrowShape VBS [MangleName 'arrowDownTipBendLeft'] [MangleUnicode 0x21B2] bendR arrowTop bendR (arrowBot + bendArrowHeadSize) bendL (arrowBot + bendArrowHeadSize) bendArrowHeadSize + MkAngleArrow ArrowShape VBS [MangleName 'arrowDownTipBendRight'] [MangleUnicode 0x21B3] bendL arrowTop bendL (arrowBot + bendArrowHeadSize) bendR (arrowBot + bendArrowHeadSize) bendArrowHeadSize - MkAngleArrow ArrowShape HBE [MangleName 'Arrow-right-angle-bend-down'] [MangleUnicode 0x2B0E] arrowSB SymbolMid (arrowRSB - bendArrowHeadSize) SymbolMid (arrowRSB - bendArrowHeadSize) bendB bendArrowHeadSize - MkAngleArrow ArrowShape HBE [MangleName 'Arrow-right-angle-bend-up'] [MangleUnicode 0x2B0F] arrowSB SymbolMid (arrowRSB - bendArrowHeadSize) SymbolMid (arrowRSB - bendArrowHeadSize) bendT bendArrowHeadSize - MkAngleArrow ArrowShape HBS [MangleName 'Arrow-left-angle-bend-down'] [MangleUnicode 0x2B10] arrowRSB SymbolMid (arrowSB + bendArrowHeadSize) SymbolMid (arrowSB + bendArrowHeadSize) bendB bendArrowHeadSize - MkAngleArrow ArrowShape HBS [MangleName 'Arrow-left-angle-bend-up'] [MangleUnicode 0x2B11] arrowRSB SymbolMid (arrowSB + bendArrowHeadSize) SymbolMid (arrowSB + bendArrowHeadSize) bendT bendArrowHeadSize + MkAngleArrow ArrowShape HBE [MangleName 'arrowRightTipBendDown'] [MangleUnicode 0x2B0E] arrowSB SymbolMid (arrowRSB - bendArrowHeadSize) SymbolMid (arrowRSB - bendArrowHeadSize) bendB bendArrowHeadSize + MkAngleArrow ArrowShape HBE [MangleName 'arrowRightTipBendUp'] [MangleUnicode 0x2B0F] arrowSB SymbolMid (arrowRSB - bendArrowHeadSize) SymbolMid (arrowRSB - bendArrowHeadSize) bendT bendArrowHeadSize + MkAngleArrow ArrowShape HBS [MangleName 'arrowLeftTipBendDown'] [MangleUnicode 0x2B10] arrowRSB SymbolMid (arrowSB + bendArrowHeadSize) SymbolMid (arrowSB + bendArrowHeadSize) bendB bendArrowHeadSize + MkAngleArrow ArrowShape HBS [MangleName 'arrowLeftTipBendUp'] [MangleUnicode 0x2B11] arrowRSB SymbolMid (arrowSB + bendArrowHeadSize) SymbolMid (arrowSB + bendArrowHeadSize) bendT bendArrowHeadSize + + MkAngleArrow ArrowShape HBE [MangleName 'arrowRightCornerDown'] [MangleUnicode 0x21B4] arrowSB arrowTop (arrowRSB - arrowHeadSize) arrowTop (arrowRSB - arrowHeadSize) arrowBot arrowHeadSize + MkAngleArrow ArrowShape VBS [MangleName 'arrowDownCornerLeft'] [MangleUnicode 0x21B5] arrowRSB arrowTop arrowRSB (arrowBot + arrowHeadSize) arrowSB (arrowBot + arrowHeadSize) arrowHeadSize + + # Bent TrigArrows + local hcDist : Math.max (halfArrowSw * 5) (arrowWidth / 2) + local vcDist : arrowHeadSize * 1.75 + + define yLower : SymbolMid - vcDist / 2 + define yUpper : SymbolMid + vcDist / 2 + define xLeft : arrowMidX - hcDist / 2 + define xRight : arrowMidX + hcDist / 2 + define arrowSB2 : arrowSB + halfArrowSw + define arrowRSB2 : arrowRSB - halfArrowSw + + MkAngleArrow TrigArrowShape VBS [MangleName 'trigArrowDownLongBendLeft'] [MangleUnicode 0x2BA0] arrowRSB2 yUpper arrowRSB2 yLower arrowSB yLower + MkAngleArrow TrigArrowShape VBS [MangleName 'trigArrowDownLongBendRight'] [MangleUnicode 0x2BA1] arrowSB2 yUpper arrowSB2 yLower arrowRSB yLower + MkAngleArrow TrigArrowShape VBE [MangleName 'trigArrowUpLongBendLeft'] [MangleUnicode 0x2BA2] arrowRSB2 yLower arrowRSB2 yUpper arrowSB yUpper + MkAngleArrow TrigArrowShape VBE [MangleName 'trigArrowUpLongBendRight'] [MangleUnicode 0x2BA3] arrowSB2 yLower arrowSB2 yUpper arrowRSB yUpper + MkAngleArrow TrigArrowShape HBS [MangleName 'trigArrowLeftLongBendUp'] [MangleUnicode 0x2BA4] xRight arrowBot xLeft arrowBot xLeft arrowTop + MkAngleArrow TrigArrowShape HBE [MangleName 'trigArrowRightLongBendUp'] [MangleUnicode 0x2BA5] xLeft arrowBot xRight arrowBot xRight arrowTop + MkAngleArrow TrigArrowShape HBS [MangleName 'trigArrowLeftLongBendDown'] [MangleUnicode 0x2BA6] xRight arrowTop xLeft arrowTop xLeft arrowBot + MkAngleArrow TrigArrowShape HBE [MangleName 'trigArrowRightLongBendDown'] [MangleUnicode 0x2BA7] xLeft arrowTop xRight arrowTop xRight arrowBot + + # Complex Bent Arrows + define pSlant 0.2 + create-glyph [MangleName 'arrowReturnLeft'] [MangleUnicode 0x2B90] : glyph-proc + set-width MosaicWidth + local x1 : mix arrowRSB arrowSB pSlant + include : TrigArrowShape x1 yLower arrowSB yLower arrowHeadSize + include : intersection [MaskBelow : yUpper + halfArrowSw] : dispiro + widths.lhs arrowSw + disable-contrast + flat x1 (yLower - halfArrowSw) + curl arrowRSB (yUpper + halfArrowSw) + include : intersection + MaskLeftLine x1 (yLower - halfArrowSw) arrowRSB (yUpper + halfArrowSw) + ArrowBar arrowMidX yUpper arrowRSB yUpper halfArrowSw 0 0 + + create-glyph [MangleName 'arrowReturnRight'] [MangleUnicode 0x2B91] : glyph-proc + set-width MosaicWidth + local x1 : mix arrowSB arrowRSB pSlant + include : TrigArrowShape x1 yLower arrowRSB yLower arrowHeadSize + include : intersection [MaskBelow : yUpper + halfArrowSw] : dispiro + widths.rhs arrowSw + disable-contrast + flat x1 (yLower - halfArrowSw) + curl arrowSB (yUpper + halfArrowSw) + include : intersection + MaskRightLine x1 (yLower - halfArrowSw) arrowSB (yUpper + halfArrowSw) + ArrowBar arrowMidX yUpper arrowSB yUpper halfArrowSw 0 0 + + define pNewline 0.35 + define pGap : StrokeWidthBlend 0.1 0.05 + define arrowGapX : pGap * (arrowRSB - arrowSB) + define arrowGapX2 : 0.1 * (arrowRSB - arrowSB) + define arrowGapY : pGap * (arrowTop - arrowBot) + create-glyph [MangleName 'arrowNewlineLeft'] [MangleUnicode 0x2B92] : glyph-proc + set-width MosaicWidth + local x1 : mix arrowRSB arrowSB pNewline + local x2 : mix arrowSB arrowRSB pNewline + local x3 : arrowRSB - halfArrowSw + include : ArrowBar arrowSB yUpper (x1 - arrowGapX2) yUpper halfArrowSw 0 0 + include : ArrowBar x1 yUpper arrowRSB yUpper halfArrowSw 0 0 + include : ArrowBar x3 yUpper x3 yLower halfArrowSw 0 0 + include : TrigArrowShape arrowRSB yLower x2 yLower arrowHeadSize + include : ArrowBar (x2 - arrowGapX) yLower arrowSB yLower halfArrowSw 0 0 + + create-glyph [MangleName 'arrowNewlineRight'] [MangleUnicode 0x2B93] : glyph-proc + set-width MosaicWidth + local x1 : mix arrowSB arrowRSB pNewline + local x2 : mix arrowRSB arrowSB pNewline + local x3 : arrowSB + halfArrowSw + include : ArrowBar arrowRSB yUpper (x1 + arrowGapX2) yUpper halfArrowSw 0 0 + include : ArrowBar x1 yUpper arrowSB yUpper halfArrowSw 0 0 + include : ArrowBar x3 yUpper x3 yLower halfArrowSw 0 0 + include : TrigArrowShape arrowSB yLower x2 yLower arrowHeadSize + include : ArrowBar (x2 + arrowGapX) yLower arrowRSB yLower halfArrowSw 0 0 + + create-glyph [MangleName 'arrowCirclingCCW'] [MangleUnicode 0x2B94] : glyph-proc + set-width MosaicWidth + define headSize : arrowHeadSize * 0.5 + define offset : 0.75 * headSize / 2 + include : VBE xRight (SymbolMid + offset + arrowGapY) xRight yUpper + include : TrigArrowShape xRight yUpper (arrowMidX - offset) yUpper headSize + include : HBS (arrowMidX - offset - arrowGapX) yUpper xLeft yUpper + include : TrigArrowShape xLeft yUpper xLeft (SymbolMid - offset) headSize + include : VBS xLeft (SymbolMid - offset - arrowGapY) xLeft yLower + include : TrigArrowShape xLeft yLower (arrowMidX + offset) yLower headSize + include : HBE (arrowMidX + offset + arrowGapX) yLower xRight yLower + include : TrigArrowShape xRight yLower xRight (SymbolMid + offset) headSize + + # U-Shaped Arrows + create-glyph [MangleName 'trigArrowUShapeLeft'] [MangleUnicode 0x2B8C] : glyph-proc + set-width MosaicWidth + include : dispiro + widths.center arrowSw + disable-contrast + flat arrowSB yLower [heading Rightward] + curl (arrowRSB2 - vcDist / 2) yLower + archv + g4 arrowRSB2 SymbolMid + arcvh + flat (arrowRSB2 - vcDist / 2) yUpper + curl arrowMidX yUpper [heading Leftward] + include : TrigArrowShape arrowMidX yUpper arrowSB yUpper arrowHeadSize + create-glyph [MangleName 'trigArrowUShapeUp'] [MangleUnicode 0x2B8D] : glyph-proc + set-width MosaicWidth + include : dispiro + widths.center arrowSw + disable-contrast + flat xLeft arrowTop [heading {.x 1 .y 0}] + curl xLeft (arrowBot + hcDist / 2) + arcvh + g4 arrowMidX arrowBot + archv + flat xRight (arrowBot + hcDist / 2) + curl xRight [Math.max SymbolMid : arrowBot + hcDist / 2 + TINY] [heading {.x (-1) .y 0}] + include : TrigArrowShape xRight SymbolMid xRight arrowTop arrowHeadSize + create-glyph [MangleName 'trigArrowUShapeRight'] [MangleUnicode 0x2B8E] : glyph-proc + set-width MosaicWidth + include : dispiro + widths.center arrowSw + disable-contrast + flat arrowRSB yUpper [heading Leftward] + curl (arrowSB2 + vcDist / 2) yUpper + archv + g4 arrowSB2 SymbolMid + arcvh + flat (arrowSB2 + vcDist / 2) yLower + curl arrowMidX yLower [heading Rightward] + include : TrigArrowShape arrowMidX yLower arrowRSB yLower arrowHeadSize + create-glyph [MangleName 'trigArrowUShapeDown'] [MangleUnicode 0x2B8F] : glyph-proc + set-width MosaicWidth + include : dispiro + widths.center arrowSw + disable-contrast + flat xRight arrowBot [heading {.x (-1) .y 0}] + curl xRight (arrowTop - hcDist / 2) + arcvh + g4 arrowMidX arrowTop + archv + flat xLeft (arrowTop - hcDist / 2) + curl xLeft [Math.min SymbolMid : arrowTop - hcDist / 2 - TINY] [heading {.x 1 .y 0}] + include : TrigArrowShape xLeft SymbolMid xLeft arrowBot arrowHeadSize - MkAngleArrow ArrowShape HBE [MangleName 'Arrow-right-angle-down'] [MangleUnicode 0x21b4] arrowSB arrowTop (arrowRSB - arrowHeadSize) arrowTop (arrowRSB - arrowHeadSize) arrowBot arrowHeadSize - MkAngleArrow ArrowShape VBS [MangleName 'Arrow-down-angle-left'] [MangleUnicode 0x21b5] arrowRSB arrowTop arrowRSB (arrowBot + arrowHeadSize) arrowSB (arrowBot + arrowHeadSize) arrowHeadSize do "Half-head Arrows" MkArrow [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowLeftHR'] [MangleUnicode 0x21BC] arrowRSB SymbolMid arrowSB SymbolMid From 95db38ba9dd6e734218d458a00f8988800e263bc Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Thu, 12 Dec 2024 12:46:33 -0500 Subject: [PATCH 04/10] Optimize glyphs/widths for five characters under Quasi-Proportional. (#2615) * Optimize glyphs for Gha and Cyrillic Dche. * Make two characters slightly wider. * Cleanup of `upper-ae-oe.ptl`. * Fix broken glyph for `cyrl/Dje` under heavy italic slab. * Shrink diagonal tail of `cyrl/ef` under QP. --- changes/32.3.0.md | 8 +++--- .../font-glyphs/src/auto-build/composite.ptl | 2 +- .../font-glyphs/src/letter/cyrillic/dche.ptl | 10 +++++--- .../font-glyphs/src/letter/cyrillic/dje.ptl | 2 +- .../font-glyphs/src/letter/cyrillic/tshe.ptl | 2 +- packages/font-glyphs/src/letter/greek/phi.ptl | 8 +++--- .../font-glyphs/src/letter/latin-ext/gha.ptl | 25 +++++++++++-------- .../src/letter/latin-ext/upper-ae-oe.ptl | 12 ++++----- 8 files changed, 36 insertions(+), 33 deletions(-) diff --git a/changes/32.3.0.md b/changes/32.3.0.md index 0c4c8d317c..43b4c38217 100644 --- a/changes/32.3.0.md +++ b/changes/32.3.0.md @@ -8,7 +8,6 @@ - LATIN CAPITAL LETTER W WITH CIRCUMFLEX (`U+0174`) ... LATIN SMALL LETTER W WITH CIRCUMFLEX (`U+0175`). - LATIN SMALL LETTER HV (`U+0195`). - LATIN CAPITAL LETTER TURNED M (`U+019C`). - - LATIN CAPITAL LETTER GHA (`U+01A2`) ... LATIN SMALL LETTER GHA (`U+01A3`). - LATIN CAPITAL LETTER AE WITH MACRON (`U+01E2`) ... LATIN SMALL LETTER AE WITH MACRON (`U+01E3`). - LATIN CAPITAL LETTER HWAIR (`U+01F6`). - LATIN CAPITAL LETTER AE WITH ACUTE (`U+01FC`) ... LATIN SMALL LETTER AE WITH ACUTE (`U+01FD`). @@ -57,6 +56,8 @@ - LATIN CAPITAL LETTER W WITH GRAVE (`U+1E80`) ... LATIN SMALL LETTER W WITH DOT BELOW (`U+1E89`). - LATIN SMALL LETTER W WITH RING ABOVE (`U+1E98`). - LATIN SUBSCRIPT SMALL LETTER M (`U+2098`). + - TELEPHONE SIGN (`U+2121`). + - FACSIMILE SIGN (`U+213B`). - MILL SIGN (`U+20A5`). - WON SIGN (`U+20A9`). - SMALL ROMAN NUMERAL ONE THOUSAND (`U+217F`) ... ROMAN NUMERAL ONE THOUSAND C D (`U+2180`). @@ -91,8 +92,6 @@ - CYRILLIC SUBSCRIPT SMALL LETTER EF (`U+1E060`). - CYRILLIC SUBSCRIPT SMALL LETTER SHA (`U+1E064`). * Add characters: - - DOUBLE INTERSECTION (`U+22D2`). - - DOUBLE UNION (`U+22D3`). - LEFT OUTER JOIN (`U+27D5`) ... FULL OUTER JOIN (`U+27D7`). - Z NOTATION LEFT BINDING BRACKET (`U+2989`). - Z NOTATION RIGHT BINDING BRACKET (`U+298A`). @@ -111,6 +110,5 @@ - Z NOTATION RANGE ANTIRESTRICTION (`U+2A65`). - SMALLER THAN (`U+2AAA`) ... LARGER THAN OR EQUAL TO (`U+2AAD`). - CLOSED SUBSET (`U+2ACF`) ... CLOSED SUPERSET OR EQUAL TO (`U+2AD2`). - - ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW (`U+2B8C`) ... ANTICLOCKWISE TRIANGLE-HEADED TOP U-SHAPED ARROW (`U+2B8F`). - - RETURN LEFT (`U+2B90`) ... FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE (`U+2B94`). + - ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW (`U+2B8C`) ... FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE (`U+2B94`). - DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS (`U+2BA0`) ... RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS (`U+2BA7`). diff --git a/packages/font-glyphs/src/auto-build/composite.ptl b/packages/font-glyphs/src/auto-build/composite.ptl index f6168d383b..a9e555bd44 100644 --- a/packages/font-glyphs/src/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -1644,7 +1644,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin list 0xFB03 { 'f/compLigLeft1' 'f/compLigLeft1' 'dotlessi/compLigRight' } null list 0xFB04 { 'f/compLigLeft3' 'f/compLigLeft2' 'l/compLigRight' } null - createPhoneticLigatures ToLetter 'phoneticSmcp' para.diversityMM 3 1 0.5 : list + createPhoneticLigatures ToLetter 'phoneticSmcp' (para.diversityT * para.diversityMM) 3 1 0.5 : list list 0x2121 { 'smcpT' 'smcpE' 'smcpL' } 'e' list 0x213B { 'smcpF' 'smcpA' 'smcpX' } 'e' diff --git a/packages/font-glyphs/src/letter/cyrillic/dche.ptl b/packages/font-glyphs/src/letter/cyrillic/dche.ptl index 5291088623..fefc1b2805 100644 --- a/packages/font-glyphs/src/letter/cyrillic/dche.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/dche.ptl @@ -14,7 +14,7 @@ glyph-block Letter-Cyrillic-Dche : begin create-glyph 'cyrl/Dche' 0x52C : glyph-proc include : MarkSet.capital include : ExtendBelowBaseAnchors BottomExtension - include : CyrCheShape [DivFrame 1] CAP [if SLAB 0.5 0.4] BODY.STRAIGHT + include : CyrCheShape [DivFrame 1] CAP [if SLAB 0.45 0.4] BODY.STRAIGHT if SLAB SERIFS.TOP SERIFS.NONE include : CyrDeBottom SB RightSB @@ -26,7 +26,7 @@ glyph-block Letter-Cyrillic-Dche : begin create-glyph 'cyrl/dche.upright' : glyph-proc include : MarkSet.e include : ExtendBelowBaseAnchors BottomExtension - include : CyrCheShape [DivFrame 1] XH [if SLAB 0.5 0.4] BODY.STRAIGHT + include : CyrCheShape [DivFrame 1] XH [if SLAB 0.45 0.4] BODY.STRAIGHT if SLAB SERIFS.TOP SERIFS.NONE include : CyrDeBottom SB RightSB @@ -40,10 +40,12 @@ glyph-block Letter-Cyrillic-Dche : begin define df : include : DivFrame para.diversityM 3 include : df.markSet.e - local subDf : df.slice 3 2 OX + local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) - [HSwToV : 0.25 * df.mvs] + local divSub : (df.width - gap - df.mvs) / Width + local subDf : DivFrame divSub 2 include : CyrDeItalicShapeT dispiro subDf df.mvs include : difference CyrCheShape df XH 0.5 body [if SLAB slabItalic SERIFS.NONE] (sw -- df.mvs) - MaskLeft df.middle + MaskLeft : subDf.rightSB - [HSwToV : 0.5 * df.mvs] select-variant 'cyrl/dche.italic' (follow -- 'cyrl/che') diff --git a/packages/font-glyphs/src/letter/cyrillic/dje.ptl b/packages/font-glyphs/src/letter/cyrillic/dje.ptl index e6b19775ef..b14479dae5 100644 --- a/packages/font-glyphs/src/letter/cyrillic/dje.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/dje.ptl @@ -26,7 +26,7 @@ glyph-block Letter-Cyrillic-Dje : begin include : MidHook.general left -- (left + [HSwToV sw]) right -- right - top -- [Math.min XH : if SLAB (CAP - 1.25 * VJut) XH] + top -- [Math.min XH : if SLAB (CAP - VJut - sw / 4) XH] bottom -- (Hook + sw / 2 + O) ada -- ArchDepthA adb -- ArchDepthB diff --git a/packages/font-glyphs/src/letter/cyrillic/tshe.ptl b/packages/font-glyphs/src/letter/cyrillic/tshe.ptl index 88bcce9b07..2048ba899e 100644 --- a/packages/font-glyphs/src/letter/cyrillic/tshe.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/tshe.ptl @@ -24,7 +24,7 @@ glyph-block Letter-Cyrillic-Tshe : begin include : nShoulder.shape left -- (left + [HSwToV sw]) right -- right - top -- [Math.min XH : if SLAB (CAP - 1.25 * VJut) XH] + top -- [Math.min XH : if SLAB (CAP - VJut - sw / 4) XH] stroke -- sw include : VBar.l left 0 CAP sw include : HBar.t xTopBarLeft xTopBarRight CAP sw diff --git a/packages/font-glyphs/src/letter/greek/phi.ptl b/packages/font-glyphs/src/letter/greek/phi.ptl index 3678f2da76..3cac3517b9 100644 --- a/packages/font-glyphs/src/letter/greek/phi.ptl +++ b/packages/font-glyphs/src/letter/greek/phi.ptl @@ -65,8 +65,8 @@ glyph-block Letter-Greek-Phi : begin define [CursiveBar df y1 y2 y3 y4 sw] : glyph-proc local hd : FlatHookDepth df - local xCrossLeft : mix 0 df.leftSB [mix 1 df.div 2] - local xCrossRight : mix df.width df.rightSB [mix 1 df.div 2] + local xCrossLeft : mix 0 df.leftSB : mix 1 df.div 2 + local xCrossRight : mix df.width df.rightSB : mix 1 df.div 2 local xBarLeft : df.middle - [HSwToV : 0.5 * sw] local xBarRight : df.middle + [HSwToV : 0.5 * sw] @@ -88,7 +88,7 @@ glyph-block Letter-Greek-Phi : begin define [DiagonalTailCursiveBar df y1 y2 y3 y4 sw] : glyph-proc local hd : FlatHookDepth df - local xCrossRight : mix df.width df.rightSB [mix 1 df.div 2] + local xCrossRight : mix df.width df.rightSB : mix 1 df.div 2 local xBarLeft : df.middle - [HSwToV : 0.5 * sw] include : dispiro @@ -100,7 +100,7 @@ glyph-block Letter-Greek-Phi : begin include : dispiro flat df.middle (y2 - O) [widths.center.heading sw Downward] - DiagTail.L df.middle y1 [DiagTail.StdDepth df sw] sw + DiagTail.L df.middle y1 [DiagTail.StdDepth [DivFrame para.diversityF] sw] sw define [MtSerif df y sw] : tagged 'serifMT' : HSerif.lt df.middle y Jut sw define [MbSerif df y sw] : tagged 'serifMB' : HSerif.mb df.middle y Jut sw diff --git a/packages/font-glyphs/src/letter/latin-ext/gha.ptl b/packages/font-glyphs/src/letter/latin-ext/gha.ptl index 45141f9547..f90f0c469f 100644 --- a/packages/font-glyphs/src/letter/latin-ext/gha.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/gha.ptl @@ -16,19 +16,22 @@ glyph-block Letter-Latin-Gha : begin define TERMINAL-TAILED 1 define TERMINAL-DIAG 2 - define [GhaShape df terminal top bot slab] : glyph-proc - local abarRight : df.middle + [HSwToV : 0.5 * df.mvs] - local ada : ArchDepthAOf [Math.max (df.mvs * 1.125) (SmallArchDepth * 0.6 * df.div)] (Width * df.div) - local adb : ArchDepthBOf [Math.max (df.mvs * 1.125) (SmallArchDepth * 0.6 * df.div)] (Width * df.div) - include : OShape top 0 df.leftSB abarRight df.mvs ada adb + define [GhaShape df terminal top bot _ada _adb slab] : glyph-proc + local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) - [HSwToV : 0.25 * df.mvs] + local divSub : (df.width - gap - df.mvs) / Width + local subDf : DivFrame divSub 2 + + local ada : _ada * 0.7 * df.div + local adb : _adb * 0.7 * df.div + include : OShape top 0 subDf.leftSB subDf.rightSB df.mvs ada adb include : match terminal [Just TERMINAL-NORMAL] : VBar.r (df.rightSB - O) bot top df.mvs [Just TERMINAL-TAILED] : RightwardTailedBar (df.rightSB - O) bot top df.mvs [Just TERMINAL-DIAG] : RDiagTailedBar (df.rightSB - O) bot top df.mvs include : dispiro widths.lhs df.mvs - flat df.middle (top - adb) [heading Rightward] - curl (df.middle + 1) (top - adb) [heading Rightward] + flat (subDf.rightSB - [HSwToV : 0.5 * df.mvs]) (top - adb) [heading Rightward] + curl (subDf.rightSB - [HSwToV : 0.5 * df.mvs] + TINY) (top - adb) [heading Rightward] alsoThru 0.5 0.15 g4 (df.rightSB - O - [HSwToV df.mvs]) top [widths 0 df.mvs] @@ -44,15 +47,15 @@ glyph-block Letter-Latin-Gha : begin foreach { suffix { terminal doSerif } } [Object.entries GhaConfig] : do create-glyph "Gha.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.diversityM 3 include : df.markSet.capDesc - include : GhaShape df terminal CAP Descender doSerif + include : GhaShape df terminal CAP Descender ArchDepthA ArchDepthB doSerif include : LeaningAnchor.Below.VBar.r (df.rightSB - O) create-glyph "gha.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.diversityM 3 include : df.markSet.p - include : GhaShape df terminal XH Descender doSerif + include : GhaShape df terminal XH Descender SmallArchDepthA SmallArchDepthB doSerif include : LeaningAnchor.Below.VBar.r (df.rightSB - O) select-variant 'Gha' 0x1A2 (follow -- 'gha') diff --git a/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl b/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl index 8e03dc2a46..c154ba34c4 100644 --- a/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl @@ -48,7 +48,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin define [AEAHalfStraight df top eleft sw] : glyph-proc - define StraightSbShrink : mix 1 (DesignParameters.straightVShapeSbShrink * [StrokeWidthBlend 1 0.75]) [if SLAB 0.75 1] + define StraightSbShrink : mix 1 (DesignParameters.straightVShapeSbShrink * [StrokeWidthBlend 1 0.75]) : if SLAB 0.75 1 define fine : sw * CThin * 1.15 define pInktrap : 2 / 3 define clearance : 0 - OX @@ -76,13 +76,13 @@ glyph-block Letter-Latin-Upper-AE-OE : begin define ada : df.archDepthA ArchDepth sw define adb : df.archDepthB ArchDepth sw - local yMidDepth : if (top > ada + adb) ada (top * (ada / (ada + adb))) + local yMidLeft : if (top > ada + adb) (top - ada) : mix top 0 (ada / (ada + adb)) include : HBar.t df.leftSB eleft (XH * 0.75 / CAP * top) sw include : dispiro widths.rhs sw flat df.leftSB 0 [heading Upward] - curl df.leftSB (top - yMidDepth) + curl df.leftSB yMidLeft arcvh straight.right.end eleft top [heading Rightward] @@ -111,7 +111,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin define eBarPos DesignParameters.upperEBarPos define sw : AESW df top define eleft : df.middle - [HSwToV : 0.25 * sw] - define swVJut : Math.min sw ((df.rightSB - eleft - [HSwToV sw]) * (4 / 5)) + define swVJut : Math.min sw : (df.rightSB - eleft - [HSwToV sw]) * (4 / 5) local xMidRight : df.rightSB - sw / 4 local yBar : top * eBarPos @@ -132,8 +132,8 @@ glyph-block Letter-Latin-Upper-AE-OE : begin local fine : swVJut * [AdviceStroke 3.5] / Stroke include : VBar.r xMidRight (yBar - jutMid) (yBar + jutMid) fine - do "P/Ya Half" - glyph-block-import Letter-Latin-Upper-P : PShape PBarPosY + do "Ya Half" + glyph-block-import Letter-Latin-Upper-P : PShape glyph-block-import Letter-Latin-Upper-R : RevRShape RConfig RBarPos foreach { suffix { legShape fOpen fTailed {slabs revSlabs doLegSlab} } } [Object.entries RConfig] : begin From ce80ec0407b5128c45e211e9ee4503a71c58f7e1 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Sun, 15 Dec 2024 15:43:42 -0500 Subject: [PATCH 05/10] Add dezh and tesh with retroflex hook. (#2263) (#2616) --- changes/32.3.0.md | 6 ++- .../font-glyphs/src/auto-build/composite.ptl | 32 +++++++------ .../font-glyphs/src/letter/latin-ext/ezh.ptl | 17 +++++++ .../src/letter/latin-ext/long-s.ptl | 42 ++++++++++------ .../font-glyphs/src/letter/latin/lower-t.ptl | 12 ++--- packages/font-glyphs/src/letter/latin/s.ptl | 26 +++++----- params/variants.toml | 48 +++++++++---------- 7 files changed, 109 insertions(+), 74 deletions(-) diff --git a/changes/32.3.0.md b/changes/32.3.0.md index 43b4c38217..8c6f2de623 100644 --- a/changes/32.3.0.md +++ b/changes/32.3.0.md @@ -45,8 +45,8 @@ - MODIFIER LETTER CAPITAL W (`U+1D42`). - MODIFIER LETTER SMALL TURNED AE (`U+1D46`). - MODIFIER LETTER SMALL M (`U+1D50`). - - MODIFIER LETTER SMALL TURNED M (`U+015A`). - - LATIN SMALL LETTER UE (`U+016B`). + - MODIFIER LETTER SMALL TURNED M (`U+1D5A`). + - LATIN SMALL LETTER UE (`U+1D6B`). - LATIN SMALL LETTER M WITH MIDDLE TILDE (`U+1D6F`). - LATIN SMALL LETTER M WITH PALATAL HOOK (`U+1D86`). - MODIFIER LETTER SMALL M WITH HOOK (`U+1DAC`) ... MODIFIER LETTER SMALL TURNED M WITH LONG LEG (`U+1DAD`). @@ -112,3 +112,5 @@ - CLOSED SUBSET (`U+2ACF`) ... CLOSED SUPERSET OR EQUAL TO (`U+2AD2`). - ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW (`U+2B8C`) ... FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE (`U+2B94`). - DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS (`U+2BA0`) ... RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS (`U+2BA7`). + - LATIN SMALL LETTER DEZH DIGRAPH WITH RETROFLEX HOOK (`U+1DF19`). + - LATIN SMALL LETTER TESH DIGRAPH WITH RETROFLEX HOOK (`U+1DF1C`). diff --git a/packages/font-glyphs/src/auto-build/composite.ptl b/packages/font-glyphs/src/auto-build/composite.ptl index a9e555bd44..bf0076f71e 100644 --- a/packages/font-glyphs/src/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -1624,21 +1624,23 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin list 0xFB02 { 'f/compLigLeft2' 'l/compLigRight' } null createPhoneticLigatures ToLetter 'phonetic2' para.diversityMM 2 stdShrink 1 : list - list 0x02A3 { 'd/phoneticLeft' 'z/phoneticRight' } 'b' - list 0x02A4 { 'd/phoneticLeft' 'ezh/phoneticRight' } 'bp' - list 0x02A5 { 'd/phoneticLeft' 'zCurlyTail/phoneticRight' } 'b' - list 0x02A6 { 't/phoneticLeft2' 's/phoneticRight' } 'b' - list 0x02A7 { 't/teshLeft' 'esh' } 'bp' - list 0x02A8 { 't/phoneticLeft1' 'cCurlyTail' } 'b' - list 0x02A9 { 'f/phoneticLeft' 'eng/phoneticRight' } 'bp' - list 0x02AA { 'l/phoneticLeft' 's/phoneticRight' } 'b' - list 0x02AB { 'l/phoneticLeft' 'z' } 'b' - list 0xAB66 { 'd/phoneticLeft' 'zRTail/phoneticRight' } 'bp' - list 0xAB67 { 't/phoneticLeft1' 'sRTail' } 'bp' - list 0x1DF12 { 'd/phoneticLeft' 'ezhPalatalHook/phoneticRight' } 'bp' - list 0x1DF17 { 't/teshLeft' 'eshPalatalHook' } 'bp' - list 0xFB05 { 'longs/flatExt' 't/phoneticRight' } null - list 0xFB06 { 's/compLigLeft' 't/phoneticRight' } null + list 0x02A3 { 'd/phoneticLeft' 'z/phoneticRight' } 'b' + list 0x02A4 { 'd/phoneticLeft' 'ezh/phoneticRight' } 'bp' + list 0x02A5 { 'd/phoneticLeft' 'zCurlyTail/phoneticRight' } 'b' + list 0x02A6 { 't/phoneticLeft2' 's/phoneticRight' } 'b' + list 0x02A7 { 't/teshLeft' 'esh' } 'bp' + list 0x02A8 { 't/phoneticLeft1' 'cCurlyTail' } 'b' + list 0x02A9 { 'f/phoneticLeft' 'eng/phoneticRight' } 'bp' + list 0x02AA { 'l/phoneticLeft' 's/phoneticRight' } 'b' + list 0x02AB { 'l/phoneticLeft' 'z' } 'b' + list 0xAB66 { 'd/phoneticLeft' 'zRTail/phoneticRight' } 'bp' + list 0xAB67 { 't/phoneticLeft1' 'sRTail' } 'bp' + list 0x1DF12 { 'd/phoneticLeft' 'ezhPalatalHook/phoneticRight' } 'bp' + list 0x1DF17 { 't/teshLeft' 'eshPalatalHook' } 'bp' + list 0x1DF19 { 'd/phoneticLeft' 'ezhRetroflexHook/phoneticRight' } 'bp' + list 0x1DF1C { 't/teshLeft' 'eshRetroflexHook/teshRight' } 'bp' + list 0xFB05 { 'longs/compLigLeft' 't/compLigRight' } null + list 0xFB06 { 's/compLigLeft' 't/compLigRight' } null createPhoneticLigatures ToLetter 'phonetic3' para.diversityMM 3 stdShrink 1 : list list 0xFB03 { 'f/compLigLeft1' 'f/compLigLeft1' 'dotlessi/compLigRight' } null diff --git a/packages/font-glyphs/src/letter/latin-ext/ezh.ptl b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl index 3cfae45fe3..e3a5923947 100644 --- a/packages/font-glyphs/src/letter/latin-ext/ezh.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl @@ -216,6 +216,22 @@ glyph-block Letter-Latin-Ezh : begin ada -- SmallArchDepthA adb -- SmallArchDepthB + create-glyph "ezhRetroflexHook/phoneticRight.\(suffix)" : glyph-proc + include : MarkSet.p + local b : Math.min (O - SHook) ((-LongVJut) + 0.25 * Stroke) + include : EzhShape [DivFrame 1] XH b + pLeft -- (4/15) + isCursive -- isCursive + isSerifed -- isSerifed + hook -- SHook + ada -- SmallArchDepthA + adb -- SmallArchDepthB + terminalShape -- RetroflexConnectionTerminal + include : RetroflexHook.l + x -- SB + y -- b + yAttach -- (b + SHook) + create-glyph "ezhPalatalHook/phoneticRight.\(suffix)" : glyph-proc include : MarkSet.p local [object yMidBar] : include : EzhShape [DivFrame 1] XH Descender @@ -241,6 +257,7 @@ glyph-block Letter-Latin-Ezh : begin select-variant 'ezhRetroflexHook' 0x1D9A (follow -- 'ezh') select-variant 'ezhPalatalHook' 0x1DF18 (follow -- 'ezh') select-variant 'ezh/phoneticRight' + select-variant 'ezhRetroflexHook/phoneticRight' (follow -- 'ezh/phoneticRight') select-variant 'ezhPalatalHook/phoneticRight' (follow -- 'ezh/phoneticRight') alias 'cyrl/abk/Dze' 0x4E0 'Ezh' diff --git a/packages/font-glyphs/src/letter/latin-ext/long-s.ptl b/packages/font-glyphs/src/letter/latin-ext/long-s.ptl index 0d4affe288..7689a87cd2 100644 --- a/packages/font-glyphs/src/letter/latin-ext/long-s.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/long-s.ptl @@ -174,7 +174,8 @@ glyph-block Letter-Latin-Long-S : begin include : MarkSet.bp currentGlyph.copyBaseAnchorIfAbsent 'leaningAbove' 'above' include : union - intersection [MaskAbove 0] [LongSShape Ascender Descender (HookX + 0.25 * Stroke) Hook] + intersection [MaskAbove 0] + LongSShape Ascender Descender (HookX + 0.25 * Stroke) Hook SmallFDiagonalTail [DivFrame 1] (Middle - [HSwToV HalfStroke]) StandardSerifs (Middle - [HSwToV HalfStroke]) serifStyle create-forked-glyph "longsBar.flatHookDiagonalTailed\(suffix)" : LongSSymmetricOverlayBar Middle @@ -212,37 +213,50 @@ glyph-block Letter-Latin-Long-S : begin include : LongSShape Ascender 0 (HookX + 0.25 * Stroke) Hook select-variant "longs" 0x17F - select-variant "longs/flatExt" (shapeFrom -- "longs") + select-variant "longs/compLigLeft" (shapeFrom -- "longs") select-variant "longsBar" 0x1E9D alias "esh" 0x283 "longs.flatHookTailedSerifless" - derive-composites "eshPalatalHook" 0x1D8B "esh" - PalatalHook.r (x -- RightSB) (y -- 0) (xLink -- Middle) (refSw -- [AdviceStroke 3]) - maskOut -- [intersection [MaskBelow 0] [MaskLeft (Middle + [HSwToV HalfStroke])]] + derive-composites "eshPalatalHook" 0x1D8B "esh" : PalatalHook.r + x -- RightSB + y -- 0 + xLink -- Middle + refSw -- [AdviceStroke 3] + maskOut -- [intersection [MaskBelow 0] [MaskLeft : Middle + [HSwToV HalfStroke]]] + create-glyph "eshRetroflexHook" 0x1D98 : glyph-proc include : MarkSet.bp include : LongSShape Ascender 0 (HookX + 0.25 * Stroke) Hook include : RetroflexHook.l - x -- Middle - (HookX + 0.25 * Stroke) + x -- (Middle - (HookX + 0.25 * Stroke)) y -- 0 yOverflow -- Stroke + create-glyph "eshRetroflexHook/teshRight" : glyph-proc + include : MarkSet.bp + local b : Math.min (2 * O - Stroke) ((-LongVJut) + 0.25 * Stroke) + include : LongSShape Ascender b (HookX + 0.25 * Stroke) Hook + include : RetroflexHook.l + x -- (Middle - (HookX + 0.25 * Stroke)) + y -- b + yOverflow -- Stroke + create-glyph "eshCurlyTail" 0x286 : glyph-proc include : MarkSet.bp local fine : AdviceStroke 3.5 - local rinner : LongJut / 2 - fine / 2 - local m1 : Middle + [HSwToV HalfStroke] - FBalance - # local x2 : mix RightSB m1 0.25 + # local rinner : LongJut / 2 - fine / 2 + local m : Middle + [HSwToV HalfStroke] - FBalance + # local x2 : mix RightSB m 0.25 # local y2 : Descender + O include : union LongSUpperHalf 1 (Middle - FBalance) Ascender 0 (HookX + 0.25 * Stroke) Hook dispiro widths.rhs - flat m1 (-O) [heading Downward] - curl m1 (Descender + fine + rinner * 2) - CurlyTail.n fine Descender (m1 - LongJut - [HSwToV Stroke]) - x2 -- RightSB + [HSwToV : 0.5 * fine] - y2 -- Descender + 0.5 * fine + flat m (-O) [heading Downward] + curl m (Descender + LongJut) + CurlyTail.n fine Descender (m - LongJut - [HSwToV Stroke]) + x2 -- (RightSB + [HSwToV : 0.5 * fine]) + y2 -- (Descender + 0.5 * fine) create-glyph "iFishHook" 0x27F : glyph-proc include : MarkSet.p diff --git a/packages/font-glyphs/src/letter/latin/lower-t.ptl b/packages/font-glyphs/src/letter/latin/lower-t.ptl index 2c4bd93625..e513d13f9a 100644 --- a/packages/font-glyphs/src/letter/latin/lower-t.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-t.ptl @@ -107,8 +107,8 @@ glyph-block Letter-Latin-Lower-T : begin define Flat : namespace export : define [xCrossBarPos df sym] : match sym - ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) [mix df.width df.rightSB [mix 1 df.div 2]]} - __ {[mix 0 df.leftSB [mix 1 df.div 2]] [mix df.width df.rightSB [mix 1 df.div 2]]} + ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) [mix df.width df.rightSB : mix 1 df.div 2]} + __ {[mix 0 df.leftSB [mix 1 df.div 2]] [mix df.width df.rightSB : mix 1 df.div 2]} define [CrossLeft df] : mix 0 df.leftSB [mix 1 df.div 2] @@ -230,7 +230,7 @@ glyph-block Letter-Latin-Lower-T : begin include : df.markSet.b include : (Style.PLBody || Style.Body) df sym top 0 - create-glyph "t/phoneticRight.\(suffix)" : glyph-proc + create-glyph "t/compLigRight.\(suffix)" : glyph-proc set-width df.width include : df.markSet.b include : difference @@ -280,7 +280,7 @@ glyph-block Letter-Latin-Lower-T : begin local df : DivFrame 1 local fine : AdviceStroke 3.5 - local rinner : LongJut / 2 - fine / 2 + # local rinner : LongJut / 2 - fine / 2 local xLeft : Style.BarLeftPos df sym @@ -291,14 +291,14 @@ glyph-block Letter-Latin-Lower-T : begin include : dispiro widths.lhs flat xLeft (yCrossBar - Stroke) [heading Downward] - curl xLeft (fine + rinner * 2) + curl xLeft LongJut CurlyTail.n fine 0 (xLeft + [HSwToV Stroke] + LongJut) 0 0 select-variant 't' 't' select-variant 't/teshLeft' (follow -- 't') select-variant 't/phoneticLeft1' (shapeFrom -- 't') select-variant 't/phoneticLeft2' - select-variant 't/phoneticRight' + select-variant 't/compLigRight' CreateCommaCaronComposition 'tcaron' 0x165 't' derive-glyphs 'tCedilla' 0x163 't' ConnectedCedilla CreateAccentedComposition 'tComma' 0x21B 't' 'commaBelow' diff --git a/packages/font-glyphs/src/letter/latin/s.ptl b/packages/font-glyphs/src/letter/latin/s.ptl index ad18c0852b..78ceab8e38 100644 --- a/packages/font-glyphs/src/letter/latin/s.ptl +++ b/packages/font-glyphs/src/letter/latin/s.ptl @@ -394,13 +394,13 @@ glyph-block Letter-Latin-S : begin derive-composites 'sPalatalHook' 0x1D8A 's' : PalatalHook.r x -- [mix [arch.adjust-x.bot Middle] DfLower.rightSB 0.75] y -- 0 - yAttach -- [mix O [AdviceSArchDepth XH (-1) [AdviceStroke2 2 3 XH]] : archv.yFromX 0.75] + yAttach -- [mix O [AdviceSArchDepth XH (-1) : AdviceStroke2 2 3 XH] : archv.yFromX 0.75] select-variant 's/ascBase' (shapeFrom -- 's') derive-composites "s/compLigLeft" null "s/ascBase" : glyph-proc eject-contour 'arcStartSerifR' - local sw : ArcStartSerifWidth [AdviceStroke2 2 3 XH] + local sw : ArcStartSerifWidth : AdviceStroke2 2 3 XH local fine : sw * [mix CThinB 1 0.6] local hd : FlatHookDepth DfCapital local yStart : XH - [ArcStartSerifDepth SHook] @@ -410,8 +410,8 @@ glyph-block Letter-Latin-S : begin widths.rhs fine flat (RightSB - [HSwToV fine]) yStart [heading Upward] curl (RightSB - [HSwToV fine]) (yStart + neckLength) [heading Upward] - alsoThru.g2 0.5 0.5 [widths.center [mix fine sw 0.35]] - g4 (RightSB - leftExt) [Math.min ([mix XH Ascender 0.5]) (Ascender - 1.375 * sw)] [widths.lhs : mix fine sw 0.7] + alsoThru.g2 0.5 0.5 [widths.center : mix fine sw 0.35] + g4 (RightSB - leftExt) [Math.min (Ascender - 1.375 * sw) : mix XH Ascender 0.5] [widths.lhs : mix fine sw 0.7] arcvh flat RightSB Ascender [widths.rhs.heading sw Rightward] curl (4 * Width) Ascender [widths.rhs.heading sw Rightward] @@ -437,8 +437,8 @@ glyph-block Letter-Latin-S : begin df -- df top -- CAP hook -- Hook - swStart -- BBS * [if (sign > 0) CThin 1] - swEnd -- BBS * [if (sign < 0) CThin 1] + swStart -- (BBS * [if (sign > 0) CThin 1]) + swEnd -- (BBS * [if (sign < 0) CThin 1]) oXLeftTop -- O ess -- BBD offsetC -- { @@ -463,8 +463,8 @@ glyph-block Letter-Latin-S : begin df -- df top -- XH hook -- SHook - swStart -- BBS * [if (sign > 0) CThin 1] - swEnd -- BBS * [if (sign < 0) CThin 1] + swStart -- (BBS * [if (sign > 0) CThin 1]) + swEnd -- (BBS * [if (sign < 0) CThin 1]) oXLeftTop -- (OX / 8) ess -- BBD offsetC -- { @@ -499,10 +499,10 @@ glyph-block Letter-Latin-S : begin define top : CAP * kTop define swBarThick : AdviceStroke 3 - define swBarFine : AdviceStroke [StrokeWidthBlend 3 5.5] + define swBarFine : AdviceStroke : StrokeWidthBlend 3 5.5 define [FullBar df sw] : dispiro - flat [xBot df] (0 + overflow) [widths.center.heading sw Downward] + flat [xBot df] (0 + overflow) [widths.center.heading sw Downward] curl [xTop df] (CAP - overflow) [widths.center.heading sw Downward] define [InterruptBar df] : begin @@ -527,9 +527,9 @@ glyph-block Letter-Latin-S : begin flat @x1 (@y5 + archDepthB) define [InterruptMask df] : begin - local gap : (swBarThick / Stroke * EssUpper) + [Math.max ((top - bot) / 6) [AdviceStroke2 3 3 (top - bot)]] + local gap : (swBarThick / Stroke * EssUpper) + [Math.max ((top - bot) / 6) : AdviceStroke2 3 3 (top - bot)] local yMid : mix bot top 0.5 - local yTermLeft : mix yMid (top - [AdviceSArchDepth (top - bot) (-1) swBarThick]) 0.5 + local yTermLeft : mix yMid (top - [AdviceSArchDepth (top - bot) (-1) swBarThick]) 0.5 local yTermRight : mix yMid (bot + [AdviceSArchDepth (top - bot) (-1) swBarThick]) 0.5 return : dispiro [corner 0 yTermLeft : widths.center gap] [corner Width yTermRight] @@ -539,7 +539,7 @@ glyph-block Letter-Latin-S : begin set-base-anchor 'cvDecompose' df.middle (CAP / 2) DependentSelector.set currentGlyph selector - local [outlineMask] : DollarMask df [AdviceStroke2 2 3 CAP] + local [outlineMask] : DollarMask df : AdviceStroke2 2 3 CAP include : difference [FullBar df swBarThick] [outlineMask] if (fillType === 1) : include : intersection [FullBar df swBarFine] [outlineMask] diff --git a/params/variants.toml b/params/variants.toml index 6d88095a9e..670ce191d2 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -4243,7 +4243,7 @@ descriptionAffix = "bent hook" selectorAffix.t = "bentHook" selectorAffix."t/phoneticLeft1" = "flatHook" selectorAffix."t/phoneticLeft2" = "flatHook" -selectorAffix."t/phoneticRight" = "bentHook" +selectorAffix."t/compLigRight" = "bentHook" selectorAffix.tHookTop = "bentHook" selectorAffix.tHookTopRTail = "hookless" selectorAffix.tRTail = "hookless" @@ -4257,7 +4257,7 @@ descriptionAffix = "flat hook" selectorAffix.t = "flatHook" selectorAffix."t/phoneticLeft1" = "flatHook" selectorAffix."t/phoneticLeft2" = "flatHook" -selectorAffix."t/phoneticRight" = "flatHook" +selectorAffix."t/compLigRight" = "flatHook" selectorAffix.tHookTop = "flatHook" selectorAffix.tHookTopRTail = "hookless" selectorAffix.tRTail = "hookless" @@ -4271,7 +4271,7 @@ descriptionAffix = "diagonal tail" selectorAffix.t = "diagonalTailed" selectorAffix."t/phoneticLeft1" = "flatHook" selectorAffix."t/phoneticLeft2" = "flatHook" -selectorAffix."t/phoneticRight" = "diagonalTailed" +selectorAffix."t/compLigRight" = "diagonalTailed" selectorAffix.tHookTop = "diagonalTailed" selectorAffix.tHookTopRTail = "hookless" selectorAffix.tRTail = "hookless" @@ -4286,7 +4286,7 @@ descriptionJoiner = "without" selectorAffix.t = "hookless" selectorAffix."t/phoneticLeft1" = "hookless" selectorAffix."t/phoneticLeft2" = "hookless" -selectorAffix."t/phoneticRight" = "hookless" +selectorAffix."t/compLigRight" = "hookless" selectorAffix.tHookTop = "hookless" selectorAffix.tHookTopRTail = "hookless" selectorAffix.tRTail = "hookless" @@ -4304,7 +4304,7 @@ descriptionAffix = "crossbar at both sides of the vertical stem" selectorAffix.t = "" selectorAffix."t/phoneticLeft1" = "" selectorAffix."t/phoneticLeft2" = "" -selectorAffix."t/phoneticRight" = "" +selectorAffix."t/compLigRight" = "" selectorAffix.tHookTop = "" selectorAffix.tHookTopRTail = "" selectorAffix.tRTail = "" @@ -4319,7 +4319,7 @@ descriptionAffix = "crossbar at only right side of the vertical stem" selectorAffix.t = "asymmetric" selectorAffix."t/phoneticLeft1" = "asymmetric" selectorAffix."t/phoneticLeft2" = "asymmetric" -selectorAffix."t/phoneticRight" = "asymmetric" +selectorAffix."t/compLigRight" = "asymmetric" selectorAffix.tHookTop = "asymmetric" selectorAffix.tHookTopRTail = "asymmetric" selectorAffix.tRTail = "asymmetric" @@ -4335,7 +4335,7 @@ keyAffix = "" selectorAffix.t = "" selectorAffix."t/phoneticLeft1" = "" selectorAffix."t/phoneticLeft2" = "" -selectorAffix."t/phoneticRight" = "" +selectorAffix."t/compLigRight" = "" selectorAffix.tHookTop = "" selectorAffix.tHookTopRTail = "" selectorAffix.tRTail = "" @@ -4349,7 +4349,7 @@ descriptionAffix = "a shorter neck" selectorAffix.t = "shortNeck" selectorAffix."t/phoneticLeft1" = "shortNeck" selectorAffix."t/phoneticLeft2" = "shortNeck" -selectorAffix."t/phoneticRight" = "" +selectorAffix."t/compLigRight" = "" selectorAffix.tHookTop = "" selectorAffix.tHookTopRTail = "" selectorAffix.tRTail = "shortNeck" @@ -4363,7 +4363,7 @@ descriptionAffix = "a more shorter neck" selectorAffix.t = "shortNeck2" selectorAffix."t/phoneticLeft1" = "shortNeck2" selectorAffix."t/phoneticLeft2" = "shortNeck2" -selectorAffix."t/phoneticRight" = "" +selectorAffix."t/compLigRight" = "" selectorAffix.tHookTop = "" selectorAffix.tHookTopRTail = "" selectorAffix.tRTail = "shortNeck2" @@ -5197,7 +5197,7 @@ rank = 1 groupRank = 10 descriptionAffix = "bending top hook" selectorAffix."longs" = "bentHook" -selectorAffix."longs/flatExt" = "flatHookExt" +selectorAffix."longs/compLigLeft" = "flatHookExt" selectorAffix."longsBar" = "bentHook" [prime.long-s.variants-buildup.stages.top.flat-hook] @@ -5205,7 +5205,7 @@ rank = 2 groupRank = 20 descriptionAffix = "flat top hook" selectorAffix."longs" = "flatHook" -selectorAffix."longs/flatExt" = "flatHookExt" +selectorAffix."longs/compLigLeft" = "flatHookExt" selectorAffix."longsBar" = "flatHook" [prime.long-s.variants-buildup.stages.bottom."*"] @@ -5216,7 +5216,7 @@ rank = 1 groupRank = 1 keyAffix = "" selectorAffix."longs" = "" -selectorAffix."longs/flatExt" = "" +selectorAffix."longs/compLigLeft" = "" selectorAffix."longsBar" = "" [prime.long-s.variants-buildup.stages.bottom.descending] @@ -5224,7 +5224,7 @@ rank = 2 groupRank = 2 descriptionAffix = "terminal descends baseline" selectorAffix."longs" = "descending" -selectorAffix."longs/flatExt" = "descending" +selectorAffix."longs/compLigLeft" = "descending" selectorAffix."longsBar" = "descending" [prime.long-s.variants-buildup.stages.bottom.tailed] @@ -5232,7 +5232,7 @@ rank = 3 groupRank = 3 descriptionAffix = "terminal has a tail" selectorAffix."longs" = "tailed" -selectorAffix."longs/flatExt" = "tailed" +selectorAffix."longs/compLigLeft" = "tailed" selectorAffix."longsBar" = "tailed" [prime.long-s.variants-buildup.stages.bottom.diagonal-tailed] @@ -5240,7 +5240,7 @@ rank = 4 groupRank = 4 descriptionAffix = "terminal has a diagonal tail" selectorAffix."longs" = "diagonalTailed" -selectorAffix."longs/flatExt" = "diagonalTailed" +selectorAffix."longs/compLigLeft" = "diagonalTailed" selectorAffix."longsBar" = "diagonalTailed" [prime.long-s.variants-buildup.stages.serifs.serifless__non-descending] @@ -5250,7 +5250,7 @@ keyAffix = "serifless" descriptionJoiner = "without" descriptionAffix = "serifs" selectorAffix."longs" = "serifless" -selectorAffix."longs/flatExt" = "serifless" +selectorAffix."longs/compLigLeft" = "serifless" selectorAffix."longsBar" = "serifless" [prime.long-s.variants-buildup.stages.serifs.serifless__descending] @@ -5260,21 +5260,21 @@ keyAffix = "" descriptionJoiner = "without" descriptionAffix = "serifs" selectorAffix."longs" = "serifless" -selectorAffix."longs/flatExt" = "serifless" +selectorAffix."longs/compLigLeft" = "serifless" selectorAffix."longsBar" = "serifless" [prime.long-s.variants-buildup.stages.serifs.middle-serifed] rank = 2 descriptionAffix = "middle serif" selectorAffix."longs" = "middleSerifed" -selectorAffix."longs/flatExt" = "middleSerifed" +selectorAffix."longs/compLigLeft" = "middleSerifed" selectorAffix."longsBar" = "serifless" [prime.long-s.variants-buildup.stages.serifs.middle-serifed-xh] rank = 3 descriptionAffix = "middle serif at x-height" selectorAffix."longs" = "middleSerifedXH" -selectorAffix."longs/flatExt" = "middleSerifedXH" +selectorAffix."longs/compLigLeft" = "middleSerifedXH" selectorAffix."longsBar" = "serifless" [prime.long-s.variants-buildup.stages.serifs.bottom-serifed] @@ -5282,7 +5282,7 @@ rank = 4 enableIf = [{ bottom = "non-descending" }] descriptionAffix = "bottom serif" selectorAffix."longs" = "bottomSerifed" -selectorAffix."longs/flatExt" = "bottomSerifed" +selectorAffix."longs/compLigLeft" = "bottomSerifed" selectorAffix."longsBar" = "bottomSerifed" [prime.long-s.variants-buildup.stages.serifs.double-serifed] @@ -5290,7 +5290,7 @@ rank = 5 enableIf = [{ bottom = "non-descending" }] descriptionAffix = "bottom and middle serifs" selectorAffix."longs" = "doubleSerifed" -selectorAffix."longs/flatExt" = "doubleSerifed" +selectorAffix."longs/compLigLeft" = "doubleSerifed" selectorAffix."longsBar" = "bottomSerifed" [prime.long-s.variants-buildup.stages.serifs.double-serifed-xh] @@ -5298,7 +5298,7 @@ rank = 6 enableIf = [{ bottom = "non-descending" }] descriptionAffix = "bottom and middle serifs at x-height" selectorAffix."longs" = "doubleSerifedXH" -selectorAffix."longs/flatExt" = "doubleSerifedXH" +selectorAffix."longs/compLigLeft" = "doubleSerifedXH" selectorAffix."longsBar" = "bottomSerifed" @@ -5362,7 +5362,7 @@ selectorAffix.eszet = "serifless" [prime.eszet.variants-buildup.stages.serifs.middle-serifed] rank = 2 descriptionAffix = "serif at middle" -selectorAffix.eszet = "middleSerifed" +selectorAffix.eszet = { if = [{ body = "traditional" }, { body = "traditional-flat-hook" }], then = "middleSerifedXH", else = "middleSerifed" } [prime.eszet.variants-buildup.stages.serifs.middle-serifed-xh] rank = 3 @@ -5380,7 +5380,7 @@ selectorAffix.eszet = "bottomSerifed" enableIf = [{terminal = "non-descending"}] rank = 5 descriptionAffix = "serif at middle and bottom" -selectorAffix.eszet = "dualSerifed" +selectorAffix.eszet = { if = [{ body = "traditional" }, { body = "traditional-flat-hook" }], then = "dualSerifedXH", else = "dualSerifed" } [prime.eszet.variants-buildup.stages.serifs.dual-serifed-xh] enableIf = [ From 02ef0538bfd46638c34f5a6b293b853a5e209937 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Mon, 16 Dec 2024 20:25:18 -0500 Subject: [PATCH 06/10] Further unify/optimize widths of Lower `w`/omega under Quasi-Proportional. (#2617) * Further unify lower `w`/omega shapes/widths. * Cleanup. --- changes/32.3.0.md | 17 +++--- .../src/letter/latin-ext/flattened-open-a.ptl | 24 ++++++-- packages/font-glyphs/src/letter/latin/w.ptl | 60 +++++++++---------- 3 files changed, 56 insertions(+), 45 deletions(-) diff --git a/changes/32.3.0.md b/changes/32.3.0.md index 8c6f2de623..631ac8eb88 100644 --- a/changes/32.3.0.md +++ b/changes/32.3.0.md @@ -1,11 +1,10 @@ * Make certain M-width characters slightly wider under Quasi-Proportional. Affected characters: - LATIN CAPITAL LETTER W (`U+0057`). - LATIN SMALL LETTER M (`U+006D`). - - LATIN SMALL LETTER W (`U+0077`). - LATIN CAPITAL LETTER AE (`U+00C6`). - LATIN SMALL LETTER AE (`U+00E6`). - LATIN CAPITAL LIGATURE OE (`U+0152`) ... LATIN SMALL LIGATURE OE (`U+0153`). - - LATIN CAPITAL LETTER W WITH CIRCUMFLEX (`U+0174`) ... LATIN SMALL LETTER W WITH CIRCUMFLEX (`U+0175`). + - LATIN CAPITAL LETTER W WITH CIRCUMFLEX (`U+0174`). - LATIN SMALL LETTER HV (`U+0195`). - LATIN CAPITAL LETTER TURNED M (`U+019C`). - LATIN CAPITAL LETTER AE WITH MACRON (`U+01E2`) ... LATIN SMALL LETTER AE WITH MACRON (`U+01E3`). @@ -13,9 +12,7 @@ - LATIN CAPITAL LETTER AE WITH ACUTE (`U+01FC`) ... LATIN SMALL LETTER AE WITH ACUTE (`U+01FD`). - LATIN SMALL LETTER DB DIGRAPH (`U+0238`) ... LATIN SMALL LETTER QP DIGRAPH (`U+0239`). - LATIN SMALL LETTER TURNED M (`U+026F`) ... LATIN SMALL LETTER M WITH HOOK (`U+0271`). - - LATIN SMALL LETTER TURNED W (`U+028D`). - LATIN SMALL LETTER DZ DIGRAPH (`U+02A3`) ... LATIN SMALL LETTER LZ DIGRAPH (`U+02AB`). - - MODIFIER LETTER SMALL W (`U+02B7`). - CYRILLIC CAPITAL LETTER LJE (`U+0409`) ... CYRILLIC CAPITAL LETTER NJE (`U+040A`). - CYRILLIC CAPITAL LETTER SHA (`U+0428`) ... CYRILLIC CAPITAL LETTER SHCHA (`U+0429`). - CYRILLIC SMALL LETTER EF (`U+0444`). @@ -28,7 +25,7 @@ - CYRILLIC CAPITAL LETTER KOMI DJE (`U+0502`) ... CYRILLIC SMALL LETTER KOMI ZJE (`U+0505`). - CYRILLIC CAPITAL LETTER KOMI LJE (`U+0508`) ... CYRILLIC SMALL LETTER KOMI NJE (`U+050B`). - CYRILLIC CAPITAL LETTER YAE (`U+0518`) ... CYRILLIC SMALL LETTER YAE (`U+0519`). - - CYRILLIC CAPITAL LETTER WE (`U+051C`) ... CYRILLIC SMALL LETTER WE (`U+051D`). + - CYRILLIC CAPITAL LETTER WE (`U+051C`). - CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK (`U+0520`) ... CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK (`U+0523`). - CYRILLIC CAPITAL LETTER DZZHE (`U+052A`) ... CYRILLIC SMALL LETTER DZZHE (`U+052B`). - ARMENIAN CAPITAL LETTER XEH (`U+053D`). @@ -53,8 +50,11 @@ - LATIN SMALL LETTER M WITH ACUTE (`U+1E3F`). - LATIN SMALL LETTER M WITH DOT ABOVE (`U+1E41`). - LATIN SMALL LETTER M WITH DOT BELOW (`U+1E43`). - - LATIN CAPITAL LETTER W WITH GRAVE (`U+1E80`) ... LATIN SMALL LETTER W WITH DOT BELOW (`U+1E89`). - - LATIN SMALL LETTER W WITH RING ABOVE (`U+1E98`). + - LATIN CAPITAL LETTER W WITH GRAVE (`U+1E80`). + - LATIN CAPITAL LETTER W WITH ACUTE (`U+1E82`). + - LATIN CAPITAL LETTER W WITH DIAERESIS (`U+1E84`). + - LATIN CAPITAL LETTER W WITH DOT ABOVE (`U+1E86`). + - LATIN CAPITAL LETTER W WITH DOT BELOW (`U+1E88`). - LATIN SUBSCRIPT SMALL LETTER M (`U+2098`). - TELEPHONE SIGN (`U+2121`). - FACSIMILE SIGN (`U+213B`). @@ -66,7 +66,7 @@ - VERY MUCH LESS-THAN (`U+22D8`) ... VERY MUCH GREATER-THAN (`U+22D9`). - LEFT AND RIGHT DOUBLE TURNSTILE (`U+27DA`) ... LEFT AND RIGHT TACK (`U+27DB`). - SHUFFLE PRODUCT (`U+29E2`). - - LATIN CAPITAL LETTER W WITH HOOK (`U+2C72`) ... LATIN SMALL LETTER W WITH HOOK (`U+2C73`). + - LATIN CAPITAL LETTER W WITH HOOK (`U+2C72`). - CYRILLIC CAPITAL LETTER BROAD OMEGA (`U+A64C`). - CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O (`U+A66C`) ... CYRILLIC LETTER MULTIOCULAR O (`U+A66E`). - CYRILLIC CAPITAL LETTER ZHWE (`U+A684`) ... CYRILLIC SMALL LETTER CCHE (`U+A687`). @@ -82,7 +82,6 @@ - LATIN SMALL LETTER SAKHA YAT (`U+AB60`). - LATIN SMALL LETTER UO (`U+AB63`). - LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX HOOK (`U+AB66`) ... LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK (`U+AB67`). - - MODIFIER LETTER TURNED W (`U+AB69`). - LATIN SMALL LIGATURE FFI (`U+FB03`) ... LATIN SMALL LIGATURE ST (`U+FB06`). - MODIFIER LETTER SMALL AE (`U+10783`). - LATIN SMALL LETTER DEZH DIGRAPH WITH PALATAL HOOK (`U+1DF12`). diff --git a/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl b/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl index da3a5c8aab..9217889206 100644 --- a/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl @@ -13,15 +13,27 @@ glyph-block Letter-Latin-Flattened-Open-A : begin local df : include : DivFrame para.diversityMM 3 include : df.markSet.e + local top : 0.5 * XH + + local subDf : df.slice 3 2 OX + local ada : Math.min (top - TINY) : subDf.archDepthA SmallArchDepth df.mvs + local adb : Math.min (top - TINY) : subDf.archDepthB SmallArchDepth df.mvs + include : dispiro - g4.down.start df.leftSB (0.5 * XH) [widths.center.heading df.mvs Downward] + widths.lhs df.mvs + flat (df.leftSB + OX) top [heading Downward] + curl (df.leftSB + OX) adb [heading Downward] arcvh - g4.right.mid [mix df.middle df.leftSB 0.5] (0.5 * df.mvs) [heading Rightward] + g4 [mix (df.leftSB + OX) (df.middle + [HSwToV : 0.5 * df.mvs]) 0.5] O [heading Rightward] archv - g4.up.end df.middle (0.5 * XH) [heading Upward] + flat (df.middle + [HSwToV : 0.5 * df.mvs]) ada [heading Upward] + curl (df.middle + [HSwToV : 0.5 * df.mvs]) top [heading Upward] include : dispiro - g4.down.start df.middle (0.5 * XH) [widths.center.heading df.mvs Downward] + widths.lhs df.mvs + flat (df.middle - [HSwToV : 0.5 * df.mvs]) top [heading Downward] + curl (df.middle - [HSwToV : 0.5 * df.mvs]) adb [heading Downward] arcvh - g4.right.mid [mix df.middle df.rightSB 0.5] (0.5 * df.mvs) [heading Rightward] + g4 [mix (df.middle - [HSwToV : 0.5 * df.mvs]) (df.rightSB - OX) 0.5] O [heading Rightward] archv - g4.up.end df.rightSB (0.5 * XH) [heading Upward] + flat (df.rightSB - OX) ada [heading Upward] + curl (df.rightSB - OX) top [heading Upward] diff --git a/packages/font-glyphs/src/letter/latin/w.ptl b/packages/font-glyphs/src/letter/latin/w.ptl index 4e4c6c52dc..d5137c0a0e 100644 --- a/packages/font-glyphs/src/letter/latin/w.ptl +++ b/packages/font-glyphs/src/letter/latin/w.ptl @@ -49,26 +49,26 @@ glyph-block Letter-Latin-W : begin define [WDim df top bodyType] : begin local strokeOuter : match bodyType - [Just FORM-CURLY] : AdviceStroke CwOuterStrokeCurly [Math.sqrt df.div] - [Just FORM-STRAIGHT] : AdviceStroke CwOuterStrokeStraight1 [Math.sqrt df.div] - [Just FORM-FLAT-TOP] : AdviceStroke CwOuterStrokeStraight2 [Math.sqrt df.div] - [Just FORM-DOUBLE-V] : AdviceStroke CwDoubleV [Math.sqrt df.div] - [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV [Math.sqrt df.div] - [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega [Math.sqrt df.div] + [Just FORM-CURLY] : AdviceStroke CwOuterStrokeCurly : Math.sqrt df.div + [Just FORM-STRAIGHT] : AdviceStroke CwOuterStrokeStraight1 : Math.sqrt df.div + [Just FORM-FLAT-TOP] : AdviceStroke CwOuterStrokeStraight2 : Math.sqrt df.div + [Just FORM-DOUBLE-V] : AdviceStroke CwDoubleV : Math.sqrt df.div + [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.div + [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.div local fineOuter : match bodyType - [Just FORM-CURLY] : AdviceStroke CwFineOuter df.div - [Just FORM-STRAIGHT] : AdviceStroke CwFineOuterStraight [Math.sqrt df.div] - [Just FORM-FLAT-TOP] : AdviceStroke CwFineOuterStraight [Math.sqrt df.div] - [Just FORM-DOUBLE-V] : AdviceStroke CwDoubleV [Math.sqrt df.div] - [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV [Math.sqrt df.div] - [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega [Math.sqrt df.div] + [Just FORM-CURLY] : AdviceStroke CwFineOuter df.div + [Just FORM-STRAIGHT] : AdviceStroke CwFineOuterStraight : Math.sqrt df.div + [Just FORM-FLAT-TOP] : AdviceStroke CwFineOuterStraight : Math.sqrt df.div + [Just FORM-DOUBLE-V] : AdviceStroke CwDoubleV : Math.sqrt df.div + [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.div + [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.div local fineInner : match bodyType - [Just FORM-CURLY] : AdviceStroke CwFineInner df.div - [Just FORM-STRAIGHT] : AdviceStroke CwFineInnerStraight [Math.sqrt df.div] - [Just FORM-FLAT-TOP] : AdviceStroke CwFineInnerStraight [Math.sqrt df.div] - [Just FORM-DOUBLE-V] : AdviceStroke CwFineInnerDoubleV [Math.sqrt df.div] - [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV [Math.sqrt df.div] - [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega [Math.sqrt df.div] + [Just FORM-CURLY] : AdviceStroke CwFineInner df.div + [Just FORM-STRAIGHT] : AdviceStroke CwFineInnerStraight : Math.sqrt df.div + [Just FORM-FLAT-TOP] : AdviceStroke CwFineInnerStraight : Math.sqrt df.div + [Just FORM-DOUBLE-V] : AdviceStroke CwFineInnerDoubleV : Math.sqrt df.div + [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.div + [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.div local fineHeight : (fineOuter + fineInner) / 2 local wCo : match bodyType @@ -216,7 +216,7 @@ glyph-block Letter-Latin-W : begin [Just SERIFS-ASYMMETRIC-ALL] : composite-proc sfm.lt.outer sfm.rt.full [Just SERIFS-CURSIVE] : NeedSlab SLAB sf.lt.outer [Just SERIFS-CYRL-OMEGA] : begin - local jut : Math.min Jut ([HSwToV : 0.5 * dim.strokeOuter] + 0.375 * (dim.xLeft2 - df.leftSB - [HSwToV : 1.5 * dim.strokeOuter])) + local jut : Math.min Jut : [HSwToV : 0.5 * dim.strokeOuter] + 0.375 * (dim.xLeft2 - df.leftSB - [HSwToV : 1.5 * dim.strokeOuter]) NeedSlab SLAB : composite-proc HSerif.mtAsymmetric (df.leftSB + [HSwToV : 0.5 * dim.strokeOuter]) dim.wMidHeight jut jut HSerif.mtAsymmetric dim.xLeft2 dim.wMidHeight jut jut @@ -342,21 +342,21 @@ glyph-block Letter-Latin-W : begin [Just SERIFS-MOTION] : begin sf.lt.outer ___ : glyph-proc - define [WCursiveImpl df top bodyType serifsType] : WCursiveImplImpl false df top bodyType serifsType - define [WHookTopCursive df top bodyType serifsType] : WCursiveImplImpl true df top bodyType serifsType + define [WCursiveImpl df top bodyType serifsType] : WCursiveImplImpl false df top bodyType serifsType + define [WHookTopCursive df top bodyType serifsType] : WCursiveImplImpl true df top bodyType serifsType define WConfig : SuffixCfg.weave # Body object - straight { WShapeImpl WHooktopShape FORM-STRAIGHT para.diversityM para.diversityM } - straightAsymmetric { WShapeImpl WHooktopShape FORM-ASYMMETRIC para.diversityM para.diversityM } - straightDoubleV { WShapeImpl WHooktopShape FORM-DOUBLE-V para.diversityM para.diversityM } - straightFlatTop { WShapeImpl WHooktopShape FORM-FLAT-TOP para.diversityMM para.diversityMM } - straightVerticalSides { WVertSides WVSHookTopShape FORM-STRAIGHT para.diversityM para.diversityT } - roundedVerticalSides { WRounded WHookTopRounded FORM-CURLY para.diversityMM para.diversityM } - curly { WShapeImpl WHooktopShape FORM-CURLY para.diversityM para.diversityM } - cursive { WCursiveImpl WHookTopCursive FORM-CURLY para.diversityM para.diversityM } - cyrlOmega { WShapeImpl WHooktopShape FORM-CYRL-OMEGA para.diversityMM para.diversityM } + straight { WShapeImpl WHooktopShape FORM-STRAIGHT para.diversityM para.diversityM } + straightAsymmetric { WShapeImpl WHooktopShape FORM-ASYMMETRIC para.diversityM para.diversityM } + straightDoubleV { WShapeImpl WHooktopShape FORM-DOUBLE-V para.diversityM para.diversityM } + straightFlatTop { WShapeImpl WHooktopShape FORM-FLAT-TOP para.diversityMM para.diversityM } + straightVerticalSides { WVertSides WVSHookTopShape FORM-STRAIGHT para.diversityM para.diversityT } + roundedVerticalSides { WRounded WHookTopRounded FORM-CURLY para.diversityMM para.diversityM } + curly { WShapeImpl WHooktopShape FORM-CURLY para.diversityM para.diversityM } + cursive { WCursiveImpl WHookTopCursive FORM-CURLY para.diversityM para.diversityM } + cyrlOmega { WShapeImpl WHooktopShape FORM-CYRL-OMEGA para.diversityMM para.diversityM } # Serifs function [body] : if (body == 'cyrlOmega') From 4b3e3f8b180208d44098b0a19e38966450282518 Mon Sep 17 00:00:00 2001 From: Logo <21302803+Logo121@users.noreply.github.com> Date: Thu, 19 Dec 2024 14:07:06 +0800 Subject: [PATCH 07/10] Adding/Harmonizing some symbols with small circles (#2618) * circles * more circles * accidentals * doc * optimize marriage --- changes/32.3.0.md | 5 + packages/font-glyphs/src/meta/aesthetics.ptl | 4 +- packages/font-glyphs/src/meta/macros.ptl | 6 +- packages/font-glyphs/src/symbol/arrow.ptl | 351 ++++++++++-------- .../src/symbol/geometric/masked.ptl | 33 +- .../src/symbol/geometric/plain.ptl | 1 + .../font-glyphs/src/symbol/math/arith.ptl | 108 ++++-- .../src/symbol/pictograph/musical.ptl | 137 ++++--- 8 files changed, 383 insertions(+), 262 deletions(-) diff --git a/changes/32.3.0.md b/changes/32.3.0.md index 631ac8eb88..c3e2c4fc65 100644 --- a/changes/32.3.0.md +++ b/changes/32.3.0.md @@ -91,6 +91,9 @@ - CYRILLIC SUBSCRIPT SMALL LETTER EF (`U+1E060`). - CYRILLIC SUBSCRIPT SMALL LETTER SHA (`U+1E064`). * Add characters: + - MARRIAGE SYMBOL (`U+26AD`). + - DIVORCE SYMBOL (`U+26AE`). + - UNMARRIED PARTNERSHIP SYMBOL (`U+26AF`). - LEFT OUTER JOIN (`U+27D5`) ... FULL OUTER JOIN (`U+27D7`). - Z NOTATION LEFT BINDING BRACKET (`U+2989`). - Z NOTATION RIGHT BINDING BRACKET (`U+298A`). @@ -111,5 +114,7 @@ - CLOSED SUBSET (`U+2ACF`) ... CLOSED SUPERSET OR EQUAL TO (`U+2AD2`). - ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW (`U+2B8C`) ... FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE (`U+2B94`). - DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS (`U+2BA0`) ... RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS (`U+2BA7`). + - UNITED SYMBOL (`U+2BFA`) ... PASSED SYMBOL (`U+2BFD`). + - MUSICAL SYMBOL FLAT UP (`U+1D12C`) ... MUSICAL SYMBOL SHARP DOWN (`U+1D131`). - LATIN SMALL LETTER DEZH DIGRAPH WITH RETROFLEX HOOK (`U+1DF19`). - LATIN SMALL LETTER TESH DIGRAPH WITH RETROFLEX HOOK (`U+1DF1C`). diff --git a/packages/font-glyphs/src/meta/aesthetics.ptl b/packages/font-glyphs/src/meta/aesthetics.ptl index f7c5c7b594..b0a80b3344 100644 --- a/packages/font-glyphs/src/meta/aesthetics.ptl +++ b/packages/font-glyphs/src/meta/aesthetics.ptl @@ -203,8 +203,8 @@ export : define [calculateMetrics para] : begin TBalance2 RBalance RBalance2 FBalance OneBalance WideWidth0 WideWidth1 WideWidth2 WideWidth3 WideWidth4 EssUpper EssLower EssQuestion HalfStroke RightSB Middle DotRadius PeriodRadius SideJut ArchDepthA ArchDepthB SmallArchDepthA SmallArchDepthB CorrectionOMidX CorrectionOMidS - compositeBaseAnchors AdviceStroke AdviceStroke2 OverlayStroke OperatorStroke GeometryStroke - ShoulderFine AdviceGlottalStopArchDepth StrokeWidthBlend ArchDepthAOf ArchDepthBOf + compositeBaseAnchors AdviceStroke AdviceStroke2 AdviceStrokeInSpace OverlayStroke OperatorStroke + GeometryStroke ShoulderFine AdviceGlottalStopArchDepth StrokeWidthBlend ArchDepthAOf ArchDepthBOf SmoothAdjust MidJutSide MidJutCenter YSmoothMidR YSmoothMidL HSwToV NarrowUnicodeT WideUnicodeT VERY-FAR TINY] diff --git a/packages/font-glyphs/src/meta/macros.ptl b/packages/font-glyphs/src/meta/macros.ptl index fa44b35778..d0c5073c54 100644 --- a/packages/font-glyphs/src/meta/macros.ptl +++ b/packages/font-glyphs/src/meta/macros.ptl @@ -386,9 +386,9 @@ define-macro glyph-block : syntax-rules FBalance OneBalance WideWidth0 WideWidth1 WideWidth2 WideWidth3 WideWidth4 EssUpper EssLower EssQuestion HalfStroke RightSB Middle DotRadius PeriodRadius SideJut ArchDepthA ArchDepthB SmallArchDepthA SmallArchDepthB CorrectionOMidX CorrectionOMidS - AdviceStroke AdviceStroke2 OverlayStroke OperatorStroke GeometryStroke ShoulderFine - AdviceGlottalStopArchDepth StrokeWidthBlend ArchDepthAOf ArchDepthBOf SmoothAdjust - MidJutSide MidJutCenter compositeBaseAnchors YSmoothMidR YSmoothMidL HSwToV + AdviceStroke AdviceStroke2 AdviceStrokeInSpace OverlayStroke OperatorStroke GeometryStroke + ShoulderFine AdviceGlottalStopArchDepth StrokeWidthBlend ArchDepthAOf ArchDepthBOf + SmoothAdjust MidJutSide MidJutCenter compositeBaseAnchors YSmoothMidR YSmoothMidL HSwToV NarrowUnicodeT WideUnicodeT VERY-FAR TINY] define spiroFnImports `[g4 g2 corner flat curl virt close end straight g2c cg2 flatc ccurl diff --git a/packages/font-glyphs/src/symbol/arrow.ptl b/packages/font-glyphs/src/symbol/arrow.ptl index 0fd6cfa1d5..d2acb8187b 100644 --- a/packages/font-glyphs/src/symbol/arrow.ptl +++ b/packages/font-glyphs/src/symbol/arrow.ptl @@ -37,6 +37,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 define arrowDiagBot : mix arrowMidX arrowBot diagPropY define arrowDiagTop : mix arrowMidX arrowTop diagPropY + # Arrow Bars define [ArrowBar x1 y1 x2 y2 halfSw w _offset] : begin return : PointingTo x1 y1 x2 y2 : lambda [mag] : begin local p : (mag - [fallback _offset : o + halfSw * [fallback w 1.1]]) / mag @@ -90,6 +91,47 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 flat (mag - [Math.abs s] / 2) 0 [widths.center (halfSw * 2)] curl [mix mag 0 p] 0 + define [ArrowBarMaskOut d] : spiro-outline + corner O 0 + corner (2 * d + O) (2 * d) + corner (-2 * d + O) (2 * d) + corner (-2 * d + O) (-2 * d) + corner (2 * d + O) (-2 * d) + + define [DoubleArrowBarShape w x1 y1 x2 y2] : begin + return : PointingTo x1 y1 x2 y2 : lambda [mag] : begin + local fine : Math.min (w / 3) arrowSw + local coFine : w / 2 - fine / 2 + return : difference + union + dispiro [widths.center fine] [flat 0 (+coFine)] [curl mag (+coFine)] + dispiro [widths.center fine] [flat 0 (-coFine)] [curl mag (-coFine)] + ArrowBarMaskOut coFine + + define [TripleArrowBarShape w x1 y1 x2 y2] : begin + return : PointingTo x1 y1 x2 y2 : lambda [mag] : begin + local fine : Math.min (w / 4) arrowSw + local coFine : w / 2 - fine / 2 + return : difference + union + dispiro [widths.center fine] [flat 0 (+coFine)] [curl mag (+coFine)] + dispiro [widths.center fine] [flat 0 0] [curl mag 0] + dispiro [widths.center fine] [flat 0 (-coFine)] [curl mag (-coFine)] + ArrowBarMaskOut coFine + + define [QuadrupleArrowBarShape w x1 y1 x2 y2] : begin + return : PointingTo x1 y1 x2 y2 : lambda [mag] : begin + local fine : Math.min (w / 6.4) arrowSw + local coFine : w / 2 - fine / 2 + return : difference + union + dispiro [widths.center fine] [flat 0 (+coFine)] [curl mag (+coFine)] + dispiro [widths.center fine] [flat 0 (+coFine / 3)] [curl mag (+coFine / 3)] + dispiro [widths.center fine] [flat 0 (-coFine / 3)] [curl mag (-coFine / 3)] + dispiro [widths.center fine] [flat 0 (-coFine)] [curl mag (-coFine)] + ArrowBarMaskOut coFine + + # Arrow Heads/Tails define [ArrowHead x1 y1 x2 y2 _size] : union LHSHalfArrowHead x1 y1 x2 y2 0 _size RHSHalfArrowHead x1 y1 x2 y2 0 _size @@ -171,14 +213,20 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 corner length (-width + o) Rect width (-width) (0.6 * length - 0.5 * sw) (0.6 * length + 0.5 * sw) + define [BarbArrowHead x1 y1 x2 y2 width length thickness] : new-glyph : glyph-proc + include : PointingTo x1 y1 x2 y2 : lambda [mag] : begin + spiro-outline + corner o 0 + corner length (width - o) + corner (length + thickness) (width - o) + corner (o + thickness) 0 + corner (length + thickness) (-width + o) + corner length (-width + o) + define [RectangleArrowTail x1 y1 x2 y2 width _length _width2] : begin local length : fallback _length width return : new-glyph : PointingTo x1 y1 x2 y2 : lambda [mag] : Rect width (-[fallback _width2 width]) 0 length - define [ArrowShape x1 y1 x2 y2 size] : glyph-proc - include : ArrowHead x1 y1 x2 y2 size - include : ArrowBar x1 y1 x2 y2 halfArrowSw - define [ArrowTailBarShape x1 y1 x2 y2 size sw] : begin return : PointingTo x1 y1 x2 y2 : lambda [mag] : begin dispiro @@ -186,28 +234,39 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 flat mag size curl mag (-size) - define [ArrowFromBarShape x1 y1 x2 y2 size] : glyph-proc + # Arrow Shapes + define [ArrowShape x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw + include : ArrowHead x1 y1 x2 y2 size + include : ArrowBar x1 y1 x2 y2 halfSw + + define [ArrowFromBarShape x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw local width : Math.abs (x1 - x2) local height : Math.abs (y1 - y2) local barShrink : size * [Math.min (width / height) (height / width)] local p : barShrink / [Math.hypot width height] include : ArrowHead x1 y1 x2 y2 size - include : ArrowBar [mix x1 x2 p] [mix y1 y2 p] x2 y2 halfArrowSw + include : ArrowBar [mix x1 x2 p] [mix y1 y2 p] x2 y2 halfSw include : ArrowTailBarShape [mix x1 x2 p] [mix y1 y2 p] x2 y2 size fine - define [ThinArrowShape x1 y1 x2 y2 size] : glyph-proc + define [ThinArrowShape x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw include : ArrowHead x1 y1 x2 y2 size include : ArrowBar x1 y1 x2 y2 (0.5 * [mix fine terminal 0.5]) - define [TrigArrowShape x1 y1 x2 y2 size] : glyph-proc + define [TrigArrowShape x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw include : TriangleArrowHead x1 y1 x2 y2 (0.75 * size) - include : ArrowBar x1 y1 x2 y2 halfArrowSw + include : ArrowBar x1 y1 x2 y2 halfSw - define [WeightedTrigArrowShape sw w h] : lambda [x1 y1 x2 y2 size] : glyph-proc + define [WeightedTrigArrowShape sw w h] : lambda [x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw include : TriangleArrowHead x1 y1 x2 y2 (0.75 * w * size) (0.75 * [fallback h w] * size) include : ArrowBar x1 y1 x2 y2 (sw / 2) 0 (0.75 * [fallback h w] * size) - define [OpenArrowShape x1 y1 x2 y2 size] : glyph-proc + define [OpenArrowShape x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw local fine : Math.min [AdviceStroke 5] (size * 0.75 / 3) local mag : Math.hypot (y2 - y1) (x2 - x1) local p : (mag - fine) / mag @@ -221,11 +280,12 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 include : difference union - ArrowBar x1 y1 x2 y2 halfArrowSw + ArrowBar x1 y1 x2 y2 halfSw TriangleArrowHead x1 y1 x2 y2 (0.75 * size) TriangleArrowHead x1a y1a x2a y2a (0.75 * size - innerHeaderLengthShrink) - define [DoubleTrigArrowShape x1 y1 x2 y2 size] : glyph-proc + define [DoubleTrigArrowShape x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw local mag : Math.hypot (y2 - y1) (x2 - x1) local p : (mag - 0.75 * size + o) / mag local x3 : mix x1 x2 p @@ -233,30 +293,94 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 include : TriangleArrowHead x1 y1 x2 y2 (0.75 * size) include : TriangleArrowHead x1 y1 x3 y3 (0.75 * size) - include : ArrowBar x1 y1 x3 y3 halfArrowSw + include : ArrowBar x1 y1 x3 y3 halfSw - define [SsArrowShape x1 y1 x2 y2 size] : glyph-proc + define [SsArrowShape x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw include : SsArrowHead x1 y1 x2 y2 size - include : ArrowBar x1 y1 x2 y2 halfArrowSw + include : ArrowBar x1 y1 x2 y2 halfSw - define [DashArrowShape x1 y1 x2 y2 size] : glyph-proc + define [DashArrowShape x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw local gap : AdviceStroke 6 include : ArrowHead x1 y1 x2 y2 size - include : DashArrowBar x1 y1 x2 y2 halfArrowSw gap [Math.max (Width / 5) (gap * 3)] + include : DashArrowBar x1 y1 x2 y2 halfSw gap [Math.max (Width / 5) (gap * 3)] - define [TrigDashArrowShape x1 y1 x2 y2 size] : glyph-proc + define [TrigDashArrowShape x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw local gap : AdviceStroke 6 include : TriangleArrowHead x1 y1 x2 y2 (0.75 * size) - include : DashArrowBar x1 y1 x2 y2 halfArrowSw gap [Math.max (Width / 5) (gap * 3)] + include : DashArrowBar x1 y1 x2 y2 halfSw gap [Math.max (Width / 5) (gap * 3)] - define [HookArrowShape mul] : lambda [x1 y1 x2 y2 size] : glyph-proc + define [HookArrowShape mul] : lambda [x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw include : ArrowHead x1 y1 x2 y2 size - include : HookArrowBar x1 y1 x2 y2 halfArrowSw (size * mul) + include : HookArrowBar x1 y1 x2 y2 halfSw (size * mul) - define [LoopArrowShape mul] : lambda [x1 y1 x2 y2 size] : glyph-proc + define [LoopArrowShape mul] : lambda [x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw include : ArrowHead x1 y1 x2 y2 size - include : LoopArrowBar x1 y1 x2 y2 halfArrowSw (size * mul) + include : LoopArrowBar x1 y1 x2 y2 halfSw (size * mul) + define [BarbArrowShape k thickness] : lambda [x1 y1 x2 y2] : begin + local headLen : MosaicUnitWidth * [Math.sqrt MosaicWidthScalar] * k + local halfBarWidth : thickness / 2 + + return : union + BarbArrowHead x1 y1 x2 y2 headLen headLen (thickness * 1.125) + ArrowBar x1 y1 x2 y2 halfBarWidth 2 + + define [HalfArrowShape side] : lambda [x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw + include : side x1 y1 x2 y2 arrowSw size + include : ArrowBar x1 y1 x2 y2 halfSw 1.75 + + define [DoubleArrowShape w] : lambda [x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw + include : ArrowHead x1 y1 x2 y2 size + include : DoubleArrowBarShape w x1 y1 x2 y2 + + define [TripleArrowShape w] : lambda [x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw + include : ArrowHead x1 y1 x2 y2 size + include : TripleArrowBarShape w x1 y1 x2 y2 + + define [QuadrupleArrowShape w] : lambda [x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw + include : ArrowHead x1 y1 x2 y2 size + include : QuadrupleArrowBarShape w x1 y1 x2 y2 + + define [dhArrowShape x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw + local mag : Math.hypot (y2 - y1) (x2 - x1) + local p : (mag - o - size) / mag + include : ArrowShape x1 y1 x2 y2 size + include : ArrowHead x1 y1 [mix x1 x2 p] [mix y1 y2 p] size + + define [htArrowShape x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw + local mag : Math.hypot (y2 - y1) (x2 - x1) + local p1 : (size - o - halfSw * 1.1) / mag + local p2 : size / mag + include : ArrowShape [mix x1 x2 p1] [mix y1 y2 p1] x2 y2 size + include : ArrowHead x1 y1 [mix x1 x2 p2] [mix y1 y2 p2] size + + define [CounterArrowShape x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw + local mag : Math.hypot (y2 - y1) (x2 - x1) + local p1 : (size - o - halfSw * 1.1) / mag + local p2 : size / mag + include : ArrowBar [mix x1 x2 p1] [mix y1 y2 p1] x2 y2 halfSw + include : ArrowHead x1 y1 [mix x1 x2 p2] [mix y1 y2 p2] size + + define [dtCounterArrowShape x1 y1 x2 y2 size _halfSw] : glyph-proc + local halfSw : fallback _halfSw halfArrowSw + local mag : Math.hypot (y2 - y1) (x2 - x1) + local p : (2 * size + o) / mag + include : CounterArrowShape x1 y1 x2 y2 size + include : ArrowHead x1 y1 [mix x1 x2 p] [mix y1 y2 p] size + + # Special Arrows define [ThickArrowShape color] : lambda [x1 y1 x2 y2] : begin local headLen : MosaicUnitWidth * [Math.sqrt MosaicWidthScalar] * 0.4 local halfBarWidth : headLen / 3 @@ -408,113 +532,14 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 Bar x1a y1a x2a y2a sw Head x1a y1a x2a y2a sw (pHalf * headLen) (pHalf * headWidth) - define [BarbArrowHead x1 y1 x2 y2 width length thickness] : new-glyph : glyph-proc - include : PointingTo x1 y1 x2 y2 : lambda [mag] : begin - spiro-outline - corner o 0 - corner length (width - o) - corner (length + thickness) (width - o) - corner (o + thickness) 0 - corner (length + thickness) (-width + o) - corner length (-width + o) - - define [BarbArrowShape k thickness] : lambda [x1 y1 x2 y2] : begin - local headLen : MosaicUnitWidth * [Math.sqrt MosaicWidthScalar] * k - local halfBarWidth : thickness / 2 - - return : union - BarbArrowHead x1 y1 x2 y2 headLen headLen (thickness * 1.125) - ArrowBar x1 y1 x2 y2 halfBarWidth 2 - - define [HalfArrowShape side] : lambda [x1 y1 x2 y2 size] : glyph-proc - include : side x1 y1 x2 y2 arrowSw size - include : ArrowBar x1 y1 x2 y2 halfArrowSw 1.75 - - define [ArrowBarMaskOut d] : spiro-outline - corner O 0 - corner (2 * d + O) (2 * d) - corner (-2 * d + O) (2 * d) - corner (-2 * d + O) (-2 * d) - corner (2 * d + O) (-2 * d) - - define [DoubleArrowBarShape w x1 y1 x2 y2] : begin - return : PointingTo x1 y1 x2 y2 : lambda [mag] : begin - local fine : Math.min (w / 3) arrowSw - local coFine : w / 2 - fine / 2 - return : difference - union - dispiro [widths.center fine] [flat 0 (+coFine)] [curl mag (+coFine)] - dispiro [widths.center fine] [flat 0 (-coFine)] [curl mag (-coFine)] - ArrowBarMaskOut coFine - - define [DoubleArrowShape w] : lambda [x1 y1 x2 y2 size] : glyph-proc - include : ArrowHead x1 y1 x2 y2 size - include : DoubleArrowBarShape w x1 y1 x2 y2 - - define [TripleArrowBarShape w x1 y1 x2 y2] : begin - return : PointingTo x1 y1 x2 y2 : lambda [mag] : begin - local fine : Math.min (w / 4) arrowSw - local coFine : w / 2 - fine / 2 - return : difference - union - dispiro [widths.center fine] [flat 0 (+coFine)] [curl mag (+coFine)] - dispiro [widths.center fine] [flat 0 0] [curl mag 0] - dispiro [widths.center fine] [flat 0 (-coFine)] [curl mag (-coFine)] - ArrowBarMaskOut coFine - - define [TripleArrowShape w] : lambda [x1 y1 x2 y2 size] : glyph-proc - include : ArrowHead x1 y1 x2 y2 size - include : TripleArrowBarShape w x1 y1 x2 y2 - - define [QuadrupleArrowBarShape w x1 y1 x2 y2] : begin - return : PointingTo x1 y1 x2 y2 : lambda [mag] : begin - local fine : Math.min (w / 6.4) arrowSw - local coFine : w / 2 - fine / 2 - return : difference - union - dispiro [widths.center fine] [flat 0 (+coFine)] [curl mag (+coFine)] - dispiro [widths.center fine] [flat 0 (+coFine / 3)] [curl mag (+coFine / 3)] - dispiro [widths.center fine] [flat 0 (-coFine / 3)] [curl mag (-coFine / 3)] - dispiro [widths.center fine] [flat 0 (-coFine)] [curl mag (-coFine)] - ArrowBarMaskOut coFine - - define [QuadrupleArrowShape w] : lambda [x1 y1 x2 y2 size] : glyph-proc - include : ArrowHead x1 y1 x2 y2 size - include : QuadrupleArrowBarShape w x1 y1 x2 y2 - - define [dhArrowShape x1 y1 x2 y2 size] : glyph-proc - local mag : Math.hypot (y2 - y1) (x2 - x1) - local p : (mag - o - size) / mag - include : ArrowShape x1 y1 x2 y2 size - include : ArrowHead x1 y1 [mix x1 x2 p] [mix y1 y2 p] size - - define [htArrowShape x1 y1 x2 y2 size] : glyph-proc - local mag : Math.hypot (y2 - y1) (x2 - x1) - local p1 : (size - o - halfArrowSw * 1.1) / mag - local p2 : size / mag - include : ArrowShape [mix x1 x2 p1] [mix y1 y2 p1] x2 y2 size - include : ArrowHead x1 y1 [mix x1 x2 p2] [mix y1 y2 p2] size - - define [CounterArrowShape x1 y1 x2 y2 size] : glyph-proc - local mag : Math.hypot (y2 - y1) (x2 - x1) - local p1 : (size - o - halfArrowSw * 1.1) / mag - local p2 : size / mag - include : ArrowBar [mix x1 x2 p1] [mix y1 y2 p1] x2 y2 halfArrowSw - include : ArrowHead x1 y1 [mix x1 x2 p2] [mix y1 y2 p2] size - - define [dtCounterArrowShape x1 y1 x2 y2 size] : glyph-proc - local mag : Math.hypot (y2 - y1) (x2 - x1) - local p : (2 * size + o) / mag - include : CounterArrowShape x1 y1 x2 y2 size - include : ArrowHead x1 y1 [mix x1 x2 p] [mix y1 y2 p] size - + # MkArrow Functions define [MkArrow shape id unicode x1 y1 x2 y2 width headSize] create-glyph id unicode : glyph-proc set-width [fallback width MosaicWidth] set-base-anchor 'slash' [mix x1 x2 (2/5)] [mix y1 y2 (2/5)] include : shape x1 y1 x2 y2 [fallback headSize arrowHeadSize] - define [DoubleArrow shape id unicode x1 y1 x2 y2] + define [MkDoubleArrow shape id unicode x1 y1 x2 y2] create-glyph id unicode : glyph-proc set-width MosaicWidth set-base-anchor 'slash' [mix x1 x2 (1/2)] [mix y1 y2 (1/2)] @@ -523,7 +548,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 include : shape xm ym x1 y1 arrowHeadSize include : shape xm ym x2 y2 arrowHeadSize - define [DoubleArrow2 shape1 shape2 id unicode x1 y1 x2 y2] + define [MkDoubleArrow2 shape1 shape2 id unicode x1 y1 x2 y2] create-glyph id unicode : glyph-proc set-width MosaicWidth set-base-anchor 'slash' [mix x1 x2 (1/2)] [mix y1 y2 (1/2)] @@ -878,16 +903,16 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 MkArrow [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowDownHR'] [MangleUnicode 0x21C3] arrowMidX arrowTop arrowMidX arrowBot do "Double Half-head Arrows (different side)" - DoubleArrow [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowLeftRightHR'] [MangleUnicode 0x294A] arrowSB SymbolMid arrowRSB SymbolMid - DoubleArrow [HalfArrowShape LHSHalfArrowHead] [MangleName 'arrowLeftRightHL'] [MangleUnicode 0x294B] arrowSB SymbolMid arrowRSB SymbolMid - DoubleArrow [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowUpDownHR'] [MangleUnicode 0x294C] arrowMidX arrowTop arrowMidX arrowBot - DoubleArrow [HalfArrowShape LHSHalfArrowHead] [MangleName 'arrowUpDownHL'] [MangleUnicode 0x294D] arrowMidX arrowTop arrowMidX arrowBot + MkDoubleArrow [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowLeftRightHR'] [MangleUnicode 0x294A] arrowSB SymbolMid arrowRSB SymbolMid + MkDoubleArrow [HalfArrowShape LHSHalfArrowHead] [MangleName 'arrowLeftRightHL'] [MangleUnicode 0x294B] arrowSB SymbolMid arrowRSB SymbolMid + MkDoubleArrow [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowUpDownHR'] [MangleUnicode 0x294C] arrowMidX arrowTop arrowMidX arrowBot + MkDoubleArrow [HalfArrowShape LHSHalfArrowHead] [MangleName 'arrowUpDownHL'] [MangleUnicode 0x294D] arrowMidX arrowTop arrowMidX arrowBot do "Double Half-head Arrows (same side)" - DoubleArrow2 [HalfArrowShape RHSHalfArrowHead] [HalfArrowShape LHSHalfArrowHead] [MangleName 'arrowLeftHRRightHL'] [MangleUnicode 0x294E] arrowSB SymbolMid arrowRSB SymbolMid - DoubleArrow2 [HalfArrowShape RHSHalfArrowHead] [HalfArrowShape LHSHalfArrowHead] [MangleName 'arrowUpHRDownHL'] [MangleUnicode 0x294F] arrowMidX arrowTop arrowMidX arrowBot - DoubleArrow2 [HalfArrowShape LHSHalfArrowHead] [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowLeftHLRightHR'] [MangleUnicode 0x2950] arrowSB SymbolMid arrowRSB SymbolMid - DoubleArrow2 [HalfArrowShape LHSHalfArrowHead] [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowUpHLDownHR'] [MangleUnicode 0x2951] arrowMidX arrowTop arrowMidX arrowBot + MkDoubleArrow2 [HalfArrowShape RHSHalfArrowHead] [HalfArrowShape LHSHalfArrowHead] [MangleName 'arrowLeftHRRightHL'] [MangleUnicode 0x294E] arrowSB SymbolMid arrowRSB SymbolMid + MkDoubleArrow2 [HalfArrowShape RHSHalfArrowHead] [HalfArrowShape LHSHalfArrowHead] [MangleName 'arrowUpHRDownHL'] [MangleUnicode 0x294F] arrowMidX arrowTop arrowMidX arrowBot + MkDoubleArrow2 [HalfArrowShape LHSHalfArrowHead] [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowLeftHLRightHR'] [MangleUnicode 0x2950] arrowSB SymbolMid arrowRSB SymbolMid + MkDoubleArrow2 [HalfArrowShape LHSHalfArrowHead] [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowUpHLDownHR'] [MangleUnicode 0x2951] arrowMidX arrowTop arrowMidX arrowBot define waveArrowAmplitude : (Width - SB) * DesignParameters.arrow_size * (0.7 + 0.4 * MosaicWidthScalar) @@ -1002,17 +1027,17 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 MkArrow [ThickArrowShape 'white'] [MangleName 'uni2B01'] [MangleUnicode 0x2B01] arrowDiagRSB arrowDiagBot arrowDiagSB arrowDiagTop MkArrow [ThickArrowShape 'white'] [MangleName 'uni2B02'] [MangleUnicode 0x2B02] arrowDiagSB arrowDiagTop arrowDiagRSB arrowDiagBot MkArrow [ThickArrowShape 'white'] [MangleName 'uni2B03'] [MangleUnicode 0x2B03] arrowDiagRSB arrowDiagTop arrowDiagSB arrowDiagBot - DoubleArrow [ThickArrowShape 'white-open'] [MangleName 'uni2B04'] [MangleUnicode 0x2B04] arrowSB SymbolMid arrowRSB SymbolMid - DoubleArrow [ThickArrowShape 'white-open'] [MangleName 'uni21F3'] [MangleUnicode 0x21F3] arrowMidX arrowBot arrowMidX arrowTop - - DoubleArrow2 [ThickArrowShape 'whiteDot'] [ThickArrowShape 'white-open'] [MangleName 'uni21EA'] [MangleUnicode 0x21EA] arrowMidX arrowBot arrowMidX arrowTop - DoubleArrow2 [ThickArrowShape 'whiteRect'] [ThickArrowShape 'white-open'] [MangleName 'uni21EB'] [MangleUnicode 0x21EB] arrowMidX arrowBot arrowMidX arrowTop - DoubleArrow2 [ThickArrowShape 'whiteRect'] [ThickArrowShape 'whiteBarred'] [MangleName 'uni21EC'] [MangleUnicode 0x21EC] arrowMidX arrowBot arrowMidX arrowTop - DoubleArrow2 [ThickArrowShape 'white-closing'] [ThickArrowShape 'whiteDouble'] [MangleName 'uni21EE'] [MangleUnicode 0x21EE] arrowMidX arrowBot arrowMidX arrowTop - DoubleArrow2 [ThickArrowShape 'whiteRect'] [ThickArrowShape 'whiteDouble'] [MangleName 'uni21EF'] [MangleUnicode 0x21EF] arrowMidX arrowBot arrowMidX arrowTop - DoubleArrow2 [ThickArrowShape 'whiteRect'] [ThickArrowShape 'white-open'] [MangleName 'uni21F0'] [MangleUnicode 0x21F0] arrowSB SymbolMid arrowRSB SymbolMid - DoubleArrow2 [ThickArrowShape 'whiteDot'] [ThickArrowShape 'whiteBarred'] [MangleName 'uni2BB8'] [MangleUnicode 0x2BB8] arrowMidX arrowBot arrowMidX arrowTop - DoubleArrow2 [ThickArrowShape 'whiteLeftTurn'] [ThickArrowShape 'white-open'] [MangleName 'uni23CE'] [MangleUnicode 0x23CE] arrowRSB SymbolMid arrowSB SymbolMid + MkDoubleArrow [ThickArrowShape 'white-open'] [MangleName 'uni2B04'] [MangleUnicode 0x2B04] arrowSB SymbolMid arrowRSB SymbolMid + MkDoubleArrow [ThickArrowShape 'white-open'] [MangleName 'uni21F3'] [MangleUnicode 0x21F3] arrowMidX arrowBot arrowMidX arrowTop + + MkDoubleArrow2 [ThickArrowShape 'whiteDot'] [ThickArrowShape 'white-open'] [MangleName 'uni21EA'] [MangleUnicode 0x21EA] arrowMidX arrowBot arrowMidX arrowTop + MkDoubleArrow2 [ThickArrowShape 'whiteRect'] [ThickArrowShape 'white-open'] [MangleName 'uni21EB'] [MangleUnicode 0x21EB] arrowMidX arrowBot arrowMidX arrowTop + MkDoubleArrow2 [ThickArrowShape 'whiteRect'] [ThickArrowShape 'whiteBarred'] [MangleName 'uni21EC'] [MangleUnicode 0x21EC] arrowMidX arrowBot arrowMidX arrowTop + MkDoubleArrow2 [ThickArrowShape 'white-closing'] [ThickArrowShape 'whiteDouble'] [MangleName 'uni21EE'] [MangleUnicode 0x21EE] arrowMidX arrowBot arrowMidX arrowTop + MkDoubleArrow2 [ThickArrowShape 'whiteRect'] [ThickArrowShape 'whiteDouble'] [MangleName 'uni21EF'] [MangleUnicode 0x21EF] arrowMidX arrowBot arrowMidX arrowTop + MkDoubleArrow2 [ThickArrowShape 'whiteRect'] [ThickArrowShape 'white-open'] [MangleName 'uni21F0'] [MangleUnicode 0x21F0] arrowSB SymbolMid arrowRSB SymbolMid + MkDoubleArrow2 [ThickArrowShape 'whiteDot'] [ThickArrowShape 'whiteBarred'] [MangleName 'uni2BB8'] [MangleUnicode 0x2BB8] arrowMidX arrowBot arrowMidX arrowTop + MkDoubleArrow2 [ThickArrowShape 'whiteLeftTurn'] [ThickArrowShape 'white-open'] [MangleName 'uni23CE'] [MangleUnicode 0x23CE] arrowRSB SymbolMid arrowSB SymbolMid MkArrow [ThickArrowShape 'black'] [MangleName 'uni2B05'] [MangleUnicode 0x2B05] arrowRSB SymbolMid arrowSB SymbolMid MkArrow [ThickArrowShape 'black'] [MangleName 'uni2B06'] [MangleUnicode 0x2B06] arrowMidX arrowBot arrowMidX arrowTop @@ -1023,8 +1048,8 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 MkArrow [ThickArrowShape 'black'] [MangleName 'uni2B09'] [MangleUnicode 0x2B09] arrowDiagRSB arrowDiagBot arrowDiagSB arrowDiagTop MkArrow [ThickArrowShape 'black'] [MangleName 'uni2B0A'] [MangleUnicode 0x2B0A] arrowDiagSB arrowDiagTop arrowDiagRSB arrowDiagBot MkArrow [ThickArrowShape 'black'] [MangleName 'uni2B0B'] [MangleUnicode 0x2B0B] arrowDiagRSB arrowDiagTop arrowDiagSB arrowDiagBot - DoubleArrow [ThickArrowShape 'black'] [MangleName 'uni2B0C'] [MangleUnicode 0x2B0C] arrowSB SymbolMid arrowRSB SymbolMid - DoubleArrow [ThickArrowShape 'black'] [MangleName 'uni2B0D'] [MangleUnicode 0x2B0D] arrowMidX arrowBot arrowMidX arrowTop + MkDoubleArrow [ThickArrowShape 'black'] [MangleName 'uni2B0C'] [MangleUnicode 0x2B0C] arrowSB SymbolMid arrowRSB SymbolMid + MkDoubleArrow [ThickArrowShape 'black'] [MangleName 'uni2B0D'] [MangleUnicode 0x2B0D] arrowMidX arrowBot arrowMidX arrowTop create-glyph [MangleName 'uni21ED'] [MangleUnicode 0x21ED] : composite-proc refer-glyph : MangleName 'uni21EB' @@ -1115,8 +1140,8 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 MkArrow SsArrowShape [MangleName 'sansSerifArrowUpRight'] [MangleUnicode 0x1F855] arrowDiagSB arrowDiagBot arrowDiagRSB arrowDiagTop MkArrow SsArrowShape [MangleName 'sansSerifArrowDownRight'] [MangleUnicode 0x1F856] arrowDiagSB arrowDiagTop arrowDiagRSB arrowDiagBot MkArrow SsArrowShape [MangleName 'sansSerifArrowDownLeft'] [MangleUnicode 0x1F857] arrowDiagRSB arrowDiagTop arrowDiagSB arrowDiagBot - DoubleArrow SsArrowShape [MangleName 'sansSerifArrowLeftRight'] [MangleUnicode 0x1F858] arrowSB SymbolMid arrowRSB SymbolMid - DoubleArrow SsArrowShape [MangleName 'sansSerifArrowUpDown'] [MangleUnicode 0x1F859] arrowMidX arrowTop arrowMidX arrowBot + MkDoubleArrow SsArrowShape [MangleName 'sansSerifArrowLeftRight'] [MangleUnicode 0x1F858] arrowSB SymbolMid arrowRSB SymbolMid + MkDoubleArrow SsArrowShape [MangleName 'sansSerifArrowUpDown'] [MangleUnicode 0x1F859] arrowMidX arrowTop arrowMidX arrowBot do "Double-line Arrows" define dasw doubleArrowStemWidth @@ -1303,17 +1328,17 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 VBar.m l (SymbolMid - arrowHeadSize) (SymbolMid + arrowHeadSize) fine do "Double-headed Arrows" - DoubleArrow ArrowShape [MangleName 'arrowLeftRight'] [MangleUnicode 0x2194] arrowSB SymbolMid arrowRSB SymbolMid - DoubleArrow ThinArrowShape [MangleName 'thinArrowLeftRight'] null arrowSB SymbolMid arrowRSB SymbolMid - DoubleArrow ArrowShape [MangleName 'arrowUpDown'] [MangleUnicode 0x2195] arrowMidX arrowTop arrowMidX arrowBot - DoubleArrow ArrowShape [MangleName 'arrowUpDown.bottomSpaceLeft'] nothing arrowMidX arrowTop arrowMidX (arrowBot + arrowSw * 1.5) - DoubleArrow ArrowShape [MangleName 'arrowUpLeftAndDownRight'] [MangleUnicode 0x2921] arrowDiagSB arrowDiagTop arrowDiagRSB arrowDiagBot - DoubleArrow ArrowShape [MangleName 'arrowUpRightAndDownLeft'] [MangleUnicode 0x2922] arrowDiagRSB arrowDiagTop arrowDiagSB arrowDiagBot + MkDoubleArrow ArrowShape [MangleName 'arrowLeftRight'] [MangleUnicode 0x2194] arrowSB SymbolMid arrowRSB SymbolMid + MkDoubleArrow ThinArrowShape [MangleName 'thinArrowLeftRight'] null arrowSB SymbolMid arrowRSB SymbolMid + MkDoubleArrow ArrowShape [MangleName 'arrowUpDown'] [MangleUnicode 0x2195] arrowMidX arrowTop arrowMidX arrowBot + MkDoubleArrow ArrowShape [MangleName 'arrowUpDown.bottomSpaceLeft'] nothing arrowMidX arrowTop arrowMidX (arrowBot + arrowSw * 1.5) + MkDoubleArrow ArrowShape [MangleName 'arrowUpLeftAndDownRight'] [MangleUnicode 0x2921] arrowDiagSB arrowDiagTop arrowDiagRSB arrowDiagBot + MkDoubleArrow ArrowShape [MangleName 'arrowUpRightAndDownLeft'] [MangleUnicode 0x2922] arrowDiagRSB arrowDiagTop arrowDiagSB arrowDiagBot - DoubleArrow TrigArrowShape [MangleName 'trigArrowLeftRight'] [MangleUnicode 0x2B64] arrowSB SymbolMid arrowRSB SymbolMid - DoubleArrow TrigArrowShape [MangleName 'trigArrowUpDown'] [MangleUnicode 0x2B65] arrowMidX arrowTop arrowMidX arrowBot + MkDoubleArrow TrigArrowShape [MangleName 'trigArrowLeftRight'] [MangleUnicode 0x2B64] arrowSB SymbolMid arrowRSB SymbolMid + MkDoubleArrow TrigArrowShape [MangleName 'trigArrowUpDown'] [MangleUnicode 0x2B65] arrowMidX arrowTop arrowMidX arrowBot - DoubleArrow OpenArrowShape [MangleName 'openHeadArrowLeftRight'] [MangleUnicode 0x21FF] arrowSB SymbolMid arrowRSB SymbolMid + MkDoubleArrow OpenArrowShape [MangleName 'openHeadArrowLeftRight'] [MangleUnicode 0x21FF] arrowSB SymbolMid arrowRSB SymbolMid create-glyph [MangleName 'arrowUpDownBar'] [MangleUnicode 0x21A8] : composite-proc refer-glyph : MangleName 'arrowUpDown.bottomSpaceLeft' @@ -1322,17 +1347,17 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 if (MosaicWidthScalar > 1 && !para.forceMonospace) : do define l : mix 0 arrowSB kLongArrowSB define r : mix MosaicWidth arrowRSB kLongArrowSB - DoubleArrow ArrowShape 'longArrowLeftRight' 0x27F7 l SymbolMid r SymbolMid + MkDoubleArrow ArrowShape 'longArrowLeftRight' 0x27F7 l SymbolMid r SymbolMid do "Double-line Double-headed Arrows" define dasw doubleArrowStemWidth - DoubleArrow [DoubleArrowShape dasw] [MangleName 'dblArrowLeftRight'] [MangleUnicode 0x21D4] arrowSB SymbolMid arrowRSB SymbolMid - DoubleArrow [DoubleArrowShape dasw] [MangleName 'dblArrowUpDown'] [MangleUnicode 0x21D5] arrowMidX arrowTop arrowMidX arrowBot + MkDoubleArrow [DoubleArrowShape dasw] [MangleName 'dblArrowLeftRight'] [MangleUnicode 0x21D4] arrowSB SymbolMid arrowRSB SymbolMid + MkDoubleArrow [DoubleArrowShape dasw] [MangleName 'dblArrowUpDown'] [MangleUnicode 0x21D5] arrowMidX arrowTop arrowMidX arrowBot if (MosaicWidthScalar > 1 && !para.forceMonospace) : do define l : mix 0 arrowSB kLongArrowSB define r : mix MosaicWidth arrowRSB kLongArrowSB - DoubleArrow [DoubleArrowShape dasw] 'longDblArrowLeftRight' 0x27FA l SymbolMid r SymbolMid + MkDoubleArrow [DoubleArrowShape dasw] 'longDblArrowLeftRight' 0x27FA l SymbolMid r SymbolMid do "Same-side Double-headed Arrows" MkArrow dhArrowShape [MangleName 'dhArrowLeft'] [MangleUnicode 0x219E] arrowRSB SymbolMid arrowSB SymbolMid @@ -1635,4 +1660,4 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 include : FlipAround arrowMidX SymbolMid if (MosaicWidthScalar == 1) : begin - glyph-block-export ArrowShape ArrowHead ArrowBar + glyph-block-export ArrowShape ArrowHead ArrowBar TrigArrowShape diff --git a/packages/font-glyphs/src/symbol/geometric/masked.ptl b/packages/font-glyphs/src/symbol/geometric/masked.ptl index 304e2d9927..3ea7fce559 100644 --- a/packages/font-glyphs/src/symbol/geometric/masked.ptl +++ b/packages/font-glyphs/src/symbol/geometric/masked.ptl @@ -329,8 +329,6 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1 dispiro [widths.rhs GeometryStroke] [corner Geom.MidX Geom.MidY] [corner Geom.Left Geom.Top] do "Miscellaneous" - glyph-block-import Symbol-Punctuation-Bar : BarShape - create-glyph [MangleName 'uni2389'] [MangleUnicode 0x2389] : glyph-proc define shiftUp : ApparentTranslate 0 Math.max @@ -386,7 +384,9 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1 ExtLineLhs 4 OperatorStroke (Geom.MidX - Geom.Size) Geom.MidY Geom.MidX (Geom.MidY - Geom.Size) ExtLineLhs 4 OperatorStroke Geom.MidX (Geom.MidY - Geom.Size) (Geom.MidX + Geom.Size) Geom.MidY - # Compositions + do "Compositions" + glyph-block-import Symbol-Punctuation-Bar : BarShape + create-glyph [MangleName 'compositionSymbol'] [MangleUnicode 0x2384] : glyph-proc set-width Geom.Width local offsetX : Geom.Size * Size.Medium.size / 2 - GeometryStroke / 4 @@ -449,3 +449,30 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1 include [refer-glyph : MangleName 'whiteTriangleUp'] AS_BASE ALSO_METRICS include : HSerif.lb (Geom.MidX - triangleSideRadius) Geom.Bot jut GeometryStroke include : HSerif.rb (Geom.MidX + triangleSideRadius) Geom.Bot jut GeometryStroke + + create-glyph [MangleName 'marriageSymbol'] [MangleUnicode 0x26AD] : glyph-proc + set-width Geom.Width + local radius : Geom.Size * Size.SlightlySmall.size + local stroke Size.SlightlySmall.sw + local offsetX : radius / 2 - stroke / 4 + include : union + with-transform [Translate offsetX 0] : refer-glyph : MangleName 'whiteSlightlySmallCircle' + with-transform [Translate (-offsetX) 0] : refer-glyph : MangleName 'whiteSlightlySmallCircle' + + create-glyph [MangleName 'divorceSymbol'] [MangleUnicode 0x26AE] : glyph-proc + set-width Geom.Width + local offsetX : Geom.Size * Size.SlightlySmall.size + [HSwToV : Size.SlightlySmall.sw / 2] + local offsetY : Geom.Size * Size.MediumSmall.size + include : union + with-transform [Translate offsetX 0] : refer-glyph : MangleName 'whiteSlightlySmallCircle' + with-transform [Translate (-offsetX) 0] : refer-glyph : MangleName 'whiteSlightlySmallCircle' + VBar.m Geom.MidX (Geom.MidY - offsetY) (Geom.MidY + offsetY) Size.SlightlySmall.sw + + create-glyph [MangleName 'unmarriedPartnershipSymbol'] [MangleUnicode 0x26AF] : glyph-proc + set-width Geom.Width + local offsetX : MosaicWidth / 4 + local offsetBar : offsetX - Geom.Size * Size.SlightlySmall.size + [HSwToV : Size.SlightlySmall.sw / 2] + include : union + with-transform [Translate offsetX 0] : refer-glyph : MangleName 'whiteSlightlySmallCircle' + with-transform [Translate (-offsetX) 0] : refer-glyph : MangleName 'whiteSlightlySmallCircle' + HBar.m (Geom.MidX - offsetBar) (Geom.MidX + offsetBar) Geom.MidY Size.SlightlySmall.sw diff --git a/packages/font-glyphs/src/symbol/geometric/plain.ptl b/packages/font-glyphs/src/symbol/geometric/plain.ptl index d1373eb50f..f83f2bb38b 100644 --- a/packages/font-glyphs/src/symbol/geometric/plain.ptl +++ b/packages/font-glyphs/src/symbol/geometric/plain.ptl @@ -488,6 +488,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 StdWhiteShape CircleShape 'whiteVerySmallCircle' null Size.VerySmall StdWhiteShape CircleShape 'whiteSmallCircle' null Size.Small + StdWhiteShape CircleShape 'whiteSlightlySmallCircle' null Size.SlightlySmall StdWhiteShape CircleShape 'whiteMediumSmallCircle' 0x26AC Size.MediumSmall StdWhiteShape CircleShape 'whiteMediumCircle' 0x26AA Size.Medium StdWhiteShape CircleShape 'whiteLargeCircle' 0x25EF Size.Large diff --git a/packages/font-glyphs/src/symbol/math/arith.ptl b/packages/font-glyphs/src/symbol/math/arith.ptl index 01db8ccf70..b8fd4c01a2 100644 --- a/packages/font-glyphs/src/symbol/math/arith.ptl +++ b/packages/font-glyphs/src/symbol/math/arith.ptl @@ -386,57 +386,83 @@ glyph-block Symbol-Math-Arith : begin select-variant 'minusFallingDots' 0x2A2B (follow -- 'punctuationDot') select-variant 'minusRisingDots' 0x2A2C (follow -- 'punctuationDot') - do - define fine : AdviceStroke 5.5 - define radius : Math.max ((RightSB - SB) / 8) (fine / 2) - define barOffset radius - define dotCenterOffset : OX + fine + radius + do "small circles" + glyph-block-import Symbol-Arrow : TrigArrowShape - create-glyph 'originalOf' 0x22B6 : glyph-proc - include : difference - union - HBar.m (SB + barOffset) (RightSB - barOffset) SymbolMid OperatorStroke - DotAt (SB + dotCenterOffset) SymbolMid (radius + fine) - DotAt (RightSB - dotCenterOffset) SymbolMid (radius + fine) - DotAt (SB + dotCenterOffset) SymbolMid radius + define fine : AdviceStroke 6 + define radius : (RightSB - SB - [HSwToV : 4 * fine]) / 6 + [HSwToV fine] - OX + define gap : (RightSB - SB) / 2 - (radius - OX) * 2 + define dotCenterOffset : radius + OX - create-glyph 'imageOf' 0x22B7 : glyph-proc - include : difference - union - HBar.m (SB + barOffset) (RightSB - barOffset) SymbolMid OperatorStroke - DotAt (SB + dotCenterOffset) SymbolMid (radius + fine) - DotAt (RightSB - dotCenterOffset) SymbolMid (radius + fine) - DotAt (RightSB - dotCenterOffset) SymbolMid radius + create-glyph : glyph-proc + local bar : HBar.m (SB + dotCenterOffset) (RightSB - dotCenterOffset) SymbolMid OperatorStroke - define singleSideFine : AdviceStroke 4 - define singleSideRadius : Math.max ((RightSB - SB) / 6) (singleSideFine / 2) + local leftFilled : RingAt (SB + dotCenterOffset) SymbolMid radius + local rightFilled : RingAt (RightSB - dotCenterOffset) SymbolMid radius + local leftHollow : RingStrokeAt (SB + dotCenterOffset) SymbolMid radius fine + local rightHollow : RingStrokeAt (RightSB - dotCenterOffset) SymbolMid radius fine + + create-forked-glyph 'originalOf' 0x22B6 : union [difference bar leftFilled] leftHollow rightFilled + create-forked-glyph 'imageOf' 0x22B7 : union [difference bar rightFilled] leftFilled rightHollow + create-forked-glyph 'doubleMultimap' 0x29DF : union [difference bar leftFilled rightFilled] leftHollow rightHollow + + define sFine : AdviceStroke 4.5 + define sRadius : Math.min + (RightSB - SB) / 2 * DesignParameters.geometric_small_x + (RightSB - SB - [HSwToV : 2 * sFine]) / 4 + [HSwToV sFine] - OX + define sGap : (RightSB - SB) / 2 - (sRadius - OX) * 2 + define sDotCenterOffset : sRadius + OX create-glyph 'multimap' 0x22B8 : glyph-proc - include : difference - union - HBar.m SB (RightSB - singleSideRadius) SymbolMid OperatorStroke - DotAt (RightSB - dotCenterOffset) SymbolMid (singleSideRadius + singleSideFine) - DotAt (RightSB - dotCenterOffset) SymbolMid singleSideRadius + include : union + difference + HBar.m SB (RightSB - sDotCenterOffset) SymbolMid OperatorStroke + RingAt (RightSB - sDotCenterOffset) SymbolMid sRadius + RingStrokeAt (RightSB - sDotCenterOffset) SymbolMid sRadius sFine create-glyph 'leftMultimap' 0x27DC : glyph-proc - include : difference - union - HBar.m (SB + singleSideRadius) RightSB SymbolMid OperatorStroke - DotAt (SB + dotCenterOffset) SymbolMid (singleSideRadius + singleSideFine) - DotAt (SB + dotCenterOffset) SymbolMid singleSideRadius + include : union + difference + HBar.m (SB + sDotCenterOffset) RightSB SymbolMid OperatorStroke + RingAt (SB + sDotCenterOffset) SymbolMid sRadius + RingStrokeAt (SB + sDotCenterOffset) SymbolMid sRadius sFine + + # Pawn symbols + define unitedGap : (radius - OX) + gap / 2 + define separatedGap : (radius - OX) + SB + create-glyph 'unitedPawn' 0x2BFA : glyph-proc + include : RingStrokeAt (Middle + unitedGap) SymbolMid radius fine + include : RingStrokeAt (Middle - unitedGap) SymbolMid radius fine - create-glyph 'doubleMultimap' 0x29DF : glyph-proc - include : difference - union - HBar.m (SB + barOffset) (RightSB - barOffset) SymbolMid OperatorStroke - DotAt (SB + dotCenterOffset) SymbolMid (radius + fine) - DotAt (RightSB - dotCenterOffset) SymbolMid (radius + fine) - union - DotAt (SB + dotCenterOffset) SymbolMid radius - DotAt (RightSB - dotCenterOffset) SymbolMid radius + foreach { suffix { DrawAt kDotRadius overshoot } } [Object.entries DotVariants] : do + create-glyph "separatedPawn.\(suffix)" : glyph-proc + include : RingStrokeAt (Middle + separatedGap) SymbolMid radius fine + include : RingStrokeAt (Middle - separatedGap) SymbolMid radius fine + + define space : 2 * SB + define dFine : AdviceStrokeInSpace space HVContrast 3.5 1 + define dr : DotRadius * kDotRadius * dFine / Stroke + include : DrawAt (Middle - space / 4) SymbolMid dr + include : DrawAt (Middle + space / 4) SymbolMid dr + + select-variant 'separatedPawn' 0x2BFB (follow -- 'punctuationDot') + + create-glyph 'doubledPawn' 0x2BFC : glyph-proc + include : RingStrokeAt Middle (SymbolMid + unitedGap) radius fine + include : RingStrokeAt Middle (SymbolMid - unitedGap) radius fine + + create-glyph 'passedPawn' 0x2BFD : glyph-proc + include : TrigArrowShape + * Middle + SymbolMid - unitedGap + radius - (fine / 2) + * Middle + SymbolMid + unitedGap + radius + radius * 0.8 + fine / 2 + include : RingStrokeAt Middle (SymbolMid - unitedGap) radius fine create-glyph 'mathSmallCircle' 0x2218 - RingStrokeAt Middle SymbolMid (singleSideRadius + singleSideFine) singleSideFine + RingStrokeAt Middle SymbolMid sRadius sFine alias 'ringpoint' 0x2E30 'mathSmallCircle' create-glyph 'wreathProduct' 0x2240 : glyph-proc diff --git a/packages/font-glyphs/src/symbol/pictograph/musical.ptl b/packages/font-glyphs/src/symbol/pictograph/musical.ptl index cbd2010422..84dc508cc8 100644 --- a/packages/font-glyphs/src/symbol/pictograph/musical.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/musical.ptl @@ -80,35 +80,56 @@ glyph-block Symbol-Pictograph-Musical : begin x2 + 0 0 - bandWidth - do "sharp, flat and natural" + do "Accidentals" + glyph-block-import Symbol-Arrow : ArrowShape local nsTop PictTop local nsBot PictBot local fine : AdviceStroke 3.5 local fine2 : AdviceStroke 4 - local l : SB - fine * 0 - local r : RightSB + fine * 0 - local hsp : ((r - l) - [HSwToV : 2 * fine]) * 0.3 + local lAcc : SB - fine * 0 + local rAcc : RightSB + fine * 0 + local hsp : ((rAcc - lAcc) - [HSwToV : 2 * fine]) * 0.3 local skew 0.2 + local krNat 0.5 + local lSharp : lAcc + hsp * krNat + local rSharp : rAcc - hsp * krNat + local lFlat : mix SB RightSB 0.07 + local rFlat : mix RightSB SB 0.07 + local lNat : lAcc + hsp * krNat + local rNat : rAcc - hsp * krNat + + local halfVFine : HSwToV : 0.5 * fine + local xUpSharp : rSharp - halfVFine + local xDownSharp : rSharp - halfVFine + local xUpFlat : lFlat + halfVFine + local xDownFlat : lFlat + halfVFine + local xUpNat : lNat + halfVFine + local xDownNat : rNat - halfVFine + local arrowWidth : (RightSB - SB) * 0.35 + local arrowSpace : Math.max (0.9 * arrowWidth) (ParenTop - PictTop) + local arrowTop : nsTop + arrowSpace + local arrowBot : nsBot - arrowSpace + create-glyph 'sharpTone' 0x266F : glyph-proc include : dispiro widths.center - flat l ([mix nsTop nsBot 0.3] - (Middle - l) * skew) [heading Rightward] - curl r ([mix nsTop nsBot 0.3] - (Middle - r) * skew) [heading Rightward] + flat lAcc ([mix nsTop nsBot 0.3] - (Middle - lAcc) * skew) [heading Rightward] + curl rAcc ([mix nsTop nsBot 0.3] - (Middle - rAcc) * skew) [heading Rightward] include : dispiro widths.center - flat l ([mix nsTop nsBot 0.7] - (Middle - l) * skew) [heading Rightward] - curl r ([mix nsTop nsBot 0.7] - (Middle - r) * skew) [heading Rightward] - include : VBar.l (l + hsp) (nsBot - (Middle - l - hsp) * skew) (nsTop - (Middle - l - hsp) * skew) fine - include : VBar.r (r - hsp) (nsBot - (Middle - r + hsp) * skew) (nsTop - (Middle - r + hsp) * skew) fine + flat lAcc ([mix nsTop nsBot 0.7] - (Middle - lAcc) * skew) [heading Rightward] + curl rAcc ([mix nsTop nsBot 0.7] - (Middle - rAcc) * skew) [heading Rightward] + include : VBar.l lSharp (nsBot - (Middle - lSharp) * skew) (nsTop - (Middle - lSharp) * skew) fine + include : VBar.r rSharp (nsBot - (Middle - rSharp) * skew) (nsTop - (Middle - rSharp) * skew) fine define [FlatToneShape _l _r _sw] : glyph-proc local yTerminal : mix nsBot nsTop 0.55 local curly 0.65 local curly2 1.1 local curly3 0.3 - local l : fallback _l [mix SB RightSB 0.07] - local r : fallback _r [mix RightSB SB 0.07] + local l : fallback _l lFlat + local r : fallback _r rFlat local sw : fallback _sw fine define [archShapeT offset] : list @@ -147,41 +168,38 @@ glyph-block Symbol-Pictograph-Musical : begin create-glyph 'naturalTone' 0x266E : glyph-proc local k : 0.25 - (Stroke * 0.25 / (nsTop - nsBot)) - local kr 0.5 - local ll (l + hsp * kr) - local rr (r - hsp * kr) - local barLeft : VBar.l ll [mix nsBot nsTop k] nsTop fine - local barRight : VBar.r rr nsBot [mix nsBot nsTop (1 - k)] fine + local barLeft : VBar.l lNat [mix nsBot nsTop k] nsTop fine + local barRight : VBar.r rNat nsBot [mix nsBot nsTop (1 - k)] fine local diagLow : dispiro widths.lhs fine - flat ll [mix nsBot nsTop k] - curl rr ([mix nsBot nsTop k] + (rr - ll) * skew) + flat lNat [mix nsBot nsTop k] + curl rNat ([mix nsBot nsTop k] + (rNat - lNat) * skew) local belowDiagLow : spiro-outline - corner ll [mix nsBot nsTop k] - corner rr ([mix nsBot nsTop k] + (rr - ll) * skew) - corner rr nsBot - corner ll nsBot + corner lNat [mix nsBot nsTop k] + corner rNat ([mix nsBot nsTop k] + (rNat - lNat) * skew) + corner rNat nsBot + corner lNat nsBot local diagHigh : dispiro widths.lhs fine - flat rr [mix nsBot nsTop (1 - k)] - curl ll ([mix nsBot nsTop (1 - k)] - (rr - ll) * skew) + flat rNat [mix nsBot nsTop (1 - k)] + curl lNat ([mix nsBot nsTop (1 - k)] - (rNat - lNat) * skew) local aboveDiagHigh : spiro-outline - corner rr [mix nsBot nsTop (1 - k)] - corner ll ([mix nsBot nsTop (1 - k)] - (rr - ll) * skew) - corner ll nsTop - corner rr nsTop + corner rNat [mix nsBot nsTop (1 - k)] + corner lNat ([mix nsBot nsTop (1 - k)] - (rNat - lNat) * skew) + corner lNat nsTop + corner rNat nsTop local outsideBars : difference spiro-outline - corner (ll - UPM) (nsBot - UPM) - corner (ll - UPM) (nsTop + UPM) - corner (rr + UPM) (nsTop + UPM) - corner (rr + UPM) (nsBot - UPM) + corner (lNat - UPM) (nsBot - UPM) + corner (lNat - UPM) (nsTop + UPM) + corner (rNat + UPM) (nsTop + UPM) + corner (rNat + UPM) (nsBot - UPM) spiro-outline - corner ll nsBot - corner ll nsTop - corner rr nsTop - corner rr nsBot + corner lNat nsBot + corner lNat nsTop + corner rNat nsTop + corner rNat nsBot include : union difference barLeft belowDiagLow @@ -190,10 +208,10 @@ glyph-block Symbol-Pictograph-Musical : begin difference diagHigh barLeft barRight outsideBars create-glyph 'dblSharpTone' 0x1D12A : glyph-proc - local w : r - l + local w : rAcc - lAcc local t : nsTop - fine * 0 local b : t - w - local cx : mix l r 0.5 + local cx : mix lAcc rAcc 0.5 local cy : mix t b 0.5 local cofine : Math.min (w / 3) (w / 2 - Stroke) local p 0.5 @@ -201,13 +219,13 @@ glyph-block Symbol-Pictograph-Musical : begin include : union difference spiro-outline - corner l t - corner r t - corner r b - corner l b + corner lAcc t + corner rAcc t + corner rAcc b + corner lAcc b union VBar.m cx t b cofine - HBar.m l r cy cofine + HBar.m lAcc rAcc cy cofine spiro-outline corner (cx - size) (cy + size) g4 cx (cy + p * size) @@ -222,20 +240,39 @@ glyph-block Symbol-Pictograph-Musical : begin create-glyph 'dblFlatTone' 0x1D12B : glyph-proc local sw : AdviceStroke 4 include : union - FlatToneShape l (Middle + sw / 3) sw - FlatToneShape (Middle - sw / 3) r sw + FlatToneShape lAcc (Middle + sw / 3) sw + FlatToneShape (Middle - sw / 3) rAcc sw create-glyph 'qtrSharpTone' 0x1D132 : glyph-proc include : dispiro widths.center - flat l ([mix nsTop nsBot 0.3] - (Middle - l) * skew) [heading Rightward] - curl r ([mix nsTop nsBot 0.3] - (Middle - r) * skew) [heading Rightward] + flat lAcc ([mix nsTop nsBot 0.3] - (Middle - lAcc) * skew) [heading Rightward] + curl rAcc ([mix nsTop nsBot 0.3] - (Middle - rAcc) * skew) [heading Rightward] include : dispiro widths.center - flat l ([mix nsTop nsBot 0.7] - (Middle - l) * skew) [heading Rightward] - curl r ([mix nsTop nsBot 0.7] - (Middle - r) * skew) [heading Rightward] + flat lAcc ([mix nsTop nsBot 0.7] - (Middle - lAcc) * skew) [heading Rightward] + curl rAcc ([mix nsTop nsBot 0.7] - (Middle - rAcc) * skew) [heading Rightward] include : VBar.m Middle nsBot nsTop fine create-glyph 'qtrFlatTone' 0x1D133 : glyph-proc include : FlatToneShape include : FlipAround Middle SymbolMid (-1) 1 + + create-glyph 'flatToneUp' 0x1D12C : composite-proc + refer-glyph 'flatTone' AS_BASE ALSO_METRICS + ArrowShape xUpFlat SymbolMid xUpFlat arrowTop arrowWidth halfVFine + create-glyph 'flatToneDown' 0x1D12D : composite-proc + refer-glyph 'flatTone' AS_BASE ALSO_METRICS + ArrowShape xDownFlat SymbolMid xDownFlat arrowBot arrowWidth halfVFine + create-glyph 'naturalToneUp' 0x1D12E : composite-proc + refer-glyph 'naturalTone' AS_BASE ALSO_METRICS + ArrowShape xUpNat SymbolMid xUpNat arrowTop arrowWidth halfVFine + create-glyph 'naturalToneDown' 0x1D12F : composite-proc + refer-glyph 'naturalTone' AS_BASE ALSO_METRICS + ArrowShape xDownNat SymbolMid xDownNat arrowBot arrowWidth halfVFine + create-glyph 'sharpToneUp' 0x1D130 : composite-proc + refer-glyph 'sharpTone' AS_BASE ALSO_METRICS + ArrowShape xUpSharp SymbolMid xUpSharp arrowTop arrowWidth halfVFine + create-glyph 'sharpToneDown' 0x1D131 : composite-proc + refer-glyph 'sharpTone' AS_BASE ALSO_METRICS + ArrowShape xDownSharp SymbolMid xDownSharp arrowBot arrowWidth halfVFine From b79ac389f98e670735f2eb8d6a79c882e8f60b45 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Fri, 20 Dec 2024 05:49:15 -0500 Subject: [PATCH 08/10] Make schwa with retroflex hook slightly wider. (#2619) Also move `Autobuild-Rhotic` from `transformed.ptl` to `composite.ptl`. --- changes/32.3.0.md | 6 +-- .../font-glyphs/src/auto-build/composite.ptl | 31 ++++++++++- .../src/auto-build/transformed.ptl | 42 +-------------- .../font-glyphs/src/letter/latin/lower-e.ptl | 52 +++++++++++++------ 4 files changed, 70 insertions(+), 61 deletions(-) diff --git a/changes/32.3.0.md b/changes/32.3.0.md index c3e2c4fc65..fed5c99f5f 100644 --- a/changes/32.3.0.md +++ b/changes/32.3.0.md @@ -20,6 +20,7 @@ - CYRILLIC SMALL LETTER LJE (`U+0459`) ... CYRILLIC SMALL LETTER NJE (`U+045A`). - CYRILLIC CAPITAL LETTER OMEGA (`U+0460`). - CYRILLIC CAPITAL LETTER OMEGA WITH TITLO (`U+047C`). + - CYRILLIC CAPITAL LETTER OT (`U+047E`). - CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK (`U+04A6`) ... CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK (`U+04A7`). - CYRILLIC CAPITAL LIGATURE A IE (`U+04D4`) ... CYRILLIC SMALL LIGATURE A IE (`U+04D5`). - CYRILLIC CAPITAL LETTER KOMI DJE (`U+0502`) ... CYRILLIC SMALL LETTER KOMI ZJE (`U+0505`). @@ -46,6 +47,7 @@ - LATIN SMALL LETTER UE (`U+1D6B`). - LATIN SMALL LETTER M WITH MIDDLE TILDE (`U+1D6F`). - LATIN SMALL LETTER M WITH PALATAL HOOK (`U+1D86`). + - LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK (`U+1D95`). - MODIFIER LETTER SMALL M WITH HOOK (`U+1DAC`) ... MODIFIER LETTER SMALL TURNED M WITH LONG LEG (`U+1DAD`). - LATIN SMALL LETTER M WITH ACUTE (`U+1E3F`). - LATIN SMALL LETTER M WITH DOT ABOVE (`U+1E41`). @@ -91,9 +93,7 @@ - CYRILLIC SUBSCRIPT SMALL LETTER EF (`U+1E060`). - CYRILLIC SUBSCRIPT SMALL LETTER SHA (`U+1E064`). * Add characters: - - MARRIAGE SYMBOL (`U+26AD`). - - DIVORCE SYMBOL (`U+26AE`). - - UNMARRIED PARTNERSHIP SYMBOL (`U+26AF`). + - MARRIAGE SYMBOL (`U+26AD`) ... UNMARRIED PARTNERSHIP SYMBOL (`U+26AF`). - LEFT OUTER JOIN (`U+27D5`) ... FULL OUTER JOIN (`U+27D7`). - Z NOTATION LEFT BINDING BRACKET (`U+2989`). - Z NOTATION RIGHT BINDING BRACKET (`U+298A`). diff --git a/packages/font-glyphs/src/auto-build/composite.ptl b/packages/font-glyphs/src/auto-build/composite.ptl index bf0076f71e..5b9eeac6f9 100644 --- a/packages/font-glyphs/src/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -1669,6 +1669,35 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin createPhoneticLigatures ToLetter 'thSlash' 1 2 stdShrink 1 : list list 0x1D7A { 't/phoneticLeft1' 'h' 'wideSlash' } 'b' +glyph-block Autobuild-Rhotic : begin + glyph-block-import Mark-Shared-Metrics : markFine + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Recursive-Build : Widen + glyph-block-import Letter-Latin-Rhotic : ErTail + glyph-block-import Autobuild-Transformed-Shared : extendRelatedGlyphs link-relations + + define [createRhotics groupName yTail _records] : begin + local {records relSets targetNameMap} : extendRelatedGlyphs "rhotic_\(groupName)" _records + local pendingGlyphs : records.map : [record] => record.1 + local thinFont : Widen pendingGlyphs 0.85 1 + foreach {unicode glyphid pri} [items-of records] + if [not : query-glyph targetNameMap.(glyphid)] + create-glyph (targetNameMap.(glyphid)) unicode : glyph-proc + if [not : thinFont.queryByName glyphid] : begin + throw : new Error "Cannot find glyph \(glyphid)" + include : MarkSet.e + include : thinFont.queryByName glyphid + include : ErTail (Width * 0.85 - SB - [HSwToV : 1.25 * markFine]) yTail (XH * 0.2) + + link-relations relSets + return { targetNameMap records } + + createRhotics 'er' (XH / 2) + list { 0x25A 'schwa' } + createRhotics 'revLatinEpsilonEr' (XH * [mix 0.65 1 0.5]) + list { 0x25D 'latn/epsilonRev' } + glyph-block Autobuild-Double-Emotions : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives @@ -1707,7 +1736,7 @@ glyph-block Autobuild-Double-Emotions : begin applyRelations jobs.relApplications define stdShrink : clamp 0.625 0.9 : StrokeWidthBlend 0.625 0.9 - createDoubleEmotions 'doubleemotion' para.diversityMM stdShrink stdShrink 1 1 : list + createDoubleEmotions 'doubleemotion' para.diversityM stdShrink stdShrink 1 1 : list list 0x203c { 'exclam' 'zwsp' 'exclam' 'zwsp' } list 0x2047 { 'question/hookPart' 'question/dotPart' 'question/hookPart' 'question/dotPart' } list 0x2048 { 'question/hookPart' 'question/dotPart' 'exclam' 'zwsp' } diff --git a/packages/font-glyphs/src/auto-build/transformed.ptl b/packages/font-glyphs/src/auto-build/transformed.ptl index a771eee8aa..5eff6229a9 100644 --- a/packages/font-glyphs/src/auto-build/transformed.ptl +++ b/packages/font-glyphs/src/auto-build/transformed.ptl @@ -469,46 +469,6 @@ glyph-block Autobuild-Transformed-Mathematical : begin CreateMathBoldFraktur 0x1D56C UpperLatin CreateMathBoldFraktur 0x1D586 LowerLatin -glyph-block Autobuild-Rhotic : begin - glyph-block-import Mark-Shared-Metrics : markFine markstroke - glyph-block-import CommonShapes - glyph-block-import Common-Derivatives - glyph-block-import Recursive-Build : Widen - glyph-block-import Letter-Latin-Rhotic : ErTail - glyph-block-import Autobuild-Transformed-Shared : extendRelatedGlyphs link-relations - glyph-block-import Letter-Shared-Shapes : RetroflexHook - - define [ErTailAttachment y] : ErTail (Width * 0.85 - SB - [HSwToV : 1.25 * markFine]) y (XH * 0.2) - define [RhoticTailAttachment] : RetroflexHook.r - x -- [mix RightSB Width 0.5] - y -- 0 - yAttach -- (XH / 2 - HalfStroke) - xLink -- (Width * 0.85 - SB - [HSwToV : 1.25 * markFine]) - refSw -- [AdviceStroke 4] - - define [createRhotics groupName tail _records] : begin - local {records relSets targetNameMap} : extendRelatedGlyphs "rhotic_\(groupName)" _records - local pendingGlyphs : records.map : [record] => record.1 - local thinFont : Widen pendingGlyphs 0.85 1 - foreach {unicode glyphid pri} [items-of records] - if [not : query-glyph targetNameMap.(glyphid)] - create-glyph (targetNameMap.(glyphid)) unicode : glyph-proc - if [not : thinFont.queryByName glyphid] : begin - throw : new Error "Cannot find glyph \(glyphid)" - include : MarkSet.e - include : thinFont.queryByName glyphid - include tail - - link-relations relSets - return { targetNameMap records } - - createRhotics 'er' [ErTailAttachment (XH / 2)] - list { 0x25A 'schwa' } - createRhotics 'rhotic' [RhoticTailAttachment] - list { 0x1D95 'schwa' } - createRhotics 'revLatinEpsilonEr' [ErTailAttachment (XH * [mix 0.65 1 0.5])] - list { 0x25D 'latn/epsilonRev' } - glyph-block Autobuild-Rotated : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives @@ -527,7 +487,7 @@ glyph-block Autobuild-Rotated : begin set-width MosaicWidth if [not : df.queryByName gns] : throw : new Error "Cannot find glyph \(gns)" include : df.queryByName gns - include : Translate (-(Width / 2)) (-CAP / 2) + include : Translate ((-Width) / 2) ((-CAP) / 2) include : Rotate (Math.PI / 2) include : Scale s include : Translate (MosaicWidth / 2) SymbolMid diff --git a/packages/font-glyphs/src/letter/latin/lower-e.ptl b/packages/font-glyphs/src/letter/latin/lower-e.ptl index 857200992e..e6bd3a4d62 100644 --- a/packages/font-glyphs/src/letter/latin/lower-e.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-e.ptl @@ -16,10 +16,10 @@ glyph-block Letter-Latin-Lower-E : begin glyph-block-import Mark-Adjustment : ExtendBelowBaseAnchors glyph-block-import Letter-Latin-C : CConfig - define [HookHeightFull top stroke noSwash] : Math.min Hook (AHook / XH * top) + define [HookHeightFull top stroke noSwash] : Math.min Hook : AHook / XH * top define [HookHeight top stroke noSwash] : Math.min [HookHeightFull top stroke noSwash] - if (para.isItalic && !noSwash) top (stroke + 0.277 * (top - stroke * 3)) + if (para.isItalic && !noSwash) top : stroke + 0.277 * (top - stroke * 3) define SLAB-NONE 0 define SLAB-CLASSICAL 1 @@ -121,7 +121,7 @@ glyph-block Letter-Latin-Lower-E : begin g4 (df.leftSB + 0.5 * OX) [HookHeight top stroke true] define [AbkCheShape] : with-params [ - fDesc Body df top [stroke df.mvs] [barpos nothing] + fDesc Body df top [stroke : Math.min df.mvs : AdviceStroke2 2 3 top] [barpos nothing] [ada SmallArchDepthA] [adb SmallArchDepthB] [tailSlab nothing] ] : glyph-proc local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * stroke) - [HSwToV : 0.25 * stroke] @@ -171,14 +171,14 @@ glyph-block Letter-Latin-Lower-E : begin # Connected Ogonek shape local fine : AdviceStroke 8 - local depth : 0 - Descender - markStroke + local depth : (-Descender) - markStroke local extL : (7 / 16) * depth + 0.25 * markStress local extR : Math.max (0.0625 * markExtend) (1.5 * TanSlope * markStroke) local beginCoSlope : if para.isItalic 0.2 0 - set-base-anchor 'trailing' (RightSB + extR) (-depth + 0.5 * O - markStroke) - set-base-anchor 'belowBraceL' (RightSB - extL - [HSwToV : 0.25 * markStroke]) (-0.75 * depth) - set-base-anchor 'belowBraceR' (RightSB - 0.75 * extL) (-0.75 * depth) + set-base-anchor 'trailing' (RightSB + extR) ((-depth) + 0.5 * O - markStroke) + set-base-anchor 'belowBraceL' (RightSB - extL - [HSwToV : 0.25 * markStroke]) ((-0.75) * depth) + set-base-anchor 'belowBraceR' (RightSB - 0.75 * extL) ((-0.75) * depth) local turnSlope : 0.5 * ((markStroke - fine) / markStroke - (ArchDepthB - ArchDepth) / ArchDepth) @@ -190,13 +190,13 @@ glyph-block Letter-Latin-Lower-E : begin alsoThruThem.computed { (1/3) (2/3) } : object rx : function [rt] rt deltaX : function [rt] 0 - ry : function [rt] : 1/24 + rt + (1/2 - rt) * (3/8) - deltaY : function [rt] (-0.25 * [mix fine markStroke rt]) + ry : function [rt] : (1/24) + rt + ((1/2) - rt) * (3/8) + deltaY : function [rt] : (-0.25) * [mix fine markStroke rt] modifier : function [rt] : widths.rhs [mix fine markStroke : rt ** 2] - g4.down.mid (RightSB - extL) (-0.75 * depth) [widths.rhs.heading markStroke {.x HVContrast .y turnSlope}] + g4.down.mid (RightSB - extL) ((-0.75) * depth) [widths.rhs.heading markStroke {.x HVContrast .y turnSlope}] arcvh [widths.rhs markStroke] - g4 (RightSB + [mix (-extL) extR (11/16)]) (-depth + O) [heading Rightward] - g4 (RightSB + extR) (-depth + 0.5 * O) [heading Rightward] + g4 (RightSB + [mix (-extL) extR (11/16)]) ((-depth) + O) [heading Rightward] + g4 (RightSB + extR) ((-depth) + 0.5 * O) [heading Rightward] create-glyph "eWithNotch.\(suffix)" : glyph-proc include : MarkSet.e @@ -215,13 +215,14 @@ glyph-block Letter-Latin-Lower-E : begin create-glyph "eRetroflexHook.\(suffix)" : glyph-proc include : MarkSet.e - local lastKnot : include : Body [DivFrame 1] XH + include : Body [DivFrame 1] XH ada -- SmallArchDepthA adb -- SmallArchDepthB + tailSlab -- SLAB-CLASSICAL include : RetroflexHook.r - x -- lastKnot.x + x -- RightSB y -- 0 - yAttach -- lastKnot.y + yAttach -- AHook create-glyph "Schwa.\(suffix)" : glyph-proc include : MarkSet.capital @@ -234,6 +235,24 @@ glyph-block Letter-Latin-Lower-E : begin include [refer-glyph "e.\(suffix)"] AS_BASE ALSO_METRICS include : FlipAround Middle (XH / 2) + create-glyph "schwaRetroflexHook.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 1 + include : df.markSet.e + local divSub : Math.min 1 : 0.85 * para.diversityM + local dfSub : DivFrame divSub 2 + local stroke : AdviceStroke2 2 3 XH divSub + include : Body dfSub XH + stroke -- stroke + ada -- [dfSub.archDepthA SmallArchDepth stroke] + adb -- [dfSub.archDepthB SmallArchDepth stroke] + include : FlipAround dfSub.middle (XH / 2) + include : RetroflexHook.r + x -- [mix RightSB df.width 0.5] + y -- 0 + yAttach -- (XH / 2 - HalfStroke) + xLink -- (dfSub.rightSB - [HSwToV : 0.5 * stroke]) + refSw -- [AdviceStroke 4] + create-glyph "eRev.\(suffix)" : glyph-proc include : MarkSet.e include : RevBody [DivFrame 1] XH @@ -243,7 +262,7 @@ glyph-block Letter-Latin-Lower-E : begin create-glyph "eBar.\(suffix)" : glyph-proc include [refer-glyph "e.\(suffix)"] AS_BASE ALSO_METRICS include : HBar.m [mix SB 0 0.7] [mix RightSB Width 0.7] (XH * 0.25 + Stroke * 0.25) - Math.min [AdviceStroke 5] (0.25 * (XH - 3 * Stroke)) + Math.min (0.25 * (XH - 3 * Stroke)) : AdviceStroke 5 DefineSelectorGlyph "cyrl/Schwa" suffix [DivFrame 1] 'capital' DefineSelectorGlyph "cyrl/schwa" suffix [DivFrame 1] 'e' @@ -321,6 +340,7 @@ glyph-block Letter-Latin-Lower-E : begin select-variant 'Schwa' 0x18F select-variant 'schwa' 0x259 + select-variant 'schwaRetroflexHook' 0x1D95 (follow -- 'schwa') select-variant 'eRev' 0x258 (follow -- 'e') From f5fb3d2ac6efe82f184f1ed336df4ab0b82e2e65 Mon Sep 17 00:00:00 2001 From: Belleve Date: Fri, 20 Dec 2024 20:07:35 -1000 Subject: [PATCH 09/10] #2539 #2612 fix (#2620) --- changes/32.3.0.md | 1 + .../src/letter/cyrillic/big-yus.ptl | 4 +- .../font-glyphs/src/letter/cyrillic/che.ptl | 1 + .../font-glyphs/src/letter/cyrillic/el.ptl | 12 +++- .../src/letter/cyrillic/small-yus.ptl | 8 +-- .../src/letter/cyrillic/te-midhook.ptl | 4 +- .../src/letter/greek/upper-lambda-delta.ptl | 66 ++++++++++++++++++- .../src/letter/latin-ext/rams-horn.ptl | 9 +-- .../font-glyphs/src/letter/latin/upper-h.ptl | 12 +++- packages/font-glyphs/src/letter/latin/v.ptl | 35 +--------- packages/font-glyphs/src/letter/shared.ptl | 3 +- 11 files changed, 103 insertions(+), 52 deletions(-) diff --git a/changes/32.3.0.md b/changes/32.3.0.md index fed5c99f5f..ccf4668c96 100644 --- a/changes/32.3.0.md +++ b/changes/32.3.0.md @@ -1,3 +1,4 @@ +* Make Cyrillic Capital/Small Letter Yn (U+A65E‥U+A65F) to follow Greek Capital Lambda (cv72) instead of V/v. (#2539) * Make certain M-width characters slightly wider under Quasi-Proportional. Affected characters: - LATIN CAPITAL LETTER W (`U+0057`). - LATIN SMALL LETTER M (`U+006D`). diff --git a/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl b/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl index 8083d730fd..1be44f591b 100644 --- a/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl @@ -113,11 +113,11 @@ glyph-block Letter-Cyrillic-BigYus : begin include sf.rb.outer create-glyph 'cyrl/BigYusIotified' 0x46C : glyph-proc - local df : include : DivFrame (para.diversityM ** 2) 4 + local df : include : DivFrame (para.diversityM ** 2) 4.25 include : df.markSet.capital include : CyrIotifiedBigYusShape true df CAP 0.575 create-glyph 'cyrl/bigYusIotified' 0x46D : glyph-proc - local df : include : DivFrame para.diversityM 4 + local df : include : DivFrame para.diversityM 4.25 include : df.markSet.e include : CyrIotifiedBigYusShape false df XH 0.55 diff --git a/packages/font-glyphs/src/letter/cyrillic/che.ptl b/packages/font-glyphs/src/letter/cyrillic/che.ptl index 5d43638bd9..7f7cc74d28 100644 --- a/packages/font-glyphs/src/letter/cyrillic/che.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/che.ptl @@ -115,6 +115,7 @@ glyph-block Letter-Cyrillic-Che : begin top -- top bottom -- (bar - DToothlessRise - 0.5 * sw) sw -- sw + fine -- 0.5 * sw local xTopBarLeft : df.leftSB - SideJut local xTopBarRight : mix xTopBarLeft (left + [HSwToV : 0.5 * sw]) 2 diff --git a/packages/font-glyphs/src/letter/cyrillic/el.ptl b/packages/font-glyphs/src/letter/cyrillic/el.ptl index e4ea8a443a..e80d9db4df 100644 --- a/packages/font-glyphs/src/letter/cyrillic/el.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/el.ptl @@ -79,7 +79,11 @@ glyph-block Letter-Cyrillic-El : begin include : df.markSet.capDesc local xm : df.middle + [HSwToV : 0.5 * df.mvs] - include : CyrElShape df.leftSB xm CAP BODY-STRAIGHT [if SLAB SLAB-ALL SLAB-NONE] df.mvs + include : difference + CyrElShape df.leftSB xm CAP BODY-STRAIGHT [if SLAB SLAB-ALL SLAB-NONE] df.mvs + intersection + MaskBelow Stroke + MaskRight [mix xm (df.rightSB - [HSwToV df.mvs]) 0.625] include : MidHook.m df CAP create-glyph 'cyrl/ElSoft.serifless' : glyph-proc @@ -112,7 +116,11 @@ glyph-block Letter-Cyrillic-El : begin include : df.markSet.p local xm : df.middle + [HSwToV : 0.5 * df.mvs] - include : CyrElShape df.leftSB xm XH body [if SLAB [if para.isItalic slabItalic slabUpright] SLAB-NONE] df.mvs + include : difference + CyrElShape df.leftSB xm XH body [if SLAB [if para.isItalic slabItalic slabUpright] SLAB-NONE] df.mvs + intersection + MaskBelow Stroke + MaskRight [mix xm (df.rightSB - [HSwToV df.mvs]) 0.625] include : MidHook.m df XH define cyrSoftElDf : DivFrame para.diversityM 3 diff --git a/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl b/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl index faac09ac3b..1d0823958f 100644 --- a/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl @@ -98,7 +98,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin include sf.rb.outer create-glyph : glyph-proc - local df : include : DivFrame (para.diversityM ** 2) 4 + local df : include : DivFrame (para.diversityM ** 2) 4.25 include : df.markSet.capital create-forked-glyph 'cyrl/SmallYusIotified.straight' CyrIotifiedSmallYusShape false true df CAP true @@ -106,7 +106,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin CyrIotifiedSmallYusShape false true df CAP false create-glyph : glyph-proc - local df : include : DivFrame para.diversityM 4 + local df : include : DivFrame para.diversityM 4.25 include : df.markSet.e create-forked-glyph 'cyrl/smallYusIotified.straight' CyrIotifiedSmallYusShape false false df XH true @@ -114,7 +114,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin CyrIotifiedSmallYusShape false false df XH false create-glyph : glyph-proc - local df : include : DivFrame para.diversityM 4 + local df : include : DivFrame para.diversityM 4.25 include : df.markSet.capital create-forked-glyph 'cyrl/SmallYusClosedIotified.straight' CyrIotifiedSmallYusShape true true df CAP true @@ -122,7 +122,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin CyrIotifiedSmallYusShape true true df CAP false create-glyph : glyph-proc - local df : include : DivFrame para.diversityM 4 + local df : include : DivFrame para.diversityM 4.25 include : df.markSet.e create-forked-glyph 'cyrl/smallYusClosedIotified.straight' CyrIotifiedSmallYusShape true false df XH true diff --git a/packages/font-glyphs/src/letter/cyrillic/te-midhook.ptl b/packages/font-glyphs/src/letter/cyrillic/te-midhook.ptl index 9fe669e69c..187b4feb47 100644 --- a/packages/font-glyphs/src/letter/cyrillic/te-midhook.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/te-midhook.ptl @@ -33,7 +33,9 @@ glyph-block Letter-Cyrillic-Te-MidHook : begin include : VSerif.dr xTopBarRight top VJut if slabBot : begin - include : HSerif.mb (left + [HSwToV : 0.5 * sw]) 0 Jut + include : intersection + MaskLeft : mix (left + [HSwToV sw]) (df.rightSB - [HSwToV sw]) 0.625 + HSerif.mb (left + [HSwToV : 0.5 * sw]) 0 Jut foreach { suffix { div doST doSB } } [Object.entries TConfig] : do create-glyph "cyrl/TeMidHook.\(suffix)" : glyph-proc diff --git a/packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl b/packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl index ff5b848c1f..97d75e136b 100644 --- a/packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl @@ -2,7 +2,7 @@ $$include '../../meta/macros.ptl' import [mix fallback SuffixCfg] from "@iosevka/util" import [MathSansSerif] from "@iosevka/glyph/relation" -import [bitOr] from "@iosevka/util/mask-bit" +import [bitOr maskBits maskOffBits] from "@iosevka/util/mask-bit" glyph-module @@ -11,7 +11,7 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin glyph-block-import Common-Derivatives glyph-block-import Letter-Shared : CreateTurnedLetter glyph-block-import Letter-Latin-Upper-A : AShape ASerifs - glyph-block-import Letter-Latin-V : VShapeOutline VShape + glyph-block-import Letter-Latin-V : VShapeOutline VShape VHookRightShape define SLAB-NONE 0 define SLAB-TOP 1 @@ -40,6 +40,24 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin include : VShapeOutline df fBarStraight top sw include : FlipAround df.middle (top / 2) + define flex-params [LambdaHookLeftShape] : glyph-proc + local-parameter : df + local-parameter : fBarStraight + local-parameter : slabKind + local-parameter : top + local-parameter : sw + local-parameter : hookWidthOuter -- (TailX / 3) + local-parameter : hookWidthInner -- (TailX / 3) + include : VHookRightShape + df -- df + fBarStraight -- fBarStraight + top -- top + sw -- sw + hookWidthOuter -- hookWidthOuter + hookWidthInner -- hookWidthInner + include : FlipAround df.middle (top / 2) + include : ASerifs df top sw [maskOffBits slabKind SLAB-LEFT] + foreach { suffix { fStraightBar slabKind } } [Object.entries LambeaConfig] : do create-glyph "grek/Lambda.\(suffix)" : glyph-proc include : MarkSet.capital @@ -68,6 +86,47 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin top -- XH sw -- Stroke + create-glyph "cyrl/Yn.\(suffix)" : glyph-proc + include : MarkSet.capDesc + local df : DivFrame 1 3 + local vHeight : CAP * 0.875 + local sw : AdviceStroke 3 + + include : with-transform [ApparentTranslate 0 (CAP - vHeight)] : LambdaHookLeftShape + df -- df + fBarStraight -- fStraightBar + slabKind -- slabKind + top -- vHeight + sw -- df.mvs + hookWidthInner -- (TailX / 3 - [HSwToV : 0.25 * df.mvs]) + + include : dispiro + g4.down.start Middle CAP [widths.center.heading [AdviceStroke 6] Downward] + flat Middle 0 [widths.center.heading df.mvs Downward] + curl Middle Descender [widths.center.heading df.mvs Downward] + if [maskBits slabKind SLAB-RIGHT] : begin + include : HSerif.mb Middle Descender MidJutCenter + + create-glyph "cyrl/yn.\(suffix)" : glyph-proc + include : MarkSet.p + local df : DivFrame 1 3 + local sw : AdviceStroke 3 + + include : LambdaHookLeftShape + df -- df + fBarStraight -- fStraightBar + slabKind -- slabKind + top -- XH + sw -- df.mvs + hookWidthInner -- (TailX / 3 - [HSwToV : 0.25 * df.mvs]) + + include : dispiro + g4.down.start Middle XH [widths.center.heading [AdviceStroke 6] Downward] + flat Middle 0 [widths.center.heading df.mvs Downward] + curl Middle Descender [widths.center.heading df.mvs Downward] + if [maskBits slabKind SLAB-RIGHT] : begin + include : HSerif.mb Middle Descender MidJutCenter + select-variant 'grek/Lambda' 0x39B link-reduced-variant 'grek/Lambda/sansSerif' 'grek/Lambda' MathSansSerif select-variant 'grek/smcpLambda' 0x1D27 (follow -- 'grek/Lambda') @@ -75,6 +134,9 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin alias 'cyrl/El.BGR' null 'grek/Lambda' select-variant 'cyrl/el.BGR' (follow -- 'grek/Lambda') + select-variant 'cyrl/yn' 0xA65F (follow -- 'grek/Lambda') + select-variant 'cyrl/Yn' 0xA65E (follow -- 'grek/Lambda') + # Delta glyph-block-export DeltaShape define [DeltaShape] : with-params [df top sw fBarStraight] : union diff --git a/packages/font-glyphs/src/letter/latin-ext/rams-horn.ptl b/packages/font-glyphs/src/letter/latin-ext/rams-horn.ptl index 2feae5acd9..2bc337fc39 100644 --- a/packages/font-glyphs/src/letter/latin-ext/rams-horn.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/rams-horn.ptl @@ -44,8 +44,8 @@ glyph-block Letter-Latin-Rams-Horn : begin local kIntersection 0.15 local d : 0.25 * (RightSB - SB) * k1 * TanSlope - local sw : AdviceStroke : if SLAB 3 2.75 - local fine : AdviceStroke : if SLAB 3.75 3.5 + local sw : AdviceStroke : if SLAB 3.50 2.75 + local fine : AdviceStroke : if SLAB 3.75 3.50 local coFine : mix sw fine (kIntersection / k2) local fillOffset : sw * 0.25 @@ -69,8 +69,9 @@ glyph-block Letter-Latin-Rams-Horn : begin else : no-shape if SLAB : begin - include : VSerif.dl SB (top - sw) (VJut * (sw / Stroke) - sw) fine - include : VSerif.dr RightSB (top - sw) (VJut * (sw / Stroke) - sw) fine + local swSlab : AdviceStroke 4.5 + include : VSerif.dl SB (top - sw) (VJut * (sw / Stroke) - sw) swSlab + include : VSerif.dr RightSB (top - sw) (VJut * (sw / Stroke) - sw) swSlab create-glyph 'ramshorn' 0x264 : glyph-proc include : MarkSet.e diff --git a/packages/font-glyphs/src/letter/latin/upper-h.ptl b/packages/font-glyphs/src/letter/latin/upper-h.ptl index ce6862c51d..f14fb348f7 100644 --- a/packages/font-glyphs/src/letter/latin/upper-h.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-h.ptl @@ -228,7 +228,11 @@ glyph-block Letter-Latin-Upper-H : begin local xm : df.middle + [HSwToV : 0.5 * df.mvs] include : Body df.leftSB xm CAP df.mvs - include : HSerifs slabType CAP 0 df.leftSB xm df.mvs + include : difference + HSerifs slabType CAP 0 df.leftSB xm df.mvs + intersection + MaskBelow Stroke + MaskRight [mix xm (df.rightSB - [HSwToV df.mvs]) 0.625] include : MidHook.m df CAP create-glyph "cyrl/enMidHook.\(suffix)" : glyph-proc @@ -237,7 +241,11 @@ glyph-block Letter-Latin-Upper-H : begin local xm : df.middle + [HSwToV : 0.5 * df.mvs] include : Body df.leftSB xm XH df.mvs - include : HSerifs slabType XH 0 df.leftSB xm df.mvs + include : difference + HSerifs slabType XH 0 df.leftSB xm df.mvs + intersection + MaskBelow Stroke + MaskRight [mix xm (df.rightSB - [HSwToV df.mvs]) 0.625] include : MidHook.m df XH select-variant 'H' 'H' diff --git a/packages/font-glyphs/src/letter/latin/v.ptl b/packages/font-glyphs/src/letter/latin/v.ptl index 958972c7e6..3acdde6731 100644 --- a/packages/font-glyphs/src/letter/latin/v.ptl +++ b/packages/font-glyphs/src/letter/latin/v.ptl @@ -127,6 +127,7 @@ glyph-block Letter-Latin-V : begin mix xArcMidBottom xArcRight 0.5 mix O yArcRight : archv.yFromX 0.5 2 + glyph-block-export VHookRightShape define [VHookRightShape] : with-params [df fBarStraight top [sw Stroke] [hookWidthOuter (TailX / 3)] [hookWidthInner (TailX / 3)]] : glyph-proc include : VShape df fBarStraight top (sw -- sw) eject-contour 'strokeUp' @@ -240,38 +241,6 @@ glyph-block Letter-Latin-V : begin eject-contour 'serifRT' include : OShape (Ascender - vPartHeight + Stroke + O) 0 SB RightSB - create-glyph "cyrl/Yn.\(suffix)" : glyph-proc - include : MarkSet.capDesc - local vPartHeight : CAP * 0.875 - local sw : AdviceStroke 3 - - include : with-transform [FlipAround Middle (CAP / 2)] : glyph-proc - include : VHookRightShape [DivFrame 1] fStraightBar vPartHeight (sw -- sw) (hookWidthInner -- (TailX / 3 - [HSwToV : 0.25 * sw])) - include : Serifs [DivFrame 1] fStraightBar vPartHeight - eject-contour 'serifRT' - - include : dispiro - g4.down.start Middle CAP [widths.center.heading [AdviceStroke 6] Downward] - flat Middle 0 [widths.center.heading sw Downward] - curl Middle Descender [widths.center.heading sw Downward] - if SLAB : include : HSerif.mb Middle Descender MidJutCenter - - create-glyph "cyrl/yn.\(suffix)" : glyph-proc - include : MarkSet.p - local vPartHeight : XH * 1 - local sw : AdviceStroke 3 - - include : with-transform [FlipAround Middle (XH / 2)] : glyph-proc - include : VHookRightShape [DivFrame 1] fStraightBar vPartHeight (sw -- sw) (hookWidthInner -- (TailX / 3 - [HSwToV : 0.25 * sw])) - include : Serifs [DivFrame 1] fStraightBar vPartHeight - eject-contour 'serifRT' - - include : dispiro - g4.down.start Middle XH [widths.center.heading [AdviceStroke 6] Downward] - flat Middle 0 [widths.center.heading sw Downward] - curl Middle Descender [widths.center.heading sw Downward] - if SLAB : include : HSerif.mb Middle Descender MidJutCenter - create-glyph "vPalatalHook.\(suffix)" : glyph-proc include [refer-glyph "v.\(suffix)"] AS_BASE ALSO_METRICS include : PalatalHook.r @@ -311,13 +280,11 @@ glyph-block Letter-Latin-V : begin select-variant 'vHookRight' 0x2C71 (follow -- 'v/nonCursive') select-variant 'cyrl/ukUnblended' 0x1C88 (follow -- 'v/nonCursive') - select-variant 'cyrl/yn' 0xA65F (follow -- 'v/nonCursive') select-variant 'vLoop' 0x2C74 select-variant 'cyrl/Izhitsa' 0x474 (follow -- 'VHookRight') (shapeFrom -- 'VHookRight') select-variant 'cyrl/Uk' 0xA64A (follow -- 'VHookRight') - select-variant 'cyrl/Yn' 0xA65E (follow -- 'VHookRight') alias 'cyrl/izhitsa' 0x475 'vHookRight' CreateTurnedLetter 'turnV' 0x245 'V' HalfAdvance (CAP / 2) diff --git a/packages/font-glyphs/src/letter/shared.ptl b/packages/font-glyphs/src/letter/shared.ptl index d0d6cb8e9f..485c4b0c2e 100644 --- a/packages/font-glyphs/src/letter/shared.ptl +++ b/packages/font-glyphs/src/letter/shared.ptl @@ -301,6 +301,7 @@ glyph-block Letter-Shared-Shapes : begin local-parameter : bottom local-parameter : adb -- ArchDepthB local-parameter : sw -- Stroke + local-parameter : fine -- sw define xMid : mix left right 0.5 define rise DToothlessRise @@ -309,7 +310,7 @@ glyph-block Letter-Shared-Shapes : begin flat left top [widths.lhs.heading sw Downward] curl left (bottom + adb) arch.lhs.centerAt.ltr.b (xMid + [HSwToV : 0.2 * sw]) bottom - g4 right (bottom + rise + 0.25 * sw) + g4 right (bottom + rise + 0.25 * sw) [widths.lhs fine] glyph-block-export : OBarLeft define OBarLeft : namespace From 476d5bd0bde9dbc960f95e883f87639d1eff7eca Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 21 Dec 2024 05:15:32 -0800 Subject: [PATCH 10/10] Release 32.3.0 --- CHANGELOG.md | 125 ++++ doc/PACKAGE-LIST.md | 274 ++++---- doc/cv-influences.md | 32 +- images/button-release.dark.svg | 6 +- images/button-release.light.svg | 6 +- images/cs-block-arrows.dark.svg | 10 +- images/cs-block-arrows.light.svg | 10 +- ...ning-diacritical-marks-supplement.dark.svg | 2 +- ...ing-diacritical-marks-supplement.light.svg | 2 +- images/cs-block-currency-symbols.dark.svg | 2 +- images/cs-block-currency-symbols.light.svg | 2 +- images/cs-block-cyrillic-extended-a.dark.svg | 6 +- images/cs-block-cyrillic-extended-a.light.svg | 6 +- images/cs-block-cyrillic-extended-b.dark.svg | 20 +- images/cs-block-cyrillic-extended-b.light.svg | 20 +- images/cs-block-cyrillic-extended-d.dark.svg | 2 +- images/cs-block-cyrillic-extended-d.light.svg | 2 +- images/cs-block-cyrillic.dark.svg | 24 +- images/cs-block-cyrillic.light.svg | 24 +- images/cs-block-latin-extended-b.dark.svg | 4 +- images/cs-block-latin-extended-b.light.svg | 4 +- images/cs-block-latin-extended-e.dark.svg | 2 +- images/cs-block-latin-extended-e.light.svg | 2 +- images/cs-block-latin-extended-g.dark.svg | 26 +- images/cs-block-latin-extended-g.light.svg | 26 +- .../cs-block-mathematical-operators.dark.svg | 12 +- .../cs-block-mathematical-operators.light.svg | 12 +- ...cellaneous-mathematical-symbols-a.dark.svg | 87 +-- ...ellaneous-mathematical-symbols-a.light.svg | 87 +-- ...cellaneous-mathematical-symbols-b.dark.svg | 250 ++++---- ...ellaneous-mathematical-symbols-b.light.svg | 250 ++++---- ...-miscellaneous-symbols-and-arrows.dark.svg | 247 ++++---- ...miscellaneous-symbols-and-arrows.light.svg | 247 ++++---- .../cs-block-miscellaneous-symbols.dark.svg | 49 +- .../cs-block-miscellaneous-symbols.light.svg | 49 +- .../cs-block-miscellaneous-technical.dark.svg | 10 +- ...cs-block-miscellaneous-technical.light.svg | 10 +- images/cs-block-musical-symbols.dark.svg | 62 +- images/cs-block-musical-symbols.light.svg | 62 +- ...ck-phonetic-extensions-supplement.dark.svg | 4 +- ...k-phonetic-extensions-supplement.light.svg | 4 +- ...pplemental-mathematical-operators.dark.svg | 589 +++++++++--------- ...plemental-mathematical-operators.light.svg | 589 +++++++++--------- ...cs-block-supplemental-punctuation.dark.svg | 2 +- ...s-block-supplemental-punctuation.light.svg | 2 +- ...lock-symbols-for-legacy-computing.dark.svg | 2 +- ...ock-symbols-for-legacy-computing.light.svg | 2 +- ...itional-descending-middle-serifed.dark.svg | 2 +- ...tional-descending-middle-serifed.light.svg | 2 +- ...cv-eszet-traditional-dual-serifed.dark.svg | 2 +- ...v-eszet-traditional-dual-serifed.light.svg | 2 +- ...at-hook-descending-middle-serifed.dark.svg | 2 +- ...t-hook-descending-middle-serifed.light.svg | 2 +- ...raditional-flat-hook-dual-serifed.dark.svg | 2 +- ...aditional-flat-hook-dual-serifed.light.svg | 2 +- ...ditional-flat-hook-middle-serifed.dark.svg | 2 +- ...itional-flat-hook-middle-serifed.light.svg | 2 +- ...l-flat-hook-tailed-middle-serifed.dark.svg | 2 +- ...-flat-hook-tailed-middle-serifed.light.svg | 2 +- ...-eszet-traditional-middle-serifed.dark.svg | 2 +- ...eszet-traditional-middle-serifed.light.svg | 2 +- ...traditional-tailed-middle-serifed.dark.svg | 2 +- ...raditional-tailed-middle-serifed.light.svg | 2 +- images/languages.dark.svg | 4 +- images/languages.light.svg | 4 +- images/package-sample-IosevkaAile.dark.svg | 190 +++--- images/package-sample-IosevkaAile.light.svg | 190 +++--- images/package-sample-IosevkaEtoile.dark.svg | 190 +++--- images/package-sample-IosevkaEtoile.light.svg | 190 +++--- package-lock.json | 80 +-- package.json | 2 +- packages/font-glyphs/package.json | 12 +- packages/font-kits/package.json | 8 +- packages/font-otl/package.json | 6 +- packages/font/package.json | 16 +- packages/geometry-cache/package.json | 4 +- packages/geometry/package.json | 4 +- packages/glyph/package.json | 4 +- packages/param/package.json | 4 +- packages/util/package.json | 2 +- tools/amend-readme/package.json | 4 +- tools/data-export/package.json | 4 +- tools/generate-samples/package.json | 4 +- tools/misc/package.json | 4 +- 84 files changed, 2237 insertions(+), 1988 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4cf808bfa..ebe4c8b23c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,130 @@ ## Modifications since last major version +### 32.3.0 + +* Make Cyrillic Capital/Small Letter Yn (U+A65E‥U+A65F) to follow Greek Capital Lambda (cv72) instead of V/v. (#2539) +* Make certain M-width characters slightly wider under Quasi-Proportional. Affected characters: + - LATIN CAPITAL LETTER W (`U+0057`). + - LATIN SMALL LETTER M (`U+006D`). + - LATIN CAPITAL LETTER AE (`U+00C6`). + - LATIN SMALL LETTER AE (`U+00E6`). + - LATIN CAPITAL LIGATURE OE (`U+0152`) ... LATIN SMALL LIGATURE OE (`U+0153`). + - LATIN CAPITAL LETTER W WITH CIRCUMFLEX (`U+0174`). + - LATIN SMALL LETTER HV (`U+0195`). + - LATIN CAPITAL LETTER TURNED M (`U+019C`). + - LATIN CAPITAL LETTER AE WITH MACRON (`U+01E2`) ... LATIN SMALL LETTER AE WITH MACRON (`U+01E3`). + - LATIN CAPITAL LETTER HWAIR (`U+01F6`). + - LATIN CAPITAL LETTER AE WITH ACUTE (`U+01FC`) ... LATIN SMALL LETTER AE WITH ACUTE (`U+01FD`). + - LATIN SMALL LETTER DB DIGRAPH (`U+0238`) ... LATIN SMALL LETTER QP DIGRAPH (`U+0239`). + - LATIN SMALL LETTER TURNED M (`U+026F`) ... LATIN SMALL LETTER M WITH HOOK (`U+0271`). + - LATIN SMALL LETTER DZ DIGRAPH (`U+02A3`) ... LATIN SMALL LETTER LZ DIGRAPH (`U+02AB`). + - CYRILLIC CAPITAL LETTER LJE (`U+0409`) ... CYRILLIC CAPITAL LETTER NJE (`U+040A`). + - CYRILLIC CAPITAL LETTER SHA (`U+0428`) ... CYRILLIC CAPITAL LETTER SHCHA (`U+0429`). + - CYRILLIC SMALL LETTER EF (`U+0444`). + - CYRILLIC SMALL LETTER SHA (`U+0448`) ... CYRILLIC SMALL LETTER SHCHA (`U+0449`). + - CYRILLIC SMALL LETTER LJE (`U+0459`) ... CYRILLIC SMALL LETTER NJE (`U+045A`). + - CYRILLIC CAPITAL LETTER OMEGA (`U+0460`). + - CYRILLIC CAPITAL LETTER OMEGA WITH TITLO (`U+047C`). + - CYRILLIC CAPITAL LETTER OT (`U+047E`). + - CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK (`U+04A6`) ... CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK (`U+04A7`). + - CYRILLIC CAPITAL LIGATURE A IE (`U+04D4`) ... CYRILLIC SMALL LIGATURE A IE (`U+04D5`). + - CYRILLIC CAPITAL LETTER KOMI DJE (`U+0502`) ... CYRILLIC SMALL LETTER KOMI ZJE (`U+0505`). + - CYRILLIC CAPITAL LETTER KOMI LJE (`U+0508`) ... CYRILLIC SMALL LETTER KOMI NJE (`U+050B`). + - CYRILLIC CAPITAL LETTER YAE (`U+0518`) ... CYRILLIC SMALL LETTER YAE (`U+0519`). + - CYRILLIC CAPITAL LETTER WE (`U+051C`). + - CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK (`U+0520`) ... CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK (`U+0523`). + - CYRILLIC CAPITAL LETTER DZZHE (`U+052A`) ... CYRILLIC SMALL LETTER DZZHE (`U+052B`). + - ARMENIAN CAPITAL LETTER XEH (`U+053D`). + - ARMENIAN SMALL LETTER TURNED AYB (`U+0560`) ... ARMENIAN SMALL LETTER AYB (`U+0561`). + - ARMENIAN SMALL LETTER XEH (`U+056D`). + - ARMENIAN SMALL LETTER PEH (`U+057A`). + - ARMENIAN SMALL LETTER TIWN (`U+057F`). + - ARMENIAN SMALL LETTER PIWR (`U+0583`). + - ARMENIAN SMALL LIGATURE ECH YIWN (`U+0587`). + - CYRILLIC SMALL LETTER THREE-LEGGED TE (`U+1C85`). + - LATIN SMALL LETTER TURNED AE (`U+1D02`). + - LATIN SMALL LETTER TURNED OE (`U+1D14`). + - MODIFIER LETTER CAPITAL AE (`U+1D2D`). + - MODIFIER LETTER CAPITAL W (`U+1D42`). + - MODIFIER LETTER SMALL TURNED AE (`U+1D46`). + - MODIFIER LETTER SMALL M (`U+1D50`). + - MODIFIER LETTER SMALL TURNED M (`U+1D5A`). + - LATIN SMALL LETTER UE (`U+1D6B`). + - LATIN SMALL LETTER M WITH MIDDLE TILDE (`U+1D6F`). + - LATIN SMALL LETTER M WITH PALATAL HOOK (`U+1D86`). + - LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK (`U+1D95`). + - MODIFIER LETTER SMALL M WITH HOOK (`U+1DAC`) ... MODIFIER LETTER SMALL TURNED M WITH LONG LEG (`U+1DAD`). + - LATIN SMALL LETTER M WITH ACUTE (`U+1E3F`). + - LATIN SMALL LETTER M WITH DOT ABOVE (`U+1E41`). + - LATIN SMALL LETTER M WITH DOT BELOW (`U+1E43`). + - LATIN CAPITAL LETTER W WITH GRAVE (`U+1E80`). + - LATIN CAPITAL LETTER W WITH ACUTE (`U+1E82`). + - LATIN CAPITAL LETTER W WITH DIAERESIS (`U+1E84`). + - LATIN CAPITAL LETTER W WITH DOT ABOVE (`U+1E86`). + - LATIN CAPITAL LETTER W WITH DOT BELOW (`U+1E88`). + - LATIN SUBSCRIPT SMALL LETTER M (`U+2098`). + - TELEPHONE SIGN (`U+2121`). + - FACSIMILE SIGN (`U+213B`). + - MILL SIGN (`U+20A5`). + - WON SIGN (`U+20A9`). + - SMALL ROMAN NUMERAL ONE THOUSAND (`U+217F`) ... ROMAN NUMERAL ONE THOUSAND C D (`U+2180`). + - ROMAN NUMERAL TEN THOUSAND (`U+2182`). + - ROMAN NUMERAL ONE HUNDRED THOUSAND (`U+2188`). + - VERY MUCH LESS-THAN (`U+22D8`) ... VERY MUCH GREATER-THAN (`U+22D9`). + - LEFT AND RIGHT DOUBLE TURNSTILE (`U+27DA`) ... LEFT AND RIGHT TACK (`U+27DB`). + - SHUFFLE PRODUCT (`U+29E2`). + - LATIN CAPITAL LETTER W WITH HOOK (`U+2C72`). + - CYRILLIC CAPITAL LETTER BROAD OMEGA (`U+A64C`). + - CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O (`U+A66C`) ... CYRILLIC LETTER MULTIOCULAR O (`U+A66E`). + - CYRILLIC CAPITAL LETTER ZHWE (`U+A684`) ... CYRILLIC SMALL LETTER CCHE (`U+A687`). + - CYRILLIC CAPITAL LETTER DOUBLE O (`U+A698`) ... CYRILLIC SMALL LETTER DOUBLE O (`U+A699`). + - LATIN CAPITAL LETTER AA (`U+A732`) ... LATIN SMALL LETTER AU (`U+A737`). + - LATIN CAPITAL LETTER OO (`U+A74E`) ... LATIN SMALL LETTER OO (`U+A74F`). + - LATIN CAPITAL LETTER OMEGA (`U+A7B6`). + - MODIFIER LETTER SMALL LIGATURE OE (`U+A7F9`) ... LATIN SMALL CAPITAL LETTER TURNED M (`U+A7FA`). + - LATIN EPIGRAPHIC LETTER ARCHAIC M (`U+A7FF`). + - LATIN SMALL LETTER A REVERSED SCHWA (`U+AB31`). + - LATIN SMALL LETTER M WITH CROSSED-TAIL (`U+AB3A`). + - LATIN SMALL LETTER INVERTED OE (`U+AB40`) ... LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE (`U+AB42`). + - LATIN SMALL LETTER SAKHA YAT (`U+AB60`). + - LATIN SMALL LETTER UO (`U+AB63`). + - LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX HOOK (`U+AB66`) ... LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK (`U+AB67`). + - LATIN SMALL LIGATURE FFI (`U+FB03`) ... LATIN SMALL LIGATURE ST (`U+FB06`). + - MODIFIER LETTER SMALL AE (`U+10783`). + - LATIN SMALL LETTER DEZH DIGRAPH WITH PALATAL HOOK (`U+1DF12`). + - LATIN SMALL LETTER TESH DIGRAPH WITH PALATAL HOOK (`U+1DF17`). + - MODIFIER LETTER CYRILLIC SMALL EF (`U+1E042`). + - MODIFIER LETTER CYRILLIC SMALL SHA (`U+1E046`). + - CYRILLIC SUBSCRIPT SMALL LETTER EF (`U+1E060`). + - CYRILLIC SUBSCRIPT SMALL LETTER SHA (`U+1E064`). +* Add characters: + - MARRIAGE SYMBOL (`U+26AD`) ... UNMARRIED PARTNERSHIP SYMBOL (`U+26AF`). + - LEFT OUTER JOIN (`U+27D5`) ... FULL OUTER JOIN (`U+27D7`). + - Z NOTATION LEFT BINDING BRACKET (`U+2989`). + - Z NOTATION RIGHT BINDING BRACKET (`U+298A`). + - TRIANGLE WITH DOT ABOVE (`U+29CA`). + - TRIANGLE WITH UNDERBAR (`U+29CB`). + - TRIANGLE WITH SERIFS AT BOTTOM (`U+29CD`). + - N-ARY TIMES OPERATOR (`U+2A09`). + - JOIN (`U+2A1D`). + - LARGE LEFT TRIANGLE OPERATOR (`U+2A1E`). + - CLOSED UNION WITH SERIFS (`U+2A4C`) ... DOUBLE SQUARE UNION (`U+2A4F`). + - SLOPING LARGE OR (`U+2A57`). + - SLOPING LARGE AND (`U+2A58`). + - LOGICAL AND WITH MIDDLE STEM (`U+2A5A`). + - LOGICAL OR WITH MIDDLE STEM (`U+2A5B`). + - Z NOTATION DOMAIN ANTIRESTRICTION (`U+2A64`). + - Z NOTATION RANGE ANTIRESTRICTION (`U+2A65`). + - SMALLER THAN (`U+2AAA`) ... LARGER THAN OR EQUAL TO (`U+2AAD`). + - CLOSED SUBSET (`U+2ACF`) ... CLOSED SUPERSET OR EQUAL TO (`U+2AD2`). + - ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW (`U+2B8C`) ... FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE (`U+2B94`). + - DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS (`U+2BA0`) ... RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS (`U+2BA7`). + - UNITED SYMBOL (`U+2BFA`) ... PASSED SYMBOL (`U+2BFD`). + - MUSICAL SYMBOL FLAT UP (`U+1D12C`) ... MUSICAL SYMBOL SHARP DOWN (`U+1D131`). + - LATIN SMALL LETTER DEZH DIGRAPH WITH RETROFLEX HOOK (`U+1DF19`). + - LATIN SMALL LETTER TESH DIGRAPH WITH RETROFLEX HOOK (`U+1DF1C`). + + ### 32.2.1 * Make certain characters slightly wider under Quasi-Proportional. Affected characters: diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 69db85facf..88a94bc013 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 32.2.1 +# Package list of Release 32.3.0 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -22,146 +22,146 @@ Iosevka provides various packaging formats, here is the list of them: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/doc/cv-influences.md b/doc/cv-influences.md index 85152e3f61..e592e784b2 100644 --- a/doc/cv-influences.md +++ b/doc/cv-influences.md @@ -125,7 +125,7 @@ - `cv31`: - V (`U+0056`), Ʋ (`U+01B2`), Ʌ (`U+0245`), Ѵ (`U+0474`), Ѷ (`U+0476`), ᴠ (`U+1D20`), Ṽ (`U+1E7C`), Ṿ (`U+1E7E`), Ⅳ (`U+2163`), Ⅴ (`U+2164`), Ⅵ (`U+2165`), Ⅶ (`U+2166`), Ⅷ (`U+2167`), ␋ (`U+240B`), Ⓥ (`U+24CB`), ⱽ (`U+2C7D`), Ꙋ (`U+A64A`), Ꙟ (`U+A65E`), 𜳫 (`U+1CCEB`), 𝐕 (`U+1D415`), 𝑉 (`U+1D449`), 𝑽 (`U+1D47D`), 𝖵 (`U+1D5B5`), 𝗩 (`U+1D5E9`), 𝘝 (`U+1D61D`), 𝙑 (`U+1D651`), 𝚅 (`U+1D685`), 🃤 (`U+1F0E4`), 🃥 (`U+1F0E5`), 🃦 (`U+1F0E6`), 🃧 (`U+1F0E7`), 🃨 (`U+1F0E8`), 🃮 (`U+1F0EE`), 🃯 (`U+1F0EF`), 🃰 (`U+1F0F0`), 🃱 (`U+1F0F1`), 🃲 (`U+1F0F2`), 🄥 (`U+1F125`), 🅅 (`U+1F145`), 🅊 (`U+1F14A`), 🅋 (`U+1F14B`), 🅎 (`U+1F14E`), 🅥 (`U+1F165`), 🆅 (`U+1F185`), 🆚 (`U+1F19A`), 🆪 (`U+1F1AA`), 🆬 (`U+1F1AC`), 🇻 (`U+1F1FB`) + V (`U+0056`), Ʋ (`U+01B2`), Ʌ (`U+0245`), Ѵ (`U+0474`), Ѷ (`U+0476`), ᴠ (`U+1D20`), Ṽ (`U+1E7C`), Ṿ (`U+1E7E`), Ⅳ (`U+2163`), Ⅴ (`U+2164`), Ⅵ (`U+2165`), Ⅶ (`U+2166`), Ⅷ (`U+2167`), ␋ (`U+240B`), Ⓥ (`U+24CB`), ⱽ (`U+2C7D`), Ꙋ (`U+A64A`), 𜳫 (`U+1CCEB`), 𝐕 (`U+1D415`), 𝑉 (`U+1D449`), 𝑽 (`U+1D47D`), 𝖵 (`U+1D5B5`), 𝗩 (`U+1D5E9`), 𝘝 (`U+1D61D`), 𝙑 (`U+1D651`), 𝚅 (`U+1D685`), 🃤 (`U+1F0E4`), 🃥 (`U+1F0E5`), 🃦 (`U+1F0E6`), 🃧 (`U+1F0E7`), 🃨 (`U+1F0E8`), 🃮 (`U+1F0EE`), 🃯 (`U+1F0EF`), 🃰 (`U+1F0F0`), 🃱 (`U+1F0F1`), 🃲 (`U+1F0F2`), 🄥 (`U+1F125`), 🅅 (`U+1F145`), 🅊 (`U+1F14A`), 🅋 (`U+1F14B`), 🅎 (`U+1F14E`), 🅥 (`U+1F165`), 🆅 (`U+1F185`), 🆚 (`U+1F19A`), 🆪 (`U+1F1AA`), 🆬 (`U+1F1AC`), 🇻 (`U+1F1FB`) - `cv32`: @@ -157,7 +157,7 @@ - `cv39`: - d (`U+0064`), ď (`U+010F`), đ (`U+0111`), ƌ (`U+018C`), dž (`U+01C6`), dz (`U+01F3`), ȡ (`U+0221`), ɖ (`U+0256`), ɗ (`U+0257`), ʣ (`U+02A3`), ʤ (`U+02A4`), ʥ (`U+02A5`), ͩ (`U+0369`), ԁ (`U+0501`), ԃ (`U+0503`), ᵈ (`U+1D48`), ᵭ (`U+1D6D`), ᶁ (`U+1D81`), ᶑ (`U+1D91`), ḋ (`U+1E0B`), ḍ (`U+1E0D`), ḏ (`U+1E0F`), ḑ (`U+1E11`), ḓ (`U+1E13`), ₫ (`U+20AB`), ⅾ (`U+217E`), ≝ (`U+225D`), ⒟ (`U+249F`), ⓓ (`U+24D3`), ꟈ (`U+A7C8`), ꭦ (`U+AB66`), 𐞇 (`U+10787`), 𐞈 (`U+10788`), 𐞉 (`U+10789`), 𐞊 (`U+1078A`), 𐞋 (`U+1078B`), 𐞌 (`U+1078C`), 𐞍 (`U+1078D`), 𝐝 (`U+1D41D`), 𝑑 (`U+1D451`), 𝒅 (`U+1D485`), 𝖽 (`U+1D5BD`), 𝗱 (`U+1D5F1`), 𝘥 (`U+1D625`), 𝙙 (`U+1D659`), 𝚍 (`U+1D68D`), 𝼒 (`U+1DF12`), 🆥 (`U+1F1A5`) + d (`U+0064`), ď (`U+010F`), đ (`U+0111`), ƌ (`U+018C`), dž (`U+01C6`), dz (`U+01F3`), ȡ (`U+0221`), ɖ (`U+0256`), ɗ (`U+0257`), ʣ (`U+02A3`), ʤ (`U+02A4`), ʥ (`U+02A5`), ͩ (`U+0369`), ԁ (`U+0501`), ԃ (`U+0503`), ᵈ (`U+1D48`), ᵭ (`U+1D6D`), ᶁ (`U+1D81`), ᶑ (`U+1D91`), ḋ (`U+1E0B`), ḍ (`U+1E0D`), ḏ (`U+1E0F`), ḑ (`U+1E11`), ḓ (`U+1E13`), ₫ (`U+20AB`), ⅾ (`U+217E`), ≝ (`U+225D`), ⒟ (`U+249F`), ⓓ (`U+24D3`), ꟈ (`U+A7C8`), ꭦ (`U+AB66`), 𐞇 (`U+10787`), 𐞈 (`U+10788`), 𐞉 (`U+10789`), 𐞊 (`U+1078A`), 𐞋 (`U+1078B`), 𐞌 (`U+1078C`), 𐞍 (`U+1078D`), 𝐝 (`U+1D41D`), 𝑑 (`U+1D451`), 𝒅 (`U+1D485`), 𝖽 (`U+1D5BD`), 𝗱 (`U+1D5F1`), 𝘥 (`U+1D625`), 𝙙 (`U+1D659`), 𝚍 (`U+1D68D`), 𝼒 (`U+1DF12`), 𝼙 (`U+1DF19`), 🆥 (`U+1F1A5`) - `cv40`: @@ -217,7 +217,7 @@ - `cv54`: - t (`U+0074`), ţ (`U+0163`), ť (`U+0165`), ŧ (`U+0167`), ƫ (`U+01AB`), ƭ (`U+01AD`), ƾ (`U+01BE`), ț (`U+021B`), ȶ (`U+0236`), ʇ (`U+0287`), ʈ (`U+0288`), ʦ (`U+02A6`), ʧ (`U+02A7`), ʨ (`U+02A8`), ͭ (`U+036D`), ᵗ (`U+1D57`), ᵵ (`U+1D75`), ᵺ (`U+1D7A`), ᶵ (`U+1DB5`), ṫ (`U+1E6B`), ṭ (`U+1E6D`), ṯ (`U+1E6F`), ṱ (`U+1E71`), ẗ (`U+1E97`), ₜ (`U+209C`), ₧ (`U+20A7`), ⒯ (`U+24AF`), ⓣ (`U+24E3`), ⱦ (`U+2C66`), ꭧ (`U+AB67`), ſt (`U+FB05`), st (`U+FB06`), 𐞫 (`U+107AB`), 𐞬 (`U+107AC`), 𐞭 (`U+107AD`), 𐞮 (`U+107AE`), 𐞯 (`U+107AF`), 𝐭 (`U+1D42D`), 𝑡 (`U+1D461`), 𝒕 (`U+1D495`), 𝗍 (`U+1D5CD`), 𝘁 (`U+1D601`), 𝘵 (`U+1D635`), 𝙩 (`U+1D669`), 𝚝 (`U+1D69D`), 𝼉 (`U+1DF09`), 𝼗 (`U+1DF17`) + t (`U+0074`), ţ (`U+0163`), ť (`U+0165`), ŧ (`U+0167`), ƫ (`U+01AB`), ƭ (`U+01AD`), ƾ (`U+01BE`), ț (`U+021B`), ȶ (`U+0236`), ʇ (`U+0287`), ʈ (`U+0288`), ʦ (`U+02A6`), ʧ (`U+02A7`), ʨ (`U+02A8`), ͭ (`U+036D`), ᵗ (`U+1D57`), ᵵ (`U+1D75`), ᵺ (`U+1D7A`), ᶵ (`U+1DB5`), ṫ (`U+1E6B`), ṭ (`U+1E6D`), ṯ (`U+1E6F`), ṱ (`U+1E71`), ẗ (`U+1E97`), ₜ (`U+209C`), ₧ (`U+20A7`), ⒯ (`U+24AF`), ⓣ (`U+24E3`), ⱦ (`U+2C66`), ꭧ (`U+AB67`), ſt (`U+FB05`), st (`U+FB06`), 𐞫 (`U+107AB`), 𐞬 (`U+107AC`), 𐞭 (`U+107AD`), 𐞮 (`U+107AE`), 𐞯 (`U+107AF`), 𝐭 (`U+1D42D`), 𝑡 (`U+1D461`), 𝒕 (`U+1D495`), 𝗍 (`U+1D5CD`), 𝘁 (`U+1D601`), 𝘵 (`U+1D635`), 𝙩 (`U+1D669`), 𝚝 (`U+1D69D`), 𝼉 (`U+1DF09`), 𝼗 (`U+1DF17`), 𝼜 (`U+1DF1C`) - `cv55`: @@ -225,7 +225,7 @@ - `cv56`: - v (`U+0076`), ʋ (`U+028B`), ʌ (`U+028C`), ͮ (`U+036E`), ѵ (`U+0475`), ѷ (`U+0477`), ᲈ (`U+1C88`), ᵛ (`U+1D5B`), ᵥ (`U+1D65`), ᶌ (`U+1D8C`), ᶹ (`U+1DB9`), ᶺ (`U+1DBA`), ṽ (`U+1E7D`), ṿ (`U+1E7F`), ⅳ (`U+2173`), ⅴ (`U+2174`), ⅵ (`U+2175`), ⅶ (`U+2176`), ⅷ (`U+2177`), ⒱ (`U+24B1`), ⓥ (`U+24E5`), ⱱ (`U+2C71`), ⱴ (`U+2C74`), ꙟ (`U+A65F`), 𐞰 (`U+107B0`), 𝐯 (`U+1D42F`), 𝑣 (`U+1D463`), 𝒗 (`U+1D497`), 𝗏 (`U+1D5CF`), 𝘃 (`U+1D603`), 𝘷 (`U+1D637`), 𝙫 (`U+1D66B`), 𝚟 (`U+1D69F`) + v (`U+0076`), ʋ (`U+028B`), ʌ (`U+028C`), ͮ (`U+036E`), ѵ (`U+0475`), ѷ (`U+0477`), ᲈ (`U+1C88`), ᵛ (`U+1D5B`), ᵥ (`U+1D65`), ᶌ (`U+1D8C`), ᶹ (`U+1DB9`), ᶺ (`U+1DBA`), ṽ (`U+1E7D`), ṿ (`U+1E7F`), ⅳ (`U+2173`), ⅴ (`U+2174`), ⅵ (`U+2175`), ⅶ (`U+2176`), ⅷ (`U+2177`), ⒱ (`U+24B1`), ⓥ (`U+24E5`), ⱱ (`U+2C71`), ⱴ (`U+2C74`), 𐞰 (`U+107B0`), 𝐯 (`U+1D42F`), 𝑣 (`U+1D463`), 𝒗 (`U+1D497`), 𝗏 (`U+1D5CF`), 𝘃 (`U+1D603`), 𝘷 (`U+1D637`), 𝙫 (`U+1D66B`), 𝚟 (`U+1D69F`) - `cv57`: @@ -241,7 +241,7 @@ - `cv60`: - z (`U+007A`), ź (`U+017A`), ż (`U+017C`), ž (`U+017E`), ƶ (`U+01B6`), ƹ (`U+01B9`), ƺ (`U+01BA`), Dž (`U+01C5`), dž (`U+01C6`), ǯ (`U+01EF`), Dz (`U+01F2`), dz (`U+01F3`), ȥ (`U+0225`), ɀ (`U+0240`), ʐ (`U+0290`), ʑ (`U+0291`), ʒ (`U+0292`), ʓ (`U+0293`), ʣ (`U+02A3`), ʤ (`U+02A4`), ʥ (`U+02A5`), ʫ (`U+02AB`), ӡ (`U+04E1`), ᵶ (`U+1D76`), ᶎ (`U+1D8E`), ᶚ (`U+1D9A`), ᶻ (`U+1DBB`), ᶼ (`U+1DBC`), ᶽ (`U+1DBD`), ᶾ (`U+1DBE`), ᷦ (`U+1DE6`), ẑ (`U+1E91`), ẓ (`U+1E93`), ẕ (`U+1E95`), ⒵ (`U+24B5`), ⓩ (`U+24E9`), ⱬ (`U+2C6C`), ꙁ (`U+A641`), ꙃ (`U+A643`), ꭦ (`U+AB66`), 𐞇 (`U+10787`), 𐞈 (`U+10788`), 𐞉 (`U+10789`), 𐞊 (`U+1078A`), 𐞚 (`U+1079A`), 𝆎 (`U+1D18E`), 𝐳 (`U+1D433`), 𝑧 (`U+1D467`), 𝒛 (`U+1D49B`), 𝗓 (`U+1D5D3`), 𝘇 (`U+1D607`), 𝘻 (`U+1D63B`), 𝙯 (`U+1D66F`), 𝚣 (`U+1D6A3`), 𝼒 (`U+1DF12`), 𝼘 (`U+1DF18`) + z (`U+007A`), ź (`U+017A`), ż (`U+017C`), ž (`U+017E`), ƶ (`U+01B6`), ƹ (`U+01B9`), ƺ (`U+01BA`), Dž (`U+01C5`), dž (`U+01C6`), ǯ (`U+01EF`), Dz (`U+01F2`), dz (`U+01F3`), ȥ (`U+0225`), ɀ (`U+0240`), ʐ (`U+0290`), ʑ (`U+0291`), ʒ (`U+0292`), ʓ (`U+0293`), ʣ (`U+02A3`), ʤ (`U+02A4`), ʥ (`U+02A5`), ʫ (`U+02AB`), ӡ (`U+04E1`), ᵶ (`U+1D76`), ᶎ (`U+1D8E`), ᶚ (`U+1D9A`), ᶻ (`U+1DBB`), ᶼ (`U+1DBC`), ᶽ (`U+1DBD`), ᶾ (`U+1DBE`), ᷦ (`U+1DE6`), ẑ (`U+1E91`), ẓ (`U+1E93`), ẕ (`U+1E95`), ⒵ (`U+24B5`), ⓩ (`U+24E9`), ⱬ (`U+2C6C`), ꙁ (`U+A641`), ꙃ (`U+A643`), ꭦ (`U+AB66`), 𐞇 (`U+10787`), 𐞈 (`U+10788`), 𐞉 (`U+10789`), 𐞊 (`U+1078A`), 𐞚 (`U+1079A`), 𝆎 (`U+1D18E`), 𝐳 (`U+1D433`), 𝑧 (`U+1D467`), 𝒛 (`U+1D49B`), 𝗓 (`U+1D5D3`), 𝘇 (`U+1D607`), 𝘻 (`U+1D63B`), 𝙯 (`U+1D66F`), 𝚣 (`U+1D6A3`), 𝼒 (`U+1DF12`), 𝼘 (`U+1DF18`), 𝼙 (`U+1DF19`) - `cv61`: @@ -289,7 +289,7 @@ - `cv72`: - Λ (`U+039B`), Ѧ (`U+0466`), ѧ (`U+0467`), Ѩ (`U+0468`), ѩ (`U+0469`), ᴧ (`U+1D27`), ⷽ (`U+2DFD`), Ꟛ (`U+A7DA`), Ƛ (`U+A7DC`), 𝚲 (`U+1D6B2`), 𝛬 (`U+1D6EC`), 𝜦 (`U+1D726`), 𝝠 (`U+1D760`), 𝞚 (`U+1D79A`) + Λ (`U+039B`), Ѧ (`U+0466`), ѧ (`U+0467`), Ѩ (`U+0468`), ѩ (`U+0469`), ᴧ (`U+1D27`), ⷽ (`U+2DFD`), Ꙟ (`U+A65E`), ꙟ (`U+A65F`), Ꟛ (`U+A7DA`), Ƛ (`U+A7DC`), 𝚲 (`U+1D6B2`), 𝛬 (`U+1D6EC`), 𝜦 (`U+1D726`), 𝝠 (`U+1D760`), 𝞚 (`U+1D79A`) - `cv73`: @@ -409,11 +409,11 @@ - `VDAB`: - ¨ (`U+00A8`), Ä (`U+00C4`), Ë (`U+00CB`), Ï (`U+00CF`), Ö (`U+00D6`), Ü (`U+00DC`), ä (`U+00E4`), ë (`U+00EB`), ï (`U+00EF`), ö (`U+00F6`), ü (`U+00FC`), ÿ (`U+00FF`), Ċ (`U+010A`), ċ (`U+010B`), ď (`U+010F`), Ė (`U+0116`), ė (`U+0117`), Ġ (`U+0120`), ġ (`U+0121`), Ģ (`U+0122`), ģ (`U+0123`), İ (`U+0130`), Ķ (`U+0136`), ķ (`U+0137`), Ļ (`U+013B`), ļ (`U+013C`), Ľ (`U+013D`), ľ (`U+013E`), Ņ (`U+0145`), ņ (`U+0146`), Ŗ (`U+0156`), ŗ (`U+0157`), ť (`U+0165`), Ÿ (`U+0178`), Ż (`U+017B`), ż (`U+017C`), Ơ (`U+01A0`), ơ (`U+01A1`), Ư (`U+01AF`), ư (`U+01B0`), Ǖ (`U+01D5`), ǖ (`U+01D6`), Ǘ (`U+01D7`), ǘ (`U+01D8`), Ǚ (`U+01D9`), ǚ (`U+01DA`), Ǜ (`U+01DB`), ǜ (`U+01DC`), Ǟ (`U+01DE`), ǟ (`U+01DF`), Ǡ (`U+01E0`), ǡ (`U+01E1`), Ș (`U+0218`), ș (`U+0219`), Ț (`U+021A`), ț (`U+021B`), Ȧ (`U+0226`), ȧ (`U+0227`), Ȫ (`U+022A`), ȫ (`U+022B`), Ȯ (`U+022E`), ȯ (`U+022F`), Ȱ (`U+0230`), ȱ (`U+0231`), ʘ (`U+0298`), ˙ (`U+02D9`), ̇ (`U+0307`), ̈ (`U+0308`), ̐ (`U+0310`), ̒ (`U+0312`), ̓ (`U+0313`), ̔ (`U+0314`), ̕ (`U+0315`), ̛ (`U+031B`), ̣ (`U+0323`), ̤ (`U+0324`), ̦ (`U+0326`), ̓ (`U+0343`), ̈́ (`U+0344`), ͋ (`U+034B`), ͒ (`U+0352`), ͘ (`U+0358`), ͼ (`U+037C`), ͽ (`U+037D`), ΅ (`U+0385`), ΐ (`U+0390`), Ϊ (`U+03AA`), Ϋ (`U+03AB`), ΰ (`U+03B0`), ϊ (`U+03CA`), ϋ (`U+03CB`), ϔ (`U+03D4`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Ё (`U+0401`), Ї (`U+0407`), ё (`U+0451`), ї (`U+0457`), Ѽ (`U+047C`), ѽ (`U+047D`), ҅ (`U+0485`), ҆ (`U+0486`), Ӓ (`U+04D2`), ӓ (`U+04D3`), Ӛ (`U+04DA`), ӛ (`U+04DB`), Ӝ (`U+04DC`), ӝ (`U+04DD`), Ӟ (`U+04DE`), ӟ (`U+04DF`), Ӥ (`U+04E4`), ӥ (`U+04E5`), Ӧ (`U+04E6`), ӧ (`U+04E7`), Ӫ (`U+04EA`), ӫ (`U+04EB`), Ӭ (`U+04EC`), ӭ (`U+04ED`), Ӱ (`U+04F0`), ӱ (`U+04F1`), Ӵ (`U+04F4`), ӵ (`U+04F5`), Ӹ (`U+04F8`), ӹ (`U+04F9`), ᪱ (`U+1AB1`), ᪴ (`U+1AB4`), ᴞ (`U+1D1E`), ᷲ (`U+1DF2`), ᷳ (`U+1DF3`), ᷴ (`U+1DF4`), ᷸ (`U+1DF8`), ᷺ (`U+1DFA`), Ḃ (`U+1E02`), ḃ (`U+1E03`), Ḅ (`U+1E04`), ḅ (`U+1E05`), Ḋ (`U+1E0A`), ḋ (`U+1E0B`), Ḍ (`U+1E0C`), ḍ (`U+1E0D`), Ḑ (`U+1E10`), ḑ (`U+1E11`), Ḟ (`U+1E1E`), ḟ (`U+1E1F`), Ḣ (`U+1E22`), ḣ (`U+1E23`), Ḥ (`U+1E24`), ḥ (`U+1E25`), Ḧ (`U+1E26`), ḧ (`U+1E27`), Ḯ (`U+1E2E`), ḯ (`U+1E2F`), Ḳ (`U+1E32`), ḳ (`U+1E33`), Ḷ (`U+1E36`), ḷ (`U+1E37`), Ḹ (`U+1E38`), ḹ (`U+1E39`), Ṁ (`U+1E40`), ṁ (`U+1E41`), Ṃ (`U+1E42`), ṃ (`U+1E43`), Ṅ (`U+1E44`), ṅ (`U+1E45`), Ṇ (`U+1E46`), ṇ (`U+1E47`), Ṏ (`U+1E4E`), ṏ (`U+1E4F`), Ṗ (`U+1E56`), ṗ (`U+1E57`), Ṙ (`U+1E58`), ṙ (`U+1E59`), Ṛ (`U+1E5A`), ṛ (`U+1E5B`), Ṝ (`U+1E5C`), ṝ (`U+1E5D`), Ṡ (`U+1E60`), ṡ (`U+1E61`), Ṣ (`U+1E62`), ṣ (`U+1E63`), Ṥ (`U+1E64`), ṥ (`U+1E65`), Ṧ (`U+1E66`), ṧ (`U+1E67`), Ṩ (`U+1E68`), ṩ (`U+1E69`), Ṫ (`U+1E6A`), ṫ (`U+1E6B`), Ṭ (`U+1E6C`), ṭ (`U+1E6D`), Ṳ (`U+1E72`), ṳ (`U+1E73`), Ṻ (`U+1E7A`), ṻ (`U+1E7B`), Ṿ (`U+1E7E`), ṿ (`U+1E7F`), Ẅ (`U+1E84`), ẅ (`U+1E85`), Ẇ (`U+1E86`), ẇ (`U+1E87`), Ẉ (`U+1E88`), ẉ (`U+1E89`), Ẋ (`U+1E8A`), ẋ (`U+1E8B`), Ẍ (`U+1E8C`), ẍ (`U+1E8D`), Ẏ (`U+1E8E`), ẏ (`U+1E8F`), Ẓ (`U+1E92`), ẓ (`U+1E93`), ẗ (`U+1E97`), ẛ (`U+1E9B`), Ạ (`U+1EA0`), ạ (`U+1EA1`), Ậ (`U+1EAC`), ậ (`U+1EAD`), Ặ (`U+1EB6`), ặ (`U+1EB7`), Ẹ (`U+1EB8`), ẹ (`U+1EB9`), Ệ (`U+1EC6`), ệ (`U+1EC7`), Ị (`U+1ECA`), ị (`U+1ECB`), Ọ (`U+1ECC`), ọ (`U+1ECD`), Ộ (`U+1ED8`), ộ (`U+1ED9`), Ớ (`U+1EDA`), ớ (`U+1EDB`), Ờ (`U+1EDC`), ờ (`U+1EDD`), Ở (`U+1EDE`), ở (`U+1EDF`), Ỡ (`U+1EE0`), ỡ (`U+1EE1`), Ợ (`U+1EE2`), ợ (`U+1EE3`), Ụ (`U+1EE4`), ụ (`U+1EE5`), Ứ (`U+1EE8`), ứ (`U+1EE9`), Ừ (`U+1EEA`), ừ (`U+1EEB`), Ử (`U+1EEC`), ử (`U+1EED`), Ữ (`U+1EEE`), ữ (`U+1EEF`), Ự (`U+1EF0`), ự (`U+1EF1`), Ỵ (`U+1EF4`), ỵ (`U+1EF5`), ἀ (`U+1F00`), ἁ (`U+1F01`), ἂ (`U+1F02`), ἃ (`U+1F03`), ἄ (`U+1F04`), ἅ (`U+1F05`), ἆ (`U+1F06`), ἇ (`U+1F07`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ἐ (`U+1F10`), ἑ (`U+1F11`), ἒ (`U+1F12`), ἓ (`U+1F13`), ἔ (`U+1F14`), ἕ (`U+1F15`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), ἠ (`U+1F20`), ἡ (`U+1F21`), ἢ (`U+1F22`), ἣ (`U+1F23`), ἤ (`U+1F24`), ἥ (`U+1F25`), ἦ (`U+1F26`), ἧ (`U+1F27`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), ὀ (`U+1F40`), ὁ (`U+1F41`), ὂ (`U+1F42`), ὃ (`U+1F43`), ὄ (`U+1F44`), ὅ (`U+1F45`), Ὀ (`U+1F48`), Ὁ (`U+1F49`), Ὂ (`U+1F4A`), Ὃ (`U+1F4B`), Ὄ (`U+1F4C`), Ὅ (`U+1F4D`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), ὠ (`U+1F60`), ὡ (`U+1F61`), ὢ (`U+1F62`), ὣ (`U+1F63`), ὤ (`U+1F64`), ὥ (`U+1F65`), ὦ (`U+1F66`), ὧ (`U+1F67`), Ὠ (`U+1F68`), Ὡ (`U+1F69`), Ὢ (`U+1F6A`), Ὣ (`U+1F6B`), Ὤ (`U+1F6C`), Ὥ (`U+1F6D`), Ὦ (`U+1F6E`), Ὧ (`U+1F6F`), ᾀ (`U+1F80`), ᾁ (`U+1F81`), ᾂ (`U+1F82`), ᾃ (`U+1F83`), ᾄ (`U+1F84`), ᾅ (`U+1F85`), ᾆ (`U+1F86`), ᾇ (`U+1F87`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), ᾐ (`U+1F90`), ᾑ (`U+1F91`), ᾒ (`U+1F92`), ᾓ (`U+1F93`), ᾔ (`U+1F94`), ᾕ (`U+1F95`), ᾖ (`U+1F96`), ᾗ (`U+1F97`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), ᾠ (`U+1FA0`), ᾡ (`U+1FA1`), ᾢ (`U+1FA2`), ᾣ (`U+1FA3`), ᾤ (`U+1FA4`), ᾥ (`U+1FA5`), ᾦ (`U+1FA6`), ᾧ (`U+1FA7`), ᾨ (`U+1FA8`), ᾩ (`U+1FA9`), ᾪ (`U+1FAA`), ᾫ (`U+1FAB`), ᾬ (`U+1FAC`), ᾭ (`U+1FAD`), ᾮ (`U+1FAE`), ᾯ (`U+1FAF`), ᾽ (`U+1FBD`), ᾿ (`U+1FBF`), ῁ (`U+1FC1`), ῍ (`U+1FCD`), ῎ (`U+1FCE`), ῏ (`U+1FCF`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῗ (`U+1FD7`), ῝ (`U+1FDD`), ῞ (`U+1FDE`), ῟ (`U+1FDF`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῤ (`U+1FE4`), ῥ (`U+1FE5`), ῧ (`U+1FE7`), Ῥ (`U+1FEC`), ῭ (`U+1FED`), ΅ (`U+1FEE`), ῾ (`U+1FFE`), ⃛ (`U+20DB`), ⃜ (`U+20DC`), ⃨ (`U+20E8`), ⍡ (`U+2361`), ⍢ (`U+2362`), ⍣ (`U+2363`), ⍤ (`U+2364`), ⍥ (`U+2365`), ⍨ (`U+2368`), ⍩ (`U+2369`), ⸚ (`U+2E1A`), ⹈ (`U+2E48`), Ꙩ (`U+A668`), ꙩ (`U+A669`), Ꙫ (`U+A66A`), ꙫ (`U+A66B`), Ꙭ (`U+A66C`), ꙭ (`U+A66D`), ꙮ (`U+A66E`), ꙶ (`U+A676`), ꜗ (`U+A717`), ꜘ (`U+A718`), ꜙ (`U+A719`), Ꜿ (`U+A73E`), ꜿ (`U+A73F`), 𐞵 (`U+107B5`) + ¨ (`U+00A8`), Ä (`U+00C4`), Ë (`U+00CB`), Ï (`U+00CF`), Ö (`U+00D6`), Ü (`U+00DC`), ä (`U+00E4`), ë (`U+00EB`), ï (`U+00EF`), ö (`U+00F6`), ü (`U+00FC`), ÿ (`U+00FF`), Ċ (`U+010A`), ċ (`U+010B`), ď (`U+010F`), Ė (`U+0116`), ė (`U+0117`), Ġ (`U+0120`), ġ (`U+0121`), Ģ (`U+0122`), ģ (`U+0123`), İ (`U+0130`), Ķ (`U+0136`), ķ (`U+0137`), Ļ (`U+013B`), ļ (`U+013C`), Ľ (`U+013D`), ľ (`U+013E`), Ņ (`U+0145`), ņ (`U+0146`), Ŗ (`U+0156`), ŗ (`U+0157`), ť (`U+0165`), Ÿ (`U+0178`), Ż (`U+017B`), ż (`U+017C`), Ơ (`U+01A0`), ơ (`U+01A1`), Ư (`U+01AF`), ư (`U+01B0`), Ǖ (`U+01D5`), ǖ (`U+01D6`), Ǘ (`U+01D7`), ǘ (`U+01D8`), Ǚ (`U+01D9`), ǚ (`U+01DA`), Ǜ (`U+01DB`), ǜ (`U+01DC`), Ǟ (`U+01DE`), ǟ (`U+01DF`), Ǡ (`U+01E0`), ǡ (`U+01E1`), Ș (`U+0218`), ș (`U+0219`), Ț (`U+021A`), ț (`U+021B`), Ȧ (`U+0226`), ȧ (`U+0227`), Ȫ (`U+022A`), ȫ (`U+022B`), Ȯ (`U+022E`), ȯ (`U+022F`), Ȱ (`U+0230`), ȱ (`U+0231`), ʘ (`U+0298`), ˙ (`U+02D9`), ̇ (`U+0307`), ̈ (`U+0308`), ̐ (`U+0310`), ̒ (`U+0312`), ̓ (`U+0313`), ̔ (`U+0314`), ̕ (`U+0315`), ̛ (`U+031B`), ̣ (`U+0323`), ̤ (`U+0324`), ̦ (`U+0326`), ̓ (`U+0343`), ̈́ (`U+0344`), ͋ (`U+034B`), ͒ (`U+0352`), ͘ (`U+0358`), ͼ (`U+037C`), ͽ (`U+037D`), ΅ (`U+0385`), ΐ (`U+0390`), Ϊ (`U+03AA`), Ϋ (`U+03AB`), ΰ (`U+03B0`), ϊ (`U+03CA`), ϋ (`U+03CB`), ϔ (`U+03D4`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Ё (`U+0401`), Ї (`U+0407`), ё (`U+0451`), ї (`U+0457`), Ѽ (`U+047C`), ѽ (`U+047D`), ҅ (`U+0485`), ҆ (`U+0486`), Ӓ (`U+04D2`), ӓ (`U+04D3`), Ӛ (`U+04DA`), ӛ (`U+04DB`), Ӝ (`U+04DC`), ӝ (`U+04DD`), Ӟ (`U+04DE`), ӟ (`U+04DF`), Ӥ (`U+04E4`), ӥ (`U+04E5`), Ӧ (`U+04E6`), ӧ (`U+04E7`), Ӫ (`U+04EA`), ӫ (`U+04EB`), Ӭ (`U+04EC`), ӭ (`U+04ED`), Ӱ (`U+04F0`), ӱ (`U+04F1`), Ӵ (`U+04F4`), ӵ (`U+04F5`), Ӹ (`U+04F8`), ӹ (`U+04F9`), ᪱ (`U+1AB1`), ᪴ (`U+1AB4`), ᴞ (`U+1D1E`), ᷲ (`U+1DF2`), ᷳ (`U+1DF3`), ᷴ (`U+1DF4`), ᷸ (`U+1DF8`), ᷺ (`U+1DFA`), Ḃ (`U+1E02`), ḃ (`U+1E03`), Ḅ (`U+1E04`), ḅ (`U+1E05`), Ḋ (`U+1E0A`), ḋ (`U+1E0B`), Ḍ (`U+1E0C`), ḍ (`U+1E0D`), Ḑ (`U+1E10`), ḑ (`U+1E11`), Ḟ (`U+1E1E`), ḟ (`U+1E1F`), Ḣ (`U+1E22`), ḣ (`U+1E23`), Ḥ (`U+1E24`), ḥ (`U+1E25`), Ḧ (`U+1E26`), ḧ (`U+1E27`), Ḯ (`U+1E2E`), ḯ (`U+1E2F`), Ḳ (`U+1E32`), ḳ (`U+1E33`), Ḷ (`U+1E36`), ḷ (`U+1E37`), Ḹ (`U+1E38`), ḹ (`U+1E39`), Ṁ (`U+1E40`), ṁ (`U+1E41`), Ṃ (`U+1E42`), ṃ (`U+1E43`), Ṅ (`U+1E44`), ṅ (`U+1E45`), Ṇ (`U+1E46`), ṇ (`U+1E47`), Ṏ (`U+1E4E`), ṏ (`U+1E4F`), Ṗ (`U+1E56`), ṗ (`U+1E57`), Ṙ (`U+1E58`), ṙ (`U+1E59`), Ṛ (`U+1E5A`), ṛ (`U+1E5B`), Ṝ (`U+1E5C`), ṝ (`U+1E5D`), Ṡ (`U+1E60`), ṡ (`U+1E61`), Ṣ (`U+1E62`), ṣ (`U+1E63`), Ṥ (`U+1E64`), ṥ (`U+1E65`), Ṧ (`U+1E66`), ṧ (`U+1E67`), Ṩ (`U+1E68`), ṩ (`U+1E69`), Ṫ (`U+1E6A`), ṫ (`U+1E6B`), Ṭ (`U+1E6C`), ṭ (`U+1E6D`), Ṳ (`U+1E72`), ṳ (`U+1E73`), Ṻ (`U+1E7A`), ṻ (`U+1E7B`), Ṿ (`U+1E7E`), ṿ (`U+1E7F`), Ẅ (`U+1E84`), ẅ (`U+1E85`), Ẇ (`U+1E86`), ẇ (`U+1E87`), Ẉ (`U+1E88`), ẉ (`U+1E89`), Ẋ (`U+1E8A`), ẋ (`U+1E8B`), Ẍ (`U+1E8C`), ẍ (`U+1E8D`), Ẏ (`U+1E8E`), ẏ (`U+1E8F`), Ẓ (`U+1E92`), ẓ (`U+1E93`), ẗ (`U+1E97`), ẛ (`U+1E9B`), Ạ (`U+1EA0`), ạ (`U+1EA1`), Ậ (`U+1EAC`), ậ (`U+1EAD`), Ặ (`U+1EB6`), ặ (`U+1EB7`), Ẹ (`U+1EB8`), ẹ (`U+1EB9`), Ệ (`U+1EC6`), ệ (`U+1EC7`), Ị (`U+1ECA`), ị (`U+1ECB`), Ọ (`U+1ECC`), ọ (`U+1ECD`), Ộ (`U+1ED8`), ộ (`U+1ED9`), Ớ (`U+1EDA`), ớ (`U+1EDB`), Ờ (`U+1EDC`), ờ (`U+1EDD`), Ở (`U+1EDE`), ở (`U+1EDF`), Ỡ (`U+1EE0`), ỡ (`U+1EE1`), Ợ (`U+1EE2`), ợ (`U+1EE3`), Ụ (`U+1EE4`), ụ (`U+1EE5`), Ứ (`U+1EE8`), ứ (`U+1EE9`), Ừ (`U+1EEA`), ừ (`U+1EEB`), Ử (`U+1EEC`), ử (`U+1EED`), Ữ (`U+1EEE`), ữ (`U+1EEF`), Ự (`U+1EF0`), ự (`U+1EF1`), Ỵ (`U+1EF4`), ỵ (`U+1EF5`), ἀ (`U+1F00`), ἁ (`U+1F01`), ἂ (`U+1F02`), ἃ (`U+1F03`), ἄ (`U+1F04`), ἅ (`U+1F05`), ἆ (`U+1F06`), ἇ (`U+1F07`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ἐ (`U+1F10`), ἑ (`U+1F11`), ἒ (`U+1F12`), ἓ (`U+1F13`), ἔ (`U+1F14`), ἕ (`U+1F15`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), ἠ (`U+1F20`), ἡ (`U+1F21`), ἢ (`U+1F22`), ἣ (`U+1F23`), ἤ (`U+1F24`), ἥ (`U+1F25`), ἦ (`U+1F26`), ἧ (`U+1F27`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), ὀ (`U+1F40`), ὁ (`U+1F41`), ὂ (`U+1F42`), ὃ (`U+1F43`), ὄ (`U+1F44`), ὅ (`U+1F45`), Ὀ (`U+1F48`), Ὁ (`U+1F49`), Ὂ (`U+1F4A`), Ὃ (`U+1F4B`), Ὄ (`U+1F4C`), Ὅ (`U+1F4D`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), ὠ (`U+1F60`), ὡ (`U+1F61`), ὢ (`U+1F62`), ὣ (`U+1F63`), ὤ (`U+1F64`), ὥ (`U+1F65`), ὦ (`U+1F66`), ὧ (`U+1F67`), Ὠ (`U+1F68`), Ὡ (`U+1F69`), Ὢ (`U+1F6A`), Ὣ (`U+1F6B`), Ὤ (`U+1F6C`), Ὥ (`U+1F6D`), Ὦ (`U+1F6E`), Ὧ (`U+1F6F`), ᾀ (`U+1F80`), ᾁ (`U+1F81`), ᾂ (`U+1F82`), ᾃ (`U+1F83`), ᾄ (`U+1F84`), ᾅ (`U+1F85`), ᾆ (`U+1F86`), ᾇ (`U+1F87`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), ᾐ (`U+1F90`), ᾑ (`U+1F91`), ᾒ (`U+1F92`), ᾓ (`U+1F93`), ᾔ (`U+1F94`), ᾕ (`U+1F95`), ᾖ (`U+1F96`), ᾗ (`U+1F97`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), ᾠ (`U+1FA0`), ᾡ (`U+1FA1`), ᾢ (`U+1FA2`), ᾣ (`U+1FA3`), ᾤ (`U+1FA4`), ᾥ (`U+1FA5`), ᾦ (`U+1FA6`), ᾧ (`U+1FA7`), ᾨ (`U+1FA8`), ᾩ (`U+1FA9`), ᾪ (`U+1FAA`), ᾫ (`U+1FAB`), ᾬ (`U+1FAC`), ᾭ (`U+1FAD`), ᾮ (`U+1FAE`), ᾯ (`U+1FAF`), ᾽ (`U+1FBD`), ᾿ (`U+1FBF`), ῁ (`U+1FC1`), ῍ (`U+1FCD`), ῎ (`U+1FCE`), ῏ (`U+1FCF`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῗ (`U+1FD7`), ῝ (`U+1FDD`), ῞ (`U+1FDE`), ῟ (`U+1FDF`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῤ (`U+1FE4`), ῥ (`U+1FE5`), ῧ (`U+1FE7`), Ῥ (`U+1FEC`), ῭ (`U+1FED`), ΅ (`U+1FEE`), ῾ (`U+1FFE`), ⃛ (`U+20DB`), ⃜ (`U+20DC`), ⃨ (`U+20E8`), ⍡ (`U+2361`), ⍢ (`U+2362`), ⍣ (`U+2363`), ⍤ (`U+2364`), ⍥ (`U+2365`), ⍨ (`U+2368`), ⍩ (`U+2369`), ⧊ (`U+29CA`), ⸚ (`U+2E1A`), ⹈ (`U+2E48`), Ꙩ (`U+A668`), ꙩ (`U+A669`), Ꙫ (`U+A66A`), ꙫ (`U+A66B`), Ꙭ (`U+A66C`), ꙭ (`U+A66D`), ꙮ (`U+A66E`), ꙶ (`U+A676`), ꜗ (`U+A717`), ꜘ (`U+A718`), ꜙ (`U+A719`), Ꜿ (`U+A73E`), ꜿ (`U+A73F`), 𐞵 (`U+107B5`) - `VDAC`: - \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ։ (`U+0589`), ჻ (`U+10FB`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ⍿ (`U+237F`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⟓ (`U+27D3`), ⟔ (`U+27D4`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⪽ (`U+2ABD`), ⪾ (`U+2ABE`), ⫶ (`U+2AF6`), ⸓ (`U+2E13`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸪ (`U+2E2A`), ⸫ (`U+2E2B`), ⸬ (`U+2E2C`), ⸭ (`U+2E2D`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⸽ (`U+2E3D`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ⹉ (`U+2E49`), ⹊ (`U+2E4A`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) + \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ։ (`U+0589`), ჻ (`U+10FB`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ⍿ (`U+237F`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⟓ (`U+27D3`), ⟔ (`U+27D4`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⪽ (`U+2ABD`), ⪾ (`U+2ABE`), ⫶ (`U+2AF6`), ⯻ (`U+2BFB`), ⸓ (`U+2E13`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸪ (`U+2E2A`), ⸫ (`U+2E2B`), ⸬ (`U+2E2C`), ⸭ (`U+2E2D`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⸽ (`U+2E3D`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ⹉ (`U+2E49`), ⹊ (`U+2E4A`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) - `VDAD`: @@ -652,7 +652,7 @@ - `cv31`: - V (`U+0056`), Ʋ (`U+01B2`), Ʌ (`U+0245`), Ѵ (`U+0474`), Ѷ (`U+0476`), ᴠ (`U+1D20`), Ṽ (`U+1E7C`), Ṿ (`U+1E7E`), Ⅳ (`U+2163`), Ⅴ (`U+2164`), Ⅵ (`U+2165`), Ⅶ (`U+2166`), Ⅷ (`U+2167`), ␋ (`U+240B`), Ⓥ (`U+24CB`), ⱽ (`U+2C7D`), Ꙋ (`U+A64A`), Ꙟ (`U+A65E`), 𜳫 (`U+1CCEB`), 𝐕 (`U+1D415`), 𝑉 (`U+1D449`), 𝑽 (`U+1D47D`), 𝖵 (`U+1D5B5`), 𝗩 (`U+1D5E9`), 𝘝 (`U+1D61D`), 𝙑 (`U+1D651`), 𝚅 (`U+1D685`), 🃤 (`U+1F0E4`), 🃥 (`U+1F0E5`), 🃦 (`U+1F0E6`), 🃧 (`U+1F0E7`), 🃨 (`U+1F0E8`), 🃮 (`U+1F0EE`), 🃯 (`U+1F0EF`), 🃰 (`U+1F0F0`), 🃱 (`U+1F0F1`), 🃲 (`U+1F0F2`), 🄥 (`U+1F125`), 🅅 (`U+1F145`), 🅊 (`U+1F14A`), 🅋 (`U+1F14B`), 🅎 (`U+1F14E`), 🅥 (`U+1F165`), 🆅 (`U+1F185`), 🆚 (`U+1F19A`), 🆪 (`U+1F1AA`), 🆬 (`U+1F1AC`), 🇻 (`U+1F1FB`) + V (`U+0056`), Ʋ (`U+01B2`), Ʌ (`U+0245`), Ѵ (`U+0474`), Ѷ (`U+0476`), ᴠ (`U+1D20`), Ṽ (`U+1E7C`), Ṿ (`U+1E7E`), Ⅳ (`U+2163`), Ⅴ (`U+2164`), Ⅵ (`U+2165`), Ⅶ (`U+2166`), Ⅷ (`U+2167`), ␋ (`U+240B`), Ⓥ (`U+24CB`), ⱽ (`U+2C7D`), Ꙋ (`U+A64A`), 𜳫 (`U+1CCEB`), 𝐕 (`U+1D415`), 𝑉 (`U+1D449`), 𝑽 (`U+1D47D`), 𝖵 (`U+1D5B5`), 𝗩 (`U+1D5E9`), 𝘝 (`U+1D61D`), 𝙑 (`U+1D651`), 𝚅 (`U+1D685`), 🃤 (`U+1F0E4`), 🃥 (`U+1F0E5`), 🃦 (`U+1F0E6`), 🃧 (`U+1F0E7`), 🃨 (`U+1F0E8`), 🃮 (`U+1F0EE`), 🃯 (`U+1F0EF`), 🃰 (`U+1F0F0`), 🃱 (`U+1F0F1`), 🃲 (`U+1F0F2`), 🄥 (`U+1F125`), 🅅 (`U+1F145`), 🅊 (`U+1F14A`), 🅋 (`U+1F14B`), 🅎 (`U+1F14E`), 🅥 (`U+1F165`), 🆅 (`U+1F185`), 🆚 (`U+1F19A`), 🆪 (`U+1F1AA`), 🆬 (`U+1F1AC`), 🇻 (`U+1F1FB`) - `cv32`: @@ -684,7 +684,7 @@ - `cv39`: - d (`U+0064`), ď (`U+010F`), đ (`U+0111`), ƌ (`U+018C`), dž (`U+01C6`), dz (`U+01F3`), ȡ (`U+0221`), ɖ (`U+0256`), ɗ (`U+0257`), ʣ (`U+02A3`), ʤ (`U+02A4`), ʥ (`U+02A5`), ͩ (`U+0369`), ԁ (`U+0501`), ԃ (`U+0503`), ᵈ (`U+1D48`), ᵭ (`U+1D6D`), ᶁ (`U+1D81`), ᶑ (`U+1D91`), ḋ (`U+1E0B`), ḍ (`U+1E0D`), ḏ (`U+1E0F`), ḑ (`U+1E11`), ḓ (`U+1E13`), ₫ (`U+20AB`), ⅾ (`U+217E`), ≝ (`U+225D`), ⒟ (`U+249F`), ⓓ (`U+24D3`), ꟈ (`U+A7C8`), ꭦ (`U+AB66`), 𐞇 (`U+10787`), 𐞈 (`U+10788`), 𐞉 (`U+10789`), 𐞊 (`U+1078A`), 𐞋 (`U+1078B`), 𐞌 (`U+1078C`), 𐞍 (`U+1078D`), 𝐝 (`U+1D41D`), 𝑑 (`U+1D451`), 𝒅 (`U+1D485`), 𝖽 (`U+1D5BD`), 𝗱 (`U+1D5F1`), 𝘥 (`U+1D625`), 𝙙 (`U+1D659`), 𝚍 (`U+1D68D`), 𝼒 (`U+1DF12`), 🆥 (`U+1F1A5`) + d (`U+0064`), ď (`U+010F`), đ (`U+0111`), ƌ (`U+018C`), dž (`U+01C6`), dz (`U+01F3`), ȡ (`U+0221`), ɖ (`U+0256`), ɗ (`U+0257`), ʣ (`U+02A3`), ʤ (`U+02A4`), ʥ (`U+02A5`), ͩ (`U+0369`), ԁ (`U+0501`), ԃ (`U+0503`), ᵈ (`U+1D48`), ᵭ (`U+1D6D`), ᶁ (`U+1D81`), ᶑ (`U+1D91`), ḋ (`U+1E0B`), ḍ (`U+1E0D`), ḏ (`U+1E0F`), ḑ (`U+1E11`), ḓ (`U+1E13`), ₫ (`U+20AB`), ⅾ (`U+217E`), ≝ (`U+225D`), ⒟ (`U+249F`), ⓓ (`U+24D3`), ꟈ (`U+A7C8`), ꭦ (`U+AB66`), 𐞇 (`U+10787`), 𐞈 (`U+10788`), 𐞉 (`U+10789`), 𐞊 (`U+1078A`), 𐞋 (`U+1078B`), 𐞌 (`U+1078C`), 𐞍 (`U+1078D`), 𝐝 (`U+1D41D`), 𝑑 (`U+1D451`), 𝒅 (`U+1D485`), 𝖽 (`U+1D5BD`), 𝗱 (`U+1D5F1`), 𝘥 (`U+1D625`), 𝙙 (`U+1D659`), 𝚍 (`U+1D68D`), 𝼒 (`U+1DF12`), 𝼙 (`U+1DF19`), 🆥 (`U+1F1A5`) - `cv40`: @@ -744,7 +744,7 @@ - `cv54`: - t (`U+0074`), ţ (`U+0163`), ť (`U+0165`), ŧ (`U+0167`), ƫ (`U+01AB`), ƭ (`U+01AD`), ƾ (`U+01BE`), ț (`U+021B`), ȶ (`U+0236`), ʇ (`U+0287`), ʈ (`U+0288`), ʦ (`U+02A6`), ʧ (`U+02A7`), ʨ (`U+02A8`), ͭ (`U+036D`), ᵗ (`U+1D57`), ᵵ (`U+1D75`), ᵺ (`U+1D7A`), ᶵ (`U+1DB5`), ṫ (`U+1E6B`), ṭ (`U+1E6D`), ṯ (`U+1E6F`), ṱ (`U+1E71`), ẗ (`U+1E97`), ₜ (`U+209C`), ₧ (`U+20A7`), ⒯ (`U+24AF`), ⓣ (`U+24E3`), ⱦ (`U+2C66`), ꭧ (`U+AB67`), ſt (`U+FB05`), st (`U+FB06`), 𐞫 (`U+107AB`), 𐞬 (`U+107AC`), 𐞭 (`U+107AD`), 𐞮 (`U+107AE`), 𐞯 (`U+107AF`), 𝐭 (`U+1D42D`), 𝑡 (`U+1D461`), 𝒕 (`U+1D495`), 𝗍 (`U+1D5CD`), 𝘁 (`U+1D601`), 𝘵 (`U+1D635`), 𝙩 (`U+1D669`), 𝚝 (`U+1D69D`), 𝼉 (`U+1DF09`), 𝼗 (`U+1DF17`) + t (`U+0074`), ţ (`U+0163`), ť (`U+0165`), ŧ (`U+0167`), ƫ (`U+01AB`), ƭ (`U+01AD`), ƾ (`U+01BE`), ț (`U+021B`), ȶ (`U+0236`), ʇ (`U+0287`), ʈ (`U+0288`), ʦ (`U+02A6`), ʧ (`U+02A7`), ʨ (`U+02A8`), ͭ (`U+036D`), ᵗ (`U+1D57`), ᵵ (`U+1D75`), ᵺ (`U+1D7A`), ᶵ (`U+1DB5`), ṫ (`U+1E6B`), ṭ (`U+1E6D`), ṯ (`U+1E6F`), ṱ (`U+1E71`), ẗ (`U+1E97`), ₜ (`U+209C`), ₧ (`U+20A7`), ⒯ (`U+24AF`), ⓣ (`U+24E3`), ⱦ (`U+2C66`), ꭧ (`U+AB67`), ſt (`U+FB05`), st (`U+FB06`), 𐞫 (`U+107AB`), 𐞬 (`U+107AC`), 𐞭 (`U+107AD`), 𐞮 (`U+107AE`), 𐞯 (`U+107AF`), 𝐭 (`U+1D42D`), 𝑡 (`U+1D461`), 𝒕 (`U+1D495`), 𝗍 (`U+1D5CD`), 𝘁 (`U+1D601`), 𝘵 (`U+1D635`), 𝙩 (`U+1D669`), 𝚝 (`U+1D69D`), 𝼉 (`U+1DF09`), 𝼗 (`U+1DF17`), 𝼜 (`U+1DF1C`) - `cv55`: @@ -752,7 +752,7 @@ - `cv56`: - v (`U+0076`), ʋ (`U+028B`), ʌ (`U+028C`), ͮ (`U+036E`), ѵ (`U+0475`), ѷ (`U+0477`), ᲈ (`U+1C88`), ᵛ (`U+1D5B`), ᵥ (`U+1D65`), ᶌ (`U+1D8C`), ᶹ (`U+1DB9`), ᶺ (`U+1DBA`), ṽ (`U+1E7D`), ṿ (`U+1E7F`), ⅳ (`U+2173`), ⅴ (`U+2174`), ⅵ (`U+2175`), ⅶ (`U+2176`), ⅷ (`U+2177`), ⒱ (`U+24B1`), ⓥ (`U+24E5`), ⱱ (`U+2C71`), ⱴ (`U+2C74`), ꙟ (`U+A65F`), 𐞰 (`U+107B0`), 𝐯 (`U+1D42F`), 𝑣 (`U+1D463`), 𝒗 (`U+1D497`), 𝗏 (`U+1D5CF`), 𝘃 (`U+1D603`), 𝘷 (`U+1D637`), 𝙫 (`U+1D66B`), 𝚟 (`U+1D69F`) + v (`U+0076`), ʋ (`U+028B`), ʌ (`U+028C`), ͮ (`U+036E`), ѵ (`U+0475`), ѷ (`U+0477`), ᲈ (`U+1C88`), ᵛ (`U+1D5B`), ᵥ (`U+1D65`), ᶌ (`U+1D8C`), ᶹ (`U+1DB9`), ᶺ (`U+1DBA`), ṽ (`U+1E7D`), ṿ (`U+1E7F`), ⅳ (`U+2173`), ⅴ (`U+2174`), ⅵ (`U+2175`), ⅶ (`U+2176`), ⅷ (`U+2177`), ⒱ (`U+24B1`), ⓥ (`U+24E5`), ⱱ (`U+2C71`), ⱴ (`U+2C74`), 𐞰 (`U+107B0`), 𝐯 (`U+1D42F`), 𝑣 (`U+1D463`), 𝒗 (`U+1D497`), 𝗏 (`U+1D5CF`), 𝘃 (`U+1D603`), 𝘷 (`U+1D637`), 𝙫 (`U+1D66B`), 𝚟 (`U+1D69F`) - `cv57`: @@ -768,7 +768,7 @@ - `cv60`: - z (`U+007A`), ź (`U+017A`), ż (`U+017C`), ž (`U+017E`), ƶ (`U+01B6`), ƹ (`U+01B9`), ƺ (`U+01BA`), Dž (`U+01C5`), dž (`U+01C6`), ǯ (`U+01EF`), Dz (`U+01F2`), dz (`U+01F3`), ȥ (`U+0225`), ɀ (`U+0240`), ʐ (`U+0290`), ʑ (`U+0291`), ʒ (`U+0292`), ʓ (`U+0293`), ʣ (`U+02A3`), ʤ (`U+02A4`), ʥ (`U+02A5`), ʫ (`U+02AB`), ӡ (`U+04E1`), ᵶ (`U+1D76`), ᶎ (`U+1D8E`), ᶚ (`U+1D9A`), ᶻ (`U+1DBB`), ᶼ (`U+1DBC`), ᶽ (`U+1DBD`), ᶾ (`U+1DBE`), ᷦ (`U+1DE6`), ẑ (`U+1E91`), ẓ (`U+1E93`), ẕ (`U+1E95`), ⒵ (`U+24B5`), ⓩ (`U+24E9`), ⱬ (`U+2C6C`), ꙁ (`U+A641`), ꙃ (`U+A643`), ꭦ (`U+AB66`), 𐞇 (`U+10787`), 𐞈 (`U+10788`), 𐞉 (`U+10789`), 𐞊 (`U+1078A`), 𐞚 (`U+1079A`), 𝆎 (`U+1D18E`), 𝐳 (`U+1D433`), 𝑧 (`U+1D467`), 𝒛 (`U+1D49B`), 𝗓 (`U+1D5D3`), 𝘇 (`U+1D607`), 𝘻 (`U+1D63B`), 𝙯 (`U+1D66F`), 𝚣 (`U+1D6A3`), 𝼒 (`U+1DF12`), 𝼘 (`U+1DF18`) + z (`U+007A`), ź (`U+017A`), ż (`U+017C`), ž (`U+017E`), ƶ (`U+01B6`), ƹ (`U+01B9`), ƺ (`U+01BA`), Dž (`U+01C5`), dž (`U+01C6`), ǯ (`U+01EF`), Dz (`U+01F2`), dz (`U+01F3`), ȥ (`U+0225`), ɀ (`U+0240`), ʐ (`U+0290`), ʑ (`U+0291`), ʒ (`U+0292`), ʓ (`U+0293`), ʣ (`U+02A3`), ʤ (`U+02A4`), ʥ (`U+02A5`), ʫ (`U+02AB`), ӡ (`U+04E1`), ᵶ (`U+1D76`), ᶎ (`U+1D8E`), ᶚ (`U+1D9A`), ᶻ (`U+1DBB`), ᶼ (`U+1DBC`), ᶽ (`U+1DBD`), ᶾ (`U+1DBE`), ᷦ (`U+1DE6`), ẑ (`U+1E91`), ẓ (`U+1E93`), ẕ (`U+1E95`), ⒵ (`U+24B5`), ⓩ (`U+24E9`), ⱬ (`U+2C6C`), ꙁ (`U+A641`), ꙃ (`U+A643`), ꭦ (`U+AB66`), 𐞇 (`U+10787`), 𐞈 (`U+10788`), 𐞉 (`U+10789`), 𐞊 (`U+1078A`), 𐞚 (`U+1079A`), 𝆎 (`U+1D18E`), 𝐳 (`U+1D433`), 𝑧 (`U+1D467`), 𝒛 (`U+1D49B`), 𝗓 (`U+1D5D3`), 𝘇 (`U+1D607`), 𝘻 (`U+1D63B`), 𝙯 (`U+1D66F`), 𝚣 (`U+1D6A3`), 𝼒 (`U+1DF12`), 𝼘 (`U+1DF18`), 𝼙 (`U+1DF19`) - `cv61`: @@ -816,7 +816,7 @@ - `cv72`: - Λ (`U+039B`), Ѧ (`U+0466`), ѧ (`U+0467`), Ѩ (`U+0468`), ѩ (`U+0469`), ᴧ (`U+1D27`), ⷽ (`U+2DFD`), Ꟛ (`U+A7DA`), Ƛ (`U+A7DC`), 𝚲 (`U+1D6B2`), 𝛬 (`U+1D6EC`), 𝜦 (`U+1D726`), 𝝠 (`U+1D760`), 𝞚 (`U+1D79A`) + Λ (`U+039B`), Ѧ (`U+0466`), ѧ (`U+0467`), Ѩ (`U+0468`), ѩ (`U+0469`), ᴧ (`U+1D27`), ⷽ (`U+2DFD`), Ꙟ (`U+A65E`), ꙟ (`U+A65F`), Ꟛ (`U+A7DA`), Ƛ (`U+A7DC`), 𝚲 (`U+1D6B2`), 𝛬 (`U+1D6EC`), 𝜦 (`U+1D726`), 𝝠 (`U+1D760`), 𝞚 (`U+1D79A`) - `cv73`: @@ -936,11 +936,11 @@ - `VDAB`: - ¨ (`U+00A8`), Ä (`U+00C4`), Ë (`U+00CB`), Ï (`U+00CF`), Ö (`U+00D6`), Ü (`U+00DC`), ä (`U+00E4`), ë (`U+00EB`), ï (`U+00EF`), ö (`U+00F6`), ü (`U+00FC`), ÿ (`U+00FF`), Ċ (`U+010A`), ċ (`U+010B`), ď (`U+010F`), Ė (`U+0116`), ė (`U+0117`), Ġ (`U+0120`), ġ (`U+0121`), Ģ (`U+0122`), ģ (`U+0123`), İ (`U+0130`), Ķ (`U+0136`), ķ (`U+0137`), Ļ (`U+013B`), ļ (`U+013C`), Ľ (`U+013D`), ľ (`U+013E`), Ņ (`U+0145`), ņ (`U+0146`), Ŗ (`U+0156`), ŗ (`U+0157`), ť (`U+0165`), Ÿ (`U+0178`), Ż (`U+017B`), ż (`U+017C`), Ơ (`U+01A0`), ơ (`U+01A1`), Ư (`U+01AF`), ư (`U+01B0`), Ǖ (`U+01D5`), ǖ (`U+01D6`), Ǘ (`U+01D7`), ǘ (`U+01D8`), Ǚ (`U+01D9`), ǚ (`U+01DA`), Ǜ (`U+01DB`), ǜ (`U+01DC`), Ǟ (`U+01DE`), ǟ (`U+01DF`), Ǡ (`U+01E0`), ǡ (`U+01E1`), Ș (`U+0218`), ș (`U+0219`), Ț (`U+021A`), ț (`U+021B`), Ȧ (`U+0226`), ȧ (`U+0227`), Ȫ (`U+022A`), ȫ (`U+022B`), Ȯ (`U+022E`), ȯ (`U+022F`), Ȱ (`U+0230`), ȱ (`U+0231`), ʘ (`U+0298`), ˙ (`U+02D9`), ̇ (`U+0307`), ̈ (`U+0308`), ̐ (`U+0310`), ̒ (`U+0312`), ̓ (`U+0313`), ̔ (`U+0314`), ̕ (`U+0315`), ̛ (`U+031B`), ̣ (`U+0323`), ̤ (`U+0324`), ̦ (`U+0326`), ̓ (`U+0343`), ̈́ (`U+0344`), ͋ (`U+034B`), ͒ (`U+0352`), ͘ (`U+0358`), ͼ (`U+037C`), ͽ (`U+037D`), ΅ (`U+0385`), ΐ (`U+0390`), Ϊ (`U+03AA`), Ϋ (`U+03AB`), ΰ (`U+03B0`), ϊ (`U+03CA`), ϋ (`U+03CB`), ϔ (`U+03D4`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Ё (`U+0401`), Ї (`U+0407`), ё (`U+0451`), ї (`U+0457`), Ѽ (`U+047C`), ѽ (`U+047D`), ҅ (`U+0485`), ҆ (`U+0486`), Ӓ (`U+04D2`), ӓ (`U+04D3`), Ӛ (`U+04DA`), ӛ (`U+04DB`), Ӝ (`U+04DC`), ӝ (`U+04DD`), Ӟ (`U+04DE`), ӟ (`U+04DF`), Ӥ (`U+04E4`), ӥ (`U+04E5`), Ӧ (`U+04E6`), ӧ (`U+04E7`), Ӫ (`U+04EA`), ӫ (`U+04EB`), Ӭ (`U+04EC`), ӭ (`U+04ED`), Ӱ (`U+04F0`), ӱ (`U+04F1`), Ӵ (`U+04F4`), ӵ (`U+04F5`), Ӹ (`U+04F8`), ӹ (`U+04F9`), ᪱ (`U+1AB1`), ᪴ (`U+1AB4`), ᴞ (`U+1D1E`), ᷲ (`U+1DF2`), ᷳ (`U+1DF3`), ᷴ (`U+1DF4`), ᷸ (`U+1DF8`), ᷺ (`U+1DFA`), Ḃ (`U+1E02`), ḃ (`U+1E03`), Ḅ (`U+1E04`), ḅ (`U+1E05`), Ḋ (`U+1E0A`), ḋ (`U+1E0B`), Ḍ (`U+1E0C`), ḍ (`U+1E0D`), Ḑ (`U+1E10`), ḑ (`U+1E11`), Ḟ (`U+1E1E`), ḟ (`U+1E1F`), Ḣ (`U+1E22`), ḣ (`U+1E23`), Ḥ (`U+1E24`), ḥ (`U+1E25`), Ḧ (`U+1E26`), ḧ (`U+1E27`), Ḯ (`U+1E2E`), ḯ (`U+1E2F`), Ḳ (`U+1E32`), ḳ (`U+1E33`), Ḷ (`U+1E36`), ḷ (`U+1E37`), Ḹ (`U+1E38`), ḹ (`U+1E39`), Ṁ (`U+1E40`), ṁ (`U+1E41`), Ṃ (`U+1E42`), ṃ (`U+1E43`), Ṅ (`U+1E44`), ṅ (`U+1E45`), Ṇ (`U+1E46`), ṇ (`U+1E47`), Ṏ (`U+1E4E`), ṏ (`U+1E4F`), Ṗ (`U+1E56`), ṗ (`U+1E57`), Ṙ (`U+1E58`), ṙ (`U+1E59`), Ṛ (`U+1E5A`), ṛ (`U+1E5B`), Ṝ (`U+1E5C`), ṝ (`U+1E5D`), Ṡ (`U+1E60`), ṡ (`U+1E61`), Ṣ (`U+1E62`), ṣ (`U+1E63`), Ṥ (`U+1E64`), ṥ (`U+1E65`), Ṧ (`U+1E66`), ṧ (`U+1E67`), Ṩ (`U+1E68`), ṩ (`U+1E69`), Ṫ (`U+1E6A`), ṫ (`U+1E6B`), Ṭ (`U+1E6C`), ṭ (`U+1E6D`), Ṳ (`U+1E72`), ṳ (`U+1E73`), Ṻ (`U+1E7A`), ṻ (`U+1E7B`), Ṿ (`U+1E7E`), ṿ (`U+1E7F`), Ẅ (`U+1E84`), ẅ (`U+1E85`), Ẇ (`U+1E86`), ẇ (`U+1E87`), Ẉ (`U+1E88`), ẉ (`U+1E89`), Ẋ (`U+1E8A`), ẋ (`U+1E8B`), Ẍ (`U+1E8C`), ẍ (`U+1E8D`), Ẏ (`U+1E8E`), ẏ (`U+1E8F`), Ẓ (`U+1E92`), ẓ (`U+1E93`), ẗ (`U+1E97`), ẛ (`U+1E9B`), Ạ (`U+1EA0`), ạ (`U+1EA1`), Ậ (`U+1EAC`), ậ (`U+1EAD`), Ặ (`U+1EB6`), ặ (`U+1EB7`), Ẹ (`U+1EB8`), ẹ (`U+1EB9`), Ệ (`U+1EC6`), ệ (`U+1EC7`), Ị (`U+1ECA`), ị (`U+1ECB`), Ọ (`U+1ECC`), ọ (`U+1ECD`), Ộ (`U+1ED8`), ộ (`U+1ED9`), Ớ (`U+1EDA`), ớ (`U+1EDB`), Ờ (`U+1EDC`), ờ (`U+1EDD`), Ở (`U+1EDE`), ở (`U+1EDF`), Ỡ (`U+1EE0`), ỡ (`U+1EE1`), Ợ (`U+1EE2`), ợ (`U+1EE3`), Ụ (`U+1EE4`), ụ (`U+1EE5`), Ứ (`U+1EE8`), ứ (`U+1EE9`), Ừ (`U+1EEA`), ừ (`U+1EEB`), Ử (`U+1EEC`), ử (`U+1EED`), Ữ (`U+1EEE`), ữ (`U+1EEF`), Ự (`U+1EF0`), ự (`U+1EF1`), Ỵ (`U+1EF4`), ỵ (`U+1EF5`), ἀ (`U+1F00`), ἁ (`U+1F01`), ἂ (`U+1F02`), ἃ (`U+1F03`), ἄ (`U+1F04`), ἅ (`U+1F05`), ἆ (`U+1F06`), ἇ (`U+1F07`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ἐ (`U+1F10`), ἑ (`U+1F11`), ἒ (`U+1F12`), ἓ (`U+1F13`), ἔ (`U+1F14`), ἕ (`U+1F15`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), ἠ (`U+1F20`), ἡ (`U+1F21`), ἢ (`U+1F22`), ἣ (`U+1F23`), ἤ (`U+1F24`), ἥ (`U+1F25`), ἦ (`U+1F26`), ἧ (`U+1F27`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), ὀ (`U+1F40`), ὁ (`U+1F41`), ὂ (`U+1F42`), ὃ (`U+1F43`), ὄ (`U+1F44`), ὅ (`U+1F45`), Ὀ (`U+1F48`), Ὁ (`U+1F49`), Ὂ (`U+1F4A`), Ὃ (`U+1F4B`), Ὄ (`U+1F4C`), Ὅ (`U+1F4D`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), ὠ (`U+1F60`), ὡ (`U+1F61`), ὢ (`U+1F62`), ὣ (`U+1F63`), ὤ (`U+1F64`), ὥ (`U+1F65`), ὦ (`U+1F66`), ὧ (`U+1F67`), Ὠ (`U+1F68`), Ὡ (`U+1F69`), Ὢ (`U+1F6A`), Ὣ (`U+1F6B`), Ὤ (`U+1F6C`), Ὥ (`U+1F6D`), Ὦ (`U+1F6E`), Ὧ (`U+1F6F`), ᾀ (`U+1F80`), ᾁ (`U+1F81`), ᾂ (`U+1F82`), ᾃ (`U+1F83`), ᾄ (`U+1F84`), ᾅ (`U+1F85`), ᾆ (`U+1F86`), ᾇ (`U+1F87`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), ᾐ (`U+1F90`), ᾑ (`U+1F91`), ᾒ (`U+1F92`), ᾓ (`U+1F93`), ᾔ (`U+1F94`), ᾕ (`U+1F95`), ᾖ (`U+1F96`), ᾗ (`U+1F97`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), ᾠ (`U+1FA0`), ᾡ (`U+1FA1`), ᾢ (`U+1FA2`), ᾣ (`U+1FA3`), ᾤ (`U+1FA4`), ᾥ (`U+1FA5`), ᾦ (`U+1FA6`), ᾧ (`U+1FA7`), ᾨ (`U+1FA8`), ᾩ (`U+1FA9`), ᾪ (`U+1FAA`), ᾫ (`U+1FAB`), ᾬ (`U+1FAC`), ᾭ (`U+1FAD`), ᾮ (`U+1FAE`), ᾯ (`U+1FAF`), ᾽ (`U+1FBD`), ᾿ (`U+1FBF`), ῁ (`U+1FC1`), ῍ (`U+1FCD`), ῎ (`U+1FCE`), ῏ (`U+1FCF`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῗ (`U+1FD7`), ῝ (`U+1FDD`), ῞ (`U+1FDE`), ῟ (`U+1FDF`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῤ (`U+1FE4`), ῥ (`U+1FE5`), ῧ (`U+1FE7`), Ῥ (`U+1FEC`), ῭ (`U+1FED`), ΅ (`U+1FEE`), ῾ (`U+1FFE`), ⃛ (`U+20DB`), ⃜ (`U+20DC`), ⃨ (`U+20E8`), ⍡ (`U+2361`), ⍢ (`U+2362`), ⍣ (`U+2363`), ⍤ (`U+2364`), ⍥ (`U+2365`), ⍨ (`U+2368`), ⍩ (`U+2369`), ⸚ (`U+2E1A`), ⹈ (`U+2E48`), Ꙩ (`U+A668`), ꙩ (`U+A669`), Ꙫ (`U+A66A`), ꙫ (`U+A66B`), Ꙭ (`U+A66C`), ꙭ (`U+A66D`), ꙮ (`U+A66E`), ꙶ (`U+A676`), ꜗ (`U+A717`), ꜘ (`U+A718`), ꜙ (`U+A719`), Ꜿ (`U+A73E`), ꜿ (`U+A73F`), 𐞵 (`U+107B5`) + ¨ (`U+00A8`), Ä (`U+00C4`), Ë (`U+00CB`), Ï (`U+00CF`), Ö (`U+00D6`), Ü (`U+00DC`), ä (`U+00E4`), ë (`U+00EB`), ï (`U+00EF`), ö (`U+00F6`), ü (`U+00FC`), ÿ (`U+00FF`), Ċ (`U+010A`), ċ (`U+010B`), ď (`U+010F`), Ė (`U+0116`), ė (`U+0117`), Ġ (`U+0120`), ġ (`U+0121`), Ģ (`U+0122`), ģ (`U+0123`), İ (`U+0130`), Ķ (`U+0136`), ķ (`U+0137`), Ļ (`U+013B`), ļ (`U+013C`), Ľ (`U+013D`), ľ (`U+013E`), Ņ (`U+0145`), ņ (`U+0146`), Ŗ (`U+0156`), ŗ (`U+0157`), ť (`U+0165`), Ÿ (`U+0178`), Ż (`U+017B`), ż (`U+017C`), Ơ (`U+01A0`), ơ (`U+01A1`), Ư (`U+01AF`), ư (`U+01B0`), Ǖ (`U+01D5`), ǖ (`U+01D6`), Ǘ (`U+01D7`), ǘ (`U+01D8`), Ǚ (`U+01D9`), ǚ (`U+01DA`), Ǜ (`U+01DB`), ǜ (`U+01DC`), Ǟ (`U+01DE`), ǟ (`U+01DF`), Ǡ (`U+01E0`), ǡ (`U+01E1`), Ș (`U+0218`), ș (`U+0219`), Ț (`U+021A`), ț (`U+021B`), Ȧ (`U+0226`), ȧ (`U+0227`), Ȫ (`U+022A`), ȫ (`U+022B`), Ȯ (`U+022E`), ȯ (`U+022F`), Ȱ (`U+0230`), ȱ (`U+0231`), ʘ (`U+0298`), ˙ (`U+02D9`), ̇ (`U+0307`), ̈ (`U+0308`), ̐ (`U+0310`), ̒ (`U+0312`), ̓ (`U+0313`), ̔ (`U+0314`), ̕ (`U+0315`), ̛ (`U+031B`), ̣ (`U+0323`), ̤ (`U+0324`), ̦ (`U+0326`), ̓ (`U+0343`), ̈́ (`U+0344`), ͋ (`U+034B`), ͒ (`U+0352`), ͘ (`U+0358`), ͼ (`U+037C`), ͽ (`U+037D`), ΅ (`U+0385`), ΐ (`U+0390`), Ϊ (`U+03AA`), Ϋ (`U+03AB`), ΰ (`U+03B0`), ϊ (`U+03CA`), ϋ (`U+03CB`), ϔ (`U+03D4`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Ё (`U+0401`), Ї (`U+0407`), ё (`U+0451`), ї (`U+0457`), Ѽ (`U+047C`), ѽ (`U+047D`), ҅ (`U+0485`), ҆ (`U+0486`), Ӓ (`U+04D2`), ӓ (`U+04D3`), Ӛ (`U+04DA`), ӛ (`U+04DB`), Ӝ (`U+04DC`), ӝ (`U+04DD`), Ӟ (`U+04DE`), ӟ (`U+04DF`), Ӥ (`U+04E4`), ӥ (`U+04E5`), Ӧ (`U+04E6`), ӧ (`U+04E7`), Ӫ (`U+04EA`), ӫ (`U+04EB`), Ӭ (`U+04EC`), ӭ (`U+04ED`), Ӱ (`U+04F0`), ӱ (`U+04F1`), Ӵ (`U+04F4`), ӵ (`U+04F5`), Ӹ (`U+04F8`), ӹ (`U+04F9`), ᪱ (`U+1AB1`), ᪴ (`U+1AB4`), ᴞ (`U+1D1E`), ᷲ (`U+1DF2`), ᷳ (`U+1DF3`), ᷴ (`U+1DF4`), ᷸ (`U+1DF8`), ᷺ (`U+1DFA`), Ḃ (`U+1E02`), ḃ (`U+1E03`), Ḅ (`U+1E04`), ḅ (`U+1E05`), Ḋ (`U+1E0A`), ḋ (`U+1E0B`), Ḍ (`U+1E0C`), ḍ (`U+1E0D`), Ḑ (`U+1E10`), ḑ (`U+1E11`), Ḟ (`U+1E1E`), ḟ (`U+1E1F`), Ḣ (`U+1E22`), ḣ (`U+1E23`), Ḥ (`U+1E24`), ḥ (`U+1E25`), Ḧ (`U+1E26`), ḧ (`U+1E27`), Ḯ (`U+1E2E`), ḯ (`U+1E2F`), Ḳ (`U+1E32`), ḳ (`U+1E33`), Ḷ (`U+1E36`), ḷ (`U+1E37`), Ḹ (`U+1E38`), ḹ (`U+1E39`), Ṁ (`U+1E40`), ṁ (`U+1E41`), Ṃ (`U+1E42`), ṃ (`U+1E43`), Ṅ (`U+1E44`), ṅ (`U+1E45`), Ṇ (`U+1E46`), ṇ (`U+1E47`), Ṏ (`U+1E4E`), ṏ (`U+1E4F`), Ṗ (`U+1E56`), ṗ (`U+1E57`), Ṙ (`U+1E58`), ṙ (`U+1E59`), Ṛ (`U+1E5A`), ṛ (`U+1E5B`), Ṝ (`U+1E5C`), ṝ (`U+1E5D`), Ṡ (`U+1E60`), ṡ (`U+1E61`), Ṣ (`U+1E62`), ṣ (`U+1E63`), Ṥ (`U+1E64`), ṥ (`U+1E65`), Ṧ (`U+1E66`), ṧ (`U+1E67`), Ṩ (`U+1E68`), ṩ (`U+1E69`), Ṫ (`U+1E6A`), ṫ (`U+1E6B`), Ṭ (`U+1E6C`), ṭ (`U+1E6D`), Ṳ (`U+1E72`), ṳ (`U+1E73`), Ṻ (`U+1E7A`), ṻ (`U+1E7B`), Ṿ (`U+1E7E`), ṿ (`U+1E7F`), Ẅ (`U+1E84`), ẅ (`U+1E85`), Ẇ (`U+1E86`), ẇ (`U+1E87`), Ẉ (`U+1E88`), ẉ (`U+1E89`), Ẋ (`U+1E8A`), ẋ (`U+1E8B`), Ẍ (`U+1E8C`), ẍ (`U+1E8D`), Ẏ (`U+1E8E`), ẏ (`U+1E8F`), Ẓ (`U+1E92`), ẓ (`U+1E93`), ẗ (`U+1E97`), ẛ (`U+1E9B`), Ạ (`U+1EA0`), ạ (`U+1EA1`), Ậ (`U+1EAC`), ậ (`U+1EAD`), Ặ (`U+1EB6`), ặ (`U+1EB7`), Ẹ (`U+1EB8`), ẹ (`U+1EB9`), Ệ (`U+1EC6`), ệ (`U+1EC7`), Ị (`U+1ECA`), ị (`U+1ECB`), Ọ (`U+1ECC`), ọ (`U+1ECD`), Ộ (`U+1ED8`), ộ (`U+1ED9`), Ớ (`U+1EDA`), ớ (`U+1EDB`), Ờ (`U+1EDC`), ờ (`U+1EDD`), Ở (`U+1EDE`), ở (`U+1EDF`), Ỡ (`U+1EE0`), ỡ (`U+1EE1`), Ợ (`U+1EE2`), ợ (`U+1EE3`), Ụ (`U+1EE4`), ụ (`U+1EE5`), Ứ (`U+1EE8`), ứ (`U+1EE9`), Ừ (`U+1EEA`), ừ (`U+1EEB`), Ử (`U+1EEC`), ử (`U+1EED`), Ữ (`U+1EEE`), ữ (`U+1EEF`), Ự (`U+1EF0`), ự (`U+1EF1`), Ỵ (`U+1EF4`), ỵ (`U+1EF5`), ἀ (`U+1F00`), ἁ (`U+1F01`), ἂ (`U+1F02`), ἃ (`U+1F03`), ἄ (`U+1F04`), ἅ (`U+1F05`), ἆ (`U+1F06`), ἇ (`U+1F07`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ἐ (`U+1F10`), ἑ (`U+1F11`), ἒ (`U+1F12`), ἓ (`U+1F13`), ἔ (`U+1F14`), ἕ (`U+1F15`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), ἠ (`U+1F20`), ἡ (`U+1F21`), ἢ (`U+1F22`), ἣ (`U+1F23`), ἤ (`U+1F24`), ἥ (`U+1F25`), ἦ (`U+1F26`), ἧ (`U+1F27`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), ὀ (`U+1F40`), ὁ (`U+1F41`), ὂ (`U+1F42`), ὃ (`U+1F43`), ὄ (`U+1F44`), ὅ (`U+1F45`), Ὀ (`U+1F48`), Ὁ (`U+1F49`), Ὂ (`U+1F4A`), Ὃ (`U+1F4B`), Ὄ (`U+1F4C`), Ὅ (`U+1F4D`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), ὠ (`U+1F60`), ὡ (`U+1F61`), ὢ (`U+1F62`), ὣ (`U+1F63`), ὤ (`U+1F64`), ὥ (`U+1F65`), ὦ (`U+1F66`), ὧ (`U+1F67`), Ὠ (`U+1F68`), Ὡ (`U+1F69`), Ὢ (`U+1F6A`), Ὣ (`U+1F6B`), Ὤ (`U+1F6C`), Ὥ (`U+1F6D`), Ὦ (`U+1F6E`), Ὧ (`U+1F6F`), ᾀ (`U+1F80`), ᾁ (`U+1F81`), ᾂ (`U+1F82`), ᾃ (`U+1F83`), ᾄ (`U+1F84`), ᾅ (`U+1F85`), ᾆ (`U+1F86`), ᾇ (`U+1F87`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), ᾐ (`U+1F90`), ᾑ (`U+1F91`), ᾒ (`U+1F92`), ᾓ (`U+1F93`), ᾔ (`U+1F94`), ᾕ (`U+1F95`), ᾖ (`U+1F96`), ᾗ (`U+1F97`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), ᾠ (`U+1FA0`), ᾡ (`U+1FA1`), ᾢ (`U+1FA2`), ᾣ (`U+1FA3`), ᾤ (`U+1FA4`), ᾥ (`U+1FA5`), ᾦ (`U+1FA6`), ᾧ (`U+1FA7`), ᾨ (`U+1FA8`), ᾩ (`U+1FA9`), ᾪ (`U+1FAA`), ᾫ (`U+1FAB`), ᾬ (`U+1FAC`), ᾭ (`U+1FAD`), ᾮ (`U+1FAE`), ᾯ (`U+1FAF`), ᾽ (`U+1FBD`), ᾿ (`U+1FBF`), ῁ (`U+1FC1`), ῍ (`U+1FCD`), ῎ (`U+1FCE`), ῏ (`U+1FCF`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῗ (`U+1FD7`), ῝ (`U+1FDD`), ῞ (`U+1FDE`), ῟ (`U+1FDF`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῤ (`U+1FE4`), ῥ (`U+1FE5`), ῧ (`U+1FE7`), Ῥ (`U+1FEC`), ῭ (`U+1FED`), ΅ (`U+1FEE`), ῾ (`U+1FFE`), ⃛ (`U+20DB`), ⃜ (`U+20DC`), ⃨ (`U+20E8`), ⍡ (`U+2361`), ⍢ (`U+2362`), ⍣ (`U+2363`), ⍤ (`U+2364`), ⍥ (`U+2365`), ⍨ (`U+2368`), ⍩ (`U+2369`), ⧊ (`U+29CA`), ⸚ (`U+2E1A`), ⹈ (`U+2E48`), Ꙩ (`U+A668`), ꙩ (`U+A669`), Ꙫ (`U+A66A`), ꙫ (`U+A66B`), Ꙭ (`U+A66C`), ꙭ (`U+A66D`), ꙮ (`U+A66E`), ꙶ (`U+A676`), ꜗ (`U+A717`), ꜘ (`U+A718`), ꜙ (`U+A719`), Ꜿ (`U+A73E`), ꜿ (`U+A73F`), 𐞵 (`U+107B5`) - `VDAC`: - \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ։ (`U+0589`), ჻ (`U+10FB`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ⍿ (`U+237F`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⟓ (`U+27D3`), ⟔ (`U+27D4`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⪽ (`U+2ABD`), ⪾ (`U+2ABE`), ⫶ (`U+2AF6`), ⸓ (`U+2E13`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸪ (`U+2E2A`), ⸫ (`U+2E2B`), ⸬ (`U+2E2C`), ⸭ (`U+2E2D`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⸽ (`U+2E3D`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ⹉ (`U+2E49`), ⹊ (`U+2E4A`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) + \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ։ (`U+0589`), ჻ (`U+10FB`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ⍿ (`U+237F`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⟓ (`U+27D3`), ⟔ (`U+27D4`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⪽ (`U+2ABD`), ⪾ (`U+2ABE`), ⫶ (`U+2AF6`), ⯻ (`U+2BFB`), ⸓ (`U+2E13`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸪ (`U+2E2A`), ⸫ (`U+2E2B`), ⸬ (`U+2E2C`), ⸭ (`U+2E2D`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⸽ (`U+2E3D`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ⹉ (`U+2E49`), ⹊ (`U+2E4A`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) - `VDAD`: diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index a4f1d78585..6f49fdad96 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -9,7 +9,7 @@ - + @@ -21,11 +21,11 @@ - + - + diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 6f9e93b31f..cc6fe4b8d8 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -9,7 +9,7 @@ - + @@ -21,11 +21,11 @@ - + - + diff --git a/images/cs-block-arrows.dark.svg b/images/cs-block-arrows.dark.svg index cd5d78902e..3cf08f1746 100644 --- a/images/cs-block-arrows.dark.svg +++ b/images/cs-block-arrows.dark.svg @@ -51,12 +51,12 @@ - - - - + + + + - + diff --git a/images/cs-block-arrows.light.svg b/images/cs-block-arrows.light.svg index c3be0d41b1..8d51892d1d 100644 --- a/images/cs-block-arrows.light.svg +++ b/images/cs-block-arrows.light.svg @@ -51,12 +51,12 @@ - - - - + + + + - + diff --git a/images/cs-block-combining-diacritical-marks-supplement.dark.svg b/images/cs-block-combining-diacritical-marks-supplement.dark.svg index 6e5519bb58..8c3a6cab9f 100644 --- a/images/cs-block-combining-diacritical-marks-supplement.dark.svg +++ b/images/cs-block-combining-diacritical-marks-supplement.dark.svg @@ -32,7 +32,7 @@ - + diff --git a/images/cs-block-combining-diacritical-marks-supplement.light.svg b/images/cs-block-combining-diacritical-marks-supplement.light.svg index 8a7383e50a..cdfc1b8183 100644 --- a/images/cs-block-combining-diacritical-marks-supplement.light.svg +++ b/images/cs-block-combining-diacritical-marks-supplement.light.svg @@ -32,7 +32,7 @@ - + diff --git a/images/cs-block-currency-symbols.dark.svg b/images/cs-block-currency-symbols.dark.svg index 71432f9dae..6f735f1be5 100644 --- a/images/cs-block-currency-symbols.dark.svg +++ b/images/cs-block-currency-symbols.dark.svg @@ -27,7 +27,7 @@ - + diff --git a/images/cs-block-currency-symbols.light.svg b/images/cs-block-currency-symbols.light.svg index 83e9639c18..c0db8de20a 100644 --- a/images/cs-block-currency-symbols.light.svg +++ b/images/cs-block-currency-symbols.light.svg @@ -27,7 +27,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-a.dark.svg b/images/cs-block-cyrillic-extended-a.dark.svg index b1c2424bb5..0ecf94ce0c 100644 --- a/images/cs-block-cyrillic-extended-a.dark.svg +++ b/images/cs-block-cyrillic-extended-a.dark.svg @@ -48,11 +48,11 @@ - - + + - + diff --git a/images/cs-block-cyrillic-extended-a.light.svg b/images/cs-block-cyrillic-extended-a.light.svg index e1437815a4..7046d6e060 100644 --- a/images/cs-block-cyrillic-extended-a.light.svg +++ b/images/cs-block-cyrillic-extended-a.light.svg @@ -48,11 +48,11 @@ - - + + - + diff --git a/images/cs-block-cyrillic-extended-b.dark.svg b/images/cs-block-cyrillic-extended-b.dark.svg index c0b59549c5..a06285dc04 100644 --- a/images/cs-block-cyrillic-extended-b.dark.svg +++ b/images/cs-block-cyrillic-extended-b.dark.svg @@ -39,18 +39,18 @@ - - + + - + - - - - + + + + @@ -93,8 +93,8 @@ - - + + @@ -104,7 +104,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-b.light.svg b/images/cs-block-cyrillic-extended-b.light.svg index bcad473c27..37205002d6 100644 --- a/images/cs-block-cyrillic-extended-b.light.svg +++ b/images/cs-block-cyrillic-extended-b.light.svg @@ -39,18 +39,18 @@ - - + + - + - - - - + + + + @@ -93,8 +93,8 @@ - - + + @@ -104,7 +104,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-d.dark.svg b/images/cs-block-cyrillic-extended-d.dark.svg index fca8095969..de9019c9c9 100644 --- a/images/cs-block-cyrillic-extended-d.dark.svg +++ b/images/cs-block-cyrillic-extended-d.dark.svg @@ -44,7 +44,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-d.light.svg b/images/cs-block-cyrillic-extended-d.light.svg index 5fc980517c..ea1c07fa75 100644 --- a/images/cs-block-cyrillic-extended-d.light.svg +++ b/images/cs-block-cyrillic-extended-d.light.svg @@ -44,7 +44,7 @@ - + diff --git a/images/cs-block-cyrillic.dark.svg b/images/cs-block-cyrillic.dark.svg index 30c6e291f1..a68e1d59e4 100644 --- a/images/cs-block-cyrillic.dark.svg +++ b/images/cs-block-cyrillic.dark.svg @@ -65,7 +65,7 @@ - + @@ -97,7 +97,7 @@ - + @@ -119,16 +119,16 @@ - - + + - - + + - - + + @@ -207,10 +207,10 @@ - - - - + + + + diff --git a/images/cs-block-cyrillic.light.svg b/images/cs-block-cyrillic.light.svg index e39cac0cc3..1738736eca 100644 --- a/images/cs-block-cyrillic.light.svg +++ b/images/cs-block-cyrillic.light.svg @@ -65,7 +65,7 @@ - + @@ -97,7 +97,7 @@ - + @@ -119,16 +119,16 @@ - - + + - - + + - - + + @@ -207,10 +207,10 @@ - - - - + + + + diff --git a/images/cs-block-latin-extended-b.dark.svg b/images/cs-block-latin-extended-b.dark.svg index 208df294e2..5f8932e36a 100644 --- a/images/cs-block-latin-extended-b.dark.svg +++ b/images/cs-block-latin-extended-b.dark.svg @@ -53,8 +53,8 @@ - - + + diff --git a/images/cs-block-latin-extended-b.light.svg b/images/cs-block-latin-extended-b.light.svg index e625e5c46d..07a7d20eb7 100644 --- a/images/cs-block-latin-extended-b.light.svg +++ b/images/cs-block-latin-extended-b.light.svg @@ -53,8 +53,8 @@ - - + + diff --git a/images/cs-block-latin-extended-e.dark.svg b/images/cs-block-latin-extended-e.dark.svg index 8a3500fb85..31819896b9 100644 --- a/images/cs-block-latin-extended-e.dark.svg +++ b/images/cs-block-latin-extended-e.dark.svg @@ -51,7 +51,7 @@ - + diff --git a/images/cs-block-latin-extended-e.light.svg b/images/cs-block-latin-extended-e.light.svg index dd2aaceab4..28fd253fc2 100644 --- a/images/cs-block-latin-extended-e.light.svg +++ b/images/cs-block-latin-extended-e.light.svg @@ -51,7 +51,7 @@ - + diff --git a/images/cs-block-latin-extended-g.dark.svg b/images/cs-block-latin-extended-g.dark.svg index f4cf8fe092..a1d3a08396 100644 --- a/images/cs-block-latin-extended-g.dark.svg +++ b/images/cs-block-latin-extended-g.dark.svg @@ -40,10 +40,12 @@ - - - - + + + + + + @@ -273,33 +275,33 @@ - - + + - + - + - - + + - + - + diff --git a/images/cs-block-latin-extended-g.light.svg b/images/cs-block-latin-extended-g.light.svg index 96d9cf1057..a656dbd09f 100644 --- a/images/cs-block-latin-extended-g.light.svg +++ b/images/cs-block-latin-extended-g.light.svg @@ -40,10 +40,12 @@ - - - - + + + + + + @@ -273,33 +275,33 @@ - - + + - + - + - - + + - + - + diff --git a/images/cs-block-mathematical-operators.dark.svg b/images/cs-block-mathematical-operators.dark.svg index 975652d22f..fe27d35520 100644 --- a/images/cs-block-mathematical-operators.dark.svg +++ b/images/cs-block-mathematical-operators.dark.svg @@ -43,7 +43,7 @@ - + @@ -201,9 +201,9 @@ - - - + + + @@ -229,8 +229,8 @@ - - + + diff --git a/images/cs-block-mathematical-operators.light.svg b/images/cs-block-mathematical-operators.light.svg index 3dcc8153b6..7714059a59 100644 --- a/images/cs-block-mathematical-operators.light.svg +++ b/images/cs-block-mathematical-operators.light.svg @@ -43,7 +43,7 @@ - + @@ -201,9 +201,9 @@ - - - + + + @@ -229,8 +229,8 @@ - - + + diff --git a/images/cs-block-miscellaneous-mathematical-symbols-a.dark.svg b/images/cs-block-miscellaneous-mathematical-symbols-a.dark.svg index 345185c7c3..12b6f17c15 100644 --- a/images/cs-block-miscellaneous-mathematical-symbols-a.dark.svg +++ b/images/cs-block-miscellaneous-mathematical-symbols-a.dark.svg @@ -27,24 +27,27 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -252,58 +255,58 @@ - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -318,12 +321,12 @@ - + - + @@ -348,32 +351,32 @@ - + - + - + - + - + - + @@ -388,12 +391,12 @@ - + - + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-mathematical-symbols-a.light.svg b/images/cs-block-miscellaneous-mathematical-symbols-a.light.svg index 47f949e087..bb708acfe4 100644 --- a/images/cs-block-miscellaneous-mathematical-symbols-a.light.svg +++ b/images/cs-block-miscellaneous-mathematical-symbols-a.light.svg @@ -27,24 +27,27 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -252,58 +255,58 @@ - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -318,12 +321,12 @@ - + - + @@ -348,32 +351,32 @@ - + - + - + - + - + - + @@ -388,12 +391,12 @@ - + - + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg b/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg index 312a4ed97d..b3ea3b8056 100644 --- a/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg +++ b/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg @@ -27,61 +27,67 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -219,13 +225,13 @@ - - + + - - + + @@ -310,12 +316,12 @@ - + - + @@ -365,12 +371,12 @@ - + - + @@ -445,82 +451,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -555,42 +561,42 @@ - + - + - + - + - + - + - - + + - - + + @@ -599,13 +605,13 @@ - - + + - - + + @@ -630,57 +636,57 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -700,7 +706,7 @@ - + @@ -725,42 +731,42 @@ - + - + - + - + - + - + - + - + @@ -770,7 +776,7 @@ - + @@ -825,42 +831,42 @@ - + - + - + - + - + - + - + - + diff --git a/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg b/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg index 8264226342..d9d6cd885c 100644 --- a/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg +++ b/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg @@ -27,61 +27,67 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -219,13 +225,13 @@ - - + + - - + + @@ -310,12 +316,12 @@ - + - + @@ -365,12 +371,12 @@ - + - + @@ -445,82 +451,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -555,42 +561,42 @@ - + - + - + - + - + - + - - + + - - + + @@ -599,13 +605,13 @@ - - + + - - + + @@ -630,57 +636,57 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -700,7 +706,7 @@ - + @@ -725,42 +731,42 @@ - + - + - + - + - + - + - + - + @@ -770,7 +776,7 @@ - + @@ -825,42 +831,42 @@ - + - + - + - + - + - + - + - + diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg index 8484760907..c1982535b5 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg @@ -34,7 +34,7 @@ - + @@ -116,41 +116,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1023,23 +1044,23 @@ - - + + - - + + - - + + - - + + @@ -1053,33 +1074,33 @@ - - + + - - + + - - + + - - + + - - + + - + @@ -1143,43 +1164,43 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -1274,42 +1295,42 @@ - + - + - + - + - + - + - + - + @@ -1324,47 +1345,47 @@ - + - + - + - + - + - + - + - + - + @@ -1374,32 +1395,32 @@ - + - + - + - + - + - + @@ -1424,7 +1445,7 @@ - + @@ -1544,42 +1565,42 @@ - + - + - + - + - + - + - + - + @@ -1643,33 +1664,33 @@ - - + + - - + + - - + + - - + + - + - + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg index cd9fc29c2b..8c2f56de91 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg @@ -34,7 +34,7 @@ - + @@ -116,41 +116,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1023,23 +1044,23 @@ - - + + - - + + - - + + - - + + @@ -1053,33 +1074,33 @@ - - + + - - + + - - + + - - + + - - + + - + @@ -1143,43 +1164,43 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -1274,42 +1295,42 @@ - + - + - + - + - + - + - + - + @@ -1324,47 +1345,47 @@ - + - + - + - + - + - + - + - + - + @@ -1374,32 +1395,32 @@ - + - + - + - + - + - + @@ -1424,7 +1445,7 @@ - + @@ -1544,42 +1565,42 @@ - + - + - + - + - + - + - + - + @@ -1643,33 +1664,33 @@ - - + + - - + + - - + + - - + + - + - + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-symbols.dark.svg b/images/cs-block-miscellaneous-symbols.dark.svg index 7c5a74630f..52e9cfc39a 100644 --- a/images/cs-block-miscellaneous-symbols.dark.svg +++ b/images/cs-block-miscellaneous-symbols.dark.svg @@ -64,7 +64,7 @@ - + @@ -87,14 +87,17 @@ - - - - - - - - + + + + + + + + + + + @@ -1152,18 +1155,18 @@ - - + + - - + + - - + + @@ -1188,7 +1191,7 @@ - + @@ -1323,7 +1326,7 @@ - + @@ -1408,7 +1411,7 @@ - + @@ -1423,12 +1426,12 @@ - + - + @@ -1513,12 +1516,12 @@ - + - + @@ -1568,7 +1571,7 @@ - + diff --git a/images/cs-block-miscellaneous-symbols.light.svg b/images/cs-block-miscellaneous-symbols.light.svg index dfe5f94d09..5a45621281 100644 --- a/images/cs-block-miscellaneous-symbols.light.svg +++ b/images/cs-block-miscellaneous-symbols.light.svg @@ -64,7 +64,7 @@ - + @@ -87,14 +87,17 @@ - - - - - - - - + + + + + + + + + + + @@ -1152,18 +1155,18 @@ - - + + - - + + - - + + @@ -1188,7 +1191,7 @@ - + @@ -1323,7 +1326,7 @@ - + @@ -1408,7 +1411,7 @@ - + @@ -1423,12 +1426,12 @@ - + - + @@ -1513,12 +1516,12 @@ - + - + @@ -1568,7 +1571,7 @@ - + diff --git a/images/cs-block-miscellaneous-technical.dark.svg b/images/cs-block-miscellaneous-technical.dark.svg index a473bfa93e..1a984fc0df 100644 --- a/images/cs-block-miscellaneous-technical.dark.svg +++ b/images/cs-block-miscellaneous-technical.dark.svg @@ -57,8 +57,8 @@ - - + + @@ -66,7 +66,7 @@ - + @@ -98,7 +98,7 @@ - + @@ -107,7 +107,7 @@ - + diff --git a/images/cs-block-miscellaneous-technical.light.svg b/images/cs-block-miscellaneous-technical.light.svg index 04f945bef6..0a2621a2f5 100644 --- a/images/cs-block-miscellaneous-technical.light.svg +++ b/images/cs-block-miscellaneous-technical.light.svg @@ -57,8 +57,8 @@ - - + + @@ -66,7 +66,7 @@ - + @@ -98,7 +98,7 @@ - + @@ -107,7 +107,7 @@ - + diff --git a/images/cs-block-musical-symbols.dark.svg b/images/cs-block-musical-symbols.dark.svg index fac7d5fc83..a151129561 100644 --- a/images/cs-block-musical-symbols.dark.svg +++ b/images/cs-block-musical-symbols.dark.svg @@ -22,14 +22,20 @@ - - - - - - - - + + + + + + + + + + + + + + @@ -365,23 +371,23 @@ - - + + - - + + - - + + - - + + @@ -396,23 +402,23 @@ - - + + - - + + - + - + @@ -912,22 +918,22 @@ - + - + - + - + @@ -943,12 +949,12 @@ - + - + diff --git a/images/cs-block-musical-symbols.light.svg b/images/cs-block-musical-symbols.light.svg index 0747f3c5cb..de0df51da3 100644 --- a/images/cs-block-musical-symbols.light.svg +++ b/images/cs-block-musical-symbols.light.svg @@ -22,14 +22,20 @@ - - - - - - - - + + + + + + + + + + + + + + @@ -365,23 +371,23 @@ - - + + - - + + - - + + - - + + @@ -396,23 +402,23 @@ - - + + - - + + - + - + @@ -912,22 +918,22 @@ - + - + - + - + @@ -943,12 +949,12 @@ - + - + diff --git a/images/cs-block-phonetic-extensions-supplement.dark.svg b/images/cs-block-phonetic-extensions-supplement.dark.svg index 592f65a01f..377d74daaf 100644 --- a/images/cs-block-phonetic-extensions-supplement.dark.svg +++ b/images/cs-block-phonetic-extensions-supplement.dark.svg @@ -37,10 +37,10 @@ - + - + diff --git a/images/cs-block-phonetic-extensions-supplement.light.svg b/images/cs-block-phonetic-extensions-supplement.light.svg index d744c2d154..1f5592d071 100644 --- a/images/cs-block-phonetic-extensions-supplement.light.svg +++ b/images/cs-block-phonetic-extensions-supplement.light.svg @@ -37,10 +37,10 @@ - + - + diff --git a/images/cs-block-supplemental-mathematical-operators.dark.svg b/images/cs-block-supplemental-mathematical-operators.dark.svg index 803347b0e1..4a1bdaada5 100644 --- a/images/cs-block-supplemental-mathematical-operators.dark.svg +++ b/images/cs-block-supplemental-mathematical-operators.dark.svg @@ -25,127 +25,148 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -283,8 +304,8 @@ - - + + @@ -334,32 +355,32 @@ - + - + - + - + - + - + @@ -393,18 +414,18 @@ - - + + - - + + - + @@ -429,27 +450,27 @@ - + - + - + - + - + @@ -469,32 +490,32 @@ - + - + - + - + - + - + @@ -509,17 +530,17 @@ - + - + - + @@ -529,17 +550,17 @@ - + - + - + @@ -549,7 +570,7 @@ - + @@ -569,22 +590,22 @@ - + - + - + - + @@ -599,22 +620,22 @@ - + - + - + - + @@ -658,23 +679,23 @@ - - + + - - + + - - + + - - + + @@ -704,12 +725,12 @@ - + - + @@ -723,13 +744,13 @@ - - + + - - + + @@ -738,13 +759,13 @@ - - + + - - + + @@ -759,12 +780,12 @@ - + - + @@ -779,82 +800,82 @@ - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + @@ -869,22 +890,22 @@ - + - + - + - + @@ -934,17 +955,17 @@ - + - + - + @@ -959,7 +980,7 @@ - + @@ -984,32 +1005,32 @@ - + - + - + - + - + - + @@ -1024,12 +1045,12 @@ - + - + @@ -1074,32 +1095,32 @@ - + - + - + - + - + - + @@ -1114,12 +1135,12 @@ - + - + @@ -1188,33 +1209,33 @@ - - + + - - + + - - + + - - + + - + - + @@ -1229,57 +1250,57 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -1294,12 +1315,12 @@ - + - + @@ -1393,8 +1414,8 @@ - - + + @@ -1408,18 +1429,18 @@ - - + + - - + + - - + + @@ -1454,37 +1475,37 @@ - + - + - + - + - + - + - + @@ -1499,7 +1520,7 @@ - + @@ -1509,72 +1530,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1589,37 +1610,37 @@ - + - + - + - + - + - + - + @@ -1649,12 +1670,12 @@ - + - + diff --git a/images/cs-block-supplemental-mathematical-operators.light.svg b/images/cs-block-supplemental-mathematical-operators.light.svg index 26bb28bef9..19f685cbd5 100644 --- a/images/cs-block-supplemental-mathematical-operators.light.svg +++ b/images/cs-block-supplemental-mathematical-operators.light.svg @@ -25,127 +25,148 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -283,8 +304,8 @@ - - + + @@ -334,32 +355,32 @@ - + - + - + - + - + - + @@ -393,18 +414,18 @@ - - + + - - + + - + @@ -429,27 +450,27 @@ - + - + - + - + - + @@ -469,32 +490,32 @@ - + - + - + - + - + - + @@ -509,17 +530,17 @@ - + - + - + @@ -529,17 +550,17 @@ - + - + - + @@ -549,7 +570,7 @@ - + @@ -569,22 +590,22 @@ - + - + - + - + @@ -599,22 +620,22 @@ - + - + - + - + @@ -658,23 +679,23 @@ - - + + - - + + - - + + - - + + @@ -704,12 +725,12 @@ - + - + @@ -723,13 +744,13 @@ - - + + - - + + @@ -738,13 +759,13 @@ - - + + - - + + @@ -759,12 +780,12 @@ - + - + @@ -779,82 +800,82 @@ - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + @@ -869,22 +890,22 @@ - + - + - + - + @@ -934,17 +955,17 @@ - + - + - + @@ -959,7 +980,7 @@ - + @@ -984,32 +1005,32 @@ - + - + - + - + - + - + @@ -1024,12 +1045,12 @@ - + - + @@ -1074,32 +1095,32 @@ - + - + - + - + - + - + @@ -1114,12 +1135,12 @@ - + - + @@ -1188,33 +1209,33 @@ - - + + - - + + - - + + - - + + - + - + @@ -1229,57 +1250,57 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -1294,12 +1315,12 @@ - + - + @@ -1393,8 +1414,8 @@ - - + + @@ -1408,18 +1429,18 @@ - - + + - - + + - - + + @@ -1454,37 +1475,37 @@ - + - + - + - + - + - + - + @@ -1499,7 +1520,7 @@ - + @@ -1509,72 +1530,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1589,37 +1610,37 @@ - + - + - + - + - + - + - + @@ -1649,12 +1670,12 @@ - + - + diff --git a/images/cs-block-supplemental-punctuation.dark.svg b/images/cs-block-supplemental-punctuation.dark.svg index 0ce0ad240b..d04d1063aa 100644 --- a/images/cs-block-supplemental-punctuation.dark.svg +++ b/images/cs-block-supplemental-punctuation.dark.svg @@ -46,7 +46,7 @@ - + diff --git a/images/cs-block-supplemental-punctuation.light.svg b/images/cs-block-supplemental-punctuation.light.svg index f79d0510a0..032a8bd91c 100644 --- a/images/cs-block-supplemental-punctuation.light.svg +++ b/images/cs-block-supplemental-punctuation.light.svg @@ -46,7 +46,7 @@ - + diff --git a/images/cs-block-symbols-for-legacy-computing.dark.svg b/images/cs-block-symbols-for-legacy-computing.dark.svg index df4e03763e..e70f652b6c 100644 --- a/images/cs-block-symbols-for-legacy-computing.dark.svg +++ b/images/cs-block-symbols-for-legacy-computing.dark.svg @@ -199,7 +199,7 @@ - + diff --git a/images/cs-block-symbols-for-legacy-computing.light.svg b/images/cs-block-symbols-for-legacy-computing.light.svg index df4e9b3500..7b9cde6490 100644 --- a/images/cs-block-symbols-for-legacy-computing.light.svg +++ b/images/cs-block-symbols-for-legacy-computing.light.svg @@ -199,7 +199,7 @@ - + diff --git a/images/cv-eszet-traditional-descending-middle-serifed.dark.svg b/images/cv-eszet-traditional-descending-middle-serifed.dark.svg index 5bc0fc8582..06767a850e 100644 --- a/images/cv-eszet-traditional-descending-middle-serifed.dark.svg +++ b/images/cv-eszet-traditional-descending-middle-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-descending-middle-serifed.light.svg b/images/cv-eszet-traditional-descending-middle-serifed.light.svg index 74cde916a8..06c453a6cc 100644 --- a/images/cv-eszet-traditional-descending-middle-serifed.light.svg +++ b/images/cv-eszet-traditional-descending-middle-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-dual-serifed.dark.svg b/images/cv-eszet-traditional-dual-serifed.dark.svg index 65b90aec63..fd458af72b 100644 --- a/images/cv-eszet-traditional-dual-serifed.dark.svg +++ b/images/cv-eszet-traditional-dual-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-dual-serifed.light.svg b/images/cv-eszet-traditional-dual-serifed.light.svg index def2752d44..7f6eb61bda 100644 --- a/images/cv-eszet-traditional-dual-serifed.light.svg +++ b/images/cv-eszet-traditional-dual-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-flat-hook-descending-middle-serifed.dark.svg b/images/cv-eszet-traditional-flat-hook-descending-middle-serifed.dark.svg index d19e4f9e6e..4ede0bcf0e 100644 --- a/images/cv-eszet-traditional-flat-hook-descending-middle-serifed.dark.svg +++ b/images/cv-eszet-traditional-flat-hook-descending-middle-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-flat-hook-descending-middle-serifed.light.svg b/images/cv-eszet-traditional-flat-hook-descending-middle-serifed.light.svg index d4a64eeb19..9d60b6dbe5 100644 --- a/images/cv-eszet-traditional-flat-hook-descending-middle-serifed.light.svg +++ b/images/cv-eszet-traditional-flat-hook-descending-middle-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-flat-hook-dual-serifed.dark.svg b/images/cv-eszet-traditional-flat-hook-dual-serifed.dark.svg index c16749dfbe..1e8de5c387 100644 --- a/images/cv-eszet-traditional-flat-hook-dual-serifed.dark.svg +++ b/images/cv-eszet-traditional-flat-hook-dual-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-flat-hook-dual-serifed.light.svg b/images/cv-eszet-traditional-flat-hook-dual-serifed.light.svg index 80b67c0eff..4cad2f8c2d 100644 --- a/images/cv-eszet-traditional-flat-hook-dual-serifed.light.svg +++ b/images/cv-eszet-traditional-flat-hook-dual-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-flat-hook-middle-serifed.dark.svg b/images/cv-eszet-traditional-flat-hook-middle-serifed.dark.svg index 32e6ae9497..d010193fc4 100644 --- a/images/cv-eszet-traditional-flat-hook-middle-serifed.dark.svg +++ b/images/cv-eszet-traditional-flat-hook-middle-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-flat-hook-middle-serifed.light.svg b/images/cv-eszet-traditional-flat-hook-middle-serifed.light.svg index 5877b0704a..6ca9990239 100644 --- a/images/cv-eszet-traditional-flat-hook-middle-serifed.light.svg +++ b/images/cv-eszet-traditional-flat-hook-middle-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-flat-hook-tailed-middle-serifed.dark.svg b/images/cv-eszet-traditional-flat-hook-tailed-middle-serifed.dark.svg index 5deef4fad9..bb8ecfd61c 100644 --- a/images/cv-eszet-traditional-flat-hook-tailed-middle-serifed.dark.svg +++ b/images/cv-eszet-traditional-flat-hook-tailed-middle-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-flat-hook-tailed-middle-serifed.light.svg b/images/cv-eszet-traditional-flat-hook-tailed-middle-serifed.light.svg index d37fda7996..57d94d01c9 100644 --- a/images/cv-eszet-traditional-flat-hook-tailed-middle-serifed.light.svg +++ b/images/cv-eszet-traditional-flat-hook-tailed-middle-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-middle-serifed.dark.svg b/images/cv-eszet-traditional-middle-serifed.dark.svg index 217ec68d11..296256bc4a 100644 --- a/images/cv-eszet-traditional-middle-serifed.dark.svg +++ b/images/cv-eszet-traditional-middle-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-middle-serifed.light.svg b/images/cv-eszet-traditional-middle-serifed.light.svg index 965bc84d55..d142281c79 100644 --- a/images/cv-eszet-traditional-middle-serifed.light.svg +++ b/images/cv-eszet-traditional-middle-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-tailed-middle-serifed.dark.svg b/images/cv-eszet-traditional-tailed-middle-serifed.dark.svg index 0f61de2ef2..f167a9defc 100644 --- a/images/cv-eszet-traditional-tailed-middle-serifed.dark.svg +++ b/images/cv-eszet-traditional-tailed-middle-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-eszet-traditional-tailed-middle-serifed.light.svg b/images/cv-eszet-traditional-tailed-middle-serifed.light.svg index 55459556f8..f0694e74b1 100644 --- a/images/cv-eszet-traditional-tailed-middle-serifed.light.svg +++ b/images/cv-eszet-traditional-tailed-middle-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/languages.dark.svg b/images/languages.dark.svg index 82bc2422f4..f0ef67ea26 100644 --- a/images/languages.dark.svg +++ b/images/languages.dark.svg @@ -145,7 +145,7 @@ - + @@ -164,7 +164,7 @@ - + diff --git a/images/languages.light.svg b/images/languages.light.svg index c87659315e..7f15df5dc0 100644 --- a/images/languages.light.svg +++ b/images/languages.light.svg @@ -145,7 +145,7 @@ - + @@ -164,7 +164,7 @@ - + diff --git a/images/package-sample-IosevkaAile.dark.svg b/images/package-sample-IosevkaAile.dark.svg index 9b47ac56a0..6ce2dd5d5b 100644 --- a/images/package-sample-IosevkaAile.dark.svg +++ b/images/package-sample-IosevkaAile.dark.svg @@ -24,7 +24,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -159,7 +159,7 @@ - + @@ -190,46 +190,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -260,42 +260,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -358,9 +358,9 @@ - - - + + + @@ -375,7 +375,7 @@ - + @@ -395,7 +395,7 @@ - + @@ -415,18 +415,18 @@ - - - - - - - - - - - + + + + + + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaAile.light.svg b/images/package-sample-IosevkaAile.light.svg index 8979735fc7..39b32f2211 100644 --- a/images/package-sample-IosevkaAile.light.svg +++ b/images/package-sample-IosevkaAile.light.svg @@ -24,7 +24,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -159,7 +159,7 @@ - + @@ -190,46 +190,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -260,42 +260,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -358,9 +358,9 @@ - - - + + + @@ -375,7 +375,7 @@ - + @@ -395,7 +395,7 @@ - + @@ -415,18 +415,18 @@ - - - - - - - - - - - + + + + + + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaEtoile.dark.svg b/images/package-sample-IosevkaEtoile.dark.svg index bd86d98193..dc1e6310e8 100644 --- a/images/package-sample-IosevkaEtoile.dark.svg +++ b/images/package-sample-IosevkaEtoile.dark.svg @@ -24,7 +24,7 @@ - + @@ -40,7 +40,7 @@ - + @@ -146,7 +146,7 @@ - + @@ -160,7 +160,7 @@ - + @@ -191,46 +191,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -261,42 +261,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -359,9 +359,9 @@ - - - + + + @@ -376,7 +376,7 @@ - + @@ -396,7 +396,7 @@ - + @@ -416,18 +416,18 @@ - - - - - - - - - - - + + + + + + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaEtoile.light.svg b/images/package-sample-IosevkaEtoile.light.svg index 767358b2a8..641d2c920b 100644 --- a/images/package-sample-IosevkaEtoile.light.svg +++ b/images/package-sample-IosevkaEtoile.light.svg @@ -24,7 +24,7 @@ - + @@ -40,7 +40,7 @@ - + @@ -146,7 +146,7 @@ - + @@ -160,7 +160,7 @@ - + @@ -191,46 +191,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -261,42 +261,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -359,9 +359,9 @@ - - - + + + @@ -376,7 +376,7 @@ - + @@ -396,7 +396,7 @@ - + @@ -416,18 +416,18 @@ - - - - - - - - - - - + + + + + + + + + + + - + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 25790066a9..22e3780e6d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iosevka/monorepo", - "version": "32.2.1", + "version": "32.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iosevka/monorepo", - "version": "32.2.1", + "version": "32.3.0", "workspaces": [ "packages/*", "tools/*" @@ -5153,16 +5153,16 @@ }, "packages/font": { "name": "@iosevka/font", - "version": "32.2.1", + "version": "32.3.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "32.2.1", - "@iosevka/font-otl": "32.2.1", - "@iosevka/geometry": "32.2.1", - "@iosevka/geometry-cache": "32.2.1", - "@iosevka/glyph": "32.2.1", - "@iosevka/param": "32.2.1", - "@iosevka/util": "32.2.1", + "@iosevka/font-glyphs": "32.3.0", + "@iosevka/font-otl": "32.3.0", + "@iosevka/geometry": "32.3.0", + "@iosevka/geometry-cache": "32.3.0", + "@iosevka/glyph": "32.3.0", + "@iosevka/param": "32.3.0", + "@iosevka/util": "32.3.0", "@msgpack/msgpack": "^2.8.0", "harfbuzzjs": "^0.4.3", "ot-builder": "^1.7.4", @@ -5171,86 +5171,86 @@ }, "packages/font-glyphs": { "name": "@iosevka/font-glyphs", - "version": "32.2.1", + "version": "32.3.0", "dependencies": { - "@iosevka/font-kits": "32.2.1", - "@iosevka/geometry": "32.2.1", - "@iosevka/geometry-cache": "32.2.1", - "@iosevka/glyph": "32.2.1", - "@iosevka/util": "32.2.1", + "@iosevka/font-kits": "32.3.0", + "@iosevka/geometry": "32.3.0", + "@iosevka/geometry-cache": "32.3.0", + "@iosevka/glyph": "32.3.0", + "@iosevka/util": "32.3.0", "typo-geom": "^0.16.1" } }, "packages/font-kits": { "name": "@iosevka/font-kits", - "version": "32.2.1", + "version": "32.3.0", "dependencies": { - "@iosevka/geometry": "32.2.1", - "@iosevka/glyph": "32.2.1", - "@iosevka/util": "32.2.1", + "@iosevka/geometry": "32.3.0", + "@iosevka/glyph": "32.3.0", + "@iosevka/util": "32.3.0", "typo-geom": "^0.16.1" } }, "packages/font-otl": { "name": "@iosevka/font-otl", - "version": "32.2.1", + "version": "32.3.0", "dependencies": { - "@iosevka/font-glyphs": "32.2.1", - "@iosevka/glyph": "32.2.1", + "@iosevka/font-glyphs": "32.3.0", + "@iosevka/glyph": "32.3.0", "toposort": "^2.0.2" } }, "packages/geometry": { "name": "@iosevka/geometry", - "version": "32.2.1", + "version": "32.3.0", "dependencies": { - "@iosevka/util": "32.2.1", + "@iosevka/util": "32.3.0", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } }, "packages/geometry-cache": { "name": "@iosevka/geometry-cache", - "version": "32.2.1", + "version": "32.3.0", "dependencies": { - "@iosevka/geometry": "32.2.1", + "@iosevka/geometry": "32.3.0", "@msgpack/msgpack": "^2.8.0" } }, "packages/glyph": { "name": "@iosevka/glyph", - "version": "32.2.1", + "version": "32.3.0", "dependencies": { - "@iosevka/geometry": "32.2.1" + "@iosevka/geometry": "32.3.0" } }, "packages/param": { "name": "@iosevka/param", - "version": "32.2.1", + "version": "32.3.0", "dependencies": { - "@iosevka/util": "32.2.1" + "@iosevka/util": "32.3.0" } }, "packages/util": { "name": "@iosevka/util", - "version": "32.2.1" + "version": "32.3.0" }, "tools/amend-readme": { "name": "@iosevka/amend-readme", - "version": "32.2.1", + "version": "32.3.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.2.1", + "@iosevka/param": "32.3.0", "@unicode/unicode-16.0.0": "^1.6.4", "semver": "^7.6.3" } }, "tools/data-export": { "name": "@iosevka/data-export", - "version": "32.2.1", + "version": "32.3.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.2.1", + "@iosevka/param": "32.3.0", "@msgpack/msgpack": "^2.8.0", "@unicode/unicode-16.0.0": "^1.6.4", "cldr": "^7.6.0" @@ -5258,16 +5258,16 @@ }, "tools/generate-samples": { "name": "@iosevka/generate-samples", - "version": "32.2.1", + "version": "32.3.0", "dependencies": { - "@iosevka/data-export": "32.2.1" + "@iosevka/data-export": "32.3.0" } }, "tools/misc": { "name": "@iosevka/misc", - "version": "32.2.1", + "version": "32.3.0", "dependencies": { - "@iosevka/util": "32.2.1", + "@iosevka/util": "32.3.0", "@unicode/unicode-16.0.0": "^1.6.4", "semver": "^7.6.3", "wawoff2": "^2.0.1" diff --git a/package.json b/package.json index 9af4900ddb..ad9e0506d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/monorepo", - "version": "32.2.1", + "version": "32.3.0", "workspaces": [ "packages/*", "tools/*" diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index e3c52268a3..50c5831163 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-glyphs", - "version": "32.2.1", + "version": "32.3.0", "private": true, "exports": { ".": "./lib/index.mjs", @@ -8,11 +8,11 @@ "./unicode-knowledge": "./lib/meta/unicode-knowledge.mjs" }, "dependencies": { - "@iosevka/font-kits": "32.2.1", - "@iosevka/geometry": "32.2.1", - "@iosevka/geometry-cache": "32.2.1", - "@iosevka/glyph": "32.2.1", - "@iosevka/util": "32.2.1", + "@iosevka/font-kits": "32.3.0", + "@iosevka/geometry": "32.3.0", + "@iosevka/geometry-cache": "32.3.0", + "@iosevka/glyph": "32.3.0", + "@iosevka/util": "32.3.0", "typo-geom": "^0.16.1" } } diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json index 9440f7baea..421f6a0e37 100644 --- a/packages/font-kits/package.json +++ b/packages/font-kits/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-kits", - "version": "32.2.1", + "version": "32.3.0", "private": true, "exports": { "./derived-coordinates": "./src/derived-coordinates.mjs", @@ -8,9 +8,9 @@ "./spiro-kit": "./src/spiro-kit.mjs" }, "dependencies": { - "@iosevka/geometry": "32.2.1", - "@iosevka/glyph": "32.2.1", - "@iosevka/util": "32.2.1", + "@iosevka/geometry": "32.3.0", + "@iosevka/glyph": "32.3.0", + "@iosevka/util": "32.3.0", "typo-geom": "^0.16.1" } } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json index 029f79865b..c3a59c6296 100644 --- a/packages/font-otl/package.json +++ b/packages/font-otl/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/font-otl", - "version": "32.2.1", + "version": "32.3.0", "private": true, "exports": { ".": "./lib/index.mjs" }, "dependencies": { - "@iosevka/font-glyphs": "32.2.1", - "@iosevka/glyph": "32.2.1", + "@iosevka/font-glyphs": "32.3.0", + "@iosevka/glyph": "32.3.0", "toposort": "^2.0.2" } } diff --git a/packages/font/package.json b/packages/font/package.json index c61809f39e..d8f1db5eed 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font", - "version": "32.2.1", + "version": "32.3.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,13 +10,13 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "32.2.1", - "@iosevka/font-otl": "32.2.1", - "@iosevka/geometry": "32.2.1", - "@iosevka/geometry-cache": "32.2.1", - "@iosevka/glyph": "32.2.1", - "@iosevka/param": "32.2.1", - "@iosevka/util": "32.2.1", + "@iosevka/font-glyphs": "32.3.0", + "@iosevka/font-otl": "32.3.0", + "@iosevka/geometry": "32.3.0", + "@iosevka/geometry-cache": "32.3.0", + "@iosevka/glyph": "32.3.0", + "@iosevka/param": "32.3.0", + "@iosevka/util": "32.3.0", "harfbuzzjs": "^0.4.3", "ot-builder": "^1.7.4", "semver": "^7.6.3", diff --git a/packages/geometry-cache/package.json b/packages/geometry-cache/package.json index 7c57ce96a1..89b131b8bf 100644 --- a/packages/geometry-cache/package.json +++ b/packages/geometry-cache/package.json @@ -1,12 +1,12 @@ { "name": "@iosevka/geometry-cache", - "version": "32.2.1", + "version": "32.3.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/geometry": "32.2.1", + "@iosevka/geometry": "32.3.0", "@msgpack/msgpack": "^2.8.0" } } diff --git a/packages/geometry/package.json b/packages/geometry/package.json index b71fdb0dec..cb2e16f3b0 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/geometry", - "version": "32.2.1", + "version": "32.3.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -16,7 +16,7 @@ "./encoding": "./src/encoding.mjs" }, "dependencies": { - "@iosevka/util": "32.2.1", + "@iosevka/util": "32.3.0", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } diff --git a/packages/glyph/package.json b/packages/glyph/package.json index 45f4c5c810..0aa8ae7f14 100644 --- a/packages/glyph/package.json +++ b/packages/glyph/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/glyph", - "version": "32.2.1", + "version": "32.3.0", "private": true, "exports": { ".": "./src/glyph.mjs", @@ -9,6 +9,6 @@ "./relation": "./src/relation.mjs" }, "dependencies": { - "@iosevka/geometry": "32.2.1" + "@iosevka/geometry": "32.3.0" } } diff --git a/packages/param/package.json b/packages/param/package.json index f97c7b76d8..24101755cb 100644 --- a/packages/param/package.json +++ b/packages/param/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/param", - "version": "32.2.1", + "version": "32.3.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -9,6 +9,6 @@ "./metric-override": "./src/metric-override.mjs" }, "dependencies": { - "@iosevka/util": "32.2.1" + "@iosevka/util": "32.3.0" } } diff --git a/packages/util/package.json b/packages/util/package.json index 10b369b607..9c9f07a9b8 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/util", - "version": "32.2.1", + "version": "32.3.0", "private": true, "exports": { ".": "./src/index.mjs", diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index fe5b9fdcc2..1f35f074bf 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/amend-readme", - "version": "32.2.1", + "version": "32.3.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.2.1", + "@iosevka/param": "32.3.0", "@unicode/unicode-16.0.0": "^1.6.4", "semver": "^7.6.3" } diff --git a/tools/data-export/package.json b/tools/data-export/package.json index eb0d6ca5e3..cdb3f51d31 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/data-export", - "version": "32.2.1", + "version": "32.3.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,7 +10,7 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.2.1", + "@iosevka/param": "32.3.0", "@unicode/unicode-16.0.0": "^1.6.4", "cldr": "^7.6.0", "@msgpack/msgpack": "^2.8.0" diff --git a/tools/generate-samples/package.json b/tools/generate-samples/package.json index b6b2137ed2..76b62c8dab 100644 --- a/tools/generate-samples/package.json +++ b/tools/generate-samples/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/generate-samples", - "version": "32.2.1", + "version": "32.3.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/data-export": "32.2.1" + "@iosevka/data-export": "32.3.0" } } diff --git a/tools/misc/package.json b/tools/misc/package.json index f44e1b9847..dc55509067 100644 --- a/tools/misc/package.json +++ b/tools/misc/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/misc", - "version": "32.2.1", + "version": "32.3.0", "private": true, "dependencies": { "semver": "^7.6.3", "wawoff2": "^2.0.1", - "@iosevka/util": "32.2.1", + "@iosevka/util": "32.3.0", "@unicode/unicode-16.0.0": "^1.6.4" } }