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

View File

@ -131,14 +131,13 @@ symbol-block 'J'
local slope (STROKE * 0.00092)
local expand 0.35
local coexpand ((1 - expand) / 2)
local smooth : HOOK + 0.75 * STROKE
local hookx (0.5 * SB + OXHOOK)
include : dispiro
widths.rhs
flat (RIGHTSB - JBALANCE2) CAP [heading DOWNWARD]
curl (RIGHTSB - JBALANCE2) smooth
curl (RIGHTSB - JBALANCE2) SMOOTH
hookend O
g4 hookx HOOK
@ -176,11 +175,10 @@ symbol-block 'j'
local center : MIDDLE + JBALANCE + HALFSTROKE * CORRECTION_HX
local hookx : center - (WIDTH * 0.5) - STROKE * CORRECTION_HX + OXHOOK
local turn : [mix center hookx 0.5] + CORRECTION_OMIDS
local smb : (center - turn) * 1.2
include : dispiro
widths.rhs
flat center XH [heading DOWNWARD]
curl center (DESCENDER + smb)
curl center (DESCENDER + SMOOTH)
hookend (DESCENDER + O)
g4 hookx (DESCENDER + JHOOK)
@ -992,7 +990,7 @@ symbol-block 'B'
assign-unicode 0x243
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
assign-unicode 0x3B2
@ -1066,9 +1064,11 @@ symbol-block 'b'
assign-unicode 0x185
include glyphs.b AS_BASE
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 (CAP - STROKE * 2)
line-to (SB - O) (CAP - STROKE * 2)
reverse-last
### D
symbol-block 'D'
@ -1683,8 +1683,8 @@ symbol-block 'O'
set-width WIDTH
assign-unicode 'o'
include eMarks
include : OShape XH 0 SB RIGHTSB nothing nothing nothing true
alias 'omicron' 0x3BF 'o'
alias 'cyro' 0x43e 'o'
@ -1725,6 +1725,31 @@ symbol-block 'O'
include glyphs.O AS_BASE
local radius : Math.min DOTRADIUS ((RIGHTSB - SB - STROKE * 2) / 4)
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
symbol-block 'Q'
@ -2523,13 +2548,14 @@ symbol-block 't'
local turn : [mix center hookx 0.5] + CORRECTION_OMIDS
local smb : (turn - center) * 1.2
include : dispiro
local g : dispiro
widths.lhs
flat center top [heading DOWNWARD]
curl center (bot + smb)
hookend (bot + O)
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

View File

@ -75,6 +75,7 @@ symbol-block 'Gamma'
create-glyph 'cyrghayn.italic' : glyph-construction
include glyphs.'cyrghe.italic' AS_BASE
include : FlatSlashShape MIDDLE (XH / 2) (OVERLAYSTROKE / 2) (-0.2) 0.75
alias 'voicedlaryngenalspirant' 0x1D24 'cyrghayn.italic'
italic-variant 'cyrghayn' 0x493
@ -512,6 +513,28 @@ symbol-block 'Psi'
include : tagged 'serifRT' : RightwardTopSerif RIGHTSB y2 SIDEJUT
include : tagged 'serifMT' : CenterTopSerif MIDDLE CAP 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
assign-unicode 0x3C8
include ifMarks
@ -708,9 +731,11 @@ define {CyrYeriShape RevCyrYeriShape} : symbol-block 'CyrYeri-related'
assign-unicode 0x184
include glyphs.cyrYeri AS_BASE
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 (CAP - STROKE * 2)
line-to (SB - O) (CAP - STROKE * 2)
reverse-last
create-glyph 'latinDe' : glyph-construction
@ -1303,6 +1328,7 @@ symbol-block 'Digraphs'
include eMarks
include aeepart
include oeopart
turned nothing 0x1D14 'oe' MIDDLE (XH / 2)
create-glyph 'db' : glyph-construction
set-width WIDTH

View File

@ -161,7 +161,9 @@ export : define [SetupBuilders args] : begin
local g : new Glyph
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
set g.knots knots
set g.lhsknots lhs
set g.rhsknots rhs
return g
define [spiro-outline] : let [k : {}.slice.call arguments 0] : lambda [] : begin
local {.knots knots .closed closed .lastafs lastafs} : prepareSpiroKnots k this