Balance: /c, /e, /s, /S, /epsilon, /cyrze

This commit is contained in:
be5invis 2015-08-16 00:27:05 +08:00
parent c0001e72eb
commit 679a7f5004
8 changed files with 72 additions and 75 deletions

View File

@ -109,8 +109,9 @@ define [buildFont para recursive] : begin {
define BKAPPA : para.bkappa || KAPPA + 0.1
define CKAPPA : para.ckappa || BKAPPA
define COBKAPPA : 1 - BKAPPA
define KAPPA_HOOK : para.kappa_hook || BKAPPA + 0.1
define KAPPA_AHOOK : para.kappa_ahook || KAPPA_HOOK
define KAPPA_HOOK : fallback para.kappa_hook [BKAPPA + 0.1]
define KAPPA_AHOOK : fallback para.kappa_ahook KAPPA_HOOK
define KAPPA_RHOOK : fallback para.kappa_rhook KAPPA_HOOK
define TAILADJX : WIDTH * 0.2
define TAILADJY : XH * 0.25
define TAILADJKAPPA 0.75
@ -122,6 +123,7 @@ define [buildFont para recursive] : begin {
define TBALANCE : para.tbalance || JBALANCE
define TBALANCE2 : para.tbalance2 || TBALANCE
define RBALANCE : para.rbalance || JBALANCE * 0.3
define SBALANCE : fallback para.sbalance 0.52
define serifed : not [not para.serif]

View File

@ -333,7 +333,7 @@ createSuperscripts : list {
list 0x1D9C 'c'
list 0x1D9D 'ccurlytail'
list 0x1D9E 'eth'
list 0x1D9F 'turnlatinepsilon'
list 0x1D9F 'revlatinepsilon'
list 0x1DA0 'f'
list 0x1DA1 'turnf'
list 0x1DA2 'scriptg'

View File

@ -185,38 +185,31 @@ define [nShoulder left middle right fine _top _bottom _sma _smb _wide] : begin {
return : band.concat (shoulder.points)
}
define [XSHookUpper top left middle right smooth hook stroke] : glyph-construction {
define [XSHookUpper top left _middle right smooth hook _stroke] : glyph-construction {
local middle : fallback _middle [mix left right SBALANCE]
local stroke : fallback _stroke STROKE
include : create-stroke
:.set-transform globalTransform
:.start-from [right - OXHOOK] [top - hook]
:.set-width [fallback stroke STROKE] 0
:.set-width [if [left < right] stroke 0] [if [left < right] 0 stroke]
:.curve-to [mix middle right KAPPA_HOOK] [top - O] [middle - OMIDCOR_S] [top - O]
:.arc-hv-to left [top - smooth]
}
define [sHookUpper top smooth hook _middle stroke] : glyph-construction {
include : XSHookUpper top SB [fallback _middle MIDDLE] RIGHTSB smooth hook stroke
}
define [twoHookUpper top smooth hook _middle _width] : glyph-construction {
local middle : _middle || MIDDLE
local width : fallback _width STROKE
include : create-stroke
:.set-transform globalTransform
:.start-from [SB + OXHOOK] [top - hook]
:.set-width 0 width
:.curve-to [mix middle SB KAPPA_HOOK] [top - O] [middle - OMIDCOR_S] [top - O]
:.arc-hv-to RIGHTSB [top - smooth]
}
define [sHookLower bottom smooth hook _middle] : glyph-construction {
include : XSHookLower bottom SB [fallback _middle MIDDLE] RIGHTSB smooth hook
}
define [XSHookLower bottom left middle right smooth hook] : glyph-construction {
define [sHookUpper top smooth hook _middle _stroke] : XSHookUpper top SB _middle RIGHTSB smooth hook _stroke
define [twoHookUpper top smooth hook _middle _stroke] : XSHookUpper top RIGHTSB _middle SB smooth hook _stroke
define [XSHookLower bottom left _middle right smooth hook _stroke] : glyph-construction {
local middle : fallback _middle [mix left right SBALANCE]
local stroke : fallback _stroke STROKE
include : create-stroke
:.set-transform globalTransform
:.start-from right [bottom + smooth]
:.set-width [if [left < right] 0 STROKE] [if [left < right] STROKE 0]
:.set-width [if [left < right] 0 stroke] [if [left < right] stroke 0]
:.arc-vh-to [middle + OMIDCOR_S] [bottom + O]
:.curve-to [mix middle left KAPPA_HOOK] [bottom + O] [left + OXHOOK] [bottom + hook]
}
define [sHookLower bottom smooth hook _middle _stroke] : XSHookLower bottom SB _middle RIGHTSB smooth hook _stroke
define [EHookLower bottom smooth hook _middle _stroke _o] : XSHookLower bottom [RIGHTSB + TAILADJX * globalTransform.yx] _middle [SB + [fallback _o O]] smooth [hook - TAILADJY * globalTransform.yx] _stroke
define [RevEHookLower bottom smooth hook _middle _stroke _o] : XSHookLower bottom SB _middle [RIGHTSB - [fallback _o O]] smooth hook _stroke
define [smallo u d l r _width _sma _smb] : glyph-construction {
local middle : [l + r] / 2

View File

@ -223,29 +223,30 @@ create-glyph 'cyrzhe' : glyph-construction {
include eMarks
include : CyrZheShape XH
}
define [CyrZeShape top] : glyph-construction {
local mid : mix RIGHTSB SB 0.65
local smb : SMOOTHB * 0.815
local sma : SMOOTHA * 0.815
include : twoHookUpper top [smb / [XH / top]] SHOOK
include : sHookLower 0 [sma / [XH / top]] SHOOK
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 : twoHookUpper top smb [fallback hook SHOOK] [MIDDLE + OMIDCOR_S / 2] nothing 0
include : sHookLower 0 sma [fallback hook SHOOK] [MIDDLE - OMIDCOR_S / 2] nothing 0
include : create-stroke
:.start-from RIGHTSB [top - smb / [XH / top]]
:.start-from RIGHTSB [top - smb]
:.set-width 0 STROKE
:.arc-vh-to MIDDLE [top / 2 - HALFSTROKE] KAPPA
:.line-to mid [top / 2 - HALFSTROKE]
:.arc-vh-to MIDDLE [midy - HALFSTROKE] KAPPA
:.line-to midx [midy - HALFSTROKE]
:.heads-to LEFTWARD
include : create-stroke
:.start-from RIGHTSB [sma / [XH / top]]
:.start-from RIGHTSB sma
:.set-width STROKE 0
:.arc-vh-to MIDDLE [top / 2 + HALFSTROKE] KAPPA
:.line-to mid [top / 2 + HALFSTROKE]
:.arc-vh-to MIDDLE [midy + HALFSTROKE] KAPPA
:.line-to midx [midy + HALFSTROKE]
:.heads-to LEFTWARD
}
create-glyph 'cyrZe' : glyph-construction {
assign-unicode 0x417
include capitalMarks
include : CyrZeShape CAP
include : CyrZeShape CAP HOOK
}
create-glyph 'cyrze' : glyph-construction {
assign-unicode 0x437

View File

@ -329,29 +329,31 @@ create-glyph 'delta' : glyph-construction {
:.arc-vh-to xOTLeft [bar - STROKE]
:.set-width fine 0
}
create-glyph 'epsilon' : glyph-construction {
assign-unicode 0x3B5
include eMarks
local mid : mix SB RIGHTSB 0.65
local sma : SMOOTHA * 0.815
local smb : SMOOTHB * 0.815
include : sHookUpper XH sma SHOOK
include : XSHookLower 0 [RIGHTSB - OXHOOK + TAILADJX * globalTransform.yx] MIDDLE SB smb [SHOOK - TAILADJY * globalTransform.yx]
define [SmallEpsilonShape top hook] : glyph-construction {
local midx : mix SB RIGHTSB 0.65
local midy : top * BARPOS
local sma : top - [mix [midy + HALFSTROKE] [top - O - STROKE] [SMOOTHB / [SMOOTHA + SMOOTHB]]]
local smb : mix [STROKE + O] [midy - HALFSTROKE] [SMOOTHB / [SMOOTHA + SMOOTHB]]
include : sHookUpper top sma [fallback hook SHOOK]
include : EHookLower 0 smb [fallback hook SHOOK] nothing nothing 0
include : create-stroke
:.start-from SB [XH - sma]
:.start-from SB [top - sma]
:.set-width STROKE 0
:.arc-vh-to MIDDLE [XH / 2 - HALFSTROKE] KAPPA
:.line-to mid [XH / 2 - HALFSTROKE]
:.arc-vh-to MIDDLE [midy - HALFSTROKE] KAPPA
:.line-to midx [midy - HALFSTROKE]
:.heads-to RIGHTWARD
include : create-stroke
:.start-from SB smb
:.set-width 0 STROKE
:.arc-vh-to MIDDLE [XH / 2 + HALFSTROKE] KAPPA
:.line-to mid [XH / 2 + HALFSTROKE]
:.arc-vh-to MIDDLE [midy + HALFSTROKE] KAPPA
:.line-to midx [midy + HALFSTROKE]
:.heads-to RIGHTWARD
}
create-glyph 'epsilon' : glyph-construction {
assign-unicode 0x3B5
include eMarks
include : SmallEpsilonShape XH
}
create-glyph 'zeta' : glyph-construction {
assign-unicode 0x3B6
include ifMarks

View File

@ -107,14 +107,11 @@ create-glyph 'c' : glyph-construction {
assign-unicode 'c'
include eMarks
include : EHookLower 0 SMALLSMOOTHB HOOK
include : XSHookUpper XH [SB + O] nothing RIGHTSB SMALLSMOOTHA [HOOK - TAILADJY * globalTransform.yx]
include : create-stroke
:.start-from [RIGHTSB - OXHOOK] [XH - HOOK]
:.set-width STROKE 0
:.curve-to [MIDDLE + KAPPA_HOOK * [MIDDLE - para.sb]] XO [MIDDLE - OMIDCOR_S] XO
:.arc-hv-to [SB + O] [XH - SMALLSMOOTHA]
:.start-from [SB + O] [XH - SMALLSMOOTHA] :.set-width STROKE 0
:.line-to [SB + O] SMALLSMOOTHB
:.arc-vh-to [MIDDLE + OMIDCOR_S] O
:.curve-to [MIDDLE + [KAPPA_HOOK + TAILADJKAPPA * globalTransform.yx] * [MIDDLE - SB]] O [RIGHTSB - OXHOOK + TAILADJX * globalTransform.yx] [HOOK - TAILADJY * globalTransform.yx]
}
define [SmallEShape top stroke barpos] : glyph-construction {
local barbottom [top * [fallback barpos EBARPOS]]
@ -129,8 +126,7 @@ define [SmallEShape top stroke barpos] : glyph-construction {
:.arc-vh-to MIDDLE [top - O]
:.arc-hv-to [SB + O] [top - SMALLSMOOTHA]
:.line-to [SB + O] SMALLSMOOTHB
:.arc-vh-to hookmiddle O
:.curve-to [mix hookmiddle hookx KAPPA_HOOK] O hookx [SHOOK - TAILADJY * globalTransform.yx]
include : EHookLower 0 SMALLSMOOTHB HOOK
include : create-stroke
:.start-from [SB + [stroke / 2]] barbottom
:.set-width stroke 0
@ -157,9 +153,8 @@ create-glyph 'e.italic' : glyph-construction {
:.arc-vh-to [MIDDLE - OMIDCOR_S] XO
:.arc-hv-to [SB + O] [XH - SMALLSMOOTHA]
:.line-to [SB + O] SMALLSMOOTHB
:.arc-vh-to [MIDDLE + OMIDCOR_S] O
:.curve-to [MIDDLE + [KAPPA_HOOK + TAILADJKAPPA * globalTransform.yx] * [MIDDLE - SB]] O [RIGHTSB - OXHOOK + TAILADJX * globalTransform.yx] [HOOK - TAILADJY * globalTransform.yx]
:.set-samples 4
include : EHookLower 0 SMALLSMOOTHB HOOK
}
create-glyph 'e' : glyph-construction {
set-width WIDTH
@ -199,7 +194,7 @@ create-glyph 'a.upright' : glyph-construction {
dont-export
include eMarks
set-anchor 'trailing' BASE [RIGHTSB - markHalfStroke] 0
local bartop [XH * BARPOS + STROKE]
local bartop [XH * BARPOS + HALFSTROKE]
local lowmiddle : mix SB [RIGHTSB - STROKE] [linreg 80 0.55 120 0.625 STROKE]
local barsmooth : mix SB RIGHTSB 0.6
include : create-stroke
@ -208,7 +203,7 @@ create-glyph 'a.upright' : glyph-construction {
:.set-width STROKE 0
:.line-to RIGHTSB [XH - SMOOTHA]
:.arc-vh-to [MIDDLE - OMIDCOR_S] XO
:.curve-to [MIDDLE - KAPPA_HOOK * [MIDDLE - SB]] XO [SB + OXHOOK] [XH - AHOOK]
:.curve-to [MIDDLE - KAPPA_AHOOK * [MIDDLE - SB]] XO [SB + OXHOOK] [XH - AHOOK]
include : create-stroke
:.start-from [lowmiddle + OMIDCOR_S] O
:.set-width 0 STROKE
@ -648,7 +643,7 @@ create-glyph 'r' : glyph-construction {
include : create-stroke
:.start-from rhookx [XH - RHOOK]
:.set-width STROKE 0
:.curve-to [mix rmiddle rhookx KAPPA_AHOOK] XO rmiddle XO
:.curve-to [mix rmiddle rhookx KAPPA_RHOOK] XO rmiddle XO
include : create-stroke
:.start-from [rmiddle + ITALICCORS] [XO - STROKE]
:.set-width 0 STROKE

View File

@ -99,7 +99,7 @@ create-glyph 'ae-apart' : glyph-construction {
dont-export
local sw : adviceBlackness 3.25
local bartop [XH * BARPOS + sw]
local bartop [XH * BARPOS + sw / 2]
local abarRight : MIDDLE + sw / 2 * ITALICCOR
local m1 : mix [SB + OXHOOK] abarRight 0.5
local lowmiddle : [mix [SB + sw] [abarRight - sw] 0.5] + sw * globalTransform.yx
@ -499,8 +499,7 @@ define [RevSmallEShape top stroke barpos] : glyph-construction {
:.arc-vh-to MIDDLE [top - O]
:.arc-hv-to [RIGHTSB - O] [top - SMALLSMOOTHB]
:.line-to [RIGHTSB - O] SMALLSMOOTHA
:.arc-vh-to hookmiddle O
:.curve-to [mix hookmiddle hookx KAPPA_HOOK] O hookx [SHOOK - TAILADJY * globalTransform.yx]
include : RevEHookLower 0 SMALLSMOOTHA HOOK
include : create-stroke
:.start-from [SB + [stroke / 2]] barbottom
:.set-width stroke 0
@ -657,6 +656,7 @@ dual 'alveolarlateralclick' 0x1C1 'bar' [WIDTH * 0.35]
alias 'alveolarclick' 0x1C3 'exclam'
alias 'smcpH' 0x29C 'cyren'
alias 'latiniota' 0x269 'dotlessi.italic'
alias 'revlatinepsilon' 0x25C 'cyrze'
# Turned glyphs
turned nothing 0x250 'a' MIDDLE [XH / 2]
turned nothing 0x252 'scripta' MIDDLE [XH / 2]
@ -677,7 +677,6 @@ turned nothing 0x28E 'y' MIDDLE [XH / 2] bMarks
turned nothing 0x1D02 'ae' MIDDLE [XH / 2]
turned nothing 0x1D09 'i' MIDDLE [XH / 2] pMarks
turned 'latinUpsilon1' 0x1B1 'Omega' MIDDLE [CAP / 2]
turned nothing 0x25C 'latinepsilon' MIDDLE [XH / 2]
turned 'closeepsilon' 0x29A 'closeturnepsilon' MIDDLE [XH / 2]
turned 'invglottalstop' 0x296 'revglottalstop' MIDDLE [CAP / 2]

View File

@ -10,7 +10,7 @@ define regular (
.cap 764
.descender [-194]
.xheight 570
.barpos 0.45
.barpos 0.52
.gbarpos 0.35
.fivebarpos 0.49
@ -20,12 +20,12 @@ define regular (
.rhook 100
.hookx 170
.smooth 192
.smooth 195
.smallsmooth 242
.smoothadjust 180
.o [-8]
.oxhook 0
.oxhook 2
.kappa 0.518
.ckappa 0.618
.italicangle 0
@ -37,6 +37,8 @@ define regular (
.tbalance 50
.tbalance2 30
.rbalance 25
.sbalance 0.51
.kappa_hook 0.7
.family 'Iosevka'
.style 'Regular'
@ -54,15 +56,17 @@ bold.stroke = 120
bold.dotsize = 160
bold.periodsize = 180
bold.ebarpos = 0.4
bold.barpos = 0.42
bold.oxhook = 0
bold.ahook = 120
bold.shook = 120
bold.smooth = 200
bold.oxhook = [-8]
bold.smooth = 210
bold.kappa_hook = 0.7
bold.kappa_ahook = 0.60
bold.kappa_ahook = 0.65
bold.kappa_rhook = 0.6
bold.jbalance = 60
bold.tbalance = 50
bold.rbalance = 18
bold.sbalance = 0.5
bold.weight = 700
bold.bkappa = 0.5
@ -81,6 +85,7 @@ bolditalic.isItalic = true
bolditalic.style = 'Bold Italic'
bolditalic.tbalance = 50
bolditalic.ebalance = 0.375
bolditalic.sbalance = 0.53
define slabregular : Object.create regular
slabregular.serif = true