Added serifs for more glyphs; separated some greek and cyrillic glyphs.

This commit is contained in:
be5invis 2015-11-17 18:32:08 +08:00
parent bfdba9593b
commit 3a62f3aaff
9 changed files with 180 additions and 79 deletions

View file

@ -11,4 +11,7 @@ var para = parameters.build(parametersData, argv._);
var ttfFont = buildGlyphs.build.call(emptyFont, para); var ttfFont = buildGlyphs.build.call(emptyFont, para);
if(argv.o) fs.writeFileSync(argv.o, JSON.stringify(ttfFont)); if(argv.o) {
console.log(argv.o + " Successfully built.")
fs.writeFileSync(argv.o, JSON.stringify(ttfFont));
}

View file

@ -33,45 +33,51 @@ define [ORing u d l r sma smb shift] : begin
return s.points return s.points
define SERIF_SHIFT_X 0.6 define SERIF_SHIFT_X 0.6
define [LeftwardTopSerif x y length] : glyph-construction define [LeftwardTopSerif x y length _sw] : glyph-construction
local sw : fallback _sw STROKE
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 sw 0
:.line-to (x - length - globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y :.line-to (x - length - globalTransform.yx * (sw * SERIF_SHIFT_X)) y
define [LeftwardBottomSerif x y length] : glyph-construction define [LeftwardBottomSerif x y length _sw] : glyph-construction
local sw : fallback _sw STROKE
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 sw
:.line-to (x - length + globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y :.line-to (x - length + globalTransform.yx * (sw * SERIF_SHIFT_X)) y
define [RightwardTopSerif x y length] : glyph-construction define [RightwardTopSerif x y length _sw] : glyph-construction
local sw : fallback _sw STROKE
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 sw
:.line-to (x + length - globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y :.line-to (x + length - globalTransform.yx * (sw * SERIF_SHIFT_X)) y
define [RightwardBottomSerif x y length] : glyph-construction define [RightwardBottomSerif x y length _sw] : glyph-construction
local sw : fallback _sw STROKE
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 sw 0
:.line-to (x + length + globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y :.line-to (x + length + globalTransform.yx * (sw * SERIF_SHIFT_X)) y
define [CenterTopSerif x y length] : glyph-construction define [CenterTopSerif x y length _sw] : glyph-construction
local sw : fallback _sw STROKE
include : create-stroke include : create-stroke
:.start-from (x + length - globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y :.start-from (x + length - globalTransform.yx * (sw * SERIF_SHIFT_X)) y
:.set-width STROKE 0 :.set-width sw 0
:.line-to (x - length - globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y :.line-to (x - length - globalTransform.yx * (sw * SERIF_SHIFT_X)) y
define [CenterBottomSerif x y length] : glyph-construction define [CenterBottomSerif x y length _sw] : glyph-construction
local sw : fallback _sw STROKE
include : create-stroke include : create-stroke
:.start-from (x + length + globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y :.start-from (x + length + globalTransform.yx * (sw * SERIF_SHIFT_X)) y
:.set-width 0 STROKE :.set-width 0 sw
:.line-to (x - length + globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y :.line-to (x - length + globalTransform.yx * (sw * SERIF_SHIFT_X)) y
define [DownwardRightSerif x y length sw] : glyph-construction define [DownwardRightSerif x y length sw] : glyph-construction
include : dispiro include : dispiro

View file

@ -7,7 +7,6 @@ alias 'cyrGhe' 0x413 'Gamma'
alias 'cyrIe' 0x415 'E' alias 'cyrIe' 0x415 'E'
alias 'cyrie' 0x435 'e' alias 'cyrie' 0x435 'e'
alias 'cyrKa' 0x41A 'K' alias 'cyrKa' 0x41A 'K'
alias 'cyrka' 0x43A 'kappa'
alias 'cyrEm' 0x41C 'M' alias 'cyrEm' 0x41C 'M'
alias 'cyrEn' 0x41D 'H' alias 'cyrEn' 0x41D 'H'
alias 'cyrO' 0x41E 'O' alias 'cyrO' 0x41E 'O'
@ -92,6 +91,8 @@ create-glyph 'cyrBe' : glyph-construction
assign-unicode 0x411 assign-unicode 0x411
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)
if SLAB : begin
include : DownwardRightSerif [mix SB RIGHTSB 0.9] CAP VJUT
define [CyrIShape top] : glyph-construction define [CyrIShape top] : glyph-construction
local topstroke : adviceBlackness 4 local topstroke : adviceBlackness 4
@ -162,6 +163,16 @@ create-glyph 'cyrbe' : glyph-construction
alias 'cyrbe.serbian' null 'delta' alias 'cyrbe.serbian' null 'delta'
create-glyph 'cyrka' : glyph-construction
set-width WIDTH
assign-unicode 0x43A
include eMarks
include : VBarLeft SB 0 XH
include : KShape XH
if SLAB : begin
include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT
include : CenterTopSerif (SB + HALFSTROKE * CORRECTION_HX) XH JUT
create-glyph 'cyrve.italic' : glyph-construction create-glyph 'cyrve.italic' : glyph-construction
include eMarks include eMarks
@ -376,7 +387,7 @@ create-glyph 'cyrtse.italic' : glyph-construction
italic-variant 'cyrtse' 0x446 italic-variant 'cyrtse' 0x446
define [CyrCheShape top _barp] : glyph-construction define [CyrCheShape top _barp] : glyph-construction
local bar : top * [fallback _barp 0.4] local bar : top * [fallback _barp [if SLAB 0.45 0.4]]
include : VBarRight RIGHTSB 0 top include : VBarRight RIGHTSB 0 top
include : dispiro include : dispiro
widths.lhs widths.lhs
@ -393,7 +404,7 @@ define [CyrCheShape top _barp] : glyph-construction
create-glyph 'cyrChe' : glyph-construction create-glyph 'cyrChe' : glyph-construction
assign-unicode 0x427 assign-unicode 0x427
include capitalMarks include capitalMarks
include : CyrCheShape CAP 0.35 include : CyrCheShape CAP [if SLAB nothing 0.35]
create-glyph 'cyrche' : glyph-construction create-glyph 'cyrche' : glyph-construction
assign-unicode 0x447 assign-unicode 0x447
@ -502,30 +513,32 @@ create-glyph 'cyryu' : glyph-construction
define [CyrYaShape top] : glyph-construction define [CyrYaShape top] : glyph-construction
local bowlTop (top * 1) local bowlTop (top * 1)
local bowlBottom ((top - STROKE) * 0.55 - HALFSTROKE) local m : if SLAB (0.5 + HALFSTROKE / CAP) PBARPOS
local bowlBottom ((top - STROKE) * m - HALFSTROKE)
local turn : mix bowlTop bowlBottom 0.5 local turn : mix bowlTop bowlBottom (SMOOTHA / (SMOOTHA + SMOOTHB))
local turnRadius : (bowlTop - bowlBottom) / 2 local turnRadius : (bowlTop - bowlBottom) * 0.45
local barright : WIDTH - SB * 1.25
include : create-stroke include : dispiro
:.start-from (WIDTH - SB * 1.25 - HALFSTROKE * 0.1) bowlTop widths.lhs
:.heads-to LEFTWARD flat (barright - HALFSTROKE * 0.1) bowlTop [heading LEFTWARD]
:.set-width STROKE 0 curl (SB + turnRadius) bowlTop
:.line-to (SB + turnRadius) bowlTop archv
:.arc-hv-to (SB + O) turn g4 (SB + O) turn
:.arc-vh-to (SB + turnRadius) bowlBottom arcvh
:.line-to (WIDTH - SB * 1.25 - HALFSTROKE * 0.1) bowlBottom flat (SB + turnRadius) bowlBottom
:.heads-to RIGHTWARD curl (barright - HALFSTROKE * 0.1) bowlBottom [heading RIGHTWARD]
include : VBarRight RIGHTSB 0 top include : VBarRight RIGHTSB 0 top
local left (SB + O + [if SLAB (JUT / 4) 0])
include : dispiro
widths.center
g4.up.start (left + HALFSTROKE) 0 [heading UPWARD]
quadcontrols 0 0.4 8
g4 MIDDLE ((top - STROKE) * m)
local turn (XH * 0.1) if SLAB : begin
local left (SB + O) include : RightwardTopSerif barright top SIDEJUT
include : create-stroke include : CenterBottomSerif (barright - HALFSTROKE * CORRECTION_HX) 0 JUT
:.start-from (left + HALFSTROKE) 0 include : LeftwardBottomSerif (SB + JUT / 4) 0 (SIDEJUT + JUT / 4)
:.heads-to UPWARD
:.set-width HALFSTROKE HALFSTROKE
:.curve-to (left + HALFSTROKE) (turn + 0.2 * (XH - turn)) MIDDLE (bowlBottom + HALFSTROKE)
create-glyph 'cyrYa' : glyph-construction create-glyph 'cyrYa' : glyph-construction
assign-unicode 0x42F assign-unicode 0x42F

View file

@ -67,7 +67,6 @@ create-glyph 'Gamma' : glyph-construction
assign-unicode 0x393 assign-unicode 0x393
include capitalMarks include capitalMarks
include : GammaShape CAP include : GammaShape CAP
include : FlipAround MIDDLE CAPMIDDLE 1 (-1)
define [SigmaShape top bottom _fine] : glyph-construction define [SigmaShape top bottom _fine] : glyph-construction
local cor 1.15 local cor 1.15
@ -247,6 +246,9 @@ create-glyph 'eta' : glyph-construction
include : nShoulder (SB + STROKE * CORRECTION_HX) RIGHTSB (STROKE * 0.3) XH DESCENDER SMALLSMOOTHA SMALLSMOOTHB include : nShoulder (SB + STROKE * CORRECTION_HX) RIGHTSB (STROKE * 0.3) XH DESCENDER SMALLSMOOTHA SMALLSMOOTHB
include : VBarLeft SB 0 XH include : VBarLeft SB 0 XH
if SLAB : begin
include : LeftwardTopSerif SB XH SIDEJUT
tag-contour 'serifLT'
create-glyph 'kappa' : glyph-construction create-glyph 'kappa' : glyph-construction
set-width WIDTH set-width WIDTH
@ -256,9 +258,6 @@ create-glyph 'kappa' : glyph-construction
include : KShape XH include : KShape XH
if SLAB : begin if SLAB : begin
include : LeftwardTopSerif SB XH SIDEJUT 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

View file

@ -239,7 +239,6 @@ define [PShape top _mul bp] : glyph-construction
define [RShape top] : glyph-construction define [RShape top] : glyph-construction
local m : if SLAB (0.5 + HALFSTROKE / CAP) PBARPOS local m : if SLAB (0.5 + HALFSTROKE / CAP) PBARPOS
include : PShape top 1 m include : PShape top 1 m
local TURN (XH * 0.1)
local right (RIGHTSB - O - [if SLAB (JUT / 4) 0]) local right (RIGHTSB - O - [if SLAB (JUT / 4) 0])
include : dispiro include : dispiro
widths.center widths.center
@ -449,7 +448,7 @@ create-glyph 'Z' : glyph-construction
assign-unicode 'Z' assign-unicode 'Z'
include capitalMarks include capitalMarks
local cor 1.15 local cor : 1.15 * CORRECTION_HX
include : HBarTop SB RIGHTSB CAP include : HBarTop SB RIGHTSB CAP

View file

@ -42,6 +42,7 @@ create-glyph 'p' : glyph-construction
include : VBarLeft SB DESCENDER XH include : VBarLeft SB DESCENDER XH
if SLAB : begin if SLAB : begin
include : LeftwardTopSerif SB XH SIDEJUT include : LeftwardTopSerif SB XH SIDEJUT
tag-contour 'serifLT'
include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) DESCENDER JUT include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) DESCENDER JUT
create-glyph 'b' : glyph-construction create-glyph 'b' : glyph-construction
@ -55,6 +56,7 @@ create-glyph 'b' : glyph-construction
include : LeftwardTopSerif SB CAP SIDEJUT include : LeftwardTopSerif SB CAP SIDEJUT
tag-contour 'serifLT' tag-contour 'serifLT'
include : LeftwardBottomSerif SB 0 SIDEJUT include : LeftwardBottomSerif SB 0 SIDEJUT
tag-contour 'serifLB'
create-glyph 'q' : glyph-construction create-glyph 'q' : glyph-construction
set-width WIDTH set-width WIDTH
@ -118,6 +120,9 @@ create-glyph 'g.singlestorey' : glyph-construction
curl RIGHTSB (DESCENDER + SMALLSMOOTHA) curl RIGHTSB (DESCENDER + SMALLSMOOTHA)
hookend (DESCENDER + O) hookend (DESCENDER + O)
g4 SB (DESCENDER + SHOOK) g4 SB (DESCENDER + SHOOK)
if SLAB : begin
include : RightwardTopSerif RIGHTSB XH SIDEJUT
tag-contour 'serifRT'
select-variant 'g' 'g' 'doublestorey' select-variant 'g' 'g' 'doublestorey'
@ -250,11 +255,11 @@ create-glyph 'n' : glyph-construction
include : LeftwardTopSerif SB XH SIDEJUT include : LeftwardTopSerif SB XH SIDEJUT
tag-contour 'serifLT' tag-contour 'serifLT'
if (para.italicangle > 0) if (para.italicangle > 0)
: then : include : RightwardBottomSerif RIGHTSB 0 SIDEJUT : then : include : tagged 'serifRB' : RightwardBottomSerif RIGHTSB 0 SIDEJUT
: else : include : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) 0 JUT : else : include : tagged 'serifRB' : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) 0 JUT
tag-contour 'serifRB' if (para.italicangle === 0) : begin
if (para.italicangle === 0) : include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT
tag-contour 'serifLB' tag-contour 'serifLB'
create-glyph 'u' : glyph-construction create-glyph 'u' : glyph-construction
set-width WIDTH set-width WIDTH
@ -481,7 +486,7 @@ create-glyph 'z' : glyph-construction
assign-unicode 'z' assign-unicode 'z'
include eMarks include eMarks
local cor 1.2 local cor : 1.2 * CORRECTION_HX
include : HBarTop SB RIGHTSB XH include : HBarTop SB RIGHTSB XH

View file

@ -217,17 +217,24 @@ create-glyph 'Thorn' : glyph-construction
curl (SB * 1.25 + 1) bowlBottom [heading LEFTWARD] curl (SB * 1.25 + 1) bowlBottom [heading LEFTWARD]
include : VBarLeft (SB * 1.25) 0 CAP include : VBarLeft (SB * 1.25) 0 CAP
if SLAB : begin
include : CenterBottomSerif (SB * 1.25 + HALFSTROKE * CORRECTION_HX) 0 JUT
include : CenterTopSerif (SB * 1.25 + HALFSTROKE * CORRECTION_HX) CAP JUT
create-glyph 'thorn' : glyph-construction create-glyph 'thorn' : glyph-construction
assign-unicode 0xFE assign-unicode 0xFE
include glyphs.b AS_BASE include : create-glyph : glyph-construction
include glyphs.p include glyphs.b
eject-contour 'serifLB'
include : create-glyph : glyph-construction
include glyphs.p
eject-contour 'serifLT'
include ifMarks include ifMarks
define [EzhShape top bot pleft hookless] : glyph-construction define [EzhShape top bot pleft hookless] : glyph-construction
local cor 1.2 local cor : 1.2 * CORRECTION_HX
local yMidBar : mix bot top 0.6 local yMidBar : mix bot top 0.6
local ezhLeft : mix SB RIGHTSB [fallback pleft 0.2] local ezhLeft : mix SB RIGHTSB [fallback pleft 0.2]
local ezhRight : mix SB RIGHTSB 0.925 local ezhRight : mix SB RIGHTSB 0.925
@ -254,7 +261,7 @@ define [EzhShape top bot pleft hookless] : glyph-construction
include : DownwardLeftSerif SB top VJUT include : DownwardLeftSerif SB top VJUT
define [RevEzhShape top bot pleft hookless] : glyph-construction define [RevEzhShape top bot pleft hookless] : glyph-construction
local cor 1.2 local cor : 1.2 * CORRECTION_HX
local yMidBar : mix bot top 0.6 local yMidBar : mix bot top 0.6
local ezhRight : mix RIGHTSB SB [fallback pleft 0.2] local ezhRight : mix RIGHTSB SB [fallback pleft 0.2]
local ezhLeft : mix RIGHTSB SB 0.925 local ezhLeft : mix RIGHTSB SB 0.925
@ -275,6 +282,8 @@ define [RevEzhShape top bot pleft hookless] : glyph-construction
if hookless {} : list if hookless {} : list
hookend bot hookend bot
g4 RIGHTSB (bot + SHOOK) g4 RIGHTSB (bot + SHOOK)
if SLAB : begin
include : DownwardRightSerif RIGHTSB top VJUT
create-glyph 'Ezh' : glyph-construction create-glyph 'Ezh' : glyph-construction
set-width WIDTH set-width WIDTH
@ -412,6 +421,11 @@ create-glyph 'Hwair' : glyph-construction
archv archv
flat (RIGHTSB - O) (SMALLSMOOTHA * 0.6) flat (RIGHTSB - O) (SMALLSMOOTHA * 0.6)
curl (RIGHTSB - O) XH [heading UPWARD] curl (RIGHTSB - O) XH [heading UPWARD]
if SLAB : begin
local jut : JUT * 0.75
include : CenterTopSerif (SB + O + MVERTSTROKE / 2 * CORRECTION_HX) CAP jut
include : CenterBottomSerif (SB + O + MVERTSTROKE / 2 * CORRECTION_HX) 0 jut
include : CenterTopSerif MIDDLE CAP jut
create-glyph 'hwair' : glyph-construction create-glyph 'hwair' : glyph-construction
assign-unicode 0x195 assign-unicode 0x195
@ -425,6 +439,12 @@ create-glyph 'hwair' : glyph-construction
archv archv
flat (RIGHTSB - O) (SMALLSMOOTHA * 0.6) flat (RIGHTSB - O) (SMALLSMOOTHA * 0.6)
curl (RIGHTSB - O) XH [heading UPWARD] curl (RIGHTSB - O) XH [heading UPWARD]
if SLAB : begin
local jut : JUT * 0.75
include : LeftwardTopSerif (SB + O) CAP (jut - MVERTSTROKE / 2 * CORRECTION_HX)
if (para.italicangle === 0) : begin
include : CenterBottomSerif (SB + O + MVERTSTROKE / 2 * CORRECTION_HX) 0 jut
tag-contour 'serifLB'
create-glyph 'Gha' : glyph-construction create-glyph 'Gha' : glyph-construction
@ -710,6 +730,32 @@ create-glyph 'latinEta' : glyph-construction
include : nShoulder (SB + STROKE) RIGHTSB (STROKE * 0.3) CAP DESCENDER SMALLSMOOTHA SMALLSMOOTHB include : nShoulder (SB + STROKE) RIGHTSB (STROKE * 0.3) CAP DESCENDER SMALLSMOOTHA SMALLSMOOTHB
include : VBar (SB + HALFSTROKE * CORRECTION_HX) 0 CAP include : VBar (SB + HALFSTROKE * CORRECTION_HX) 0 CAP
if SLAB : begin
include : LeftwardTopSerif SB CAP SIDEJUT
tag-contour 'serifLT'
if (para.italicangle > 0)
: then : include : tagged 'serifRB' : RightwardBottomSerif RIGHTSB DESCENDER SIDEJUT
: else : include : tagged 'serifRB' : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) DESCENDER JUT
if (para.italicangle === 0) : begin
include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT
tag-contour 'serifLB'
create-glyph 'latineta' : glyph-construction
assign-unicode 0x19E
include pMarks
set-anchor 'lf' BASE (SB + HALFSTROKE) 0
include : nShoulder (SB + STROKE * CORRECTION_HX) RIGHTSB (STROKE * 0.3) XH DESCENDER SMALLSMOOTHA SMALLSMOOTHB
include : VBarLeft SB 0 XH
if SLAB : begin
include : LeftwardTopSerif SB XH SIDEJUT
tag-contour 'serifLT'
if (para.italicangle > 0)
: then : include : tagged 'serifRB' : RightwardBottomSerif RIGHTSB DESCENDER SIDEJUT
: else : include : tagged 'serifRB' : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) DESCENDER JUT
if (para.italicangle === 0) : begin
include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT
tag-contour 'serifLB'
# #
create-glyph 'strenchedC' : glyph-construction create-glyph 'strenchedC' : glyph-construction
@ -771,6 +817,8 @@ create-glyph 'glottalstop' : glyph-construction
alsothru 0.5 0.45 [widths (ESS / 2) (ESS / 2)] alsothru 0.5 0.45 [widths (ESS / 2) (ESS / 2)]
flat (MIDDLE - HALFSTROKE * CORRECTION_HX) (XH * 0.3) [widths STROKE 0] flat (MIDDLE - HALFSTROKE * CORRECTION_HX) (XH * 0.3) [widths STROKE 0]
curl (MIDDLE - HALFSTROKE * CORRECTION_HX) 0 [heading DOWNWARD] curl (MIDDLE - HALFSTROKE * CORRECTION_HX) 0 [heading DOWNWARD]
if SLAB : begin
include : CenterBottomSerif MIDDLE 0 JUT
create-glyph 'revglottalstop' : glyph-construction create-glyph 'revglottalstop' : glyph-construction
assign-unicode 0x295 assign-unicode 0x295
@ -783,6 +831,8 @@ create-glyph 'revglottalstop' : glyph-construction
alsothru 0.5 0.45 [widths (ESS / 2) (ESS / 2)] alsothru 0.5 0.45 [widths (ESS / 2) (ESS / 2)]
flat (MIDDLE + HALFSTROKE * CORRECTION_HX) (XH * 0.3) [widths 0 STROKE] flat (MIDDLE + HALFSTROKE * CORRECTION_HX) (XH * 0.3) [widths 0 STROKE]
curl (MIDDLE + HALFSTROKE * CORRECTION_HX) 0 [heading DOWNWARD] curl (MIDDLE + HALFSTROKE * CORRECTION_HX) 0 [heading DOWNWARD]
if SLAB : begin
include : CenterBottomSerif MIDDLE 0 JUT
create-glyph 'smallglottalstop' : glyph-construction create-glyph 'smallglottalstop' : glyph-construction
assign-unicode 0x242 assign-unicode 0x242
@ -795,6 +845,8 @@ create-glyph 'smallglottalstop' : glyph-construction
alsothru 0.5 0.45 [widths (ESS / 2) (ESS / 2)] alsothru 0.5 0.45 [widths (ESS / 2) (ESS / 2)]
flat (MIDDLE - HALFSTROKE * CORRECTION_HX) (XH * 0.15) [widths STROKE 0] flat (MIDDLE - HALFSTROKE * CORRECTION_HX) (XH * 0.15) [widths STROKE 0]
curl (MIDDLE - HALFSTROKE * CORRECTION_HX) 0 [heading DOWNWARD] curl (MIDDLE - HALFSTROKE * CORRECTION_HX) 0 [heading DOWNWARD]
if SLAB : begin
include : CenterBottomSerif MIDDLE 0 JUT
create-glyph 'invglottalstopbar' : glyph-construction create-glyph 'invglottalstopbar' : glyph-construction
assign-unicode 0x1BE assign-unicode 0x1BE
@ -812,25 +864,31 @@ create-glyph 'invglottalstopbar' : glyph-construction
create-glyph 'fineglottalstop' : glyph-construction create-glyph 'fineglottalstop' : glyph-construction
include bMarks include bMarks
local fine : markHalfStroke * 2
include : dispiro include : dispiro
widths.rhs (markHalfStroke * 2) widths.rhs fine
g4 SB (CAP - HOOK) g4 SB (CAP - HOOK)
hookstart CAPO hookstart CAPO
g4 RIGHTSB (CAP - [adviceGlottalStopSmooth CAP 1]) g4 RIGHTSB (CAP - [adviceGlottalStopSmooth CAP 1])
alsothru 0.5 0.45 [widths markHalfStroke markHalfStroke] alsothru 0.5 0.45 [widths markHalfStroke markHalfStroke]
flat (MIDDLE - HALFSTROKE * CORRECTION_HX) (XH * 0.3) [widths (markHalfStroke * 2) 0] flat (MIDDLE - fine / 2 * CORRECTION_HX) (XH * 0.3) [widths fine 0]
curl (MIDDLE - HALFSTROKE * CORRECTION_HX) 0 [heading DOWNWARD] curl (MIDDLE - fine / 2 * CORRECTION_HX) 0 [heading DOWNWARD]
if SLAB : begin
include : CenterBottomSerif MIDDLE 0 JUT fine
create-glyph 'finerevglottalstop' : glyph-construction create-glyph 'finerevglottalstop' : glyph-construction
include bMarks include bMarks
local fine : markHalfStroke * 2
include : dispiro include : dispiro
widths.lhs (markHalfStroke * 2) widths.lhs fine
g4 RIGHTSB (CAP - HOOK) g4 RIGHTSB (CAP - HOOK)
hookstart CAPO hookstart CAPO
g4 SB (CAP - [adviceGlottalStopSmooth CAP (-1)]) g4 SB (CAP - [adviceGlottalStopSmooth CAP (-1)])
alsothru 0.5 0.45 [widths markHalfStroke markHalfStroke] alsothru 0.5 0.45 [widths markHalfStroke markHalfStroke]
flat (MIDDLE + HALFSTROKE * CORRECTION_HX) (XH * 0.3) [widths 0 (markHalfStroke * 2)] flat (MIDDLE + fine / 2 * CORRECTION_HX) (XH * 0.3) [widths 0 fine]
curl (MIDDLE + HALFSTROKE * CORRECTION_HX) 0 [heading DOWNWARD] curl (MIDDLE + fine / 2 * CORRECTION_HX) 0 [heading DOWNWARD]
if SLAB : begin
include : CenterBottomSerif MIDDLE 0 JUT fine
# Clicks # Clicks
create-glyph 'palatoalveolarclick' : glyph-construction create-glyph 'palatoalveolarclick' : glyph-construction
@ -851,6 +909,9 @@ create-glyph 'rflap' : glyph-construction
hookstart XO hookstart XO
flat (SB + RBALANCE) (XH - SMALLSMOOTHA) flat (SB + RBALANCE) (XH - SMALLSMOOTHA)
curl (SB + RBALANCE) 0 [heading DOWNWARD] curl (SB + RBALANCE) 0 [heading DOWNWARD]
if SLAB : begin
include : CenterBottomSerif (SB + RBALANCE + STROKE * 0.75 * CORRECTION_HX) 0 (JUT + HALFSTROKE / 2)
tag-contour 'serifLB'
create-glyph 'ifishhook' : glyph-construction create-glyph 'ifishhook' : glyph-construction
assign-unicode 0x27F assign-unicode 0x27F
@ -858,6 +919,8 @@ create-glyph 'ifishhook' : glyph-construction
include : VBar MIDDLE DESCENDER (XH - HOOK) include : VBar MIDDLE DESCENDER (XH - HOOK)
include : VerticalHook MIDDLE (XH - HOOK) (-LONGJUT + LBALANCE) (-HOOK + HALFSTROKE) include : VerticalHook MIDDLE (XH - HOOK) (-LONGJUT + LBALANCE) (-HOOK + HALFSTROKE)
apply-transform : Translate LBALANCE 0 apply-transform : Translate LBALANCE 0
if SLAB : begin
include : CenterBottomSerif MIDDLE DESCENDER JUT
create-glyph 'iviby' : glyph-construction create-glyph 'iviby' : glyph-construction
assign-unicode 0x285 assign-unicode 0x285
@ -938,7 +1001,6 @@ alias 'dentalclick' 0x1C0 'bar'
dual 'alveolarlateralclick' 0x1C1 'bar' (WIDTH * 0.35) dual 'alveolarlateralclick' 0x1C1 'bar' (WIDTH * 0.35)
alias 'alveolarclick' 0x1C3 'exclam' alias 'alveolarclick' 0x1C3 'exclam'
alias 'smcpH' 0x29C 'cyren' alias 'smcpH' 0x29C 'cyren'
alias 'latineta' 0x19E 'eta'
alias 'latiniota' 0x269 'iota' alias 'latiniota' 0x269 'iota'
alias 'revlatinepsilon' 0x25C 'cyrze' alias 'revlatinepsilon' 0x25C 'cyrze'
alias 'lstinSigma' 0x1A9 'Sigma' alias 'lstinSigma' 0x1A9 'Sigma'

View file

@ -55,7 +55,7 @@ create-glyph 'Lslash' : glyph-construction
define [FlatSlashShape middlex middle fine] : glyph-construction define [FlatSlashShape middlex middle fine] : glyph-construction
include : dispiro include : dispiro
flat (middlex - LONGJUT * 0.8) (middle - LONGJUT * 0.4) flat (middlex - LONGJUT * 0.8) (middle - LONGJUT * 0.4) [widths fine fine]
curl (middlex + LONGJUT * 0.8) (middle + LONGJUT * 0.4) curl (middlex + LONGJUT * 0.8) (middle + LONGJUT * 0.4)
create-glyph 'lslash' : glyph-construction create-glyph 'lslash' : glyph-construction
@ -198,6 +198,9 @@ create-glyph 'rlongleg' : glyph-construction
include pMarks include pMarks
include glyphs.r false {'serifLB'} include glyphs.r false {'serifLB'}
include : VBarLeft (SB + RBALANCE) DESCENDER 0 include : VBarLeft (SB + RBALANCE) DESCENDER 0
if SLAB : begin
include : CenterBottomSerif (SB + RBALANCE + STROKE * 0.75 * CORRECTION_HX) DESCENDER (JUT + HALFSTROKE / 2)
tag-contour 'serifLB'
create-glyph 'turnmleg' : glyph-construction create-glyph 'turnmleg' : glyph-construction
assign-unicode 0x270 assign-unicode 0x270
@ -282,6 +285,7 @@ create-glyph 'khooktop' : glyph-construction
create-glyph 'scriptghooktop' : glyph-construction create-glyph 'scriptghooktop' : glyph-construction
assign-unicode 0x260 assign-unicode 0x260
include glyphs.scriptg AS_BASE include glyphs.scriptg AS_BASE
eject-contour 'serifRT'
include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX) XH HOOKX (-HOOK) include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX) XH HOOKX (-HOOK)
create-glyph 'thooktop' : glyph-construction create-glyph 'thooktop' : glyph-construction
@ -467,6 +471,9 @@ create-glyph 'hookturnh' : glyph-construction
apply-transform : Italify apply-transform : Italify
include : FlipAround MIDDLE (XH / 2) include : FlipAround MIDDLE (XH / 2)
include pMarks include pMarks
if SLAB : begin
include : LeftwardTopSerif (RIGHTSB - STROKE * CORRECTION_HX) XH SIDEJUT
include : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) DESCENDER JUT
# Right-tail # Right-tail
create-glyph 'srtail' : glyph-construction create-glyph 'srtail' : glyph-construction
@ -567,6 +574,8 @@ create-glyph 'hookturnhrtail' : glyph-construction
apply-transform : Translate RIGHTSB 0 apply-transform : Translate RIGHTSB 0
apply-transform : Italify apply-transform : Italify
include pMarks include pMarks
if SLAB : begin
include : LeftwardTopSerif (RIGHTSB - STROKE * CORRECTION_HX) XH SIDEJUT
# Downtail # Downtail
create-glyph 'Zdtail' : glyph-construction create-glyph 'Zdtail' : glyph-construction
@ -717,6 +726,13 @@ create-glyph 'ncurlytail' : glyph-construction
include : dispiro include : dispiro
nShoulderKnots (SB + wide * CORRECTION_HX) m1 SHOULDERFINE nothing (fine * 2) nothing nothing wide nShoulderKnots (SB + wide * CORRECTION_HX) m1 SHOULDERFINE nothing (fine * 2) nothing nothing wide
CurlyTail fine rinner m1 0 (m1 + rinner * 2 + fine) x2 y2 CurlyTail fine rinner m1 0 (m1 + rinner * 2 + fine) x2 y2
if SLAB : begin
include : LeftwardTopSerif SB XH SIDEJUT
tag-contour 'serifLT'
if (para.italicangle === 0) : begin
include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT
tag-contour 'serifLB'
create-glyph 'dcurlytail' : glyph-construction create-glyph 'dcurlytail' : glyph-construction
assign-unicode 0x221 assign-unicode 0x221
@ -737,6 +753,9 @@ create-glyph 'dcurlytail' : glyph-construction
curl m1 (fine * 2) curl m1 (fine * 2)
CurlyTail fine rinner m1 0 (m1 + rinner * 2 + fine) x2 y2 CurlyTail fine rinner m1 0 (m1 + rinner * 2 + fine) x2 y2
if SLAB : begin
include : LeftwardTopSerif (m1 - STROKE * CORRECTION_HX) CAP SIDEJUT
create-glyph 'lcurlytail' : glyph-construction create-glyph 'lcurlytail' : glyph-construction
assign-unicode 0x234 assign-unicode 0x234
include bMarks include bMarks
@ -835,7 +854,6 @@ create-glyph 'zcurlytail' : glyph-construction
assign-unicode 0x291 assign-unicode 0x291
include eMarks include eMarks
local cor 1.2
local fine : adviceBlackness 4 local fine : adviceBlackness 4
local x1 : mix (SB + STROKE) RIGHTSB 0.55 local x1 : mix (SB + STROKE) RIGHTSB 0.55
local x2 : mix (SB + STROKE) RIGHTSB 0.3 local x2 : mix (SB + STROKE) RIGHTSB 0.3
@ -844,13 +862,9 @@ create-glyph 'zcurlytail' : glyph-construction
local m1 : RIGHTSB - fine / 2 - rinner + O local m1 : RIGHTSB - fine / 2 - rinner + O
include : HCurlyTail fine STROKE rinner SB m1 (RIGHTSB + fine / 2) x1 x2 y2 include : HCurlyTail fine STROKE rinner SB m1 (RIGHTSB + fine / 2) x1 x2 y2
include : HBarTop SB RIGHTSB XH include glyphs.z
eject-contour 'strokeBottom'
start-from SB STROKE eject-contour 'serifRB'
line-to (SB + STROKE * cor) STROKE
line-to RIGHTSB (XH - STROKE)
line-to (RIGHTSB - STROKE * cor) (XH - STROKE)
reverse-last
# Rhotic hook # Rhotic hook
define [ErTail left w dohook] : glyph-construction define [ErTail left w dohook] : glyph-construction

View file

@ -150,7 +150,7 @@ create-glyph 'seven' : glyph-construction
include : HBarTop SB RIGHTSB CAP include : HBarTop SB RIGHTSB CAP
local cor 1.15 local cor : 1.15 * CORRECTION_HX
local x : mix SB RIGHTSB 0.15 local x : mix SB RIGHTSB 0.15
start-from x 0 start-from x 0