From 3a62f3aaff0f623e43e6466248839dde4ffce3a0 Mon Sep 17 00:00:00 2001 From: be5invis Date: Tue, 17 Nov 2015 18:32:08 +0800 Subject: [PATCH] Added serifs for more glyphs; separated some greek and cyrillic glyphs. --- generate.js | 5 +- glyphs/common-shapes.patel | 46 +++++++++------- glyphs/cyrillic-basic.patel | 63 +++++++++++++--------- glyphs/greek.patel | 7 ++- glyphs/latin-basic-capital.patel | 3 +- glyphs/latin-basic-lower.patel | 17 +++--- glyphs/latin-extend-basis.patel | 84 +++++++++++++++++++++++++---- glyphs/latin-extend-decorated.patel | 32 +++++++---- glyphs/numbers.patel | 2 +- 9 files changed, 180 insertions(+), 79 deletions(-) diff --git a/generate.js b/generate.js index 31a2cfbc5..5bb7b6586 100644 --- a/generate.js +++ b/generate.js @@ -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)); \ No newline at end of file +if(argv.o) { + console.log(argv.o + " Successfully built.") + fs.writeFileSync(argv.o, JSON.stringify(ttfFont)); +} \ No newline at end of file diff --git a/glyphs/common-shapes.patel b/glyphs/common-shapes.patel index ed2b6cc98..43e3feb4e 100644 --- a/glyphs/common-shapes.patel +++ b/glyphs/common-shapes.patel @@ -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 diff --git a/glyphs/cyrillic-basic.patel b/glyphs/cyrillic-basic.patel index a3ae4b005..8081c5491 100644 --- a/glyphs/cyrillic-basic.patel +++ b/glyphs/cyrillic-basic.patel @@ -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 diff --git a/glyphs/greek.patel b/glyphs/greek.patel index dc33d547e..5481db3a5 100644 --- a/glyphs/greek.patel +++ b/glyphs/greek.patel @@ -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 diff --git a/glyphs/latin-basic-capital.patel b/glyphs/latin-basic-capital.patel index 8fc067f59..6bc4a132d 100644 --- a/glyphs/latin-basic-capital.patel +++ b/glyphs/latin-basic-capital.patel @@ -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 diff --git a/glyphs/latin-basic-lower.patel b/glyphs/latin-basic-lower.patel index cc451025a..a97404e8d 100644 --- a/glyphs/latin-basic-lower.patel +++ b/glyphs/latin-basic-lower.patel @@ -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 diff --git a/glyphs/latin-extend-basis.patel b/glyphs/latin-extend-basis.patel index 8deafe561..e9b1615c3 100644 --- a/glyphs/latin-extend-basis.patel +++ b/glyphs/latin-extend-basis.patel @@ -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' diff --git a/glyphs/latin-extend-decorated.patel b/glyphs/latin-extend-decorated.patel index 43f49fbcf..1c0c8123f 100644 --- a/glyphs/latin-extend-decorated.patel +++ b/glyphs/latin-extend-decorated.patel @@ -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 diff --git a/glyphs/numbers.patel b/glyphs/numbers.patel index a059e3dca..6c535b47c 100644 --- a/glyphs/numbers.patel +++ b/glyphs/numbers.patel @@ -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