Added /oupperhalf, /olowerhalf, /turnoe, /smcpOU; optimized /eight, /j, /J, /smcpPsi, /epsilon and /cyrzhe

This commit is contained in:
be5invis 2015-12-09 05:30:42 +08:00
parent 1d9e5eb289
commit db63d8d3ad
5 changed files with 73 additions and 13 deletions

View File

@ -351,10 +351,13 @@ createSMCPs : list
list 0x1D0D 'M' list 0x1D0D 'M'
list 0x1D0E 'cyrI' list 0x1D0E 'cyrI'
list 0x1D0F 'O' list 0x1D0F 'O'
list 0x1D10 'turnC'
list 0x1D15 'OU'
list 0x1D18 'P' list 0x1D18 'P'
list 0x1D19 'cyrYa' list 0x1D19 'cyrYa'
list 0x1D1A 'R' [FlipAround MIDDLE (XH / 2)] list 0x1D1A 'R' [FlipAround MIDDLE (XH / 2)]
list 0x1D1B 'T' list 0x1D1B 'T'
list 0x1D1C 'U'
list 0x1D20 'V' list 0x1D20 'V'
list 0x1D21 'W' list 0x1D21 'W'
list 0x1D22 'Z' list 0x1D22 'Z'
@ -363,7 +366,6 @@ createSMCPs : list
list 0x1D27 'Lambda' list 0x1D27 'Lambda'
list 0x1D28 'Pi' list 0x1D28 'Pi'
list 0x1D29 'Rho' list 0x1D29 'Rho'
list 0x1D2A 'Psi'
list 0x1D2B 'cyrEl' list 0x1D2B 'cyrEl'
progress 'Small Caps' progress 'Small Caps'
@ -413,6 +415,8 @@ createSuperscripts : list
list 0x1D51 'eng' list 0x1D51 'eng'
list 0x1D52 'o' list 0x1D52 'o'
list 0x1D53 'turnc' list 0x1D53 'turnc'
list 0x1D54 'oupperhalf'
list 0x1D55 'olowerhalf'
list 0x1D56 'p' list 0x1D56 'p'
list 0x1D57 't' list 0x1D57 't'
list 0x1D58 'u' list 0x1D58 'u'
@ -449,6 +453,7 @@ createSuperscripts : list
list 0x1DB2 'varphi' list 0x1DB2 'varphi'
list 0x1DB3 'srtail' list 0x1DB3 'srtail'
list 0x1DB4 'esh' list 0x1DB4 'esh'
list 0x1DB5 'tltail'
list 0x1DB6 'ulongBarOver' list 0x1DB6 'ulongBarOver'
list 0x1DB7 'latinupsilon1' list 0x1DB7 'latinupsilon1'
list 0x1DB8 'smcpU' list 0x1DB8 'smcpU'
@ -462,6 +467,7 @@ createSuperscripts : list
list 0x1D2C 'A' list 0x1D2C 'A'
list 0x1D2D 'AE' list 0x1D2D 'AE'
list 0x1D2E 'B' list 0x1D2E 'B'
list 0x1D2F 'Bbar'
list 0x1D30 'D' list 0x1D30 'D'
list 0x1D31 'E' list 0x1D31 'E'
list 0x1D32 'turnE' list 0x1D32 'turnE'

View File

@ -383,7 +383,7 @@ define [HBar xleft xright y _fine] : glyph-construction
define [HBarTop xl xr y _fine] : HBar xl xr (y - [fallback _fine STROKE] * 0.5) _fine 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 [HBarBottom xl xr y _fine] : HBar xl xr (y + [fallback _fine STROKE] * 0.5) _fine
define [HOverlayBar xleft xright y] : HBar xleft xright y OVERLAYSTROKE define [HOverlayBar xleft xright y s] : HBar xleft xright y [fallback s OVERLAYSTROKE]
define [VBar x ydown yup _fine] : glyph-construction define [VBar x ydown yup _fine] : glyph-construction
local fine : fallback _fine STROKE local fine : fallback _fine STROKE
include : dispiro include : dispiro

View File

