* Add characters:

- RIGHT ARROW WITH SMALL CIRCLE (`U+21F4`) (#1900).
  - LEFT RIGHT ARROW THROUGH SMALL CIRCLE (`U+2948`) (#1900).
  - LEFT ARROW WITH SMALL CIRCLE (`U+2B30`) (#1900).
This commit is contained in:
be5invis 2023-08-09 20:35:13 -07:00
parent 85494ed45a
commit e0ab2ce54d
39 changed files with 183 additions and 127 deletions

View file

@ -1,3 +1,7 @@
* Add characters:
- RIGHT ARROW WITH SMALL CIRCLE (`U+21F4`) (#1900).
- LEFT RIGHT ARROW THROUGH SMALL CIRCLE (`U+2948`) (#1900).
- LEFT ARROW WITH SMALL CIRCLE (`U+2B30`) (#1900).
* Make Cyrillic Abkhasian Che respond to C's serifs (#1898).
* Drop APL form for `U+220D` as it is not used by any APL languages (#1901).
* Add XH-height middle-serifed and dual-serifed variants for Eszet (#1904).

View file

@ -4,7 +4,6 @@ import * as CurveUtil from "../../support/geometry/curve-util.mjs";
import * as Geom from "../../support/geometry/index.mjs";
import { Point } from "../../support/geometry/point.mjs";
import { Transform } from "../../support/geometry/transform.mjs";
import { mix } from "../../support/utils.mjs";
///////////////////////////////////////////////////////////////////////////////////////////////////

View file

@ -184,7 +184,7 @@ glyph-block AutoBuild-Enclosure : begin
set totalInnerWidth : totalInnerWidth + ([enclosureInnerPartActualWidth.get gniPart] || 0)
local x : 0.5 * width - 0.5 * totalInnerWidth
foreach [gniPart : items-of finalParts] : begin
include : WithTransform [Translate x 0] : refer-glyph gniPart
include : with-transform [Translate x 0] : refer-glyph gniPart
set x : x + ([enclosureInnerPartActualWidth.get gniPart] || 0)
define [EnclosureInner gniPrefix gnEnclosure miniatureFont job dimens] : begin
@ -1147,7 +1147,7 @@ glyph-block Autobuild-Ligatures : begin
local aw 0
foreach { i component } [components.entries] : do
local componentG : query-glyph component
include : WithTransform [Translate aw 0] : refer-glyph component
include : with-transform [Translate aw 0] : refer-glyph component
set aw : aw + componentG.advanceWidth
decomposition.push component
set-width aw
@ -1425,9 +1425,9 @@ glyph-block Autobuild-Double-Emotions : begin
define dfm2 : df2.queryByNameEnsured m2
local sumChildrenWidth : dfg1.advanceWidth * wadj1 + dfg2.advanceWidth * wadj2
local refW : sumChildrenWidth - kern
include : union dfg2 [WithTransform [Translate (dfg2.advanceWidth) 0] dfm2]
include : union dfg2 [with-transform [Translate (dfg2.advanceWidth) 0] dfm2]
include : Translate (dfg1.advanceWidth * wadj1 - kern) 0
include : union dfg1 [WithTransform [Translate (dfg1.advanceWidth) 0] dfm1]
include : union dfg1 [with-transform [Translate (dfg1.advanceWidth) 0] dfm1]
include : Ungizmo
include : Translate (-refW / 2) 0
include : Scale [clamp 0 1 ((CWidth - SB * 1.25) / (CWidth - SB * 2) * CWidth / refW)] 1
@ -1462,7 +1462,7 @@ glyph-block Autobuild-Grouped-Digits : begin
create-glyph (gid + ".nd" + nd) : glyph-proc
include : refer-glyph gid
if (nd >= 3 && nd <= 5) : begin
include : WithTransform [Translate Width 0] : refer-glyph '.nd-shade'
include : with-transform [Translate Width 0] : refer-glyph '.nd-shade'
CvDecompose.set currentGlyph { gid '.nd-shade' }
: else : begin
CvDecompose.set currentGlyph { gid }

View file

@ -575,8 +575,12 @@ glyph-block CommonShapes : begin
include giz
include g
glyph-block-export WithTransform
define [WithTransform tfm gr] : new-glyph : composite-proc gr tfm
glyph-block-export with-transform
define [with-transform tfm gr] : new-glyph : composite-proc gr tfm
glyph-block-export clear-geometry
define [clear-geometry] : glyph-proc
currentGlyph.clearGeometry
glyph-block-export clear-anchors
define [clear-anchors] : glyph-proc

View file

@ -91,7 +91,7 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin
glyph-block-import Letter-Cyrillic-Zhe : Zhe
define [CyrRightZheShape legShape fSlab df top barLeft] : glyph-proc
local [object subDf shift sw] : SubDfDim 1 3 df OX
include : WithTransform [ApparentTranslate shift 0] : Zhe.HalfShape legShape fSlab subDf 0 top top
include : with-transform [ApparentTranslate shift 0] : Zhe.HalfShape legShape fSlab subDf 0 top top
include : HBar.m barLeft (shift + subDf.middle) (0.5 * top) sw
define [DzzheLeft df] : begin

View file

@ -47,7 +47,7 @@ glyph-block Letter-Cyrillic-E : begin
define dfSub : DivFrame divSub 2
local lf : CLetterForm dfSub sty styBot top 0 (ada -- ada) (adb -- adb) (sw -- df.mvs)
include : WithTransform [ApparentTranslate (Width * (df.div - divSub)) 0] : lf.full
include : with-transform [ApparentTranslate (Width * (df.div - divSub)) 0] : lf.full
include : Iotified.full df top
hBarRight -- [mix df.leftSB df.rightSB (3 / 4)]

View file

@ -114,14 +114,14 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
local xIotifiedBarRight : df.leftSB + [HSwToV df.mvs]
local botGap : Math.max ((df.rightSB - df.leftSB) * 0.08) [AdviceStroke 6]
include : difference
WithTransform [ApparentTranslate shift 0]
with-transform [ApparentTranslate shift 0]
ALetterShape subDf fStraightBar slabKind CAP df.mvs
intersection [MaskBelow df.mvs]
MaskLeft : mix xIotifiedBarRight [Math.min (subDf.leftSB + shift) (xIotifiedBarRight + botGap)] 0.5
include : difference
Iotified.A df CAP [mix df.leftSB df.rightSB (3 / 4)] (CAP / 2) (fCapital -- true)
WithTransform [ApparentTranslate shift 0]
with-transform [ApparentTranslate shift 0]
AMaskShape subDf fStraightBar CAP df.mvs
do "iotified a"
@ -134,11 +134,11 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
include : df.markSet.e
local { subDf shift } : SubDfAndShift 1 df
include : WithTransform [ApparentTranslate shift 0] [body subDf df.mvs]
include : with-transform [ApparentTranslate shift 0] [body subDf df.mvs]
include : difference
Iotified.full df XH [mix df.leftSB df.rightSB (3 / 4)] (XH / 2)
WithTransform [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
@ -147,7 +147,7 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
include : df.markSet.e
local { subDf shift } : SubDfAndShift 1 df
include : WithTransform [ApparentTranslate shift 0] [body subDf XH bar no-shape df.mvs]
include : with-transform [ApparentTranslate shift 0] [body subDf XH bar no-shape df.mvs]
include : Iotified.full df XH (shift + subDf.leftSB + [HSwToV : 0.5 * df.mvs]) (XH / 2)
@ -167,7 +167,7 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
include : df.markSet.e
local { subDf shift } : SubDfAndShift 1 df OX
include : WithTransform [ApparentTranslate shift 0] [body subDf XH df.mvs]
include : with-transform [ApparentTranslate shift 0] [body subDf XH df.mvs]
include : Iotified.full df XH df.middle (XH / 2)

View file

@ -62,7 +62,7 @@ glyph-block Letter-Cyrillic-Yat : begin
define dfSub : DivFrame divSub 2
local shift : Width * (df.div - divSub)
include : WithTransform [ApparentTranslate shift 0]
include : with-transform [ApparentTranslate shift 0]
YatShape dfSub top pBar fLowerCase df.mvs (df.leftSB - shift)
eject-contour 'serifDL'

View file

@ -55,7 +55,7 @@ glyph-block Letter-Latin-Long-S : begin
define [IFishHookShape top bottom fSlab] : glyph-proc
local balance : IBalance2 : DivFrame 1
include : WithTransform [Translate balance 0] : glyph-proc
include : with-transform [Translate balance 0] : glyph-proc
include : VBar.m Middle bottom (top - Hook)
include : VerticalHook.m Middle (top - Hook) (-LongJut + balance) (-Hook + HalfStroke)
if fSlab : include : union

View file

@ -20,7 +20,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin
do "a subglyphs"
define [AAShape pShift df body o] : begin
local { subDf shift } : SubDfAndShift pShift df o
return : WithTransform [ApparentTranslate shift 0] [body subDf df.mvs]
return : with-transform [ApparentTranslate shift 0] [body subDf df.mvs]
glyph-block-import Letter-Latin-Lower-A : DoubleStorey
define DoubleStoreyConfig : object
@ -49,22 +49,22 @@ glyph-block Letter-Latin-Lower-AE-OE : begin
include : difference [right] : intersection
MaskAbove (XH * OverlayPos * 1.02)
union
WithTransform [ApparentTranslate (-0.25 * df.mvs) 0] [left]
WithTransform [ApparentTranslate (-0.50 * df.mvs) 0] [left]
WithTransform [ApparentTranslate (-0.75 * df.mvs) 0] [left]
WithTransform [ApparentTranslate (-1.00 * df.mvs) 0] [left]
with-transform [ApparentTranslate (-0.25 * df.mvs) 0] [left]
with-transform [ApparentTranslate (-0.50 * df.mvs) 0] [left]
with-transform [ApparentTranslate (-0.75 * df.mvs) 0] [left]
with-transform [ApparentTranslate (-1.00 * df.mvs) 0] [left]
include : difference [left] : intersection
MaskBelow (XH * OverlayPos * 1.02)
union
WithTransform [ApparentTranslate (+0.25 * df.mvs) 0] [right]
WithTransform [ApparentTranslate (+0.50 * df.mvs) 0] [right]
WithTransform [ApparentTranslate (+0.75 * df.mvs) 0] [right]
WithTransform [ApparentTranslate (+1.00 * df.mvs) 0] [right]
with-transform [ApparentTranslate (+0.25 * df.mvs) 0] [right]
with-transform [ApparentTranslate (+0.50 * df.mvs) 0] [right]
with-transform [ApparentTranslate (+0.75 * df.mvs) 0] [right]
with-transform [ApparentTranslate (+1.00 * df.mvs) 0] [right]
do "o subglyphs"
define [oeOPart pShift df top ad] : begin
local { subDf shift } : SubDfAndShift pShift df OX
return : WithTransform [ApparentTranslate shift 0]
return : with-transform [ApparentTranslate shift 0]
OShape top 0 subDf.leftSB subDf.rightSB df.mvs
subDf.archDepthA ad
subDf.archDepthB ad
@ -100,12 +100,12 @@ glyph-block Letter-Latin-Lower-AE-OE : begin
define [EShape pShift df body] : begin
local { subDf shift } : SubDfAndShift pShift df OX
return : WithTransform [ApparentTranslate shift 0] [body subDf XH df.mvs]
return : with-transform [ApparentTranslate shift 0] [body subDf XH df.mvs]
define [InvEShape pShift df revbody] : begin
local { subDf shift } : SubDfAndShift pShift df OX
return : WithTransform [ApparentTranslate shift 0]
WithTransform [FlipAround subDf.middle (XH / 2)] [revbody subDf XH df.mvs]
return : with-transform [ApparentTranslate shift 0]
with-transform [FlipAround subDf.middle (XH / 2)] [revbody subDf XH df.mvs]
define Config : object
flatCrossbar { SmallEShape RevSmallEShape }

View file

@ -15,12 +15,12 @@ glyph-block Letter-Latin-Upper-AE-OE : begin
define [AHalfShape pShift df top fStraightBar slabKind] : begin
local { subDf shift } : SubDfAndShift pShift df
return : WithTransform [ApparentTranslate shift 0]
return : with-transform [ApparentTranslate shift 0]
ALetterShape subDf fStraightBar slabKind top df.mvs
define [AHalfShapeMask pShift df top fStraightBar slabKind] : begin
local { subDf shift } : SubDfAndShift pShift df
return : WithTransform [ApparentTranslate shift 0]
return : with-transform [ApparentTranslate shift 0]
AMaskShape subDf fStraightBar top df.mvs
define SLAB-NONE 0
@ -96,8 +96,8 @@ glyph-block Letter-Latin-Upper-AE-OE : begin
difference
intersection
MaskAbove (height - Stroke)
WithTransform [ApparentTranslate topSerifGap 0] [refer-glyph leftMask]
WithTransform [ApparentTranslate (OX - 0.1) 0] [refer-glyph rightMask]
with-transform [ApparentTranslate topSerifGap 0] [refer-glyph leftMask]
with-transform [ApparentTranslate (OX - 0.1) 0] [refer-glyph rightMask]
derive-multi-part-glyphs 'AO' 0xA734 {"AA/Left" "AA/LeftMask" "OO/right"} : function [srcs gr] : glyph-proc
define df : DivFrame para.diversityM 3.5

View file

@ -36,7 +36,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin
corner eleft top
corner eleft (top - sw)
include : intersection
WithTransform [Translate (-O) 0] : spiro-outline
with-transform [Translate (-O) 0] : spiro-outline
corner df.leftSB 0 [heading Upward]
curl df.leftSB (top * 0.1) [heading Upward]
quadControls 0 0.3 6 unimportant

View file

@ -124,7 +124,7 @@ glyph-block Letter-Latin-Lower-D : begin
include : Body dfHalf Ascender
eject-contour 'rightBar'
include : WithTransform [ApparentTranslate (df.width - dfHalf.width) 0] : UpwardHookShape
include : with-transform [ApparentTranslate (df.width - dfHalf.width) 0] : UpwardHookShape
left -- dfHalf.leftSB
right -- dfHalf.rightSB
ybegin -- Ascender

View file

@ -158,7 +158,7 @@ glyph-block Letter-Latin-Lower-H : begin
derive-multi-part-glyphs 'hDot' 0x1E23 { 'h' 'dotAbove' } : lambda [srcs gr] : glyph-proc
local { base mark } srcs
include [refer-glyph base] AS_BASE ALSO_METRICS
include : WithTransform [ApparentTranslate [HSwToV HalfStroke] (XH - Ascender)] [refer-glyph mark]
include : with-transform [ApparentTranslate [HSwToV HalfStroke] (XH - Ascender)] [refer-glyph mark]
derive-glyphs 'hCedilla' 0x1E29 'h' : lambda [src gr] : glyph-proc
local shift : Width + SB - Middle + [HSwToV HalfStroke]

View file

@ -242,7 +242,7 @@ glyph-block Letter-Latin-Lower-I : begin
if Serif [tagged 'serifLT' : Serif subDf Ascender [xMiddleT subDf]] [no-shape]
include : BodyShape
include : WithTransform [ApparentTranslate (Width - subDf.width) 0] [BodyShape]
include : with-transform [ApparentTranslate (Width - subDf.width) 0] [BodyShape]
include : HOverlayBar [mix SB 0 0.7] [mix RightSB Width 0.7] (0.625 * Ascender)
include : MarkSet.b

View file

@ -220,7 +220,7 @@ glyph-block Letter-Latin-Lower-N : begin
do "n with Apostrophe"
derive-glyphs 'nApostrophe/comma' null 'commaAbove/asPunctuation' : function [src gr] : glyph-proc
include : WithTransform [Translate (Width + SB - Middle) 0]
include : with-transform [Translate (Width + SB - Middle) 0]
refer-glyph src
derive-composites 'nApostrophe' 0x149 'n' 'nApostrophe/comma'

View file

@ -199,7 +199,7 @@ glyph-block Letter-Latin-Lower-R : begin
set-width df.width
include : df.markSet.capDesc
define [object xBar rBottomSerif] : RDim df mode
include : WithTransform [ApparentTranslate 0 (CAP - XH)] : F df mode doTS 0
include : with-transform [ApparentTranslate 0 (CAP - XH)] : F df mode doTS 0
eject-contour 'serifLB'
include : VBar.r xBar Descender (CAP - XH)
if doBS : include : rBottomSerif Descender

View file

@ -35,7 +35,7 @@ glyph-block Letter-Latin-O : begin
local ada : subDf.archDepthA SmallArchDepth subDf.mvs
local adb : subDf.archDepthB SmallArchDepth subDf.mvs
include : WithTransform [ApparentTranslate (0.5 * (df.width - subDf.width)) 0]
include : with-transform [ApparentTranslate (0.5 * (df.width - subDf.width)) 0]
OShape XH 0 subDf.leftSB subDf.rightSB subDf.mvs ada adb
create-glyph 'oSideways' 0x1D11 : glyph-proc

View file

@ -66,7 +66,7 @@ glyph-block Letter-Latin-Upper-D : begin
local df : DivFrame 1 3
include : MarkSet.capital
include : DShape df CAP df.rightSB fRound fSlabTop fSlabBot
include : WithTransform [ApparentTranslate 0 (CAP * 0.2)]
include : with-transform [ApparentTranslate 0 (CAP * 0.2)]
DShape df (CAP * 0.6) (df.middle + [HSwToV : 0.5 * df.mvs]) fRound
create-glyph "romanFiftyThousand.\(suffix)" : glyph-proc
local df : DivFrame 1 4
@ -76,9 +76,9 @@ glyph-block Letter-Latin-Upper-D : begin
local heightGap : df.mvs + (CAP - df.mvs * 6) / 6
include : MarkSet.capital
include : DShape df CAP df.rightSB fRound fSlabTop fSlabBot
include : WithTransform [ApparentTranslate 0 heightGap]
include : with-transform [ApparentTranslate 0 heightGap]
DShape df (CAP - 2 * heightGap) arcX2 fRound
include : WithTransform [ApparentTranslate 0 (2 * heightGap)]
include : with-transform [ApparentTranslate 0 (2 * heightGap)]
DShape df (CAP - 4 * heightGap) arcX1 fRound
select-variant 'D' 'D'

View file

@ -55,7 +55,7 @@ glyph-block Letter-Latin-Upper-L : begin
include : intersection
MaskLeft RightSB
MaskAbove sw
WithTransform [ApparentTranslate ([HSwToV sw] + gap) 0]
with-transform [ApparentTranslate ([HSwToV sw] + gap) 0]
LShape df CAP serifGrade sw
create-glyph "LHighBar.\(suffix)" : glyph-proc
@ -81,7 +81,7 @@ glyph-block Letter-Latin-Upper-L : begin
derive-multi-part-glyphs 'Lcaron' 0x13D { 'L' 'commaAbove' } : lambda [srcs gr] : glyph-proc
local { base mark } srcs
include : WithTransform [Translate (Width + (RightSB - SB) * 0.375) 0]
include : with-transform [Translate (Width + (RightSB - SB) * 0.375) 0]
refer-glyph mark
include [refer-glyph base] AS_BASE ALSO_METRICS

View file

@ -226,7 +226,7 @@ glyph-block Letter-Latin-Upper-R : begin
define bp : RBarPos CAP 0
include : intersection
Rect CAP 0 SB Width
WithTransform [Translate (-Width / 8) 0]
with-transform [Translate (-Width / 8) 0]
PShape CAP (bp -- bp) (withBar -- false)
local right : RightSB - O - [if legShape 0 (Width / 16)]
include : RLegShapes.(legShape) [RLegTop CAP Stroke bp] 0 (Width * 0.375) right CAP (slabs === PShape.SlabSymmetric) Stroke 0
@ -269,7 +269,7 @@ glyph-block Letter-Latin-Upper-R : begin
include : difference
union
SingleLeg
WithTransform [ApparentTranslate (-BBD) 0] [SingleLeg]
with-transform [ApparentTranslate (-BBD) 0] [SingleLeg]
HBar.b (terminalX - BBD - [HSwToV BBS]) (terminalX - [HSwToV BBS]) 0 BBS
PShapeOutline CAP (sw -- BBS) (mul -- 1) (overshoot -- O) (offset -- 1)
MaskLeft (SB + BBD)

View file

@ -222,7 +222,7 @@ glyph-block Letter-Latin-V : begin
create-glyph "cyrl/Uk.\(suffix)" : glyph-proc
include : MarkSet.capital
local vPartHeight : CAP * 0.45 + HalfStroke
include : WithTransform [ApparentTranslate 0 (CAP - vPartHeight)] : glyph-proc
include : with-transform [ApparentTranslate 0 (CAP - vPartHeight)] : glyph-proc
include : VHookRightShape [DivFrame 1] fStraightBar vPartHeight
include : Serifs [DivFrame 1] fStraightBar vPartHeight
eject-contour 'serifRT'
@ -234,7 +234,7 @@ glyph-block Letter-Latin-V : begin
create-glyph "cyrl/ukUnblended.\(suffix)" : glyph-proc
include : MarkSet.b
local vPartHeight : Ascender * 0.45 + HalfStroke
include : WithTransform [ApparentTranslate 0 (Ascender - vPartHeight)] : glyph-proc
include : with-transform [ApparentTranslate 0 (Ascender - vPartHeight)] : glyph-proc
include : VHookRightShape [DivFrame 1] fStraightBar vPartHeight
include : Serifs [DivFrame 1] fStraightBar vPartHeight
eject-contour 'serifRT'
@ -245,7 +245,7 @@ glyph-block Letter-Latin-V : begin
local vPartHeight : CAP * 0.875
local sw : AdviceStroke 3
include : WithTransform [FlipAround Middle (CAP / 2)] : glyph-proc
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'
@ -261,7 +261,7 @@ glyph-block Letter-Latin-V : begin
local vPartHeight : XH * 1
local sw : AdviceStroke 3
include : WithTransform [FlipAround Middle (XH / 2)] : glyph-proc
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'

View file

@ -474,14 +474,14 @@ glyph-block Letter-Shared-Shapes : begin
include [refer-glyph src] AS_BASE ALSO_METRICS
currentGlyph.clearGeometry
include : refer-glyph 'cedillaExtShapeBelow'
WithTransform [ApparentTranslate 0 (Stroke * 0.25)] [refer-glyph src]
WithTransform [ApparentTranslate 0 (Stroke * 0.50)] [refer-glyph src]
WithTransform [ApparentTranslate 0 (Stroke * 0.75)] [refer-glyph src]
WithTransform [ApparentTranslate 0 (Stroke * 1.00)] [refer-glyph src]
WithTransform [ApparentTranslate 0 (Stroke * 1.25)] [refer-glyph src]
WithTransform [ApparentTranslate 0 (Stroke * 1.50)] [refer-glyph src]
WithTransform [ApparentTranslate 0 (Stroke * 1.75)] [refer-glyph src]
WithTransform [ApparentTranslate 0 (Stroke * 2.00)] [refer-glyph src]
with-transform [ApparentTranslate 0 (Stroke * 0.25)] [refer-glyph src]
with-transform [ApparentTranslate 0 (Stroke * 0.50)] [refer-glyph src]
with-transform [ApparentTranslate 0 (Stroke * 0.75)] [refer-glyph src]
with-transform [ApparentTranslate 0 (Stroke * 1.00)] [refer-glyph src]
with-transform [ApparentTranslate 0 (Stroke * 1.25)] [refer-glyph src]
with-transform [ApparentTranslate 0 (Stroke * 1.50)] [refer-glyph src]
with-transform [ApparentTranslate 0 (Stroke * 1.75)] [refer-glyph src]
with-transform [ApparentTranslate 0 (Stroke * 2.00)] [refer-glyph src]
include : refer-glyph 'blankBelow'
glyph-block-export SerifedArcStart

View file

@ -124,8 +124,8 @@ glyph-block Mark-Above : begin
set-width 0
local [object radiusIn radiusOut] : RingDims
local k : 2 * (radiusOut - (radiusOut - radiusIn) * 0.25)
include : WithTransform [Translate (+k / 2) 0] : refer-glyph 'ringAbove'
include : WithTransform [Translate (-k / 2) 0] : refer-glyph 'ringAbove'
include : with-transform [Translate (+k / 2) 0] : refer-glyph 'ringAbove'
include : with-transform [Translate (-k / 2) 0] : refer-glyph 'ringAbove'
include : StdAnchors.wide
foreach { suffix { DrawAt kdr } } [Object.entries DotVariants] : do
@ -308,9 +308,9 @@ glyph-block Mark-Above : begin
create-glyph 'dblCircumflexAbove' 0x1AB0 : glyph-proc
set-width 0
include : intersection [MaskRight markMiddle]
WithTransform [Translate (+markExtend) 0] : refer-glyph 'circumflexAbove'
with-transform [Translate (+markExtend) 0] : refer-glyph 'circumflexAbove'
include : intersection [MaskLeft markMiddle]
WithTransform [Translate (-markExtend) 0] : refer-glyph 'circumflexAbove'
with-transform [Translate (-markExtend) 0] : refer-glyph 'circumflexAbove'
include : StdAnchors.extraWide
define [TildeKnots] : with-params [ttop tbot leftEnd rightEnd hs] : glyph-proc
@ -781,22 +781,22 @@ glyph-block Mark-Above : begin
foreach { suffix { DrawAt kdr } } [Object.entries DotVariants] : do
create-glyph "dialytikaTonosAbove.\(suffix)" : glyph-proc
set-width 0
include : WithTransform [ApparentTranslate 0 (-1/8 * AccentHeight)] : refer-glyph "dialytikaAbove.\(suffix)"
include : WithTransform [ApparentTranslate 0 0] : refer-glyph 'tonosAbove'
include : with-transform [ApparentTranslate 0 (-1/8 * AccentHeight)] : refer-glyph "dialytikaAbove.\(suffix)"
include : with-transform [ApparentTranslate 0 0] : refer-glyph 'tonosAbove'
include : StdAnchors.wide
create-glyph "dialytikaVariaAbove.\(suffix)" : glyph-proc
set-width 0
local shift : 0.125 * (markExtend * 0.875 - markStress)
include : WithTransform [ApparentTranslate 0 (-1/8 * AccentHeight)] : refer-glyph "dialytikaAbove.\(suffix)"
include : WithTransform [ApparentTranslate shift 0] : refer-glyph 'variaAbove'
include : with-transform [ApparentTranslate 0 (-1/8 * AccentHeight)] : refer-glyph "dialytikaAbove.\(suffix)"
include : with-transform [ApparentTranslate shift 0] : refer-glyph 'variaAbove'
include : StdAnchors.wide
create-glyph "dialytikaOxiaAbove.\(suffix)" : glyph-proc
set-width 0
local shift : 0.125 * (markExtend * 0.875 - markStress)
include : WithTransform [ApparentTranslate 0 (-1/8 * AccentHeight)] : refer-glyph "dialytikaAbove.\(suffix)"
include : WithTransform [ApparentTranslate (-shift) 0] : refer-glyph 'oxiaAbove'
include : with-transform [ApparentTranslate 0 (-1/8 * AccentHeight)] : refer-glyph "dialytikaAbove.\(suffix)"
include : with-transform [ApparentTranslate (-shift) 0] : refer-glyph 'oxiaAbove'
include : StdAnchors.wide
select-variant 'dialytikaTonosAbove' 0x344 (follow -- 'diacriticDot')
@ -1066,8 +1066,8 @@ glyph-block Mark-Above : begin
create-glyph 'dblPlusAbove' 0x1AC9 : glyph-proc
set-width 0
include : WithTransform [Translate (+markExtend) 0] : refer-glyph 'plusAbove'
include : WithTransform [Translate (-markExtend) 0] : refer-glyph 'plusAbove'
include : with-transform [Translate (+markExtend) 0] : refer-glyph 'plusAbove'
include : with-transform [Translate (-markExtend) 0] : refer-glyph 'plusAbove'
include : StdAnchors.extraWide
create-glyph 'upTackAbove' 0x1DF5 : glyph-proc

View file

@ -220,20 +220,20 @@ glyph-block Mark-Below : begin
create-glyph 'greaterAndUpArrowheadBelow' 0x0356 : glyph-proc
set-width 0
include : WithTransform [Translate (-markExtend) 0] : refer-glyph 'greaterBelow'
include : WithTransform [Translate (+markExtend) 0] : refer-glyph 'upArrowHeadBelow'
include : with-transform [Translate (-markExtend) 0] : refer-glyph 'greaterBelow'
include : with-transform [Translate (+markExtend) 0] : refer-glyph 'upArrowHeadBelow'
include : StdAnchors.impl 0 1.5
create-glyph 'greaterAndDownArrowheadBelow' 0x1DFF : glyph-proc
set-width 0
include : WithTransform [Translate (-markExtend) 0] : refer-glyph 'greaterBelow'
include : WithTransform [Translate (+markExtend) 0] : refer-glyph 'downArrowHeadBelow'
include : with-transform [Translate (-markExtend) 0] : refer-glyph 'greaterBelow'
include : with-transform [Translate (+markExtend) 0] : refer-glyph 'downArrowHeadBelow'
include : StdAnchors.impl 0 1.5
create-glyph 'dblCrossBelow' 0x1AB5 : glyph-proc
set-width 0
include : WithTransform [Translate (-markExtend) 0] : refer-glyph 'crossBelow'
include : WithTransform [Translate (+markExtend) 0] : refer-glyph 'crossBelow'
include : with-transform [Translate (-markExtend) 0] : refer-glyph 'crossBelow'
include : with-transform [Translate (+markExtend) 0] : refer-glyph 'crossBelow'
include : StdAnchors.impl 0 1.5
create-glyph 'leftParenBelow' 0x1AC3 : glyph-proc

View file

@ -266,6 +266,25 @@ glyph-block Mark-Overlay : begin
flat (Middle - Width - dx) (XH / 2 + gap) [widths fine fine]
curl (Middle - Width + dx) (XH / 2 + gap)
define [ArrowRingOverlay kr c] : glyph-proc
set-width 0
local r : Width * kr
set-mark-anchor 'slash' 0 0 0 0
include : RingStrokeAt 0 0 r [AdviceStroke c]
define [ArrowRingMaskOverlay kr c] : glyph-proc
set-width 0
local r : Width * kr
set-mark-anchor 'slash' 0 0 0 0
include : RingAt 0 0 r [AdviceStroke c]
create-glyph 'arrRingOver.NWID' : ArrowRingOverlay 0.25 5
create-glyph 'arrRingOver.WWID' : ArrowRingOverlay 0.35 4.5
create-glyph 'arrRingOverLR.NWID' : ArrowRingOverlay 0.2 6
create-glyph 'arrRingOverLR.WWID' : ArrowRingOverlay 0.35 4.5
create-glyph 'arrRingOverLRMask.NWID' : ArrowRingMaskOverlay 0.2 6
create-glyph 'arrRingOverLRMask.WWID' : ArrowRingMaskOverlay 0.35 4.5
# Half-XH marks for spacing modifiers
create-glyph 'leftTackOver' : glyph-proc
set-width 0
@ -327,14 +346,14 @@ glyph-block Mark-Overlay : begin
set-width 0
set-mark-anchor 'overlay' 0 0 0 0
include : WithTransform [ApparentTranslate (-markMiddle) (-aboveMarkMid)]
include : with-transform [ApparentTranslate (-markMiddle) (-aboveMarkMid)]
refer-glyph 'rightHalfCircleAbove'
create-glyph 'leftHalfCircleOver' : glyph-proc
set-width 0
set-mark-anchor 'overlay' 0 0 0 0
include : WithTransform [ApparentTranslate (-markMiddle) (-aboveMarkMid)]
include : with-transform [ApparentTranslate (-markMiddle) (-aboveMarkMid)]
refer-glyph 'leftHalfCircleAbove'
# Inner dots

View file

@ -81,8 +81,8 @@ glyph-block Digits-Zero : begin
include zero
if fnMask
include : intersection overlay
WithTransform [ApparentTranslate (-SplitSlashGap) 0] [fnMask height]
WithTransform [ApparentTranslate SplitSlashGap 0] [fnMask height]
with-transform [ApparentTranslate (-SplitSlashGap) 0] [fnMask height]
with-transform [ApparentTranslate SplitSlashGap 0] [fnMask height]
include overlay
define [Cutout zero overlay fnMask height] : glyph-proc

View file

@ -166,6 +166,10 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
include : ArrowHead x1 y1 x2 y2 size
include : ArrowBar x1 y1 x2 y2 halfArrowSw
define [ThinArrowShape x1 y1 x2 y2 size] : glyph-proc
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
include : TriangleArrowHead x1 y1 x2 y2 (0.75 * size)
include : ArrowBar x1 y1 x2 y2 halfArrowSw
@ -851,6 +855,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
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
@ -952,6 +957,31 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
refer-glyph : MangleName 'trigArrowDown'
refer-glyph 'arrDblHStrokeOver'
do "Arrow with ring"
create-glyph [MangleName 'uni21F4'] [MangleUnicode 0x21F4] : composite-proc
refer-glyph : MangleName 'arrowRight'
refer-glyph : MangleName 'arrRingOver'
create-glyph [MangleName 'uni2B30'] [MangleUnicode 0x2B30] : composite-proc
refer-glyph : MangleName 'arrowLeft'
refer-glyph : MangleName 'arrRingOver'
create-glyph [MangleName 'uni2948'] [MangleUnicode 0x2948] : composite-proc
with-transform [Translate 0 0] : composite-proc
refer-glyph : MangleName 'arrowLeftRight'
clear-geometry
refer-glyph : MangleName 'arrRingOverLR'
difference
refer-glyph : MangleName 'arrowLeftRight'
with-transform [Translate 0 0] : composite-proc
refer-glyph : MangleName 'arrowLeftRight'
clear-geometry
refer-glyph : MangleName 'arrRingOverLRMask'
intersection
refer-glyph : MangleName 'thinArrowLeftRight'
with-transform [Translate 0 0] : composite-proc
refer-glyph : MangleName 'arrowLeftRight'
clear-geometry
refer-glyph : MangleName 'arrRingOverLRMask'
do "Stacked Arrows"
local hcDist : Math.max (halfArrowSw * 5) (arrowWidth / 2)
VCombine [MangleName 'uni21C4'] [MangleUnicode 0x21C4] [MangleName 'arrowRight'] [MangleName 'arrowLeft'] (arrowHeadSize * 1.75)
@ -980,15 +1010,15 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
create-glyph [MangleName 'uni21F6'] [MangleUnicode 0x21F6] : glyph-proc
set-width MosaicWidth
local distance : bendArrowHeadSize * 2 - arrowSw
include : WithTransform [ApparentTranslate 0 (+distance)] : refer-glyph : MangleName 'arrowRightCompact'
include : with-transform [ApparentTranslate 0 (+distance)] : refer-glyph : MangleName 'arrowRightCompact'
include : refer-glyph : MangleName 'arrowRightCompact'
include : WithTransform [ApparentTranslate 0 (-distance)] : refer-glyph : MangleName 'arrowRightCompact'
include : with-transform [ApparentTranslate 0 (-distance)] : refer-glyph : MangleName 'arrowRightCompact'
create-glyph [MangleName 'uni2B31'] [MangleUnicode 0x2B31] : glyph-proc
set-width MosaicWidth
local distance : bendArrowHeadSize * 2 - arrowSw
include : WithTransform [ApparentTranslate 0 (+distance)] : refer-glyph : MangleName 'arrowLeftCompact'
include : with-transform [ApparentTranslate 0 (+distance)] : refer-glyph : MangleName 'arrowLeftCompact'
include : refer-glyph : MangleName 'arrowLeftCompact'
include : WithTransform [ApparentTranslate 0 (-distance)] : refer-glyph : MangleName 'arrowLeftCompact'
include : with-transform [ApparentTranslate 0 (-distance)] : refer-glyph : MangleName 'arrowLeftCompact'
do "Zig zag"
create-glyph [MangleName 'zigZagArrow'] [MangleUnicode 0x21AF] : glyph-proc
@ -1074,7 +1104,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
define x2 : arrowMidX - bodyWidth / 2
include : HBar.t x2 x1(SymbolMid + enclosedSize / 2) arrowSw
include : WithTransform [ApparentTranslate 0 ((bodyWidth - enclosedSize) / 2)]
include : with-transform [ApparentTranslate 0 ((bodyWidth - enclosedSize) / 2)]
ArrowShape x1 (SymbolMid - bodyWidth / 2) x2 (SymbolMid + bodyWidth / 2)
create-glyph [MangleName 'uni21F1'] [MangleUnicode 0x21F1] : glyph-proc
@ -1085,7 +1115,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
define y1 : SymbolMid - bodyWidth / 2
define y2 : SymbolMid + bodyWidth / 2
include : WithTransform [ApparentTranslate ((enclosedSize - bodyWidth) / 2) ((bodyWidth - enclosedSize) / 2)]
include : with-transform [ApparentTranslate ((enclosedSize - bodyWidth) / 2) ((bodyWidth - enclosedSize) / 2)]
ArrowShape x1 y1 x2 y2
include : HBar.t (arrowMidX - enclosedSize / 2) (arrowMidX + enclosedSize / 2) (SymbolMid + enclosedSize / 2) arrowSw
include : VBar.l (arrowMidX - enclosedSize / 2) (SymbolMid - enclosedSize / 2) (SymbolMid + enclosedSize / 2) arrowSw

View file

@ -224,10 +224,10 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1
union
difference
HBar.m 0 Geom.Width Geom.MidY GeometryStroke
WithTransform [ApparentTranslate 0 0.01] : WithTransform shiftUp : refer-glyph : MangleName 'blackMediumEqualDiamond'
with-transform [ApparentTranslate 0 0.01] : with-transform shiftUp : refer-glyph : MangleName 'blackMediumEqualDiamond'
intersection
MaskBelow (Geom.MidY + GeometryStroke / 2)
WithTransform shiftUp : refer-glyph : MangleName 'whiteMediumEqualDiamond'
with-transform shiftUp : refer-glyph : MangleName 'whiteMediumEqualDiamond'
create-glyph [MangleName 'uni238A'] [MangleUnicode 0x238A] : glyph-proc
set-width Geom.Width

View file

@ -213,7 +213,7 @@ glyph-block Symbol-Math-APL : begin
create-glyph 0x235F : composite-proc [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'opAsterisk.low']] [refer-glyph 'mathO']
derive-glyphs 'apl/barSemicolon' 0x236E 'semicolon' : function [src gr] : Overlay
WithTransform CenterSmallPunctuations [refer-glyph src]
with-transform CenterSmallPunctuations [refer-glyph src]
refer-glyph 'underscore.high'
# Complex Composition

View file

@ -83,9 +83,9 @@ glyph-block Symbol-Math-Integrals : begin
WithDotVariants 'shiftedRightHalfRingDotIntegrate' 0x2A14 : function [DrawAt kdr ov] : union
difference
LongSShape BgOpTop BgOpBot Hook IntHookY OperatorStroke
WithTransform [Translate RingIntSideShift 0] : IntegrateRingMask 1
with-transform [Translate RingIntSideShift 0] : IntegrateRingMask 1
intersection
WithTransform [Translate RingIntSideShift 0] : IntegrateRing 1 RingIntFine
with-transform [Translate RingIntSideShift 0] : IntegrateRing 1 RingIntFine
MaskRight (Middle - OperatorStroke / 2 * HVContrast)
DrawAt (Middle + RingIntSideShift) SymbolMid (RingIntDotSize * kdr - ov)
@ -165,16 +165,16 @@ glyph-block Symbol-Math-Integrals : begin
create-glyph 'ringDoubleIntegrate' 0x222F : union
difference
union
WithTransform [Translate (-Width / 7) 0]
with-transform [Translate (-Width / 7) 0]
LongSShape BgOpTop BgOpBot (Hook * 0.75) IntHookY [AdviceStroke 4]
WithTransform [Translate (+Width / 7) 0]
with-transform [Translate (+Width / 7) 0]
LongSShape BgOpTop BgOpBot (Hook * 0.75) IntHookY [AdviceStroke 4]
IntegrateRingMask (1 / 2)
intersection
union
WithTransform [Translate (-Width / 7) 0]
with-transform [Translate (-Width / 7) 0]
LongSShape BgOpTop BgOpBot (Hook * 0.75) IntHookY [AdviceStroke 5]
WithTransform [Translate (+Width / 7) 0]
with-transform [Translate (+Width / 7) 0]
LongSShape BgOpTop BgOpBot (Hook * 0.75) IntHookY [AdviceStroke 5]
IntegrateRingMask (1 / 2)
IntegrateRing (1 / 2) [AdviceStroke 5]
@ -182,20 +182,20 @@ glyph-block Symbol-Math-Integrals : begin
create-glyph 'ringTripleIntegrate' 0x2230 : union
difference
union
WithTransform [Translate (-Width * 0.225) 0]
with-transform [Translate (-Width * 0.225) 0]
LongSShape BgOpTop BgOpBot (Hook * 0.625) (Hook * 0.625) [AdviceStroke 5]
WithTransform [Translate (+0) 0]
with-transform [Translate (+0) 0]
LongSShape BgOpTop BgOpBot (Hook * 0.625) (Hook * 0.625) [AdviceStroke 5]
WithTransform [Translate (+Width * 0.225) 0]
with-transform [Translate (+Width * 0.225) 0]
LongSShape BgOpTop BgOpBot (Hook * 0.625) (Hook * 0.625) [AdviceStroke 5]
IntegrateRingMask (1 / 4)
intersection
union
WithTransform [Translate (-Width * 0.225) 0]
with-transform [Translate (-Width * 0.225) 0]
LongSShape BgOpTop BgOpBot (Hook * 0.625) (Hook * 0.625) [AdviceStroke 6]
WithTransform [Translate (+0) 0]
with-transform [Translate (+0) 0]
LongSShape BgOpTop BgOpBot (Hook * 0.625) (Hook * 0.625) [AdviceStroke 6]
WithTransform [Translate (+Width * 0.225) 0]
with-transform [Translate (+Width * 0.225) 0]
LongSShape BgOpTop BgOpBot (Hook * 0.625) (Hook * 0.625) [AdviceStroke 6]
IntegrateRingMask (1 / 4)
IntegrateRing (1 / 4) [AdviceStroke 6]

View file

@ -33,7 +33,7 @@ glyph-block NotGlyphFn : begin
flat l b
curl r t
return : glyph-proc
include : WithTransform [Translate sh 0] [refer-glyph slashBarName]
include : with-transform [Translate sh 0] [refer-glyph slashBarName]
define [notGlyph.right2] : with-params [newid unicode oldid top bot prop shift] : begin
notGlyph newid unicode oldid top bot prop (-NotGlyphSw)

View file

@ -32,7 +32,7 @@ glyph-block Symbol-Pictograph-I-Ching : begin
local offsetY : (2 / 3) * (OperBot - PictTop) / n
local startY : SymbolMid - offsetY * (n - 1) / 2
foreach [bit : range 0 n] : begin
include : WithTransform [ApparentTranslate 0 (startY + offsetY * bit)]
include : with-transform [ApparentTranslate 0 (startY + offsetY * bit)]
refer-glyph : if [not : maskBit offset bit] 'iChing/barYang' 'iChing/barYin'
define [hexagramPatterns su order] : foreach [offset: range 0 64] : begin
@ -40,7 +40,7 @@ glyph-block Symbol-Pictograph-I-Ching : begin
local offsetY : (PictBot - PictTop) / 6
local startY : SymbolMid - offsetY * (6 - 1) / 2
foreach [bit : range 0 6] : begin
include : WithTransform [ApparentTranslate 0 (startY + offsetY * bit)]
include : with-transform [ApparentTranslate 0 (startY + offsetY * bit)]
refer-glyph : if [not : maskBit order.(offset) bit] 'iChing/barYang' 'iChing/barYin'
define [stringPattern pat] : glyph-proc
@ -48,7 +48,7 @@ glyph-block Symbol-Pictograph-I-Ching : begin
local offsetY : [if (n >= 4) 1 (2 / 3)] * (OperBot - PictTop) / n
local startY : SymbolMid - offsetY * (n - 1) / 2
foreach [bit : range 0 n] : begin
include : WithTransform [ApparentTranslate 0 (startY + offsetY * bit)]
include : with-transform [ApparentTranslate 0 (startY + offsetY * bit)]
refer-glyph : match pat.(bit)
[Just '0'] 'iChing/barYang'
[Just '1'] 'iChing/barYin'

View file

@ -112,7 +112,7 @@ glyph-block Symbol-Punctuation-Ampersand : begin
Rect (CAP * 2) (0.5 * CAP) Middle Width
intersection
Rect (CAP * 2) ArchDepthA 0 (RightSB - [HSwToV fineAmp])
WithTransform [Translate (-O) 0] : spiro-outline
with-transform [Translate (-O) 0] : spiro-outline
g4.left.start (xUpperLoopTop - CorrectionOMidX * SwAmpersand) (CAP - O)
archv
g4 xUpperLoopLeft yUpperLoopLeft

View file

@ -53,8 +53,8 @@ glyph-block Symbol-Punctuation-Asterisk : begin
ApparentTranslate 0 (yLow - SymbolMid)
if dual : create-glyph (dual + '.' + sMid) : composite-proc
WithTransform [ApparentTranslate 0 (yHigh_DT - SymbolMid)] : refer-glyph (name + '.' + sMid)
WithTransform [ApparentTranslate 0 (yLow_DT - SymbolMid)] : refer-glyph (name + '.' + sMid)
with-transform [ApparentTranslate 0 (yHigh_DT - SymbolMid)] : refer-glyph (name + '.' + sMid)
with-transform [ApparentTranslate 0 (yLow_DT - SymbolMid)] : refer-glyph (name + '.' + sMid)
if triple : for-width-kinds WideWidth1
local scale : Math.sqrt (MosaicWidthScalar / 2)

View file

@ -97,7 +97,7 @@ glyph-block Symbol-Punctuation-Brackets : begin
local df : DivFrame 1 3
local subDf : df.slice 3 2
include : shape subDf
include : WithTransform [ApparentTranslate (df.width - subDf.width) 0] : shape subDf
include : with-transform [ApparentTranslate (df.width - subDf.width) 0] : shape subDf
turned "parenRight.\(suffix)" null "parenLeft.\(suffix)" Middle SymbolMid
turned "doubleParenRight.\(suffix)" null "doubleParenLeft.\(suffix)" Middle SymbolMid

View file

@ -32,9 +32,9 @@ glyph-block Symbol-Punctuation-ParagraphAndSection : begin
corner RightSB (top - Hook - 0.1)
define [halfShape] : intersection [s dispiro 0] : union
MaskAbove SymbolMid
WithTransform [FlipAround Middle SymbolMid] : s spiro-outline 0.1
with-transform [FlipAround Middle SymbolMid] : s spiro-outline 0.1
include : union
halfShape
WithTransform [FlipAround Middle SymbolMid] : halfShape
with-transform [FlipAround Middle SymbolMid] : halfShape

View file

@ -94,7 +94,7 @@ glyph-block Symbol-Punctuation-Small : begin
create-glyph 'comma.square' : glyph-proc
local df : DivFrame para.diversityF
set-width df.width
include : WithTransform [Translate df.middle 0] : glyph-proc
include : with-transform [Translate df.middle 0] : glyph-proc
local r : PeriodRadius * DesignParameters.squareDotScalar + 0
local sw : Math.min [AdviceStroke 4] (PeriodSize * DesignParameters.squareDotScalar * 0.4)
local swEnd : Math.min Stroke (PeriodSize * DesignParameters.squareDotScalar * 0.5)
@ -146,7 +146,7 @@ glyph-block Symbol-Punctuation-Small : begin
create-glyph 'revComma.square' : glyph-proc
local df : DivFrame para.diversityF
set-width df.width
include : WithTransform [Translate df.middle 0] : glyph-proc
include : with-transform [Translate df.middle 0] : glyph-proc
local r : PeriodRadius * DesignParameters.squareDotScalar + 0
local sw : Math.min [AdviceStroke 4] (PeriodSize * DesignParameters.squareDotScalar * 0.4)
local swEnd : Math.min Stroke (PeriodSize * DesignParameters.squareDotScalar * 0.5)
@ -215,33 +215,33 @@ glyph-block Symbol-Punctuation-Small : begin
local multiDotShiftDense : [mix Width RightSB 0.5] - (DotRadius * kDotRadius) - Middle
create-glyph "threeDotPunct.\(suffix)" : glyph-proc
include : WithTransform [ApparentTranslate (+multiDotShift) 0] : composite-proc
include : with-transform [ApparentTranslate (+multiDotShift) 0] : composite-proc
refer-glyph "smallPeriod.\(suffix)"
refer-glyph "xhSmallPeriod.\(suffix)"
include : WithTransform [ApparentTranslate (-multiDotShift) 0] : composite-proc
include : with-transform [ApparentTranslate (-multiDotShift) 0] : composite-proc
refer-glyph "halfXhSmallPeriod.\(suffix)"
create-glyph "fourDotPunct.\(suffix)" : glyph-proc
include [refer-glyph "smallPeriod.\(suffix)"]
include [refer-glyph "xhSmallPeriod.\(suffix)"]
include : WithTransform [ApparentTranslate (+multiDotShiftDense) 0] : composite-proc
include : with-transform [ApparentTranslate (+multiDotShiftDense) 0] : composite-proc
refer-glyph "halfXhSmallPeriod.\(suffix)"
include : WithTransform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc
include : with-transform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc
refer-glyph "halfXhSmallPeriod.\(suffix)"
create-glyph "capFourDotPunct.\(suffix)" : glyph-proc
include [refer-glyph "smallPeriod.\(suffix)"]
include [refer-glyph "capSmallPeriod.\(suffix)"]
include : WithTransform [ApparentTranslate (+multiDotShiftDense) 0] : composite-proc
include : with-transform [ApparentTranslate (+multiDotShiftDense) 0] : composite-proc
refer-glyph "halfCapSmallPeriod.\(suffix)"
include : WithTransform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc
include : with-transform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc
refer-glyph "halfCapSmallPeriod.\(suffix)"
create-glyph "fiveDotPunct.\(suffix)" : glyph-proc
include : WithTransform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc
include : with-transform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc
refer-glyph "smallPeriod.\(suffix)"
refer-glyph "xhSmallPeriod.\(suffix)"
include : WithTransform [ApparentTranslate (+multiDotShiftDense) 0] : composite-proc
include : with-transform [ApparentTranslate (+multiDotShiftDense) 0] : composite-proc
refer-glyph "smallPeriod.\(suffix)"
refer-glyph "xhSmallPeriod.\(suffix)"
include : refer-glyph "halfXhSmallPeriod.\(suffix)"

View file

@ -172,9 +172,9 @@ define-macro glyph-block-import : syntax-rules
DotStrokeAt CircleRing CircleRingAt CircleDotAt RoundStrokeTerminalAt OShapeT OShape
OShapeOutline OShapeFlatTB HSerif VSerif NeedSlab NeedNotItalic HBar HOverlayBar VBar
FlatSlashShape hookstart hookend Ungizmo Regizmo FlipAround ScaleAround Realign
ForceUpright DiagCor NameUni PointingTo WithTransform clear-anchors AsRadical
ExtLineCenter ExtLineLhs ExtLineRhs DiagCorDs HCrossBar VERY-FAR MaskAbove MaskBelow
MaskLeft MaskRight HalfRectTriangle MaskAboveLine MaskBelowLine MaskLeftLine
ForceUpright DiagCor NameUni PointingTo with-transform clear-geometry clear-anchors
AsRadical ExtLineCenter ExtLineLhs ExtLineRhs DiagCorDs HCrossBar VERY-FAR MaskAbove
MaskBelow MaskLeft MaskRight HalfRectTriangle MaskAboveLine MaskBelowLine MaskLeftLine
MaskRightLine DotVariants WithDotVariants]
define vartiableFilter : if externEnv.$glyphBlockVariableUsage$