464 lines
14 KiB
Plaintext
464 lines
14 KiB
Plaintext
###### Cyrillic glyphs
|
|
|
|
alias 'cyrA' 0x410 'A'
|
|
alias 'cyra' 0x430 'a'
|
|
alias 'cyrVe' 0x412 'B'
|
|
alias 'cyrGhe' 0x413 'Gamma'
|
|
alias 'cyrIe' 0x415 'E'
|
|
alias 'cyrie' 0x435 'e'
|
|
alias 'cyrKa' 0x41A 'K'
|
|
alias 'cyrka' 0x43A 'kappa'
|
|
alias 'cyrEm' 0x41C 'M'
|
|
alias 'cyrEn' 0x41D 'H'
|
|
alias 'cyrO' 0x41E 'O'
|
|
alias 'cyro' 0x43e 'o'
|
|
alias 'cyrPe' 0x41F 'Pi'
|
|
alias 'cyrpe.upright' null 'pi'
|
|
alias 'cyrpe.italic' null 'n'
|
|
italic-variant 'cyrpe' 0x43f
|
|
alias 'cyrEr' 0x420 'P'
|
|
alias 'cyrer' 0x440 'p'
|
|
alias 'cyrEs' 0x421 'C'
|
|
alias 'cyres' 0x441 'c'
|
|
alias 'cyrTe' 0x422 'T'
|
|
alias 'cyrte.upright' null 'tau'
|
|
alias 'cyrte.italic' null 'm'
|
|
italic-variant 'cyrte' 0x442
|
|
alias 'Ef' 0x424 'Phi'
|
|
alias 'cyref' 0x444 'varphi'
|
|
alias 'cyrHa' 0x425 'X'
|
|
alias 'cyrha' 0x445 'x'
|
|
alias 'cyru' 0x443 'y'
|
|
alias 'cyrUkranianI' 0x406 'I'
|
|
alias 'cyrUkraniani' 0x456 'i'
|
|
alias 'cyrJe' 0x408 'J'
|
|
alias 'cyrje' 0x458 'j'
|
|
alias 'cyrDze' 0x405 'S'
|
|
alias 'cyrdze' 0x455 's'
|
|
|
|
### Russian letters
|
|
define [CyrYeriShape 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 : spiro {
|
|
widths.lhs fine
|
|
flat [left + STROKE * 0.2] 0 [heading RIGHTWARD]
|
|
curl [right - turnbottom * [right - left] / [RIGHTSB - SB]] 0
|
|
archv
|
|
g4 [right - O] turnbottom
|
|
arcvh
|
|
flat [right - turnbottom * [right - left] / [RIGHTSB - SB]] bowl
|
|
curl [left + STROKE * 0.2] bowl [heading LEFTWARD]
|
|
}
|
|
include : VBarLeft left 0 top fine
|
|
}
|
|
create-glyph 'cyrYeri' : glyph-construction {
|
|
assign-unicode 0x42C
|
|
include capitalMarks
|
|
include : CyrYeriShape CAP SB RIGHTSB
|
|
}
|
|
create-glyph 'cyryeri' : glyph-construction {
|
|
assign-unicode 0x44C
|
|
include eMarks
|
|
include : CyrYeriShape XH SB RIGHTSB
|
|
}
|
|
create-glyph 'cyrBe' : glyph-construction {
|
|
assign-unicode 0x411
|
|
include glyphs.cyrYeri AS_BASE
|
|
include : HBar SB [mix SB RIGHTSB 0.9] [CAP - HALFSTROKE]
|
|
}
|
|
define [CyrCyrIShape 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 : CyrCyrIShape CAP
|
|
}
|
|
create-glyph 'cyri.upright' : glyph-construction {
|
|
include eMarks
|
|
dont-export
|
|
include : CyrCyrIShape 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 'cyrbe' : glyph-construction {
|
|
assign-unicode 0x431
|
|
include bMarks
|
|
include : smallo [CAP * 0.7] 0 SB RIGHTSB
|
|
include : spiro {
|
|
widths.rhs
|
|
flat [SB + O] SMALLSMOOTHB
|
|
curl [SB + O] [XH - SMALLSMOOTHA]
|
|
alsothruthem [list (0.25 0.79) (0.5 0.87)] important
|
|
g4 [RIGHTSB - HALFSTROKE * CORRECTION_HX] CAP
|
|
}
|
|
}
|
|
create-glyph 'cyrve.italic' : glyph-construction {
|
|
include eMarks
|
|
|
|
local mid : mix RIGHTSB SB 0.65
|
|
include : spiro {
|
|
widths.lhs
|
|
flat mid [XH / 2 - HALFSTROKE] [heading RIGHTWARD]
|
|
curl MIDDLE [XH / 2 - HALFSTROKE]
|
|
archv
|
|
g4 [RIGHTSB + O] [XH - SMOOTHB * 0.87]
|
|
arcvh
|
|
g4 [MIDDLE - CORRECTION_OMIDS] XO
|
|
archv
|
|
flat [SB + O] [XH - SMALLSMOOTHA]
|
|
curl [SB + O] SMALLSMOOTHB
|
|
arcvh
|
|
g4 [MIDDLE + CORRECTION_OMIDS] O
|
|
archv
|
|
g4 [RIGHTSB - O] [SMOOTHA * 0.87]
|
|
arcvh
|
|
flat MIDDLE [XH / 2 + HALFSTROKE]
|
|
curl mid [XH / 2 + HALFSTROKE] [heading LEFTWARD]
|
|
}
|
|
}
|
|
create-glyph 'cyrve.upright' : glyph-construction {
|
|
include eMarks
|
|
include : BShape XH
|
|
}
|
|
italic-variant 'cyrve' 0x432
|
|
create-glyph 'cyrghe.upright' : glyph-construction {
|
|
include eMarks
|
|
include : LShape XH
|
|
include : FlipAround MIDDLE [XH / 2] 1 [-1]
|
|
}
|
|
create-glyph 'cyrghe.italic' : glyph-construction {
|
|
include eMarks
|
|
include : spiro {
|
|
widths.rhs
|
|
g4 SB [XH - SHOOK]
|
|
hookstart XO SBALANCE
|
|
g4 RIGHTSB [XH - SMOOTHB * 0.85]
|
|
alsothru 0.5 0.5 [widths HALFSTROKE HALFSTROKE]
|
|
g4 SB [SMOOTHB * 0.85] [widths STROKE 0]
|
|
hookend O SBALANCE
|
|
g4 RIGHTSB SHOOK
|
|
}
|
|
}
|
|
italic-variant 'cyrghe' 0x433
|
|
define [CyrDeShape 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 * CORRECTION_HX] 0 top
|
|
include : HBar cutleft cutright [top - HALFSTROKE]
|
|
include : halfXStrand [cutleft + STROKE * CORRECTION_HX] top [SB + HALFSTROKE * CORRECTION_HX] HALFSTROKE 0.1 0.75 0.5
|
|
include : VBar [SB + HALFSTROKE * CORRECTION_HX + O * 2] [-LONGJUT + HALFSTROKE] 0
|
|
include : VBar [RIGHTSB - HALFSTROKE * CORRECTION_HX] [-LONGJUT + HALFSTROKE] 0
|
|
}
|
|
create-glyph 'cyrDe' : glyph-construction {
|
|
assign-unicode 0x414
|
|
include ifMarks
|
|
include : CyrDeShape CAP
|
|
}
|
|
create-glyph 'cyrde.upright' : glyph-construction {
|
|
include eMarks
|
|
include : CyrDeShape XH
|
|
}
|
|
create-glyph 'cyrde.italic' : glyph-construction {
|
|
include bMarks
|
|
include : smallo [CAP * 0.7] 0 SB RIGHTSB
|
|
local ymiddlea : [XH + SMALLSMOOTHA - SMALLSMOOTHB] / 2
|
|
include : spiro {
|
|
widths.lhs
|
|
g4 [RIGHTSB - O] ymiddlea
|
|
quadcontrols 0 0.8
|
|
g4 [SB + STROKE * 1.1] CAP
|
|
}
|
|
}
|
|
italic-variant 'cyrde' 0x434
|
|
define [CyrZheShape top] : glyph-construction {
|
|
local fine : adviceBlackness 3.3
|
|
local midx : mix SB MIDDLE 0.3
|
|
define [CyrAngleShape] : glyph-construction {
|
|
local cor 1
|
|
start-from [SB + O * 4] 0
|
|
line-to [SB + fine * cor + O * 4] 0
|
|
line-to [midx + fine * cor] [top / 2]
|
|
line-to [SB + fine * cor + O * 4] top
|
|
line-to [SB + O * 4] top
|
|
line-to midx [top / 2]
|
|
reverse-last
|
|
}
|
|
include : CyrAngleShape
|
|
include : FlipAround MIDDLE [top / 2]
|
|
include : CyrAngleShape
|
|
include : VBar MIDDLE 0 top fine
|
|
include : HBar midx [WIDTH - midx] [top / 2] fine
|
|
}
|
|
create-glyph 'cyrZhe' : glyph-construction {
|
|
assign-unicode 0x416
|
|
include capitalMarks
|
|
include : CyrZheShape CAP
|
|
}
|
|
create-glyph 'cyrzhe' : glyph-construction {
|
|
assign-unicode 0x436
|
|
include eMarks
|
|
include : CyrZheShape XH
|
|
}
|
|
define [CyrZeShape top hook] : glyph-construction {
|
|
local midx : mix RIGHTSB SB 0.65
|
|
local midy : top * BARPOS
|
|
local smb : top - [mix [midy + HALFSTROKE] [top - O - STROKE] [SMOOTHA / [SMOOTHA + SMOOTHB]]]
|
|
local sma : mix [STROKE + O] [midy - HALFSTROKE] [SMOOTHA / [SMOOTHA + SMOOTHB]]
|
|
include : spiro {
|
|
widths.rhs
|
|
g4 SB [top - [fallback hook SHOOK]]
|
|
hookstart top
|
|
g4 RIGHTSB [top - smb]
|
|
flat MIDDLE [midy - HALFSTROKE]
|
|
curl midx [midy - HALFSTROKE] [heading LEFTWARD]
|
|
}
|
|
include : spiro {
|
|
widths.lhs
|
|
g4 SB [fallback hook SHOOK]
|
|
hookstart 0
|
|
g4 RIGHTSB sma
|
|
flat MIDDLE [midy + HALFSTROKE]
|
|
curl midx [midy + HALFSTROKE] [heading LEFTWARD]
|
|
}
|
|
}
|
|
create-glyph 'cyrZe' : glyph-construction {
|
|
assign-unicode 0x417
|
|
include capitalMarks
|
|
include : CyrZeShape CAP HOOK
|
|
}
|
|
create-glyph 'cyrze' : glyph-construction {
|
|
assign-unicode 0x437
|
|
include eMarks
|
|
include : CyrZeShape XH
|
|
}
|
|
|
|
define [CyrElShape top] : glyph-construction {
|
|
local cutleft : mix SB RIGHTSB 0.125
|
|
local cutleft2 : mix SB RIGHTSB 0.075
|
|
local cutright : mix SB RIGHTSB 0.95
|
|
include : VBarRight cutright 0 top
|
|
include : HBar cutleft cutright [top - HALFSTROKE]
|
|
include : LegShape cutleft cutleft2 [mix SB 0 0.25] top 0
|
|
}
|
|
create-glyph 'cyrEl' : glyph-construction {
|
|
assign-unicode 0x41B
|
|
include capitalMarks
|
|
include : CyrElShape CAP
|
|
}
|
|
create-glyph 'cyrel' : glyph-construction {
|
|
assign-unicode 0x43B
|
|
include eMarks
|
|
include : CyrElShape XH
|
|
}
|
|
create-glyph 'cyrem' : glyph-construction {
|
|
assign-unicode 0x43C
|
|
include eMarks
|
|
include : MShape XH
|
|
}
|
|
create-glyph 'cyren' : glyph-construction {
|
|
assign-unicode 0x43D
|
|
include eMarks
|
|
include : HShape XH
|
|
}
|
|
|
|
define [CyrTseShape 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 'cyrTse' : glyph-construction {
|
|
assign-unicode 0x426
|
|
include capitalMarks
|
|
include : CyrTseShape CAP
|
|
}
|
|
create-glyph 'cyrtse' : glyph-construction {
|
|
assign-unicode 0x446
|
|
include eMarks
|
|
include : CyrTseShape XH
|
|
}
|
|
define [CyrCheShape top _barp] : glyph-construction {
|
|
local bar : top * [fallback _barp 0.4]
|
|
include : VBarRight RIGHTSB 0 top
|
|
include : spiro {
|
|
widths.lhs
|
|
flat SB top [heading DOWNWARD]
|
|
curl SB [bar + SMOOTHB - HALFSTROKE]
|
|
arcvh
|
|
flat MIDDLE [bar - HALFSTROKE]
|
|
curl [RIGHTSB - 1] [bar - HALFSTROKE] [heading RIGHTWARD]
|
|
}
|
|
}
|
|
create-glyph 'cyrChe' : glyph-construction {
|
|
assign-unicode 0x427
|
|
include capitalMarks
|
|
include : CyrCheShape CAP 0.35
|
|
}
|
|
create-glyph 'cyrche' : glyph-construction {
|
|
assign-unicode 0x447
|
|
include eMarks
|
|
include : CyrCheShape XH
|
|
}
|
|
define [CyrShaShape top] : glyph-construction {
|
|
include : HBarBottom SB RIGHTSB 0
|
|
include : VBarLeft SB 0 top MVERTSTROKE
|
|
include : VBarRight RIGHTSB 0 top MVERTSTROKE
|
|
include : VBar MIDDLE 0 top MVERTSTROKE
|
|
}
|
|
create-glyph 'cyrSha' : glyph-construction {
|
|
assign-unicode 0x428
|
|
include capitalMarks
|
|
include : CyrShaShape CAP
|
|
}
|
|
create-glyph 'cyrsha' : glyph-construction {
|
|
assign-unicode 0x448
|
|
include eMarks
|
|
include : CyrShaShape XH
|
|
}
|
|
define [CyrShchaShape top] : glyph-construction {
|
|
include : CyrShaShape top
|
|
include : VBarRight [mix SB RIGHTSB 1.05] [HALFSTROKE - LONGJUT] STROKE
|
|
}
|
|
create-glyph 'cyrShcha' : glyph-construction {
|
|
assign-unicode 0x429
|
|
include capitalMarks
|
|
include : CyrShchaShape CAP
|
|
}
|
|
create-glyph 'cyrshcha' : glyph-construction {
|
|
assign-unicode 0x449
|
|
include eMarks
|
|
include : CyrShchaShape XH
|
|
}
|
|
define [CyrYerShape top] : glyph-construction {
|
|
include : CyrYeriShape top [mix SB RIGHTSB 0.1] RIGHTSB
|
|
include : HBarTop [mix 0 SB 0.6] [STROKE * 0.1 + [mix SB RIGHTSB 0.1]] top
|
|
}
|
|
create-glyph 'cyrYer' : glyph-construction {
|
|
assign-unicode 0x42A
|
|
include capitalMarks
|
|
include : CyrYerShape CAP
|
|
}
|
|
create-glyph 'cyryer' : glyph-construction {
|
|
assign-unicode 0x44A
|
|
include eMarks
|
|
include : CyrYerShape XH
|
|
}
|
|
define [CyrYeryShape top] : glyph-construction {
|
|
include : CyrYeriShape top [SB + O] [mix [RIGHTSB - MVERTSTROKE * CORRECTION_HX] [MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX] 0.5] MVERTSTROKE
|
|
include : VBarRight [RIGHTSB - O] 0 top MVERTSTROKE
|
|
}
|
|
create-glyph 'cyrYery' : glyph-construction {
|
|
assign-unicode 0x42B
|
|
include capitalMarks
|
|
include : CyrYeryShape CAP
|
|
}
|
|
create-glyph 'cyryery' : glyph-construction {
|
|
assign-unicode 0x44B
|
|
include eMarks
|
|
include : CyrYeryShape XH
|
|
}
|
|
create-glyph 'cyrE' : glyph-construction {
|
|
assign-unicode 0x42D
|
|
include capitalMarks
|
|
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 [CyrYuShape top sma smb] : glyph-construction {
|
|
include : VBarLeft [SB + O] 0 top MVERTSTROKE
|
|
include : smallo top 0 [mix [SB + MVERTSTROKE * CORRECTION_HX] RIGHTSB 0.15] [RIGHTSB - O] MVERTSTROKE [sma * 0.8] [smb * 0.8]
|
|
include : HBar [SB + MVERTSTROKE * 0.1] [mix [SB + MVERTSTROKE * CORRECTION_HX] RIGHTSB 0.15] [top / 2]
|
|
}
|
|
create-glyph 'cyrYu' : glyph-construction {
|
|
assign-unicode 0x42E
|
|
include capitalMarks
|
|
include : CyrYuShape CAP SMOOTHA SMOOTHB
|
|
}
|
|
create-glyph 'cyryu' : glyph-construction {
|
|
assign-unicode 0x44E
|
|
include eMarks
|
|
include : CyrYuShape XH SMALLSMOOTHA SMALLSMOOTHB
|
|
}
|
|
define [CyrYaShape top] : glyph-construction {
|
|
local bowlTop [top * 1]
|
|
local bowlBottom [[top - STROKE] * 0.55 - 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 'cyrYa' : glyph-construction {
|
|
assign-unicode 0x42F
|
|
include capitalMarks
|
|
include : CyrYaShape CAP
|
|
}
|
|
create-glyph 'cyrya' : glyph-construction {
|
|
assign-unicode 0x44F
|
|
include eMarks
|
|
include : CyrYaShape XH
|
|
} |