From 69537672a786084bfeea27b64a6b6cd3c52884bd Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 16 Aug 2015 03:18:52 +0800 Subject: [PATCH] Added /smcpGhooktop, /dhooktoprtailBR. --- buildglyphs.patel | 2 +- features/common.fea | 8 +++--- glyphs/autobuilds.patel | 20 +++++++++++--- glyphs/latin-basic-capital.patel | 3 ++- glyphs/latin-basic-lower.patel | 1 + glyphs/latin-extend-basis.patel | 2 ++ glyphs/latin-extend-decorated.patel | 41 +++++++++++------------------ glyphs/overmarks.patel | 12 +++++++++ testdrive/index.html | 2 +- 9 files changed, 56 insertions(+), 35 deletions(-) diff --git a/buildglyphs.patel b/buildglyphs.patel index 7176ba1..94fa575 100644 --- a/buildglyphs.patel +++ b/buildglyphs.patel @@ -166,7 +166,7 @@ define [buildFont para recursive] : begin { } define [StdAnchorGroup] : begin { local a : anchorDeriv.apply null arguments - set a.anchors.overlay (.type BASE .x [mix a.anchors.above.x a.anchors.below.x 0.5] .y [mix a.anchors.above.y a.anchors.below.y 0.5]) + set a.anchors.overlay (.type BASE .x [mix a.anchors.below.x a.anchors.above.x BARPOS] .y [mix a.anchors.below.y a.anchors.above.y BARPOS]) return a } diff --git a/features/common.fea b/features/common.fea index c9b1a3d..1ca68cf 100644 --- a/features/common.fea +++ b/features/common.fea @@ -21,11 +21,15 @@ lookup ccmpManual2 { sub revCommaAbove perispomeniAbove by dasiaperispomeni; } ccmpManual2; +lookup ccmpManual3 { + sub b dotAbove by bdot; + sub d dotAbove by ddot; +} ccmpManual3; + feature ccmp { script latn; language dflt; lookup ccmpManual1; - lookup ccmpManual2; script grek; language dflt; lookup ccmpManual1; @@ -33,11 +37,9 @@ feature ccmp { script cyrl; language dflt; lookup ccmpManual1; - lookup ccmpManual2; script dflt; language dflt; lookup ccmpManual1; - lookup ccmpManual2; } ccmp; feature mark { diff --git a/glyphs/autobuilds.patel b/glyphs/autobuilds.patel index 8247cbb..1edc20c 100644 --- a/glyphs/autobuilds.patel +++ b/glyphs/autobuilds.patel @@ -20,10 +20,24 @@ define customDecompositions ( ."\u0122" "G\u0326" ."\u0123" "g\u0312" - # autobuild IPA glyphs + # autobuild Latin glyphs + ."\u0197" "I\u0335" + ."\u019A" "l\u0335" + ."\u0248" "J\u0335" + ."\u0249" "j\u0335" + ."\u0268" "i\u0335" + ."\u01B5" "Z\u0335" + ."\u01B6" "z\u0335" + ."\u1D7B" "\u026A\u0335" + ."\u1D7C" "\u0269\u0335" + + ."\u1D7F" "\u028A\u0336" + ."\u0289" "u\u0336" + ."\u0290" "z\u0322" ."\u0256" "d\u0322" ."\u0273" "n\u0322" + ."\u1D91" "\u0257\u0322" # Cyrillic composite characters ."\u0498" "\u0417\u0327" @@ -340,7 +354,7 @@ createSuperscripts : list { list 0x1DA3 'turnh' list 0x1DA5 'latiniota' list 0x1DA6 'smcpI' - list 0x1DA7 'smcpIbar' + list 0x1DA7 'smcpIbarOver' list 0x1DA8 'jcurlytail' list 0x1DAB 'smcpL' list 0x1DA9 'lrtail' @@ -351,7 +365,7 @@ createSuperscripts : list { list 0x1DB2 'varphi' list 0x1DB3 'srtail' list 0x1DB4 'esh' - list 0x1DB6 'ubar' + list 0x1DB6 'ulongBarOver' list 0x1DB7 'latinupsilon1' list 0x1DB9 'latinupsilon2' list 0x1DBA 'turnv' diff --git a/glyphs/latin-basic-capital.patel b/glyphs/latin-basic-capital.patel index e62b875..e953dec 100644 --- a/glyphs/latin-basic-capital.patel +++ b/glyphs/latin-basic-capital.patel @@ -510,6 +510,7 @@ create-glyph 'J.straight' : glyph-construction { set-width WIDTH dont-export include capitalMarks + set-anchor 'overlay' BASE [RIGHTSB - STROKE - JBALANCE] [CAP * BARPOS] local slope [STROKE * 0.00092] local expand 0.35 @@ -530,7 +531,7 @@ create-glyph 'J.shorthook' : glyph-construction { dont-export include capitalMarks - local slope [STROKE * 0.00092] + local slope [STROKE * 0.00092] local expand 0.35 local coexpand [[1 - expand] / 2] local kappa KAPPA_HOOK diff --git a/glyphs/latin-basic-lower.patel b/glyphs/latin-basic-lower.patel index b463aa3..e0c25ba 100644 --- a/glyphs/latin-basic-lower.patel +++ b/glyphs/latin-basic-lower.patel @@ -377,6 +377,7 @@ create-glyph 'dotlessj.straight' : glyph-construction { dont-export include pMarks set-anchor 'above' BASE [MIDDLE + JBALANCE] XH + set-anchor 'overlay' BASE [MIDDLE + JBALANCE] [XH / 2] include : create-stroke :.start-from [MIDDLE + JBALANCE] XH :.heads-to DOWNWARD diff --git a/glyphs/latin-extend-basis.patel b/glyphs/latin-extend-basis.patel index b9bcc49..950b8e5 100644 --- a/glyphs/latin-extend-basis.patel +++ b/glyphs/latin-extend-basis.patel @@ -362,10 +362,12 @@ create-glyph 'ezh' : glyph-construction { } create-glyph 'revEzh' : glyph-construction { assign-unicode 0x1B8 + include capitalMarks include : RevEzhShape CAP 0 } create-glyph 'revezh' : glyph-construction { assign-unicode 0x1B9 + include pMarks include : RevEzhShape XH DESCENDER } create-glyph 'esh' : glyph-construction { diff --git a/glyphs/latin-extend-decorated.patel b/glyphs/latin-extend-decorated.patel index e84964d..eb274a9 100644 --- a/glyphs/latin-extend-decorated.patel +++ b/glyphs/latin-extend-decorated.patel @@ -38,7 +38,7 @@ create-glyph 'lslash' : glyph-construction { assign-unicode 0x142 include glyphs.l AS_BASE local fine : 0.5 * [adviceBlackness 5] - local middle : mix 0 CAP 0.55 + local middle : mix 0 CAP BARPOS local middlex [tp [Upright] glyphs.l.anchors.above].x include : create-stroke :.start-from [middlex - LONGJUT * 0.8] [middle - LONGJUT * 0.4] @@ -86,32 +86,11 @@ create-glyph 'ldot' : glyph-construction { Ring [[mix STROKE CAP 0.5] + DOTRADIUS] [[mix STROKE CAP 0.5] - DOTRADIUS] [[mix SB RIGHTSB 1] - DOTSIZE] [mix SB RIGHTSB 1] } } -create-glyph 'ibar' : glyph-construction { - assign-unicode 0x268 - include glyphs.'dotlessi.serifed' AS_BASE - include glyphs.dotAbove - include : HOverlayBar [mix MIDDLE SB 0.75] [mix MIDDLE RIGHTSB 0.75] [XH * 0.525] -} -create-glyph 'ubar' : glyph-construction { - assign-unicode 0x289 - include glyphs.u AS_BASE - include : HOverlayBar [mix 0 SB 0.5] [mix WIDTH RIGHTSB 0.5] [XH * 0.525] -} create-glyph 'obar' : glyph-construction { assign-unicode 0x275 include glyphs.o AS_BASE include : HOverlayBar [SB - O] [RIGHTSB + O] [XH * 0.5] } -create-glyph 'latinupsilon1bar' : glyph-construction { - assign-unicode 0x1D7F - include glyphs.latinupsilon1 AS_BASE - include : HOverlayBar [mix 0 SB 0.5] [mix WIDTH RIGHTSB 0.5] [XH * 0.525] -} -create-glyph 'smcpIbar' : glyph-construction { - assign-unicode 0x1D7B - include glyphs.smcpI AS_BASE - include : HOverlayBar [MIDDLE - LONGJUT * 0.6] [MIDDLE + LONGJUT * 0.6] [XH * 0.525] -} create-glyph 'glottalstopbar' : glyph-construction { assign-unicode 0x2A1 include glyphs.glottalstop AS_BASE @@ -176,12 +155,12 @@ create-glyph 'bhooktop' : glyph-construction { include : oLeft include : HooktopLeftBar } -create-glyph 'dhooktop' : glyph-construction { +create-glyph 'scriptghooktop' : glyph-construction { assign-unicode 0x260 include glyphs.scriptg AS_BASE include : VerticalHook [RIGHTSB - HALFSTROKE * ITALICCOR] XH HOOKX [-HOOK] } -create-glyph 'scriptghooktop' : glyph-construction { +create-glyph 'dhooktop' : glyph-construction { assign-unicode 0x257 include bMarks include glyphs.'a.italic' @@ -190,12 +169,20 @@ create-glyph 'scriptghooktop' : glyph-construction { create-glyph 'Chooktop' : glyph-construction { assign-unicode 0x187 include glyphs.C AS_BASE - include : VerticalHook [RIGHTSB - HALFSTROKE * ITALICCOR] [CAP - HOOK] HOOKX [-HOOK * 1.5] + include : VBarRight RIGHTSB [CAP - HOOK] CAP + include : VerticalHook [RIGHTSB - HALFSTROKE * ITALICCOR] CAP HOOKX [-HOOK] } create-glyph 'chooktop' : glyph-construction { assign-unicode 0x188 include glyphs.c AS_BASE - include : VerticalHook [RIGHTSB - HALFSTROKE * ITALICCOR] [XH - HOOK] HOOKX [-HOOK * 1.5] + include : VBarRight RIGHTSB [XH - HOOK] XH + include : VerticalHook [RIGHTSB - HALFSTROKE * ITALICCOR] XH HOOKX [-HOOK] +} +create-glyph 'smcpGhooktop' : glyph-construction { + assign-unicode 0x29B + include glyphs.smcpG AS_BASE + include : VBarRight RIGHTSB [XH - HOOK] XH + include : VerticalHook [RIGHTSB - HALFSTROKE * ITALICCOR] XH HOOKX [-HOOK] } # Left-tail create-glyph 'fltail' : glyph-construction { @@ -463,12 +450,14 @@ define [ErTail] : glyph-construction { } create-glyph 'er' : glyph-construction { assign-unicode 0x25A + include eMarks local f : Thinner ('schwa') 0.85 include f.schwa include : ErTail } create-glyph 'revlatinepsiloner' : glyph-construction { assign-unicode 0x25D + include eMarks local f : Thinner ('revlatinepsilon') 0.85 include f.revlatinepsilon include : ErTail diff --git a/glyphs/overmarks.patel b/glyphs/overmarks.patel index bcf1c3d..5ab9a98 100644 --- a/glyphs/overmarks.patel +++ b/glyphs/overmarks.patel @@ -692,6 +692,18 @@ create-glyph 'tildeOver' : glyph-construction { apply-transform : Translate 0 [XH / 2 - [mix aboveMarkTop aboveMarkBot 0.5]] apply-transform : Italify } +create-glyph 'barOver' : glyph-construction { + set-width 0 + assign-unicode 0x335 + set-anchor 'overlay' MARK markMiddle [XH / 2] markMiddle [XH / 2] + include : HOverlayBar [markMiddle - LONGJUT * 0.75] [markMiddle + LONGJUT * 0.75] [XH / 2] +} +create-glyph 'longBarOver' : glyph-construction { + set-width 0 + assign-unicode 0x336 + set-anchor 'overlay' MARK markMiddle [XH / 2] markMiddle [XH / 2] + include : HOverlayBar [[mix 0 SB 0.5] - WIDTH] [[mix WIDTH RIGHTSB 0.5] - WIDTH] [XH / 2] +} # Double-character arcs create-glyph 'tieAbove' : glyph-construction { set-width 0 diff --git a/testdrive/index.html b/testdrive/index.html index cfa5f5e..283f019 100644 --- a/testdrive/index.html +++ b/testdrive/index.html @@ -199,7 +199,7 @@ ]; var sampleSentences = [ - {lang: 'English', sample: 'Shaw, those twelve beige hooks are joined if I patch a young, gooey mouth.'}, + {lang: 'English', sample: 'Shaw, those twelve beige hooks are joined if I patch a young, gooey mouth. Bl̓ood of m̧y ḃlȯod.'}, {lang: 'IPA', sample: '[aɪ kæn iːt glɑːs ænd ɪt dɐz nɒt hɜːt miː]'}, {lang: 'Powerline', sample: ' NORMAL \uE0B0 \uE0A0 master \uE0B1 glyphs/powerline.patel \uE0B0 dos \uE0B3 utf-8 \uE0B3 PatEL \uE0B2 2% \uE0B2 \uE0A1 1:1 '}, {lang: 'Bulgarian', sample: 'Я, пазачът Вальо уж бди, а скришом хапва кюфтенца зад щайгите.'},