Slab for Greek and Cyrillic.

This commit is contained in:
be5invis 2015-11-17 13:52:20 +08:00
parent 89323a5ddb
commit bfdba9593b
9 changed files with 163 additions and 76 deletions

View file

@ -9,11 +9,6 @@ var parametersData = toml.parse(fs.readFileSync(path.join(path.dirname(require.m
var emptyFont = toml.parse(fs.readFileSync(path.join(path.dirname(require.main.filename), 'emptyfont.toml'), 'utf-8')); var emptyFont = toml.parse(fs.readFileSync(path.join(path.dirname(require.main.filename), 'emptyfont.toml'), 'utf-8'));
var para = parameters.build(parametersData, argv._); var para = parameters.build(parametersData, argv._);
console.log(argv._ + ' : Start Building.');
var ttfFont = buildGlyphs.build.call(emptyFont, para); var ttfFont = buildGlyphs.build.call(emptyFont, para);
console.log(argv._ + ' : Building Complete.');
if(argv.o) fs.writeFile(argv.o, JSON.stringify(ttfFont), function(err){ if(argv.o) fs.writeFileSync(argv.o, JSON.stringify(ttfFont));
if(err) throw err;
console.log(argv.o + ' : File Saved.');
});

View file

@ -32,45 +32,46 @@ define [ORing u d l r sma smb shift] : begin
:.arc-vh-to (mx + shift) d :.arc-vh-to (mx + shift) d
return s.points return s.points
define SERIF_SHIFT_X 0.6
define [LeftwardTopSerif x y length] : glyph-construction define [LeftwardTopSerif x y length] : glyph-construction
include : create-stroke include : create-stroke
:.start-from (x + HALFSTROKE * CORRECTION_HX) y :.start-from (x + HALFSTROKE * CORRECTION_HX) y
:.heads-to LEFTWARD :.heads-to LEFTWARD
:.set-width STROKE 0 :.set-width STROKE 0
:.line-to (x - length - globalTransform.yx * STROKE) y :.line-to (x - length - globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
define [LeftwardBottomSerif x y length] : glyph-construction define [LeftwardBottomSerif x y length] : glyph-construction
include : create-stroke include : create-stroke
:.start-from (x + HALFSTROKE * CORRECTION_HX) y :.start-from (x + HALFSTROKE * CORRECTION_HX) y
:.heads-to LEFTWARD :.heads-to LEFTWARD
:.set-width 0 STROKE :.set-width 0 STROKE
:.line-to (x - length + globalTransform.yx * STROKE) y :.line-to (x - length + globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
define [RightwardTopSerif x y length] : glyph-construction define [RightwardTopSerif x y length] : glyph-construction
include : create-stroke include : create-stroke
:.start-from (x - HALFSTROKE * CORRECTION_HX) y :.start-from (x - HALFSTROKE * CORRECTION_HX) y
:.heads-to RIGHTWARD :.heads-to RIGHTWARD
:.set-width 0 STROKE :.set-width 0 STROKE
:.line-to (x + length - globalTransform.yx * STROKE) y :.line-to (x + length - globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
define [RightwardBottomSerif x y length] : glyph-construction define [RightwardBottomSerif x y length] : glyph-construction
include : create-stroke include : create-stroke
:.start-from (x - HALFSTROKE * CORRECTION_HX) y :.start-from (x - HALFSTROKE * CORRECTION_HX) y
:.heads-to RIGHTWARD :.heads-to RIGHTWARD
:.set-width STROKE 0 :.set-width STROKE 0
:.line-to (x + length + globalTransform.yx * STROKE) y :.line-to (x + length + globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
define [CenterTopSerif x y length] : glyph-construction define [CenterTopSerif x y length] : glyph-construction
include : create-stroke include : create-stroke
:.start-from (x + length - globalTransform.yx * STROKE) y :.start-from (x + length - globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
:.set-width STROKE 0 :.set-width STROKE 0
:.line-to (x - length - globalTransform.yx * STROKE) y :.line-to (x - length - globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
define [CenterBottomSerif x y length] : glyph-construction define [CenterBottomSerif x y length] : glyph-construction
include : create-stroke include : create-stroke
:.start-from (x + length + globalTransform.yx * STROKE) y :.start-from (x + length + globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
:.set-width 0 STROKE :.set-width 0 STROKE
:.line-to (x - length + globalTransform.yx * STROKE) y :.line-to (x - length + globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
define [DownwardRightSerif x y length sw] : glyph-construction define [DownwardRightSerif x y length sw] : glyph-construction
include : dispiro include : dispiro
@ -118,6 +119,15 @@ define [AINSerifs top _left _right] : glyph-construction
include : CenterBottomSerif (left + STROKE * sideSerifK * CORRECTION_HX) 0 JUT include : CenterBottomSerif (left + STROKE * sideSerifK * CORRECTION_HX) 0 JUT
tag-contour 'serifLB' tag-contour 'serifLB'
#include : CenterdBottomSerif (right - STROKE * (sideSerifK - 0.5) * CORRECTION_HX) 0 (JUT / 2) #include : CenterdBottomSerif (right - STROKE * (sideSerifK - 0.5) * CORRECTION_HX) 0 (JUT / 2)
define [AICyrISerifs top _left _right] : glyph-construction
local left : fallback _left SB
local right : fallback _right RIGHTSB
if SLAB : begin
include : LeftwardBottomSerif left 0 SIDEJUT
include : RightwardTopSerif right top SIDEJUT
include : CenterTopSerif (left + STROKE * sideSerifK * CORRECTION_HX) top JUT
include : CenterBottomSerif (right - STROKE * sideSerifK * CORRECTION_HX) 0 JUT
tag-contour 'serifRB'
define [AIMSerifs top _left _right] : glyph-construction define [AIMSerifs top _left _right] : glyph-construction
local left : fallback _left SB local left : fallback _left SB
local right : fallback _right RIGHTSB local right : fallback _right RIGHTSB

View file

@ -13,9 +13,7 @@ alias 'cyrEn' 0x41D 'H'
alias 'cyrO' 0x41E 'O' alias 'cyrO' 0x41E 'O'
alias 'cyro' 0x43e 'o' alias 'cyro' 0x43e 'o'
alias 'cyrPe' 0x41F 'Pi' alias 'cyrPe' 0x41F 'Pi'
alias 'cyrpe.upright' null 'pi'
alias 'cyrpe.italic' null 'n' alias 'cyrpe.italic' null 'n'
italic-variant 'cyrpe' 0x43f
alias 'cyrEr' 0x420 'P' alias 'cyrEr' 0x420 'P'
alias 'cyrer' 0x440 'p' alias 'cyrer' 0x440 'p'
alias 'cyrEs' 0x421 'C' alias 'cyrEs' 0x421 'C'
@ -36,10 +34,11 @@ alias 'cyrDze' 0x405 'S'
alias 'cyrdze' 0x455 's' alias 'cyrdze' 0x455 's'
### Russian letters ### Russian letters
define [CyrYeriShape top _left _right _fine] : glyph-construction define [CyrYeriShape top _left _right _fine _jut] : glyph-construction
local fine : fallback _fine STROKE local fine : fallback _fine STROKE
local left : fallback _left SB local left : fallback _left SB
local right : fallback _right RIGHTSB local right : fallback _right RIGHTSB
local jut : fallback _jut JUT
local bowl : top * 0.55 + HALFSTROKE local bowl : top * 0.55 + HALFSTROKE
@ -54,6 +53,11 @@ define [CyrYeriShape top _left _right _fine] : glyph-construction
flat (right - turnbottom * (right - left) / (RIGHTSB - SB)) bowl [heading LEFTWARD] flat (right - turnbottom * (right - left) / (RIGHTSB - SB)) bowl [heading LEFTWARD]
curl (left + STROKE * 0.2) bowl [heading LEFTWARD] curl (left + STROKE * 0.2) bowl [heading LEFTWARD]
include : VBarLeft left 0 top fine include : VBarLeft left 0 top fine
if SLAB : begin
include : LeftwardBottomSerif left 0 (jut - fine / 2 * CORRECTION_HX)
tag-contour 'serifYeriLB'
include : CenterTopSerif (left + fine / 2 * CORRECTION_HX) top jut
tag-contour 'serifYeriLT'
define [RevCyrYeriShape top _left _right _fine] : glyph-construction define [RevCyrYeriShape top _left _right _fine] : glyph-construction
local fine : fallback _fine STROKE local fine : fallback _fine STROKE
@ -89,7 +93,7 @@ create-glyph 'cyrBe' : glyph-construction
include glyphs.cyrYeri AS_BASE include glyphs.cyrYeri AS_BASE
include : HBar SB [mix SB RIGHTSB 0.9] (CAP - HALFSTROKE) include : HBar SB [mix SB RIGHTSB 0.9] (CAP - HALFSTROKE)
define [CyrCyrIShape top] : glyph-construction define [CyrIShape top] : glyph-construction
local topstroke : adviceBlackness 4 local topstroke : adviceBlackness 4
local halftopstroke : topstroke / 2 local halftopstroke : topstroke / 2
include : create-stroke include : create-stroke
@ -103,16 +107,17 @@ define [CyrCyrIShape top] : glyph-construction
include : create-stroke include : create-stroke
:.start-from (SB + halftopstroke) 0 :.heads-to UPWARD :.set-width 0 topstroke :.start-from (SB + halftopstroke) 0 :.heads-to UPWARD :.set-width 0 topstroke
:.line-to (RIGHTSB - topstroke - halftopstroke) top :.heads-to UPWARD :.line-to (RIGHTSB - topstroke - halftopstroke) top :.heads-to UPWARD
include : AICyrISerifs top
create-glyph 'cyrI' : glyph-construction create-glyph 'cyrI' : glyph-construction
assign-unicode 0x418 assign-unicode 0x418
include capitalMarks include capitalMarks
include : CyrCyrIShape CAP include : CyrIShape CAP
create-glyph 'cyri.upright' : glyph-construction create-glyph 'cyri.upright' : glyph-construction
include eMarks include eMarks
dont-export dont-export
include : CyrCyrIShape XH include : CyrIShape XH
create-glyph 'cyri.italic' : glyph-construction create-glyph 'cyri.italic' : glyph-construction
dont-export dont-export
@ -187,8 +192,7 @@ create-glyph 'cyrve.upright' : glyph-construction
italic-variant 'cyrve' 0x432 italic-variant 'cyrve' 0x432
create-glyph 'cyrghe.upright' : glyph-construction create-glyph 'cyrghe.upright' : glyph-construction
include eMarks include eMarks
include : LShape XH include : GammaShape XH
include : FlipAround MIDDLE (XH / 2) 1 (-1)
create-glyph 'cyrghe.italic' : glyph-construction create-glyph 'cyrghe.italic' : glyph-construction
include eMarks include eMarks
@ -213,11 +217,15 @@ define [CyrDeShape top] : glyph-construction
local cutright : mix SB RIGHTSB 0.92 local cutright : mix SB RIGHTSB 0.92
include : HBar (SB + O * 2) RIGHTSB HALFSTROKE include : HBar (SB + O * 2) RIGHTSB HALFSTROKE
include : VBar (cutright - HALFSTROKE * CORRECTION_HX) 0 top 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 : 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 (SB + HALFSTROKE * CORRECTION_HX + O * 2) (-LONGJUT + HALFSTROKE) 0
include : VBar (RIGHTSB - HALFSTROKE * CORRECTION_HX) (-LONGJUT + HALFSTROKE) 0 include : VBar (RIGHTSB - HALFSTROKE * CORRECTION_HX) (-LONGJUT + HALFSTROKE) 0
if SLAB : then
include : HBarTop (cutleft - (RIGHTSB - cutright)) RIGHTSB top
: else
include : HBarTop cutleft cutright top
create-glyph 'cyrDe' : glyph-construction create-glyph 'cyrDe' : glyph-construction
assign-unicode 0x414 assign-unicode 0x414
include ifMarks include ifMarks
@ -316,9 +324,10 @@ define [CyrElShape top] : glyph-construction
local cutright : mix SB RIGHTSB 0.95 local cutright : mix SB RIGHTSB 0.95
include : VBarRight cutright 0 top include : VBarRight cutright 0 top
include : HBar cutleft cutright (top - HALFSTROKE) include : HBar cutleft cutright (top - HALFSTROKE)
include : LegShape cutleft cutleft2 [mix SB 0 0.25] top 0 include : LegShape cutleft cutleft2 [mix SB 0 [if SLAB 0.5 0.25]] top 0
if SLAB : begin if SLAB : begin
include : RightwardTopSerif cutright top SIDEJUT include : RightwardTopSerif cutright top SIDEJUT
include : LeftwardTopSerif cutleft top SIDEJUT
include : CenterBottomSerif (cutright - HALFSTROKE * CORRECTION_HX) 0 JUT include : CenterBottomSerif (cutright - HALFSTROKE * CORRECTION_HX) 0 JUT
create-glyph 'cyrEl' : glyph-construction create-glyph 'cyrEl' : glyph-construction
@ -347,6 +356,9 @@ define [CyrTseShape top] : glyph-construction
include : HBarBottom SB RIGHTSB 0 include : HBarBottom SB RIGHTSB 0
include : VBarRight RIGHTSB 0 top include : VBarRight RIGHTSB 0 top
include : VBarRight [mix SB RIGHTSB 1.05] (HALFSTROKE - LONGJUT) STROKE include : VBarRight [mix SB RIGHTSB 1.05] (HALFSTROKE - LONGJUT) STROKE
if SLAB : begin
include : AIVSerifs top
include : LeftwardBottomSerif SB 0 SIDEJUT
create-glyph 'cyrTse' : glyph-construction create-glyph 'cyrTse' : glyph-construction
assign-unicode 0x426 assign-unicode 0x426
@ -359,6 +371,7 @@ create-glyph 'cyrtse.upright' : glyph-construction
create-glyph 'cyrtse.italic' : glyph-construction create-glyph 'cyrtse.italic' : glyph-construction
include eMarks include eMarks
include glyphs.u include glyphs.u
eject-contour 'serifLT'
include : VBarRight [mix SB RIGHTSB 1.05] (HALFSTROKE - LONGJUT) STROKE include : VBarRight [mix SB RIGHTSB 1.05] (HALFSTROKE - LONGJUT) STROKE
italic-variant 'cyrtse' 0x446 italic-variant 'cyrtse' 0x446
@ -419,12 +432,17 @@ create-glyph 'cyrshcha.upright' : glyph-construction
create-glyph 'cyrshcha.italic' : glyph-construction create-glyph 'cyrshcha.italic' : glyph-construction
include eMarks include eMarks
include glyphs.'cyrsha.italic' include glyphs.'cyrsha.italic'
eject-contour 'serifLT'
include : VBarRight [mix SB RIGHTSB 1.05] (HALFSTROKE - LONGJUT) STROKE include : VBarRight [mix SB RIGHTSB 1.05] (HALFSTROKE - LONGJUT) STROKE
italic-variant 'cyrshcha' 0x449 italic-variant 'cyrshcha' 0x449
define [CyrYerShape top] : glyph-construction define [CyrYerShape top] : glyph-construction
include : CyrYeriShape top [mix SB RIGHTSB 0.1] RIGHTSB local left : if SLAB ([mix SB RIGHTSB 0.35] - MVERTSTROKE / 2 * CORRECTION_HX) [mix SB RIGHTSB 0.1]
include : HBarTop [mix 0 SB 0.6] (STROKE * 0.1 + [mix SB RIGHTSB 0.1]) top local barleft : mix 0 SB [if SLAB 0.25 0.6]
include : CyrYeriShape top left RIGHTSB [if SLAB MVERTSTROKE STROKE]
include : HBarTop barleft (STROKE * 0.1 + left) top
if SLAB : begin
include : DownwardLeftSerif barleft top VJUT MVERTSTROKE
create-glyph 'cyrYer' : glyph-construction create-glyph 'cyrYer' : glyph-construction
assign-unicode 0x42A assign-unicode 0x42A
@ -437,8 +455,11 @@ create-glyph 'cyryer' : glyph-construction
include : CyrYerShape XH include : CyrYerShape XH
define [CyrYeryShape top] : glyph-construction define [CyrYeryShape top] : glyph-construction
include : CyrYeriShape top (SB + O) [mix (RIGHTSB - MVERTSTROKE * CORRECTION_HX) (MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX) 0.5] MVERTSTROKE include : CyrYeriShape top (SB + O) [mix (RIGHTSB - MVERTSTROKE * CORRECTION_HX) (MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX) 0.5] MVERTSTROKE (JUT * 0.75)
include : VBarRight (RIGHTSB - O) 0 top MVERTSTROKE include : VBarRight (RIGHTSB - O) 0 top MVERTSTROKE
if SLAB : begin
include : CenterTopSerif (RIGHTSB - O - MVERTSTROKE / 2 * CORRECTION_HX) top (JUT * 0.75)
include : CenterBottomSerif (RIGHTSB - O - MVERTSTROKE / 2 * CORRECTION_HX) 0 (JUT * 0.75)
create-glyph 'cyrYery' : glyph-construction create-glyph 'cyrYery' : glyph-construction
assign-unicode 0x42B assign-unicode 0x42B
@ -517,9 +538,13 @@ create-glyph 'cyrya' : glyph-construction
include : CyrYaShape XH include : CyrYaShape XH
# Serbian pe and te # Serbian pe and te
create-glyph 'cyrpe.upright' : glyph-construction
include eMarks
include : PiShape XH 0
create-glyph 'cyrpe.serbian' : glyph-construction create-glyph 'cyrpe.serbian' : glyph-construction
include glyphs.u AS_BASE include glyphs.u AS_BASE
include glyphs.macronAbove include glyphs.macronAbove
italic-variant 'cyrpe' 0x43f
create-glyph 'cyrte.upright' : glyph-construction create-glyph 'cyrte.upright' : glyph-construction
include eMarks include eMarks

View file

@ -30,9 +30,12 @@ create-glyph 'cyrdzhe' : glyph-construction
define [CyrLjeShape top] : glyph-construction define [CyrLjeShape top] : glyph-construction
local xlefttop : mix SB RIGHTSB 0.075 local xlefttop : mix SB RIGHTSB 0.075
include : LegShape xlefttop [mix SB RIGHTSB 0.025] [mix SB 0 0.5] top 0 MVERTSTROKE local jut : JUT * 0.72
include : CyrYeriShape top (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) (RIGHTSB - O) MVERTSTROKE include : LegShape xlefttop [mix SB RIGHTSB 0.025] [mix SB 0 [if SLAB 0.25 0.5]] top 0 MVERTSTROKE
include : CyrYeriShape top (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) (RIGHTSB - O) MVERTSTROKE jut
include : HBarTop xlefttop MIDDLE top include : HBarTop xlefttop MIDDLE top
if SLAB : begin
include : LeftwardTopSerif xlefttop top (jut - MVERTSTROKE / 2 * CORRECTION_HX)
create-glyph 'cyrLje' : glyph-construction create-glyph 'cyrLje' : glyph-construction
assign-unicode 0x409 assign-unicode 0x409
@ -46,9 +49,13 @@ create-glyph 'cyrlje' : glyph-construction
define [CyrNjeShape top] : glyph-construction define [CyrNjeShape top] : glyph-construction
local xlefttop : mix SB RIGHTSB 0.075 local xlefttop : mix SB RIGHTSB 0.075
local jut : JUT * 0.72
include : VBarLeft SB 0 top MVERTSTROKE include : VBarLeft SB 0 top MVERTSTROKE
include : CyrYeriShape top (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) (RIGHTSB - O) MVERTSTROKE include : CyrYeriShape top (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) (RIGHTSB - O) MVERTSTROKE jut
include : HBar (SB + MVERTSTROKE * 0.1) MIDDLE (top / 2) include : HBar (SB + MVERTSTROKE * 0.1) MIDDLE (top / 2)
if SLAB : begin
include : CenterTopSerif (SB + MVERTSTROKE / 2 * CORRECTION_HX) top jut
include : CenterBottomSerif (SB + MVERTSTROKE / 2 * CORRECTION_HX) 0 jut
create-glyph 'cyrNje' : glyph-construction create-glyph 'cyrNje' : glyph-construction
assign-unicode 0x40A assign-unicode 0x40A

View file

@ -18,25 +18,31 @@ alias 'Chi' 0x3A7 'X'
alias 'omicron' 0x3BF 'o' alias 'omicron' 0x3BF 'o'
# Capital # Capital
define [LambdaShape STROKE] : glyph-construction define [LambdaShape sw] : glyph-construction
local TURN (CAP * 0.1) local TURN (CAP * 0.1)
local curviness 0.2 local curviness 0.2
include : dispiro include : dispiro
widths.rhs STROKE widths.rhs sw
flat SB 0 [heading UPWARD] flat SB 0 [heading UPWARD]
curl SB TURN [heading UPWARD] curl SB TURN [heading UPWARD]
quadcontrols 0 curviness quadcontrols 0 curviness
g4 (MIDDLE - STROKE / 2) CAP [widths 0 (STROKE * 0.8)] g4 (MIDDLE - sw / 2) CAP [widths 0 (sw * 0.8)]
include : dispiro include : dispiro
widths.lhs STROKE widths.lhs sw
flat RIGHTSB 0 [heading UPWARD] flat RIGHTSB 0 [heading UPWARD]
curl RIGHTSB TURN [heading UPWARD] curl RIGHTSB TURN [heading UPWARD]
quadcontrols 0 curviness quadcontrols 0 curviness
g4 (MIDDLE + STROKE / 2) CAP [widths (STROKE * 0.8) 0] g4 (MIDDLE + sw / 2) CAP [widths (sw * 0.8) 0]
start-from (MIDDLE - STROKE / 2) CAP start-from (MIDDLE - sw / 2) CAP
line-to (MIDDLE + STROKE / 2) CAP line-to (MIDDLE + sw / 2) CAP
line-to MIDDLE (CAP - STROKE) line-to MIDDLE (CAP - sw)
if SLAB : begin
include : CenterBottomSerif (SB + sw / 2 * CORRECTION_HX) 0 JUT
tag-contour 'serif'
include : CenterBottomSerif (RIGHTSB - sw / 2 * CORRECTION_HX) 0 JUT
tag-contour 'serif'
create-glyph 'Lambda' : glyph-construction create-glyph 'Lambda' : glyph-construction
assign-unicode 0x39B assign-unicode 0x39B
@ -47,10 +53,20 @@ create-glyph 'Delta' : glyph-construction
assign-unicode 0x394 assign-unicode 0x394
include glyphs.Lambda AS_BASE include glyphs.Lambda AS_BASE
include : HBar (SB + HALFSTROKE) (RIGHTSB - HALFSTROKE) HALFSTROKE include : HBar (SB + HALFSTROKE) (RIGHTSB - HALFSTROKE) HALFSTROKE
eject-contour 'serif'
define [GammaShape top] : glyph-construction
include : VBarLeft (SB * 1.5) 0 top
include : HBarTop (SB * 1.5 - O) RIGHTSB top
if SLAB : begin
include : LeftwardTopSerif (SB * 1.5) top SIDEJUT
include : CenterBottomSerif (SB * 1.5 + CORRECTION_HX * HALFSTROKE) 0 JUT
include : DownwardRightSerif RIGHTSB top VJUT
create-glyph 'Gamma' : glyph-construction create-glyph 'Gamma' : glyph-construction
assign-unicode 0x393 assign-unicode 0x393
include glyphs.L AS_BASE include capitalMarks
include : GammaShape CAP
include : FlipAround MIDDLE CAPMIDDLE 1 (-1) include : FlipAround MIDDLE CAPMIDDLE 1 (-1)
define [SigmaShape top bottom _fine] : glyph-construction define [SigmaShape top bottom _fine] : glyph-construction
@ -69,6 +85,10 @@ define [SigmaShape top bottom _fine] : glyph-construction
line-to midx [mix bottom top 0.5] line-to midx [mix bottom top 0.5]
reverse-last reverse-last
if SLAB : begin
include : DownwardRightSerif RIGHTSB top VJUT
include : UpwardRightSerif RIGHTSB bottom VJUT
create-glyph 'Sigma' : glyph-construction create-glyph 'Sigma' : glyph-construction
set-width WIDTH set-width WIDTH
assign-unicode 0x3A3 assign-unicode 0x3A3
@ -88,12 +108,24 @@ create-glyph 'Xi' : glyph-construction
include : HBar [mix SB RIGHTSB 0.15] [mix RIGHTSB SB 0.15] [mix 0 CAP 0.54] include : HBar [mix SB RIGHTSB 0.15] [mix RIGHTSB SB 0.15] [mix 0 CAP 0.54]
include : HBar SB RIGHTSB (CAP - HALFSTROKE) include : HBar SB RIGHTSB (CAP - HALFSTROKE)
include : HBar SB RIGHTSB (0 + HALFSTROKE) include : HBar SB RIGHTSB (0 + HALFSTROKE)
if SLAB : begin
include : DownwardLeftSerif SB CAP VJUT
include : DownwardRightSerif RIGHTSB CAP VJUT
include : UpwardLeftSerif SB 0 VJUT
include : UpwardRightSerif RIGHTSB 0 VJUT
define [PiShape top bottom shrink _fine] : glyph-construction define [PiShape top bottom _shrink _fine] : glyph-construction
local fine : fallback _fine STROKE local fine : fallback _fine STROKE
include : HBar SB RIGHTSB (top - (fine / 2)) fine local shrink : if SLAB 0 ([fallback _shrink 0.03] * (RIGHTSB - SB))
include : VBar ([mix SB RIGHTSB [fallback shrink 0.05]] + (fine / 2)) bottom (top - fine / 2) fine include : HBarTop SB RIGHTSB top fine
include : VBar ([mix RIGHTSB SB [fallback shrink 0.05]] - (fine / 2)) bottom (top - fine / 2) fine include : VBarLeft (SB + shrink) bottom (top - fine / 2) fine
include : VBarRight (RIGHTSB - shrink) bottom (top - fine / 2) fine
if SLAB : begin
include : CenterBottomSerif (SB + shrink + fine * 0.5 * CORRECTION_HX) bottom JUT
include : CenterBottomSerif (RIGHTSB - shrink - fine * 0.5 * CORRECTION_HX) bottom JUT
include : CenterTopSerif (SB + shrink + fine * 0.5 * CORRECTION_HX) top JUT
include : CenterTopSerif (RIGHTSB - shrink - fine * 0.5 * CORRECTION_HX) top JUT
create-glyph 'Pi' : glyph-construction create-glyph 'Pi' : glyph-construction
assign-unicode 0x3A0 assign-unicode 0x3A0
@ -103,7 +135,22 @@ create-glyph 'Pi' : glyph-construction
create-glyph 'pi' : glyph-construction create-glyph 'pi' : glyph-construction
assign-unicode 0x3C0 assign-unicode 0x3C0
include eMarks include eMarks
include : PiShape XH 0 include : HBarTop SB RIGHTSB XH
local m1 : mix SB RIGHTSB (0.3)
include : dispiro
widths.rhs
straight.down.start (m1 + HALFSTROKE * CORRECTION_HX) XH [heading DOWNWARD]
alsothru 0.5 0.85 important
g4 [mix SB RIGHTSB 0.1] O
local m2 : mix SB RIGHTSB (0.7)
local hook : HOOK * 0.8
include : dispiro
widths.center
flat m2 XH [heading DOWNWARD]
curl m2 hook
arcvh
flat (m2 + hook - HALFSTROKE) HALFSTROKE [heading RIGHTWARD]
curl RIGHTSB HALFSTROKE [heading RIGHTWARD]
create-glyph 'Phi' : glyph-construction create-glyph 'Phi' : glyph-construction
assign-unicode 0x3A6 assign-unicode 0x3A6
@ -205,13 +252,13 @@ create-glyph 'kappa' : glyph-construction
set-width WIDTH set-width WIDTH
assign-unicode 0x3BA assign-unicode 0x3BA
include eMarks include eMarks
include : create-stroke include : VBarLeft SB 0 XH
:.start-from SB 0
:.set-width 0 STROKE
:.heads-to UPWARD
:.line-to SB XH
:.heads-to UPWARD
include : KShape XH include : KShape XH
if SLAB : begin
include : LeftwardTopSerif SB XH SIDEJUT
if (para.italicangle === 0) : begin
include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT
tag-contour 'serifLB'
create-glyph 'lambda' : glyph-construction create-glyph 'lambda' : glyph-construction
assign-unicode 0x3BB assign-unicode 0x3BB
@ -230,15 +277,16 @@ create-glyph 'mu' : glyph-construction
assign-unicode 0x3BC assign-unicode 0x3BC
include pMarks include pMarks
include glyphs.u include glyphs.u
include : create-stroke include : dispiro
:.start-from SB DESCENDER widths.rhs
:.heads-to UPWARD flat SB DESCENDER [heading UPWARD]
:.set-width 0 STROKE curl SB (DESCENDER / 2) [heading UPWARD]
:.line-to SB (DESCENDER / 2) straight.up.end SB SMALLSMOOTHB [widths.heading 0 [adviceBlackness 4] UPWARD]
:.heads-to UPWARD if SLAB : begin
:.line-to SB SMALLSMOOTHB include : LeftwardTopSerif SB XH SIDEJUT
:.heads-to UPWARD if (para.italicangle === 0) : begin
:.set-width 0 [adviceBlackness 4] include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) DESCENDER JUT
tag-contour 'serifLB'
create-glyph 'theta' : glyph-construction create-glyph 'theta' : glyph-construction
assign-unicode 0x3B8 assign-unicode 0x3B8
@ -410,6 +458,8 @@ create-glyph 'nu' : glyph-construction
curl RIGHTSB (XH * 0.9) [heading DOWNWARD] curl RIGHTSB (XH * 0.9) [heading DOWNWARD]
quadcontrols 0 0.3 6 quadcontrols 0 0.3 6
g4 xmid 0 g4 xmid 0
if SLAB : begin
include : LeftwardTopSerif SB XH SIDEJUT
create-glyph 'sigmafinal' : glyph-construction create-glyph 'sigmafinal' : glyph-construction
assign-unicode 0x3C2 assign-unicode 0x3C2

View file

@ -326,7 +326,7 @@ create-glyph 'Q' : glyph-construction
line-to (MIDDLE + STROKE * (1 - 0.5 / 3) * CORRECTION_HX) (STROKE * 0.5) line-to (MIDDLE + STROKE * (1 - 0.5 / 3) * CORRECTION_HX) (STROKE * 0.5)
reverse-last reverse-last
define [UShape top bottom stroke] : glyph-construction define [UShape top bottom stroke oper] : glyph-construction
include : dispiro include : dispiro
widths.lhs widths.lhs
flat SB top [heading DOWNWARD] flat SB top [heading DOWNWARD]
@ -336,7 +336,7 @@ define [UShape top bottom stroke] : glyph-construction
archv archv
flat RIGHTSB (bottom + SMOOTHA) flat RIGHTSB (bottom + SMOOTHA)
curl RIGHTSB top [heading UPWARD] curl RIGHTSB top [heading UPWARD]
include : AIVSerifs top if [not oper] : include : AIVSerifs top
create-glyph 'U' : glyph-construction create-glyph 'U' : glyph-construction
set-width WIDTH set-width WIDTH

View file

@ -248,6 +248,7 @@ create-glyph 'n' : glyph-construction
if SLAB : begin if SLAB : begin
include : LeftwardTopSerif SB XH SIDEJUT include : LeftwardTopSerif SB XH SIDEJUT
tag-contour 'serifLT'
if (para.italicangle > 0) if (para.italicangle > 0)
: then : include : RightwardBottomSerif RIGHTSB 0 SIDEJUT : then : include : RightwardBottomSerif RIGHTSB 0 SIDEJUT
: else : include : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) 0 JUT : else : include : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) 0 JUT

View file

@ -5,6 +5,7 @@ alias 'micro' 0xB5 'mu'
create-glyph 'forall' : glyph-construction create-glyph 'forall' : glyph-construction
assign-unicode 0x2200 assign-unicode 0x2200
include : LambdaShape OPERATORSTROKE include : LambdaShape OPERATORSTROKE
eject-contour 'serif'
include : HBar (SB + OPERATORSTROKE) (RIGHTSB - OPERATORSTROKE) (XH / 2) OPERATORSTROKE include : HBar (SB + OPERATORSTROKE) (RIGHTSB - OPERATORSTROKE) (XH / 2) OPERATORSTROKE
include : FlipAround MIDDLE (CAP / 2) include : FlipAround MIDDLE (CAP / 2)
@ -29,6 +30,7 @@ create-glyph 'emptyset' : glyph-construction
create-glyph 'increment' : glyph-construction create-glyph 'increment' : glyph-construction
assign-unicode 0x2206 assign-unicode 0x2206
include : LambdaShape OPERATORSTROKE include : LambdaShape OPERATORSTROKE
eject-contour 'serif'
include : HBarBottom (SB + (OPERATORSTROKE / 2)) (RIGHTSB - (OPERATORSTROKE / 2)) 0 OPERATORSTROKE include : HBarBottom (SB + (OPERATORSTROKE / 2)) (RIGHTSB - (OPERATORSTROKE / 2)) 0 OPERATORSTROKE
turned 'nabla' 0x2207 'increment' MIDDLE (CAP / 2) turned 'nabla' 0x2207 'increment' MIDDLE (CAP / 2)
@ -157,11 +159,11 @@ turned 'wedge' 0x2227 'vee' MIDDLE parenMid
turned 'Wedge' 0x22C0 'Vee' MIDDLE parenMid turned 'Wedge' 0x22C0 'Vee' MIDDLE parenMid
create-glyph 'cup' : glyph-construction create-glyph 'cup' : glyph-construction
assign-unicode 0x222A assign-unicode 0x222A
include : UShape operTop operBot OPERATORSTROKE include : UShape operTop operBot OPERATORSTROKE true
create-glyph 'Cup' : glyph-construction create-glyph 'Cup' : glyph-construction
assign-unicode 0x22C3 assign-unicode 0x22C3
include : UShape parenTop parenBot OPERATORSTROKE include : UShape parenTop parenBot OPERATORSTROKE true
turned 'cap' 0x2229 'cup' MIDDLE parenMid turned 'cap' 0x2229 'cup' MIDDLE parenMid
turned 'Cap' 0x22C2 'Cup' MIDDLE parenMid turned 'Cap' 0x22C2 'Cup' MIDDLE parenMid

View file

@ -9,7 +9,7 @@ PARAM_CC_SLAB = FAST='$(FAST)' VARIANTNAME='cc-slab$(VARIANTNAME)' STYLE_COMMON=
### Sometimes make will freak out and report ACCESS VIOLATION for me... so i have to add some repeation ### Sometimes make will freak out and report ACCESS VIOLATION for me... so i have to add some repeation
ifeq ($(OS),Windows_NT) ifeq ($(OS),Windows_NT)
LOOPS = 1 2 3 4 5 6 LOOPS = 1 2 3 4 5 6 7 8 9 10
else else
LOOPS = 1 LOOPS = 1
endif endif
@ -24,25 +24,22 @@ $(OBJDIR) :
# fdts # fdts
fdts-default : $(FILES) | $(OBJDIR) fdts-default : $(FILES) | $(OBJDIR)
@$(MAKE) -s -f onegroup.mk fdts $(PARAM_DEFAULT) @$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_DEFAULT) LOOP=$(var);)
fdts-slab : $(FILES) | $(OBJDIR) fdts-slab : $(FILES) | $(OBJDIR)
@$(MAKE) -s -f onegroup.mk fdts $(PARAM_SLAB) @$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_SLAB) LOOP=$(var);)
fdts-cc : $(FILES) | $(OBJDIR) fdts-cc : $(FILES) | $(OBJDIR)
@$(MAKE) -s -f onegroup.mk fdts $(PARAM_CC) @$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_CC) LOOP=$(var);)
fdts-cc-slab : $(FILES) | $(OBJDIR) fdts-cc-slab : $(FILES) | $(OBJDIR)
@$(MAKE) -s -f onegroup.mk fdts $(PARAM_CC_SLAB) @$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_CC_SLAB) LOOP=$(var);)
fdts : $(FILES) | $(OBJDIR)
@$(foreach var,$(LOOPS),$(MAKE) -s fdts-default fdts-slab fdts-cc fdts-cc-slab LOOP=$(var);)
# ttfs # ttfs
fonts-default : fdts fonts-default : fdts-default
@$(MAKE) -s -f onegroup.mk fonts $(PARAM_DEFAULT) @$(MAKE) -s -f onegroup.mk fonts $(PARAM_DEFAULT)
fonts-slab : fdts fonts-slab : fdts-slab
@$(MAKE) -s -f onegroup.mk fonts $(PARAM_SLAB) @$(MAKE) -s -f onegroup.mk fonts $(PARAM_SLAB)
fonts-cc : fdts fonts-cc : fdts-cc
@$(MAKE) -s -f onegroup.mk fonts $(PARAM_CC) @$(MAKE) -s -f onegroup.mk fonts $(PARAM_CC)
fonts-cc-slab : fdts fonts-cc-slab : fdts-cc-slab
@$(MAKE) -s -f onegroup.mk fonts $(PARAM_CC_SLAB) @$(MAKE) -s -f onegroup.mk fonts $(PARAM_CC_SLAB)
# testdrive # testdrive