@ -131,14 +131,13 @@ symbol-block 'J'
local slope (STROKE * 0.00092) local slope (STROKE * 0.00092)
local expand 0.35 local expand 0.35
local coexpand ((1 - expand) / 2) local coexpand ((1 - expand) / 2)
local smooth : HOOK + 0.75 * STROKE
local hookx (0.5 * SB + OXHOOK) local hookx (0.5 * SB + OXHOOK)
include : dispiro include : dispiro
widths.rhs widths.rhs
flat (RIGHTSB - JBALANCE2) CAP [heading DOWNWARD] flat (RIGHTSB - JBALANCE2) CAP [heading DOWNWARD]
curl (RIGHTSB - JBALANCE2) smooth curl (RIGHTSB - JBALANCE2) SMOOTH
hookend O hookend O
g4 hookx HOOK g4 hookx HOOK
@ -176,11 +175,10 @@ symbol-block 'j'
local center : MIDDLE + JBALANCE + HALFSTROKE * CORRECTION_HX local center : MIDDLE + JBALANCE + HALFSTROKE * CORRECTION_HX
local hookx : center - (WIDTH * 0.5) - STROKE * CORRECTION_HX + OXHOOK local hookx : center - (WIDTH * 0.5) - STROKE * CORRECTION_HX + OXHOOK
local turn : [mix center hookx 0.5] + CORRECTION_OMIDS local turn : [mix center hookx 0.5] + CORRECTION_OMIDS
local smb : (center - turn) * 1.2
include : dispiro include : dispiro
widths.rhs widths.rhs
flat center XH [heading DOWNWARD] flat center XH [heading DOWNWARD]
curl center (DESCENDER + smb) curl center (DESCENDER + SMOOTH)
hookend (DESCENDER + O) hookend (DESCENDER + O)
g4 hookx (DESCENDER + JHOOK) g4 hookx (DESCENDER + JHOOK)
@ -992,7 +990,7 @@ symbol-block 'B'
assign-unicode 0x243 assign-unicode 0x243
include glyphs.B AS_BASE include glyphs.B AS_BASE
include : HOverlayBar [mix SB 0 0.7] [mix SB RIGHTSB 0.5] [mix 0 CAP 0.3] include : HOverlayBar [mix SB 0 0.7] [mix SB RIGHTSB 0.5] [mix 0 CAP 0.3] [Math.min (CAP / 8) OVERLAYSTROKE]
create-glyph 'beta' : glyph-construction create-glyph 'beta' : glyph-construction
assign-unicode 0x3B2 assign-unicode 0x3B2
@ -1066,9 +1064,11 @@ symbol-block 'b'
assign-unicode 0x185 assign-unicode 0x185
include glyphs.b AS_BASE include glyphs.b AS_BASE
eject-contour 'serifLT' eject-contour 'serifLT'
start-from SB CAP start-from (SB - O) CAP
line-to SB CAP
line-to (SB - STROKE) (CAP - STROKE) line-to (SB - STROKE) (CAP - STROKE)
line-to SB (CAP - STROKE * 2) line-to SB (CAP - STROKE * 2)
line-to (SB - O) (CAP - STROKE * 2)
reverse-last reverse-last
### D ### D
symbol-block 'D' symbol-block 'D'
@ -1683,8 +1683,8 @@ symbol-block 'O'
set-width WIDTH set-width WIDTH
assign-unicode 'o' assign-unicode 'o'
include eMarks include eMarks
include : OShape XH 0 SB RIGHTSB nothing nothing nothing true include : OShape XH 0 SB RIGHTSB nothing nothing nothing true
alias 'omicron' 0x3BF 'o' alias 'omicron' 0x3BF 'o'
alias 'cyro' 0x43e 'o' alias 'cyro' 0x43e 'o'
@ -1726,6 +1726,31 @@ symbol-block 'O'
local radius : Math.min DOTRADIUS ((RIGHTSB - SB - STROKE * 2) / 4) local radius : Math.min DOTRADIUS ((RIGHTSB - SB - STROKE * 2) / 4)
include : Ring (CAPMIDDLE + radius) (CAPMIDDLE - radius) (MIDDLE + radius) (MIDDLE - radius) include : Ring (CAPMIDDLE + radius) (CAPMIDDLE - radius) (MIDDLE + radius) (MIDDLE - radius)
create-glyph 'oupperhalf' : glyph-construction
assign-unicode 0x1D16
include eMarks
include : dispiro
widths.rhs
flat (SB + OX) (XH / 2) [heading UPWARD]
curl (SB + OX) (XH - SMALLSMOOTHA)
arcvh
g4 (MIDDLE - CORRECTION_OMIDS) (XH - O)
archv
flat (RIGHTSB - OX) (XH - SMALLSMOOTHB)
curl (RIGHTSB - OX) (XH / 2) [heading DOWNWARD]
create-glyph 'olowerhalf' : glyph-construction
assign-unicode 0x1D17
include eMarks
include : dispiro
widths.lhs
flat (SB + OX) (XH / 2) [heading DOWNWARD]
curl (SB + OX) SMALLSMOOTHB
arcvh
g4 (MIDDLE + CORRECTION_OMIDS) O
archv
flat (RIGHTSB - OX) SMALLSMOOTHA
curl (RIGHTSB - OX) (XH / 2) [heading UPWARD]
### Q ### Q
symbol-block 'Q' symbol-block 'Q'
create-glyph 'Q' : glyph-construction create-glyph 'Q' : glyph-construction
@ -2523,13 +2548,14 @@ symbol-block 't'
local turn : [mix center hookx 0.5] + CORRECTION_OMIDS local turn : [mix center hookx 0.5] + CORRECTION_OMIDS
local smb : (turn - center) * 1.2 local smb : (turn - center) * 1.2
include : dispiro local g : dispiro
widths.lhs widths.lhs
flat center top [heading DOWNWARD] flat center top [heading DOWNWARD]
curl center (bot + smb) curl center (bot + smb)
hookend (bot + O) hookend (bot + O)
g4 hookx (bot + HOOK) g4 hookx (bot + HOOK)
set-anchor 'bottomright' BASE hookx (bot + HOOK) include g
set-anchor 'bottomright' BASE g.knots.(g.knots.length - 1).x g.knots.(g.knots.length - 1).y
include : HBarTop (center + HALFSTROKE - LONGJUT + TBALANCE2) (center + HALFSTROKE + LONGJUT + TBALANCE2) XH include : HBarTop (center + HALFSTROKE - LONGJUT + TBALANCE2) (center + HALFSTROKE + LONGJUT + TBALANCE2) XH

