k variants simplify
This commit is contained in:
parent
14b3e54b61
commit
09d80208a8
4 changed files with 342 additions and 781 deletions
|
@ -1,6 +1,8 @@
|
||||||
* \[**BREAKING**\] Add taller slash, broken slash and broken zero variants for Zero. As a result, current variants are reordered (#1307, #1509, #1678).
|
* \[**BREAKING**\] Add taller slash, broken slash and broken zero variants for Zero. As a result, current variants are reordered (#1307, #1509, #1678).
|
||||||
* \[**BREAKING**\] Add above-baseline crossed variant for Q. As a result, current variants are reordered (#1533).
|
* \[**BREAKING**\] Add above-baseline crossed variant for Q. As a result, current variants are reordered (#1533).
|
||||||
* \[**BREAKING**\] Rectify the variant atlas. As a result, if a character's variant list has motion-serifed, then it will have serifless and serifed variants: the serifed-ness will no longer be controlled by SLAB variable. The characters influenced are `M`, `N`, `P`, `R`, `U`, `V`, `W`, `b`, `h`, `m`, `n`, `p`, `q`, `u`, `v`, `w`, `y`.
|
* \[**BREAKING**\] Rectify the variant atlas. As a result, if a character's variant list has motion-serifed, then it will have serifless and serifed variants: the serifed-ness will no longer be controlled by SLAB variable. The characters influenced are `M`, `N`, `P`, `R`, `U`, `V`, `W`, `b`, `h`, `m`, `n`, `p`, `q`, `u`, `v`, `w`, `y`.
|
||||||
|
* \[**BREAKING**\] Reordered the variants of the following letters:
|
||||||
|
- `K`, `k`, Cyrillic Ka.
|
||||||
* Add Characters:
|
* Add Characters:
|
||||||
- CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN (`U+29BC`).
|
- CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN (`U+29BC`).
|
||||||
- CIRCLED WHITE BULLET (`U+29BE`).
|
- CIRCLED WHITE BULLET (`U+29BE`).
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
$$include '../../../meta/macros.ptl'
|
$$include '../../../meta/macros.ptl'
|
||||||
|
|
||||||
import [mix linreg clamp fallback] from"../../../support/utils.mjs"
|
import [mix clamp fallback SuffixCfg] from"../../../support/utils.mjs"
|
||||||
import [Dotless CvDecompose MathSansSerif] from"../../../support/gr.mjs"
|
import [Dotless CvDecompose MathSansSerif] from"../../../support/gr.mjs"
|
||||||
import [maskBit] from"../../../support/util/mask-bit.mjs"
|
import [maskBit] from"../../../support/util/mask-bit.mjs"
|
||||||
|
|
||||||
|
@ -319,56 +319,24 @@ glyph-block Letter-Latin-K : begin
|
||||||
define [CyrlVbLength top] : top * 0.375 + Stroke
|
define [CyrlVbLength top] : top * 0.375 + Stroke
|
||||||
define CyrlVbSw : AdviceStroke 3
|
define CyrlVbSw : AdviceStroke 3
|
||||||
|
|
||||||
define UpperKConfig : object
|
define UpperKConfig : SuffixCfg.weave
|
||||||
straightSerifless { KLegs.Straight 0 0 0 0 }
|
object # body
|
||||||
curlySerifless { KLegs.Curly 0 0 0 0 }
|
straight KLegs.Straight
|
||||||
symmetricTouchingSerifless { [KLegs.Symmetric 0] 0 0 0 0 }
|
curly KLegs.Curly
|
||||||
symmetricConnectedSerifless { [KLegs.Symmetric : AdviceStroke 6] 0 0 0 0 }
|
symmetricTouching [KLegs.Symmetric 0]
|
||||||
symmetricConnectedSeriflessKH { [KLegs.Symmetric [AdviceStroke 6] Descender] 0 0 0 0 }
|
symmetricConnected [KLegs.Symmetric : AdviceStroke 6]
|
||||||
symmetricConnectedSeriflessVB { [KLegs.Symmetric CyrlVbGap] 0 0 0 0 }
|
symmetricConnectedKH [KLegs.Symmetric [AdviceStroke 6] Descender]
|
||||||
|
symmetricConnectedVB [KLegs.Symmetric CyrlVbGap]
|
||||||
straightTopLeftSerifed { KLegs.Straight 2 0 0 0 }
|
object # serifs
|
||||||
curlyTopLeftSerifed { KLegs.Curly 2 0 0 0 }
|
serifless { 0 0 0 0 }
|
||||||
symmetricTouchingTopLeftSerifed { [KLegs.Symmetric 0] 2 0 0 0 }
|
topLeftSerifed { 2 0 0 0 }
|
||||||
symmetricConnectedTopLeftSerifed { [KLegs.Symmetric : AdviceStroke 6] 2 0 0 0 }
|
bottomRightSerifed { 0 0 1 0 }
|
||||||
symmetricConnectedTopLeftSerifedKH { [KLegs.Symmetric [AdviceStroke 6] Descender] 2 0 0 0 }
|
bottomRightSerifed2 { 0 0 0 1 }
|
||||||
symmetricConnectedTopLeftSerifedVB { [KLegs.Symmetric CyrlVbGap] 2 0 0 0 }
|
topLeftAndBottomRightSerifed { 2 0 1 0 }
|
||||||
|
topLeftAndBottomRightSerifed2 { 2 0 0 1 }
|
||||||
straightBottomRightSerifed { KLegs.Straight 0 0 1 0 }
|
serifed { 1 1 3 0 }
|
||||||
curlyBottomRightSerifed { KLegs.Curly 0 0 1 0 }
|
serifedKH { 1 1 2 0 }
|
||||||
symmetricTouchingBottomRightSerifed { [KLegs.Symmetric 0] 0 0 1 0 }
|
serifed2 { 1 1 2 1 }
|
||||||
symmetricConnectedBottomRightSerifed { [KLegs.Symmetric : AdviceStroke 6] 0 0 1 0 }
|
|
||||||
symmetricConnectedBottomRightSerifedKH { [KLegs.Symmetric [AdviceStroke 6] Descender] 0 0 1 0 }
|
|
||||||
symmetricConnectedBottomRightSerifedVB { [KLegs.Symmetric CyrlVbGap] 0 0 1 0 }
|
|
||||||
|
|
||||||
straightBottomRightSerifed2 { KLegs.Straight 0 0 0 1 }
|
|
||||||
curlyBottomRightSerifed2 { KLegs.Curly 0 0 0 1 }
|
|
||||||
symmetricTouchingBottomRightSerifed2 { [KLegs.Symmetric 0] 0 0 0 1 }
|
|
||||||
symmetricConnectedBottomRightSerifed2 { [KLegs.Symmetric : AdviceStroke 6] 0 0 0 1 }
|
|
||||||
|
|
||||||
straightTopLeftAndBottomRightSerifed { KLegs.Straight 2 0 1 0 }
|
|
||||||
curlyTopLeftAndBottomRightSerifed { KLegs.Curly 2 0 1 0 }
|
|
||||||
symmetricTouchingTopLeftAndBottomRightSerifed { [KLegs.Symmetric 0] 2 0 1 0 }
|
|
||||||
symmetricConnectedTopLeftAndBottomRightSerifed { [KLegs.Symmetric : AdviceStroke 6] 2 0 1 0 }
|
|
||||||
symmetricConnectedTopLeftAndBottomRightSerifedKH { [KLegs.Symmetric [AdviceStroke 6] Descender] 2 0 1 0 }
|
|
||||||
symmetricConnectedTopLeftAndBottomRightSerifedVB { [KLegs.Symmetric CyrlVbGap] 2 0 1 0 }
|
|
||||||
|
|
||||||
straightTopLeftAndBottomRightSerifed2 { KLegs.Straight 2 0 0 1 }
|
|
||||||
curlyTopLeftAndBottomRightSerifed2 { KLegs.Curly 2 0 0 1 }
|
|
||||||
symmetricTouchingTopLeftAndBottomRightSerifed2 { [KLegs.Symmetric 0] 2 0 0 1 }
|
|
||||||
symmetricConnectedTopLeftAndBottomRightSerifed2 { [KLegs.Symmetric : AdviceStroke 6] 2 0 0 1 }
|
|
||||||
|
|
||||||
straightSerifed { KLegs.Straight 1 1 3 0 }
|
|
||||||
curlySerifed { KLegs.Curly 1 1 3 0 }
|
|
||||||
symmetricTouchingSerifed { [KLegs.Symmetric 0] 1 1 3 0 }
|
|
||||||
symmetricConnectedSerifed { [KLegs.Symmetric : AdviceStroke 6] 1 1 3 0 }
|
|
||||||
symmetricConnectedSerifedKH { [KLegs.Symmetric [AdviceStroke 6] Descender] 1 1 2 0 }
|
|
||||||
symmetricConnectedSerifedVB { [KLegs.Symmetric CyrlVbGap] 1 1 3 0 }
|
|
||||||
|
|
||||||
straightSerifed2 { KLegs.Straight 1 1 2 1 }
|
|
||||||
curlySerifed2 { KLegs.Curly 1 1 2 1 }
|
|
||||||
symmetricTouchingSerifed2 { [KLegs.Symmetric 0] 1 1 2 1 }
|
|
||||||
symmetricConnectedSerifed2 { [KLegs.Symmetric : AdviceStroke 6] 1 1 2 1 }
|
|
||||||
|
|
||||||
define [UpperKLTSerif top sw slabLT straightBar] : match slabLT
|
define [UpperKLTSerif top sw slabLT straightBar] : match slabLT
|
||||||
2 : HSerif.lt (SB + [KBalance slabLT straightBar]) top SideJut
|
2 : HSerif.lt (SB + [KBalance slabLT straightBar]) top SideJut
|
||||||
|
@ -410,7 +378,7 @@ glyph-block Letter-Latin-K : begin
|
||||||
include : GrekKaiAttachmentshape true
|
include : GrekKaiAttachmentshape true
|
||||||
|
|
||||||
# Main building
|
# Main building
|
||||||
foreach { suffix { LegsImpl slabLT slabLB slabLegs slabKS } } [Object.entries UpperKConfig] : do
|
foreach { suffix { LegsImpl {slabLT slabLB slabLegs slabKS} } } [pairs-of UpperKConfig] : do
|
||||||
local straightBar : LegsImpl !== KLegs.Curly
|
local straightBar : LegsImpl !== KLegs.Curly
|
||||||
|
|
||||||
define [KBaseShape sw top attachment] : glyph-proc
|
define [KBaseShape sw top attachment] : glyph-proc
|
||||||
|
@ -499,40 +467,22 @@ glyph-block Letter-Latin-K : begin
|
||||||
include : df.markSet.e
|
include : df.markSet.e
|
||||||
include : BashkirKaShape df XH
|
include : BashkirKaShape df XH
|
||||||
|
|
||||||
|
define LowerKConfig : SuffixCfg.weave
|
||||||
|
object # body
|
||||||
|
straight KLegs.Straight
|
||||||
|
curly KLegs.Curly
|
||||||
|
cursive KLegs.Cursive
|
||||||
|
cursiveTailed KLegs.CursiveTailed
|
||||||
|
symmetricTouching [KLegs.Symmetric 0]
|
||||||
|
symmetricConnected [KLegs.Symmetric : AdviceStroke 6]
|
||||||
|
object # serifs
|
||||||
|
serifless { 0 0 0 }
|
||||||
|
topLeftSerifed { 1 0 0 }
|
||||||
|
bottomRightSerifed { 0 0 1 }
|
||||||
|
topLeftAndBottomRightSerifed { 1 0 1 }
|
||||||
|
serifed { 1 1 3 }
|
||||||
|
|
||||||
define LowerKConfig : object
|
foreach { suffix { LegsImpl {slabLT slabLB slabLegs} } } [pairs-of LowerKConfig] : do
|
||||||
straightSerifed { KLegs.Straight 1 1 3 }
|
|
||||||
curlySerifed { KLegs.Curly 1 1 3 }
|
|
||||||
cursiveSerifed { KLegs.Cursive 1 1 3 }
|
|
||||||
diagonalTailedSerifedCursiveSerifed { KLegs.CursiveTailed 1 1 3 }
|
|
||||||
symmetricTouchingSerifed { [KLegs.Symmetric 0] 1 1 3 }
|
|
||||||
symmetricConnectedSerifed { [KLegs.Symmetric : AdviceStroke 6] 1 1 3 }
|
|
||||||
straightSerifless { KLegs.Straight 0 0 0 }
|
|
||||||
curlySerifless { KLegs.Curly 0 0 0 }
|
|
||||||
cursiveSerifless { KLegs.Cursive 0 0 0 }
|
|
||||||
diagonalTailedSerifedCursiveSerifless { KLegs.CursiveTailed 0 0 0 }
|
|
||||||
symmetricTouchingSerifless { [KLegs.Symmetric 0] 0 0 0 }
|
|
||||||
symmetricConnectedSerifless { [KLegs.Symmetric : AdviceStroke 6] 0 0 0 }
|
|
||||||
straightTopLeftSerifed { KLegs.Straight 1 0 0 }
|
|
||||||
curlyTopLeftSerifed { KLegs.Curly 1 0 0 }
|
|
||||||
cursiveTopLeftSerifed { KLegs.Cursive 1 0 0 }
|
|
||||||
diagonalTailedSerifedCursiveTopLeftSerifed { KLegs.CursiveTailed 1 0 0 }
|
|
||||||
symmetricTouchingTopLeftSerifed { [KLegs.Symmetric 0] 1 0 0 }
|
|
||||||
symmetricConnectedTopLeftSerifed { [KLegs.Symmetric : AdviceStroke 6] 1 0 0 }
|
|
||||||
straightBottomRightSerifed { KLegs.Straight 0 0 1 }
|
|
||||||
curlyBottomRightSerifed { KLegs.Curly 0 0 1 }
|
|
||||||
cursiveBottomRightSerifed { KLegs.Cursive 0 0 1 }
|
|
||||||
diagonalTailedSerifedCursiveBottomRightSerifed { KLegs.CursiveTailed 0 0 1 }
|
|
||||||
symmetricTouchingBottomRightSerifed { [KLegs.Symmetric 0] 0 0 1 }
|
|
||||||
symmetricConnectedBottomRightSerifed { [KLegs.Symmetric : AdviceStroke 6] 0 0 1 }
|
|
||||||
straightTopLeftAndBottomRightSerifed { KLegs.Straight 1 0 1 }
|
|
||||||
curlyTopLeftAndBottomRightSerifed { KLegs.Curly 1 0 1 }
|
|
||||||
cursiveTopLeftAndBottomRightSerifed { KLegs.Cursive 1 0 1 }
|
|
||||||
diagonalTailedSerifedCursiveTopLeftAndBottomRightSerifed { KLegs.CursiveTailed 1 0 1 }
|
|
||||||
symmetricTouchingTopLeftAndBottomRightSerifed { [KLegs.Symmetric 0] 1 0 1 }
|
|
||||||
symmetricConnectedTopLeftAndBottomRightSerifed { [KLegs.Symmetric : AdviceStroke 6] 1 0 1 }
|
|
||||||
|
|
||||||
foreach { suffix { LegsImpl slabLT slabLB slabLegs } } [Object.entries LowerKConfig] : do
|
|
||||||
local straightBar : LegsImpl !== KLegs.Curly
|
local straightBar : LegsImpl !== KLegs.Curly
|
||||||
|
|
||||||
define [kBaseShape attachment] : glyph-proc
|
define [kBaseShape attachment] : glyph-proc
|
||||||
|
|
|
@ -261,7 +261,7 @@ class VbStageAlternative {
|
||||||
this.key = key;
|
this.key = key;
|
||||||
this.rank = raw.rank;
|
this.rank = raw.rank;
|
||||||
this.next = raw.next;
|
this.next = raw.next;
|
||||||
this.keySuffix = raw.keySuffix;
|
if (key !== "*") this.keySuffix = raw.keySuffix ?? key;
|
||||||
this.descriptionSuffix = raw.descriptionSuffix;
|
this.descriptionSuffix = raw.descriptionSuffix;
|
||||||
this.descriptionJoiner = raw.descriptionJoiner || "with";
|
this.descriptionJoiner = raw.descriptionJoiner || "with";
|
||||||
this.disableIf = raw.disableIf;
|
this.disableIf = raw.disableIf;
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue