diff --git a/buildglyphs.ptl b/buildglyphs.ptl index 350eac4..0d44e14 100644 --- a/buildglyphs.ptl +++ b/buildglyphs.ptl @@ -35,8 +35,29 @@ define [$NamedParameterPair$ l r] : begin define-macro "--" : syntax-rules `(@l -- @r) [atom l] `[new $NamedParameterPair$ @{".quote" [formOf l]} @r] -define-macro "<>" : syntax-rules - `(@l <> @r) : dirty `{.x @[formOf l] .y @[formOf r]} + +define-macro "<>" : begin + local tClass [definingEnv.newt 'class'] + local m : syntax-rules + `(@x <> @y) `[new @tClass @x @y] + + set coinit.initFn : lambda [m] : begin + set m.toPattern : lambda [form env wrapper] : match form + `(@x <> @y) : begin + local p1 [toPattern x env wrapper] + local p2 [toPattern y env wrapper] + object + whether : lambda [t] `(@t && @[p1.whether `(@t.x)] && @[p2.whether `(@t.y)]) + assign : lambda [t locallyQ] : ex `[begin + @{".preserve" [p1.assign `(@t.x) locallyQ]} + @{".preserve" [p2.assign `(@t.y) locallyQ]} + ] env + set coinit.injectForm `[define [@tClass x y] : begin \\ + set this.x x + set this.y y + return nothing + ] + return m define-macro params : syntax-rules `[params @_pairs @body] : begin diff --git a/glyphs/common-shapes.ptl b/glyphs/common-shapes.ptl index 724e1de..f5c348b 100644 --- a/glyphs/common-shapes.ptl +++ b/glyphs/common-shapes.ptl @@ -368,7 +368,7 @@ define [VerticalHook x y extend depth fine strg] : glyph-construction flat (x + extend - [if (extend > 0) 0.01 (-0.01)]) (y - depth) curl (x + extend) (y - depth) -define [LegShape] : params [[ztop nothing {.x xt .y top}] [zbot nothing {.x xs .y bottom}] xb [fine STROKE]] : glyph-construction +define [LegShape] : params [[ztop nothing (xt <> top)] [zbot nothing (xs <> bottom)] xb [fine STROKE]] : glyph-construction include : dispiro widths.lhs fine flat xt top [heading DOWNWARD] diff --git a/glyphs/letters-unified-basic.ptl b/glyphs/letters-unified-basic.ptl index 98c5027..43f9180 100644 --- a/glyphs/letters-unified-basic.ptl +++ b/glyphs/letters-unified-basic.ptl @@ -127,7 +127,7 @@ symbol-block 'J' set-width WIDTH include capitalMarks set-anchor 'above' BASE (RIGHTSB - STROKE * HVCONTRAST * 0.75 - JBALANCE2) CAP - set-anchor 'overlay' BASE (RIGHTSB - STROKE * HVCONTRAST * 0.75 - JBALANCE2) (CAP * BARPOS) + set-anchor 'overlay' BASE (RIGHTSB - STROKE * HVCONTRAST * 0.75 - JBALANCE2) (CAP * OVERLAYPOS) local slope (STROKE * 0.00092) local expand 0.35 @@ -257,7 +257,7 @@ symbol-block 'L' create-glyph 'Lbar' : glyph-construction assign-unicode 0x23D include glyphs.L AS_BASE - include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (CAP * BARPOS) + include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (CAP * OVERLAYPOS) create-glyph 'smcpL' : glyph-construction assign-unicode 0x29F @@ -286,7 +286,7 @@ symbol-block 'l' include : VBar (MIDDLE + LBALANCE) 0 CAP include : LeftwardTopSerif (MIDDLE + LBALANCE) CAP (LONGJUT - LBALANCE) include : CenterBottomSerif MIDDLE 0 LONGJUT - set-anchor 'overlay' BASE (MIDDLE + LBALANCE / 2) (CAP * BARPOS) + set-anchor 'overlay' BASE (MIDDLE + LBALANCE / 2) (CAP * OVERLAYPOS) create-glyph 'l.italic' : glyph-construction local left : mix SB RIGHTSB 0.3 @@ -304,7 +304,7 @@ symbol-block 'l' include bMarks set-anchor 'above' BASE (left + HALFSTROKE) CAP set-anchor 'below' BASE middle 0 - set-anchor 'overlay' BASE (left + HALFSTROKE) (CAP * BARPOS) + set-anchor 'overlay' BASE (left + HALFSTROKE) (CAP * OVERLAYPOS) select-variant 'l' 'l' [if para.isItalic 'italic' 'serifed'] { .'cv07' 'l.serifed' @@ -508,7 +508,7 @@ symbol-block 'a' set-width WIDTH include eMarks set-anchor 'trailing' BASE (RIGHTSB - markHalfStroke) 0 - local bartop (XH * BARPOS * 1.02 + HALFSTROKE) + local bartop (XH * OVERLAYPOS * 1.02 + HALFSTROKE) local lowslope : shoulderMidSlope SHOULDERFINE nothing (-1) local lowmiddle : [mix (SB + OX) (RIGHTSB - HALFSTROKE * HVCONTRAST) [linreg 72 0.51 126 0.58 STROKE]] + CORRECTION_OMIDS * 0.5 local barsmooth : mix SB RIGHTSB 0.55 @@ -1150,7 +1150,7 @@ symbol-block 'D' assign-unicode 0xD0 include glyphs.D AS_BASE - include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (CAP * BARPOS) + include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (CAP * OVERLAYPOS) alias 'Dcroat' 0x110 'Eth' alias 'arficanD' 0x189 'Eth' @@ -1517,12 +1517,12 @@ define {CShape} : symbol-block 'C' create-glyph 'Cbar' : glyph-construction assign-unicode 0xA792 include glyphs.C AS_BASE - include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (CAP * BARPOS) + include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (CAP * OVERLAYPOS) create-glyph 'cbar' : glyph-construction assign-unicode 0xA793 include glyphs.c AS_BASE - include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (XH * BARPOS) + include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (XH * OVERLAYPOS) create-glyph 'ccurlytail' : glyph-construction assign-unicode 0x255 @@ -2391,7 +2391,7 @@ define {LongSShape} : symbol-block 'f' curl (MIDDLE - FBALANCE) (CAP - FHOOK) arcvh straight.right.end (MIDDLE - FBALANCE + HOOKX) (CAP - HALFSTROKE - fovershoot) - set-anchor 'overlay' BASE (MIDDLE - FBALANCE + STROKE * 0.5 * HVCONTRAST) (CAP * BARPOS) + set-anchor 'overlay' BASE (MIDDLE - FBALANCE + STROKE * 0.5 * HVCONTRAST) (CAP * OVERLAYPOS) if SLAB : begin include : CenterBottomSerif (MIDDLE - FBALANCE) 0 JUT tag-contour 'serifMB' @@ -2406,7 +2406,7 @@ define {LongSShape} : symbol-block 'f' hookstart (CAP - O) flat m (CAP - SMOOTHA) curl m 0 [heading DOWNWARD] - set-anchor 'overlay' BASE (m + STROKE * 0.65 * HVCONTRAST) (CAP * BARPOS) + set-anchor 'overlay' BASE (m + STROKE * 0.65 * HVCONTRAST) (CAP * OVERLAYPOS) if SLAB : begin include : tagged 'serifLB' : CenterBottomSerif (m + HALFSTROKE * HVCONTRAST + RBALANCE * 0.35) 0 (JUT + RBALANCE * 0.65) @@ -2659,8 +2659,8 @@ symbol-block 'T' tag-contour 'serifRT' include : DownwardLeftSerif l top VJUT MVERTSTROKE tag-contour 'serifLT' - include : CenterBottomSerif MIDDLE 0 JUT - tag-contour 'serifRB' + include : tagged 'serifRB' : RightwardBottomSerif MIDDLE 0 (LONGJUT * 0.6) + include : tagged 'serifRB' : LeftwardBottomSerif MIDDLE 0 (LONGJUT * 0.6) create-glyph 'T' : glyph-construction set-width WIDTH diff --git a/glyphs/letters-unified-extended.ptl b/glyphs/letters-unified-extended.ptl index c55f59a..1644193 100644 --- a/glyphs/letters-unified-extended.ptl +++ b/glyphs/letters-unified-extended.ptl @@ -66,11 +66,11 @@ symbol-block 'Gamma' create-glyph 'cyrGhayn' : glyph-construction assign-unicode 0x492 include glyphs.cyrGhe AS_BASE - include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (CAP * (1 - BARPOS)) + include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (CAP * (1 - OVERLAYPOS)) create-glyph 'cyrghayn.upright' : glyph-construction include glyphs.'cyrghe.upright' AS_BASE - include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (XH * (1 - BARPOS)) + include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (XH * (1 - OVERLAYPOS)) create-glyph 'cyrghayn.italic' : glyph-construction include glyphs.'cyrghe.italic' AS_BASE @@ -199,7 +199,7 @@ symbol-block 'Delta and cyrbe' symbol-block 'epsilon and cyrze' define [SmallEpsilonShape top hook] : glyph-construction local midx : mix SB RIGHTSB 0.65 - local midy : top * BARPOS + local midy : top * OVERLAYPOS local sma : top - [mix (midy + HALFSTROKE) (top - O - STROKE) (SMOOTHB / (SMOOTHA + SMOOTHB))] - TANSLANT * HVCONTRAST * STROKE local smb : [mix (STROKE + O) (midy - HALFSTROKE) (SMOOTHB / (SMOOTHA + SMOOTHB))] + TANSLANT * HVCONTRAST * STROKE local fine : STROKE * CTHIN @@ -232,7 +232,7 @@ symbol-block 'epsilon and cyrze' define [CyrZeShape top hook] : glyph-construction local midx : mix RIGHTSB SB 0.65 - local midy : top * BARPOS + local midy : top * OVERLAYPOS local smb : top - [mix (midy + HALFSTROKE) (top - O - STROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] + TANSLANT * HVCONTRAST * STROKE local sma : [mix (STROKE + O) (midy - HALFSTROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] - TANSLANT * HVCONTRAST * STROKE local fine : STROKE * CTHIN @@ -1142,13 +1142,21 @@ symbol-block 'CyrTshe and CyrDje' assign-unicode 0x40B include capitalMarks - local left : mix SB RIGHTSB 0.15 + local left : [mix SB RIGHTSB 0.15] + OX + local right : RIGHTSB - OX include : nShoulder left -- (left + STROKE * HVCONTRAST) - right -- RIGHTSB + right -- right include : VBarLeft left 0 CAP - include : HBarTop SB [mix left RIGHTSB 0.5] CAP + include : dispiro + widths.rhs + flat (SB + OX) CAP + curl [mix left RIGHTSB 0.475] CAP + + if SLAB : begin + include : CenterBottomSerif (left + HVCONTRAST * HALFSTROKE) 0 JUT + include : CenterBottomSerif (right - HVCONTRAST * HALFSTROKE) 0 JUT alias 'cyrtshe' 0x45B 'hbar' @@ -1156,18 +1164,25 @@ symbol-block 'CyrTshe and CyrDje' assign-unicode 0x402 include capitalMarks - local left : mix SB RIGHTSB 0.15 + local left : [mix SB RIGHTSB 0.15] + OX + local right: RIGHTSB - OX * 1.5 include : nShoulder left -- (left + STROKE * HVCONTRAST) - right -- RIGHTSB + right -- right top -- XH bottom -- (HOOK + HALFSTROKE + O) sma -- SMOOTHA smb -- SMOOTHB include : VBarLeft left 0 CAP - include : HBarTop SB [mix left RIGHTSB 0.5] CAP - include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) (HOOK + HALFSTROKE + O) [Math.max ((left - RIGHTSB) / 2 + HALFSTROKE) (-HOOK * 1.2)] HOOK + include : dispiro + widths.rhs + flat (SB + OX) CAP + curl [mix left RIGHTSB 0.475] CAP + include : VerticalHook (right - HALFSTROKE * HVCONTRAST) (HOOK + HALFSTROKE + O) [Math.max ((left - right) / 2 + HALFSTROKE) (-HOOK * 1.2)] HOOK + + if SLAB : begin + include : LeftwardBottomSerif left 0 SIDEJUT create-glyph 'cyrdje' : glyph-construction assign-unicode 0x452 @@ -1252,13 +1267,17 @@ symbol-block 'Digraphs' start-from (eleft - HALFSTROKE) CAP line-to eleft CAP line-to eleft (CAP - MVERTSTROKE) - include : HBarTop (SB + MVERTSTROKE) (eleft + MVERTSTROKE / 2) (XH / 2) MVERTSTROKE + include : HBarTop ([mix SB (eleft - HALFSTROKE) (1/6)] + MVERTSTROKE * 0.5 * HVCONTRAST) (eleft + MVERTSTROKE / 2) (XH / 2) MVERTSTROKE # E half include : VBarLeft eleft 0 CAP MVERTSTROKE include : HBarTop (eleft - O) RIGHTSB CAP include : HBar (eleft - O) (RIGHTSB - MVERTSTROKE / 4) (CAP * 0.54) include : HBarBottom (eleft - O) RIGHTSB 0 + if SLAB : begin + include : CenterBottomSerif (SB + MVERTSTROKE / 2 * HVCONTRAST) 0 JUT MVERTSTROKE + include : DownwardRightSerif RIGHTSB CAP VJUT MVERTSTROKE + include : UpwardRightSerif RIGHTSB 0 VJUT MVERTSTROKE alias 'cyrAE' 0x4D4 'AE' define [OEShape top] : glyph-construction @@ -1280,6 +1299,10 @@ symbol-block 'Digraphs' include : HBarTop (eleft - O) RIGHTSB top include : HBar (eleft - O) (RIGHTSB - MVERTSTROKE / 4) (top * 0.54) include : HBarBottom (eleft - O) RIGHTSB 0 + + if SLAB : begin + include : DownwardRightSerif RIGHTSB top VJUT MVERTSTROKE + include : UpwardRightSerif RIGHTSB 0 VJUT MVERTSTROKE create-glyph 'OE' : glyph-construction set-width WIDTH @@ -1312,7 +1335,7 @@ symbol-block 'Digraphs' include : HBarBottom (eLeft + MVERTSTROKE / 2) (RIGHTSB - OX * 2 - MVERTSTROKE / 2) barbottom MVERTSTROKE define aeapart : glyph-construction - local bartop (XH * BARPOS * 1.02 + HALFSTROKE) + local bartop (XH * OVERLAYPOS * 1.02 + HALFSTROKE) local abarRight : MIDDLE + MVERTSTROKE / 2 * HVCONTRAST - 0.1 local lowmiddle : mix (SB + OX * 2) abarRight 0.5 local barsmooth : mix SB abarRight 0.7 diff --git a/makefile b/makefile index 853fdb3..5fb0d21 100644 --- a/makefile +++ b/makefile @@ -15,16 +15,16 @@ release : release-default release-slab # svgs -svgs-default : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) +svgs-default : $(SCRIPTS) | $(OBJDIR) dist @$(MAKE) -f onegroup.mk svgs $(PARAM_DEFAULT) -svgs-slab : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) +svgs-slab : $(SCRIPTS) | $(OBJDIR) dist @$(MAKE) -f onegroup.mk svgs $(PARAM_SLAB) # ttfs -fonts-default : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) +fonts-default : $(SCRIPTS) | $(OBJDIR) dist @$(MAKE) -f onegroup.mk fonts $(PARAM_DEFAULT) -fonts-slab : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) +fonts-slab : $(SCRIPTS) | $(OBJDIR) dist @$(MAKE) -f onegroup.mk fonts $(PARAM_SLAB) @@ -55,19 +55,19 @@ archives-slab : fonts-slab @$(MAKE) -f onegroup.mk archives $(PARAM_SLAB) # Variant releases -releasepack-default : $(SCRIPTS) | $(OBJDIR) +releasepack-default : $(SCRIPTS) | $(OBJDIR) dist $(MAKE) pages release VERSION=$(VERSION) -fonts-fw : $(SCRIPTS) | $(OBJDIR) +fonts-fw : $(SCRIPTS) | $(OBJDIR) dist $(MAKE) fonts-default fonts-slab VERSION=$(VERSION) STYLE_COMMON='cjk' VARIANTNAME='wfw-' ARCPREFIX='withfw-' -fonts-cc : $(SCRIPTS) | $(OBJDIR) +fonts-cc : $(SCRIPTS) | $(OBJDIR) dist $(MAKE) fonts-default fonts-slab VERSION=$(VERSION) STYLE_COMMON='cjk cc' VARIANTNAME='wcc-' ARCPREFIX='withfw-cc-' releasepack-fw : fonts-fw $(MAKE) archives-default archives-slab VERSION=$(VERSION) STYLE_COMMON='cjk' VARIANTNAME='wfw-' ARCPREFIX='withfw-' releasepack-cc : fonts-cc $(MAKE) archives-default archives-slab VERSION=$(VERSION) STYLE_COMMON='cjk cc' VARIANTNAME='wcc-' ARCPREFIX='withfw-cc-' -fonts-hooky : $(SCRIPTS) | $(OBJDIR) +fonts-hooky : $(SCRIPTS) | $(OBJDIR) dist $(MAKE) fonts-default VERSION=$(VERSION) VARIANTNAME='hooky-' STYLE_UPRIGHT='v-l-hooky v-i-hooky' ARCPREFIX='variant-hooky-' -fonts-zshaped : $(SCRIPTS) | $(OBJDIR) +fonts-zshaped : $(SCRIPTS) | $(OBJDIR) dist $(MAKE) fonts-default VERSION=$(VERSION) VARIANTNAME='zshaped-' STYLE_UPRIGHT='v-l-zshaped v-i-zshaped' ARCPREFIX='variant-zshaped-' releasepack-hooky : fonts-hooky $(MAKE) archives-default VERSION=$(VERSION) VARIANTNAME='hooky-' STYLE_UPRIGHT='v-l-hooky v-i-hooky' ARCPREFIX='variant-hooky-' diff --git a/makesupport.mk b/makesupport.mk index 71edf6a..274a243 100644 --- a/makesupport.mk +++ b/makesupport.mk @@ -1,11 +1,10 @@ OBJDIR = build -DISTDIR = dist $(OBJDIR) : @- mkdir $@ -$(DISTDIR) : +dist : @- mkdir $@ - + PATELC = node ./node_modules/patel/bin/patel-c SUPPORT_FILES_FROM_aki = support/glyph.js support/spiroexpand.js support/spirokit.js parameters.js SUPPORT_FILES = $(SUPPORT_FILES_FROM_aki) support/point.js generator.js emptyfont.toml parameters.toml support/fairify.js diff --git a/onegroup.mk b/onegroup.mk index 2aad6af..ed7164e 100644 --- a/onegroup.mk +++ b/onegroup.mk @@ -12,11 +12,17 @@ ifeq ($(OS),Windows_NT) SHELL = C:\\Windows\\System32\\cmd.exe SUPPRESS_ERRORS = 2> NUL PASS = @rem +MKDIR = mkdir.exe else SUPPRESS_ERRORS = 2> /dev/null PASS = @: +MKDIR = mkdir endif +DISTDIR = dist/$(ARCPREFIX)$(ARCPREFIXB) +$(DISTDIR) : dist + @- $(MKDIR) $@ + NODE_FDT = @node --expose-gc NODE = node @@ -45,49 +51,49 @@ svgs : $(SVG0) # Pass 0 : file construction OUTPUTS = --meta $@ --feature $(subst .fdt,.ab.fea,$@) --svg $(subst .fdt,.svg,$@) --charmap $(subst .fdt,.charmap,$(subst $(OBJDIR)/.pass0-,$(OBJDIR)/,$@)) -$(OBJDIR)/.pass0-$(PREFIX)-thin.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-thin.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-thin s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) -$(OBJDIR)/.pass0-$(PREFIX)-extralight.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-extralight.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-extralight s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) -$(OBJDIR)/.pass0-$(PREFIX)-light.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-light.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-light s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) -$(OBJDIR)/.pass0-$(PREFIX)-regular.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-regular.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-book s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) -$(OBJDIR)/.pass0-$(PREFIX)-medium.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-medium.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-medium s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) -$(OBJDIR)/.pass0-$(PREFIX)-bold.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-bold.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-bold s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) -$(OBJDIR)/.pass0-$(PREFIX)-heavy.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-heavy.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-heavy s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) -$(OBJDIR)/.pass0-$(PREFIX)-thinitalic.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-thinitalic.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-thin s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 -$(OBJDIR)/.pass0-$(PREFIX)-extralightitalic.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-extralightitalic.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-extralight s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 -$(OBJDIR)/.pass0-$(PREFIX)-lightitalic.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-lightitalic.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-light s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 -$(OBJDIR)/.pass0-$(PREFIX)-italic.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-italic.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-book s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 -$(OBJDIR)/.pass0-$(PREFIX)-mediumitalic.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-mediumitalic.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-medium s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 -$(OBJDIR)/.pass0-$(PREFIX)-bolditalic.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-bolditalic.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-bold s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 -$(OBJDIR)/.pass0-$(PREFIX)-heavyitalic.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-heavyitalic.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-heavy s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 -$(OBJDIR)/.pass0-$(PREFIX)-thinoblique.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-thinoblique.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-thin s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 -$(OBJDIR)/.pass0-$(PREFIX)-extralightoblique.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-extralightoblique.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-extralight s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 -$(OBJDIR)/.pass0-$(PREFIX)-lightoblique.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-lightoblique.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-light s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 -$(OBJDIR)/.pass0-$(PREFIX)-oblique.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-oblique.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-book s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 -$(OBJDIR)/.pass0-$(PREFIX)-mediumoblique.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-mediumoblique.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-medium s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 -$(OBJDIR)/.pass0-$(PREFIX)-boldoblique.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-boldoblique.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-bold s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 -$(OBJDIR)/.pass0-$(PREFIX)-heavyoblique.fdt : $(SCRIPTS) | $(OBJDIR) +$(OBJDIR)/.pass0-$(PREFIX)-heavyoblique.fdt : $(SCRIPTS) | $(OBJDIR) $(DISTDIR) $(NODE_FDT) generator iosevka $(STYLE_COMMON) w-heavy s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1 $(SVG0) : $(OBJDIR)/.pass0-%.svg : $(OBJDIR)/.pass0-%.fdt @@ -112,11 +118,12 @@ $(PASS2) : $(OBJDIR)/.pass2-%.ttf : pass2-finalize.js $(OBJDIR)/.pass1-%.ttf $(O @ttx -q -o $@.a.ttx $@.a.ttf @ttx -q -o $@ $@.a.ttx @-rm $@.a.ttf $@.a.ttx -$(TARGETS) : $(OBJDIR)/%.ttf : $(OBJDIR)/.pass2-%.ttf - @ttfautohint $< $@ +HINT = ttfautohint --increase-x-height=0 +$(TARGETS) : $(OBJDIR)/%.ttf : $(OBJDIR)/.pass2-%.ttf + @$(HINT) $< $@ $(DISTTARGETS) : $(DISTDIR)/%.ttf : $(OBJDIR)/.pass2-%.ttf - @ttfautohint $< $@ + @$(HINT) $< $@ # releaseing RELEASEDIR = releases @@ -140,10 +147,12 @@ $(PAGESMAPS) : $(PAGEDIR)/%.charmap : $(OBJDIR)/%.charmap #$(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).tar.bz2 : $(DISTTARGETS) # cd $(DISTDIR) && tar -cjvf ../$@ $(subst $(DISTDIR)/,,$^) $(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).zip : $(DISTTARGETS) - cd $(DISTDIR) && 7z a -tzip ../$@ $(subst $(DISTDIR)/,,$^) + cd dist && 7z a -tzip -mx=9 ../$@ $(subst dist/,,$(DISTDIR)) +$(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).7z : $(DISTTARGETS) + cd dist && 7z a -t7z -mx=9 ../$@ $(subst dist/,,$(DISTDIR)) #archives : $(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).tar.bz2 $(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).zip -archives : $(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).zip +archives : $(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).zip $(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).7z pages : $(PAGESTTF) $(PAGESWOFF) $(PAGESMAPS) release : $(RELEASES) archives pages diff --git a/package.json b/package.json index 84e8021..25d0d80 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.1.7", "main": "./generate.js", "dependencies": { - "patel": ">=0.25.1", + "patel": ">=0.25.3", "node-sfnt": ">=0.0.20", "bezier-js": "*", "yargs": "*", diff --git a/parameters.toml b/parameters.toml index cb140e2..48983f3 100644 --- a/parameters.toml +++ b/parameters.toml @@ -1,6 +1,6 @@ [iosevka] family = 'Iosevka' -version = '1.5.5' +version = '1.6.0' codename = 'Elvirel' copyright = 'Copyright (c) 2015 Belleve Invis.' licence = '''This font software is licenced under the SIL Open Font Licence, Version 1.1. This is licence is avaliable with a FAQ at: http://scripts.sil.org/OFL. This font software is distributes on an 'AS IS' basis, without warranties or conditions of any kind, either express or implied. See the SIL Open Font licence fot the specific language, premissions and limitations governing your use of this font software.''' @@ -33,7 +33,7 @@ smallsmooth = 220 # Vertical arc size in lowercase letters. smoothadjust = 120 # Parameter to balance arcs in slanted shapes. superness = 2.2 # Superness of arcs. -barpos = 0.52 # Position of the middle bar in most letters, like `E`. +barpos = 0.525 # Position of the middle bar in most letters, like `E`. overlaypos = 0.52 # Position of the overlay mark. ebarpos = 0.50 # Position of the middle bar in `e`. gbarpos = 0.42