View File

@ -75,6 +75,7 @@ symbol-block 'Gamma'
create-glyph 'cyrghayn.italic' : glyph-construction create-glyph 'cyrghayn.italic' : glyph-construction
include glyphs.'cyrghe.italic' AS_BASE include glyphs.'cyrghe.italic' AS_BASE
include : FlatSlashShape MIDDLE (XH / 2) (OVERLAYSTROKE / 2) (-0.2) 0.75 include : FlatSlashShape MIDDLE (XH / 2) (OVERLAYSTROKE / 2) (-0.2) 0.75
alias 'voicedlaryngenalspirant' 0x1D24 'cyrghayn.italic'
italic-variant 'cyrghayn' 0x493 italic-variant 'cyrghayn' 0x493
@ -512,6 +513,28 @@ symbol-block 'Psi'
include : tagged 'serifRT' : RightwardTopSerif RIGHTSB y2 SIDEJUT include : tagged 'serifRT' : RightwardTopSerif RIGHTSB y2 SIDEJUT
include : tagged 'serifMT' : CenterTopSerif MIDDLE CAP JUT include : tagged 'serifMT' : CenterTopSerif MIDDLE CAP JUT
include : tagged 'serifMB' : CenterBottomSerif MIDDLE 0 JUT include : tagged 'serifMB' : CenterBottomSerif MIDDLE 0 JUT
create-glyph 'smcpPsi' : glyph-construction
assign-unicode 0x1D2A
include eMarks
local y : XH * 0.3
local y2 XH
include : dispiro
widths.lhs MVERTSTROKE
flat SB y2 [heading DOWNWARD]
curl SB (y + SMOOTHB)
arcvh
g4 MIDDLE y [heading RIGHTWARD]
archv
flat RIGHTSB (y + SMOOTHA)
curl RIGHTSB y2 [heading UPWARD]
include : VBar MIDDLE y XH MVERTSTROKE
include : VBar MIDDLE 0 (y + HALFSTROKE)
if SLAB : begin
include : tagged 'serifLT' : LeftwardTopSerif SB y2 SIDEJUT
include : tagged 'serifRT' : RightwardTopSerif RIGHTSB y2 SIDEJUT
include : tagged 'serifMB' : CenterBottomSerif MIDDLE 0 JUT
create-glyph 'psi' : glyph-construction create-glyph 'psi' : glyph-construction
assign-unicode 0x3C8 assign-unicode 0x3C8
include ifMarks include ifMarks
@ -708,9 +731,11 @@ define {CyrYeriShape RevCyrYeriShape} : symbol-block 'CyrYeri-related'
assign-unicode 0x184 assign-unicode 0x184
include glyphs.cyrYeri AS_BASE include glyphs.cyrYeri AS_BASE
eject-contour 'serifYeriLT' eject-contour 'serifYeriLT'
start-from SB CAP start-from (SB - O) CAP
line-to SB CAP
line-to (SB - STROKE) (CAP - STROKE) line-to (SB - STROKE) (CAP - STROKE)
line-to SB (CAP - STROKE * 2) line-to SB (CAP - STROKE * 2)
line-to (SB - O) (CAP - STROKE * 2)
reverse-last reverse-last
create-glyph 'latinDe' : glyph-construction create-glyph 'latinDe' : glyph-construction
@ -1303,6 +1328,7 @@ symbol-block 'Digraphs'
include eMarks include eMarks
include aeepart include aeepart
include oeopart include oeopart
turned nothing 0x1D14 'oe' MIDDLE (XH / 2)
create-glyph 'db' : glyph-construction create-glyph 'db' : glyph-construction
set-width WIDTH set-width WIDTH

View File

@ -161,7 +161,9 @@ export : define [SetupBuilders args] : begin
local g : new Glyph local g : new Glyph
lhs.0.type = rhs.0.type = lhs.(lhs.length - 1).type = rhs.(rhs.length - 1).type = 'corner' lhs.0.type = rhs.0.type = lhs.(lhs.length - 1).type = rhs.(rhs.length - 1).type = 'corner'
libspiro.spiroToBezierOnContext [lhs.concat : rhs.reverse] true g libspiro.spiroToBezierOnContext [lhs.concat : rhs.reverse] true g
set g.knots knots
set g.lhsknots lhs
set g.rhsknots rhs
return g return g
define [spiro-outline] : let [k : {}.slice.call arguments 0] : lambda [] : begin define [spiro-outline] : let [k : {}.slice.call arguments 0] : lambda [] : begin
local {.knots knots .closed closed .lastafs lastafs} : prepareSpiroKnots k this local {.knots knots .closed closed .lastafs lastafs} : prepareSpiroKnots k this