mirror of
https://github.com/be5invis/Iosevka.git
synced 2026-10-28 08:28:01 +00:00
1009 lines
33 KiB
Plaintext
1009 lines
33 KiB
Plaintext
|
|
### Combining marks
|
|
|
|
local markExtend (ACCENTX * 0.5)
|
|
local markStress : 0.5 * [adviceBlackness 3.2]
|
|
local markFine : markStress * 0.8
|
|
local markHalfStroke : mix markFine markStress 0.5
|
|
local markMiddle (-MIDDLE)
|
|
local markDotsRadius : DOTRADIUS * markStress / HALFSTROKE
|
|
|
|
local aboveMarkTop (XH + ACCENT * 1.38)
|
|
local aboveMarkBot (XH + ACCENT * 0.35)
|
|
|
|
local belowMarkBot (0 - ACCENT * 1.38)
|
|
local belowMarkTop (0 - ACCENT * 0.35)
|
|
|
|
local commaOvershoot : O * [linreg 16 1 90 (-1) (markHalfStroke * 2)]
|
|
|
|
### Above marks
|
|
symbol-block 'Above marks'
|
|
sketch # dotAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'dot'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
include : Ring (XH + ACCENT + DOTRADIUS) (XH + ACCENT - DOTRADIUS) (markMiddle - DOTRADIUS) (markMiddle + DOTRADIUS) true
|
|
|
|
save 'dotAbove' 0x307
|
|
|
|
sketch # dieresisAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'dieresis'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
include : Ring (XH + ACCENT + markDotsRadius) (XH + ACCENT - markDotsRadius) (markMiddle - markDotsRadius - markExtend) (markMiddle + markDotsRadius - markExtend) true
|
|
include : Ring (XH + ACCENT + markDotsRadius) (XH + ACCENT - markDotsRadius) (markMiddle - markDotsRadius + markExtend) (markMiddle + markDotsRadius + markExtend) true
|
|
|
|
save 'dieresisAbove' 0x308
|
|
|
|
sketch # ringAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'ring'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
local radiusIn : ACCENT * 0.24
|
|
local radiusOut : radiusIn + markFine * [linreg 16 2 90 1.75 (markHalfStroke * 2)]
|
|
include : Ring (XH + ACCENT + radiusOut) (XH + ACCENT - radiusOut) (markMiddle - radiusOut) (markMiddle + radiusOut) true
|
|
include : Ring (XH + ACCENT + radiusIn) (XH + ACCENT - radiusIn) (markMiddle - radiusIn) (markMiddle + radiusIn) true
|
|
reverse-last
|
|
apply-transform : Upright
|
|
apply-transform : Translate 0 (-markFine * 0.75)
|
|
apply-transform : Italify
|
|
|
|
save 'ringAbove' 0x30A
|
|
|
|
sketch # graveAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'grave'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
include : dispiro
|
|
flat (markMiddle + markStress) aboveMarkBot [widths markFine markFine]
|
|
curl (markMiddle - markExtend) aboveMarkTop [widths markStress markStress]
|
|
|
|
save 'graveAbove' 0x300
|
|
|
|
sketch # acuteAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'acute'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
include : dispiro
|
|
flat (markMiddle - markStress) aboveMarkBot [widths markFine markFine]
|
|
curl (markMiddle + markExtend) aboveMarkTop [widths markStress markStress]
|
|
|
|
save 'acuteAbove' 0x301
|
|
|
|
sketch # circumflexAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'circum'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
include : dispiro
|
|
flat (markMiddle - markExtend - markStress) (aboveMarkBot + markStress - markFine) [widths markStress markStress]
|
|
curl markMiddle (aboveMarkTop + markFine * 0.7) [heading UPWARD]
|
|
include : dispiro
|
|
flat (markMiddle + markExtend + markStress) (aboveMarkBot + markStress - markFine) [widths markStress markStress]
|
|
curl markMiddle (aboveMarkTop + markFine * 0.7) [heading UPWARD]
|
|
|
|
save 'circumflexAbove' 0x302
|
|
|
|
sketch # caronAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'caron'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
include : dispiro
|
|
flat (markMiddle - markExtend - markStress) aboveMarkTop [widths markStress markStress]
|
|
curl markMiddle (aboveMarkBot - markFine * 1.7 + markStress) [heading DOWNWARD]
|
|
include : dispiro
|
|
flat (markMiddle + markExtend + markStress) aboveMarkTop [widths markStress markStress]
|
|
curl markMiddle (aboveMarkBot - markFine * 1.7 + markStress) [heading DOWNWARD]
|
|
|
|
save 'caronAbove' 0x30c
|
|
|
|
sketch # tildeAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'tilde'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
local leftEnd (markMiddle - markExtend * 1.5)
|
|
local rightEnd (markMiddle + markExtend * 1.5)
|
|
|
|
local ttop aboveMarkTop
|
|
local tbot : aboveMarkBot + markFine / 2
|
|
local top : ttop + (markFine * 2)
|
|
local bot : tbot - (markFine * 2)
|
|
local tildeWave : [linreg 16 2.6 90 1.36 (markHalfStroke * 2)] * (1 + [linreg 100 0 125 1 markExtend] * [clamp 0 1 : linreg 91 0 95 0.05 (markHalfStroke * 2)])
|
|
local tildeWaveX [linreg 16 0.5 90 0.52 (markHalfStroke * 2)]
|
|
local tildeWaveEnd : [smoothreg {16 60 90} {(-0.025) (-0.05) 0}] (markHalfStroke * 2)
|
|
|
|
include : dispiro
|
|
widths.center (markHalfStroke * 2 / CONTRAST)
|
|
g2 leftEnd [mix tbot ttop tildeWaveEnd]
|
|
bezcontrols.absolute
|
|
* [mix leftEnd rightEnd tildeWaveX]; * [mix bot top tildeWave]
|
|
* [mix leftEnd rightEnd (1 - tildeWaveX)]; * [mix bot top (1 - tildeWave)]
|
|
* 256; * important; * g2
|
|
g2 rightEnd [mix tbot ttop (1 - tildeWaveEnd)]
|
|
|
|
set currentGlyph.dense true
|
|
save 'tildeAbove' 0x303
|
|
|
|
sketch # macronAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'macron'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
local leftEnd (markMiddle - markExtend * 1.5)
|
|
local rightEnd (markMiddle + markExtend * 1.5)
|
|
|
|
include : dispiro
|
|
flat leftEnd (XH + ACCENT) [widths markHalfStroke markHalfStroke]
|
|
curl rightEnd (XH + ACCENT)
|
|
|
|
save 'macronAbove' 0x304
|
|
|
|
sketch # overlineAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'overline'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
include : dispiro
|
|
flat (SB - WIDTH) (XH + ACCENT) [widths markHalfStroke markHalfStroke]
|
|
curl (RIGHTSB - WIDTH) (XH + ACCENT)
|
|
|
|
save 'overlineAbove' 0x305
|
|
|
|
sketch # dblOverlineAbove
|
|
set-width 0
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
local boxsw : Math.min (markFine * 2) ((aboveMarkTop - aboveMarkBot) / 3)
|
|
|
|
include : HBarBottom (SB - WIDTH) (RIGHTSB - WIDTH) aboveMarkBot boxsw
|
|
include : HBarTop (SB - WIDTH) (RIGHTSB - WIDTH) aboveMarkTop boxsw
|
|
|
|
save 'dblOverlineAbove' 0x33F
|
|
|
|
sketch # breveAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'breve'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
local leftEnd (markMiddle - markExtend * 1.2)
|
|
local rightEnd (markMiddle + markExtend * 1.2)
|
|
|
|
include : dispiro
|
|
g4.down.start leftEnd aboveMarkTop [widths.heading markHalfStroke markHalfStroke DOWNWARD]
|
|
arcvh
|
|
g4.right.mid markMiddle (aboveMarkBot + markHalfStroke) [heading RIGHTWARD]
|
|
archv
|
|
g4.up.end rightEnd aboveMarkTop [heading UPWARD]
|
|
|
|
save 'breveAbove' 0x306
|
|
|
|
sketch # archAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'arch'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
local leftEnd (markMiddle - markExtend * 1.2)
|
|
local rightEnd (markMiddle + markExtend * 1.2)
|
|
|
|
include : dispiro
|
|
g4.up.start leftEnd aboveMarkBot [widths.heading markHalfStroke markHalfStroke UPWARD]
|
|
arcvh
|
|
g4.right.mid markMiddle (aboveMarkTop - markHalfStroke) [heading RIGHTWARD]
|
|
archv
|
|
g4.down.end rightEnd aboveMarkBot [heading DOWNWARD]
|
|
|
|
save 'archAbove' 0x311
|
|
|
|
sketch # hookAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'hook'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
local fine : Math.min markFine ((aboveMarkTop - aboveMarkBot) * 0.2)
|
|
|
|
local hookBot (aboveMarkBot - fine / 2)
|
|
local hookTop ([mix aboveMarkBot aboveMarkTop 0.9] + fine / 2)
|
|
include : dispiro
|
|
widths.lhs (fine * 2)
|
|
flat (markMiddle - fine * HVCONTRAST) hookBot [heading RIGHTWARD]
|
|
curl (markMiddle + fine * 0.4) hookBot [heading RIGHTWARD]
|
|
archv
|
|
g4.up.mid (markMiddle + markExtend - O) [mix hookBot hookTop (SMOOTHB / (SMOOTHB + SMOOTHA))] [heading UPWARD]
|
|
arcvh
|
|
flat (markMiddle + fine * 0.4) hookTop [heading LEFTWARD]
|
|
curl (markMiddle - markExtend + fine) hookTop [heading LEFTWARD]
|
|
|
|
save 'hookAbove' 0x309
|
|
|
|
sketch # doubleGraveAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'dblgrave'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
local m1 : markMiddle - markExtend * 0.85
|
|
local m2 : markMiddle + markExtend * 0.85
|
|
include : dispiro
|
|
flat (m1 + markStress) aboveMarkBot [widths markFine markFine]
|
|
curl (m1 - markExtend) aboveMarkTop [widths markStress markStress]
|
|
include : dispiro
|
|
flat (m2 + markStress) aboveMarkBot [widths markFine markFine]
|
|
curl (m2 - markExtend) aboveMarkTop [widths markStress markStress]
|
|
|
|
save 'doubleGraveAbove' 0x30F
|
|
|
|
sketch # doubleAcuteAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'dblacute'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
local m1 : markMiddle - markExtend * 0.85
|
|
local m2 : markMiddle + markExtend * 0.85
|
|
include : dispiro
|
|
flat (m1 - markStress) aboveMarkBot [widths markFine markFine]
|
|
curl (m1 + markExtend) aboveMarkTop [widths markStress markStress]
|
|
include : dispiro
|
|
flat (m2 - markStress) aboveMarkBot [widths markFine markFine]
|
|
curl (m2 + markExtend) aboveMarkTop [widths markStress markStress]
|
|
|
|
save 'doubleAcuteAbove' 0x30B
|
|
|
|
sketch # commaAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'comma'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
local radius : adviceBlackness 6
|
|
include : Ring (aboveMarkTop + commaOvershoot) (aboveMarkTop - radius * 2 + commaOvershoot) (markMiddle - radius) (markMiddle + radius)
|
|
include : dispiro
|
|
widths.rhs : Math.min radius (markFine * [linreg 16 2 90 1.75 (markHalfStroke * 2)])
|
|
straight.down.start (markMiddle + radius) (aboveMarkTop - radius + commaOvershoot)
|
|
quadcontrols 0 0.6
|
|
g4 [mix markMiddle (markMiddle - radius) 0.2] (aboveMarkBot - radius)
|
|
apply-transform : Upright
|
|
apply-transform : Translate 0 (DOTRADIUS * 0.3)
|
|
apply-transform : Italify
|
|
|
|
save 'commaAbove' 0x313
|
|
|
|
sketch # turnCommaAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'turnComma'
|
|
include glyphs.commaAbove
|
|
include : FlipAround markMiddle ([mix aboveMarkTop (aboveMarkBot - [adviceBlackness 6]) 0.5] + (DOTRADIUS * 0.3))
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
save 'turnCommaAbove' 0x312
|
|
|
|
sketch # revCommaAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'revComma'
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
local radius : adviceBlackness 6
|
|
include : Ring (aboveMarkTop + commaOvershoot) (aboveMarkTop - radius * 2 + commaOvershoot) (markMiddle - radius) (markMiddle + radius)
|
|
include : dispiro
|
|
widths.lhs : Math.min radius (markFine * [linreg 16 2 90 1.75 (markHalfStroke * 2)])
|
|
straight.down.start (markMiddle - radius) (aboveMarkTop - radius + commaOvershoot)
|
|
quadcontrols 0 0.6
|
|
g4 [mix markMiddle (markMiddle + radius) 0.2] (aboveMarkBot - radius)
|
|
apply-transform : Upright
|
|
apply-transform : Translate 0 (DOTRADIUS * 0.3)
|
|
apply-transform : Italify
|
|
|
|
save 'revCommaAbove' 0x314
|
|
|
|
sketch # barAbove
|
|
set-width 0
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
include : VBar markMiddle aboveMarkBot aboveMarkTop (markHalfStroke * 2)
|
|
|
|
save 'barAbove' 0x30D
|
|
|
|
sketch # dblBarAbove
|
|
set-width 0
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
include : VBar (markMiddle - markExtend * 0.75) aboveMarkBot aboveMarkTop (markHalfStroke * 2)
|
|
include : VBar (markMiddle + markExtend * 0.75) aboveMarkBot aboveMarkTop (markHalfStroke * 2)
|
|
|
|
save 'dblBarAbove' 0x30E
|
|
|
|
sketch # bridgeAbove
|
|
set-width 0
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
include : VBar (markMiddle - markExtend) aboveMarkBot aboveMarkTop (markFine * 2)
|
|
include : VBar (markMiddle + markExtend) aboveMarkBot aboveMarkTop (markFine * 2)
|
|
include : HBarTop (markMiddle - markExtend) (markMiddle + markExtend) aboveMarkTop (markFine * 2)
|
|
|
|
save 'bridgeAbove' 0x346
|
|
|
|
sketch # yerikAbove
|
|
set-width 0
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
include : dispiro
|
|
widths.center (markFine * 2)
|
|
g4 (markMiddle - markFine * 0.5) aboveMarkBot [heading UPWARD]
|
|
alsothruthem {{0.9 0.35} {0.1 0.65}} [heading UPWARD]
|
|
g4 (markMiddle + markFine * 0.5) aboveMarkTop [heading UPWARD]
|
|
|
|
save 'yerikAbove' 0x33E
|
|
|
|
sketch # candrabinduAbove
|
|
set-width 0
|
|
local fine : adviceBlackness 6.5
|
|
local yc : XH + ACCENT
|
|
local radius : Math.max (markExtend - DOTRADIUS) (fine * 1.35)
|
|
include : dispiro
|
|
widths.rhs : Math.min (markHalfStroke * 2) (fine * 1.25)
|
|
g4.down.start (markMiddle - radius) yc [heading DOWNWARD]
|
|
arcvh
|
|
g4.right.mid markMiddle (yc - radius)
|
|
archv
|
|
g4.up.end (markMiddle + radius) yc [heading UPWARD]
|
|
include : DotAt markMiddle (XH + ACCENT) fine
|
|
apply-transform : Upright
|
|
apply-transform : Translate 0 (fine * 0.5)
|
|
apply-transform : Italify
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
|
|
save 'candrabinduAbove' 0x310
|
|
|
|
sketch # variaAbove
|
|
set-width 0
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
include : dispiro
|
|
flat (markMiddle + markStress) (aboveMarkBot - markFine * 0.5) [widths markFine markFine]
|
|
curl (markMiddle - markExtend * 0.5) (aboveMarkTop + markStress * 0.25) [widths markStress markStress]
|
|
|
|
save 'variaAbove' 0x340
|
|
|
|
sketch # oxiaAbove
|
|
set-width 0
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
include : dispiro
|
|
flat (markMiddle - markStress) (aboveMarkBot - markFine * 0.5) [widths markFine markFine]
|
|
curl (markMiddle + markExtend * 0.5) (aboveMarkTop + markStress * 0.25) [widths markStress markStress]
|
|
|
|
save 'oxiaAbove' 0x341
|
|
|
|
sketch # perispomeniAbove
|
|
set-width 0
|
|
currentGlyph.shortName = 'perisp'
|
|
include glyphs.archAbove
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
save 'perispomeniAbove' 0x342
|
|
alias 'koronisAbove' 0x343 'commaAbove'
|
|
|
|
sketch # crossAbove
|
|
set-width 0
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
include : dispiro
|
|
flat (markMiddle - markExtend) aboveMarkTop [widths markFine markFine]
|
|
curl (markMiddle + markExtend) aboveMarkBot
|
|
include : dispiro
|
|
flat (markMiddle - markExtend) aboveMarkBot [widths markFine markFine]
|
|
curl (markMiddle + markExtend) aboveMarkTop
|
|
save 'crossAbove' 0x33D
|
|
|
|
|
|
### Below marks
|
|
symbol-block 'Below marks'
|
|
sketch # cedillaBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
local fine : Math.min markHalfStroke ((belowMarkTop - belowMarkBot) * 0.25)
|
|
|
|
local cedillaTop (belowMarkTop + fine * 0.85)
|
|
local cedillaBot belowMarkBot
|
|
include : dispiro
|
|
flat (markMiddle - fine * HVCONTRAST) cedillaTop [widths.heading 0 (fine * 2) RIGHTWARD]
|
|
curl markMiddle cedillaTop [heading RIGHTWARD]
|
|
archv
|
|
g4 (markMiddle + markExtend - O) [mix cedillaTop cedillaBot 0.5] [heading DOWNWARD]
|
|
arcvh
|
|
flat markMiddle cedillaBot [heading LEFTWARD]
|
|
curl (markMiddle - markExtend) cedillaBot [heading LEFTWARD]
|
|
include : VBar markMiddle 0 (cedillaTop - fine) (fine * 2)
|
|
|
|
save 'cedillaBelow' 0x327
|
|
|
|
sketch # ogonekBelow
|
|
set-width 0
|
|
|
|
local fine : markHalfStroke * [linreg 16 1 90 0.2 (markHalfStroke * 2)]
|
|
local ogonekBot : [mix belowMarkTop belowMarkBot 0.75] + markStress * 2
|
|
local ogonekLeft : markMiddle - markExtend * 0.5
|
|
local ogonekRight : markMiddle + markExtend * 0.85
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include : dispiro
|
|
g4.left.start markMiddle 0 [widths 0 (fine * 2)]
|
|
#archv
|
|
g4 ogonekLeft [mix 0 ogonekBot 0.5] [widths 0 ([mix fine markStress 0.75] * 2)]
|
|
#arcvh
|
|
flat (markMiddle + markExtend * 0.25) ogonekBot [widths 0 (markStress * 2)]
|
|
curl ogonekRight ogonekBot [heading RIGHTWARD]
|
|
|
|
save 'ogonekBelow' 0x328
|
|
|
|
sketch # ogonekTR
|
|
set-width 0
|
|
include glyphs.ogonekBelow
|
|
local ogonekBot : [mix belowMarkTop belowMarkBot 0.75] + markStress * 2
|
|
local ogonekRight : markMiddle + markExtend * 0.85
|
|
set-anchor 'trailing' MARK markMiddle 0 ogonekRight ogonekBot
|
|
|
|
save 'ogonekTR'
|
|
|
|
sketch # iotaBelow
|
|
set-width 0
|
|
set currentGlyph.shortName 'iota'
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include : VBar markMiddle belowMarkBot belowMarkTop (markHalfStroke * 2)
|
|
|
|
save 'iotaBelow' 0x345
|
|
|
|
sketch # iotaLF
|
|
set-width 0
|
|
set-anchor 'lf' MARK markMiddle 0 markMiddle belowMarkBot
|
|
include : VBar markMiddle belowMarkBot belowMarkTop (markHalfStroke * 2)
|
|
|
|
save 'iotaLF'
|
|
|
|
sketch # uptackBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include : VBar markMiddle belowMarkBot belowMarkTop (markFine * 2)
|
|
include : HBarBottom (markMiddle - markExtend) (markMiddle + markExtend) belowMarkBot (markFine * 2)
|
|
|
|
save 'uptackBelow' 0x31D
|
|
|
|
sketch # downtackBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include : VBar markMiddle belowMarkBot belowMarkTop (markFine * 2)
|
|
include : HBarTop (markMiddle - markExtend) (markMiddle + markExtend) belowMarkTop (markFine * 2)
|
|
|
|
save 'downtackBelow' 0x31E
|
|
|
|
sketch # lefttackBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include : VBar (markMiddle + markExtend) belowMarkBot belowMarkTop (markFine * 2)
|
|
include : HBar (markMiddle - markExtend) (markMiddle + markExtend) [mix belowMarkTop belowMarkBot 0.5] (markFine * 2)
|
|
|
|
save 'lefttackBelow' 0x318
|
|
|
|
sketch # righttackBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include : VBar (markMiddle - markExtend) belowMarkBot belowMarkTop (markFine * 2)
|
|
include : HBar (markMiddle - markExtend) (markMiddle + markExtend) [mix belowMarkTop belowMarkBot 0.5] (markFine * 2)
|
|
|
|
save 'righttackBelow' 0x319
|
|
|
|
sketch # leftAngleBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include : VBar (markMiddle + markExtend) belowMarkBot belowMarkTop (markFine * 2)
|
|
include : HBarTop (markMiddle - markExtend) (markMiddle + markExtend) belowMarkTop (markFine * 2)
|
|
|
|
save 'leftAngleBelow' 0x349
|
|
|
|
sketch # plusBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include : VBar markMiddle belowMarkBot belowMarkTop (markFine * 2)
|
|
include : HBar (markMiddle - markExtend) (markMiddle + markExtend) [mix belowMarkTop belowMarkBot 0.5] (markFine * 2)
|
|
|
|
save 'plusBelow' 0x31F
|
|
|
|
sketch # minusBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include : VBar (markMiddle - markExtend) belowMarkBot belowMarkTop (markFine * 2)
|
|
include : VBar (markMiddle + markExtend) belowMarkBot belowMarkTop (markFine * 2)
|
|
include : HBar (markMiddle - markExtend) (markMiddle + markExtend) [mix belowMarkTop belowMarkBot 0.5] (markFine * 2)
|
|
|
|
save 'minusBelow' 0x320
|
|
|
|
sketch # bridgeBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include : VBar (markMiddle - markExtend) belowMarkBot belowMarkTop (markFine * 2)
|
|
include : VBar (markMiddle + markExtend) belowMarkBot belowMarkTop (markFine * 2)
|
|
include : HBarTop (markMiddle - markExtend) (markMiddle + markExtend) belowMarkTop (markFine * 2)
|
|
|
|
save 'bridgeBelow' 0x32A
|
|
|
|
sketch # boxBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
local boxsw : Math.min (markFine * 2) ((belowMarkTop - belowMarkBot) / 3)
|
|
|
|
include : VBar (markMiddle - markExtend) belowMarkBot belowMarkTop (markFine * 2)
|
|
include : VBar (markMiddle + markExtend) belowMarkBot belowMarkTop (markFine * 2)
|
|
include : HBarBottom (markMiddle - markExtend) (markMiddle + markExtend) belowMarkBot boxsw
|
|
include : HBarTop (markMiddle - markExtend) (markMiddle + markExtend) belowMarkTop boxsw
|
|
|
|
save 'boxBelow' 0x33B
|
|
|
|
sketch # equalBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
local boxsw : Math.min (markFine * 2) ((belowMarkTop - belowMarkBot) / 3)
|
|
|
|
include : HBarBottom (markMiddle - markExtend) (markMiddle + markExtend) belowMarkBot boxsw
|
|
include : HBarTop (markMiddle - markExtend) (markMiddle + markExtend) belowMarkTop boxsw
|
|
|
|
save 'equalBelow' 0x347
|
|
|
|
sketch # dblBreveBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
local extend : (belowMarkTop - belowMarkBot - markHalfStroke) * 1.25
|
|
|
|
include : dispiro
|
|
g4.down.start (markMiddle - extend) belowMarkTop [widths.heading markHalfStroke markHalfStroke DOWNWARD]
|
|
arcvh
|
|
g4.right.mid [mix markMiddle (markMiddle - extend) 0.5] (belowMarkBot + markHalfStroke) [heading RIGHTWARD]
|
|
archv
|
|
g4.up.end markMiddle belowMarkTop [heading UPWARD]
|
|
include : dispiro
|
|
g4.down.start markMiddle belowMarkTop [widths.heading markHalfStroke markHalfStroke DOWNWARD]
|
|
arcvh
|
|
g4.right.mid [mix markMiddle (markMiddle + extend) 0.5] (belowMarkBot + markHalfStroke) [heading RIGHTWARD]
|
|
archv
|
|
g4.up.end (markMiddle + extend) belowMarkTop [heading UPWARD]
|
|
|
|
save 'dblBreveBelow' 0x32B
|
|
|
|
sketch # dblArchBelow
|
|
set-width 0
|
|
include glyphs.dblBreveBelow
|
|
include : FlipAround markMiddle [mix belowMarkTop belowMarkBot 0.5]
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
save 'dblArchBelow' 0x33C
|
|
|
|
sketch # leftHalfCircleBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
include : dispiro
|
|
g4.left.start markMiddle belowMarkTop [widths.heading markFine markFine LEFTWARD]
|
|
archv
|
|
g4.down.mid (markMiddle - (belowMarkTop - belowMarkBot) / 2) [mix belowMarkTop belowMarkBot 0.5] [heading DOWNWARD]
|
|
arcvh
|
|
g4.right.end markMiddle belowMarkBot [heading RIGHTWARD]
|
|
apply-transform : Translate ((belowMarkTop - belowMarkBot) / 4) 0
|
|
|
|
save 'leftHalfCircleBelow' 0x31C
|
|
|
|
sketch # rightHalfCircleBelow
|
|
set-width 0
|
|
include glyphs.leftHalfCircleBelow
|
|
include : FlipAround markMiddle [mix belowMarkTop belowMarkBot 0.5]
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
save 'rightHalfCircleBelow' 0x339
|
|
|
|
sketch # leftHalfCircleAbove
|
|
set-width 0
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
include glyphs.rightHalfCircleBelow
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'leftHalfCircleAbove' 0x351
|
|
|
|
sketch # rightHalfCircleAbove
|
|
set-width 0
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
include glyphs.leftHalfCircleBelow
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'rightHalfCircleAbove' 0x357
|
|
# Turned below marks
|
|
sketch # graveBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
include glyphs.graveAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'graveBelow' 0x316
|
|
|
|
sketch # acuteBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
include glyphs.acuteAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'acuteBelow' 0x317
|
|
|
|
sketch # dotBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
include glyphs.dotAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'dotBelow' 0x323
|
|
|
|
sketch # dieresisBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
include glyphs.dieresisAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'dieresisBelow' 0x324
|
|
|
|
sketch # tildeBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
include glyphs.tildeAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'tildeBelow' 0x330
|
|
|
|
sketch # ringBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
include glyphs.ringAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'ringBelow' 0x325
|
|
|
|
sketch # macronBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include glyphs.macronAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'macronBelow' 0x331
|
|
|
|
sketch # invBridgeBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include glyphs.bridgeAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'invBridgeBelow' 0x33A
|
|
|
|
sketch # underlineBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include glyphs.overlineAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'underlineBelow' 0x332
|
|
|
|
sketch # dblUnderlineBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include glyphs.dblOverlineAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'dblUnderlineBelow' 0x333
|
|
|
|
sketch # circumflexBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include glyphs.caronAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'circumflexBelow' 0x32D
|
|
|
|
sketch # caronBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include glyphs.circumflexAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'caronBelow' 0x32C
|
|
|
|
sketch # breveBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include glyphs.archAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'breveBelow' 0x32E
|
|
|
|
sketch # archBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include glyphs.breveAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'archBelow' 0x32F
|
|
|
|
sketch # commaBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include glyphs.turnCommaAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'commaBelow' 0x326
|
|
|
|
sketch # barBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
include glyphs.barAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'barBelow' 0x329
|
|
|
|
sketch # dblBarBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
include glyphs.dblBarAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
|
|
save 'dblBarBelow' 0x348
|
|
|
|
sketch # crossBelow
|
|
set-width 0
|
|
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
|
|
|
include glyphs.crossAbove
|
|
include : FlipAround markMiddle (XH / 2)
|
|
save 'crossBelow' 0x353
|
|
|
|
# horn and angle marks
|
|
symbol-block 'Corner marks'
|
|
sketch # horn
|
|
set-width 0
|
|
local radius : markHalfStroke * 1.5
|
|
include : Ring (XH + ACCENT + radius) (XH + ACCENT - radius) (markMiddle - radius) (markMiddle + radius)
|
|
include : dispiro
|
|
g4 (markMiddle + radius) (XH + ACCENT) [widths 0 (markFine * 1.75)]
|
|
quadcontrols 0 0.75 5 important
|
|
g4 (markMiddle - radius - markHalfStroke) (aboveMarkBot - radius)
|
|
apply-transform : Upright
|
|
apply-transform : Translate (-markMiddle + radius * 0.35) 0
|
|
apply-transform : Italify
|
|
set-anchor 'topright' MARK 0 (aboveMarkBot + markFine * 0.75) 0 aboveMarkTop
|
|
|
|
save 'horn' 0x31B
|
|
|
|
sketch # leftangleTR
|
|
set-width 0
|
|
include : VBarLeft 0 aboveMarkBot aboveMarkTop (markFine * 2)
|
|
include : HBarTop (-markExtend * 1.5) 0 aboveMarkTop (markFine * 2)
|
|
set-anchor 'topright' MARK 0 XH 0 aboveMarkTop
|
|
|
|
save 'leftangleTR' 0x31A
|
|
|
|
sketch # dotTR
|
|
set-width 0
|
|
include : Ring (XH + ACCENT + DOTRADIUS) (XH + ACCENT - DOTRADIUS) (0 - DOTRADIUS) (0 + DOTRADIUS) true
|
|
set-anchor 'topright' MARK 0 XH 0 aboveMarkTop
|
|
|
|
save 'dotTR' 0x358
|
|
|
|
sketch # commaTR
|
|
set-width 0
|
|
include glyphs.commaAbove
|
|
apply-transform : Upright
|
|
apply-transform : Translate (RIGHTSB - MIDDLE - OX) (XH - aboveMarkTop - commaOvershoot)
|
|
apply-transform : Italify
|
|
set-anchor 'topright' MARK 0 XH 0 aboveMarkTop
|
|
|
|
save 'commaTR' 0x315
|
|
|
|
sketch # rtailBR
|
|
set-width 0
|
|
|
|
set-anchor 'bottomright' MARK 0 0 0 belowMarkBot
|
|
include : dispiro
|
|
widths.rhs
|
|
flat 0 (-O) [heading DOWNWARD]
|
|
curl 0 0 [heading DOWNWARD]
|
|
straight.right.end (HOOKX - HALFSTROKE * HVCONTRAST) (-HOOK + HALFSTROKE)
|
|
|
|
save 'rtailBR' 0x322
|
|
|
|
sketch # ltailBR
|
|
set-width 0
|
|
|
|
set-anchor 'bottomright' MARK 0 0 0 belowMarkBot
|
|
include : dispiro
|
|
widths.rhs
|
|
flat 0 (-O) [heading DOWNWARD]
|
|
curl 0 0 [heading DOWNWARD]
|
|
straight.left.end (-HOOKX - HALFSTROKE * HVCONTRAST) (-HOOK - HALFSTROKE)
|
|
save 'ltailBR' 0x321
|
|
|
|
# Overlay Marks
|
|
symbol-block 'Overlay Marks'
|
|
sketch # tildeOver
|
|
set-width 0
|
|
set-anchor 'overlay' MARK markMiddle (XH / 2) markMiddle (XH / 2)
|
|
include glyphs.tildeAbove
|
|
apply-transform : Upright
|
|
apply-transform : Translate 0 (XH / 2 - [mix aboveMarkTop aboveMarkBot 0.5])
|
|
apply-transform : Italify
|
|
|
|
save 'tildeOver' 0x334
|
|
|
|
sketch # barOver
|
|
set-width 0
|
|
set-anchor 'overlay' MARK markMiddle (XH / 2) markMiddle (XH / 2)
|
|
include : HOverlayBar (markMiddle - LONGJUT * 0.75) (markMiddle + LONGJUT * 0.75) (XH / 2)
|
|
|
|
save 'barOver' 0x335
|
|
|
|
sketch # longBarOver
|
|
set-width 0
|
|
set-anchor 'overlay' MARK markMiddle (XH / 2) markMiddle (XH / 2)
|
|
include : HOverlayBar ([mix 0 SB 0.5] - WIDTH) ([mix WIDTH RIGHTSB 0.5] - WIDTH) (XH / 2)
|
|
|
|
save 'longBarOver' 0x336
|
|
|
|
sketch # shortSlashOver
|
|
set-width 0
|
|
set-anchor 'overlay' MARK markMiddle (XH / 2) markMiddle (XH / 2)
|
|
include : FlatSlashShape markMiddle (XH / 2) (0.5 * OVERLAYSTROKE)
|
|
|
|
save 'shortSlashOver' 0xE090
|
|
|
|
sketch # slashOver
|
|
set-width 0
|
|
local fine : 0.375 * OVERLAYSTROKE
|
|
set-anchor 'slash' MARK markMiddle (XH / 2) markMiddle (XH / 2)
|
|
include : dispiro
|
|
flat (SB - O * 3 + fine - WIDTH) (XH * (-0.1)) [widths fine fine]
|
|
curl (RIGHTSB + O * 3 - fine - WIDTH) (XH * 1.1)
|
|
|
|
save 'slashOver' 0x337
|
|
|
|
sketch # longSlashOver
|
|
set-width 0
|
|
local fine : 0.375 * OVERLAYSTROKE
|
|
set-anchor 'slash' MARK markMiddle (XH / 2) markMiddle (XH / 2)
|
|
include : dispiro
|
|
flat (SB - O * 3 + fine - WIDTH) (XH * 0.5 - CAP * 0.6) [widths fine fine]
|
|
curl (RIGHTSB + O * 3 - fine - WIDTH) (XH * 0.5 + CAP * 0.6)
|
|
save 'longSlashOver' 0x338
|
|
|
|
# Double-character arcs
|
|
symbol-block 'Tie marks'
|
|
sketch # tieAbove
|
|
set-width 0
|
|
include : dispiro
|
|
widths.rhs (markHalfStroke * 2)
|
|
g4 [mix 0 markMiddle 1.25] aboveMarkBot
|
|
quadcontrols 0.5 1
|
|
g4.right.mid 0 aboveMarkTop [heading RIGHTWARD]
|
|
quadcontrols 0.5 0
|
|
g4 [mix 0 markMiddle (-1.25)] aboveMarkBot
|
|
apply-transform : Upright
|
|
apply-transform : Translate 0 (CAP - XH)
|
|
apply-transform : Italify
|
|
save 'tieAbove' 0x361
|
|
|
|
sketch # turnTieAbove
|
|
set-width 0
|
|
include : dispiro
|
|
widths.lhs (markHalfStroke * 2)
|
|
g4 [mix 0 markMiddle 1.25] aboveMarkTop
|
|
quadcontrols 0.5 1
|
|
g4.right.mid 0 aboveMarkBot [heading RIGHTWARD]
|
|
quadcontrols 0.5 0
|
|
g4 [mix 0 markMiddle (-1.25)] aboveMarkTop
|
|
apply-transform : Upright
|
|
apply-transform : Translate 0 (CAP - XH)
|
|
apply-transform : Italify
|
|
save 'turnTieAbove' 0x35D
|
|
turned 'tieBelow' 0x35C 'tieAbove' 0 (XH / 2)
|
|
|
|
sketch # overlineTieAbove
|
|
set-width 0
|
|
include : dispiro
|
|
widths.center (markHalfStroke * 2)
|
|
flat [mix 0 markMiddle 1.25] (XH + ACCENT)
|
|
curl [mix 0 markMiddle (-1.25)] (XH + ACCENT)
|
|
apply-transform : Upright
|
|
apply-transform : Translate 0 (CAP - XH)
|
|
apply-transform : Italify
|
|
save 'overlineTieAbove' 0x35E
|
|
composite 'underlineTieBelow' glyphs.overlineTieAbove [FlipAround 0 (XH / 2)] [into-unicode 0x35F]
|
|
|
|
symbol-block 'Greek Polytonic Marks'
|
|
define [GreekLRDoubleMark id unicode leftGlyph rightGlyph] : begin
|
|
sketch # Combining double mark
|
|
set-width 0
|
|
local k : -WIDTH * 0.15
|
|
|
|
include leftGlyph
|
|
apply-transform : Translate (2 * k) 0
|
|
include rightGlyph
|
|
apply-transform : Translate (0 - k) 0
|
|
|
|
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
|
|
|
save id
|
|
|
|
sketch # Spaced double mark
|
|
include glyphs.space AS_BASE
|
|
include glyphs.(id)
|
|
|
|
save ('spaced' + id) unicode
|
|
|
|
GreekLRDoubleMark 'psilivaria' 0x1FCD glyphs.commaAbove glyphs.variaAbove
|
|
GreekLRDoubleMark 'psilioxia' 0x1FCE glyphs.commaAbove glyphs.oxiaAbove
|
|
GreekLRDoubleMark 'dasiavaria' 0x1FDD glyphs.revCommaAbove glyphs.variaAbove
|
|
GreekLRDoubleMark 'dasiaoxia' 0x1FDE glyphs.revCommaAbove glyphs.oxiaAbove
|
|
|
|
local yc : aboveMarkTop - [adviceBlackness 6] + DOTRADIUS * 0.3 + commaOvershoot
|
|
|
|
sketch # psiliperispomeni
|
|
set-width 0
|
|
include glyphs.commaAbove
|
|
local radius : Math.max (markExtend - [adviceBlackness 6]) ([adviceBlackness 6] * 1.5)
|
|
include : dispiro
|
|
widths.lhs : Math.min (markHalfStroke * 2) ([adviceBlackness 6.5] * 1.25)
|
|
g4.up.start (markMiddle - radius) yc [heading UPWARD]
|
|
arcvh
|
|
g4.right.mid markMiddle (yc + radius)
|
|
archv
|
|
g4.down.end (markMiddle + radius) yc [heading DOWNWARD]
|
|
set-anchor 'above' MARK markMiddle XH markMiddle (aboveMarkTop + markHalfStroke * 2)
|
|
|
|
save 'psiliperispomeni'
|
|
|
|
sketch # spaced_psiliperispomeni
|
|
include glyphs.space AS_BASE
|
|
include glyphs.psiliperispomeni
|
|
|
|
save 'spaced_psiliperispomeni' 0x1FCF
|
|
|
|
sketch # dasiaperispomeni
|
|
set-width 0
|
|
include glyphs.revCommaAbove
|
|
local radius : Math.max (markExtend - [adviceBlackness 6]) ([adviceBlackness 6] * 1.5)
|
|
include : dispiro
|
|
widths.lhs : Math.min (markHalfStroke * 2) ([adviceBlackness 6.5] * 1.25)
|
|
g4.up.start (markMiddle - radius) yc [heading UPWARD]
|
|
arcvh
|
|
g4.right.mid markMiddle (yc + radius)
|
|
archv
|
|
g4.down.end (markMiddle + radius) yc [heading DOWNWARD]
|
|
set-anchor 'above' MARK markMiddle XH markMiddle (aboveMarkTop + markHalfStroke * 2)
|
|
|
|
save 'dasiaperispomeni'
|
|
|
|
sketch # spaced_dasiaperispomeni
|
|
include glyphs.space AS_BASE
|
|
include glyphs.dasiaperispomeni
|
|
save 'spaced_dasiaperispomeni' 0x1FDF |