Add variant selection for Guillemets (#1899).
This commit is contained in:
parent
fdcde32d71
commit
02e8fe60ca
4 changed files with 77 additions and 18 deletions
|
@ -12,6 +12,7 @@
|
|||
* Make below marks to avoid bottom-right Ogoneks (#1789).
|
||||
* Use oval shape for Empty Set symbols to distinguish with O-Slash (#1822).
|
||||
* Implement leaning mark mechanism for `F`, `L`, `P`, `b`, `d`, `h`, `k`, `p`, `q`, `r` to get better mark placement. Now, "narrow" marks will align to these letters' extension parts (#1851).
|
||||
* Add variant selection for Guillemets (#1899).
|
||||
* Fix detached cedilla in Hookless asymmetric LATIN SMALL LETTER T WITH CEDILLA (`U+0163`) (#1914).
|
||||
* Fix broken hookless/tailless/asymmetric `t` variants in `ſt` ligature (`U+FB05`) (#1915).
|
||||
* Remove unnecessary tailed variants for Cyrillic Shha with Descender (`U+0527`) (#1916).
|
||||
|
|
|
@ -9,32 +9,54 @@ glyph-block Symbol-Punctuation-Guillemet : begin
|
|||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
|
||||
create-glyph 'singleGuillemetLeft' 0x2039 : glyph-proc
|
||||
create-glyph 'singleGuillemetLeft.straight' : glyph-proc
|
||||
local top : mix SymbolMid ParenTop 0.5
|
||||
local bot : mix SymbolMid ParenBot 0.5
|
||||
local mid : mix bot top 0.5
|
||||
local extension 0.55
|
||||
local cor 1
|
||||
|
||||
local sw : AdviceStroke 3.5
|
||||
local sw : AdviceStroke 3
|
||||
local fine : AdviceStroke 4
|
||||
|
||||
include : dispiro
|
||||
widths.center sw
|
||||
g4 [mix Middle RightSB extension] top
|
||||
quadControls 0.4 0.75
|
||||
g4 [mix Middle SB extension] [mix top bot 0.5] [widths.center.heading (cor * sw) Leftward]
|
||||
include : intersection [MaskAbove mid] : dispiro
|
||||
flat [mix Middle SB extension] mid [widths.rhs sw]
|
||||
curl [mix Middle RightSB extension] top [widths.center fine]
|
||||
|
||||
include : dispiro
|
||||
widths.center (sw * cor)
|
||||
g4 [mix Middle SB extension] [mix top bot 0.5] [heading Rightward]
|
||||
quadControls (1 - 0.4) (1 - 0.75)
|
||||
g4 [mix Middle RightSB extension] bot [widths.center sw]
|
||||
include : intersection [MaskBelow mid] : dispiro
|
||||
flat [mix Middle SB extension] mid [widths.lhs sw]
|
||||
curl [mix Middle RightSB extension] bot [widths.center fine]
|
||||
|
||||
include : Translate (-(RightSB - SB) * 0.05) 0
|
||||
|
||||
create-glyph 'guillemetLeft' 0xAB : glyph-proc
|
||||
include : refer-glyph "singleGuillemetLeft"
|
||||
create-glyph 'singleGuillemetLeft.curly' : glyph-proc
|
||||
local top : mix SymbolMid ParenTop 0.5
|
||||
local bot : mix SymbolMid ParenBot 0.5
|
||||
local mid : mix bot top 0.5
|
||||
local extension 0.55
|
||||
|
||||
local sw : AdviceStroke 3
|
||||
local fine : AdviceStroke 4
|
||||
|
||||
include : intersection [MaskAbove mid] : dispiro
|
||||
g4 [mix Middle SB extension] (mid + sw * 0.25) [widths.rhs sw]
|
||||
quadControls 0.6 0.3
|
||||
g4 [mix Middle RightSB extension] top [widths.center fine]
|
||||
|
||||
include : intersection [MaskBelow mid] : dispiro
|
||||
g4 [mix Middle SB extension] (mid - sw * 0.25) [widths.lhs sw]
|
||||
quadControls 0.6 0.3
|
||||
g4 [mix Middle RightSB extension] bot [widths.center fine]
|
||||
|
||||
include : VBar.l [mix Middle SB extension] (mid - sw * 0.25) (mid + sw * 0.25) sw
|
||||
|
||||
include : Translate (-(RightSB - SB) * 0.05) 0
|
||||
|
||||
select-variant 'singleGuillemetLeft' 0x2039 (follow -- 'guillemet')
|
||||
|
||||
derive-glyphs 'guillemetLeft' 0xAB 'singleGuillemetLeft' : function [src sel] : glyph-proc
|
||||
include : refer-glyph src
|
||||
include : Translate ((RightSB - SB) * 0.5) 0
|
||||
include : refer-glyph "singleGuillemetLeft"
|
||||
include : refer-glyph src
|
||||
include : Translate (-(RightSB - SB) * 0.25) 0
|
||||
|
||||
turned 'singleGuillemetRight' 0x203A "singleGuillemetLeft" Middle SymbolMid
|
||||
|
|
|
@ -6569,6 +6569,24 @@ selectorAffix."micro" = "serifed"
|
|||
|
||||
|
||||
|
||||
[prime.guillemet]
|
||||
sampler = "« »"
|
||||
samplerExplain = "Guillemets"
|
||||
nonBreakingTagForNewVariantSelector = "VXAC" # REMOVE IN NEXT MAJOR VERSION CHANGE
|
||||
tagKind = "symbol"
|
||||
|
||||
[prime.guillemet.variants.straight]
|
||||
rank = 1
|
||||
description = "Straight Guillemets (`« »`)"
|
||||
selector."guillemet" = "straight"
|
||||
|
||||
[prime.guillemet.variants.curly]
|
||||
rank = 2
|
||||
description = "Curly Guillemets (`« »`)"
|
||||
selector."guillemet" = "curly"
|
||||
|
||||
|
||||
|
||||
[prime.lig-ltgteq]
|
||||
sampler = "<= >="
|
||||
samplerExplain = "Less-equal and Greater-equal ligations"
|
||||
|
@ -6845,6 +6863,7 @@ diacritic-dot = "round"
|
|||
partial-derivative = "curly-bar"
|
||||
lower-eth = "curly-bar"
|
||||
micro-sign = "toothed-serifless"
|
||||
guillemet = "curly"
|
||||
lig-neq = "slightly-slanted"
|
||||
lig-equal-chain = "with-notch"
|
||||
lig-hyphen-chain = "with-notch"
|
||||
|
@ -6944,6 +6963,7 @@ cyrl-capital-u = "straight-turn-serifed"
|
|||
cyrl-capital-ya = "straight-serifed"
|
||||
cyrl-ya = "straight-serifed"
|
||||
micro-sign = "toothed-serifed"
|
||||
guillemet = "straight"
|
||||
|
||||
[composite.slab.upright-oblique]
|
||||
d = "toothed-serifed"
|
||||
|
@ -7035,6 +7055,7 @@ number-sign = "slanted"
|
|||
at = "fourfold"
|
||||
percent = "rings-continuous-slash"
|
||||
lower-eth = "straight-bar"
|
||||
guillemet = "straight"
|
||||
|
||||
[composite.ss01.slab-override.design]
|
||||
capital-d = "more-rounded-bilateral-serifed"
|
||||
|
@ -7115,6 +7136,7 @@ partial-derivative = "straight-bar"
|
|||
lower-eth = "straight-bar"
|
||||
punctuation-dot = "square"
|
||||
diacritic-dot = "square"
|
||||
guillemet = "straight"
|
||||
|
||||
[composite.ss02.slab-override.design]
|
||||
capital-j = "serifed"
|
||||
|
@ -7177,6 +7199,7 @@ at = "fourfold"
|
|||
question = "corner-flat-hooked"
|
||||
lower-eth = "straight-bar"
|
||||
micro-sign = "tailed-serifless"
|
||||
guillemet = "straight"
|
||||
|
||||
[composite.ss03.italic]
|
||||
a = "single-storey-serifless"
|
||||
|
@ -7267,6 +7290,7 @@ lower-eth = "straight-bar"
|
|||
micro-sign = "tailed-serifless"
|
||||
punctuation-dot = "square"
|
||||
diacritic-dot = "square"
|
||||
guillemet = "straight"
|
||||
|
||||
[composite.ss04.slab-override.design]
|
||||
capital-d = "more-rounded-bilateral-serifed"
|
||||
|
@ -7334,6 +7358,7 @@ ampersand = "et-toothless-corner"
|
|||
at = "compact"
|
||||
cent = "open"
|
||||
percent = "rings-continuous-slash"
|
||||
guillemet = "straight"
|
||||
lig-ltgteq = "slanted"
|
||||
lig-equal-chain = "without-notch"
|
||||
|
||||
|
@ -7398,6 +7423,7 @@ percent = "rings-continuous-slash"
|
|||
bar = "force-upright"
|
||||
punctuation-dot = "square"
|
||||
diacritic-dot = "square"
|
||||
guillemet = "straight"
|
||||
|
||||
[composite.ss06.slab-override.design]
|
||||
capital-d = "more-rounded-bilateral-serifed"
|
||||
|
@ -7459,6 +7485,7 @@ pilcrow = "low"
|
|||
number-sign = "slanted"
|
||||
at = "fourfold"
|
||||
percent = "rings-continuous-slash"
|
||||
guillemet = "straight"
|
||||
|
||||
[composite.ss07.slab-override.design]
|
||||
capital-d = "more-rounded-bilateral-serifed"
|
||||
|
@ -7545,6 +7572,7 @@ dollar = "open"
|
|||
cent = "open"
|
||||
percent = "dots"
|
||||
paren = "large-contour"
|
||||
guillemet = "straight"
|
||||
lig-ltgteq = "slanted"
|
||||
lig-neq = "slightly-slanted-dotted"
|
||||
lig-equal-chain = "with-notch"
|
||||
|
@ -7640,6 +7668,7 @@ number-sign = "slanted"
|
|||
dollar = "open"
|
||||
bar = "force-upright"
|
||||
micro-sign = "tailed-serifless"
|
||||
guillemet = "straight"
|
||||
lig-neq = "more-slanted"
|
||||
|
||||
[composite.ss09.italic]
|
||||
|
@ -7703,6 +7732,7 @@ underscore = "low"
|
|||
pilcrow = "low"
|
||||
micro-sign = "toothless-rounded-serifless"
|
||||
percent = "rings-continuous-slash"
|
||||
guillemet = "straight"
|
||||
|
||||
[composite.ss10.italic]
|
||||
i = "serifed-flat-tailed"
|
||||
|
@ -7804,6 +7834,7 @@ dollar = "open"
|
|||
cent = "open"
|
||||
micro-sign = "toothless-corner-serifless"
|
||||
percent = "rings-continuous-slash"
|
||||
guillemet = "straight"
|
||||
|
||||
[composite.ss12.italic]
|
||||
a = "single-storey-earless-corner-tailed"
|
||||
|
@ -7956,6 +7987,7 @@ percent = "rings-continuous-slash"
|
|||
lower-eth = "straight-bar"
|
||||
lig-ltgteq = "slanted"
|
||||
question = "corner-flat-hooked"
|
||||
guillemet = "straight"
|
||||
lig-neq = "more-slanted"
|
||||
lig-equal-chain = "without-notch"
|
||||
|
||||
|
@ -8029,6 +8061,7 @@ number-sign = "slanted-open"
|
|||
ampersand = "upper-open"
|
||||
question = "corner"
|
||||
brace = "curly-flat-boundary"
|
||||
guillemet = "straight"
|
||||
|
||||
[composite.ss15.italic]
|
||||
a = "single-storey-serifless"
|
||||
|
@ -8128,6 +8161,7 @@ number-sign = "slanted"
|
|||
percent = "rings-continuous-slash"
|
||||
lower-eth = "straight-bar"
|
||||
micro-sign = "toothed-bottom-right-serifed"
|
||||
guillemet = "straight"
|
||||
|
||||
[composite.ss16.slab-override.design]
|
||||
capital-d = "more-rounded-bilateral-serifed"
|
||||
|
@ -8200,6 +8234,7 @@ micro-sign = "tailed-serifless"
|
|||
punctuation-dot = "square"
|
||||
diacritic-dot = "square"
|
||||
brace = "curly-flat-boundary"
|
||||
guillemet = "straight"
|
||||
|
||||
[composite.ss17.italic]
|
||||
a = "single-storey-tailed"
|
||||
|
@ -8280,6 +8315,7 @@ question = "corner"
|
|||
number-sign = "slanted"
|
||||
percent = "rings-continuous-slash"
|
||||
micro-sign = "tailed-serifless"
|
||||
guillemet = "straight"
|
||||
|
||||
[composite.ss18.italic]
|
||||
f = "extended-crossbar-at-x-height"
|
||||
|
|
|
@ -3,8 +3,8 @@ import * as themes from "../themes/index.mjs";
|
|||
// prettier-ignore
|
||||
const ssStrings = [
|
||||
["ABC.DEF.GHI.JKL.MNO.PQRS.TUV.WXYZ", "abc.def.ghi.jkl.mno.pqrs.tuv.wxyz"],
|
||||
["¢þſßðΓΛΔ αδιλμξ КУЗЯЖэльфязычникж", "float il1[]={1-2/3.4,5+6=7/8%90};"],
|
||||
["1234567890 ,._-+= >< ¯-¬_ >~–÷+×<", "{*}[]()<>`+-=$/#_%^@\\&|~?'\" !,.;:"],
|
||||
["¢þſßð ΓΛΔαδιλμξ КУЗЯЖэльфязычникж", "float il1[]={1-2/3.4,5+6=7/8%90};"],
|
||||
["1234567890 ,._-+= >« ¯-¬_ »~–÷+×<", "{*}[]()<>`+-=$/#_%^@\\&|~?'\" !,.;:"],
|
||||
["!iIlL17|¦ coO08BbDQ $5SZ2zsz 96G&", [..."dbqp E3 g9qCGQ vvwVVW ", "<=", " ", "!="," ","==", " ", ">="]]
|
||||
];
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue