656 lines
No EOL
20 KiB
Text
656 lines
No EOL
20 KiB
Text
###### UPPER CASE
|
|
|
|
### A V X Y K
|
|
create-glyph 'A' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'A'
|
|
include capitalMarks
|
|
|
|
local TURN [XH * 0.1]
|
|
|
|
local leftbar : create-stroke
|
|
leftbar.start-from SB 0
|
|
:.heads-to UPWARD
|
|
:.set-width 0 STROKE
|
|
:.line-to SB TURN
|
|
:.heads-to UPWARD
|
|
:.curve-to SB [TURN + 0.27 * [CAP - TURN]] [MIDDLE - STROKE / 2] CAP
|
|
:.set-width 0 [STROKE * 0.8]
|
|
|
|
local rightbar : create-stroke
|
|
rightbar.start-from RIGHTSB 0
|
|
:.heads-to UPWARD
|
|
:.set-width STROKE 0
|
|
:.line-to RIGHTSB TURN
|
|
:.heads-to UPWARD
|
|
:.curve-to RIGHTSB [TURN + 0.27 * [CAP - TURN]] [MIDDLE + STROKE / 2] CAP
|
|
:.set-width [STROKE * 0.8] 0
|
|
|
|
local hbar : create-stroke
|
|
:.start-from [SB + STROKE] [XH / 2]
|
|
:.heads-to RIGHTWARD
|
|
:.set-width 0 STROKE
|
|
:.line-to [RIGHTSB - STROKE] [XH / 2]
|
|
:.heads-to RIGHTWARD
|
|
|
|
put-shapes : leftbar.to-outline
|
|
put-shapes : hbar.to-outline
|
|
put-shapes : rightbar.to-outline
|
|
|
|
#top cap
|
|
start-from [MIDDLE - STROKE / 2] CAP
|
|
line-to [MIDDLE + STROKE / 2] CAP
|
|
line-to MIDDLE [CAP - STROKE]
|
|
}
|
|
create-glyph 'V' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'V'
|
|
include capitalMarks
|
|
|
|
local TURN [CAP * 0.9]
|
|
|
|
local leftbar : create-stroke
|
|
leftbar.start-from SB CAP
|
|
:.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
|
|
|
|
local rightbar : create-stroke
|
|
rightbar.start-from RIGHTSB CAP
|
|
:.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]
|
|
|
|
put-shapes : leftbar.to-outline
|
|
put-shapes : rightbar.to-outline
|
|
|
|
#bottom cap
|
|
start-from [MIDDLE + STROKE / 2] 0
|
|
line-to [MIDDLE - STROKE / 2] 0
|
|
line-to MIDDLE STROKE
|
|
}
|
|
create-glyph 'W' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'W'
|
|
include capitalMarks
|
|
|
|
local TURN [CAP * 0.75]
|
|
local turn2 [CAP * 0.59]
|
|
local wheight [CAP * 0.6]
|
|
local bottomStroke : Math.min [STROKE * 0.8] [[WIDTH - SB * 2] * 0.175]
|
|
local m1 : WIDTH * 0.3
|
|
local m2 : WIDTH * 0.7
|
|
|
|
put-shapes: create-stroke
|
|
:.start-from SB CAP
|
|
:.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
|
|
:.to-outline
|
|
|
|
put-shapes : create-stroke
|
|
:.start-from RIGHTSB CAP
|
|
:.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
|
|
:.to-outline
|
|
|
|
put-shapes: 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
|
|
:.to-outline
|
|
|
|
put-shapes : 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
|
|
:.to-outline
|
|
|
|
#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 'X' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'X'
|
|
include capitalMarks
|
|
|
|
local TURN [XH * 0.05]
|
|
local straight 0.6
|
|
local strench 0.125
|
|
|
|
local barone : create-stroke
|
|
:.start-from [SB + HALFSTROKE] 0
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.heads-to UPWARD
|
|
:.line-to [SB + HALFSTROKE] TURN
|
|
:.curve-to [SB + HALFSTROKE] [TURN + strench * [CAP - TURN]] [MIDDLE + straight * [SB + HALFSTROKE - MIDDLE]] [CAPMIDDLE + straight * [TURN + strench * [CAP - TURN] - CAPMIDDLE]]
|
|
:.line-to [MIDDLE + straight * [RIGHTSB - HALFSTROKE - MIDDLE]] [CAPMIDDLE + straight * [CAP - TURN - strench * [CAP - TURN] - CAPMIDDLE]]
|
|
:.curve-to [RIGHTSB - HALFSTROKE] [CAP - TURN - strench * [CAP - TURN]] [RIGHTSB - HALFSTROKE] [CAP - TURN]
|
|
:.line-to [RIGHTSB - HALFSTROKE] CAP
|
|
:.heads-to UPWARD
|
|
|
|
local bartwo : create-stroke
|
|
:.start-from [RIGHTSB - HALFSTROKE] 0
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.heads-to UPWARD
|
|
:.line-to [RIGHTSB - HALFSTROKE] TURN
|
|
:.curve-to [RIGHTSB - HALFSTROKE] [TURN + strench * [CAP - TURN]] [MIDDLE + straight * [RIGHTSB - HALFSTROKE - MIDDLE]] [CAPMIDDLE + straight * [TURN + strench * [CAP - TURN] - CAPMIDDLE]]
|
|
:.line-to [MIDDLE + straight * [SB + HALFSTROKE - MIDDLE]] [CAPMIDDLE + straight * [CAP - TURN - strench * [CAP - TURN] - CAPMIDDLE]]
|
|
:.curve-to [SB + HALFSTROKE] [CAP - TURN - strench * [CAP - TURN]] [SB + HALFSTROKE] [CAP - TURN]
|
|
:.line-to [SB + HALFSTROKE] CAP
|
|
:.heads-to UPWARD
|
|
|
|
put-shapes : barone.to-outline
|
|
put-shapes : bartwo.to-outline
|
|
}
|
|
create-glyph 'Y' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'Y'
|
|
include capitalMarks
|
|
|
|
local TURN [XH * 0.05]
|
|
local straight 0.6
|
|
local strench 0.15
|
|
local cross [CAP * 0.4]
|
|
|
|
local barone : create-stroke
|
|
:.start-from MIDDLE cross
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.line-to [MIDDLE + straight * [RIGHTSB - HALFSTROKE - MIDDLE]] [cross + straight * [CAP - TURN - strench * [CAP - TURN] - cross]]
|
|
:.curve-to [RIGHTSB - HALFSTROKE] [CAP - TURN - strench * [CAP - TURN]] [RIGHTSB - HALFSTROKE] [CAP - TURN]
|
|
:.line-to [RIGHTSB - HALFSTROKE] CAP
|
|
:.heads-to UPWARD
|
|
|
|
local bartwo : create-stroke
|
|
:.start-from MIDDLE cross
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.line-to [MIDDLE + straight * [SB + HALFSTROKE - MIDDLE]] [cross + straight * [CAP - TURN - strench * [CAP - TURN] - cross]]
|
|
:.curve-to [SB + HALFSTROKE] [CAP - TURN - strench * [CAP - TURN]] [SB + HALFSTROKE] [CAP - TURN]
|
|
:.line-to [SB + HALFSTROKE] CAP
|
|
:.heads-to UPWARD
|
|
|
|
put-shapes : barone.to-outline
|
|
put-shapes : bartwo.to-outline
|
|
put-shapes : create-stroke
|
|
:.start-from MIDDLE 0
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.heads-to UPWARD
|
|
:.line-to MIDDLE [cross + HALFSTROKE]
|
|
:.heads-to UPWARD
|
|
:.to-outline
|
|
}
|
|
|
|
create-glyph 'K' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'K'
|
|
include capitalMarks
|
|
|
|
local TURN [CAP * 0.95]
|
|
local rturn [XH * 0.1]
|
|
local right [RIGHTSB - O]
|
|
|
|
local fine : Math.min STROKE [[WIDTH - SB * 2] * 0.25]
|
|
|
|
put-shapes : create-stroke
|
|
:.start-from SB 0
|
|
:.set-width 0 STROKE
|
|
:.heads-to UPWARD
|
|
:.line-to SB CAP
|
|
:.heads-to UPWARD
|
|
:.to-outline
|
|
put-shapes : create-stroke
|
|
:.start-from RIGHTSB CAP
|
|
:.heads-to DOWNWARD
|
|
:.set-width 0 STROKE
|
|
:.line-to RIGHTSB TURN
|
|
:.heads-to DOWNWARD
|
|
:.curve-to RIGHTSB [[1 - 0.18] * TURN] [SB + STROKE] [CAP * 0.35]
|
|
:.set-width 0 fine
|
|
:.to-outline
|
|
put-shapes : create-stroke
|
|
:.start-from [right - HALFSTROKE] 0
|
|
:.heads-to UPWARD
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.curve-to [right - HALFSTROKE] [rturn + 0.2 * [XH - rturn]] MIDDLE [CAPMIDDLE + HALFSTROKE]
|
|
:.set-width [fine / 2] [fine / 2]
|
|
:.to-outline
|
|
}
|
|
|
|
### B D P R
|
|
create-glyph 'B' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'B'
|
|
include capitalMarks
|
|
|
|
local bowl 451
|
|
local tkappa [COKAPPA - 0.22]
|
|
local bkappa [COKAPPA - 0.2]
|
|
|
|
local turntop : [CAP + [bowl - STROKE]] / 2
|
|
local turnbottom : bowl / 2
|
|
|
|
local topbowl : create-stroke
|
|
topbowl.start-from SB CAP
|
|
:.heads-to RIGHTWARD
|
|
:.line-to [RIGHTSB - SB * 0.5 - turnbottom] CAP
|
|
:.cubic-to [RIGHTSB - SB * 0.5 - tkappa * turnbottom] CAP [RIGHTSB - SB * 0.5] [turntop + [CAP - turntop] * KAPPA] [RIGHTSB - SB * 0.5] turntop
|
|
:.cubic-to [RIGHTSB - SB * 0.5] [turntop + KAPPA * [bowl - STROKE - turntop]] [RIGHTSB - SB * 0.5 - tkappa * turnbottom] [bowl - STROKE] [RIGHTSB - SB * 0.5 - turnbottom] [bowl - STROKE]
|
|
:.line-to SB [bowl - STROKE]
|
|
:.heads-to LEFTWARD
|
|
|
|
local bottombowl : create-stroke
|
|
bottombowl.start-from SB 0
|
|
:.heads-to RIGHTWARD
|
|
:.line-to [RIGHTSB - turnbottom] 0
|
|
:.cubic-to [RIGHTSB - bkappa * turnbottom] 0 RIGHTSB [turnbottom * KAPPA] RIGHTSB turnbottom
|
|
:.cubic-to RIGHTSB [turnbottom + KAPPA * [bowl - turnbottom]] [RIGHTSB - bkappa * turnbottom] bowl [RIGHTSB - turnbottom] bowl
|
|
:.line-to SB bowl
|
|
:.heads-to LEFTWARD
|
|
|
|
local leftbar : create-stroke
|
|
:.start-from SB 0
|
|
:.heads-to UPWARD
|
|
:.line-to SB CAP
|
|
:.heads-to UPWARD
|
|
|
|
put-shapes : topbowl.to-outline 0 STROKE
|
|
put-shapes : bottombowl.to-outline STROKE 0
|
|
put-shapes : leftbar.to-outline 0 STROKE
|
|
}
|
|
|
|
create-glyph 'D' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'D'
|
|
include capitalMarks
|
|
|
|
local dsmooth [SMOOTH * 1.35]
|
|
local bsmooth [SMOOTH * 1.1]
|
|
|
|
local leftbar : create-stroke
|
|
:.start-from SB 0
|
|
:.heads-to UPWARD
|
|
:.line-to SB CAP
|
|
:.heads-to UPWARD
|
|
|
|
local bowl : create-stroke
|
|
bowl.start-from SB 0
|
|
:.heads-to RIGHTWARD
|
|
:.line-to [RIGHTSB - bsmooth] 0
|
|
:.cubic-to [RIGHTSB - BKAPPA * bsmooth] 0 RIGHTSB [COBKAPPA * dsmooth] RIGHTSB dsmooth
|
|
:.line-to RIGHTSB [CAP - dsmooth]
|
|
:.cubic-to RIGHTSB [CAP - COBKAPPA * dsmooth] [RIGHTSB - BKAPPA * bsmooth] CAP [RIGHTSB - bsmooth] CAP
|
|
:.line-to SB CAP
|
|
:.heads-to LEFTWARD
|
|
|
|
|
|
put-shapes : bowl.to-outline STROKE 0
|
|
put-shapes : leftbar.to-outline 0 STROKE
|
|
}
|
|
create-glyph 'P' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'P'
|
|
include capitalMarks
|
|
|
|
local bowl CAPMIDDLE
|
|
local bkappa [COKAPPA - 0.2]
|
|
|
|
local turntop : [CAP + [bowl - HALFSTROKE]] / 2
|
|
local turnbottom : bowl / 2
|
|
|
|
local topbowl : create-stroke
|
|
:.start-from [SB * 1.25] CAP
|
|
:.heads-to RIGHTWARD
|
|
:.line-to [RIGHTSB - turnbottom] CAP
|
|
:.arc-hv-to [RIGHTSB - O] turntop
|
|
:.arc-vh-to [RIGHTSB - turnbottom] [bowl - HALFSTROKE]
|
|
:.line-to [SB * 1.25] [bowl - HALFSTROKE]
|
|
:.heads-to LEFTWARD
|
|
|
|
local leftbar : create-stroke
|
|
:.start-from [SB * 1.25] 0 :.heads-to UPWARD
|
|
:.line-to [SB * 1.25] CAP :.heads-to UPWARD
|
|
|
|
put-shapes : topbowl.to-outline 0 STROKE
|
|
put-shapes : leftbar.to-outline 0 STROKE
|
|
}
|
|
create-glyph 'R' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'R'
|
|
include glyphs.P true
|
|
|
|
local TURN [XH * 0.1]
|
|
local right [RIGHTSB - O]
|
|
put-shapes : create-stroke
|
|
:.start-from [right - HALFSTROKE] 0
|
|
:.heads-to UPWARD
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.curve-to [right - HALFSTROKE] [TURN + 0.2 * [XH - TURN]] MIDDLE CAPMIDDLE
|
|
:.to-outline
|
|
}
|
|
|
|
### C G O zero Q U
|
|
|
|
create-glyph 'C' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'C'
|
|
include capitalMarks
|
|
|
|
local outline : create-stroke
|
|
outline.start-from [RIGHTSB - OXHOOK] [CAP - HOOK]
|
|
:.curve-to [MIDDLE + KAPPA_HOOK * [MIDDLE - para.sb]] CAPO MIDDLE CAPO
|
|
:.heads-to LEFTWARD
|
|
:.arc-hv-to SB [CAP - SMOOTHA]
|
|
:.line-to SB SMOOTHB
|
|
:.arc-vh-to MIDDLE O
|
|
:.heads-to RIGHTWARD
|
|
:.curve-to [MIDDLE + ITALICCORS + KAPPA_HOOK * [MIDDLE - SB]] O [RIGHTSB - OXHOOK] HOOK
|
|
put-shapes : outline.to-outline STROKE 0
|
|
}
|
|
|
|
create-glyph 'G' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'G'
|
|
include capitalMarks
|
|
|
|
local outline : create-stroke
|
|
outline.start-from [RIGHTSB - OXHOOK] [CAP - HOOK]
|
|
:.curve-to [MIDDLE + KAPPA_HOOK * [MIDDLE - para.sb]] CAPO MIDDLE CAPO
|
|
:.heads-to LEFTWARD
|
|
:.arc-hv-to SB [CAP - SMOOTHA]
|
|
:.line-to SB SMOOTHB
|
|
:.arc-vh-to MIDDLE O
|
|
:.heads-to RIGHTWARD
|
|
:.arc-hv-to RIGHTSB SMOOTHA
|
|
:.line-to RIGHTSB [CAP / 2 + STROKE / 2]
|
|
:.heads-to UPWARD
|
|
put-shapes : outline.to-outline STROKE 0
|
|
|
|
local bar : create-stroke
|
|
:.start-from MIDDLE [CAP / 2 + STROKE / 2]
|
|
:.line-to RIGHTSB [CAP / 2 + STROKE / 2]
|
|
:.heads-to RIGHTWARD
|
|
put-shapes : bar.to-outline 0 STROKE
|
|
}
|
|
|
|
create-glyph 'O' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'O'
|
|
include capitalMarks
|
|
|
|
local outline : create-stroke
|
|
outline.start-from MIDDLE CAPO
|
|
:.heads-to LEFTWARD
|
|
:.arc-hv-to SB [CAP - SMOOTHA]
|
|
:.line-to SB SMOOTHB
|
|
:.arc-vh-to MIDDLE O
|
|
:.heads-to RIGHTWARD
|
|
:.arc-hv-to RIGHTSB SMOOTHA
|
|
:.line-to RIGHTSB [CAP - SMOOTHB]
|
|
:.arc-vh-to MIDDLE CAPO
|
|
:.heads-to LEFTWARD
|
|
put-shapes : outline.to-outline STROKE 0
|
|
}
|
|
|
|
create-glyph 'Q' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'Q'
|
|
|
|
include glyphs.O true
|
|
|
|
start-from MIDDLE 0
|
|
line-to [MIDDLE + STROKE / 2] [-CAP * 0.2]
|
|
line-to [MIDDLE + STROKE / 2 + STROKE] [-CAP * 0.2]
|
|
line-to [MIDDLE + STROKE] 0
|
|
line-to [MIDDLE + STROKE * [1 - 0.5 / 3]] [STROKE * 0.5]
|
|
reverse-last
|
|
}
|
|
|
|
create-glyph 'U' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'U'
|
|
include capitalMarks
|
|
|
|
local outline : create-stroke
|
|
outline.start-from SB CAP
|
|
:.heads-to DOWNWARD
|
|
:.line-to SB SMOOTHB
|
|
:.arc-vh-to MIDDLE O
|
|
:.heads-to RIGHTWARD
|
|
:.arc-hv-to RIGHTSB SMOOTHA
|
|
:.line-to RIGHTSB CAP
|
|
:.heads-to UPWARD
|
|
put-shapes : outline.to-outline STROKE 0
|
|
}
|
|
|
|
|
|
### F E H L I T Z
|
|
create-glyph 'F' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'F'
|
|
include capitalMarks
|
|
|
|
put-shapes : create-stroke :.start-from [SB * 1.5] 0 :.heads-to UPWARD :.set-width 0 STROKE
|
|
:.line-to [SB * 1.5] CAP :.heads-to UPWARD :.to-outline
|
|
put-shapes : create-stroke :.start-from [SB * 1.5] CAP :.set-width 0 STROKE :.heads-to RIGHTWARD
|
|
:.line-to RIGHTSB CAP :.heads-to RIGHTWARD :.to-outline
|
|
put-shapes : create-stroke :.start-from [SB * 1.5] CAPMIDDLE :.set-width HALFSTROKE HALFSTROKE :.heads-to RIGHTWARD
|
|
:.line-to [RIGHTSB - HALFSTROKE] CAPMIDDLE :.heads-to RIGHTWARD :.to-outline
|
|
}
|
|
create-glyph 'E' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'E'
|
|
include glyphs.F true
|
|
|
|
put-shapes : create-stroke :.start-from [SB * 1.5] 0 :.set-width STROKE 0 :.heads-to RIGHTWARD
|
|
:.line-to RIGHTSB 0 :.heads-to RIGHTWARD :.to-outline
|
|
}
|
|
create-glyph 'H' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'H'
|
|
include capitalMarks
|
|
|
|
put-shapes : create-stroke :.start-from SB 0 :.heads-to UPWARD :.set-width 0 STROKE
|
|
:.line-to SB CAP :.heads-to UPWARD :.to-outline
|
|
put-shapes : create-stroke :.start-from RIGHTSB 0 :.heads-to UPWARD :.set-width STROKE 0
|
|
:.line-to RIGHTSB CAP :.heads-to UPWARD :.to-outline
|
|
put-shapes : create-stroke :.start-from SB [CAP / 2] :.set-width HALFSTROKE HALFSTROKE :.heads-to RIGHTWARD
|
|
:.line-to RIGHTSB [CAP / 2] :.heads-to RIGHTWARD :.to-outline
|
|
}
|
|
|
|
create-glyph 'L' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'L'
|
|
include capitalMarks
|
|
|
|
put-shapes : create-stroke
|
|
:.start-from [SB * 1.5] CAP
|
|
:.set-width STROKE 0
|
|
:.heads-to DOWNWARD
|
|
:.line-to [SB * 1.5] 0
|
|
:.heads-to DOWNWARD
|
|
:.to-outline
|
|
put-shapes : create-stroke
|
|
:.start-from [SB * 1.5] 0
|
|
:.set-width STROKE 0
|
|
:.heads-to RIGHTWARD
|
|
:.line-to RIGHTSB 0
|
|
:.heads-to RIGHTWARD
|
|
:.to-outline
|
|
}
|
|
|
|
create-glyph 'dotlessI.straight' : glyph-construction {
|
|
put-shapes : create-stroke
|
|
:.start-from MIDDLE 0
|
|
:.heads-to UPWARD
|
|
:.set-width HALFSTROKE HALFSTROKE
|
|
:.line-to MIDDLE CAP
|
|
:.heads-to UPWARD
|
|
:.to-outline
|
|
}
|
|
create-glyph 'dotlessI.symmetric' : glyph-construction {
|
|
include glyphs.'dotlessI.straight'
|
|
# Top serif
|
|
put-shapes : create-stroke
|
|
:.start-from [MIDDLE - WIDTH * 0.26 - STROKE * globalTransform.yx] CAP
|
|
:.set-width 0 STROKE
|
|
:.line-to [MIDDLE + WIDTH * 0.26 - STROKE * globalTransform.yx] CAP
|
|
:.to-outline
|
|
# Bottom serif
|
|
put-shapes : create-stroke
|
|
:.start-from [MIDDLE - WIDTH * 0.26 + STROKE * globalTransform.yx] 0
|
|
:.set-width STROKE 0
|
|
:.line-to [MIDDLE + WIDTH * 0.26 + STROKE * globalTransform.yx] 0
|
|
:.to-outline
|
|
}
|
|
create-glyph 'I' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'I'
|
|
include capitalMarks
|
|
|
|
include glyphs.'dotlessI.symmetric'
|
|
}
|
|
create-glyph 'T' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'T'
|
|
include capitalMarks
|
|
|
|
put-shapes : create-stroke :.start-from MIDDLE 0 :.heads-to UPWARD :.set-width HALFSTROKE HALFSTROKE
|
|
:.line-to MIDDLE CAP :.heads-to UPWARD :.to-outline
|
|
put-shapes : create-stroke :.start-from SB CAP :.heads-to RIGHTWARD :.set-width 0 STROKE
|
|
:.line-to RIGHTSB CAP :.heads-to RIGHTWARD :.to-outline
|
|
}
|
|
|
|
create-glyph 'Z' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'Z'
|
|
include capitalMarks
|
|
|
|
local cor 1.15
|
|
|
|
put-shapes : create-stroke :.start-from SB CAP :.heads-to RIGHTWARD :.set-width 0 STROKE
|
|
:.line-to RIGHTSB CAP :.heads-to RIGHTWARD :.to-outline
|
|
put-shapes : create-stroke :.start-from SB 0 :.heads-to RIGHTWARD :.set-width STROKE 0
|
|
:.line-to RIGHTSB 0 :.heads-to RIGHTWARD :.to-outline
|
|
|
|
start-from SB STROKE
|
|
line-to [SB + STROKE * cor] STROKE
|
|
line-to RIGHTSB [CAP - STROKE]
|
|
line-to [RIGHTSB - STROKE * cor] [CAP - STROKE]
|
|
reverse-last
|
|
}
|
|
|
|
### J
|
|
|
|
create-glyph 'J.straight' : glyph-construction {
|
|
set-width WIDTH
|
|
include capitalMarks
|
|
|
|
local slope [STROKE * 0.00092]
|
|
local expand 0.35
|
|
local coexpand [[1 - expand] / 2]
|
|
local kappa KAPPA_HOOK
|
|
local smooth : HOOK + 0.75 * STROKE
|
|
|
|
put-shapes : create-stroke
|
|
:.start-from RIGHTSB CAP :.set-width 0 STROKE :.heads-to DOWNWARD
|
|
:.line-to RIGHTSB smooth
|
|
:.arc-vh-to [MIDDLE - SB * 0.25] O :.heads-to LEFTWARD
|
|
:.curve-to [MIDDLE - kappa * [MIDDLE - SB] - SB * 0.5] O [0.5 * SB + OXHOOK] HOOK
|
|
:.to-outline
|
|
}
|
|
create-glyph 'J.serifed' : glyph-construction {
|
|
set-width WIDTH; assign-unicode 'J'
|
|
|
|
include glyphs.'J.straight' true
|
|
put-shapes : leftwardTopSerif [RIGHTSB - HALFSTROKE] CAP LONGJUT
|
|
}
|
|
|
|
### M N
|
|
create-glyph 'N' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'N'
|
|
include capitalMarks
|
|
|
|
local topstroke : Math.min STROKE [[WIDTH - SB * 2] * 0.24]
|
|
local halftopstroke : topstroke / 2
|
|
|
|
put-shapes : create-stroke
|
|
:.start-from SB 0 :.heads-to UPWARD :.set-width 0 STROKE
|
|
:.line-to SB [CAP * 0.4] :.heads-to UPWARD
|
|
:.line-to SB CAP :.heads-to UPWARD :.set-width 0 topstroke
|
|
:.to-outline
|
|
put-shapes : create-stroke
|
|
:.start-from RIGHTSB 0 :.heads-to UPWARD :.set-width topstroke 0
|
|
:.line-to RIGHTSB [CAP * 0.6] :.heads-to UPWARD :.set-width STROKE 0
|
|
:.line-to RIGHTSB CAP :.heads-to UPWARD
|
|
:.to-outline
|
|
put-shapes : create-stroke
|
|
:.start-from [SB + halftopstroke] CAP :.heads-to DOWNWARD :.set-width topstroke 0
|
|
:.line-to [RIGHTSB - topstroke - halftopstroke] 0 :.heads-to DOWNWARD
|
|
:.to-outline
|
|
}
|
|
create-glyph 'M' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'M'
|
|
include capitalMarks
|
|
|
|
local topstroke : Math.min STROKE [[WIDTH - SB * 2] * 0.175]
|
|
local halftopstroke : topstroke / 2
|
|
|
|
put-shapes : create-stroke
|
|
:.start-from SB 0 :.heads-to UPWARD :.set-width 0 STROKE
|
|
:.line-to SB [CAP * 0.2] :.heads-to UPWARD
|
|
:.line-to SB CAP :.heads-to UPWARD :.set-width 0 topstroke
|
|
:.to-outline
|
|
put-shapes : create-stroke
|
|
:.start-from RIGHTSB 0 :.heads-to UPWARD :.set-width STROKE 0
|
|
:.line-to RIGHTSB [CAP * 0.2] :.heads-to UPWARD
|
|
:.line-to RIGHTSB CAP :.heads-to UPWARD :.set-width topstroke 0
|
|
:.to-outline
|
|
put-shapes : create-stroke
|
|
:.start-from [SB + halftopstroke] CAP :.heads-to DOWNWARD :.set-width topstroke 0
|
|
:.line-to [MIDDLE - halftopstroke] [CAP * 0.3] :.heads-to DOWNWARD
|
|
:.to-outline
|
|
put-shapes : create-stroke
|
|
:.start-from [MIDDLE + halftopstroke] [CAP * 0.3] :.heads-to UPWARD :.set-width topstroke 0
|
|
:.line-to [RIGHTSB - halftopstroke] CAP :.heads-to UPWARD
|
|
:.to-outline
|
|
}
|
|
|
|
### S
|
|
create-glyph 'S' : glyph-construction {
|
|
set-width WIDTH
|
|
assign-unicode 'S'
|
|
include capitalMarks
|
|
|
|
put-shapes : sHookUpper CAP SMOOTHA HOOK
|
|
put-shapes : sHookLower 0 SMOOTHA HOOK
|
|
put-shapes : sStrand [CAP - SMOOTHA] SMOOTHA
|
|
} |