734 lines
No EOL
20 KiB
Text
734 lines
No EOL
20 KiB
Text
###### LOWER CASE
|
|
|
|
### o b d p q g
|
|
create-glyph 'o' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'o'
|
|
include eMarks
|
|
|
|
include : smallo XH 0 SB RIGHTSB
|
|
}
|
|
define [oLeft] : glyph-construction {
|
|
include : spiro {
|
|
widths.lhs
|
|
g4 [MIDDLE - OMIDCOR_S + HALFSTROKE / 4] XO
|
|
archv
|
|
flat [SB + HALFSTROKE * ITALICCOR] [XH - SMALLSMOOTHA] [widths HALFSTROKE 0]
|
|
curl [SB + HALFSTROKE * ITALICCOR] [0 + SMALLSMOOTHB] [widths HALFSTROKE 0]
|
|
arcvh
|
|
g4 [MIDDLE + OMIDCOR_S + HALFSTROKE / 4] O [widths STROKE 0]
|
|
archv
|
|
flat [RIGHTSB - O] [0 + SMALLSMOOTHA]
|
|
curl [RIGHTSB - O] [XH - SMALLSMOOTHB]
|
|
arcvh
|
|
close
|
|
}
|
|
}
|
|
define [oRight] : glyph-construction {
|
|
include : create-glyph [oLeft]
|
|
include : FlipAround MIDDLE [XH / 2]
|
|
}
|
|
create-glyph 'p' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'p'
|
|
include pMarks
|
|
|
|
include : oLeft
|
|
include : create-stroke
|
|
:.start-from SB XH
|
|
:.heads-to DOWNWARD
|
|
:.set-width STROKE 0
|
|
:.line-to SB DESCENDER
|
|
:.heads-to DOWNWARD
|
|
}
|
|
create-glyph 'b' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'b'
|
|
include bMarks
|
|
|
|
include : oLeft
|
|
include : create-stroke
|
|
:.start-from SB 0
|
|
:.heads-to UPWARD
|
|
:.set-width 0 STROKE
|
|
:.line-to SB CAP
|
|
:.heads-to UPWARD
|
|
}
|
|
create-glyph 'q' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'q'
|
|
include pMarks
|
|
|
|
include : oRight
|
|
include : create-stroke
|
|
:.start-from RIGHTSB XH
|
|
:.heads-to DOWNWARD
|
|
:.set-width 0 STROKE
|
|
:.line-to RIGHTSB DESCENDER
|
|
:.heads-to DOWNWARD
|
|
}
|
|
create-glyph 'd' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'd'
|
|
include bMarks
|
|
|
|
include : oRight
|
|
include : create-stroke
|
|
:.start-from RIGHTSB 0
|
|
:.heads-to UPWARD
|
|
:.set-width STROKE 0
|
|
:.line-to RIGHTSB CAP
|
|
:.heads-to UPWARD
|
|
:.to-outline
|
|
}
|
|
create-glyph 'g' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'g'
|
|
include pMarks
|
|
|
|
include : smallo XH [XH * GBARPOS - O] SB [RIGHTSB - 0.3 * SB]
|
|
|
|
local gleftx [SB * 0.8 + O]
|
|
local grightx [RIGHTSB + SB * 0.1 - O]
|
|
local groundy : [mix DESCENDER [XH * GBARPOS] 0.7] + HALFSTROKE
|
|
|
|
include : create-stroke
|
|
:.start-from MIDDLE [XH * GBARPOS]
|
|
:.set-width 0 [STROKE * 0.75]
|
|
:.arc-hv-to [SB * 1.25 + STROKE] [mix groundy [XH * GBARPOS] 0.5]
|
|
:.set-width 0 STROKE
|
|
:.arc-vh-to [MIDDLE + DESCENDER * 0.15] groundy
|
|
:.line-to [MIDDLE - DESCENDER * 0.15] groundy
|
|
:.arc-hv-to grightx [mix [DESCENDER + O] groundy 0.53]
|
|
:.arc-vh-to [mix gleftx grightx 0.5] [DESCENDER + O]
|
|
:.arc-hv-to gleftx [mix [DESCENDER + O] groundy 0.53]
|
|
:.arc-vh-to [MIDDLE + DESCENDER * 0.15] groundy
|
|
|
|
start-from [RIGHTSB + 0.25 * SB] XH
|
|
line-to [RIGHTSB + 0.25 * SB] [XH - STROKE]
|
|
line-to MIDDLE [XH - STROKE - O]
|
|
line-to MIDDLE XH
|
|
}
|
|
|
|
### c e t
|
|
create-glyph 'c' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'c'
|
|
include eMarks
|
|
|
|
include : spiro {
|
|
widths.lhs
|
|
g4 RIGHTSB [XH - HOOK]
|
|
hookstart XO
|
|
flat [SB + O] [XH - SMALLSMOOTHA]
|
|
curl [SB + O] [0 + SMALLSMOOTHB]
|
|
hookend O
|
|
g4 RIGHTSB HOOK
|
|
}
|
|
}
|
|
define [SmallEShape top stroke barpos] : glyph-construction {
|
|
local barbottom [top * [fallback barpos EBARPOS]]
|
|
local hookx [RIGHTSB - OXHOOK + TAILADJX * globalTransform.yx]
|
|
local hookmiddle : [mix [SB + O] hookx 0.55] + OMIDCOR_S
|
|
|
|
include : spiro {
|
|
widths.lhs
|
|
flat [RIGHTSB - O] barbottom [heading UPWARD]
|
|
curl [RIGHTSB - O] [top - SMALLSMOOTHB]
|
|
arcvh
|
|
g4 [MIDDLE - OMIDCOR_S] [top - O]
|
|
archv
|
|
flat [SB + O] [top - SMALLSMOOTHA]
|
|
curl [SB + O] [0 + SMALLSMOOTHB]
|
|
hookend O
|
|
g4 [RIGHTSB - O] HOOK
|
|
}
|
|
include : create-stroke
|
|
:.start-from [SB + [stroke / 2]] barbottom
|
|
:.set-width stroke 0
|
|
:.heads-to RIGHTWARD
|
|
:.line-to [RIGHTSB - [stroke / 2]] barbottom
|
|
:.heads-to RIGHTWARD
|
|
}
|
|
create-glyph 'e.upright' : glyph-construction {
|
|
set-width WIDTH
|
|
dont-export
|
|
|
|
include : SmallEShape XH STROKE
|
|
}
|
|
create-glyph 'e.italic' : glyph-construction {
|
|
set-width WIDTH
|
|
dont-export
|
|
|
|
local barbottom [XH * EBARPOS]
|
|
|
|
include : spiro-stroke {
|
|
widths.lhs
|
|
g4 [SB + O + STROKE] barbottom
|
|
archv 8
|
|
g4 [RIGHTSB - O] [XH - SMALLSMOOTHB * 0.95]
|
|
#complexThru [alsothru 0.015 0.4] [arcvh]
|
|
arcvh 8
|
|
g4 [MIDDLE - OMIDCOR_S] [XH - O]
|
|
archv
|
|
flat [SB + O] [XH - SMALLSMOOTHA]
|
|
curl [SB + O] [0 + SMALLSMOOTHB]
|
|
hookend O
|
|
g4 [RIGHTSB - O] HOOK
|
|
}
|
|
}
|
|
create-glyph 'e' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'e'
|
|
include eMarks
|
|
|
|
if [para.italicangle > 0] {
|
|
then : include glyphs.'e.italic'
|
|
else : include glyphs.'e.upright'
|
|
}
|
|
}
|
|
define [SmallTShape top bot] : glyph-construction {
|
|
local center : MIDDLE - TBALANCE + HALFSTROKE
|
|
local hookx [center - STROKE * 2 + [WIDTH - SB * 2] * 0.8 - OXHOOK + TAILADJX * globalTransform.yx]
|
|
local turn : [mix center hookx 0.5] + OMIDCOR_S - ITALICCORS
|
|
local smb : [turn - center] * 1.2
|
|
|
|
include : spiro {
|
|
widths.rhs
|
|
flat center top [heading DOWNWARD]
|
|
curl center [bot + smb + STROKE]
|
|
arcvh
|
|
g4 turn [bot + O + STROKE]
|
|
quadcontrols [KAPPA_HOOK + TAILADJKAPPA * globalTransform.yx + 0.1] 0
|
|
g4 hookx [bot + HOOK + STROKE * 0.24]
|
|
}
|
|
|
|
include : HBarTop [center - HALFSTROKE - LONGJUT + TBALANCE2] [center - HALFSTROKE + LONGJUT + TBALANCE2] [top * XH / CAP]
|
|
}
|
|
create-glyph 't' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 't'
|
|
include bMarks
|
|
include : SmallTShape CAP 0
|
|
}
|
|
### a u
|
|
create-glyph 'a.upright' : glyph-construction {
|
|
set-width WIDTH
|
|
dont-export
|
|
include eMarks
|
|
set-anchor 'trailing' BASE [RIGHTSB - markHalfStroke] 0
|
|
local bartop [XH * BARPOS + HALFSTROKE]
|
|
local lowmiddle : mix SB [RIGHTSB - STROKE] [linreg 80 0.55 120 0.625 STROKE]
|
|
local barsmooth : mix SB RIGHTSB 0.6
|
|
include : create-stroke
|
|
:.start-from RIGHTSB 0
|
|
:.heads-to UPWARD
|
|
:.set-width STROKE 0
|
|
:.line-to RIGHTSB [XH - SMOOTHA]
|
|
:.arc-vh-to [MIDDLE - OMIDCOR_S] XO
|
|
:.curve-to [MIDDLE - KAPPA_AHOOK * [MIDDLE - SB]] XO [SB + OXHOOK] [XH - AHOOK]
|
|
include : create-stroke
|
|
:.start-from [lowmiddle + OMIDCOR_S] O
|
|
:.set-width 0 STROKE
|
|
:.arc-hv-to [SB + O] [bartop * 0.45]
|
|
:.arc-vh-to barsmooth bartop
|
|
:.line-to RIGHTSB bartop
|
|
:.heads-to RIGHTWARD
|
|
include : create-stroke
|
|
:.start-from [lowmiddle + OMIDCOR_S - ITALICCORS] [O + STROKE]
|
|
:.set-width 0 STROKE
|
|
:.heads-to RIGHTWARD
|
|
:.arc-hv-to [RIGHTSB - STROKE] [SMALLSMOOTHB * 0.65]
|
|
:.heads-to UPWARD
|
|
:.set-width 0 [STROKE * 0.4]
|
|
}
|
|
create-glyph 'a.italic' : glyph-construction {
|
|
set-width WIDTH
|
|
dont-export
|
|
include eMarks
|
|
set-anchor 'trailing' BASE [RIGHTSB - markHalfStroke] 0
|
|
include : oRight
|
|
include : create-stroke
|
|
:.start-from RIGHTSB 0
|
|
:.heads-to UPWARD
|
|
:.set-width STROKE 0
|
|
:.line-to RIGHTSB XH
|
|
:.heads-to UPWARD
|
|
}
|
|
|
|
create-glyph 'a' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'a'
|
|
|
|
if [para.italicangle > 0] {
|
|
then : include glyphs.'a.italic' AS_BASE
|
|
else : include glyphs.'a.upright' AS_BASE
|
|
}
|
|
}
|
|
|
|
### n u h m
|
|
create-glyph 'n' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'n'
|
|
include eMarks
|
|
|
|
include : nShoulder [SB + STROKE * ITALICCOR] MIDDLE RIGHTSB [STROKE * 0.4]
|
|
include : VBarLeft SB 0 XH
|
|
}
|
|
create-glyph 'u' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'u'
|
|
include eMarks
|
|
set-anchor 'trailing' BASE [RIGHTSB - markHalfStroke] 0
|
|
include glyphs.n
|
|
include : FlipAround MIDDLE [XH / 2]
|
|
}
|
|
create-glyph 'h' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'h'
|
|
include bMarks
|
|
|
|
include : nShoulder [SB + STROKE * ITALICCOR] MIDDLE RIGHTSB [STROKE * 0.4]
|
|
include : create-stroke
|
|
:.start-from SB 0
|
|
:.heads-to UPWARD
|
|
:.set-width 0 STROKE
|
|
:.line-to SB CAP
|
|
:.heads-to UPWARD
|
|
}
|
|
create-glyph 'm' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'm'
|
|
include eMarks
|
|
|
|
local sw : adviceBlackness 3.5
|
|
local m1 : mix [SB + O] [MIDDLE + sw / 2 * ITALICCOR] 0.5
|
|
local m2 : mix [RIGHTSB - O] [MIDDLE - sw / 2 * ITALICCOR] 0.5
|
|
include : mShoulderSpiro [SB + O + sw] [MIDDLE + sw / 2 * ITALICCOR] XH 0 sw [sw * 0.4]
|
|
include : mShoulderSpiro [MIDDLE + sw * 0.48 * ITALICCOR] [RIGHTSB - O] XH 0 sw [sw * 0.8]
|
|
include : create-stroke
|
|
:.start-from [SB + O] 0
|
|
:.heads-to UPWARD
|
|
:.set-width 0 sw
|
|
:.line-to [SB + O] XH
|
|
:.heads-to UPWARD
|
|
}
|
|
|
|
### i j l
|
|
create-glyph 'dotlessi.straight' : glyph-construction {
|
|
dont-export
|
|
include eMarks
|
|
include : create-stroke
|
|
:.start-from MIDDLE 0
|
|
:.heads-to UPWARD
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.line-to MIDDLE XH
|
|
:.heads-to UPWARD
|
|
}
|
|
create-glyph 'dotlessi.hooky' : glyph-construction {
|
|
dont-export
|
|
include glyphs.'dotlessi.straight' AS_BASE
|
|
include : leftwardTopSerif MIDDLE XH LONGJUT
|
|
}
|
|
create-glyph 'dotlessi.zshaped' : glyph-construction {
|
|
dont-export
|
|
include glyphs.'dotlessi.hooky' AS_BASE
|
|
include : rightwardBottomSerif MIDDLE 0 LONGJUT
|
|
}
|
|
create-glyph 'dotlessi.serifed' : glyph-construction {
|
|
dont-export
|
|
include eMarks
|
|
|
|
local balance ILBALANCE
|
|
include : create-stroke
|
|
:.start-from [MIDDLE + balance] 0
|
|
:.heads-to UPWARD
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.line-to [MIDDLE + balance] XH
|
|
:.heads-to UPWARD
|
|
include : leftwardTopSerif [MIDDLE + balance] XH [LONGJUT - balance]
|
|
include : rightwardBottomSerif MIDDLE 0 LONGJUT
|
|
include : leftwardBottomSerif MIDDLE 0 LONGJUT
|
|
}
|
|
create-glyph 'dotlessi.italic' : glyph-construction {
|
|
local left : MIDDLE - HALFSTROKE
|
|
local right : mix SB RIGHTSB 1.1
|
|
local middle : mix left right 0.55
|
|
include : spiro {
|
|
widths.lhs
|
|
flat left XH [heading DOWNWARD]
|
|
curl left [SMALLSMOOTHB * 0.7]
|
|
hookend O
|
|
g4 right [SHOOK * 0.8]
|
|
}
|
|
include : create-stroke
|
|
:.start-from [left - LONGJUT + ILBALANCE + HALFSTROKE] XH
|
|
:.set-width 0 STROKE
|
|
:.line-to left XH
|
|
include eMarks
|
|
set-anchor 'above' BASE [left + HALFSTROKE] XH
|
|
set-anchor 'below' BASE middle 0
|
|
}
|
|
select-variant 'dotlessi' 0x131 [if para.italicangle 'italic' 'serifed']
|
|
|
|
create-glyph 'i' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'i'
|
|
include glyphs.dotlessi AS_BASE
|
|
include glyphs.dotAbove
|
|
}
|
|
|
|
create-glyph 'dotlessj.straight' : glyph-construction {
|
|
dont-export
|
|
include pMarks
|
|
set-anchor 'above' BASE [MIDDLE + JBALANCE] XH
|
|
set-anchor 'overlay' BASE [MIDDLE + JBALANCE] [XH / 2]
|
|
include : spiro {
|
|
widths.center
|
|
flat [MIDDLE + JBALANCE] XH [heading DOWNWARD]
|
|
curl [MIDDLE + JBALANCE] 0
|
|
arcvh 3
|
|
g4 [MIDDLE + DESCENDER * 0.85] [DESCENDER + HALFSTROKE]
|
|
}
|
|
}
|
|
create-glyph 'dotlessj.serifed' : glyph-construction {
|
|
dont-export
|
|
include pMarks
|
|
include glyphs.'dotlessj.straight' AS_BASE
|
|
include : leftwardTopSerif [MIDDLE + JBALANCE] XH LONGJUT
|
|
}
|
|
|
|
select-variant 'dotlessj' 0x237 'serifed'
|
|
create-glyph 'j' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'j'
|
|
|
|
include glyphs.dotlessj AS_BASE
|
|
include glyphs.dotAbove
|
|
}
|
|
|
|
create-glyph 'l.straight' : glyph-construction {
|
|
include bMarks
|
|
dont-export
|
|
include : VBar MIDDLE 0 CAP
|
|
}
|
|
create-glyph 'l.hooky' : glyph-construction {
|
|
include bMarks
|
|
dont-export
|
|
include : VBar MIDDLE 0 [CAP - STROKE]
|
|
include : leftwardTopSerif MIDDLE CAP LONGJUT
|
|
}
|
|
create-glyph 'l.zshaped' : glyph-construction {
|
|
include bMarks
|
|
dont-export
|
|
include glyphs.'l.hooky'
|
|
include : rightwardBottomSerif MIDDLE 0 LONGJUT
|
|
}
|
|
create-glyph 'l.serifed' : glyph-construction {
|
|
include bMarks
|
|
dont-export
|
|
local balance ILBALANCE
|
|
include : create-stroke
|
|
:.start-from [MIDDLE + balance] 0
|
|
:.heads-to UPWARD
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.line-to [MIDDLE + balance] CAP
|
|
:.heads-to UPWARD
|
|
include : leftwardTopSerif [MIDDLE + balance] CAP [LONGJUT - balance]
|
|
include : centerBottomSerif MIDDLE 0 LONGJUT
|
|
set this.barx [MIDDLE + balance]
|
|
}
|
|
create-glyph 'l.italic' : glyph-construction {
|
|
local left : mix SB RIGHTSB 0.3
|
|
local right : mix SB RIGHTSB 1.1
|
|
local middle : mix left right 0.54
|
|
include : spiro {
|
|
widths.lhs
|
|
flat left CAP [heading DOWNWARD]
|
|
curl left [SMALLSMOOTHB * 0.75]
|
|
hookend O
|
|
g4 right SHOOK
|
|
}
|
|
include : create-stroke
|
|
:.start-from SB CAP
|
|
:.set-width 0 STROKE
|
|
:.line-to left CAP
|
|
include bMarks
|
|
set-anchor 'above' BASE [left + HALFSTROKE] CAP
|
|
set-anchor 'below' BASE middle 0
|
|
set this.barx [left + HALFSTROKE]
|
|
}
|
|
select-variant 'l' 'l' [if para.italicangle 'italic' 'serifed']
|
|
|
|
### x v w y z k
|
|
create-glyph 'x' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'x'
|
|
include eMarks
|
|
|
|
local TURN [XH * 0.1]
|
|
|
|
include : xStrand SB 0 RIGHTSB XH 0.05 0.4 0.14
|
|
include : xStrand SB XH RIGHTSB 0 0.05 0.4 0.14
|
|
}
|
|
create-glyph 'v' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'v'
|
|
include eMarks
|
|
|
|
local TURN [XH * 0.9]
|
|
|
|
include : create-stroke
|
|
:.start-from SB XH
|
|
:.heads-to DOWNWARD
|
|
:.set-width STROKE 0
|
|
:.line-to SB TURN
|
|
:.heads-to DOWNWARD
|
|
:.curve-to SB [[1 - 0.27] * TURN] [MIDDLE - STROKE / 2] 0
|
|
:.set-width [STROKE * 0.8] 0
|
|
|
|
include : create-stroke
|
|
:.start-from RIGHTSB XH
|
|
:.heads-to DOWNWARD
|
|
:.set-width 0 STROKE
|
|
:.line-to RIGHTSB TURN
|
|
:.heads-to DOWNWARD
|
|
:.curve-to RIGHTSB [[1 - 0.27] * TURN] [MIDDLE + STROKE / 2] 0
|
|
:.set-width 0 [STROKE * 0.8]
|
|
|
|
#bottom cap
|
|
start-from [MIDDLE + STROKE / 2] 0
|
|
line-to [MIDDLE - STROKE / 2] 0
|
|
line-to MIDDLE [STROKE * 0.8]
|
|
}
|
|
create-glyph 'w' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'w'
|
|
include eMarks
|
|
|
|
local TURN [XH * 0.75]
|
|
local turn2 [XH * 0.59]
|
|
local wheight [XH * 0.6]
|
|
local bottomStroke : adviceBlackness 5.2
|
|
local m1 : WIDTH * 0.325
|
|
local m2 : WIDTH * 0.675
|
|
|
|
include : create-stroke
|
|
:.start-from SB XH
|
|
:.heads-to DOWNWARD
|
|
:.set-width STROKE 0
|
|
:.line-to SB TURN
|
|
:.heads-to DOWNWARD
|
|
:.curve-to SB [[1 - 0.27] * TURN] [m1 - bottomStroke / 2] 0
|
|
:.set-width bottomStroke 0
|
|
|
|
include : create-stroke
|
|
:.start-from RIGHTSB XH
|
|
:.heads-to DOWNWARD
|
|
:.set-width 0 STROKE
|
|
:.line-to RIGHTSB TURN
|
|
:.heads-to DOWNWARD
|
|
:.curve-to RIGHTSB [[1 - 0.27] * TURN] [m2 + bottomStroke / 2] 0
|
|
:.set-width 0 bottomStroke
|
|
|
|
include : create-stroke
|
|
:.start-from [MIDDLE + bottomStroke / 2] wheight
|
|
:.heads-to DOWNWARD
|
|
:.set-width 0 bottomStroke
|
|
:.line-to [MIDDLE + bottomStroke / 2] turn2
|
|
:.heads-to DOWNWARD
|
|
:.curve-to [MIDDLE + bottomStroke / 2] [[1 - 0.1] * turn2] [m1 + bottomStroke / 2] 0
|
|
:.set-width 0 bottomStroke
|
|
|
|
include : create-stroke
|
|
:.start-from [MIDDLE - bottomStroke / 2] wheight
|
|
:.heads-to DOWNWARD
|
|
:.set-width bottomStroke 0
|
|
:.line-to [MIDDLE - bottomStroke / 2] turn2
|
|
:.heads-to DOWNWARD
|
|
:.curve-to [MIDDLE - bottomStroke / 2] [[1 - 0.1] * turn2] [m2 - bottomStroke / 2] 0
|
|
:.set-width bottomStroke 0
|
|
|
|
#bottom cap
|
|
start-from [m1 + bottomStroke / 2] 0
|
|
line-to [m1 - bottomStroke / 2] 0
|
|
line-to m1 bottomStroke
|
|
|
|
start-from [m2 + bottomStroke / 2] 0
|
|
line-to [m2 - bottomStroke / 2] 0
|
|
line-to m2 bottomStroke
|
|
}
|
|
create-glyph 'y' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'y'
|
|
include pMarks
|
|
|
|
local xbottom : mix SB RIGHTSB 0.28
|
|
local turnp : XH / [XH - DESCENDER]
|
|
local xb : mix SB RIGHTSB 0.51
|
|
local yb : mix 0 XH [0.05 * turnp]
|
|
|
|
include : xStrand xbottom DESCENDER RIGHTSB XH 0.1 0.6 0.14
|
|
include : halfXStrand SB XH xb yb [0.1 * turnp] 0.4 [0.14 * turnp]
|
|
}
|
|
create-glyph 'z' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'z'
|
|
include eMarks
|
|
|
|
local cor 1.2
|
|
|
|
include : HBarTop SB RIGHTSB XH
|
|
include : HBarBottom SB RIGHTSB 0
|
|
|
|
start-from SB STROKE
|
|
line-to [SB + STROKE * cor] STROKE
|
|
line-to RIGHTSB [XH - STROKE]
|
|
line-to [RIGHTSB - STROKE * cor] [XH - STROKE]
|
|
reverse-last
|
|
}
|
|
|
|
define [SmallKShape] : glyph-construction {
|
|
local TURN [XH * 0.99]
|
|
local rturn [XH * 0.1]
|
|
local right [RIGHTSB - O]
|
|
|
|
local attach [XH * 0.4]
|
|
local attach2 MIDDLE
|
|
|
|
local fine : adviceBlackness 3.5
|
|
include : create-stroke
|
|
:.start-from RIGHTSB XH
|
|
:.heads-to DOWNWARD
|
|
:.set-width 0 STROKE
|
|
:.line-to RIGHTSB TURN
|
|
:.heads-to DOWNWARD
|
|
:.curve-to RIGHTSB [[1 - 0.18] * TURN] [SB + STROKE] attach
|
|
:.set-width 0 fine
|
|
include : create-stroke
|
|
:.start-from [right - HALFSTROKE] 0
|
|
:.heads-to UPWARD
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.curve-to [right - HALFSTROKE] [rturn + 0.05 * [XH - rturn]] attach2 [XH * 0.52 + HALFSTROKE]
|
|
:.set-width [fine / 2] [fine / 2]
|
|
}
|
|
|
|
create-glyph 'k' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'k'
|
|
include bMarks
|
|
include : create-stroke
|
|
:.start-from SB 0
|
|
:.set-width 0 STROKE
|
|
:.heads-to UPWARD
|
|
:.line-to SB CAP
|
|
:.heads-to UPWARD
|
|
include : SmallKShape
|
|
}
|
|
|
|
### s
|
|
create-glyph 's' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 's'
|
|
include eMarks
|
|
|
|
include : spiro {
|
|
widths.lhs
|
|
g4 RIGHTSB [XH - SHOOK]
|
|
hookstart XO SBALANCE
|
|
g4 SB [XH - SMOOTHA * 0.85]
|
|
alsothru 0.5 0.5 [widths HALFSTROKE HALFSTROKE]
|
|
#sband STROKE false 1 0.75 [linreg 75 1 120 0.55 STROKE]
|
|
g4 RIGHTSB [SMOOTHA * 0.85] [widths 0 STROKE]
|
|
hookend O SBALANCE
|
|
g4 SB SHOOK
|
|
}
|
|
# throw 'w'
|
|
}
|
|
|
|
### r
|
|
create-glyph 'r' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'r'
|
|
include eMarks
|
|
|
|
local rhookx : RIGHTSB + JBALANCE / 2 - STROKE
|
|
local rmiddle : [mix [SB + RBALANCE + STROKE] [rhookx - HALFSTROKE] 0.5] - OMIDCOR_S
|
|
local barright : SB + STROKE * ITALICCOR + RBALANCE
|
|
include : spiro {
|
|
widths.rhs
|
|
g4 rhookx [XH - RHOOK - STROKE * 0.5]
|
|
g4 [mix barright rhookx 0.52] [XO - STROKE] [heading LEFTWARD]
|
|
archv 8 'notiny'
|
|
flat barright [XH - SMALLSMOOTHA] [widths 0 [STROKE * 0.3]]
|
|
curl barright [XH - SMALLSMOOTHA - 1]
|
|
}
|
|
include : create-stroke
|
|
:.start-from [SB + RBALANCE] 0
|
|
:.heads-to UPWARD
|
|
:.set-width 0 STROKE
|
|
:.line-to [SB + RBALANCE] XH
|
|
:.heads-to UPWARD
|
|
}
|
|
|
|
### f
|
|
define [fBar left right y] : glyph-construction {
|
|
include : create-stroke
|
|
:.start-from [fallback left [MIDDLE - LONGJUT]] [fallback y XH]
|
|
:.heads-to RIGHTWARD
|
|
:.set-width 0 STROKE
|
|
:.line-to [fallback right [MIDDLE + LONGJUT]] [fallback y XH]
|
|
:.heads-to RIGHTWARD
|
|
}
|
|
create-glyph 'longs.upright' : glyph-construction {
|
|
set-width WIDTH
|
|
dont-export
|
|
include bMarks
|
|
include : create-stroke
|
|
:.start-from MIDDLE 0
|
|
:.heads-to UPWARD
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.line-to MIDDLE [CAP - SHOOK * 1.4]
|
|
:.arc-vh-to [MIDDLE + HOOKX] [CAP - HALFSTROKE - O * 6]
|
|
:.heads-to RIGHTWARD
|
|
}
|
|
define [eshHook attach] : glyph-construction {
|
|
include : create-stroke
|
|
:.start-from [attach.x - SHOOK * 2] [attach.y + HALFSTROKE + O * 6 - SHOOK]
|
|
:.heads-to RIGHTWARD
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.arc-hv-to attach.x attach.y
|
|
:.line-to attach.x [attach.y + STROKE]
|
|
}
|
|
define [LongSShape top bottom hookx hooky fine] : glyph-construction {
|
|
include : create-stroke
|
|
:.start-from [MIDDLE - hookx] [bottom + [[fallback fine STROKE] / 2] + O * 6]
|
|
:.heads-to RIGHTWARD
|
|
:.set-width [[fallback fine STROKE] / 2] [[fallback fine STROKE] / 2]
|
|
:.arc-hv-to MIDDLE [bottom + hooky]
|
|
:.line-to MIDDLE [top - hooky]
|
|
:.arc-vh-to [MIDDLE + hookx] [top - [[fallback fine STROKE] / 2] - O * 6]
|
|
:.heads-to RIGHTWARD
|
|
}
|
|
create-glyph 'longs.italic' : glyph-construction {
|
|
set-width WIDTH
|
|
dont-export
|
|
include ifMarks
|
|
include : LongSShape CAP [-HOOK] HOOKX HOOK
|
|
}
|
|
create-glyph 'longs' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 0x17f
|
|
|
|
if [para.italicangle > 0] {
|
|
then : include glyphs.'longs.italic' AS_BASE
|
|
else : include glyphs.'longs.upright' AS_BASE
|
|
}
|
|
}
|
|
|
|
create-glyph 'f' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'f'
|
|
include glyphs.longs AS_BASE
|
|
include : fBar
|
|
} |