Added basic Cyrillic support (Russian only).

This commit is contained in:
Belleve Invis 2015-07-29 06:16:43 +08:00
parent 6c83c9c6ca
commit b56990b24a
8 changed files with 524 additions and 52 deletions

View File

@ -259,8 +259,15 @@ define [select-variant name unicode default] : begin {
set unicodeGlyphs.(chosenGlyph.unicode`[chosenGlyph.unicode.length - 1]) chosenGlyph
}
}
define [italic-variant name unicode] : create-glyph name : glyph-construction {
if [para.italicangle > 0] {
then : include glyphs.[name + '.italic'] AS_BASE
else : include glyphs.[name + '.upright'] AS_BASE
}
if unicode : assign-unicode unicode
}
define [alias newid unicode oldid] : create-glyph newid : glyph-construction {
assign-unicode unicode
if unicode : assign-unicode unicode
include glyphs`oldid AS_BASE
}

View File

@ -275,6 +275,18 @@ define customDecompositions (
."\u013C" "l\u0326"
."\u0122" "G\u0326"
."\u0123" "g\u0312"
."\u1FED" " \u0308\u0300"
."\u1FEE" " \u0308\u0301"
."\u1FEF" " \u0300"
."\u1FFD" " \u0301"
."\u1FFE" " \u0314"
."\u1FBD" " \u0313"
."\u1FBE" " \u0345"
."\u1FBF" " \u0313"
."\u1FC0" " \u0342"
."\u1FC1" " \u0308\u0342"
."\u0384" " \u0301"
."\u0385" " \u0308\u0301"
)
define [decompositionModify s] : s.replace [regex '\u0313\u0300'] "\u1FCD"
:.replace [regex '\u0313\u0301'] "\u1FCE"
@ -296,10 +308,11 @@ foreach code [range 0x00A0 0xFFFF] : if [not unicodeGlyphs`code] : begin {
if [isAboveMark parts`j] : set hasMarkAbove true
}
if allFound : begin {
if [parts.0 === glyphs.i && hasMarkAbove] : parts.0 = glyphs.dotlessi
local namingParts : parts.slice 0
if [[parts.0 === glyphs.i || parts.0 === glyphs.ukrainiani] && hasMarkAbove] : parts.0 = glyphs.dotlessi
if [parts.0 === glyphs.j && hasMarkAbove] : parts.0 = glyphs.dotlessj
create-glyph [parts.map [[part] -> part.name] :.join '_'] : glyph-construction {
create-glyph [namingParts.map [[part] -> part.name] :.join '_'] : glyph-construction {
assign-unicode code
include parts.0 AS_BASE
foreach part [items-of : parts.slice 1] : include part

View File

@ -228,8 +228,8 @@ define [smallo u d l r _width _sma _smb] : glyph-construction {
:.heads-to LEFTWARD
}
else : begin {
local ymiddlea : [u - sma + d + smb] / 2
local ymiddleb : [u - smb + d + sma] / 2
local ymiddlea : mix d u [smb / [sma + smb]]
local ymiddleb : mix d u [sma / [sma + smb]]
include : create-stroke
:.set-transform globalTransform
:.start-from middle [u - O]
@ -255,6 +255,9 @@ define [HBar xleft xright y _fine] : glyph-construction {
:.line-to xright y
:.heads-to RIGHTWARD
}
define [HBarTop xl xr y _fine] : HBar xl xr [y - [fallback _fine STROKE] * 0.5] _fine
define [HBarBottom xl xr y _fine] : HBar xl xr [y + [fallback _fine STROKE] * 0.5] _fine
define [HOverlayBar xleft xright y] : HBar xleft xright y [adviceBlackness 5]
define [VBar x ydown yup _fine] : glyph-construction {
local fine : [fallback _fine STROKE] / 2
include : create-stroke
@ -265,7 +268,8 @@ define [VBar x ydown yup _fine] : glyph-construction {
:.line-to x yup
:.heads-to [if [ydown < yup] UPWARD DOWNWARD]
}
define [HOverlayBar xleft xright y] : HBar xleft xright y [adviceBlackness 5]
define [VBarLeft x yd yu _fine] : VBar [x + [fallback _fine STROKE] * 0.5 * ITALICCOR] yd yu _fine
define [VBarRight x yd yu _fine] : VBar [x - [fallback _fine STROKE] * 0.5 * ITALICCOR] yd yu _fine
# Common transformations
define [FlipAround x y sx sy] : glyph-construction {

412
glyphs/cyrillic-basic.patel Normal file
View File

@ -0,0 +1,412 @@
###### Cyrillic glyphs
alias 'cyrA' 0x410 'A'
alias 'cyra' 0x430 'a'
alias 'Ve' 0x412 'B'
alias 'Ghe' 0x413 'Gamma'
alias 'Ie' 0x415 'E'
alias 'ie' 0x435 'e'
alias 'Ka' 0x41A 'K'
alias 'ka' 0x43A 'kappa'
alias 'Em' 0x41C 'M'
alias 'En' 0x41D 'H'
alias 'cyrO' 0x41E 'O'
alias 'cyro' 0x43e 'o'
alias 'Pe' 0x41F 'Pi'
alias 'pe.upright' null 'pi'
alias 'pe.italic' null 'n'
italic-variant 'pe' 0x43f
alias 'Er' 0x420 'P'
alias 'er' 0x440 'p'
alias 'Es' 0x421 'C'
alias 'es' 0x441 'c'
alias 'Te' 0x422 'T'
alias 'te.upright' null 'tau'
alias 'te.italic' null 'm'
italic-variant 'te' 0x442
alias 'Ef' 0x424 'Phi'
alias 'ef' 0x444 'phi'
alias 'Ha' 0x425 'X'
alias 'ha' 0x445 'x'
alias 'cyru' 0x443 'y'
alias 'ukrainianI' 0x406 'I'
alias 'ukrainiani' 0x456 'i'
alias 'Je' 0x408 'J'
alias 'je' 0x458 'j'
alias 'Dze' 0x405 'S'
alias 'dze' 0x455 's'
### Russian letters
define [YeriShape top _left _right _fine] : glyph-construction {
local fine : fallback _fine STROKE
local left : fallback _left SB
local right : fallback _right RIGHTSB
local bowl : top * 0.55 + HALFSTROKE
local tkappa [COKAPPA - 0.22]
local bkappa [COKAPPA - 0.2]
local turnbottom : bowl / 2
include : create-stroke
:.start-from [left + STROKE * 0.2] 0
:.heads-to RIGHTWARD
:.set-width fine 0
:.line-to [right - turnbottom * [right - left] / [RIGHTSB - SB]] 0
:.arc-hv-to [right - O] turnbottom
:.arc-vh-to [right - turnbottom * [right - left] / [RIGHTSB - SB]] bowl
:.line-to [left + STROKE * 0.2] bowl
:.heads-to LEFTWARD
include : VBarLeft left 0 top fine
}
create-glyph 'Yeri' : glyph-construction {
assign-unicode 0x42C
include capitalMarks
include : YeriShape CAP SB RIGHTSB
}
create-glyph 'yeri' : glyph-construction {
assign-unicode 0x44C
include eMarks
include : YeriShape XH SB RIGHTSB
}
create-glyph 'Be' : glyph-construction {
assign-unicode 0x411
include glyphs.Yeri AS_BASE
include : HBar SB [mix SB RIGHTSB 0.9] [CAP - HALFSTROKE]
}
define [CyrIShape top] : glyph-construction {
local topstroke : adviceBlackness 4
local halftopstroke : topstroke / 2
include : create-stroke
:.start-from RIGHTSB 0 :.heads-to UPWARD :.set-width STROKE 0
:.line-to RIGHTSB [top * 0.4] :.heads-to UPWARD
:.line-to RIGHTSB top :.heads-to UPWARD :.set-width topstroke 0
include : create-stroke
:.start-from SB 0 :.heads-to UPWARD :.set-width 0 topstroke
:.line-to SB [top * 0.6] :.heads-to UPWARD :.set-width 0 STROKE
:.line-to SB top :.heads-to UPWARD
include : create-stroke
:.start-from [SB + halftopstroke] 0 :.heads-to UPWARD :.set-width 0 topstroke
:.line-to [RIGHTSB - topstroke - halftopstroke] top :.heads-to UPWARD
}
create-glyph 'cyrI' : glyph-construction {
assign-unicode 0x418
include capitalMarks
include : CyrIShape CAP
}
create-glyph 'cyri.upright' : glyph-construction {
include eMarks
dont-export
include : CyrIShape XH
}
create-glyph 'cyri.italic' : glyph-construction {
dont-export
include glyphs.u AS_BASE
}
italic-variant 'cyri' 0x438
create-glyph 'cyrU' : glyph-construction {
set-width WIDTH
assign-unicode 0x423
include capitalMarks
local xbottom : mix SB RIGHTSB 0.28
local turnp : XH / CAP
local xb : mix SB RIGHTSB 0.51
local yb : mix [CAP - XH] CAP [0.05 * turnp]
include : xStrand xbottom 0 RIGHTSB CAP 0.1 0.6 0.14
include : halfXStrand SB CAP xb yb [0.1 * turnp] 0.4 [0.14 * turnp]
}
create-glyph 'be' : glyph-construction {
assign-unicode 0x431
include bMarks
include glyphs.o
include : create-stroke
:.start-from [SB + O] SMALLSMOOTHB
:.set-width 0 STROKE
:.line-to [SB + O] [XH - SMALLSMOOTHA]
:.cubic-to [SB + O] [mix XH CAP 1.2] [mix SB RIGHTSB 0.4] [mix XH CAP 0.5] [RIGHTSB - HALFSTROKE * ITALICCOR] CAP
}
create-glyph 've' : glyph-construction {
assign-unicode 0x432
include eMarks
include : BShape XH
}
create-glyph 'ghe' : glyph-construction {
assign-unicode 0x433
include eMarks
include : LShape XH
include : FlipAround MIDDLE [XH / 2] 1 [-1]
}
define [DeShape top] : glyph-construction {
local cutleft : mix SB RIGHTSB 0.2
local cutright : mix SB RIGHTSB 0.92
include : HBar [SB + O * 2] RIGHTSB HALFSTROKE
include : VBar [cutright - HALFSTROKE * ITALICCOR] 0 top
include : HBar cutleft cutright [top - HALFSTROKE]
include : halfXStrand [cutleft + STROKE * ITALICCOR] top [SB + HALFSTROKE * ITALICCOR] HALFSTROKE 0.1 0.75 0.5
include : VBar [SB + HALFSTROKE * ITALICCOR + O * 2] [-LONGJUT + HALFSTROKE] 0
include : VBar [RIGHTSB - HALFSTROKE * ITALICCOR] [-LONGJUT + HALFSTROKE] 0
}
create-glyph 'De' : glyph-construction {
assign-unicode 0x414
include ifMarks
include : DeShape CAP
}
create-glyph 'de' : glyph-construction {
assign-unicode 0x434
include pMarks
include : DeShape XH
}
define [ZheShape top] : glyph-construction {
local fine : adviceBlackness 3.75
local midx : mix SB MIDDLE 0.3
define [AngleShape] : glyph-construction {
local cor 1
start-from [SB + O] 0
line-to [SB + fine * cor + O] 0
line-to [midx + fine * cor] [top / 2]
line-to [SB + fine * cor + O] top
line-to [SB + O] top
line-to midx [top / 2]
reverse-last
}
include : AngleShape
include : FlipAround MIDDLE [top / 2]
include : AngleShape
include : VBar MIDDLE 0 top fine
include : HBar midx [WIDTH - midx] [top / 2] fine
}
create-glyph 'Zhe' : glyph-construction {
assign-unicode 0x416
include capitalMarks
include : ZheShape CAP
}
create-glyph 'zhe' : glyph-construction {
assign-unicode 0x436
include eMarks
include : ZheShape XH
}
define [ZeShape top] : glyph-construction {
local mid : mix RIGHTSB SB 0.65
include : twoHookUpper top [SMOOTHB * 0.87 / [XH / top]] SHOOK
include : sHookLower 0 [SMOOTHA * 0.87 / [XH / top]] SHOOK
include : create-stroke
:.start-from RIGHTSB [top - SMOOTHB * 0.87 / [XH / top]]
:.set-width 0 STROKE
:.arc-vh-to MIDDLE [top / 2 - HALFSTROKE] KAPPA
:.line-to mid [top / 2 - HALFSTROKE]
:.heads-to LEFTWARD
include : create-stroke
:.start-from RIGHTSB [SMOOTHA * 0.87 / [XH / top]]
:.set-width STROKE 0
:.arc-vh-to MIDDLE [top / 2 + HALFSTROKE] KAPPA
:.line-to mid [top / 2 + HALFSTROKE]
:.heads-to LEFTWARD
}
create-glyph 'Ze' : glyph-construction {
assign-unicode 0x417
include capitalMarks
include : ZeShape CAP
}
create-glyph 'ze' : glyph-construction {
assign-unicode 0x437
include eMarks
include : ZeShape XH
}
define [ElShape top] : glyph-construction {
local cutleft : mix SB RIGHTSB 0.16
local cutright : mix SB RIGHTSB 0.95
include : VBar [cutright - HALFSTROKE * ITALICCOR] 0 top
include : HBar [cutleft + O * 2] RIGHTSB [top - HALFSTROKE]
include : HBar [SB + O * 2] [SB + STROKE] HALFSTROKE
include : halfXStrand [cutleft + STROKE * ITALICCOR] top [SB + HALFSTROKE] HALFSTROKE 0.1 0.75 0.5
}
create-glyph 'El' : glyph-construction {
assign-unicode 0x41B
include capitalMarks
include : ElShape CAP
}
create-glyph 'el' : glyph-construction {
assign-unicode 0x43B
include eMarks
include : ElShape XH
}
create-glyph 'em' : glyph-construction {
assign-unicode 0x43C
include eMarks
include : MShape XH
}
create-glyph 'en' : glyph-construction {
assign-unicode 0x43D
include eMarks
include : HShape XH
}
define [TseShape top] : glyph-construction {
include : VBarLeft SB 0 top
include : HBarBottom SB RIGHTSB 0
include : VBarRight RIGHTSB 0 top
include : VBarRight [mix SB RIGHTSB 1.05] [HALFSTROKE - LONGJUT] STROKE
}
create-glyph 'Tse' : glyph-construction {
assign-unicode 0x426
include capitalMarks
include : TseShape CAP
}
create-glyph 'tse' : glyph-construction {
assign-unicode 0x446
include eMarks
include : TseShape XH
}
define [CheShape top] : glyph-construction {
include : VBarRight RIGHTSB 0 top
include : create-stroke
:.start-from SB top
:.set-width STROKE 0
:.heads-to DOWNWARD
:.line-to SB [top * 0.3 + SMOOTHB - HALFSTROKE]
:.arc-vh-to MIDDLE [top * 0.3 - HALFSTROKE]
:.heads-to RIGHTWARD
:.line-to RIGHTSB [top * 0.3 - HALFSTROKE]
:.heads-to RIGHTWARD
}
create-glyph 'Che' : glyph-construction {
assign-unicode 0x427
include capitalMarks
include : CheShape CAP
}
create-glyph 'che' : glyph-construction {
assign-unicode 0x447
include eMarks
include : CheShape XH
}
define [ShaShape top] : glyph-construction {
local fine : adviceBlackness 3.5
include : HBarBottom SB RIGHTSB 0
include : VBarLeft SB 0 top fine
include : VBarRight RIGHTSB 0 top fine
include : VBar MIDDLE 0 top fine
}
create-glyph 'Sha' : glyph-construction {
assign-unicode 0x428
include capitalMarks
include : ShaShape CAP
}
create-glyph 'sha' : glyph-construction {
assign-unicode 0x448
include eMarks
include : ShaShape XH
}
define [ShchaShape top] : glyph-construction {
include : ShaShape top
include : VBarRight [mix SB RIGHTSB 1.05] [HALFSTROKE - LONGJUT] STROKE
}
create-glyph 'Shcha' : glyph-construction {
assign-unicode 0x429
include capitalMarks
include : ShchaShape CAP
}
create-glyph 'shcha' : glyph-construction {
assign-unicode 0x449
include eMarks
include : ShchaShape XH
}
define [YerShape top] : glyph-construction {
include : YeriShape top [mix SB RIGHTSB 0.2] RIGHTSB
include : HBarTop SB [STROKE * 0.1 + [mix SB RIGHTSB 0.2]] top
}
create-glyph 'Yer' : glyph-construction {
assign-unicode 0x42A
include capitalMarks
include : YerShape CAP
}
create-glyph 'yer' : glyph-construction {
assign-unicode 0x44A
include eMarks
include : YerShape XH
}
define [YeryShape top] : glyph-construction {
local fine : adviceBlackness 3.5
include : YeriShape top SB [mix [RIGHTSB - fine * ITALICCOR] [MIDDLE + fine / 2 * ITALICCOR] 0.5] fine
include : VBarRight RIGHTSB 0 top fine
}
create-glyph 'Yery' : glyph-construction {
assign-unicode 0x42B
include capitalMarks
include : YeryShape CAP
}
create-glyph 'yery' : glyph-construction {
assign-unicode 0x44B
include eMarks
include : YeryShape XH
}
create-glyph 'cyrE' : glyph-construction {
assign-unicode 0x42D
include eMarks
include glyphs.C
include : FlipAround MIDDLE [CAP / 2]
include : HBar [mix SB RIGHTSB 0.25] RIGHTSB [CAP / 2]
}
create-glyph 'cyre' : glyph-construction {
assign-unicode 0x44D
include eMarks
include glyphs.c
include : FlipAround MIDDLE [XH / 2]
include : HBar [mix SB RIGHTSB 0.25] RIGHTSB [XH / 2]
}
define [YuShape top sma smb] : glyph-construction {
local fine : adviceBlackness 3.5
include : VBarLeft SB 0 top fine
include : smallo top 0 [mix [SB + fine * ITALICCOR] RIGHTSB 0.2] RIGHTSB fine [sma * 0.8] [smb * 0.8]
include : HBar [SB + fine * 0.1] [mix [SB + fine * ITALICCOR] RIGHTSB 0.2] [top / 2]
}
create-glyph 'Yu' : glyph-construction {
assign-unicode 0x42E
include capitalMarks
include : YuShape CAP SMOOTHA SMOOTHB
}
create-glyph 'yu' : glyph-construction {
assign-unicode 0x44E
include eMarks
include : YuShape XH SMALLSMOOTHA SMALLSMOOTHB
}
define [YaShape top] : glyph-construction {
local bowlTop [top * 1]
local bowlBottom [[top - STROKE] / 2 - HALFSTROKE]
local turn : mix bowlTop bowlBottom 0.5
local turnRadius : [bowlTop - bowlBottom] / 2
include : create-stroke
:.start-from [WIDTH - SB * 1.25 - HALFSTROKE * 0.1] bowlTop
:.heads-to LEFTWARD
:.set-width STROKE 0
:.line-to [SB + turnRadius] bowlTop
:.arc-hv-to [SB + O] turn
:.arc-vh-to [SB + turnRadius] bowlBottom
:.line-to [WIDTH - SB * 1.25 - HALFSTROKE * 0.1] bowlBottom
:.heads-to RIGHTWARD
include : VBarRight RIGHTSB 0 top
local turn [XH * 0.1]
local left [SB + O]
include : create-stroke
:.start-from [left + HALFSTROKE] 0
:.heads-to UPWARD
:.set-width HALFSTROKE HALFSTROKE
:.curve-to [left + HALFSTROKE] [turn + 0.2 * [XH - turn]] MIDDLE [bowlBottom + HALFSTROKE]
}
create-glyph 'Ya' : glyph-construction {
assign-unicode 0x42F
include capitalMarks
include : YaShape CAP
}
create-glyph 'ya' : glyph-construction {
assign-unicode 0x44F
include eMarks
include : YaShape XH
}

View File

@ -155,9 +155,9 @@ create-glyph 'alpha' : glyph-construction {
include eMarks
local middle : mix SB RIGHTSB 0.425
local cx : mix SB RIGHTSB 0.65
local cx : mix SB RIGHTSB 0.7
local cy : mix 0 XH 0.3
local cx2 : mix SB RIGHTSB 0.575
local cx2 : mix SB RIGHTSB 0.625
local fine : adviceBlackness 3.5
include : create-stroke
:.start-from [RIGHTSB - fine * ITALICCOR - O] XH
@ -199,7 +199,7 @@ create-glyph 'eta' : glyph-construction {
create-glyph 'kappa' : glyph-construction {
set-width WIDTH
assign-unicode 0x3BA
include bMarks
include eMarks
include : create-stroke
:.start-from SB 0
:.set-width 0 STROKE
@ -238,7 +238,7 @@ create-glyph 'mu' : glyph-construction {
create-glyph 'theta' : glyph-construction {
assign-unicode 0x3B8
include bMarks
include : smallo CAP 0 [SB - O] [RIGHTSB + O]
include : smallo CAP 0 [SB - O] [RIGHTSB + O] STROKE [SMALLSMOOTHA * 100] [SMALLSMOOTHB * 100]
include : HBar [SB + HALFSTROKE] [RIGHTSB - HALFSTROKE] CAPMIDDLE
}
create-glyph 'beta' : glyph-construction {
@ -293,7 +293,7 @@ create-glyph 'delta' : glyph-construction {
assign-unicode 0x3B4
include bMarks
local xNeck : mix SB RIGHTSB 0.05
local xNeck : mix SB RIGHTSB 0.125
local bar : mix 0 XH 0.96
local xOTLeft : mix SB RIGHTSB 0.5
local fine : STROKE * 0.5
@ -355,7 +355,7 @@ create-glyph 'xi' : glyph-construction {
include ifMarks
include : HBar SB [RIGHTSB + O] [CAP - HALFSTROKE]
local xbar : mix SB RIGHTSB 0.925
local xbar : mix SB RIGHTSB 0.85
local ybar : mix 0 CAP 0.55
include : create-stroke
:.start-from xbar [CAP - STROKE]
@ -497,7 +497,7 @@ create-glyph 'omega' : glyph-construction {
}
create-glyph 'phi' : glyph-construction {
assign-unicode 0x3C6
assign-unicode 0x3D5
include ifMarks
local fine : adviceBlackness 3.5
local y1 0
@ -507,6 +507,27 @@ create-glyph 'phi' : glyph-construction {
include : VBar MIDDLE y1 y2 fine
include : VBar MIDDLE [y2 - HALFSTROKE] CAP
}
create-glyph 'varphi' : glyph-construction {
assign-unicode 0x3C6
include pMarks
local fine : adviceBlackness 3.5
local x0 : [mix SB RIGHTSB 0.1] + fine
local y0 : XH - STROKE * 0.2
local y1 : mix 0 XH 0.75
local x1 : SB + fine * ITALICCOR + O
local y3 : XH / 2
local y4 : XH * 0.65
include : create-stroke
:.start-from x0 y0
:.set-width 0 fine
:.curve-to x1 y1 x1 [XH / 2]
:.arc-vh-to MIDDLE [fine + O]
:.arc-hv-to [WIDTH - x1] [XH / 2]
:.arc-vh-to [mix [WIDTH - x1] [MIDDLE + fine / 2] 0.5] [XH - fine - O]
:.arc-hv-to [MIDDLE + fine / 2] y3
:.line-to [MIDDLE + fine / 2] DESCENDER
}
create-glyph 'psi' : glyph-construction {
assign-unicode 0x3C8
@ -534,6 +555,14 @@ create-glyph 'chi' : glyph-construction {
include : xStrand SB XH RIGHTSB DESCENDER 0.05 0.4 0.1
}
# Variant letters
create-glyph 'pomega' : glyph-construction {
assign-unicode 0x3D6
include glyphs.omega AS_BASE
include : HBar SB RIGHTSB [XH - HALFSTROKE]
}
### Polytonic symbols
define [GreekLRDoubleMark id unicode leftGlyph rightGlyph] : create-glyph id : glyph-construction {
assign-unicode unicode

View File

@ -186,23 +186,19 @@ create-glyph 'K' : glyph-construction {
}
### B D P R
create-glyph 'B' : glyph-construction {
set-width WIDTH
assign-unicode 'B'
include capitalMarks
local bowl 451
define [BShape top] : glyph-construction {
local bowl : top * 0.585
local tkappa [COKAPPA - 0.22]
local bkappa [COKAPPA - 0.2]
local turntop : [CAP + [bowl - STROKE]] / 2
local turntop : [top + [bowl - STROKE]] / 2
local turnbottom : bowl / 2
include : create-stroke
:.start-from SB CAP
:.start-from SB top
:.heads-to RIGHTWARD
:.set-width 0 STROKE
:.line-to [RIGHTSB - SB * 0.5 - turnbottom] CAP
:.line-to [RIGHTSB - SB * 0.5 - turnbottom] top
:.arc-hv-to [RIGHTSB - SB * 0.5] turntop
:.arc-vh-to [RIGHTSB - SB * 0.5 - turnbottom] [bowl - STROKE]
:.line-to SB [bowl - STROKE]
@ -222,9 +218,15 @@ create-glyph 'B' : glyph-construction {
:.start-from SB 0
:.heads-to UPWARD
:.set-width 0 STROKE
:.line-to SB CAP
:.line-to SB top
:.heads-to UPWARD
}
create-glyph 'B' : glyph-construction {
set-width WIDTH
assign-unicode 'B'
include capitalMarks
include : BShape CAP
}
create-glyph 'D' : glyph-construction {
set-width WIDTH
@ -414,26 +416,23 @@ create-glyph 'E' : glyph-construction {
include : create-stroke :.start-from [SB * 1.5] 0 :.set-width STROKE 0 :.heads-to RIGHTWARD
:.line-to RIGHTSB 0 :.heads-to RIGHTWARD
}
define [HShape top] : glyph-construction {
include : create-stroke :.start-from SB 0 :.heads-to UPWARD :.set-width 0 STROKE
:.line-to SB top :.heads-to UPWARD
include : create-stroke :.start-from RIGHTSB 0 :.heads-to UPWARD :.set-width STROKE 0
:.line-to RIGHTSB top :.heads-to UPWARD
include : create-stroke :.start-from SB [top / 2] :.set-width HALFSTROKE HALFSTROKE :.heads-to RIGHTWARD
:.line-to RIGHTSB [top / 2] :.heads-to RIGHTWARD
}
create-glyph 'H' : glyph-construction {
set-width WIDTH
assign-unicode 'H'
include capitalMarks
include : create-stroke :.start-from SB 0 :.heads-to UPWARD :.set-width 0 STROKE
:.line-to SB CAP :.heads-to UPWARD
include : create-stroke :.start-from RIGHTSB 0 :.heads-to UPWARD :.set-width STROKE 0
:.line-to RIGHTSB CAP :.heads-to UPWARD
include : create-stroke :.start-from SB [CAP / 2] :.set-width HALFSTROKE HALFSTROKE :.heads-to RIGHTWARD
:.line-to RIGHTSB [CAP / 2] :.heads-to RIGHTWARD
include : HShape CAP
}
create-glyph 'L' : glyph-construction {
set-width WIDTH
assign-unicode 'L'
include capitalMarks
define [LShape top] : glyph-construction {
include : create-stroke
:.start-from [SB * 1.5] CAP
:.start-from [SB * 1.5] top
:.set-width STROKE 0
:.heads-to DOWNWARD
:.line-to [SB * 1.5] 0
@ -445,6 +444,12 @@ create-glyph 'L' : glyph-construction {
:.line-to RIGHTSB 0
:.heads-to RIGHTWARD
}
create-glyph 'L' : glyph-construction {
set-width WIDTH
assign-unicode 'L'
include capitalMarks
include : LShape CAP
}
create-glyph 'I.straight' : glyph-construction {
dont-export
@ -571,28 +576,30 @@ create-glyph 'N' : glyph-construction {
:.start-from [SB + halftopstroke] CAP :.heads-to DOWNWARD :.set-width topstroke 0
:.line-to [RIGHTSB - topstroke - halftopstroke] 0 :.heads-to DOWNWARD
}
create-glyph 'M' : glyph-construction {
set-width WIDTH
assign-unicode 'M'
include capitalMarks
define [MShape top] : glyph-construction {
local topstroke : adviceBlackness 5
local halftopstroke : topstroke / 2
include : 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
:.line-to SB [top * 0.2] :.heads-to UPWARD
:.line-to SB top :.heads-to UPWARD :.set-width 0 topstroke
include : 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
:.line-to RIGHTSB [top * 0.2] :.heads-to UPWARD
:.line-to RIGHTSB top :.heads-to UPWARD :.set-width topstroke 0
include : create-stroke
:.start-from [SB + halftopstroke] CAP :.heads-to DOWNWARD :.set-width topstroke 0
:.line-to [MIDDLE - halftopstroke] [CAP * 0.3] :.heads-to DOWNWARD
:.start-from [SB + halftopstroke] top :.heads-to DOWNWARD :.set-width topstroke 0
:.line-to [MIDDLE - halftopstroke] [top * 0.3] :.heads-to DOWNWARD
include : create-stroke
:.start-from [MIDDLE + halftopstroke] [CAP * 0.3] :.heads-to UPWARD :.set-width topstroke 0
:.line-to [RIGHTSB - halftopstroke] CAP :.heads-to UPWARD
:.start-from [MIDDLE + halftopstroke] [top * 0.3] :.heads-to UPWARD :.set-width topstroke 0
:.line-to [RIGHTSB - halftopstroke] top :.heads-to UPWARD
}
create-glyph 'M' : glyph-construction {
set-width WIDTH
assign-unicode 'M'
include capitalMarks
include : MShape CAP
}
### S

View File

@ -1,5 +1,5 @@
SUPPORT_FILES = support/glyph.js support/stroke.js parameters.js
GLYPH_SEGMENTS = glyphs/common-shapes.patel glyphs/overmarks.patel glyphs/latin-basic-capital.patel glyphs/latin-basic-lower.patel glyphs/greek.patel glyphs/latin-extend.patel glyphs/numbers.patel glyphs/symbol-ascii.patel glyphs/symbol-extend.patel glyphs/autobuilds.patel
GLYPH_SEGMENTS = glyphs/common-shapes.patel glyphs/overmarks.patel glyphs/latin-basic-capital.patel glyphs/latin-basic-lower.patel glyphs/greek.patel glyphs/cyrillic-basic.patel glyphs/latin-extend.patel glyphs/numbers.patel glyphs/symbol-ascii.patel glyphs/symbol-extend.patel glyphs/autobuilds.patel
OBJDIR = build
ifeq ($(OS),Windows_NT)

View File

@ -39,7 +39,7 @@ define regular (
.family 'Iosevka'
.style 'Regular'
.weight 400
.version 'r0.0.5'
.version 'r0.0.6'
.variantSelector (.)
.copyright 'Copyright (c) 2015 Belleve Invis.'
)