From bfdba9593b5fc15fcd5e8e8d3d2fbff7e815206c Mon Sep 17 00:00:00 2001 From: be5invis Date: Tue, 17 Nov 2015 13:52:20 +0800 Subject: [PATCH] Slab for Greek and Cyrillic. --- generate.js | 7 +- glyphs/common-shapes.patel | 26 +++++--- glyphs/cyrillic-basic.patel | 51 ++++++++++---- glyphs/cyrillic-extended.patel | 13 +++- glyphs/greek.patel | 110 ++++++++++++++++++++++--------- glyphs/latin-basic-capital.patel | 4 +- glyphs/latin-basic-lower.patel | 1 + glyphs/symbol-math.patel | 6 +- makefile | 21 +++--- 9 files changed, 163 insertions(+), 76 deletions(-) diff --git a/generate.js b/generate.js index 5c78229cd..31a2cfbc5 100644 --- a/generate.js +++ b/generate.js @@ -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 para = parameters.build(parametersData, argv._); -console.log(argv._ + ' : Start Building.'); 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(err) throw err; - console.log(argv.o + ' : File Saved.'); -}); \ No newline at end of file +if(argv.o) 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 c4be61f85..ed2b6cc98 100644 --- a/glyphs/common-shapes.patel +++ b/glyphs/common-shapes.patel @@ -32,45 +32,46 @@ define [ORing u d l r sma smb shift] : begin :.arc-vh-to (mx + shift) d return s.points +define SERIF_SHIFT_X 0.6 define [LeftwardTopSerif x y length] : glyph-construction include : create-stroke :.start-from (x + HALFSTROKE * CORRECTION_HX) y :.heads-to LEFTWARD :.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 include : create-stroke :.start-from (x + HALFSTROKE * CORRECTION_HX) y :.heads-to LEFTWARD :.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 include : create-stroke :.start-from (x - HALFSTROKE * CORRECTION_HX) y :.heads-to RIGHTWARD :.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 include : create-stroke :.start-from (x - HALFSTROKE * CORRECTION_HX) y :.heads-to RIGHTWARD :.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 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 - :.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 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 - :.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 include : dispiro @@ -118,6 +119,15 @@ define [AINSerifs top _left _right] : glyph-construction include : CenterBottomSerif (left + STROKE * sideSerifK * CORRECTION_HX) 0 JUT tag-contour 'serifLB' #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 local left : fallback _left SB local right : fallback _right RIGHTSB diff --git a/glyphs/cyrillic-basic.patel b/glyphs/cyrillic-basic.patel index 27cbde881..a3ae4b005 100644 --- a/glyphs/cyrillic-basic.patel +++ b/glyphs/cyrillic-basic.patel @@ -13,9 +13,7 @@ alias 'cyrEn' 0x41D 'H' alias 'cyrO' 0x41E 'O' alias 'cyro' 0x43e 'o' alias 'cyrPe' 0x41F 'Pi' -alias 'cyrpe.upright' null 'pi' alias 'cyrpe.italic' null 'n' -italic-variant 'cyrpe' 0x43f alias 'cyrEr' 0x420 'P' alias 'cyrer' 0x440 'p' alias 'cyrEs' 0x421 'C' @@ -36,10 +34,11 @@ alias 'cyrDze' 0x405 'S' alias 'cyrdze' 0x455 's' ### 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 left : fallback _left SB local right : fallback _right RIGHTSB + local jut : fallback _jut JUT 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] curl (left + STROKE * 0.2) bowl [heading LEFTWARD] 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 local fine : fallback _fine STROKE @@ -89,7 +93,7 @@ create-glyph 'cyrBe' : glyph-construction include glyphs.cyrYeri AS_BASE 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 halftopstroke : topstroke / 2 include : create-stroke @@ -103,16 +107,17 @@ define [CyrCyrIShape top] : glyph-construction include : create-stroke :.start-from (SB + halftopstroke) 0 :.heads-to UPWARD :.set-width 0 topstroke :.line-to (RIGHTSB - topstroke - halftopstroke) top :.heads-to UPWARD + include : AICyrISerifs top create-glyph 'cyrI' : glyph-construction assign-unicode 0x418 include capitalMarks - include : CyrCyrIShape CAP + include : CyrIShape CAP create-glyph 'cyri.upright' : glyph-construction include eMarks dont-export - include : CyrCyrIShape XH + include : CyrIShape XH create-glyph 'cyri.italic' : glyph-construction dont-export @@ -187,8 +192,7 @@ create-glyph 'cyrve.upright' : glyph-construction italic-variant 'cyrve' 0x432 create-glyph 'cyrghe.upright' : glyph-construction include eMarks - include : LShape XH - include : FlipAround MIDDLE (XH / 2) 1 (-1) + include : GammaShape XH create-glyph 'cyrghe.italic' : glyph-construction include eMarks @@ -213,10 +217,14 @@ define [CyrDeShape top] : glyph-construction local cutright : mix SB RIGHTSB 0.92 include : HBar (SB + O * 2) RIGHTSB HALFSTROKE 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 : VBar (SB + HALFSTROKE * CORRECTION_HX + O * 2) (-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 assign-unicode 0x414 @@ -316,9 +324,10 @@ define [CyrElShape top] : glyph-construction local cutright : mix SB RIGHTSB 0.95 include : VBarRight cutright 0 top 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 include : RightwardTopSerif cutright top SIDEJUT + include : LeftwardTopSerif cutleft top SIDEJUT include : CenterBottomSerif (cutright - HALFSTROKE * CORRECTION_HX) 0 JUT create-glyph 'cyrEl' : glyph-construction @@ -347,6 +356,9 @@ define [CyrTseShape top] : glyph-construction include : HBarBottom SB RIGHTSB 0 include : VBarRight RIGHTSB 0 top 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 assign-unicode 0x426 @@ -359,6 +371,7 @@ create-glyph 'cyrtse.upright' : glyph-construction create-glyph 'cyrtse.italic' : glyph-construction include eMarks include glyphs.u + eject-contour 'serifLT' include : VBarRight [mix SB RIGHTSB 1.05] (HALFSTROKE - LONGJUT) STROKE italic-variant 'cyrtse' 0x446 @@ -419,12 +432,17 @@ create-glyph 'cyrshcha.upright' : glyph-construction create-glyph 'cyrshcha.italic' : glyph-construction include eMarks include glyphs.'cyrsha.italic' + eject-contour 'serifLT' include : VBarRight [mix SB RIGHTSB 1.05] (HALFSTROKE - LONGJUT) STROKE italic-variant 'cyrshcha' 0x449 define [CyrYerShape top] : glyph-construction - include : CyrYeriShape top [mix SB RIGHTSB 0.1] RIGHTSB - include : HBarTop [mix 0 SB 0.6] (STROKE * 0.1 + [mix SB RIGHTSB 0.1]) top + local left : if SLAB ([mix SB RIGHTSB 0.35] - MVERTSTROKE / 2 * CORRECTION_HX) [mix SB RIGHTSB 0.1] + 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 assign-unicode 0x42A @@ -437,8 +455,11 @@ create-glyph 'cyryer' : glyph-construction include : CyrYerShape XH 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 + 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 assign-unicode 0x42B @@ -517,9 +538,13 @@ create-glyph 'cyrya' : glyph-construction include : CyrYaShape XH # Serbian pe and te +create-glyph 'cyrpe.upright' : glyph-construction + include eMarks + include : PiShape XH 0 create-glyph 'cyrpe.serbian' : glyph-construction include glyphs.u AS_BASE include glyphs.macronAbove +italic-variant 'cyrpe' 0x43f create-glyph 'cyrte.upright' : glyph-construction include eMarks diff --git a/glyphs/cyrillic-extended.patel b/glyphs/cyrillic-extended.patel index b3e5ec2b4..612802f44 100644 --- a/glyphs/cyrillic-extended.patel +++ b/glyphs/cyrillic-extended.patel @@ -30,9 +30,12 @@ create-glyph 'cyrdzhe' : glyph-construction define [CyrLjeShape top] : glyph-construction local xlefttop : mix SB RIGHTSB 0.075 - include : LegShape xlefttop [mix SB RIGHTSB 0.025] [mix SB 0 0.5] top 0 MVERTSTROKE - include : CyrYeriShape top (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) (RIGHTSB - O) MVERTSTROKE + local jut : JUT * 0.72 + 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 + if SLAB : begin + include : LeftwardTopSerif xlefttop top (jut - MVERTSTROKE / 2 * CORRECTION_HX) create-glyph 'cyrLje' : glyph-construction assign-unicode 0x409 @@ -46,9 +49,13 @@ create-glyph 'cyrlje' : glyph-construction define [CyrNjeShape top] : glyph-construction local xlefttop : mix SB RIGHTSB 0.075 + local jut : JUT * 0.72 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) + 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 assign-unicode 0x40A diff --git a/glyphs/greek.patel b/glyphs/greek.patel index 0cb31c560..dc33d547e 100644 --- a/glyphs/greek.patel +++ b/glyphs/greek.patel @@ -18,25 +18,31 @@ alias 'Chi' 0x3A7 'X' alias 'omicron' 0x3BF 'o' # Capital -define [LambdaShape STROKE] : glyph-construction +define [LambdaShape sw] : glyph-construction local TURN (CAP * 0.1) local curviness 0.2 include : dispiro - widths.rhs STROKE + widths.rhs sw flat SB 0 [heading UPWARD] curl SB TURN [heading UPWARD] 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 - widths.lhs STROKE + widths.lhs sw flat RIGHTSB 0 [heading UPWARD] curl RIGHTSB TURN [heading UPWARD] 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 - line-to (MIDDLE + STROKE / 2) CAP - line-to MIDDLE (CAP - STROKE) + start-from (MIDDLE - sw / 2) CAP + line-to (MIDDLE + sw / 2) CAP + 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 assign-unicode 0x39B @@ -47,10 +53,20 @@ create-glyph 'Delta' : glyph-construction assign-unicode 0x394 include glyphs.Lambda AS_BASE 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 assign-unicode 0x393 - include glyphs.L AS_BASE + include capitalMarks + include : GammaShape CAP include : FlipAround MIDDLE CAPMIDDLE 1 (-1) define [SigmaShape top bottom _fine] : glyph-construction @@ -68,6 +84,10 @@ define [SigmaShape top bottom _fine] : glyph-construction line-to SB (top - fine) line-to midx [mix bottom top 0.5] reverse-last + + if SLAB : begin + include : DownwardRightSerif RIGHTSB top VJUT + include : UpwardRightSerif RIGHTSB bottom VJUT create-glyph 'Sigma' : glyph-construction set-width WIDTH @@ -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 SB RIGHTSB (CAP - 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 - include : HBar SB RIGHTSB (top - (fine / 2)) fine - include : VBar ([mix SB RIGHTSB [fallback shrink 0.05]] + (fine / 2)) bottom (top - fine / 2) fine - include : VBar ([mix RIGHTSB SB [fallback shrink 0.05]] - (fine / 2)) bottom (top - fine / 2) fine + local shrink : if SLAB 0 ([fallback _shrink 0.03] * (RIGHTSB - SB)) + include : HBarTop SB RIGHTSB top 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 assign-unicode 0x3A0 @@ -103,8 +135,23 @@ create-glyph 'Pi' : glyph-construction create-glyph 'pi' : glyph-construction assign-unicode 0x3C0 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 assign-unicode 0x3A6 include capitalMarks @@ -205,13 +252,13 @@ create-glyph 'kappa' : glyph-construction set-width WIDTH assign-unicode 0x3BA include eMarks - include : create-stroke - :.start-from SB 0 - :.set-width 0 STROKE - :.heads-to UPWARD - :.line-to SB XH - :.heads-to UPWARD + include : VBarLeft SB 0 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 assign-unicode 0x3BB @@ -230,15 +277,16 @@ create-glyph 'mu' : glyph-construction assign-unicode 0x3BC include pMarks include glyphs.u - include : create-stroke - :.start-from SB DESCENDER - :.heads-to UPWARD - :.set-width 0 STROKE - :.line-to SB (DESCENDER / 2) - :.heads-to UPWARD - :.line-to SB SMALLSMOOTHB - :.heads-to UPWARD - :.set-width 0 [adviceBlackness 4] + include : dispiro + widths.rhs + flat SB DESCENDER [heading UPWARD] + curl SB (DESCENDER / 2) [heading UPWARD] + straight.up.end SB SMALLSMOOTHB [widths.heading 0 [adviceBlackness 4] UPWARD] + if SLAB : begin + include : LeftwardTopSerif SB XH SIDEJUT + if (para.italicangle === 0) : begin + include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) DESCENDER JUT + tag-contour 'serifLB' create-glyph 'theta' : glyph-construction assign-unicode 0x3B8 @@ -410,6 +458,8 @@ create-glyph 'nu' : glyph-construction curl RIGHTSB (XH * 0.9) [heading DOWNWARD] quadcontrols 0 0.3 6 g4 xmid 0 + if SLAB : begin + include : LeftwardTopSerif SB XH SIDEJUT create-glyph 'sigmafinal' : glyph-construction assign-unicode 0x3C2 diff --git a/glyphs/latin-basic-capital.patel b/glyphs/latin-basic-capital.patel index 8852a5448..8fc067f59 100644 --- a/glyphs/latin-basic-capital.patel +++ b/glyphs/latin-basic-capital.patel @@ -326,7 +326,7 @@ create-glyph 'Q' : glyph-construction line-to (MIDDLE + STROKE * (1 - 0.5 / 3) * CORRECTION_HX) (STROKE * 0.5) reverse-last -define [UShape top bottom stroke] : glyph-construction +define [UShape top bottom stroke oper] : glyph-construction include : dispiro widths.lhs flat SB top [heading DOWNWARD] @@ -336,7 +336,7 @@ define [UShape top bottom stroke] : glyph-construction archv flat RIGHTSB (bottom + SMOOTHA) curl RIGHTSB top [heading UPWARD] - include : AIVSerifs top + if [not oper] : include : AIVSerifs top create-glyph 'U' : glyph-construction set-width WIDTH diff --git a/glyphs/latin-basic-lower.patel b/glyphs/latin-basic-lower.patel index 380822eec..cc451025a 100644 --- a/glyphs/latin-basic-lower.patel +++ b/glyphs/latin-basic-lower.patel @@ -248,6 +248,7 @@ create-glyph 'n' : glyph-construction if SLAB : begin 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 diff --git a/glyphs/symbol-math.patel b/glyphs/symbol-math.patel index df4701abc..377256304 100644 --- a/glyphs/symbol-math.patel +++ b/glyphs/symbol-math.patel @@ -5,6 +5,7 @@ alias 'micro' 0xB5 'mu' create-glyph 'forall' : glyph-construction assign-unicode 0x2200 include : LambdaShape OPERATORSTROKE + eject-contour 'serif' include : HBar (SB + OPERATORSTROKE) (RIGHTSB - OPERATORSTROKE) (XH / 2) OPERATORSTROKE include : FlipAround MIDDLE (CAP / 2) @@ -29,6 +30,7 @@ create-glyph 'emptyset' : glyph-construction create-glyph 'increment' : glyph-construction assign-unicode 0x2206 include : LambdaShape OPERATORSTROKE + eject-contour 'serif' include : HBarBottom (SB + (OPERATORSTROKE / 2)) (RIGHTSB - (OPERATORSTROKE / 2)) 0 OPERATORSTROKE turned 'nabla' 0x2207 'increment' MIDDLE (CAP / 2) @@ -157,11 +159,11 @@ turned 'wedge' 0x2227 'vee' MIDDLE parenMid turned 'Wedge' 0x22C0 'Vee' MIDDLE parenMid create-glyph 'cup' : glyph-construction assign-unicode 0x222A - include : UShape operTop operBot OPERATORSTROKE + include : UShape operTop operBot OPERATORSTROKE true create-glyph 'Cup' : glyph-construction assign-unicode 0x22C3 - include : UShape parenTop parenBot OPERATORSTROKE + include : UShape parenTop parenBot OPERATORSTROKE true turned 'cap' 0x2229 'cup' MIDDLE parenMid turned 'Cap' 0x22C2 'Cup' MIDDLE parenMid diff --git a/makefile b/makefile index 7148d09ee..7292c44c7 100644 --- a/makefile +++ b/makefile @@ -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 ifeq ($(OS),Windows_NT) -LOOPS = 1 2 3 4 5 6 +LOOPS = 1 2 3 4 5 6 7 8 9 10 else LOOPS = 1 endif @@ -24,25 +24,22 @@ $(OBJDIR) : # fdts 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) - @$(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) - @$(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) - @$(MAKE) -s -f onegroup.mk fdts $(PARAM_CC_SLAB) - -fdts : $(FILES) | $(OBJDIR) - @$(foreach var,$(LOOPS),$(MAKE) -s fdts-default fdts-slab fdts-cc fdts-cc-slab LOOP=$(var);) + @$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_CC_SLAB) LOOP=$(var);) # ttfs -fonts-default : fdts +fonts-default : fdts-default @$(MAKE) -s -f onegroup.mk fonts $(PARAM_DEFAULT) -fonts-slab : fdts +fonts-slab : fdts-slab @$(MAKE) -s -f onegroup.mk fonts $(PARAM_SLAB) -fonts-cc : fdts +fonts-cc : fdts-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) # testdrive