Added weight "heavy".
This commit is contained in:
parent
33787fed5a
commit
5dee202ded
|
@ -238,7 +238,7 @@ export as build : define [buildFont para recursive recursiveCodes] : begin
|
|||
define [superxy x] : Math.pow (1 - [Math.pow x SUPERNESS]) (1 / SUPERNESS)
|
||||
|
||||
define [adviceSSmooth y sign] : begin
|
||||
local ss : y * 0.22 + STROKE * 0.22 + 0.02 * (RIGHTSB - SB)
|
||||
local ss : y * 0.22 + STROKE * 0.225 + 0.02 * (RIGHTSB - SB)
|
||||
return : ss + sign * globalTransform.yx * para.smoothadjust * (ss / SMALLSMOOTH)
|
||||
define [adviceGlottalStopSmooth y sign] : ((y - STROKE) * 0.25 + STROKE / 2) + sign * globalTransform.yx * para.smoothadjust
|
||||
define [shoulderMidSlope _fine _stroke _dir] : 0.5 * CORRECTION_HX * ([fallback _stroke STROKE] - [fallback _fine SHOULDERFINE]) / [fallback _stroke STROKE] + [fallback _dir 1] * globalTransform.yx
|
||||
|
|
11
extract.js
11
extract.js
|
@ -93,6 +93,7 @@ if(argv.feature) {
|
|||
};*/
|
||||
|
||||
if(argv.svg) {
|
||||
function cov(x){ return x.toFixed(4) }
|
||||
function toSVGPath(glyph){
|
||||
var buf = '';
|
||||
if(glyph.contours) for(var j = 0; j < glyph.contours.length; j++) {
|
||||
|
@ -102,15 +103,15 @@ if(argv.svg) {
|
|||
if(contour.length) {
|
||||
lx = contour[0].x;
|
||||
ly = contour[0].y;
|
||||
buf += 'M' + lx + ' ' + ly;
|
||||
buf += 'M' + cov(lx) + ' ' + cov(ly);
|
||||
for(var k = 1; k < contour.length; k++) if(contour[k].onCurve){
|
||||
lx = contour[k].x;
|
||||
ly = contour[k].y;
|
||||
buf += 'L' + lx + ' ' + ly;
|
||||
buf += 'L' + cov(lx) + ' ' + cov(ly);
|
||||
} else if(contour[k].cubic) {
|
||||
var rx = contour[k + 2].x;
|
||||
var ry = contour[k + 2].y;
|
||||
buf += 'C' + [contour[k].x, contour[k].y, contour[k + 1].x, contour[k + 1].y, rx, ry].join(' ');
|
||||
buf += 'C' + [contour[k].x, contour[k].y, contour[k + 1].x, contour[k + 1].y, rx, ry].map(cov).join(' ');
|
||||
lx = rx;
|
||||
ly = ry;
|
||||
k += 2;
|
||||
|
@ -127,14 +128,14 @@ if(argv.svg) {
|
|||
var x2 = mix(rx, contour[k].x, 2 / 3);
|
||||
var y2 = mix(ry, contour[k].y, 2 / 3);
|
||||
|
||||
buf += 'C' + [x1, y1, x2, y2, rx, ry].join(' ');
|
||||
buf += 'C' + [cov(x1), cov(y1), cov(x2), cov(y2), cov(rx), cov(ry)].join(' ');
|
||||
lx = rx;
|
||||
ly = ry;
|
||||
if(contour[k + 1].onCurve) k += 1;
|
||||
} else {
|
||||
var rx = contour[0].x;
|
||||
var ry = contour[0].y;
|
||||
buf += 'Q' + contour[k].x + ' ' + contour[k].y + ' ' + contour[0].x + ' ' + contour[0].y;
|
||||
buf += 'Q' + cov(contour[k].x) + ' ' + cov(contour[k].y) + ' ' + cov(contour[0].x) + ' ' + cov(contour[0].y);
|
||||
lx = rx;
|
||||
ly = ry;
|
||||
}
|
||||
|
|
|
@ -226,7 +226,7 @@ define [suggestName name] : begin
|
|||
define [createCircledGlyphs records] : if [not recursive] : begin
|
||||
local dscale 0.55
|
||||
local pendingGlyphs : records.map : [record] -> record.1
|
||||
local miniatureFont : Miniature pendingGlyphs 3.5 0.65
|
||||
local miniatureFont : Miniature pendingGlyphs [fallback para.smallCrowd 3.5] 0.65
|
||||
|
||||
foreach {unicode glyphid w} [items-of records] : create-glyph [suggestName : 'circle' + glyphid] : glyph-construction
|
||||
local width : fallback w WIDTH
|
||||
|
@ -250,7 +250,7 @@ define [createCircledGlyphs records] : if [not recursive] : begin
|
|||
|
||||
define [createSuperscripts records] : if [not recursive] : begin
|
||||
local pendingGlyphs : records.map : [record] -> record.1
|
||||
local miniatureFont : Miniature pendingGlyphs 3.5 0.7
|
||||
local miniatureFont : Miniature pendingGlyphs [fallback para.smallCrowd 3.5] 0.7
|
||||
foreach {unicode glyphid} [items-of records] : create-glyph [suggestName : 'sup' + glyphid] : glyph-construction
|
||||
if unicode : assign-unicode unicode
|
||||
include miniatureFont.(glyphid) AS_BASE
|
||||
|
@ -262,7 +262,7 @@ define [createSuperscripts records] : if [not recursive] : begin
|
|||
|
||||
define [createSubscripts records] : if [not recursive] : begin
|
||||
local pendingGlyphs : records.map : [record] -> record.1
|
||||
local miniatureFont : Miniature pendingGlyphs 3.5 0.7
|
||||
local miniatureFont : Miniature pendingGlyphs [fallback para.smallCrowd 3.5] 0.7
|
||||
foreach {unicode glyphid} [items-of records] : create-glyph [suggestName : 'sub' + glyphid] : glyph-construction
|
||||
if unicode : assign-unicode unicode
|
||||
include miniatureFont.(glyphid) AS_BASE
|
||||
|
@ -285,7 +285,7 @@ define [createSMCPs records] : if [not recursive] : begin
|
|||
|
||||
define [createMedievalCombs records] : if [not recursive] : begin
|
||||
local pendingGlyphs : records.map : [record] -> record.1
|
||||
local miniatureFont : Miniature pendingGlyphs 3.7 0.7
|
||||
local miniatureFont : Miniature pendingGlyphs [fallback para.smallCrowd2 3.5] 0.7
|
||||
foreach {unicode glyphid} [items-of records] : create-glyph [suggestName : 'comb' + glyphid] : glyph-construction
|
||||
set-width 0
|
||||
if unicode : assign-unicode unicode
|
||||
|
|
|
@ -158,8 +158,8 @@ define [OBarLeftShape _top _left] : glyph-construction
|
|||
arcvh
|
||||
g4 (mb) O [widths.heading STROKE 0 {.y (1) .x (-sb)}]
|
||||
archv
|
||||
flat.ai (RIGHTSB - OX) (0 + SMALLSMOOTHA)
|
||||
curl.ai (RIGHTSB - OX) (top - SMALLSMOOTHB)
|
||||
[if ((SMALLSMOOTHA + SMALLSMOOTHB) / top > 0.75) flat.ai flat] (RIGHTSB - OX) (0 + SMALLSMOOTHA)
|
||||
[if ((SMALLSMOOTHA + SMALLSMOOTHB) / top > 0.75) curl.ai curl] (RIGHTSB - OX) (top - SMALLSMOOTHB)
|
||||
arcvh
|
||||
close
|
||||
|
||||
|
@ -434,11 +434,12 @@ define [HooktopLeftBar stroke bottom] : glyph-construction
|
|||
flat SB (CAP - SMALLSMOOTHA)
|
||||
curl SB [fallback bottom 0] [heading DOWNWARD]
|
||||
|
||||
define [CurlyTail fine rinner m1 bottom _right x2 y2] : begin
|
||||
define [CurlyTail fine rinner m1 bottom _right x2 y2 adj adj2 adj3] : begin
|
||||
local right : _right - fine * [if (_right > m1) 1 (-1)]
|
||||
local mid : mix [mix m1 right 0.5] (right - rinner * [if (_right > m1) 1 (-1)]) 0.4
|
||||
local mid : mix [mix m1 right 0.5] (right - rinner * [if (_right > m1) 1 (-1)]) [fallback adj 0.4]
|
||||
local midu : mix [mix m1 right 0.5] (right - rinner * [if (_right > m1) 1 (-1)]) [fallback adj2 0.4]
|
||||
return : list
|
||||
g4 mid (bottom + fine + O) [widths [if (_right > m1) 0 fine] [if (_right > m1) fine 0]]
|
||||
g4.[if (_right > m1) 'right' 'left'].mid (mid + CORRECTION_OMIDX * fine * [fallback adj3 0] * [if (_right > m1) 1 (-1)]) (bottom + fine + O) [widths [if (_right > m1) 0 fine] [if (_right > m1) fine 0]]
|
||||
archv 2
|
||||
g4 right (bottom + fine + rinner - 0.1)
|
||||
g4 right (bottom + fine + rinner + 0.1)
|
||||
|
@ -467,12 +468,12 @@ define [FlatSlashShape middlex middle fine kx ky] : glyph-construction
|
|||
curl (middlex + LONGJUT * [fallback kx 0.8]) (middle + LONGJUT * [fallback ky 0.4])
|
||||
|
||||
# Spiro shapes
|
||||
define [determineMixR w v] : piecewise
|
||||
define [determineMixR w v adj] : piecewise
|
||||
(w <= v) 0.5
|
||||
true : 1 / ([Math.pow (1 - [Math.pow (1 - v / w) SUPERNESS]) (1 / SUPERNESS)] + 1)
|
||||
define nHookSegments 4
|
||||
true : (adj || 1) / ([Math.pow (1 - [Math.pow (1 - v / w) SUPERNESS]) (1 / SUPERNESS)] + 1)
|
||||
define nHookSegments 8
|
||||
|
||||
define [HookShape toStraight toFinish isStart y tight s kkaf] : begin
|
||||
define [HookShape toStraight toFinish isStart y tight s kkaf adj] : begin
|
||||
local atBottom : toStraight.y > y
|
||||
local ltr : if isStart (toFinish.x < toStraight.x) (toFinish.x > toStraight.x)
|
||||
toFinish.x = toFinish.x + OXHOOK * [if ltr (-1) 1] * [if isStart (-1) 1]
|
||||
|
@ -483,7 +484,7 @@ define [HookShape toStraight toFinish isStart y tight s kkaf] : begin
|
|||
local w : Math.abs (toStraight.y - y)
|
||||
local v : Math.abs (toFinish.y - y)
|
||||
local u : Math.abs (toFinish.x - toStraight.x)
|
||||
local mixr : determineMixR w v
|
||||
local mixr : determineMixR w v adj
|
||||
local mx ([mix toStraight.x toFinish.x mixr] + ([if tight 0 : if atBottom 1 (-1)] * CORRECTION_OMIDX) * [fallback s STROKE])
|
||||
local keyKnot : g4.[if ltr "right" "left"].mid mx y [fallback kkaf : if tight [heading [if ltr RIGHTWARD LEFTWARD]] nothing]
|
||||
|
||||
|
@ -506,8 +507,8 @@ define [HookShape toStraight toFinish isStart y tight s kkaf] : begin
|
|||
* keyKnot
|
||||
* segAfter
|
||||
|
||||
define [hookstart y tight s kkaf] : return {.type 'interpolate' .af [lambda [before after] [HookShape after before true y tight s kkaf]]}
|
||||
define [hookend y tight s kkaf] : return {.type 'interpolate' .af [lambda [before after] [HookShape before after false y tight s kkaf]]}
|
||||
define [hookstart y tight s kkaf adj] : return {.type 'interpolate' .af [lambda [before after] [HookShape after before true y tight s kkaf adj]]}
|
||||
define [hookend y tight s kkaf adj] : return {.type 'interpolate' .af [lambda [before after] [HookShape before after false y tight s kkaf adj]]}
|
||||
|
||||
define [WaveShape l r cy extendy tension sw] : glyph-construction
|
||||
local cx : mix l r 0.5
|
||||
|
|
|
@ -384,7 +384,7 @@ symbol-block 'l'
|
|||
create-glyph 'looprevesh' : glyph-construction
|
||||
assign-unicode 0x1AA
|
||||
include ifMarks
|
||||
local fine : adviceBlackness 5
|
||||
local fine : adviceBlackness 4
|
||||
include : dispiro
|
||||
widths.center fine
|
||||
g4 MIDDLE (CAP - fine * 1.5) [heading DOWNWARD]
|
||||
|
@ -1345,7 +1345,7 @@ symbol-block 'r'
|
|||
assign-unicode 'r'
|
||||
include eMarks
|
||||
|
||||
local fine : SHOULDERFINE * 0.75
|
||||
local fine : SHOULDERFINE * CTHIN
|
||||
local rhookx (RIGHTSB + RBALANCE2 - OXE)
|
||||
local mixp : 0.54 + 2 * globalTransform.yx * STROKE / WIDTH
|
||||
local mixpin : 0.65 + globalTransform.yx * [linreg 72 0.1 108 0.5 STROKE]
|
||||
|
@ -1495,7 +1495,7 @@ define {CShape} : symbol-block 'C'
|
|||
flat.ai (SB + OX) (XH - SMALLSMOOTHA)
|
||||
curl.ai (SB + OX) SMALLSMOOTHB
|
||||
arcvh
|
||||
CurlyTail fine rinner m1 0 RIGHTSB x2 y2
|
||||
CurlyTail fine rinner m1 0 RIGHTSB x2 y2 [linreg 500 (0.5) 375 (-0.25) WIDTH] nothing 1
|
||||
|
||||
create-glyph 'cyrE' : glyph-construction
|
||||
assign-unicode 0x42D
|
||||
|
@ -2262,7 +2262,7 @@ define {FShape} : symbol-block 'F'
|
|||
define [FShape top y] : glyph-construction
|
||||
include : VBarLeft (SB * 1.5) 0 [fallback top CAP]
|
||||
include : HBarTop (SB * 1.5 - O) RIGHTSB [fallback top CAP]
|
||||
include : HBar (SB * 1.5 - O) (RIGHTSB - [if SLAB (STROKE * 0.75) HALFSTROKE]) ([fallback top CAP] * [fallback y [if SLAB 0.52 0.54]])
|
||||
include : HBar (SB * 1.5 - O) (RIGHTSB - [Math.max HALFSTROKE ((RIGHTSB - SB) * 0.1)] - [if SLAB (STROKE * 0.25) 0]) ([fallback top CAP] * [fallback y [if SLAB 0.52 0.54]])
|
||||
if SLAB : begin
|
||||
include : LeftwardTopSerif (SB * 1.5) [fallback top CAP] SIDEJUT
|
||||
include : CenterBottomSerif (SB * 1.5 + HALFSTROKE * CORRECTION_HX) 0 JUT
|
||||
|
@ -2484,8 +2484,8 @@ define {SmallEShape} : symbol-block 'e'
|
|||
arcvh
|
||||
g4 (MIDDLE - CORRECTION_OMIDS) (top - O)
|
||||
archv
|
||||
[if (top <= XH) flat.ai flat] (SB + OX) (top - SMALLSMOOTHA)
|
||||
[if (top <= XH) curl.ai curl] (SB + OX) (0 + SMALLSMOOTHB)
|
||||
[if ((SMALLSMOOTHA + SMALLSMOOTHB) / top > 0.75) flat.ai flat] (SB + OX) (top - SMALLSMOOTHA)
|
||||
[if ((SMALLSMOOTHA + SMALLSMOOTHB) / top > 0.75) curl.ai curl] (SB + OX) (0 + SMALLSMOOTHB)
|
||||
hookend O nothing stroke
|
||||
g4 (RIGHTSB - OX * 0.5) AHOOK
|
||||
include : HBarBottom (SB + (stroke / 2) + OX) (RIGHTSB - (stroke / 2) - OX) barbottom stroke
|
||||
|
@ -2677,19 +2677,20 @@ symbol-block 'S'
|
|||
g4 SB HOOK
|
||||
alias 'cyrDze' 0x405 'S'
|
||||
|
||||
local smallSMix : clamp 0 1 : linreg 0 [linreg 18 1 108 0.95 STROKE] 50 1 [Math.abs : WIDTH - 500]
|
||||
create-glyph 's' : glyph-construction
|
||||
set-width WIDTH
|
||||
assign-unicode 's'
|
||||
include eMarks
|
||||
define smooth : adviceSSmooth XH (-1)
|
||||
define smooth : adviceSSmooth XH (-1 - globalTransform.yx * 3)
|
||||
include : dispiro
|
||||
widths.lhs
|
||||
g4 RIGHTSB (XH - SHOOK)
|
||||
hookstart XO
|
||||
hookstart XO nothing nothing nothing smallSMix
|
||||
g4.down.mid SB (XH - smooth)
|
||||
alsothru 0.5 0.5 [widths (ESS / 2) (ESS / 2)]
|
||||
alsothru 0.5 0.5 [widths.center ESS]
|
||||
g4.down.mid RIGHTSB (smooth) [widths 0 STROKE]
|
||||
hookend O
|
||||
hookend O nothing nothing nothing smallSMix
|
||||
g4 SB SHOOK
|
||||
alias 'cyrdze' 0x455 's'
|
||||
|
||||
|
@ -2710,15 +2711,15 @@ symbol-block 'S'
|
|||
create-glyph 'revs' : glyph-construction
|
||||
assign-unicode 0x1A8
|
||||
include eMarks
|
||||
local smooth : adviceSSmooth XH 1
|
||||
local smooth : adviceSSmooth XH (1 + globalTransform.yx * 5)
|
||||
include : dispiro
|
||||
widths.rhs
|
||||
g4 SB (XH - SHOOK)
|
||||
hookstart XO
|
||||
hookstart XO nothing nothing nothing smallSMix
|
||||
g4 RIGHTSB (XH - smooth)
|
||||
alsothru 0.5 0.5 [widths (ESS / 2) (ESS / 2)]
|
||||
alsothru 0.5 0.5 [widths.center ESS]
|
||||
g4 SB (smooth) [widths STROKE 0]
|
||||
hookend O
|
||||
hookend O nothing nothing nothing smallSMix
|
||||
g4 RIGHTSB SHOOK
|
||||
|
||||
create-glyph 'srtail' : glyph-construction
|
||||
|
@ -2808,11 +2809,10 @@ symbol-block 'Z'
|
|||
eject-contour 'serifRB'
|
||||
include : dispiro
|
||||
widths.lhs
|
||||
flat SB 0
|
||||
flat SB 0 [heading RIGHTWARD]
|
||||
curl (RIGHTSB - HOOKX) 0
|
||||
archv
|
||||
flat RIGHTSB (-HOOK) [widths 0 STROKE]
|
||||
curl RIGHTSB (-HOOK - 1)
|
||||
straight.down.end RIGHTSB (-HOOK) [widths.heading 0 STROKE DOWNWARD]
|
||||
|
||||
create-glyph 'zdtail' : glyph-construction
|
||||
assign-unicode 0x225
|
||||
|
@ -2824,7 +2824,7 @@ symbol-block 'Z'
|
|||
flat SB 0 [heading RIGHTWARD]
|
||||
curl (RIGHTSB - HOOKX) 0
|
||||
archv
|
||||
g4 RIGHTSB (-HOOK) [widths.heading 0 STROKE DOWNWARD]
|
||||
straight.down.end RIGHTSB (-HOOK) [widths.heading 0 STROKE DOWNWARD]
|
||||
|
||||
create-glyph 'Zswash' : glyph-construction
|
||||
assign-unicode 0x2C7F
|
||||
|
|
|
@ -188,7 +188,7 @@ symbol-block 'Delta and cyrbe'
|
|||
flat.ai (RIGHTSB - OX) (XH - SMALLSMOOTHB)
|
||||
curl.ai (RIGHTSB - OX) SMALLSMOOTHA
|
||||
arcvh
|
||||
g4 (MIDDLE + CORRECTION_OMIDX) O
|
||||
g4 (MIDDLE + CORRECTION_OMIDS) O
|
||||
archv
|
||||
flat (SB + OX) SMALLSMOOTHB
|
||||
curl (SB + OX) (XH - SMALLSMOOTHA)
|
||||
|
@ -284,7 +284,7 @@ symbol-block 'zeta and xi'
|
|||
include : dispiro
|
||||
widths.rhs
|
||||
g4 (RIGHTSB + O) (CAP - STROKE)
|
||||
bezcontrols 0.7 0.35 1 0.64
|
||||
bezcontrols 0.7 0.35 1 0.64 12
|
||||
g4.down.mid (SB + STROKE * CORRECTION_HX) [mix 0 CAP 0.27]
|
||||
arcvh
|
||||
g4 [mix SB RIGHTSB 0.55] STROKE
|
||||
|
@ -389,7 +389,7 @@ symbol-block 'pi'
|
|||
alsothru 0.5 0.85 important
|
||||
g4 [mix SB RIGHTSB 0.1] O
|
||||
local m2 : mix SB RIGHTSB (1 - m)
|
||||
local hook : HOOK * 0.8
|
||||
local hook : Math.max (STROKE * CORRECTION_HX * 1.1) (HOOK * 0.8)
|
||||
include : dispiro
|
||||
widths.center
|
||||
flat m2 XH [heading DOWNWARD]
|
||||
|
@ -1055,12 +1055,14 @@ symbol-block 'CyrChe'
|
|||
create-glyph 'cyrChevbar' : glyph-construction
|
||||
assign-unicode 0x4B8
|
||||
include glyphs.cyrChe AS_BASE
|
||||
include : FlatSlashShape MIDDLE (CAP * [if SLAB 0.45 0.35] + STROKE * 0.1) (OVERLAYSTROKE / 2) 0 0.8
|
||||
local yc (CAP * [if SLAB 0.45 0.35] + STROKE * 0.1)
|
||||
include : VBar MIDDLE (yc + LONGJUT * 0.8) (yc - LONGJUT * 0.8) OVERLAYSTROKE
|
||||
|
||||
create-glyph 'cyrchevbar' : glyph-construction
|
||||
assign-unicode 0x4B9
|
||||
include glyphs.cyrche AS_BASE
|
||||
include : FlatSlashShape MIDDLE (XH * [if SLAB 0.45 0.4] + STROKE * 0.1) (OVERLAYSTROKE / 2) 0 0.8
|
||||
local yc (XH * [if SLAB 0.45 0.35] + STROKE * 0.1)
|
||||
include : VBar MIDDLE (yc + LONGJUT * 0.8) (yc - LONGJUT * 0.8) OVERLAYSTROKE
|
||||
|
||||
symbol-block 'CyrYu'
|
||||
define [CyrYuShape top sma smb] : glyph-construction
|
||||
|
@ -1272,7 +1274,7 @@ symbol-block 'Digraphs'
|
|||
define aeepart : glyph-construction
|
||||
local eLeft : MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX + 0.1
|
||||
local eMiddle : [mix eLeft (RIGHTSB - OX * 2) 0.5] - MVERTSTROKE * globalTransform.yx
|
||||
local barbottom (XH * EBARPOS)
|
||||
local barbottom (XH * EBARPOS - HALFSTROKE)
|
||||
|
||||
local sma : SMALLSMOOTHA * 0.6
|
||||
local smb : SMALLSMOOTHB * 0.6
|
||||
|
|
|
@ -171,7 +171,7 @@ symbol-block "Numbers"
|
|||
if SLAB : begin
|
||||
include : DownwardLeftSerif (SB + OXE) CAP VJUT
|
||||
|
||||
|
||||
local pr : linreg 18 0.85 120 0.975 STROKE
|
||||
create-glyph 'eight' : glyph-construction
|
||||
include capitalMarks
|
||||
set-width WIDTH
|
||||
|
@ -185,15 +185,15 @@ symbol-block "Numbers"
|
|||
widths.rhs
|
||||
g4.right.mid (MIDDLE - CORRECTION_OMIDS) (CAP - O)
|
||||
archv
|
||||
g4 [mix l r p] (CAP - SMOOTHB * p)
|
||||
g4 [mix l r p] (CAP - SMOOTHB * pr * p)
|
||||
alsothru 0.5 0.5 [widths.center]
|
||||
g4 (l) SMOOTHB [widths.lhs]
|
||||
g4 (l) (SMOOTHB * pr) [widths.lhs]
|
||||
arcvh
|
||||
g4.right.mid (MIDDLE + CORRECTION_OMIDS) (O)
|
||||
archv
|
||||
g4 (r) SMOOTHA [widths.lhs]
|
||||
g4 (r) (SMOOTHA * pr) [widths.lhs]
|
||||
alsothru 0.5 0.5 [widths.center]
|
||||
g4 [mix r l p] (CAP - SMOOTHA * p) [widths.rhs]
|
||||
g4 [mix r l p] (CAP - SMOOTHA * pr * p) [widths.rhs]
|
||||
arcvh
|
||||
close
|
||||
|
||||
|
@ -207,11 +207,11 @@ symbol-block "Numbers"
|
|||
widths.lhs
|
||||
straight.up.start r 0 [heading UPWARD]
|
||||
alsothru 0.5 (1 - py) [widths (STROKE * py) (STROKE * (1 - py))]
|
||||
g4 [mix r l p] (CAP - SMOOTHA * p) [widths.rhs]
|
||||
g4 [mix r l p] (CAP - SMOOTHA * p * pr) [widths.rhs]
|
||||
arcvh
|
||||
g4 (MIDDLE - CORRECTION_OMIDS) (CAP - O)
|
||||
archv
|
||||
g4 [mix l r p] (CAP - SMOOTHB * p)
|
||||
g4 [mix l r p] (CAP - SMOOTHB * p * pr)
|
||||
alsothru 0.5 py [widths (STROKE * py) (STROKE * (1 - py))]
|
||||
straight.down.end l 0 [widths.heading STROKE 0 DOWNWARD]
|
||||
|
||||
|
|
|
@ -1,20 +1,22 @@
|
|||
###### Other symbols
|
||||
# IPA tonal marks
|
||||
symbol-block 'Phonetic Symbols'
|
||||
local triangleSize : Math.min (PERIODRADIUS) (XH / 6)
|
||||
create-glyph 'trianglecolon' : glyph-construction
|
||||
assign-unicode 0x2D0
|
||||
start-from (MIDDLE - PERIODRADIUS * 1.35) XH
|
||||
line-to MIDDLE (XH - PERIODRADIUS * 2.75)
|
||||
line-to (MIDDLE + PERIODRADIUS * 1.35) XH
|
||||
start-from (MIDDLE - PERIODRADIUS * 1.35) 0
|
||||
line-to MIDDLE (0 + PERIODRADIUS * 2.75)
|
||||
line-to (MIDDLE + PERIODRADIUS * 1.35) 0
|
||||
start-from (MIDDLE - triangleSize * 1.35) XH
|
||||
line-to MIDDLE (XH - triangleSize * 2.75)
|
||||
line-to (MIDDLE + triangleSize * 1.35) XH
|
||||
start-from (MIDDLE - triangleSize * 1.35) 0
|
||||
line-to MIDDLE (0 + triangleSize * 2.75)
|
||||
line-to (MIDDLE + triangleSize * 1.35) 0
|
||||
|
||||
create-glyph 'halftrianglecolon' : glyph-construction
|
||||
assign-unicode 0x2D1
|
||||
start-from (MIDDLE - PERIODRADIUS * 1.35) XH
|
||||
line-to MIDDLE (XH - PERIODRADIUS * 2.75)
|
||||
line-to (MIDDLE + PERIODRADIUS * 1.35) XH
|
||||
start-from (MIDDLE - triangleSize * 1.35) XH
|
||||
line-to MIDDLE (XH - triangleSize * 2.75)
|
||||
line-to (MIDDLE + triangleSize * 1.35) XH
|
||||
|
||||
foreach tone [range 4 downtill 0] : begin
|
||||
create-glyph ('tone' + tone) : glyph-construction
|
||||
assign-unicode (0x2E5 + 4 - tone)
|
||||
|
|
|
@ -337,7 +337,7 @@ symbol-block 'Typographic Symbols'
|
|||
alsothru 0.5 0.5 [widths HALFSTROKE HALFSTROKE]
|
||||
g4 RIGHTSB [mix bot top 0.501] [widths 0 STROKE]
|
||||
g4 RIGHTSB [mix bot top 0.5] [widths 0 STROKE]
|
||||
g4 [mix SB RIGHTSB 0.6] [mix bot top : linreg 18 0.325 108 0.3 STROKE]
|
||||
g4 [mix SB RIGHTSB 0.6] [mix bot top : [linreg 18 0.325 108 0.3 STROKE] * (1 - globalTransform.yx * 0.1)]
|
||||
|
||||
include s
|
||||
include : FlipAround MIDDLE parenMid
|
||||
|
|
|
@ -19,8 +19,8 @@ endif
|
|||
NODE_FDT = node --expose-gc
|
||||
NODE = node
|
||||
|
||||
UPRIGHT = $(OBJDIR)/$(PREFIX)-thin.ttf $(OBJDIR)/$(PREFIX)-extralight.ttf $(OBJDIR)/$(PREFIX)-light.ttf $(OBJDIR)/$(PREFIX)-regular.ttf $(OBJDIR)/$(PREFIX)-bold.ttf
|
||||
ITALIC = $(OBJDIR)/$(PREFIX)-thinitalic.ttf $(OBJDIR)/$(PREFIX)-extralightitalic.ttf $(OBJDIR)/$(PREFIX)-lightitalic.ttf $(OBJDIR)/$(PREFIX)-italic.ttf $(OBJDIR)/$(PREFIX)-bolditalic.ttf
|
||||
UPRIGHT = $(OBJDIR)/$(PREFIX)-thin.ttf $(OBJDIR)/$(PREFIX)-extralight.ttf $(OBJDIR)/$(PREFIX)-light.ttf $(OBJDIR)/$(PREFIX)-regular.ttf $(OBJDIR)/$(PREFIX)-bold.ttf $(OBJDIR)/$(PREFIX)-heavy.ttf
|
||||
ITALIC = $(OBJDIR)/$(PREFIX)-thinitalic.ttf $(OBJDIR)/$(PREFIX)-extralightitalic.ttf $(OBJDIR)/$(PREFIX)-lightitalic.ttf $(OBJDIR)/$(PREFIX)-italic.ttf $(OBJDIR)/$(PREFIX)-bolditalic.ttf $(OBJDIR)/$(PREFIX)-heavyitalic.ttf
|
||||
EXTUPRG =
|
||||
EXTITAL =
|
||||
OUTPUTS = $(UPRIGHT) $(ITALIC)
|
||||
|
@ -71,6 +71,10 @@ $(OBJDIR)/.pass0-$(PREFIX)-bold.fdt : $(SCRIPTS) | $(OBJDIR)
|
|||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
||||
$(OBJDIR)/.pass0-$(PREFIX)-bolditalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
|
||||
$(OBJDIR)/.pass0-$(PREFIX)-heavy.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-heavy s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
||||
$(OBJDIR)/.pass0-$(PREFIX)-heavyitalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-heavy s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
|
||||
|
||||
$(PASS0) : $(OBJDIR)/.pass0-%.ttf : $(OBJDIR)/.pass0-%.fdt
|
||||
$(NODE) extract --upm 16000 --uprightify 1 --ttf $@ $<
|
||||
|
|
|
@ -141,7 +141,6 @@ jut = 90
|
|||
vjut = 165
|
||||
|
||||
barpos = 0.51
|
||||
#ebarpos = 0.4
|
||||
fivebarpos = 0.64
|
||||
oxhook = -5
|
||||
ahook = 120
|
||||
|
@ -149,10 +148,40 @@ rbalance = 50
|
|||
rbalance2 = 25
|
||||
rhook = 95
|
||||
smooth = 210
|
||||
smallsmooth = 230
|
||||
jbalance2 = 60
|
||||
tbalance = 50
|
||||
sbalance = 0.5
|
||||
|
||||
[w-heavy]
|
||||
isBold = true
|
||||
weight = 900
|
||||
style = 'Heavy'
|
||||
|
||||
sb = 42
|
||||
stroke = 120
|
||||
dotsize = 180
|
||||
periodsize = 200
|
||||
essx = 1.05
|
||||
jut = 95
|
||||
vjut = 170
|
||||
|
||||
barpos = 0.51
|
||||
fivebarpos = 0.64
|
||||
oxhook = -5
|
||||
ahook = 120
|
||||
rbalance = 50
|
||||
rbalance2 = 25
|
||||
rhook = 95
|
||||
smooth = 210
|
||||
smallsmooth = 230
|
||||
jbalance2 = 60
|
||||
tbalance = 50
|
||||
sbalance = 0.5
|
||||
|
||||
smallCrowd = 4
|
||||
smallCrowd2 = 4.25
|
||||
|
||||
# Slants
|
||||
[s-upright]
|
||||
isItalic = false
|
||||
|
|
|
@ -50,15 +50,26 @@
|
|||
}
|
||||
@font-face {
|
||||
font-family: IosevkaWEB;
|
||||
font-weight: bold;
|
||||
font-weight: 700;
|
||||
src: url('assets/iosevka-bold.woff') format('woff'), url('assets/iosevka-bold.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaWEB;
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
font-weight: 700;
|
||||
src: url('assets/iosevka-bolditalic.woff') format('woff'), url('assets/iosevka-bolditalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaWEB;
|
||||
font-weight: 900;
|
||||
src: url('assets/iosevka-heavy.woff') format('woff'), url('assets/iosevka-heavy.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaWEB;
|
||||
font-style: italic;
|
||||
font-weight: 900;
|
||||
src: url('assets/iosevka-heavyitalic.woff') format('woff'), url('assets/iosevka-heavyitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaSlabWEB;
|
||||
font-weight: 100;
|
||||
|
@ -103,15 +114,26 @@
|
|||
}
|
||||
@font-face {
|
||||
font-family: IosevkaSlabWEB;
|
||||
font-weight: bold;
|
||||
font-weight: 700;
|
||||
src: url('assets/iosevka-slab-bold.woff') format('woff'), url('assets/iosevka-slab-bold.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaSlabWEB;
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
font-weight: 700;
|
||||
src: url('assets/iosevka-slab-bolditalic.woff') format('woff'), url('assets/iosevka-slab-bolditalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaSlabWEB;
|
||||
font-weight: 900;
|
||||
src: url('assets/iosevka-slab-heavy.woff') format('woff'), url('assets/iosevka-slab-heavy.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaSlabWEB;
|
||||
font-style: italic;
|
||||
font-weight: 900;
|
||||
src: url('assets/iosevka-slab-heavyitalic.woff') format('woff'), url('assets/iosevka-slab-heavyitalic.ttf') format('truetype');
|
||||
}
|
||||
a {
|
||||
color: black;
|
||||
background-image: linear-gradient(white 50%, #888 50%);
|
||||
|
@ -152,6 +174,7 @@
|
|||
.extralight { font-weight: 200 }
|
||||
.light { font-weight: 300 }
|
||||
.bold { font-weight: 700 }
|
||||
.heavy { font-weight: 900 }
|
||||
.italic { font-style: italic }
|
||||
.show table.block {
|
||||
width: 68rem;
|
||||
|
@ -328,7 +351,9 @@
|
|||
[ {name: 'iosevka-regular', cls: '', display: 'Iosevka'}, {name: 'iosevka-slab-regular', cls: 'slab', display: 'Iosevka Slab'},
|
||||
{name: 'iosevka-italic', cls:'italic', display: 'Iosevka Italic'}, {name: 'iosevka-slab-italic', cls:'slab italic', display: 'Iosevka Slab Italic'} ],
|
||||
[ {name: 'iosevka-bold', cls: 'bold', display: 'Iosevka Bold'}, {name: 'iosevka-slab-bold', cls: 'slab bold', display: 'Iosevka Slab Bold'},
|
||||
{name: 'iosevka-bolditalic', cls:'bold italic', display: 'Iosevka Bold Italic'}, {name: 'iosevka-slab-bolditalic', cls:'slab bold italic', display: 'Iosevka Slab Bold Italic'} ]
|
||||
{name: 'iosevka-bolditalic', cls:'bold italic', display: 'Iosevka Bold Italic'}, {name: 'iosevka-slab-bolditalic', cls:'slab bold italic', display: 'Iosevka Slab Bold Italic'} ],
|
||||
[ {name: 'iosevka-heavy', cls: 'heavy', display: 'Iosevka Heavy'}, {name: 'iosevka-slab-heavy', cls: 'slab heavy', display: 'Iosevka Slab Heavy'},
|
||||
{name: 'iosevka-heavyitalic', cls:'heavy italic', display: 'Iosevka Heavy Italic'}, {name: 'iosevka-slab-heavyitalic', cls:'slab heavy italic', display: 'Iosevka Slab Heavy Italic'} ]
|
||||
];
|
||||
var REGULAR = 3;
|
||||
var lipsums = ['Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur semper ipsum quam, at molestie libero euismod vitae. Etiam vehicula felis mi, et ultricies libero consequat at. Donec consequat, nunc id elementum tempor, lectus orci vulputate leo, eget lobortis lectus nulla sed orci. Donec in dolor non orci aliquet gravida. Nulla volutpat magna et nulla pretium, quis consequat nibh euismod. Suspendisse eget metus enim. Fusce vulputate scelerisque eros et consequat. Quisque dapibus accumsan augue, et semper lectus vehicula sit amet. Ut ornare venenatis tortor, non gravida tellus mattis interdum. In hac habitasse platea dictumst. Donec interdum commodo ex eu tincidunt. Curabitur non fermentum enim. Proin luctus orci ut commodo auctor. Pellentesque accumsan id sem eu semper. Sed non pharetra nibh. Vivamus mattis luctus arcu, a rutrum dui venenatis sit amet. aja ojo ojoined',
|
||||
|
|
Loading…
Reference in New Issue
Block a user