diff --git a/changes/11.2.8.md b/changes/11.2.8.md new file mode 100644 index 000000000..58bd540ab --- /dev/null +++ b/changes/11.2.8.md @@ -0,0 +1,5 @@ + * Add Characters + - REVERSED SEMICOLON (`U+204F`); + - REVERSED QUESTION MARK (`U+2E2E`); + - REVERSED COMMA (`U+2E41`); + - DOUBLE LOW-REVERSED-9 QUOTATION MARK (`U+2E42`); \ No newline at end of file diff --git a/font-src/glyphs/marks/above.ptl b/font-src/glyphs/marks/above.ptl index d6e11bcf2..c182f8911 100644 --- a/font-src/glyphs/marks/above.ptl +++ b/font-src/glyphs/marks/above.ptl @@ -33,14 +33,12 @@ glyph-block Mark-Above : begin ### Above marks create-glyph 'dotAbove' 0x307 : glyph-proc set-width 0 - currentGlyph.shortName = 'dot' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid include : DotAt markMiddle aboveMarkMid DotRadius create-glyph 'dieresisAbove' 0x308 : glyph-proc set-width 0 - currentGlyph.shortName = 'dieresis' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid include : DotAt (markMiddle - markExtend) aboveMarkMid markDotsRadius @@ -53,7 +51,6 @@ glyph-block Mark-Above : begin create-glyph 'ringAbove' 0x30A : glyph-proc set-width 0 - currentGlyph.shortName = 'ring' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid local [object radiusIn radiusOut] : RingDims @@ -72,7 +69,6 @@ glyph-block Mark-Above : begin create-glyph 'graveAbove' 0x300 : glyph-proc set-width 0 - currentGlyph.shortName = 'grave' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -89,7 +85,6 @@ glyph-block Mark-Above : begin create-glyph 'acuteAbove' 0x301 : glyph-proc set-width 0 - currentGlyph.shortName = 'acute' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -106,7 +101,6 @@ glyph-block Mark-Above : begin create-glyph 'circumflexAbove' 0x302 : glyph-proc set-width 0 - currentGlyph.shortName = 'circum' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -153,7 +147,6 @@ glyph-block Mark-Above : begin create-glyph 'caronAbove' 0x30c : glyph-proc set-width 0 - currentGlyph.shortName = 'caron' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -222,7 +215,6 @@ glyph-block Mark-Above : begin create-glyph 'tildeAbove' 0x303 : glyph-proc set-width 0 - currentGlyph.shortName = 'tilde' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -235,7 +227,6 @@ glyph-block Mark-Above : begin create-glyph 'tildeAboveOverlay' : glyph-proc set-width 0 - currentGlyph.shortName = 'tilde' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -351,7 +342,6 @@ glyph-block Mark-Above : begin create-glyph 'macronAbove' 0x304 : glyph-proc set-width 0 - currentGlyph.shortName = 'macron' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -364,7 +354,6 @@ glyph-block Mark-Above : begin create-glyph 'sbOverlineAbove' : glyph-proc set-width 0 - currentGlyph.shortName = 'overline' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -374,7 +363,6 @@ glyph-block Mark-Above : begin create-glyph 'overlineAbove' 0x305 : glyph-proc set-width 0 - currentGlyph.shortName = 'overline' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -384,7 +372,6 @@ glyph-block Mark-Above : begin create-glyph 'sbRsbOverlineAbove' : glyph-proc set-width 0 - currentGlyph.shortName = 'overline' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -411,7 +398,6 @@ glyph-block Mark-Above : begin create-glyph 'breveAbove' 0x306 : glyph-proc set-width 0 - currentGlyph.shortName = 'breve' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -427,7 +413,6 @@ glyph-block Mark-Above : begin create-glyph 'archAbove' 0x311 : glyph-proc set-width 0 - currentGlyph.shortName = 'arch' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -443,7 +428,6 @@ glyph-block Mark-Above : begin create-glyph 'hookAbove' 0x309 : glyph-proc set-width 0 - currentGlyph.shortName = 'hook' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -463,7 +447,6 @@ glyph-block Mark-Above : begin create-glyph 'doubleGraveAbove' 0x30F : glyph-proc set-width 0 - currentGlyph.shortName = 'dblgrave' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -478,7 +461,6 @@ glyph-block Mark-Above : begin create-glyph 'doubleAcuteAbove' 0x30B : glyph-proc set-width 0 - currentGlyph.shortName = 'dblacute' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -493,7 +475,6 @@ glyph-block Mark-Above : begin create-glyph 'commaAbove' 0x313 : glyph-proc set-width 0 - currentGlyph.shortName = 'comma' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -513,7 +494,6 @@ glyph-block Mark-Above : begin create-glyph 'turnCommaAbove' 0x312 : glyph-proc set-width 0 - currentGlyph.shortName = 'turnComma' include : refer-glyph "commaAbove" include : FlipAround markMiddle ([mix aboveMarkTop (aboveMarkBot - commaAboveRadius) 0.5] + (DotRadius * 0.3) + commaOvershoot / 2) set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack @@ -521,7 +501,6 @@ glyph-block Mark-Above : begin create-glyph 'revCommaAbove' 0x314 : glyph-proc set-width 0 - currentGlyph.shortName = 'revComma' set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -631,7 +610,6 @@ glyph-block Mark-Above : begin create-glyph 'perispomeniAbove' 0x342 : glyph-proc set-width 0 - currentGlyph.shortName = 'perisp' include : refer-glyph "archAbove" set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBrace' markMiddle aboveMarkMid diff --git a/font-src/glyphs/marks/below.ptl b/font-src/glyphs/marks/below.ptl index 66da1603b..2565f1d2a 100644 --- a/font-src/glyphs/marks/below.ptl +++ b/font-src/glyphs/marks/below.ptl @@ -57,7 +57,6 @@ glyph-block Mark-Below : begin create-glyph 'iotaBelow' 0x345 : glyph-proc set-width 0 - set currentGlyph.shortName 'iota' set-mark-anchor 'below' markMiddle 0 markMiddle belowMarkStack set-base-anchor 'belowBrace' markMiddle belowMarkMid include : VBar markMiddle belowMarkBot belowMarkTop (markHalfStroke * 2) diff --git a/font-src/glyphs/symbol/punctuation/emotion.ptl b/font-src/glyphs/symbol/punctuation/emotion.ptl index 5ad053785..1a29ebea3 100644 --- a/font-src/glyphs/symbol/punctuation/emotion.ptl +++ b/font-src/glyphs/symbol/punctuation/emotion.ptl @@ -10,112 +10,156 @@ glyph-block Symbol-Punctuation-Emotion : begin glyph-block-import Common-Derivatives glyph-block-import Shared-Symbol-Shapes : DotVariants - local questionBottom : Math.max (CAP * 0.3) (DotSize * 1.5) - local [questionYConnectT top questionBottom] : mix questionBottom (top - HalfStroke) 0.375 + local emotionBottom : Math.max (CAP * 0.3) (DotSize * 1.5) - foreach { suffix { DrawAt kdr overshoot } } [Object.entries DotVariants] : do - local dr : DotRadius * kdr - create-glyph "exclam.\(suffix)" : glyph-proc - local df : DivFrame para.diversityF - set-width df.width - include : MarkSet.capital - include : VBar df.middle [clamp 0 (CAP * 0.4) (questionBottom * 1.18)] CAP - include : DrawAt df.middle dr (dr - overshoot) + do "Exclamation" + foreach { suffix { DrawAt kdr overshoot } } [Object.entries DotVariants] : do + local dr : DotRadius * kdr + create-glyph "exclam.\(suffix)" : glyph-proc + local df : DivFrame para.diversityF + set-width df.width + include : MarkSet.capital + include : VBar df.middle [clamp 0 (CAP * 0.4) (emotionBottom * 1.18)] CAP + include : DrawAt df.middle dr (dr - overshoot) - create-glyph "question/dotPart.\(suffix)" : glyph-proc - set-width 0 - include : DrawAt (Middle - Width) dr (dr - overshoot) - set-mark-anchor 'cvDecompose' (0 - Width) 0 + create-glyph "question/dotPart.\(suffix)" : glyph-proc + set-width 0 + include : DrawAt (Middle - Width) dr (dr - overshoot) + set-mark-anchor 'cvDecompose' (0 - Width) 0 - create-glyph "questionDown/dotPart.\(suffix)" : glyph-proc - set-width 0 - include : DrawAt (Middle - Width) (XH - dr) (dr - overshoot) - set-mark-anchor 'cvDecompose' (0 - Width) 0 + create-glyph "questionDown/dotPart.\(suffix)" : glyph-proc + set-width 0 + include : DrawAt (Middle - Width) (XH - dr) (dr - overshoot) + set-mark-anchor 'cvDecompose' (0 - Width) 0 - select-variant 'exclam' '!' (follow -- 'punctuationDot') - select-variant 'question/dotPart' (follow -- 'punctuationDot') - select-variant 'questionDown/dotPart' (follow -- 'punctuationDot') + select-variant 'exclam' '!' (follow -- 'punctuationDot') + select-variant 'question/dotPart' (follow -- 'punctuationDot') + select-variant 'questionDown/dotPart' (follow -- 'punctuationDot') - alias 'alveolarclick' 0x1C3 'exclam' - turned 'exclamDown' 0xA1 'exclam' [DivFrame para.diversityF].middle (XH / 2) + alias 'alveolarclick' 0x1C3 'exclam' + turned 'exclamDown' 0xA1 'exclam' [DivFrame para.diversityF].middle (XH / 2) - define [QuestionSmoothShape top questionBottom left right] : glyph-proc - define strokeEndCor : Math.hypot 1 TanSlope - include : dispiro - widths.rhs - g4 left (top - Hook) - hookstart (top - O) - g4 right (top - SmoothB * 0.9) - alsoThru.g2 0.5 0.45 [widths.center EssQuestion] - straight.down.end ([mix left right 0.5] - HalfStroke * HVContrast * strokeEndCor) questionBottom [widths.heading (Stroke * strokeEndCor) 0 Downward] + do "Question" + local [YConnectT top emotionBottom] : mix emotionBottom (top - HalfStroke) 0.375 - define [QuestionCornerShape top questionBottom left right] : glyph-proc - local questionYConnect : questionYConnectT top questionBottom - include : dispiro - widths.rhs - g4 left (top - Hook) - hookstart (top - O) - g4 (right - OX) [YSmoothMidR top (questionYConnect - Stroke) SmoothA SmoothB] - arcvh - straight.left.end [mix left right 0.5] (questionYConnect - Stroke) [heading Leftward] - include : VBar [mix left right 0.5] questionBottom questionYConnect + define [SmoothShape top emotionBottom left right] : glyph-proc + define strokeEndCor : Math.hypot 1 TanSlope + include : dispiro + widths.rhs + g4 left (top - Hook) + hookstart (top - O) + g4 right (top - SmoothB * 0.9) + alsoThru.g2 0.5 0.45 [widths.center EssQuestion] + straight.down.end ([mix left right 0.5] - HalfStroke * HVContrast * strokeEndCor) emotionBottom [widths.lhs.heading (Stroke * strokeEndCor) Downward] - define [QuestionCornerFlatShape top questionBottom left right] : glyph-proc - local questionYConnect : questionYConnectT top questionBottom - local depth : Math.max (Stroke * 1.5) ((right - left) * 0.5) - include : dispiro - widths.rhs - flat [mix left right 0.125] top [heading Rightward] - curl (right - depth - CorrectionOMidS) top - archv - g4 (right - OX) [YSmoothMidR top (questionYConnect - Stroke) SmoothA SmoothB] - arcvh - straight.left.end [mix left right 0.5] (questionYConnect - Stroke) [heading Leftward] - include : VBar [mix left right 0.5] questionBottom questionYConnect + define [RevSmoothShape top emotionBottom left right] : glyph-proc + define strokeEndCor : Math.hypot 1 TanSlope + include : dispiro + widths.lhs + g4 right (top - Hook) + hookstart (top - O) + g4 left (top - SmoothA * 0.9) + alsoThru.g2 0.5 0.45 [widths.center EssQuestion] + straight.down.end ([mix left right 0.5] + HalfStroke * HVContrast * strokeEndCor) emotionBottom [widths.rhs.heading (Stroke * strokeEndCor) Downward] - define QuestionConfig : object - smooth { QuestionSmoothShape } - corner { QuestionCornerShape } - cornerFlatHooked { QuestionCornerFlatShape } + define [CornerShape top emotionBottom left right] : glyph-proc + local questionYConnect : YConnectT top emotionBottom + include : dispiro + widths.rhs + g4 left (top - Hook) + hookstart (top - O) + g4 (right - OX) [YSmoothMidR top (questionYConnect - Stroke) SmoothA SmoothB] + arcvh + straight.left.end [mix left right 0.5] (questionYConnect - Stroke) [heading Leftward] + include : VBar [mix left right 0.5] emotionBottom questionYConnect - foreach { suffix { Body } } [Object.entries QuestionConfig] : do - create-glyph "question/hookPart.\(suffix)" : glyph-proc - include : Body CAP questionBottom SB RightSB - set-base-anchor 'cvDecompose' 0 0 + define [RevCornerShape top emotionBottom left right] : glyph-proc + local questionYConnect : YConnectT top emotionBottom + include : dispiro + widths.lhs + g4 right (top - Hook) + hookstart (top - O) + g4 (left + OX) [YSmoothMidL top (questionYConnect - Stroke) SmoothA SmoothB] + arcvh + straight.right.end [mix left right 0.5] (questionYConnect - Stroke) [heading Rightward] + include : VBar [mix left right 0.5] emotionBottom questionYConnect - create-glyph "questionDown/hookPart.\(suffix)" : glyph-proc - include : Body CAP questionBottom SB RightSB - include : FlipAround Middle (XH / 2) - set-base-anchor 'cvDecompose' 0 0 + define [CornerFlatShape top emotionBottom left right] : glyph-proc + local questionYConnect : YConnectT top emotionBottom + local depth : Math.max (Stroke * 1.5) ((right - left) * 0.5) + include : dispiro + widths.rhs + flat [mix left right 0.125] top [heading Rightward] + curl (right - depth - CorrectionOMidS) top + archv + g4 (right - OX) [YSmoothMidR top (questionYConnect - Stroke) SmoothA SmoothB] + arcvh + straight.left.end [mix left right 0.5] (questionYConnect - Stroke) [heading Leftward] + include : VBar [mix left right 0.5] emotionBottom questionYConnect - define [InterroBangBodyImpl] : glyph-proc - local angle : 12 / 180 * Math.PI - include : Body CAP questionBottom [mix Middle SB 0.75] RightSB - include : Translate (-Middle) (-DotRadius) - include : Rotate (-2 * angle) - include : Translate Middle DotRadius - include : VBar Middle questionBottom CAP - include : Translate (-Middle) (-DotRadius) - include : Rotate (1.2 * angle) - include : Translate Middle DotRadius + define [RevCornerFlatShape top emotionBottom left right] : glyph-proc + local questionYConnect : YConnectT top emotionBottom + local depth : Math.max (Stroke * 1.5) ((right - left) * 0.5) + include : dispiro + widths.lhs + flat [mix right left 0.125] top [heading Leftward] + curl (left + depth + CorrectionOMidS) top + archv + g4 (left + OX) [YSmoothMidL top (questionYConnect - Stroke) SmoothA SmoothB] + arcvh + straight.right.end [mix left right 0.5] (questionYConnect - Stroke) [heading Rightward] + include : VBar [mix left right 0.5] emotionBottom questionYConnect - create-glyph "interrobang/bodyPart.\(suffix)" : glyph-proc - include : InterroBangBodyImpl - set-base-anchor 'cvDecompose' 0 0 + define Config : object + smooth { SmoothShape RevSmoothShape } + corner { CornerShape RevCornerShape } + cornerFlatHooked { CornerFlatShape RevCornerFlatShape } - create-glyph "interrobangDown/bodyPart.\(suffix)" : glyph-proc - include : InterroBangBodyImpl - include : FlipAround Middle (XH / 2) - set-base-anchor 'cvDecompose' 0 0 + foreach { suffix { Body RevBody } } [Object.entries Config] : do + create-glyph "question/hookPart.\(suffix)" : glyph-proc + include : Body CAP emotionBottom SB RightSB + set-base-anchor 'cvDecompose' 0 0 - select-variant 'question/hookPart' (follow -- 'question') - create-two-part-glyph 'question' '?' 'question/hookPart' 'question/dotPart' + create-glyph "questionDown/hookPart.\(suffix)" : glyph-proc + include : Body CAP emotionBottom SB RightSB + include : FlipAround Middle (XH / 2) + set-base-anchor 'cvDecompose' 0 0 - select-variant 'questionDown/hookPart' (follow -- 'question') - create-two-part-glyph 'questionDown' 0xBF 'questionDown/hookPart' 'questionDown/dotPart' + create-glyph "revQuestion/hookPart.\(suffix)" : glyph-proc + include : RevBody CAP emotionBottom SB RightSB + set-base-anchor 'cvDecompose' 0 0 - select-variant 'interrobang/bodyPart' (follow -- 'question') - create-two-part-glyph 'interrobang' 0x203D 'interrobang/bodyPart' 'question/dotPart' + define [InterroBangBodyImpl] : glyph-proc + local angle : 12 / 180 * Math.PI + include : Body CAP emotionBottom [mix Middle SB 0.75] RightSB + include : Translate (-Middle) (-DotRadius) + include : Rotate (-2 * angle) + include : Translate Middle DotRadius + include : VBar Middle emotionBottom CAP + include : Translate (-Middle) (-DotRadius) + include : Rotate (1.2 * angle) + include : Translate Middle DotRadius - select-variant 'interrobangDown/bodyPart' (follow -- 'question') - create-two-part-glyph 'gnaborretni' 0x2E18 'interrobangDown/bodyPart' 'questionDown/dotPart' + create-glyph "interrobang/bodyPart.\(suffix)" : glyph-proc + include : InterroBangBodyImpl + set-base-anchor 'cvDecompose' 0 0 + + create-glyph "interrobangDown/bodyPart.\(suffix)" : glyph-proc + include : InterroBangBodyImpl + include : FlipAround Middle (XH / 2) + set-base-anchor 'cvDecompose' 0 0 + + select-variant 'question/hookPart' (follow -- 'question') + create-two-part-glyph 'question' '?' 'question/hookPart' 'question/dotPart' + + select-variant 'questionDown/hookPart' (follow -- 'question') + create-two-part-glyph 'questionDown' 0xBF 'questionDown/hookPart' 'questionDown/dotPart' + + select-variant 'revQuestion/hookPart' (follow -- 'question') + create-two-part-glyph 'revQuestion' 0x2E2E 'revQuestion/hookPart' 'question/dotPart' + + select-variant 'interrobang/bodyPart' (follow -- 'question') + create-two-part-glyph 'interrobang' 0x203D 'interrobang/bodyPart' 'question/dotPart' + + select-variant 'interrobangDown/bodyPart' (follow -- 'question') + create-two-part-glyph 'gnaborretni' 0x2E18 'interrobangDown/bodyPart' 'questionDown/dotPart' diff --git a/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl b/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl index e3ffbd616..dde6b926c 100644 --- a/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl +++ b/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl @@ -23,6 +23,12 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin include : refer-glyph src include : FlipAround df.middle 0 ratio ratio + derive-glyphs 'revLowSingleQuote' null 'revComma' : function [src sel] : glyph-proc + local df : DivFrame para.diversityF + set-width df.width + include : refer-glyph src + include : FlipAround df.middle 0 ratio ratio + derive-glyphs 'openSingleQuote' 0x2018 'lowSingleQuote' : function [src sel] : glyph-proc local df : DivFrame para.diversityF set-width df.width @@ -35,7 +41,7 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin include : refer-glyph src include : FlipAround df.middle yCurlyQuotes - derive-glyphs 'revertSingleQuote' 0x201B 'invertComma' : function [src sel] : glyph-proc + derive-glyphs 'revSingleQuote' 0x201B 'revComma' : function [src sel] : glyph-proc local df : DivFrame para.diversityF set-width df.width include : refer-glyph src @@ -51,18 +57,15 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin include : refer-glyph gn include : Translate (dist + Middle - dfSingle.middle) 0 - derive-glyphs 'lowDoubleQuote' 0x201E 'lowSingleQuote' - function [src sel] : DoubleQuoteProc src - derive-glyphs 'openDoubleQuote' 0x201C 'openSingleQuote' - function [src sel] : DoubleQuoteProc src - derive-glyphs 'closeDoubleQuote' 0x201D 'closeSingleQuote' - function [src sel] : DoubleQuoteProc src - derive-glyphs 'revertDoubleQuote' 0x201F 'revertSingleQuote' - function [src sel] : DoubleQuoteProc src + derive-glyphs 'lowDoubleQuote' 0x201E 'lowSingleQuote' DoubleQuoteProc + derive-glyphs 'openDoubleQuote' 0x201C 'openSingleQuote' DoubleQuoteProc + derive-glyphs 'closeDoubleQuote' 0x201D 'closeSingleQuote' DoubleQuoteProc + derive-glyphs 'revDoubleQuote' 0x201F 'revSingleQuote' DoubleQuoteProc + derive-glyphs 'revLowDoubleQuote' 0x2E42 'revLowSingleQuote' DoubleQuoteProc alias 'mdfTurncomma' 0x2BB 'openSingleQuote' alias 'mdfApostrophe' 0x2BC 'closeSingleQuote' - alias 'mdfRevComma' 0x2BD 'revertSingleQuote' + alias 'mdfRevComma' 0x2BD 'revSingleQuote' # Primes create-glyph 'prime' 0x2032 : glyph-proc @@ -154,7 +157,7 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin g4 df.middle quoteBottom [widths.heading (HalfStroke * 0.95) (HalfStroke * 0.95) Downward] alias 'asciiSingleQuote.raisedComma' null 'closeSingleQuote' - alias 'asciiGrave.raisedInverseComma' null 'revertSingleQuote' + alias 'asciiGrave.raisedInverseComma' null 'revSingleQuote' alias 'asciiGrave.raisedTurnComma' null 'openSingleQuote' select-variant 'asciiSingleQuote' 0x27 diff --git a/font-src/glyphs/symbol/punctuation/small.ptl b/font-src/glyphs/symbol/punctuation/small.ptl index 19e2a25a8..093ce2e41 100644 --- a/font-src/glyphs/symbol/punctuation/small.ptl +++ b/font-src/glyphs/symbol/punctuation/small.ptl @@ -80,7 +80,7 @@ glyph-block Symbol-Punctuation-Small : begin g4 (-commaOverflow + Descender * TanSlope) Descender [widths.rhs swEnd] - create-glyph 'invertComma.round' : glyph-proc + create-glyph 'revComma.round' : glyph-proc local df : DivFrame para.diversityF set-width df.width include : CommaShapeT df.middle 0 : glyph-proc @@ -114,7 +114,7 @@ glyph-block Symbol-Punctuation-Small : begin quadControls (0 - TanSlope / 2) (0.5 - TanSlope * r / Descender) 12 g4 (commaOverflow + Descender * TanSlope) Descender [widths.lhs swEnd] - create-glyph 'invertComma.square' : glyph-proc + create-glyph 'revComma.square' : glyph-proc local df : DivFrame para.diversityF set-width df.width include : WithTransform [Translate df.middle 0] : glyph-proc @@ -131,7 +131,7 @@ glyph-block Symbol-Punctuation-Small : begin g4 (commaOverflow + Descender * TanSlope) Descender [widths.lhs swEnd] select-variant 'comma' ',' (follow -- 'punctuationDot') - select-variant 'invertComma' (follow -- 'punctuationDot') + select-variant 'revComma' 0x2E41 (follow -- 'punctuationDot') foreach { suffix { DrawAt kDotRadius overshoot } } [Object.entries DotVariants] : do create-glyph "colon.\(suffix)" : glyph-proc @@ -153,10 +153,15 @@ glyph-block Symbol-Punctuation-Small : begin include [refer-glyph "comma.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "xhPeriod.\(suffix)"] + create-glyph "invertSemicolon.\(suffix)" : glyph-proc + include [refer-glyph "revComma.\(suffix)"] AS_BASE ALSO_METRICS + include [refer-glyph "xhPeriod.\(suffix)"] + select-variant 'colon' ':' (follow -- 'punctuationDot') select-variant 'colon/mid' (follow -- 'punctuationDot') select-variant 'modifierLetterColon' 0xA789 (follow -- 'punctuationDot') select-variant 'semicolon' ';' (follow -- 'punctuationDot') + select-variant 'invertSemicolon' 0x204F (follow -- 'punctuationDot') alias 'greekquestion' 0x37E 'semicolon' # Hollow (no CV) diff --git a/font-src/support/glyph/index.js b/font-src/support/glyph/index.js index b4dcae09b..571dc1942 100644 --- a/font-src/support/glyph/index.js +++ b/font-src/support/glyph/index.js @@ -94,7 +94,6 @@ exports.Glyph = class Glyph { this.cloneRankFromGlyph(g); } cloneRelationFromGlyph(g) { - this.shortName = g.shortName; this.related = g.related; } cloneRankFromGlyph(g) {