From 4c67044acb83f5c0d9d1ac6f52c7ea12cbe4d11c Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 30 Jan 2021 22:44:53 -0800 Subject: [PATCH] Add character Z NOTATION SCHEMA COMPOSITION (`U+2A1F`) and Z NOTATION RELATION COMPOSITION (`U+2A3E`) (#857). --- changes/5.0.0-beta.3.md | 3 +- font-src/glyphs/symbol/punctuation.ptl | 45 ++++++++++++++++++++++---- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/changes/5.0.0-beta.3.md b/changes/5.0.0-beta.3.md index 22a75f105..3701ba92f 100644 --- a/changes/5.0.0-beta.3.md +++ b/changes/5.0.0-beta.3.md @@ -9,4 +9,5 @@ * Add asymmetric variants for `N` (#838). * Add base-serifed variants for `Y` (#850). * Add base-serifed variants for `r` (#851). - * Add stylistic set matching PT Mono and Recursive Mono (#855). \ No newline at end of file + * Add stylistic set matching PT Mono and Recursive Mono (#855). + * Add character Z NOTATION SCHEMA COMPOSITION (`U+2A1F`) and Z NOTATION RELATION COMPOSITION (`U+2A3E`) (#857). \ No newline at end of file diff --git a/font-src/glyphs/symbol/punctuation.ptl b/font-src/glyphs/symbol/punctuation.ptl index 9d8a59a90..e23d7b5ac 100644 --- a/font-src/glyphs/symbol/punctuation.ptl +++ b/font-src/glyphs/symbol/punctuation.ptl @@ -383,12 +383,8 @@ glyph-block Symbol-Punctuation-Small : begin create-glyph 'hollowColon' 0x2982 : glyph-proc define sw : AdviceStroke 5 define dotRadius : Math.max PeriodRadius (XH / 8) - include : difference - DotAt Middle dotRadius (dotRadius - O + sw / 2) - DotAt Middle dotRadius (dotRadius - O - sw / 2) - include : difference - DotAt Middle (XH - dotRadius) (dotRadius - O + sw / 2) - DotAt Middle (XH - dotRadius) (dotRadius - O - sw / 2) + include : RingStrokeAt Middle (XH - dotRadius) (dotRadius + sw / 2 - O) sw + include : RingStrokeAt Middle dotRadius (dotRadius + sw / 2 - O) sw create-glyph 'semicolon' ';' : glyph-proc include : refer-glyph "comma" @@ -396,6 +392,43 @@ glyph-block Symbol-Punctuation-Small : begin alias 'greekquestion' 0x37E 'semicolon' + define [RingCommaStroke mx my rad s k1x k1y k2x k2y] : begin + local u : my + rad + local d : my - rad + local l : mx - rad + local r : mx + rad + local fine : s * CThin + return : dispiro + widths.rhs [fallback fine] + g4 mx (u - s + fine) [heading Rightward] + archv + g4 (r - s + [mix fine s 0.5]) my [widths.rhs : mix fine s 0.5] + arcvh + g4 mx d [widths.rhs.heading s Leftward] + archv + g4 l my + arcvh + g4 mx u [heading Rightward] + archv + g4 r my [widths.rhs fine] + flat (mx + rad * k1x) (d + rad * k1y) [widths.rhs s] + curl (mx - rad * k2x) (d - rad * k2y) + + create-glyph 'zNotationSchemaComposition' 0x2A1F : glyph-proc + define sw : AdviceStroke 5 + define dotRadius : Math.max PeriodRadius (XH / 8) + include : RingStrokeAt Middle (XH - dotRadius) (dotRadius + sw / 2 - O) sw + include : intersection + MaskAbove Descender + RingCommaStroke Middle dotRadius (dotRadius + sw / 2 - O) sw 0.75 0 1 3 + + create-glyph 'zNotationRelationalComposition' 0x2A3E : glyph-proc + define sw : AdviceStroke 6.5 + define dotRadius : 0.625 * [Math.max PeriodRadius (XH / 8)] + include : RingStrokeAt Middle (0.625 * XH - dotRadius) (dotRadius + sw / 2 - O) sw + include : intersection + MaskAbove (Descender * 0.75) + RingCommaStroke Middle dotRadius (dotRadius + sw / 2 - O) sw 0.75 0 0.75 3 glyph-block Symbol-Punctuation-Emotion : begin glyph-block-import CommonShapes