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);
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
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
:.start-from (x + HALFSTROKE * CORRECTION_HX) y
:.heads-to LEFTWARD
:.set-width STROKE 0
:.line-to (x - length - globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
:.set-width sw 0
:.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
:.start-from (x + HALFSTROKE * CORRECTION_HX) y
:.heads-to LEFTWARD
:.set-width 0 STROKE
:.line-to (x - length + globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
:.set-width 0 sw
:.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
:.start-from (x - HALFSTROKE * CORRECTION_HX) y
:.heads-to RIGHTWARD
:.set-width 0 STROKE
:.line-to (x + length - globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
:.set-width 0 sw
:.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
:.start-from (x - HALFSTROKE * CORRECTION_HX) y
:.heads-to RIGHTWARD
:.set-width STROKE 0
:.line-to (x + length + globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
:.set-width sw 0
:.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
:.start-from (x + length - globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
:.set-width STROKE 0
:.line-to (x - length - globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
:.start-from (x + length - globalTransform.yx * (sw * SERIF_SHIFT_X)) y
:.set-width sw 0
:.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
:.start-from (x + length + globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
:.set-width 0 STROKE
:.line-to (x - length + globalTransform.yx * (STROKE * SERIF_SHIFT_X)) y
:.start-from (x + length + globalTransform.yx * (sw * SERIF_SHIFT_X)) y
:.set-width 0 sw
:.line-to (x - length + globalTransform.yx * (sw * SERIF_SHIFT_X)) y
define [DownwardRightSerif x y length sw] : glyph-construction
include : dispiro

View file

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

View file

@ -67,7 +67,6 @@ create-glyph 'Gamma' : glyph-construction
assign-unicode 0x393
include capitalMarks
include : GammaShape CAP
include : FlipAround MIDDLE CAPMIDDLE 1 (-1)
define [SigmaShape top bottom _fine] : glyph-construction
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 : VBarLeft SB 0 XH
if SLAB : begin
include : LeftwardTopSerif SB XH SIDEJUT
tag-contour 'serifLT'
create-glyph 'kappa' : glyph-construction
set-width WIDTH
@ -256,9 +258,6 @@ create-glyph 'kappa' : glyph-construction
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
assign-unicode 0x3BB

View file

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

View file

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

View file

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

View file

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

View file

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