From 4fb6717e1548a47287d346ad8a856e14cbcc1b05 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 11 Jun 2016 21:47:24 +0800 Subject: [PATCH] separate anchor mark set names --- buildglyphs.ptl | 84 +++---- glyphs/autobuilds.ptl | 4 +- glyphs/letters-unified-basic.ptl | 358 ++++++++++++++-------------- glyphs/letters-unified-extended.ptl | 236 +++++++++--------- glyphs/numbers.ptl | 30 +-- glyphs/symbol-geometric.ptl | 4 +- glyphs/symbol-letter.ptl | 2 +- glyphs/symbol-math.ptl | 2 +- glyphs/symbol-punctuation.ptl | 4 +- makesupport.mk | 3 +- support/utils.js | 35 +++ support/utils.ptl | 19 ++ 12 files changed, 410 insertions(+), 371 deletions(-) create mode 100644 support/utils.js create mode 100644 support/utils.ptl diff --git a/buildglyphs.ptl b/buildglyphs.ptl index e9cc7fc73..3101e2762 100644 --- a/buildglyphs.ptl +++ b/buildglyphs.ptl @@ -8,6 +8,8 @@ import './support/anchor' as Anchor import './support/monotonic-interpolate' as smoothreg import './support/fairify' as fairify +import [mix linreg clamp fallback TempFont includeGlyphPart compsiteMarkSet] from './support/utils' + extern global define [suggestGC] : begin if (global && global.gc) : global.gc @@ -138,10 +140,6 @@ define-macro assign-unicode : syntax-rules set unicodeGlyphs.(currentGlyph.unicode.((currentGlyph.unicode.length - 1))) currentGlyph ] env} -define [includeGlyphPart cg gs nm] : begin - if [not gs.(nm)] : throw : new Error "Glyph \(nm) is not defined, which is used for \(cg.name)." - return : cg.include.apply cg [{gs.(nm)}.concat [{}.slice.call arguments 3]] - ###### Canvas-based mechanism define [$donothing$] nothing define-macro sketch : syntax-rules @@ -171,22 +169,6 @@ define-macro branch : syntax-rules define-macro save : syntax-rules `[save @::args] : dirty `[$save$.call currentGlyph @::args] -### COMMON FUNCTIONS -define [mix a b p] : a + (b - a) * p -define [linreg x0 y0 x1 y1 x] : y0 + (x - x0) * (y1 - y0) / (x1 - x0) -define [clamp l h x] : if (x < l) l : if (x > h) h x -define [fallback] : begin - for [local j 0] (j < arguments.length) [inc j] : if (arguments.(j) !== nothing) : return arguments.(j) - return nothing - -define [TempFont] {.glyf {} .head {.} .hhea {.} .OS_2 {.panose {}} .name {.} .post {.}} - -define [anchorDeriv] : begin - local h {.} - foreach a [items-of arguments] : foreach k [items-of [Object.keys a.anchors]] : begin - set h.(k) : new Anchor a.anchors.(k).x a.anchors.(k).y a.anchors.(k).type a.anchors.(k).mbx a.anchors.(k).mby - return {.anchors h} - # contour tagging define [tagged tag component] : begin set component.tag tag @@ -345,37 +327,39 @@ export as build : define [buildFont para recursive recursiveCodes] : begin define AS_BASE 'AS-BASE' define ALSO_METRICS 'ALSO-METRICS' - define [tm anchor] : return : new Anchor - * (anchor.x * globalTransform.xx + anchor.y * TANSLANT + globalTransform.x) - * (anchor.x * globalTransform.xy + anchor.y * globalTransform.yy + globalTransform.y) - * anchor.type + define markset : do + define [ta anchor] : return : new Anchor + * (anchor.x * globalTransform.xx + anchor.y * TANSLANT + globalTransform.x) + * (anchor.x * globalTransform.xy + anchor.y * globalTransform.yy + globalTransform.y) + * anchor.type - define markAboveLower {.anchors {.above [tm : new Anchor MIDDLE XH BASE]}} - define markAboveCap {.anchors {.above [tm : new Anchor MIDDLE CAP BASE]}} - define markBelowLower {.anchors {.below [tm : new Anchor MIDDLE DESCENDER BASE]}} - define markBelowZero {.anchors {.below [tm : new Anchor MIDDLE 0 BASE]}} - define markToprightLower {.anchors {.topright [tm : new Anchor RIGHTSB XH BASE]}} - define markToprightCap {.anchors {.topright [tm : new Anchor RIGHTSB CAP BASE]}} - define markBottomrightLower {.anchors {.bottomright [tm : new Anchor RIGHTSB DESCENDER BASE]}} - define markBottomrightZero {.anchors {.bottomright [tm : new Anchor RIGHTSB 0 BASE]}} + define markAboveLower {.anchors {.above [ta : new Anchor MIDDLE XH BASE]}} + define markAboveCap {.anchors {.above [ta : new Anchor MIDDLE CAP BASE]}} + define markBelowLower {.anchors {.below [ta : new Anchor MIDDLE DESCENDER BASE]}} + define markBelowZero {.anchors {.below [ta : new Anchor MIDDLE 0 BASE]}} + define markToprightLower {.anchors {.topright [ta : new Anchor RIGHTSB XH BASE]}} + define markToprightCap {.anchors {.topright [ta : new Anchor RIGHTSB CAP BASE]}} + define markBottomrightLower {.anchors {.bottomright [ta : new Anchor RIGHTSB DESCENDER BASE]}} + define markBottomrightZero {.anchors {.bottomright [ta : new Anchor RIGHTSB 0 BASE]}} - define [StdAnchorGroup] : begin - local a : anchorDeriv.apply null arguments - set a.anchors.overlay : new Anchor - * [mix a.anchors.below.x a.anchors.above.x OVERLAYPOS] - * [mix a.anchors.below.y a.anchors.above.y OVERLAYPOS] - * BASE - set a.anchors.slash : new Anchor - * [mix a.anchors.below.x a.anchors.above.x 0.5] - * [mix a.anchors.below.y a.anchors.above.y 0.5] - * BASE - return a - - define capitalMarks : StdAnchorGroup markAboveCap markBelowZero markToprightCap markBottomrightZero - define bMarks : StdAnchorGroup markAboveCap markBelowZero markToprightCap markBottomrightZero - define eMarks : StdAnchorGroup markAboveLower markBelowZero markToprightLower markBottomrightZero - define pMarks : StdAnchorGroup markAboveLower markBelowLower markToprightLower markBottomrightLower - define ifMarks : StdAnchorGroup markAboveCap markBelowLower markToprightCap markBottomrightLower + define [buildStandardMarkSet] : begin + local a : compsiteMarkSet.apply null arguments + set a.anchors.overlay : new Anchor + * [mix a.anchors.below.x a.anchors.above.x OVERLAYPOS] + * [mix a.anchors.below.y a.anchors.above.y OVERLAYPOS] + * BASE + set a.anchors.slash : new Anchor + * [mix a.anchors.below.x a.anchors.above.x 0.5] + * [mix a.anchors.below.y a.anchors.above.y 0.5] + * BASE + return a + + object + capital : buildStandardMarkSet markAboveCap markBelowZero markToprightCap markBottomrightZero + b : buildStandardMarkSet markAboveCap markBelowZero markToprightCap markBottomrightZero + e : buildStandardMarkSet markAboveLower markBelowZero markToprightLower markBottomrightZero + p : buildStandardMarkSet markAboveLower markBelowLower markToprightLower markBottomrightLower + if : buildStandardMarkSet markAboveCap markBelowLower markToprightCap markBottomrightLower ### Glyph slots and dependency profile generation (used for recursive subfonts) @@ -562,7 +546,7 @@ export as build : define [buildFont para recursive recursiveCodes] : begin # Space sketch # space set-width WIDTH - include eMarks + include markset.e save 'space' ' ' ### HERE WE GO diff --git a/glyphs/autobuilds.ptl b/glyphs/autobuilds.ptl index 7f31fa981..cee5a048e 100644 --- a/glyphs/autobuilds.ptl +++ b/glyphs/autobuilds.ptl @@ -793,8 +793,8 @@ symbol-block 'Unicode Ligatures' list 0x2A9 'f' 'eng' list 0x2AA 'l' 's' list 0x2AB 'l' 'z' - list 0x478 'O' 'y' ifMarks - list 0x479 'o' 'y' pMarks + list 0x478 'O' 'y' markset.if + list 0x479 'o' 'y' markset.p list 0x20A7 'P' 's' list 0x20A8 'R' 's' diff --git a/glyphs/letters-unified-basic.ptl b/glyphs/letters-unified-basic.ptl index 51789a5b6..67067d89d 100644 --- a/glyphs/letters-unified-basic.ptl +++ b/glyphs/letters-unified-basic.ptl @@ -5,7 +5,7 @@ ### I symbol-block 'I' sketch # I.straight - include capitalMarks + include markset.capital include : VBar MIDDLE 0 CAP set currentGlyph.cmpPriority (-2) save 'I.straight' @@ -16,7 +16,7 @@ symbol-block 'I' include : CenterTopSerif MIDDLE top (LONGJUT * 0.8) sketch # I.serifed - include capitalMarks + include markset.capital include : ISerifShape CAP save 'I.serifed' @@ -27,7 +27,7 @@ symbol-block 'I' alias 'Palochka' 0x4C0 'I' sketch # smcpI - include eMarks + include markset.e include : ISerifShape XH save 'smcpI' 0x26A @@ -47,37 +47,37 @@ define IotaShape : symbol-block 'i' curl (middle + LONGJUT * 1.05) HALFSTROKE [heading RIGHTWARD] sketch # iota - include eMarks + include markset.e include : IotaShape XH save 'iota' 0x3B9 save 'latiniota' 0x269 sketch # latinIota - include capitalMarks + include markset.capital include : IotaShape CAP save 'latinIota' 0x196 sketch # dotlessi.straight - include eMarks + include markset.e include : VBar (MIDDLE) 0 XH set currentGlyph.cmpPriority (-2) save 'dotlessi.straight' sketch # dotlessi.hooky - include eMarks + include markset.e include : VBar (MIDDLE + IBALANCE) 0 XH include : LeftwardTopSerif (MIDDLE + IBALANCE) XH LONGJUT save 'dotlessi.hooky' sketch # dotlessi.zshaped - include eMarks + include markset.e include : VBar (MIDDLE) 0 XH include : LeftwardTopSerif (MIDDLE) XH LONGJUT include : RightwardBottomSerif MIDDLE 0 LONGJUT save 'dotlessi.zshaped' sketch # dotlessi.serifed - include eMarks + include markset.e local balance IBALANCE include : VBar (MIDDLE + balance) 0 XH include : LeftwardTopSerif (MIDDLE + balance) XH (LONGJUT - balance) @@ -100,11 +100,11 @@ define IotaShape : symbol-block 'i' include : dispiro flat (left - LONGJUT + HALFSTROKE * HVCONTRAST) XH [widths 0 STROKE] curl left XH - include eMarks + include markset.e set-anchor 'above' BASE (left + HALFSTROKE * HVCONTRAST + [linreg 18 0.25 126 0 STROKE] * TANSLANT * WIDTH) XH set-anchor 'below' BASE middle 0 : else : begin - include eMarks + include markset.e include : IotaShape XH save 'dotlessi.italic' @@ -134,14 +134,14 @@ define IotaShape : symbol-block 'i' .cv06 'i.cv06' } alias 'cyrUkrainiani' 0x456 'i' - turned nothing 0x1D09 'i' MIDDLE (XH / 2) pMarks + turned nothing 0x1D09 'i' MIDDLE (XH / 2) markset.p * IotaShape ### J symbol-block 'J' sketch # J.straight set-width WIDTH - include capitalMarks + include markset.capital set-anchor 'above' BASE (RIGHTSB - STROKE * HVCONTRAST * 0.75 - JBALANCE2) CAP set-anchor 'overlay' BASE (RIGHTSB - STROKE * HVCONTRAST * 0.75 - JBALANCE2) (CAP * OVERLAYPOS) @@ -162,7 +162,7 @@ symbol-block 'J' sketch # J.shorthook set-width WIDTH - include capitalMarks + include markset.capital local slope (STROKE * 0.00092) local expand 0.35 @@ -193,7 +193,7 @@ symbol-block 'J' ### dotless j and j symbol-block 'j' sketch # dotlessj.straight - include pMarks + include markset.p local center : MIDDLE + JBALANCE + HALFSTROKE * HVCONTRAST set-anchor 'above' BASE (center - HVCONTRAST * HALFSTROKE) XH set-anchor 'overlay' BASE (center - HVCONTRAST * HALFSTROKE) (XH / 2) @@ -209,7 +209,7 @@ symbol-block 'j' save 'dotlessj.straight' sketch # dotlessj.serifed - include pMarks + include markset.p include glyphs.'dotlessj.straight' AS_BASE include : LeftwardTopSerif (MIDDLE + JBALANCE) XH LONGJUT @@ -229,7 +229,7 @@ symbol-block 'j' save 'cyrje' 0x458 sketch # jcurlytail - include pMarks + include markset.p set-anchor 'above' BASE (MIDDLE + JBALANCE) XH local fine : adviceBlackness 3.5 local rinner : LONGJUT / 2 - fine / 2 @@ -258,7 +258,7 @@ symbol-block 'L' sketch # L set-width WIDTH - include capitalMarks + include markset.capital include : LShape CAP save 'L' 'L' @@ -294,26 +294,26 @@ symbol-block 'L' save 'Lbar' 0x23D sketch # smcpL - include eMarks + include markset.e include : LShape XH save 'smcpL' 0x29F ### l symbol-block 'l' create-glyph 'l.straight' : glyph-construction - include bMarks + include markset.b set currentGlyph.cmpPriority (-2) include : VBar MIDDLE 0 CAP sketch # l.hooky - include bMarks + include markset.b include : VBar (MIDDLE + LBALANCE) 0 (CAP - STROKE) include : LeftwardTopSerif (MIDDLE + LBALANCE) CAP LONGJUT save 'l.hooky' sketch # l.zshaped - include bMarks + include markset.b include : VBar MIDDLE 0 (CAP - STROKE) include : LeftwardTopSerif MIDDLE CAP LONGJUT include : RightwardBottomSerif MIDDLE 0 LONGJUT @@ -321,7 +321,7 @@ symbol-block 'l' save 'l.zshaped' sketch # l.serifed - include bMarks + include markset.b include : VBar (MIDDLE + LBALANCE) 0 CAP include : LeftwardTopSerif (MIDDLE + LBALANCE) CAP (LONGJUT - LBALANCE) include : CenterBottomSerif MIDDLE 0 LONGJUT @@ -330,7 +330,7 @@ symbol-block 'l' save 'l.serifed' sketch # l.italic - include bMarks + include markset.b if para.isItalic : then : begin local left : mix SB RIGHTSB 0.3 @@ -358,7 +358,7 @@ symbol-block 'l' .'cv10' 'l.zshaped' } alias 'palochka' 0x4CF 'l' - turned 'turnl' 0xA781 'l' MIDDLE (XH / 2) pMarks + turned 'turnl' 0xA781 'l' MIDDLE (XH / 2) markset.p sketch # ldot include glyphs.l AS_BASE @@ -371,12 +371,12 @@ symbol-block 'l' include glyphs.rtailBR apply-transform : Translate (MIDDLE + LBALANCE + HALFSTROKE * HVCONTRAST) 0 include glyphs.'l.hooky' - include ifMarks + include markset.if save 'lrtail' 0x26D sketch # lcurlytail - include bMarks + include markset.b local fine : adviceBlackness 3.5 local rinner : LONGJUT / 2 - fine / 2 local m1 : MIDDLE + HALFSTROKE * HVCONTRAST @@ -426,7 +426,7 @@ symbol-block 'l' save 'lbeltrtail' 0xA78E sketch # looprevesh - include ifMarks + include markset.if local fine : adviceBlackness 4 include : dispiro widths.center fine @@ -473,13 +473,13 @@ define VShape : symbol-block 'V, v and nu' sketch # V set-width WIDTH - include capitalMarks + include markset.capital include : VShape CAP save 'V' 'V' sketch # v - include eMarks + include markset.e include : VShape XH save 'v' 'v' @@ -496,20 +496,20 @@ define VShape : symbol-block 'V, v and nu' g4 (MIDDLE + cornerdist) 0 [widths.rhs VShape.fine] sketch # vhooktop - include eMarks + include markset.e include : VHooktopShape XH save 'vhooktop' 0x2C71 save 'cyrizhitsa' 0x475 sketch # cyrIzhitsa - include capitalMarks + include markset.capital include : VHooktopShape CAP save 'cyrIzhitsa' 0x474 turned 'turnv' 0x28C 'v' MIDDLE (XH / 2) sketch # nu - include eMarks + include markset.e local xmid : MIDDLE + HALFSTROKE * 0.75 @@ -532,7 +532,7 @@ define VShape : symbol-block 'V, v and nu' symbol-block 'A' sketch # A set-width WIDTH - include capitalMarks + include markset.capital set-anchor 'trailing' BASE (RIGHTSB - markHalfStroke) 0 include : VShape CAP @@ -549,7 +549,7 @@ symbol-block 'A' symbol-block 'a' sketch # a.doublestorey set-width WIDTH - include eMarks + include markset.e set-anchor 'trailing' BASE (RIGHTSB - markHalfStroke) 0 local bartop (XH * OVERLAYPOS * 1.02 + HALFSTROKE) local lowslope : shoulderMidSlope SHOULDERFINE nothing (-1) @@ -578,7 +578,7 @@ symbol-block 'a' sketch # a.singlestorey set-width WIDTH - include eMarks + include markset.e set-anchor 'trailing' BASE (RIGHTSB - markHalfStroke) 0 include : OBarRightShape if SLAB @@ -601,7 +601,7 @@ symbol-block 'a' alias 'cyra' 0x430 'a' sketch # turnlargescripta - include capitalMarks + include markset.capital include : OBarRightShape CAP start-from RIGHTSB 0 line-to (RIGHTSB - STROKE * HVCONTRAST) 0 @@ -613,7 +613,7 @@ symbol-block 'a' save 'turnlargescripta' 0x2C70 sketch # scripta - include eMarks + include markset.e include : OBarRightShape start-from RIGHTSB 0 line-to (RIGHTSB - STROKE * HVCONTRAST) 0 @@ -674,14 +674,14 @@ symbol-block 'W' sketch # W set-width WIDTH - include capitalMarks + include markset.capital include : WShape CAP save 'W' 'W' save 'cyrWe' 0x51C sketch # w set-width WIDTH - include eMarks + include markset.e include : WShape XH save 'w' 'w' save 'cyrwe' 0x51D @@ -704,13 +704,13 @@ symbol-block 'W' include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) (top - HOOK) (HOOKX * 0.65) (-HOOK + HALFSTROKE) sketch # Whooktop - include capitalMarks + include markset.capital include : WHooktopShape CAP save 'Whooktop' 0x2C72 sketch # whooktop - include eMarks + include markset.e include : WHooktopShape XH @@ -728,7 +728,7 @@ symbol-block 'W' symbol-block 'X' sketch # X set-width WIDTH - include capitalMarks + include markset.capital include : xStrand SB 0 RIGHTSB CAP 0.1 0.4 0.28 include : xStrand SB CAP RIGHTSB 0 0.1 0.4 0.28 @@ -738,7 +738,7 @@ symbol-block 'X' save 'cyrHa' 0x425 sketch # x - include eMarks + include markset.e local TURN (XH * 0.1) include : xStrand SB 0 RIGHTSB XH 0.02 0.4 0.14 @@ -749,7 +749,7 @@ symbol-block 'X' sketch # chi set-width WIDTH - include pMarks + include markset.p include : xStrand SB DESCENDER RIGHTSB XH 0.05 0.4 0.11 include : xStrand SB XH RIGHTSB DESCENDER 0.05 0.4 0.11 @@ -774,7 +774,7 @@ symbol-block 'Y' sketch # Y set-width WIDTH - include capitalMarks + include markset.capital include : YShape CAP save 'Y' 'Y' save 'Upsilon' 0x3A5 @@ -796,13 +796,13 @@ symbol-block 'Y' save 'Yhooktop' 0x1B3 sketch # cyrue - include pMarks + include markset.p include : YShape XH DESCENDER save 'cyrue' 0x4AF sketch # smcpY - include eMarks + include markset.e include : YShape XH save 'smcpY' 0x28F @@ -860,7 +860,7 @@ symbol-block 'y' include : AIVSerifs top sketch # y.upright - include pMarks + include markset.p include : SmallYShape XH DESCENDER save 'y.upright' @@ -868,7 +868,7 @@ symbol-block 'y' sketch # y.italic if SLAB : then - include pMarks + include markset.p include : nShoulder left -- (SB + STROKE * HVCONTRAST) right -- RIGHTSB @@ -889,7 +889,7 @@ symbol-block 'y' italic-variant 'y' 'y' alias 'cyru' 0x443 'y' - turned nothing 0x28E 'y.upright' MIDDLE (XH / 2) bMarks + turned nothing 0x28E 'y.upright' MIDDLE (XH / 2) markset.b sketch # yhooktop include glyphs.'y.upright' AS_BASE @@ -905,13 +905,13 @@ symbol-block 'y' save 'yhooktop' 0x1B4 sketch # cyrU - include capitalMarks + include markset.capital include : SmallYShape CAP 0 save 'cyrU' 0x423 sketch # lambda - include bMarks + include markset.b local top CAP local bottom 0 local ds : (top - bottom) * pds @@ -968,7 +968,7 @@ symbol-block 'K' sketch # K set-width WIDTH - include capitalMarks + include markset.capital include : VBarLeft SB 0 CAP include : KShape CAP if SLAB : begin @@ -982,7 +982,7 @@ symbol-block 'K' sketch # k set-width WIDTH - include bMarks + include markset.b include : VBarLeft SB 0 CAP include : KShape XH if SLAB : begin @@ -995,7 +995,7 @@ symbol-block 'K' sketch # kappa set-width WIDTH - include eMarks + include markset.e include : VBarLeft SB 0 XH include : KShape XH if SLAB : begin @@ -1005,7 +1005,7 @@ symbol-block 'K' sketch # cyrka set-width WIDTH - include eMarks + include markset.e include : VBarLeft SB 0 XH include : KShape XH if SLAB : begin @@ -1017,7 +1017,7 @@ symbol-block 'K' sketch # Khooktop - include capitalMarks + include markset.capital include : KShape CAP include : VBarLeft SB 0 (CAP - HOOK - HALFSTROKE) include : VerticalHook (SB + HALFSTROKE * HVCONTRAST) (CAP - HOOK - HALFSTROKE) HOOKX (-HOOK) @@ -1025,14 +1025,14 @@ symbol-block 'K' save 'Khooktop' 0x198 sketch # khooktop - include bMarks + include markset.b include : KShape XH include : VBarLeft SB 0 (CAP - HOOK - HALFSTROKE) include : VerticalHook (SB + HALFSTROKE * HVCONTRAST) (CAP - HOOK - HALFSTROKE) HOOKX (-HOOK) save 'khooktop' 0x199 turned nothing 0xA7B0 'K' MIDDLE (CAP / 2) - turned nothing 0x29E 'k' MIDDLE (XH / 2) pMarks + turned nothing 0x29E 'k' MIDDLE (XH / 2) markset.p ### B @@ -1071,7 +1071,7 @@ symbol-block 'B' sketch # B set-width WIDTH - include capitalMarks + include markset.capital include : BShape CAP save 'B' 'B' save 'Beta' 0x392 @@ -1108,16 +1108,16 @@ symbol-block 'B' flat MIDDLE (midy + HALFSTROKE) curl mid (midy + HALFSTROKE) [heading LEFTWARD] sketch # cyrve.italic - include eMarks + include markset.e include : ItalicCyrveShape XH save 'cyrve.italic' save 'closeturnepsilon' 0x25E sketch # cyrve.BGR - include eMarks + include markset.e include : ItalicCyrveShape CAP save 'cyrve.BGR' sketch # cyrve.upright - include eMarks + include markset.e include : BShape XH save 'cyrve.upright' save 'smcpB' 0x299 @@ -1130,7 +1130,7 @@ symbol-block 'B' save 'Bbar' 0x243 sketch # beta - include ifMarks + include markset.if local ymiddle : [mix 0 CAP 0.55] - HALFSTROKE local fine : STROKE * CTHIN include : dispiro @@ -1159,7 +1159,7 @@ symbol-block 'B' symbol-block 'b' sketch # b set-width WIDTH - include bMarks + include markset.b include : OBarLeftShape include : VBarLeft SB 0 CAP @@ -1172,7 +1172,7 @@ symbol-block 'b' save 'b' 'b' sketch # bhooktop - include bMarks + include markset.b include : OBarLeftShape include : HooktopLeftBar if SLAB : begin @@ -1217,7 +1217,7 @@ symbol-block 'b' symbol-block 'D' sketch # D set-width WIDTH - include capitalMarks + include markset.capital local dsmooth : Math.min (CAP * 0.499) (SMOOTH * 1.35) local bsmooth : Math.min ((WIDTH - SB * 2) * 0.75) (SMOOTH * 1.1) @@ -1260,7 +1260,7 @@ symbol-block 'D' symbol-block 'd' sketch # d set-width WIDTH - include bMarks + include markset.b include : OBarRightShape include : VBarRight RIGHTSB 0 CAP @@ -1282,7 +1282,7 @@ symbol-block 'd' apply-transform : Translate (WIDTH + (RIGHTSB - SB) / 2 + markExtend / 2) 0 local f : Widen {'d'} 0.95 1 include f.d - include bMarks + include markset.b save 'dcaron' 0x10F @@ -1293,7 +1293,7 @@ symbol-block 'd' local m1 : Math.min RIGHTSB (WIDTH - rinner * 2 - fine - OX) local x2 : mix SB m1 0.5 local y2 : 0 - fine - rinner * 1.25 - include eMarks + include markset.e include : OBarRightShape XH m1 include : dispiro widths.rhs @@ -1306,7 +1306,7 @@ symbol-block 'd' save 'dcurlytail' 0x221 sketch # dhooktop - include bMarks + include markset.b include glyphs.'a.singlestorey' include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) XH HOOKX (-HOOK) @@ -1352,7 +1352,7 @@ define {PShape} : symbol-block 'P' sketch # P set-width WIDTH - include capitalMarks + include markset.capital include : PShape CAP save 'P' 'P' save 'Rho' 0x3A1 @@ -1370,7 +1370,7 @@ define {PShape} : symbol-block 'P' symbol-block 'p' sketch # p set-width WIDTH - include pMarks + include markset.p include : tagged 'bowl' : OBarLeftShape include : VBarLeft SB DESCENDER XH @@ -1383,7 +1383,7 @@ symbol-block 'p' save 'cyrer' 0x440 sketch # phooktop - include ifMarks + include markset.if include : OBarLeftShape include : HooktopLeftBar nothing DESCENDER if SLAB : begin @@ -1393,7 +1393,7 @@ symbol-block 'p' save 'phooktop' 0x1A5 ### rho sketch # rho - include pMarks + include markset.p include : OShape XH 0 (SB - OX + O) RIGHTSB include : VBar (SB + HALFSTROKE * HVCONTRAST + O) DESCENDER SMALLSMOOTHB save 'rho' 0x3C1 @@ -1414,7 +1414,7 @@ symbol-block 'R and CyrYa' sketch # R set-width WIDTH - include capitalMarks + include markset.capital include : RShape CAP set-anchor 'overlay' BASE (SB + STROKE * HVCONTRAST) (CAP * PBARPOS - HALFSTROKE) save 'R' 'R' @@ -1422,14 +1422,14 @@ symbol-block 'R and CyrYa' save 'Rrotunda' 0xA75A sketch # smcpR - include eMarks + include markset.e include : RShape XH save 'smcpR' 0x280 eject-contour 'strokeL' save 'rrotunda' 0xA75B sketch # Yr - include ifMarks + include markset.if local top : CAP * 0.85 local bp 0.45 include : PShape top 1 bp @@ -1474,13 +1474,13 @@ symbol-block 'R and CyrYa' include : LeftwardBottomSerif (SB + JUT / 8) 0 (SIDEJUT + JUT / 8) sketch # cyrYa - include capitalMarks + include markset.capital include : CyrYaShape CAP save 'cyrYa' 0x42F sketch # cyrya - include eMarks + include markset.e include : CyrYaShape XH save 'cyrya' 0x44F @@ -1494,7 +1494,7 @@ symbol-block 'r' sketch # r set-width WIDTH - include eMarks + include markset.e local fine : SHOULDERFINE * CTHIN local rhookx (RIGHTSB + RBALANCE2 - OXE) @@ -1518,19 +1518,19 @@ symbol-block 'r' include : rBottomSerif 0 include : rTopSerif XH save 'r' 'r' - turned nothing 0x279 'r' MIDDLE (XH / 2) [anchorDeriv eMarks {.anchors {.bottomright {.type BASE .x RIGHTSB - RBALANCE .y 0}}}] + turned nothing 0x279 'r' MIDDLE (XH / 2) [compsiteMarkSet markset.e {.anchors {.bottomright {.type BASE .x RIGHTSB - RBALANCE .y 0}}}] sketch # rlongleg - include pMarks + include markset.p include glyphs.r false eject-contour 'serifLB' include : VBarRight rbar DESCENDER 0 if SLAB : include : rBottomSerif DESCENDER save 'rlongleg' 0x27C - turned nothing 0x27A 'rlongleg' MIDDLE (XH / 2) [anchorDeriv bMarks {.anchors {.bottomright {.type BASE .x RIGHTSB - RBALANCE .y 0}}}] + turned nothing 0x27A 'rlongleg' MIDDLE (XH / 2) [compsiteMarkSet markset.b {.anchors {.bottomright {.type BASE .x RIGHTSB - RBALANCE .y 0}}}] sketch # rrtail - include pMarks + include markset.p include glyphs.r false eject-contour 'serifLB' include : create-glyph : glyph-construction @@ -1541,7 +1541,7 @@ symbol-block 'r' save 'rrtail' 0x27D sketch # turnrrtail - include pMarks + include markset.p include glyphs.r false eject-contour 'serifLT' include : FlipAround MIDDLE (XH / 2) @@ -1554,7 +1554,7 @@ symbol-block 'r' save 'turnrrtail' 0x27B sketch # rflap - include eMarks + include markset.e local rhookx (RIGHTSB + RBALANCE2 - OXE) local rmiddle : [mix rbar (rhookx - HALFSTROKE) 0.5] - CORRECTION_OMIDS @@ -1583,7 +1583,7 @@ define {CShape} : symbol-block 'C' sketch # C set-width WIDTH - include capitalMarks + include markset.capital include : CShape CAP 0 save 'C' 'C' save 'cyrEs' 0x421 @@ -1591,7 +1591,7 @@ define {CShape} : symbol-block 'C' sketch # c set-width WIDTH - include eMarks + include markset.e include : dispiro widths.lhs @@ -1610,7 +1610,7 @@ define {CShape} : symbol-block 'C' sketch # strenchedC set-width WIDTH - include pMarks + include markset.p include : CShape XH DESCENDER save 'strenchedC' 0x297 @@ -1642,7 +1642,7 @@ define {CShape} : symbol-block 'C' save 'cbar' 0xA793 sketch # ccurlytail - include eMarks + include markset.e local fine : adviceBlackness 3 local rinner : ((XH * 0.45) - fine * 1.5) / 2 local m1 : SB + O + STROKE * HVCONTRAST @@ -1660,7 +1660,7 @@ define {CShape} : symbol-block 'C' save 'ccurlytail' 0x255 sketch # cyrE - include capitalMarks + include markset.capital include glyphs.C include : FlipAround MIDDLE (CAP / 2) include : HBar [mix SB RIGHTSB 0.25] RIGHTSB (CAP / 2) @@ -1668,7 +1668,7 @@ define {CShape} : symbol-block 'C' save 'cyrE' 0x42D sketch # cyre - include eMarks + include markset.e include glyphs.c include : FlipAround MIDDLE (XH / 2) include : HBar [mix SB RIGHTSB 0.25] RIGHTSB (XH / 2) @@ -1676,21 +1676,21 @@ define {CShape} : symbol-block 'C' save 'cyre' 0x44D sketch # cyrYe - include capitalMarks + include markset.capital include glyphs.C include : HBar SB [mix RIGHTSB SB 0.25] (CAP / 2) save 'cyrYe' 0x404 sketch # cyrye - include eMarks + include markset.e include glyphs.c include : HBar SB [mix RIGHTSB SB 0.25] (XH / 2) save 'cyrye' 0x454 sketch # sigma - include eMarks + include markset.e start-from (RIGHTSB + 0.25 * SB) XH line-to (RIGHTSB + 0.25 * SB) (XH - STROKE) line-to MIDDLE (XH - STROKE - O * 1.5) @@ -1713,7 +1713,7 @@ define {CShape} : symbol-block 'C' save 'sigma' 0x3C3 sketch # sigmafinal - include pMarks + include markset.p include : dispiro widths.lhs g4 RIGHTSB (XH - HOOK) @@ -1751,14 +1751,14 @@ symbol-block 'G' sketch # G set-width WIDTH - include capitalMarks + include markset.capital include : GShape CAP SMOOTHA SMOOTHB save 'G' 'G' sketch # smcpG - include eMarks + include markset.e include : GShape XH SMOOTHA SMOOTHB save 'smcpG' 0x262 @@ -1785,7 +1785,7 @@ symbol-block 'G' ### g symbol-block 'g' sketch # g.doublestorey - include pMarks + include markset.p local obot : XH * GBARPOS - O - HALFSTROKE include : OShape XH obot SB (RIGHTSB - 0.3 * SB) @@ -1817,7 +1817,7 @@ symbol-block 'g' save 'g.doublestorey' sketch # g.singlestorey - include pMarks + include markset.p include : OBarRightShape include : dispiro widths.rhs @@ -1856,7 +1856,7 @@ symbol-block 'g' symbol-block 'O' sketch - include capitalMarks + include markset.capital include : OShape CAP 0 SB RIGHTSB nothing SMOOTHA SMOOTHB save 'O' 'O' @@ -1865,7 +1865,7 @@ symbol-block 'O' sketch # o set-width WIDTH - include eMarks + include markset.e include : OShape XH 0 SB RIGHTSB nothing nothing nothing true save 'o' 'o' save 'omicron' 0x3BF @@ -1914,7 +1914,7 @@ symbol-block 'O' save 'bulleye' 0x298 sketch # oupperhalf - include eMarks + include markset.e include : dispiro widths.rhs flat (SB + OX) (XH / 2) [heading UPWARD] @@ -1927,7 +1927,7 @@ symbol-block 'O' save 'oupperhalf' 0x1D16 sketch # olowerhalf - include eMarks + include markset.e include : dispiro widths.lhs flat (SB + OX) (XH / 2) [heading DOWNWARD] @@ -1963,7 +1963,7 @@ symbol-block 'Q' symbol-block 'q' sketch # q set-width WIDTH - include pMarks + include markset.p include : OBarRightShape include : VBarRight RIGHTSB DESCENDER XH @@ -1975,7 +1975,7 @@ symbol-block 'q' save 'cyrqa' 0x51B sketch # Qrtail - include capitalMarks + include markset.capital include : OBarRightShape CAP include : VBarRight RIGHTSB 0 CAP include : create-glyph : glyph-construction @@ -1990,7 +1990,7 @@ symbol-block 'q' save 'Qrtail' 0x24A sketch # qrtail - include eMarks + include markset.e include : OBarRightShape include : VBarRight RIGHTSB 0 XH include : create-glyph : glyph-construction @@ -2005,7 +2005,7 @@ symbol-block 'q' save 'qrtail' 0x24B sketch # qhooktop - include pMarks + include markset.p include glyphs.q eject-contour 'serifRT' include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) XH HOOKX (-HOOK) @@ -2034,13 +2034,13 @@ define {NShape} : symbol-block 'N' sketch # N set-width WIDTH - include capitalMarks + include markset.capital include : NShape CAP SB RIGHTSB save 'N' 'N' save 'Nu' 0x39D sketch # smcpN - include eMarks + include markset.e include : NShape XH SB RIGHTSB 3 3.5 save 'smcpN' 0x274 @@ -2057,7 +2057,7 @@ define {NShape} : symbol-block 'N' symbol-block 'n' sketch # n set-width WIDTH - include eMarks + include markset.e include : nShoulder left -- (SB + STROKE * HVCONTRAST) @@ -2084,7 +2084,7 @@ symbol-block 'n' save 'napostrophe' 0x149 sketch # eng - include pMarks + include markset.p include glyphs.n false eject-contour 'serifRB' include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 (-HOOKX) HOOK @@ -2092,7 +2092,7 @@ symbol-block 'n' save 'eng' 0x14B sketch # Eng - include capitalMarks + include markset.capital include : nShoulder left -- (SB + STROKE) @@ -2120,7 +2120,7 @@ symbol-block 'n' local m1 : Math.min RIGHTSB (WIDTH - rinner * 2 - fine - OX) local x2 : mix SB m1 0.5 local y2 : -fine - include eMarks + include markset.e include : VBarLeft SB 0 XH wide include : dispiro nShoulderKnots @@ -2141,7 +2141,7 @@ symbol-block 'n' save 'ncurlytail' 0x235 # eta sketch # eta - include pMarks + include markset.p set-anchor 'lf' BASE (SB + HALFSTROKE) 0 include : nShoulder @@ -2156,7 +2156,7 @@ symbol-block 'n' save 'eta' 0x3B7 sketch # latinEta - include ifMarks + include markset.if set-anchor 'lf' BASE (SB + HALFSTROKE) 0 include : nShoulder @@ -2178,7 +2178,7 @@ symbol-block 'n' save 'latinEta' 0x220 sketch # latineta - include pMarks + include markset.p set-anchor 'lf' BASE (SB + HALFSTROKE) 0 include : nShoulder @@ -2213,13 +2213,13 @@ define {UShape} : symbol-block 'U' sketch # U set-width WIDTH - include capitalMarks + include markset.capital include : UShape CAP 0 save 'U' 'U' sketch # smcpU - include eMarks + include markset.e include : UShape XH 0 save 'smcpU' 0x1D1C @@ -2229,7 +2229,7 @@ define {UShape} : symbol-block 'U' symbol-block 'u' sketch # u set-width WIDTH - include eMarks + include markset.e set-anchor 'trailing' BASE (RIGHTSB - markHalfStroke) 0 include glyphs.n eject-contour 'serifRB' @@ -2244,7 +2244,7 @@ symbol-block 'u' save 'u' 'u' # upsilon sketch # upsilon - include eMarks + include markset.e include : dispiro widths.lhs flat (SB + OX - O) XH [heading DOWNWARD] @@ -2269,13 +2269,13 @@ symbol-block 'u' include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) (top - HOOK - HALFSTROKE) (-(RIGHTSB - HALFSTROKE * HVCONTRAST - MIDDLE)) (-HOOK) sketch # latinUpsilon2 - include eMarks + include markset.e include : LatinUpsilon2Shape CAP SMOOTHA SMOOTHB save 'latinUpsilon2' 0x1B2 sketch # latinupsilon2 - include eMarks + include markset.e include : LatinUpsilon2Shape XH SMALLSMOOTHA SMALLSMOOTHB save 'latinupsilon2' 0x28B @@ -2303,14 +2303,14 @@ symbol-block 'M' sketch # M set-width WIDTH - include capitalMarks + include markset.capital include : MShape CAP save 'M' 'M' save 'Mu' 0x39C save 'cyrEm' 0x41C sketch # cyrem - include eMarks + include markset.e include : MShape XH save 'cyrem' 0x43C @@ -2343,14 +2343,14 @@ symbol-block 'm' sketch # m set-width WIDTH - include eMarks + include markset.e include : SmallMShape XH 0 save 'm' 'm' save 'cyrte.italic' - composite 'cyrtedescender.italic' glyphs.'cyrte.italic' [CyrDescender RIGHTSB] eMarks + composite 'cyrtedescender.italic' glyphs.'cyrte.italic' [CyrDescender RIGHTSB] markset.e sketch # mltail - include pMarks + include markset.p include glyphs.m eject-contour 'serifRB' include : VerticalHook (RIGHTSB - O - MVERTSTROKE / 2 * HVCONTRAST) 0 (-HOOKX) HOOK MVERTSTROKE @@ -2359,13 +2359,13 @@ symbol-block 'm' turned nothing 0x26F 'm' MIDDLE (XH / 2) sketch # capitalTurnm - include capitalMarks + include markset.capital include : SmallMShape CAP 0 include : FlipAround MIDDLE (CAP / 2) save 'capitalTurnm' 0x19C sketch # turnmleg - include pMarks + include markset.p include glyphs.m eject-contour 'serifLT' include : FlipAround MIDDLE (XH / 2) @@ -2382,7 +2382,7 @@ symbol-block 'H' sketch # H set-width WIDTH - include capitalMarks + include markset.capital include : HShape CAP save 'H' 'H' save 'Eta' 0x397 @@ -2390,7 +2390,7 @@ symbol-block 'H' composite nothing glyphs.cyrEn [CyrDescender RIGHTSB] [into-unicode 0x4A2] sketch # cyren - include eMarks + include markset.e include : HShape XH save 'cyren' 0x43D save 'smcpH' 0x29C @@ -2406,7 +2406,7 @@ symbol-block 'H' symbol-block 'h' sketch # h set-width WIDTH - include bMarks + include markset.b include : nShoulder left -- (SB + STROKE * HVCONTRAST) @@ -2425,7 +2425,7 @@ symbol-block 'h' save 'cyrshha' 0x4BB sketch # hhooktop - include bMarks + include markset.b include : nShoulder left -- (SB + STROKE * HVCONTRAST) right -- RIGHTSB @@ -2442,7 +2442,7 @@ symbol-block 'h' save 'hhooktop' 0x266 sketch # hhooktopltail - include pMarks + include markset.p include glyphs.hhooktop eject-contour 'serifRB' include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 (-HOOKX) HOOK @@ -2450,13 +2450,13 @@ symbol-block 'h' save 'hhooktopltail' 0x267 sketch # hltail - include pMarks + include markset.p include glyphs.h eject-contour 'serifRB' include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 (-HOOKX) HOOK save 'hltail' 0xA727 - turned nothing 0x265 'h' MIDDLE (XH / 2) pMarks + turned nothing 0x265 'h' MIDDLE (XH / 2) markset.p sketch # hookturnh include : nShoulder @@ -2470,7 +2470,7 @@ symbol-block 'h' apply-transform : Translate RIGHTSB (HOOK + HALFSTROKE) apply-transform : Italify include : FlipAround MIDDLE (XH / 2) - include pMarks + include markset.p if SLAB : begin include : LeftwardTopSerif (RIGHTSB - STROKE * HVCONTRAST) XH SIDEJUT include : CenterBottomSerif (RIGHTSB - HALFSTROKE * HVCONTRAST) DESCENDER JUT @@ -2494,7 +2494,7 @@ symbol-block 'h' apply-transform : Upright apply-transform : Translate RIGHTSB 0 apply-transform : Italify - include pMarks + include markset.p if SLAB : begin include : LeftwardTopSerif (RIGHTSB - STROKE * HVCONTRAST) XH SIDEJUT @@ -2520,7 +2520,7 @@ define {FShape} : symbol-block 'F' sketch # F set-width WIDTH - include capitalMarks + include markset.capital include : FShape save 'F' 'F' @@ -2539,7 +2539,7 @@ define {LongSShape} : symbol-block 'f' sketch # longs.straight set-width WIDTH - include bMarks + include markset.b include : dispiro widths.center flat (MIDDLE - FBALANCE) 0 [heading UPWARD] @@ -2554,7 +2554,7 @@ define {LongSShape} : symbol-block 'f' save 'longs.straight' sketch # longs.upright - include bMarks + include markset.b local m : MIDDLE - JBALANCE - HALFSTROKE * HVCONTRAST local r : m + (WIDTH * 0.5) + STROKE * HVCONTRAST - OXHOOK include : dispiro @@ -2579,7 +2579,7 @@ define {LongSShape} : symbol-block 'f' straight.right.end (MIDDLE + hookx) (top - w / 2 - fovershoot) sketch 'esh' - include ifMarks + include markset.if include : LongSShape CAP (-HOOK) HOOKX HOOK branch @@ -2599,7 +2599,7 @@ define {LongSShape} : symbol-block 'f' save 'longs' 0x17F sketch # eshcurlytail - include ifMarks + include markset.if local fine : adviceBlackness 3.5 local rinner : LONGJUT / 2 - fine / 2 local m1 : MIDDLE - HALFSTROKE * HVCONTRAST - FBALANCE @@ -2622,7 +2622,7 @@ define {LongSShape} : symbol-block 'f' save 'eshcurlytail' 0x286 sketch # ifishhook - include pMarks + include markset.p include : VBar MIDDLE DESCENDER (XH - HOOK) include : VerticalHook MIDDLE (XH - HOOK) (-LONGJUT + LBALANCE) (-HOOK + HALFSTROKE) apply-transform : Translate LBALANCE 0 @@ -2632,7 +2632,7 @@ define {LongSShape} : symbol-block 'f' save 'ifishhook' 0x27F sketch # iviby - include pMarks + include markset.p include : VBar MIDDLE 0 (XH - HOOK - HALFSTROKE) include : VerticalHook MIDDLE (XH - HOOK - HALFSTROKE) (-LONGJUT) (-HOOK) include : VerticalHook MIDDLE 0 LONGJUT HOOK @@ -2641,7 +2641,7 @@ define {LongSShape} : symbol-block 'f' define fbar : XH * 0.91 + STROKE * 0.25 sketch # f.upright local fovershoot2 (O * 2) - include bMarks + include markset.b local barleft : [mix SB RIGHTSB 0.35] - STROKE * 0.25 * HVCONTRAST include : dispiro widths.lhs @@ -2671,7 +2671,7 @@ define {LongSShape} : symbol-block 'f' save 'fltail' 0x192 italic-variant 'f' 'f' - turned 'turnf' 0x25F 'f' MIDDLE (XH / 2) pMarks + turned 'turnf' 0x25F 'f' MIDDLE (XH / 2) markset.p symbol-block 'compatibility ligatures' local shift (-(WIDTH * 0.055 + SB * 0.5)) @@ -2679,7 +2679,7 @@ define {LongSShape} : symbol-block 'f' local hbarleft (SB + shift + STROKE * [if para.slantAngle 0.5 0.25]) sketch # f_i - include bMarks + include markset.b include : create-glyph : glyph-construction include glyphs.longs apply-transform : Translate shift 0 @@ -2733,7 +2733,7 @@ symbol-block 'E' sketch # turnE set-width WIDTH - include capitalMarks + include markset.capital include : EShape CAP save 'E' 'E' save 'Epsilon' 0x395 @@ -2743,7 +2743,7 @@ symbol-block 'E' save 'turnE' 0x18E sketch # smcpturnE - include eMarks + include markset.e include : EShape XH include : FlipAround MIDDLE (XH / 2) save 'smcpturnE' 0x2C7B @@ -2769,7 +2769,7 @@ define {SmallEShape} : symbol-block 'e' include : HBarBottom (SB + (stroke / 2) + OX) (RIGHTSB - (stroke / 2) - OX) barbottom stroke sketch # cyrie - include eMarks + include markset.e include : SmallEShape XH STROKE save 'e' 'e' save 'cyrie' 0x435 @@ -2780,7 +2780,7 @@ define {SmallEShape} : symbol-block 'e' save 'cyrschwa' 0x4D9 sketch # cyrSchwa - include capitalMarks + include markset.capital include : SmallEShape CAP STROKE include : FlipAround MIDDLE (CAP / 2) save 'turnSmallE' 0x18F @@ -2805,7 +2805,7 @@ define {SmallEShape} : symbol-block 'e' include : HBarBottom (SB + (stroke / 2)) (RIGHTSB - (stroke / 2)) barbottom stroke sketch # reve - include eMarks + include markset.e include : RevSmallEShape XH STROKE save 'reve' 0x258 @@ -2826,7 +2826,7 @@ symbol-block 'T' include : tagged 'serifRB' : LeftwardBottomSerif MIDDLE 0 (LONGJUT * 0.6) sketch # cyrTe - include capitalMarks + include markset.capital set-anchor 'bottomright' BASE (MIDDLE + HALFSTROKE * HVCONTRAST) 0 include : TShape CAP @@ -2836,7 +2836,7 @@ symbol-block 'T' branch include [CyrDescender (MIDDLE + HALFSTROKE * HVCONTRAST)] - include ifMarks + include markset.if save 'cyrTedescender' 0x4AC branch @@ -2854,18 +2854,18 @@ symbol-block 'T' save 'Thookleft' 0x1AC sketch # cyrtedescender.upright - include eMarks + include markset.e include : TShape XH save 'cyrte.upright' include [CyrDescender (MIDDLE + HALFSTROKE * HVCONTRAST)] - include pMarks + include markset.p save 'cyrtedescender.upright' italic-variant 'cyrtedescender' 0x4AD sketch # tau - include eMarks + include markset.e include : HBar SB RIGHTSB (XH - HALFSTROKE) include : VBar MIDDLE 0 XH save 'tau' 0x3C4 @@ -2894,13 +2894,13 @@ symbol-block 't' sketch # t set-width WIDTH - include bMarks + include markset.b include : SmallTShape CAP 0 save 't' 't' - turned nothing 0x287 't' MIDDLE (XH / 2) pMarks + turned nothing 0x287 't' MIDDLE (XH / 2) markset.p sketch # tltail - include ifMarks + include markset.if include glyphs.t local attach : utp currentGlyph.gizmo glyphs.t.anchors.bottomright include : VBarRight attach.x 0 attach.y @@ -2909,20 +2909,20 @@ symbol-block 't' save 'tltail' 0x1AB sketch # thooktop - include eMarks + include markset.e include : SmallTShape (XH - HALFSTROKE) 0 include : VerticalHook (tcenter + HALFSTROKE * HVCONTRAST) XH HOOKX (-HOOK) save 'thooktop' 0x1AD sketch # trtail - include ifMarks + include markset.if include : SmallTShape CAP DESCENDER save 'trtail' 0x288 sketch # tcurlytail - include bMarks + include markset.b local fine : adviceBlackness 3.5 local rinner : LONGJUT / 2 - fine / 2 local x2 : mix SB tcenter 0.4 @@ -2946,7 +2946,7 @@ symbol-block 't' symbol-block 'S' sketch # S set-width WIDTH - include capitalMarks + include markset.capital define smooth : adviceSSmooth CAP (-1) include : dispiro widths.lhs @@ -2962,7 +2962,7 @@ symbol-block 'S' sketch # s set-width WIDTH - include eMarks + include markset.e define smooth : adviceSSmooth XH (-1 - [linreg 18 0 126 1 STROKE] * (3 - (WIDTH / 500) * 2.5 * [linreg 18 0 126 1 STROKE])) include : dispiro widths.lhs @@ -2977,7 +2977,7 @@ symbol-block 'S' save 'cyrdze' 0x455 sketch # revS - include capitalMarks + include markset.capital local smooth : adviceSSmooth CAP 1 include : dispiro widths.rhs @@ -2992,7 +2992,7 @@ symbol-block 'S' save 'revS' 0x1A7 sketch # revs - include eMarks + include markset.e local smooth : adviceSSmooth XH (1 + [linreg 18 0 126 1 STROKE] * (3.25 - (WIDTH / 500) * 2 * [linreg 18 0 126 1 STROKE])) include : dispiro widths.rhs @@ -3012,14 +3012,14 @@ symbol-block 'S' apply-transform : Upright apply-transform : Translate (SB + STROKE * HVCONTRAST + OXHOOK) 0 apply-transform : Italify - include pMarks + include markset.p include glyphs.s include : VBarLeft (SB + OXHOOK) 0 SHOOK save 'srtail' 0x282 sketch # Sswash - include ifMarks + include markset.if include glyphs.S include : dispiro widths.lhs [adviceBlackness 4.5] @@ -3031,7 +3031,7 @@ symbol-block 'S' save 'Sswash' 0x2C7E sketch # sswash - include pMarks + include markset.p include glyphs.s include : dispiro widths.lhs [adviceBlackness 4.5] @@ -3045,7 +3045,7 @@ symbol-block 'S' symbol-block 'Z' sketch # Z set-width WIDTH - include capitalMarks + include markset.capital local cor : 1.15 * HVCONTRAST @@ -3069,7 +3069,7 @@ symbol-block 'Z' sketch # z set-width WIDTH - include eMarks + include markset.e local cor : 1.2 * HVCONTRAST @@ -3117,7 +3117,7 @@ symbol-block 'Z' save 'zdtail' 0x225 sketch # Zswash - include ifMarks + include markset.if local cor 1.15 include : HBarTop SB RIGHTSB CAP @@ -3140,7 +3140,7 @@ symbol-block 'Z' save 'Zswash' 0x2C7F sketch # zswash - include pMarks + include markset.p include : HBarTop SB RIGHTSB XH @@ -3178,7 +3178,7 @@ symbol-block 'Z' save 'zdesc' 0x2C6C sketch # zcurlytail - include eMarks + include markset.e local fine : adviceBlackness 4 local rinner : Math.max (XH * 0.04) (fine * 0.3) diff --git a/glyphs/letters-unified-extended.ptl b/glyphs/letters-unified-extended.ptl index 48cf6527b..5901fea68 100644 --- a/glyphs/letters-unified-extended.ptl +++ b/glyphs/letters-unified-extended.ptl @@ -2,7 +2,7 @@ # UNIFIED LETTERFORMS : GREEK ORIGINALS ########################################################################################### symbol-block 'alpha' : sketch - include eMarks + include markset.e local middle : mix SB RIGHTSB 0.42 local fine : adviceBlackness 3.25 @@ -37,13 +37,13 @@ symbol-block 'Gamma' include : tagged 'serifRT' : DownwardRightSerif (RIGHTSB - OX) top VJUT sketch # Gamma - include capitalMarks + include markset.capital include : GammaShape CAP save 'Gamma' 0x393 save 'cyrGhe' 0x413 sketch # cyrghe.upright - include eMarks + include markset.e include : GammaShape XH save 'cyrghe.upright' @@ -60,13 +60,13 @@ symbol-block 'Gamma' include : VBarRight (RIGHTSB - OX) top (top + ACCENT) sketch # cyrGe - include capitalMarks + include markset.capital include : CyrGeShape CAP save 'cyrGe' 0x490 sketch # cyrge - include eMarks + include markset.e include : CyrGeShape XH save 'cyrge' 0x491 @@ -93,7 +93,7 @@ symbol-block 'Gamma' symbol-block 'gamma' sketch # gamma - include pMarks + include markset.p local xmid : [mix SB RIGHTSB 0.46] + HALFSTROKE include : dispiro @@ -138,7 +138,7 @@ define {LambdaShape} : symbol-block 'Lambda' tag-contour 'serif' sketch # Lambda - include capitalMarks + include markset.capital include : LambdaShape STROKE save 'Lambda' 0x39B save 'latinLambda' 0x245 @@ -153,7 +153,7 @@ symbol-block 'Delta and cyrbe' save 'Delta' 0x394 sketch - include bMarks + include markset.b local xNeck : mix SB RIGHTSB 0.07 local bar : mix 0 XH 0.96 @@ -187,10 +187,10 @@ symbol-block 'Delta and cyrbe' save 'cyrbe.serbian' save 'latindelta' 0x1E9F - turned 'turndelta' 0x18D 'delta' MIDDLE (XH / 2) pMarks + turned 'turndelta' 0x18D 'delta' MIDDLE (XH / 2) markset.p sketch # cyrbe - include bMarks + include markset.b include : dispiro widths.rhs (STROKE * CTHINB) flat (SB + OX + STROKE * (1 - CTHINB) * HVCONTRAST) SMALLSMOOTHB @@ -234,13 +234,13 @@ symbol-block 'epsilon and cyrze' curl midx (midy + (fine - HALFSTROKE)) [heading RIGHTWARD] sketch # epsilon - include eMarks + include markset.e include : SmallEpsilonShape XH save 'epsilon' 0x3B5 save 'latinepsilon' 0x25B sketch # latinEpsilon - include capitalMarks + include markset.capital include : SmallEpsilonShape CAP save 'latinEpsilon' 0x190 @@ -268,11 +268,11 @@ symbol-block 'epsilon and cyrze' curl midx (midy + (fine - HALFSTROKE)) [heading LEFTWARD] sketch # cyrZe - include capitalMarks + include markset.capital include : CyrZeShape CAP HOOK save 'cyrZe' 0x417 sketch # cyrze.BGR - include pMarks + include markset.p include : CyrZeShape CAP HOOK apply-transform : Upright apply-transform : Translate 0 (XH - CAP) @@ -280,7 +280,7 @@ symbol-block 'epsilon and cyrze' save 'cyrze.BGR' sketch # cyrze - include eMarks + include markset.e include : CyrZeShape XH save 'cyrze' 0x437 save 'revlatinepsilon' 0x25C @@ -288,20 +288,20 @@ symbol-block 'epsilon and cyrze' symbol-block 'Theta' sketch # Theta - include capitalMarks + include markset.capital include glyphs.O AS_BASE include : HBar (SB + STROKE * HVCONTRAST - O * 3) (RIGHTSB - STROKE * HVCONTRAST + O * 3) CAPMIDDLE save 'Theta' 0x398 sketch # theta - include bMarks + include markset.b include : OShape CAP 0 (SB - O) (RIGHTSB + O) STROKE (SMALLSMOOTHA * 100) (SMALLSMOOTHB * 100) include : HBar (SB + HALFSTROKE) (RIGHTSB - HALFSTROKE) CAPMIDDLE save 'theta' 0x3B8 symbol-block 'zeta and xi' sketch # zeta - include ifMarks + include markset.if include : HBar SB (RIGHTSB + O) (CAP - HALFSTROKE) include : dispiro widths.rhs @@ -319,7 +319,7 @@ symbol-block 'zeta and xi' save 'zeta' 0x3B6 sketch # xi - include ifMarks + include markset.if include : HBar SB (RIGHTSB + O) (CAP - HALFSTROKE) local xbar : mix SB RIGHTSB 0.85 @@ -346,7 +346,7 @@ symbol-block 'zeta and xi' save 'xi' 0x3BE symbol-block 'mu' : sketch - include pMarks + include markset.p include glyphs.u include : dispiro widths.rhs @@ -359,7 +359,7 @@ symbol-block 'mu' : sketch save 'mu' 0x3BC symbol-block 'Xi' : sketch - include capitalMarks + include markset.capital include : HBar [mix SB RIGHTSB 0.125] [mix RIGHTSB SB 0.125] [mix 0 CAP 0.54] include : HBar (SB + OX) (RIGHTSB - OX) (CAP - HALFSTROKE) include : HBar (SB + OX) (RIGHTSB - OX) (0 + HALFSTROKE) @@ -387,13 +387,13 @@ define {PiShape} : symbol-block 'Pi' include : CenterTopSerif (RIGHTSB - shrink - fine * 0.5 * HVCONTRAST) top JUT fine sketch # Pi - include capitalMarks + include markset.capital include : PiShape CAP 0 (shrinkrate -- 0) save 'Pi' 0x3A0 save 'cyrPe' 0x41F sketch # cyrpe.upright - include eMarks + include markset.e include : PiShape XH 0 save 'cyrpe.upright' @@ -404,7 +404,7 @@ define {PiShape} : symbol-block 'Pi' italic-variant 'cyrpe' 0x43f sketch # pi - include eMarks + include markset.e include : PiShape XH 0 (noserif -- true) (shrinkrate -- 0.06) save 'pi' 0x3C0 @@ -433,7 +433,7 @@ define {SigmaShape} : symbol-block 'Sigma' sketch # Sigma set-width WIDTH - include capitalMarks + include markset.capital include : SigmaShape CAP 0 save 'Sigma' 0x3A3 @@ -443,7 +443,7 @@ define {SigmaShape} : symbol-block 'Sigma' symbol-block 'Phi, phi and varphi' sketch # Phi - include capitalMarks + include markset.capital local y1 : CAP * [if SLAB 0.175 0.125] local y2 : CAP * [if SLAB 0.825 0.875] include : VBar MIDDLE 0 (y1 + HALFSTROKE) @@ -458,7 +458,7 @@ symbol-block 'Phi, phi and varphi' save 'cyrEf' 0x424 sketch # taillessphi - include eMarks + include markset.e local x0 : mix SB RIGHTSB 0.1 local y1 : mix 0 XH 0.75 local x1 : SB + OX * 2 @@ -481,14 +481,14 @@ symbol-block 'Phi, phi and varphi' save 'taillessphi' 0x2C77 sketch # phi - include pMarks + include markset.p include glyphs.taillessphi include : VBar MIDDLE DESCENDER (MVERTSTROKE * 0.2) save 'phi' 0x3C6 sketch # varphi - include ifMarks + include markset.if local y1 0 local y2 XH include : VBar MIDDLE DESCENDER (y1 + HALFSTROKE) @@ -508,7 +508,7 @@ symbol-block 'Phi, phi and varphi' symbol-block 'Psi' sketch # Psi - include capitalMarks + include markset.capital local y : CAP * 0.2 local y2 : CAP * 0.8 include : dispiro @@ -531,7 +531,7 @@ symbol-block 'Psi' save 'Psi' 0x3A8 sketch # smcpPsi - include eMarks + include markset.e local y : XH * 0.3 local y2 XH include : dispiro @@ -553,7 +553,7 @@ symbol-block 'Psi' save 'smcpPsi' 0x1D2A sketch # psi - include ifMarks + include markset.if local fine : adviceBlackness 3.5 include : dispiro widths.lhs fine @@ -597,7 +597,7 @@ symbol-block 'Omega' include : HBar x2 RIGHTSB HALFSTROKE sketch # latinUpsilon1 - include capitalMarks + include markset.capital include : OmegaShape CAP 0.08 SMOOTHA SMOOTHB save 'Omega' 0x3A9 @@ -605,7 +605,7 @@ symbol-block 'Omega' save 'latinUpsilon1' 0x1B1 sketch # latinupsilon1 - include eMarks + include markset.e include : OmegaShape XH 0.08 SMALLSMOOTHA SMALLSMOOTHB save 'latinomega' 0xAB65 @@ -614,7 +614,7 @@ symbol-block 'Omega' symbol-block 'omega' sketch # omega - include eMarks + include markset.e local fine : adviceBlackness 3.25 local mfine : fine * CTHIN local x0 : mix SB RIGHTSB 0.1 @@ -654,7 +654,7 @@ symbol-block 'omega' save 'pomega' 0x3D6 sketch # closeomega - include eMarks + include markset.e local fine : adviceBlackness 3.25 local mfine : fine * CTHIN local x0 : MIDDLE - CORRECTION_OMIDS @@ -742,13 +742,13 @@ define {CyrYeriShape RevCyrYeriShape} : symbol-block 'CyrYeri-related' tag-contour 'serifYeriRT' sketch # cyrYeri - include capitalMarks + include markset.capital include : CyrYeriShape CAP SB RIGHTSB save 'cyrYeri' 0x42C sketch # cyryeri - include eMarks + include markset.e include : CyrYeriShape XH SB RIGHTSB save 'cyryeri' 0x44C @@ -775,7 +775,7 @@ define {CyrYeriShape RevCyrYeriShape} : symbol-block 'CyrYeri-related' save 'ZhuangToneSix' 0x184 sketch # latinDe - include capitalMarks + include markset.capital include : RevCyrYeriShape CAP include : HBarTop [mix RIGHTSB SB 0.9] (RIGHTSB + O) CAP if SLAB : begin @@ -791,13 +791,13 @@ define {CyrYeriShape RevCyrYeriShape} : symbol-block 'CyrYeri-related' include : DownwardLeftSerif barleft top VJUT (MVERTSTROKE / HVCONTRAST) sketch # cyrYer - include capitalMarks + include markset.capital include : CyrYerShape CAP save 'cyrYer' 0x42A sketch # cyryer - include eMarks + include markset.e include : CyrYerShape XH save 'cyryer' 0x44A @@ -809,13 +809,13 @@ define {CyrYeriShape RevCyrYeriShape} : symbol-block 'CyrYeri-related' include : CenterBottomSerif (RIGHTSB - O - MVERTSTROKE / 2 * HVCONTRAST) 0 (JUT * 0.75) sketch # cyrYery - include capitalMarks + include markset.capital include : CyrYeryShape CAP save 'cyrYery' 0x42B sketch # cyryery - include eMarks + include markset.e include : CyrYeryShape XH save 'cyryery' 0x44B @@ -841,13 +841,13 @@ symbol-block 'CyrI' include : AICyrISerifs top sketch # cyrI - include capitalMarks + include markset.capital include : CyrIShape CAP save 'cyrI' 0x418 sketch # cyri.upright - include eMarks + include markset.e include : CyrIShape XH save 'cyri.upright' @@ -871,18 +871,18 @@ symbol-block 'CyrTse' include : RightwardBottomSerif RIGHTSB 0 SIDEJUT sketch # cyrTse - include capitalMarks + include markset.capital include : CyrTseShape CAP save 'cyrTse' 0x426 sketch # cyrtse.upright - include eMarks + include markset.e include : CyrTseShape XH save 'cyrtse.upright' sketch # cyrtse.italic - include eMarks + include markset.e include glyphs.u eject-contour 'serifLT' include : CyrDescender RIGHTSB 0.05 @@ -901,13 +901,13 @@ symbol-block 'CyrTse' include : RightwardBottomSerif RIGHTSB 0 SIDEJUT sketch # cyrDzhe - include ifMarks + include markset.if include : CyrDzheShape CAP save 'cyrDzhe' 0x40F sketch # cyrdzhe.upright - include pMarks + include markset.p include : CyrDzheShape XH save 'cyrdzhe.upright' @@ -939,19 +939,19 @@ symbol-block 'CyrDe' include : HBarTop topleft cutright top sketch # cyrDe - include ifMarks + include markset.if include : CyrDeShape CAP save 'cyrDe' 0x414 sketch # cyrde.upright - include eMarks + include markset.e include : CyrDeShape XH save 'cyrde.upright' sketch # cyrde.italic - include bMarks + include markset.b include : dispiro widths.lhs (STROKE * CTHINB) flat (RIGHTSB - OX - STROKE * HVCONTRAST * (1 - CTHINB)) SMALLSMOOTHA @@ -990,13 +990,13 @@ symbol-block 'CyrEl' include : CenterBottomSerif (cutright - HALFSTROKE * HVCONTRAST) 0 JUT sketch # cyrEl - include capitalMarks + include markset.capital include : CyrElShape CAP save 'cyrEl' 0x41B sketch # cyrel - include eMarks + include markset.e include : CyrElShape XH save 'cyrel' 0x43B @@ -1020,19 +1020,19 @@ symbol-block 'CyrZhe' include : HBar midx (WIDTH - midx) (top / 2) fine sketch # cyrZhe - include capitalMarks + include markset.capital include : CyrZheShape CAP CAP save 'cyrZhe' 0x416 composite nothing glyphs.cyrZhe [CyrDescender (RIGHTSB - O * 4) nothing true] [into-unicode 0x496] sketch # cyrzhe - include eMarks + include markset.e include : CyrZheShape XH XH save 'cyrzhe' 0x436 composite nothing glyphs.cyrzhe [CyrDescender (RIGHTSB - O * 4) nothing true] [into-unicode 0x497] sketch # cyrzhe.BGR - include eMarks + include markset.e include : CyrZheShape XH CAP save 'cyrzhe.BGR' @@ -1070,11 +1070,11 @@ symbol-block 'CyrZhe' include : HBarTop midx (WIDTH - midx) yb fine include : HBarTop (SB + O * tovershoot + HVCONTRAST * fine * 0.99) (RIGHTSB - O * tovershoot - HVCONTRAST * fine * 0.99) top fine sketch # cyrbigYus - include capitalMarks + include markset.capital include : CyrBigYusShape CAP 0.575 save 'cyrbigYus' 0x46A sketch # cyrbigyus - include eMarks + include markset.e include : CyrBigYusShape XH 0.55 save 'cyrbigyus' 0x46B @@ -1093,11 +1093,11 @@ symbol-block 'CyrZhe' include : tagged 'serifLB' : LeftwardBottomSerif SB 0 SIDEJUT include : tagged 'serifRB' : RightwardBottomSerif RIGHTSB 0 SIDEJUT sketch # cyrsmallYus - include capitalMarks + include markset.capital include : CyrSmallYusShape CAP save 'cyrsmallYus' 0x466 sketch # cyrsmallyus - include eMarks + include markset.e include : CyrSmallYusShape XH save 'cyrsmallyus' 0x467 @@ -1114,13 +1114,13 @@ symbol-block 'CyrSha' include : tagged 'serifRB' : RightwardBottomSerif RIGHTSB 0 SIDEJUT sketch # cyrSha - include capitalMarks + include markset.capital include : CyrShaShape CAP save 'cyrSha' 0x428 sketch # cyrsha.upright - include eMarks + include markset.e include : CyrShaShape XH save 'cyrsha.upright' @@ -1133,18 +1133,18 @@ symbol-block 'CyrSha' include : CyrDescender RIGHTSB 0.05 sketch # cyrShcha - include capitalMarks + include markset.capital include : CyrShchaShape CAP save 'cyrShcha' 0x429 sketch # cyrshcha.upright - include eMarks + include markset.e include : CyrShchaShape XH save 'cyrshcha.upright' sketch # cyrshcha.italic - include eMarks + include markset.e include glyphs.'cyrsha.italic' include : CyrDescender RIGHTSB 0.05 save 'cyrshcha.italic' @@ -1176,13 +1176,13 @@ symbol-block 'CyrChe' include : CenterBottomSerif (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 JUT sketch # cyrChe - include capitalMarks + include markset.capital include : CyrCheShape CAP [if SLAB 0.45 0.35] save 'cyrChe' 0x427 composite nothing glyphs.cyrChe [CyrDescender RIGHTSB] [into-unicode 0x4B6] sketch # cyrche - include eMarks + include markset.e include : CyrCheShape XH [if SLAB 0.45 0.4] save 'cyrche' 0x447 composite nothing glyphs.cyrche [CyrDescender RIGHTSB] [into-unicode 0x4B7] @@ -1213,17 +1213,17 @@ symbol-block 'CyrYu' include : CenterBottomSerif (SB + O + MVERTSTROKE / 2 * HVCONTRAST) 0 (JUT * 0.75) sketch # cyrYu - include capitalMarks + include markset.capital include : CyrYuShape CAP CAP SMOOTHA SMOOTHB save 'cyrYu' 0x42E sketch # cyryu - include eMarks + include markset.e include : CyrYuShape XH XH SMALLSMOOTHA SMALLSMOOTHB save 'cyryu' 0x44E sketch # cyryu.BGR - include eMarks + include markset.e include : CyrYuShape XH CAP SMALLSMOOTHA SMALLSMOOTHB save 'cyryu.BGR' @@ -1242,13 +1242,13 @@ symbol-block 'CyrLje and CyrNje' include : LeftwardTopSerif xlefttop top (jut - MVERTSTROKE / 2 * HVCONTRAST) sketch # cyrLje - include capitalMarks + include markset.capital include : CyrLjeShape CAP save 'cyrLje' 0x409 sketch # cyrlje - include eMarks + include markset.e include : CyrLjeShape XH save 'cyrlje' 0x459 @@ -1263,19 +1263,19 @@ symbol-block 'CyrLje and CyrNje' include : CenterBottomSerif (SB + MVERTSTROKE / 2 * HVCONTRAST) 0 jut sketch # cyrNje - include capitalMarks + include markset.capital include : CyrNjeShape CAP save 'cyrNje' 0x40A sketch # cyrnje - include eMarks + include markset.e include : CyrNjeShape XH save 'cyrnje' 0x45A symbol-block 'CyrTshe and CyrDje' sketch # cyrTshe - include capitalMarks + include markset.capital local left : [mix SB RIGHTSB 0.15] + OX local right : RIGHTSB - OX @@ -1296,7 +1296,7 @@ symbol-block 'CyrTshe and CyrDje' save 'cyrTshe' 0x40B sketch # cyrDje - include capitalMarks + include markset.capital local left : [mix SB RIGHTSB 0.15] + OX local right: RIGHTSB - OX * 1.5 @@ -1321,7 +1321,7 @@ symbol-block 'CyrTshe and CyrDje' save 'cyrDje' 0x402 sketch # cyrdje - include ifMarks + include markset.if include glyphs.cyrtshe eject-contour 'serifRB' include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 (-HOOK * 1.2) HOOK @@ -1333,7 +1333,7 @@ symbol-block 'CyrTshe and CyrDje' symbol-block 'eszet' sketch # eszet set-width WIDTH - include ifMarks + include markset.if local l : SB * 1 include : dispiro widths.lhs @@ -1360,7 +1360,7 @@ symbol-block 'eszet' save 'eszet' 0xDF sketch # Eszet - include capitalMarks + include markset.capital include : dispiro widths.lhs g4 (RIGHTSB + O * 2) (CAP - SMOOTHB) @@ -1385,7 +1385,7 @@ symbol-block 'eszet' symbol-block 'Digraphs' sketch # AE set-width WIDTH - include capitalMarks + include markset.capital local eleft : MIDDLE - MVERTSTROKE * 0.25 local turn : XH * 0.1 @@ -1441,12 +1441,12 @@ symbol-block 'Digraphs' sketch # OE set-width WIDTH - include capitalMarks + include markset.capital include : OEShape CAP save 'OE' 0x152 sketch # smcpOE - include eMarks + include markset.e include : OEShape XH save 'smcpOE' 0x276 @@ -1499,7 +1499,7 @@ symbol-block 'Digraphs' sketch # ae set-width WIDTH - include eMarks + include markset.e include aeepart include aeapart save 'ae' 0xE6 @@ -1509,7 +1509,7 @@ symbol-block 'Digraphs' sketch # oe set-width WIDTH - include eMarks + include markset.e include aeepart include oeopart save 'oe' 0x153 @@ -1517,7 +1517,7 @@ symbol-block 'Digraphs' sketch # db set-width WIDTH - include bMarks + include markset.b include oeopart include : FlipAround MIDDLE (XH / 2) include oeopart @@ -1529,7 +1529,7 @@ symbol-block 'Digraphs' sketch # qp set-width WIDTH - include pMarks + include markset.p include oeopart include : FlipAround MIDDLE (XH / 2) include oeopart @@ -1540,7 +1540,7 @@ symbol-block 'Digraphs' save 'qp' 0x239 sketch # OU - include capitalMarks + include markset.capital include : OShape (CAP * BARPOS + HALFSTROKE) 0 SB RIGHTSB nothing SMOOTHA SMOOTHB include : dispiro widths.lhs @@ -1555,7 +1555,7 @@ symbol-block 'Digraphs' save 'OU' 0x222 sketch # ou - include bMarks + include markset.b local bar : linreg 18 (XH * 0.9) 108 XH STROKE include : OShape bar 0 SB RIGHTSB include : dispiro @@ -1571,7 +1571,7 @@ symbol-block 'Digraphs' save 'ou' 0x223 sketch # IJ - include capitalMarks + include markset.capital include : create-glyph : glyph-construction include glyphs.'I.straight' apply-transform : Translate (SB - MIDDLE + HALFSTROKE * HVCONTRAST) 0 @@ -1582,7 +1582,7 @@ symbol-block 'Digraphs' save 'IJ' 0x132 sketch # ij - include ifMarks + include markset.if include : create-glyph : glyph-construction include glyphs.'dotlessi.straight' AS_BASE include glyphs.dotAbove @@ -1648,32 +1648,32 @@ symbol-block 'Ezh' sketch # Ezh set-width WIDTH - include capitalMarks + include markset.capital include : EzhShape CAP 0 save 'Ezh' 0x1B7 save 'cyrEzh' 0x4E0 sketch # ezh set-width WIDTH - include pMarks + include markset.p include : EzhShape XH DESCENDER save 'ezh' 0x292 save 'cyrezh' 0x4E1 sketch # revEzh - include capitalMarks + include markset.capital include : RevEzhShape CAP 0 save 'revEzh' 0x1B8 sketch # revezh - include pMarks + include markset.p include : RevEzhShape XH DESCENDER save 'revezh' 0x1B9 sketch # lyogh - include ifMarks + include markset.if include : EzhShape XH DESCENDER 0.4 include : VBarLeft SB (XH * 0.1) CAP @@ -1698,7 +1698,7 @@ symbol-block 'Ezh' save 'ezhtail' 0x1BA sketch # ezhcurlytail - include eMarks + include markset.e local p (SMALLSMOOTHB / (SMALLSMOOTHA + SMALLSMOOTHB)) include : EzhShape XH DESCENDER nothing p local fine : adviceBlackness 3 @@ -1714,7 +1714,7 @@ symbol-block 'Ezh' symbol-block 'Glottal stop' sketch # glottalstop - include bMarks + include markset.b include : dispiro widths.rhs g4 SB (CAP - HOOK) @@ -1730,7 +1730,7 @@ symbol-block 'Glottal stop' save 'capglottalstop' 0x241 sketch # revglottalstop - include bMarks + include markset.b include : dispiro widths.lhs g4 RIGHTSB (CAP - HOOK) @@ -1744,7 +1744,7 @@ symbol-block 'Glottal stop' save 'revglottalstop' 0x295 sketch # smallglottalstop - include bMarks + include markset.b include : dispiro widths.rhs g4 SB (XH - HOOK) @@ -1759,7 +1759,7 @@ symbol-block 'Glottal stop' save 'smallglottalstop' 0x242 sketch # invglottalstopbar - include eMarks + include markset.e local smooth : adviceGlottalStopSmooth XH (-1 - TANSLANT * (15 - (WIDTH / 500) * 12) * [clamp 0 1 : linreg 126 1 135 0.5 STROKE]) include : dispiro widths.lhs @@ -1775,7 +1775,7 @@ symbol-block 'Glottal stop' save 'invglottalstopbar' 0x1BE sketch # fineglottalstop - include bMarks + include markset.b local fine : markHalfStroke * 2 include : dispiro widths.rhs fine @@ -1791,7 +1791,7 @@ symbol-block 'Glottal stop' save 'fineglottalstop' sketch # finerevglottalstop - include bMarks + include markset.b local fine : markHalfStroke * 2 include : dispiro widths.lhs fine @@ -1819,7 +1819,7 @@ symbol-block 'Glottal stop' save 'revglottalstopbar' 0x2A2 symbol-block 'eth' : sketch - include bMarks + include markset.b include : OShape (CAP * 0.6) 0 SB RIGHTSB local ymiddlea : (CAP * 0.6 + SMALLSMOOTHA - SMALLSMOOTHB) / 2 @@ -1839,7 +1839,7 @@ symbol-block 'eth' : sketch symbol-block 'Thorn' sketch # Thorn set-width WIDTH - include capitalMarks + include markset.capital local bowlTop (CAP * 0.81) local bowlBottom (CAP * 0.19) @@ -1873,7 +1873,7 @@ symbol-block 'Thorn' include glyphs.p eject-contour 'bowl' eject-contour 'serifLT' - include ifMarks + include markset.if save 'thorn' 0xFE save 'sho' 0x3F8 @@ -1920,7 +1920,7 @@ symbol-block 'Hwair' symbol-block 'Gha' sketch # Gha - include capitalMarks + include markset.capital local abarRight : MIDDLE + MVERTSTROKE / 2 * HVCONTRAST include : OShape CAP 0 (SB + O) abarRight MVERTSTROKE (SMALLSMOOTHA * 0.6) (SMALLSMOOTHB * 0.6) include : VBarRight (RIGHTSB - O * 2) DESCENDER CAP MVERTSTROKE @@ -1935,7 +1935,7 @@ symbol-block 'Gha' save 'Gha' 0x1A2 sketch # gha - include pMarks + include markset.p local abarRight : MIDDLE + MVERTSTROKE / 2 * HVCONTRAST include : OShape XH 0 (SB + O) abarRight MVERTSTROKE (SMALLSMOOTHA * 0.6) (SMALLSMOOTHB * 0.6) include : VBarRight (RIGHTSB - O * 2) DESCENDER XH MVERTSTROKE @@ -1961,13 +1961,13 @@ symbol-block 'Wynn' g4 (SB + STROKE * HVCONTRAST) [mix bot top 0.1] sketch # Wynn - include capitalMarks + include markset.capital include : WynnShape 0 CAP save 'Wynn' 0x1F7 sketch # wynn - include pMarks + include markset.p include : WynnShape DESCENDER XH save 'wynn' 0x1BF @@ -1988,13 +1988,13 @@ symbol-block 'Yogh' g4 SB (bot + O) sketch # Yogh - include capitalMarks + include markset.capital include : YoghShape CAP 0 save 'Yogh' 0x21C sketch # yogh - include pMarks + include markset.p include : YoghShape XH DESCENDER save 'yogh' 0x21D @@ -2016,19 +2016,19 @@ symbol-block 'RamsHorn' g4 (RIGHTSB - HALFSTROKE * HVCONTRAST - O) top [widths.heading HALFSTROKE HALFSTROKE UPWARD] sketch # latingamma - include pMarks + include markset.p include : RamsHornShape DESCENDER XH save 'latingamma' 0x263 sketch # latinGamma - include ifMarks + include markset.if include : RamsHornShape DESCENDER CAP save 'latinGamma' 0x194 sketch # ramshorn - include eMarks + include markset.e include : RamsHornShape 0 XH save 'ramshorn' 0x264 @@ -2056,13 +2056,13 @@ symbol-block 'Rhotic Tail and other phonetic letters' if [not recursive] : let [thinfont : Widen {'schwa' 'revlatinepsilon'} 0.85 1] : begin sketch # er - include eMarks + include markset.e include thinfont.schwa include : ErTail (WIDTH * 0.85 - SB - markFine * HVCONTRAST * 1.25) save 'er' 0x25A sketch # revlatinepsiloner - include eMarks + include markset.e include thinfont.revlatinepsilon include : ErTail (WIDTH * 0.85 - SB - markFine * HVCONTRAST * 1.25) save 'revlatinepsiloner' 0x25D diff --git a/glyphs/numbers.ptl b/glyphs/numbers.ptl index 244a0a6d2..0af4f2098 100644 --- a/glyphs/numbers.ptl +++ b/glyphs/numbers.ptl @@ -1,12 +1,12 @@ ###### NUMBERS symbol-block "Numbers" sketch # zero.unslashed - include capitalMarks + include markset.capital include : OShape CAP 0 SB RIGHTSB save 'zero.unslashed' sketch # zero.slashed - include capitalMarks + include markset.capital include glyphs.'zero.unslashed' local fine : 0.5 * OVERLAYSTROKE include : dispiro @@ -15,7 +15,7 @@ symbol-block "Numbers" save 'zero.slashed' sketch # zero.dotted - include capitalMarks + include markset.capital include glyphs.'zero.unslashed' local radius : Math.min DOTRADIUS ((RIGHTSB - SB - STROKE * 2) / 4) include : Ring (CAPMIDDLE + radius) (CAPMIDDLE - radius) (MIDDLE + radius) (MIDDLE - radius) @@ -28,7 +28,7 @@ symbol-block "Numbers" } sketch # one - include capitalMarks + include markset.capital include : VBar (MIDDLE + ONEBALANCE) 0 CAP include : dispiro flat (MIDDLE - HALFSTROKE * HVCONTRAST + ONEBALANCE) CAP [widths STROKE 0] @@ -39,7 +39,7 @@ symbol-block "Numbers" save 'one' '1' sketch # two - include capitalMarks + include markset.capital define smooth : [adviceGlottalStopSmooth CAP 1] * 0.95 include : dispiro widths.rhs @@ -56,7 +56,7 @@ symbol-block "Numbers" save 'two' '2' sketch # three - include capitalMarks + include markset.capital local barcenter : CAP * 0.53 local threeRadius : (CAPMIDDLE + HALFSTROKE - SMOOTH) * 1.25 local fine : STROKE * CTHIN @@ -79,7 +79,7 @@ symbol-block "Numbers" save 'three' '3' sketch # four - include capitalMarks + include markset.capital local bar (CAP * 0.4) local vert : [mix SB RIGHTSB 0.825] - HVCONTRAST * STROKE local p 0.25 @@ -115,22 +115,22 @@ symbol-block "Numbers" include : DownwardRightSerif xright top VJUT sketch # five - include capitalMarks + include markset.capital include : FiveShape CAP FIVEBARPOS save 'five' '5' sketch # zhuangToneFive - include capitalMarks + include markset.capital include : FiveShape CAP FIVEBARPOS save 'zhuangToneFive' 0x1BC sketch # zhuangtonefive - include eMarks + include markset.e include : FiveShape XH FIVEBARPOS save 'zhuangtonefive' 0x1BD sketch # six - include capitalMarks + include markset.capital include : OShape (CAP * 0.6) 0 SB RIGHTSB local ymiddlea : (CAP * 0.6 - SMALLSMOOTHA + SMALLSMOOTHB) / 2 @@ -142,7 +142,7 @@ symbol-block "Numbers" save 'six' '6' sketch # seven - include capitalMarks + include markset.capital include : HBarTop (SB + OXE) RIGHTSB CAP local x : mix SB RIGHTSB 0.28 local cor : [Math.hypot 1 ((RIGHTSB - x - HALFSTROKE) / (CAP - STROKE))] * HVCONTRAST @@ -158,7 +158,7 @@ symbol-block "Numbers" local pr : linreg 18 0.85 120 0.975 STROKE sketch # eight - include capitalMarks + include markset.capital local p 0.96 local l (SB + OX) local r (RIGHTSB - OX) @@ -200,7 +200,7 @@ symbol-block "Numbers" save 'rotetedpropto' sketch # nine - include capitalMarks + include markset.capital set-width WIDTH local u CAP local d : Math.min (u - SMALLSMOOTHA - SMALLSMOOTHB - 0.1) (CAP * 0.425 - HALFSTROKE) @@ -226,7 +226,7 @@ symbol-block "Numbers" save 'nine' '9' sketch # ten - include capitalMarks + include markset.capital set-width : WIDTH * 2 include glyphs.one apply-transform : Translate (-WIDTH) 0 diff --git a/glyphs/symbol-geometric.ptl b/glyphs/symbol-geometric.ptl index 45b5f179f..97e603862 100644 --- a/glyphs/symbol-geometric.ptl +++ b/glyphs/symbol-geometric.ptl @@ -257,7 +257,7 @@ symbol-block 'Geometric' g4 (cx - fine) cy close #include : Ring (cy + fine) (cy - fine) (cx - fine) (cx + fine) true - include eMarks + include markset.e apply-transform [Upright] true apply-transform [Translate 0 (parenMid - (XH / 2))] true apply-transform [Italify] true @@ -298,7 +298,7 @@ symbol-block 'Geometric' # Mark sampler sketch - include eMarks + include markset.e include : spiro-outline g4 MIDDLE XH g4 (MIDDLE - XH / 2) (XH / 2) diff --git a/glyphs/symbol-letter.ptl b/glyphs/symbol-letter.ptl index 5a77d8ecd..2151ba4fa 100644 --- a/glyphs/symbol-letter.ptl +++ b/glyphs/symbol-letter.ptl @@ -98,7 +98,7 @@ symbol-block 'Letterlike Symbols' turned 'Mho' 0x2127 'Ohm' MIDDLE (CAP / 2) sketch # ell - include bMarks + include markset.b local fine : adviceBlackness 3.5 local radius : Math.max fine (WIDTH * 0.15) local middle : MIDDLE - fine / 2 diff --git a/glyphs/symbol-math.ptl b/glyphs/symbol-math.ptl index 2addc87c5..acbe6f2ed 100644 --- a/glyphs/symbol-math.ptl +++ b/glyphs/symbol-math.ptl @@ -68,7 +68,7 @@ symbol-block 'Letter-like Mathematical Symbols' save 'propto' 0x221D sketch # partial - include bMarks + include markset.b include : OShape (CAP * 0.65) 0 SB RIGHTSB OPERATORSTROKE include : dispiro widths.lhs OPERATORSTROKE diff --git a/glyphs/symbol-punctuation.ptl b/glyphs/symbol-punctuation.ptl index dc88b1636..41067679b 100644 --- a/glyphs/symbol-punctuation.ptl +++ b/glyphs/symbol-punctuation.ptl @@ -16,7 +16,7 @@ symbol-block 'Spaces' sketch # nbsp include glyphs.space - include eMarks + include markset.e set currentGlyph.cmpPriority (-100) save 'nbsp' 0xA0 @@ -209,7 +209,7 @@ symbol-block 'Emotion Punctuations' sketch # exclam set-width WIDTH - include capitalMarks + include markset.capital include : VBar MIDDLE [clamp 0 (CAP * 0.4) (questionBottom * 1.18)] CAP include : Ring (DOTSIZE - O) O (MIDDLE - DOTRADIUS + O) (MIDDLE + DOTRADIUS - O) true save 'exclam' '!' diff --git a/makesupport.mk b/makesupport.mk index 20920fc21..f29d11ba6 100644 --- a/makesupport.mk +++ b/makesupport.mk @@ -8,7 +8,7 @@ snapshot/assets : @- mkdir $@ PATELC = node ./node_modules/patel/bin/patel-c -SUPPORT_FILES_FROM_PTL = support/glyph.js support/spiroexpand.js support/spirokit.js parameters.js support/anchor.js support/point.js support/transform.js +SUPPORT_FILES_FROM_PTL = support/glyph.js support/spiroexpand.js support/spirokit.js parameters.js support/anchor.js support/point.js support/transform.js support/utils.js SUPPORT_FILES = $(SUPPORT_FILES_FROM_PTL) generator.js emptyfont.toml parameters.toml support/fairify.js GLYPH_SEGMENTS = glyphs/common-shapes.ptl glyphs/overmarks.ptl glyphs/letters-unified-basic.ptl glyphs/letters-unified-extended.ptl glyphs/numbers.ptl glyphs/symbol-punctuation.ptl glyphs/symbol-math.ptl glyphs/symbol-geometric.ptl glyphs/symbol-other.ptl glyphs/symbol-braille.ptl glyphs/symbol-letter.ptl glyphs/autobuilds.ptl glyphs/features.ptl SCRIPTS = $(SUPPORT_FILES) buildglyphs.js @@ -25,6 +25,7 @@ support/transform.js : support/transform.ptl support/glyph.js : support/glyph.ptl support/spirokit.js : support/spirokit.ptl support/spiroexpand.js : support/spiroexpand.ptl +support/utils.js : support/utils.ptl parameters.js : parameters.ptl cleanscripts : diff --git a/support/utils.js b/support/utils.js new file mode 100644 index 000000000..7cefcff03 --- /dev/null +++ b/support/utils.js @@ -0,0 +1,35 @@ +'use strict'; +var r1_mix, r1_linreg, r1_clamp, r1_fallback, r1_TempFont, r1_includeGlyphPart, r1_compsiteMarkSet, _r1_t0, _r1_t1, _r1_t2, _r1_t3, _r1_t4, _r1_t5, _r1_t6, _r1_t7, _r1_t8, _r1_t9, _r1_t10, _r1_t11, _r1_t12, r1_Anchor = require('./anchor'); +exports.mix = r1_mix = function _r1_t6(r120_a, r120_b, r120_p) { + return r120_a + (r120_b - r120_a) * r120_p; +}, exports.linreg = r1_linreg = function _r1_t7(r122_x0, r122_y0, r122_x1, r122_y1, r122_x) { + return r122_y0 + (r122_x - r122_x0) * (r122_y1 - r122_y0) / (r122_x1 - r122_x0); +}, exports.clamp = r1_clamp = function _r1_t8(r124_l, r124_h, r124_x) { + return r124_x < r124_l ? r124_l : r124_x > r124_h ? r124_h : r124_x; +}, exports.fallback = r1_fallback = function _r1_t9() { + var _r126_t1 = arguments, r126_j = 0; + for (; r126_j < arguments.length; r126_j += 1) + if (_r126_t1[r126_j] !== void 0) + return _r126_t1[r126_j]; + return void 0; +}, exports.TempFont = r1_TempFont = function _r1_t10() { + return { + 'glyf': [], + 'head': {}, + 'hhea': {}, + 'OS_2': { 'panose': [] }, + 'name': {}, + 'post': {} + }; +}, exports.includeGlyphPart = r1_includeGlyphPart = function _r1_t11(r130_cg, r130_gs, r130_nm) { + var _r130_t1 = arguments; + if (!r130_gs[r130_nm]) + throw new Error('Glyph ' + r130_nm + ' is not defined, which is used for ' + r130_cg.name + '.'); + return r130_cg.include.apply(r130_cg, [r130_gs[r130_nm]].concat([].slice.call(_r130_t1, 3))); +}, exports.compsiteMarkSet = r1_compsiteMarkSet = function _r1_t12() { + var r132_a, r132_k, _r132_t3, _r132_t4, _r132_t5, _r132_t7 = arguments, r132_h = {}, _r132_t0 = _r132_t7, _r132_t1 = _r132_t0.length, _r132_t2 = 0; + for (; _r132_t2 < _r132_t1; _r132_t2 += 1) + for (r132_a = _r132_t0[_r132_t2], _r132_t3 = Object.keys(r132_a.anchors), _r132_t4 = _r132_t3.length, _r132_t5 = 0; _r132_t5 < _r132_t4; _r132_t5 += 1) + r132_k = _r132_t3[_r132_t5], r132_h[r132_k] = new r1_Anchor(r132_a.anchors[r132_k].x, r132_a.anchors[r132_k].y, r132_a.anchors[r132_k].type, r132_a.anchors[r132_k].mbx, r132_a.anchors[r132_k].mby); + return { 'anchors': r132_h }; +}; diff --git a/support/utils.ptl b/support/utils.ptl new file mode 100644 index 000000000..ec506004e --- /dev/null +++ b/support/utils.ptl @@ -0,0 +1,19 @@ +import './anchor' as Anchor + +export : define [mix a b p] : a + (b - a) * p +export : define [linreg x0 y0 x1 y1 x] : y0 + (x - x0) * (y1 - y0) / (x1 - x0) +export : define [clamp l h x] : if (x < l) l : if (x > h) h x +export : define [fallback] : begin + for [local j 0] (j < arguments.length) [inc j] : if (arguments.(j) !== nothing) : return arguments.(j) + return nothing +export : define [TempFont] {.glyf {} .head {.} .hhea {.} .OS_2 {.panose {}} .name {.} .post {.}} + +export : define [includeGlyphPart cg gs nm] : begin + if [not gs.(nm)] : throw : new Error "Glyph \(nm) is not defined, which is used for \(cg.name)." + return : cg.include.apply cg [{gs.(nm)}.concat [{}.slice.call arguments 3]] + +export : define [compsiteMarkSet] : begin + local h {.} + foreach a [items-of arguments] : foreach k [items-of [Object.keys a.anchors]] : begin + set h.(k) : new Anchor a.anchors.(k).x a.anchors.(k).y a.anchors.(k).type a.anchors.(k).mbx a.anchors.(k).mby + return {.anchors h} \ No newline at end of file