* 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:
parent
85494ed45a
commit
e0ab2ce54d
39 changed files with 183 additions and 127 deletions
|
@ -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).
|
||||
|
|
|
@ -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";
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
|
|
@ -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 }
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)]
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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'
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 }
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)"
|
||||
|
|
|
@ -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$
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue