diff --git a/buildglyphs.patel b/buildglyphs.patel index ad67a62..6ef3ec7 100644 --- a/buildglyphs.patel +++ b/buildglyphs.patel @@ -27,7 +27,8 @@ define-macro $$include : syntax-rules { local parse [require './syntax.js'].parse local absolutePath : path.resolve [path.dirname f0] [formOf file] - local ast : parse [fs.readFileSync absolutePath 'utf-8'] (.included true) + local input : fs.readFileSync absolutePath 'utf-8' + local ast : parse input (.within (.file absolutePath .input input)) return ('.syntactic-closure' ast env) } otherwise @`nothing diff --git a/glyphs/cyrillic-basic.patel b/glyphs/cyrillic-basic.patel index 4eba982..0a6b8c2 100644 --- a/glyphs/cyrillic-basic.patel +++ b/glyphs/cyrillic-basic.patel @@ -166,9 +166,16 @@ create-glyph 'cyrghe.upright' : glyph-construction { } create-glyph 'cyrghe.italic' : glyph-construction { include eMarks - include : twoHookUpper XH [SMOOTHB * 0.87] SHOOK - include : XSHookLower 0 [RIGHTSB - OXHOOK + TAILADJX * globalTransform.yx] MIDDLE SB [SMOOTHB * 0.87] [SHOOK - TAILADJY * globalTransform.yx] - include : sStrand [SMOOTHB * 0.87] [XH - [SMOOTHB * 0.87]] 0.2 0.45 + include : spiro { + widths.rhs + g4 SB [XH - SHOOK] + hookstart XO SBALANCE + g4 RIGHTSB [XH - SMOOTHB * 0.85] + alsothru 0.5 0.5 [widths HALFSTROKE HALFSTROKE] + g4 SB [SMOOTHB * 0.85] [widths STROKE 0] + hookend O SBALANCE + g4 RIGHTSB SHOOK + } } italic-variant 'cyrghe' 0x433 define [CyrDeShape top] : glyph-construction { @@ -194,10 +201,12 @@ create-glyph 'cyrde.italic' : glyph-construction { include bMarks include : smallo [CAP * 0.7] 0 SB RIGHTSB local ymiddlea : [XH + SMALLSMOOTHA - SMALLSMOOTHB] / 2 - include : create-stroke - :.start-from [RIGHTSB - O] ymiddlea - :.set-width STROKE 0 - :.curve-to [RIGHTSB - O] [mix ymiddlea CAP 0.8] [SB + STROKE * 1.1] CAP + include : spiro { + widths.lhs + g4 [RIGHTSB - O] ymiddlea + quadcontrols 0 0.8 + g4 [SB + STROKE * 1.1] CAP + } } italic-variant 'cyrde' 0x434 define [CyrZheShape top] : glyph-construction { @@ -307,22 +316,22 @@ create-glyph 'cyrtse' : glyph-construction { include eMarks include : CyrTseShape XH } -define [CyrCheShape top] : glyph-construction { +define [CyrCheShape top _barp] : glyph-construction { + local bar : top * [fallback _barp 0.4] include : VBarRight RIGHTSB 0 top - include : create-stroke - :.start-from SB top - :.set-width STROKE 0 - :.heads-to DOWNWARD - :.line-to SB [top * 0.3 + SMOOTHB - HALFSTROKE] - :.arc-vh-to MIDDLE [top * 0.3 - HALFSTROKE] - :.heads-to RIGHTWARD - :.line-to RIGHTSB [top * 0.3 - HALFSTROKE] - :.heads-to RIGHTWARD + include : spiro { + widths.lhs + flat SB top [heading DOWNWARD] + curl SB [bar + SMOOTHB - HALFSTROKE] + arcvh + flat MIDDLE [bar - HALFSTROKE] + curl [RIGHTSB - 1] [bar - HALFSTROKE] [heading RIGHTWARD] + } } create-glyph 'cyrChe' : glyph-construction { assign-unicode 0x427 include capitalMarks - include : CyrCheShape CAP + include : CyrCheShape CAP 0.35 } create-glyph 'cyrche' : glyph-construction { assign-unicode 0x447 diff --git a/glyphs/latin-basic-capital.patel b/glyphs/latin-basic-capital.patel index 4722203..a4fe700 100644 --- a/glyphs/latin-basic-capital.patel +++ b/glyphs/latin-basic-capital.patel @@ -604,7 +604,4 @@ create-glyph 'S' : glyph-construction { hookend O g4 SB HOOK } -# include : sHookUpper CAP SMOOTHA HOOK -# include : sHookLower 0 SMOOTHA HOOK -# include : sStrand [CAP - SMOOTHA] SMOOTHA } \ No newline at end of file diff --git a/glyphs/latin-basic-lower.patel b/glyphs/latin-basic-lower.patel index 1d626f9..98e183b 100644 --- a/glyphs/latin-basic-lower.patel +++ b/glyphs/latin-basic-lower.patel @@ -639,12 +639,10 @@ create-glyph 's' : glyph-construction { hookstart XO SBALANCE g4 SB [XH - SMOOTHA * 0.85] alsothru 0.5 0.5 [widths HALFSTROKE HALFSTROKE] - #sband STROKE false 1 0.75 [linreg 75 1 120 0.55 STROKE] g4 RIGHTSB [SMOOTHA * 0.85] [widths 0 STROKE] hookend O SBALANCE g4 SB SHOOK } -# throw 'w' } ### r diff --git a/glyphs/latin-extend-basis.patel b/glyphs/latin-extend-basis.patel index e207df2..3810e0c 100644 --- a/glyphs/latin-extend-basis.patel +++ b/glyphs/latin-extend-basis.patel @@ -445,9 +445,16 @@ create-glyph 'iogonek.dotless' : glyph-construction { create-glyph 'revS' : glyph-construction { assign-unicode 0x1A7 include capitalMarks - include : twoHookUpper CAP SMOOTHB SHOOK - include : XSHookLower 0 RIGHTSB MIDDLE SB SMOOTHB HOOK - include : sStrand SMOOTHB [CAP - SMOOTHB] 0.2 0.45 + include : spiro { + widths.rhs + g4 SB [CAP - HOOK] + hookstart CAPO + g4 RIGHTSB [CAP - SMOOTHB] + alsothru 0.5 0.5 [widths HALFSTROKE HALFSTROKE] + g4 SB SMOOTHB [widths STROKE 0] + hookend O + g4 RIGHTSB HOOK + } } create-glyph 'revs' : glyph-construction { assign-unicode 0x1A8 diff --git a/makefile b/makefile index 24baa87..059aabe 100644 --- a/makefile +++ b/makefile @@ -45,7 +45,7 @@ $(TARGETS) : $(OBJDIR)/%.ttf : $(OBJDIR)/.pass2-%.ttf update : $(FILES) $(SUPPORT_FILES) : - patel-c $< -o $@ --strict + patel-c --strict $< -o $@ buildglyphs.js : buildglyphs.patel $(GLYPH_SEGMENTS) patel-c --strict $< -o $@