From 8a9415b373f06c0364ef4c0aae2e56cb03f52c44 Mon Sep 17 00:00:00 2001 From: be5invis Date: Fri, 2 Oct 2015 21:44:29 +0800 Subject: [PATCH] Added several small caps and optimized shapes for /m. r0.1.13 (Leng-loh). --- glyphs/autobuilds.patel | 44 +++++++++++++++++++++++++++++++++ glyphs/common-shapes.patel | 13 +++++----- glyphs/cyrillic-basic.patel | 21 +++++++++++----- glyphs/cyrillic-extended.patel | 6 ++++- glyphs/latin-basic-lower.patel | 1 - glyphs/latin-extend-basis.patel | 2 +- 6 files changed, 72 insertions(+), 15 deletions(-) diff --git a/glyphs/autobuilds.patel b/glyphs/autobuilds.patel index 76d37b8..ec6ba7c 100644 --- a/glyphs/autobuilds.patel +++ b/glyphs/autobuilds.patel @@ -245,6 +245,18 @@ define [createSubscripts records] : if [not recursive] : begin apply-transform [Translate MIDDLE (DESCENDER / 2)] true apply-transform [Italify] true +define [createSMCPs records] : if [not recursive] : begin + local pendingGlyphs : records.map : [record] -> record.1 + local params : Object.create para + set params.cap XH + set params.xheight (XH * XH / CAP) + local sf : Fork pendingGlyphs params + foreach {unicode glyphid tfm} [items-of records] : create-glyph [suggestName : 'smcp' + glyphid] : glyph-construction + if unicode : assign-unicode unicode + include sf.(glyphid) AS_BASE + if tfm : include tfm + + define [createFractions records] : if [not recursive] : begin local pendingGlyphs : [records.map : [record] -> record.1].concat : records.map : [record] -> record.2 @@ -433,6 +445,7 @@ createSuperscripts : list list 0x1D3A 'N' list 0x1D3B 'cyrI' list 0x1D3C 'O' + list 0x1D3D 'OU' list 0x1D3E 'P' list 0x1D3F 'R' list null 'S' # there is no superscript S in unicode, but is is used for the SM symbol @@ -482,6 +495,37 @@ createSubscripts : list list 0x1D6A 'chi' list 0x2C7C 'j' +createSMCPs : list + list 0x1D00 'A' + list 0x1D01 'AE' + list 0x1D03 'Bbar' + list 0x1D04 'C' + list 0x1D05 'D' + list 0x1D06 'Dcroat' + list 0x1D07 'E' + list 0x1D08 'cyrZe' + list 0x1D0A 'J' + list 0x1D0B 'K' + list 0x1D0C 'Lslash' + list 0x1D0D 'M' + list 0x1D0E 'cyrI' + list 0x1D0F 'O' + list 0x1D18 'P' + list 0x1D19 'cyrYa' + list 0x1D1A 'R' [FlipAround MIDDLE (XH / 2)] + list 0x1D1B 'T' + list 0x1D1C 'U' + list 0x1D20 'V' + list 0x1D21 'W' + list 0x1D22 'Z' + list 0x1D23 'Ezh' + list 0x1D26 'Gamma' + list 0x1D27 'Lambda' + list 0x1D28 'Pi' + list 0x1D29 'Rho' + list 0x1D2A 'Psi' + list 0x1D2B 'cyrEl' + createFractions : list list 0x00BC 'one' 'four' diff --git a/glyphs/common-shapes.patel b/glyphs/common-shapes.patel index d8037d8..b27a346 100644 --- a/glyphs/common-shapes.patel +++ b/glyphs/common-shapes.patel @@ -179,20 +179,21 @@ define [nShoulder left middle right fine _top _bottom _sma _smb _wide] : let [a define [mShoulderSpiro left right top bottom width fine] : glyph-construction local fix : CORRECTION_VS * CORRECTION_HX * width / STROKE + local sm : SMALLSMOOTH * 0.85 include : spiro-outline corner (right - width * CORRECTION_HX) bottom - curl (right - width * CORRECTION_HX) (top - SMALLSMOOTH + fix) + curl (right - width * CORRECTION_HX) (top - sm + fix) arcvh 8 'no-tiny' g2 [mix left (right - width * CORRECTION_HX) 0.5] (top - O - width) archv 8 'no-tiny' - flat left (top - SMALLSMOOTH - fix) - corner left (top - SMALLSMOOTH - fix - 1) - corner (left - fine) (top - SMALLSMOOTH - 1) - curl (left - fine) (top - SMALLSMOOTH) + flat left (top - sm - fix) + corner left (top - sm - fix - 1) + corner (left - fine) (top - sm - 1) + curl (left - fine) (top - sm) arcvh 8 'no-tiny' g2 [mix (left - fine * CORRECTION_HX) right 0.5] (top - O) archv 8 'no-tiny' - flat right (top - SMALLSMOOTH) + flat right (top - sm) corner right bottom close diff --git a/glyphs/cyrillic-basic.patel b/glyphs/cyrillic-basic.patel index 7a3acb0..5a4ed43 100644 --- a/glyphs/cyrillic-basic.patel +++ b/glyphs/cyrillic-basic.patel @@ -322,10 +322,14 @@ create-glyph 'cyrTse' : glyph-construction include capitalMarks include : CyrTseShape CAP -create-glyph 'cyrtse' : glyph-construction - assign-unicode 0x446 +create-glyph 'cyrtse.upright' : glyph-construction include eMarks include : CyrTseShape XH +create-glyph 'cyrtse.italic' : glyph-construction + include eMarks + include glyphs.u + include : VBarRight [mix SB RIGHTSB 1.05] (HALFSTROKE - LONGJUT) STROKE +italic-variant 'cyrtse' 0x446 define [CyrCheShape top _barp] : glyph-construction local bar : top * [fallback _barp 0.4] @@ -359,10 +363,11 @@ create-glyph 'cyrSha' : glyph-construction include capitalMarks include : CyrShaShape CAP -create-glyph 'cyrsha' : glyph-construction - assign-unicode 0x448 +create-glyph 'cyrsha.upright' : glyph-construction include eMarks include : CyrShaShape XH +turned 'cyrsha.italic' null 'm' MIDDLE (XH / 2) +italic-variant 'cyrsha' 0x448 define [CyrShchaShape top] : glyph-construction include : CyrShaShape top @@ -373,10 +378,14 @@ create-glyph 'cyrShcha' : glyph-construction include capitalMarks include : CyrShchaShape CAP -create-glyph 'cyrshcha' : glyph-construction - assign-unicode 0x449 +create-glyph 'cyrshcha.upright' : glyph-construction include eMarks include : CyrShchaShape XH +create-glyph 'cyrshcha.italic' : glyph-construction + include eMarks + include glyphs.'cyrsha.italic' + 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 diff --git a/glyphs/cyrillic-extended.patel b/glyphs/cyrillic-extended.patel index 42747ef..c325dc5 100644 --- a/glyphs/cyrillic-extended.patel +++ b/glyphs/cyrillic-extended.patel @@ -127,4 +127,8 @@ alias 'cyrschwa' 0x4D9 'schwa' alias 'cyrEzh' 0x4E0 'Ezh' alias 'cyrezh' 0x4E1 'ezh' alias 'cyrizhitsa' 0x475 'vhooktop' -alias 'cyrUe' 0x4AE 'Y' \ No newline at end of file +alias 'cyrUe' 0x4AE 'Y' +alias 'cyrQa' 0x51A 'Q' +alias 'cyrqa' 0x51B 'q' +alias 'cyrWe' 0x51C 'W' +alias 'cyrwe' 0x51D 'w' \ No newline at end of file diff --git a/glyphs/latin-basic-lower.patel b/glyphs/latin-basic-lower.patel index f35d45a..d2149c2 100644 --- a/glyphs/latin-basic-lower.patel +++ b/glyphs/latin-basic-lower.patel @@ -300,7 +300,6 @@ create-glyph 'm' : glyph-construction set-width WIDTH assign-unicode 'm' include eMarks - include : SmallMShape XH 0 diff --git a/glyphs/latin-extend-basis.patel b/glyphs/latin-extend-basis.patel index 343ea9b..7bdaf8e 100644 --- a/glyphs/latin-extend-basis.patel +++ b/glyphs/latin-extend-basis.patel @@ -184,7 +184,7 @@ create-glyph 'Eth' : glyph-construction include glyphs.D AS_BASE include : HOverlayBar (SB * 0.3) [mix (SB + STROKE) (RIGHTSB - STROKE) 0.55] (CAP * BARPOS) -alias 'DCroat' 0x110 'Eth' +alias 'Dcroat' 0x110 'Eth' alias 'arficanD' 0x189 'Eth' create-glyph 'eth' : glyph-construction