Add Low asterisk (U+204E) and double asterisk (U+2051).

This commit is contained in:
be5invis 2021-05-13 20:27:05 -07:00
parent c652fac77c
commit e265b9fea8
6 changed files with 68 additions and 53 deletions

View file

@ -5,26 +5,28 @@
- `K`, `k`, Cyrillic Ka (`К` and `к`). - `K`, `k`, Cyrillic Ka (`К` and `к`).
- Cyrillic Ze (`З` and `з`). - Cyrillic Ze (`З` and `з`).
* Add characters: * Add characters:
- Cyrillic Iotified E (`U+0464`, `U+0465`). - All remaining letters in Cyrillic block, including:
- Cyrillic Omega (`U+0460`, `U+0461`), Ot (`U+047E`, `U+047F`), Broad Omega (`U+A64C`, `U+A64D`). - Cyrillic Iotified E (`U+0464`, `U+0465`).
- Cyrillic Psi (`U+0470`, `U+0471`). - Cyrillic Omega (`U+0460`, `U+0461`), Ot (`U+047E`, `U+047F`), Broad Omega (`U+A64C`, `U+A64D`).
- Cyrillic Broad On (`U+047A`, `U+047B`). - Cyrillic Psi (`U+0470`, `U+0471`).
- Cyrillic combining Dasia (`U+0485`), Psili (`U+0486`), Pokrytie (`U+0478`). - Cyrillic Broad On (`U+047A`, `U+047B`).
- Cyrillic Ornate Omega (`U+047C`, `U+047D`). - Cyrillic combining Dasia (`U+0485`), Psili (`U+0486`), Pokrytie (`U+0478`).
- Cyrillic Koppa (`U+0480`, `U+0481`). - Cyrillic Ornate Omega (`U+047C`, `U+047D`).
- Cyrillic Semi-soft Sign (`U+048C`, `U+048D`). - Cyrillic Koppa (`U+0480`, `U+0481`).
- Cyrillic Er with Tick (`U+048E`, `U+048F`). - Cyrillic Semi-soft Sign (`U+048C`, `U+048D`).
- Cyrillic tailed Short I (`U+048A`, `U+048B`), tailed El (`U+04C5`, `U+04C6`), railed En (`U+04C9`, `U+04CA`), tailed Em (`U+04CD`, `U+04CE`). - Cyrillic Er with Tick (`U+048E`, `U+048F`).
- Cyrillic Ka with Vertical Stroke (`U+049C`, `U+049D`). - Cyrillic tailed Short I (`U+048A`, `U+048B`), tailed El (`U+04C5`, `U+04C6`), railed En (`U+04C9`, `U+04CA`), tailed Em (`U+04CD`, `U+04CE`).
- Cyrillic Ka with Stroke (`U+049E`, `U+049F`). - Cyrillic Ka with Vertical Stroke (`U+049C`, `U+049D`).
- Cyrillic Pe with Middle Hook (`U+04A6`, `U+04A7`). - Cyrillic Ka with Stroke (`U+049E`, `U+049F`).
- Cyrillic Abkhasian Ha (`U+04A8`, `U+04A9`). - Cyrillic Pe with Middle Hook (`U+04A6`, `U+04A7`).
- Cyrillic Te-Tse (`U+04B4`, `U+04B5`). - Cyrillic Abkhasian Ha (`U+04A8`, `U+04A9`).
- Cyrillic Abkhazian Che (`U+04BC` ... `U+04BF`). - Cyrillic Te-Tse (`U+04B4`, `U+04B5`).
- Cyrillic Ka with Hook (`U+04C3`, `U+04C4`). - Cyrillic Abkhazian Che (`U+04BC` ... `U+04BF`).
- Cyrillic Ghe with Stroke and Hook (`U+04FA`, `U+04FB`). - Cyrillic Ka with Hook (`U+04C3`, `U+04C4`).
- Cyrillic Ha with Hook (`U+04FC`, `U+04FD`). - Cyrillic Ghe with Stroke and Hook (`U+04FA`, `U+04FB`).
- Cyrillic Ha with Stroke (`U+04FE`, `U+04FF`). - Cyrillic Ha with Hook (`U+04FC`, `U+04FD`).
- Cyrillic Ha with Stroke (`U+04FE`, `U+04FF`).
- Low asterisk (`U+204E`) and double asterisk (`U+2051`).
- Helm symbol (`U+2388`). - Helm symbol (`U+2388`).
* Add tailed variants for Cyrillic El, En, Che, Yery and Ya (#972). * Add tailed variants for Cyrillic El, En, Che, Yery and Ya (#972).
* Add more serifed variants for `K`, `k`, `n`, Cyrillic Ka (`К` and `к`) and Cyrillic Ef (`ф`) to better reproduce PT Mono (#986). * Add more serifed variants for `K`, `k`, `n`, Cyrillic Ka (`К` and `к`) and Cyrillic Ef (`ф`) to better reproduce PT Mono (#986).

View file

@ -899,7 +899,7 @@ glyph-block AutoBuild-Accented-Equal : begin
createAccentedOp 'equal' 7 0.5 0 (aboveMarkBot - (SymbolMid - XH / 2)) : list createAccentedOp 'equal' 7 0.5 0 (aboveMarkBot - (SymbolMid - XH / 2)) : list
list 0x2259 {"triangularWedge.NWID"} list 0x2259 {"triangularWedge.NWID"}
list 0x225a {"triangularVee.NWID"} list 0x225a {"triangularVee.NWID"}
list 0x225b {"asterisk.pentaLow"} list 0x225b {"asterisk.pentaSMid"}
list 0x225c {"whiteTriangleUp.NWID"} list 0x225c {"whiteTriangleUp.NWID"}
createAccentedOp 'sqrt' 5 0.5 (-Width / 4) [mix OperBot OperTop 0.6] : list createAccentedOp 'sqrt' 5 0.5 (-Width / 4) [mix OperBot OperTop 0.6] : list
list 0x221b {"three.lnum"} list 0x221b {"three.lnum"}

View file

@ -155,7 +155,7 @@ glyph-block Symbol-Math-APL : begin
create-glyph 0x2360 : composite-proc [refer-glyph 'enquad'] [aplBoxed : composite-proc [refer-glyph 'colon'] [Realign Middle (XH/2) Middle SymbolMid]] create-glyph 0x2360 : composite-proc [refer-glyph 'enquad'] [aplBoxed : composite-proc [refer-glyph 'colon'] [Realign Middle (XH/2) Middle SymbolMid]]
create-glyph 0x2361 : composite-proc [refer-glyph 'top'] [MarkSet.tack] [refer-glyph 'dieresisAbove'] [clear-anchors] create-glyph 0x2361 : composite-proc [refer-glyph 'top'] [MarkSet.tack] [refer-glyph 'dieresisAbove'] [clear-anchors]
create-glyph 0x2362 : composite-proc [refer-glyph 'nabla'] [refer-glyph 'dieresisAbove'] create-glyph 0x2362 : composite-proc [refer-glyph 'nabla'] [refer-glyph 'dieresisAbove']
create-glyph 0x2363 : composite-proc [refer-glyph 'asterisk.pentaLow'] [MarkSet.plus] [refer-glyph 'dieresisAbove'] [clear-anchors] create-glyph 0x2363 : composite-proc [refer-glyph 'asterisk.pentaSMid'] [MarkSet.plus] [refer-glyph 'dieresisAbove'] [clear-anchors]
create-glyph 0x2364 : composite-proc [refer-glyph 'whiteSmallCircle.NWID'] [MarkSet.plus] [refer-glyph 'dieresisAbove'] [clear-anchors] create-glyph 0x2364 : composite-proc [refer-glyph 'whiteSmallCircle.NWID'] [MarkSet.plus] [refer-glyph 'dieresisAbove'] [clear-anchors]
create-glyph 0x2365 : composite-proc [refer-glyph 'whiteCircle.NWID'] [MarkSet.plus] [refer-glyph 'dieresisAbove'] [clear-anchors] create-glyph 0x2365 : composite-proc [refer-glyph 'whiteCircle.NWID'] [MarkSet.plus] [refer-glyph 'dieresisAbove'] [clear-anchors]
create-glyph 0x2366 : composite-proc [refer-glyph 'enquad'] [Overlay [refer-glyph 'cup'] [refer-glyph 'aplbar']] create-glyph 0x2366 : composite-proc [refer-glyph 'enquad'] [Overlay [refer-glyph 'cup'] [refer-glyph 'aplbar']]

View file

@ -12,13 +12,13 @@ glyph-block Symbol-Punctuation-Asterisk : begin
define asteriskCenterY : ParenTop - LongJut * 1.5 define asteriskCenterY : ParenTop - LongJut * 1.5
define asteriskKinds : list define asteriskKinds : list
list 5 1.2 0 0.4 Stroke 'asterisk' 'pentaHigh' 'pentaLow' 'midXH' list 5 1.2 0 0.4 Stroke 'asterisk' 'pentaHigh' 'pentaSMid' 'midXH' 'pentaLow' 'dualAsterisk'
list 5 0.85 0 0.4 Stroke 'smallasterisk' 'high' 'low' '' list 6 1.2 0 0.4 Stroke 'asterisk' 'hexHigh' 'hexSMid' '' 'hexLow' 'dualAsterisk'
list 5 1 0 0.4 GeometryStroke 'opAsterisk' 'high' 'low' '' list 5 1.2 1 0.4 Stroke 'asterisk' 'turnPentaHigh' 'turnPentaSMid' '' 'turnPentaLow' 'dualAsterisk'
list 6 1.2 0 0.4 Stroke 'asterisk' 'hexHigh' 'hexLow' '' list 6 1.2 0.5 0.4 Stroke 'asterisk' 'turnHexHigh' 'turnHexSMid' '' 'turnHexLow' 'dualAsterisk'
list 5 1.2 1 0.4 Stroke 'asterisk' 'turnPentaHigh' 'turnPentaLow' '' list 5 0.85 0 0.4 Stroke 'smallAsterisk' 'high' 'low' '' '' ''
list 6 1.2 0.5 0.4 Stroke 'asterisk' 'turnHexHigh' 'turnHexLow' '' list 5 1 0 0.4 GeometryStroke 'opAsterisk' 'high' 'low' '' '' ''
foreach [{sides size rot pFine stroke name high low midXH} : items-of asteriskKinds] : begin foreach [{sides size rot pFine stroke name high sMid midXH low dual} : items-of asteriskKinds] : begin
create-glyph (name + '.' + high) : glyph-proc create-glyph (name + '.' + high) : glyph-proc
local radius : LongJut * size local radius : LongJut * size
local fine : stroke * pFine local fine : stroke * pFine
@ -31,18 +31,23 @@ glyph-block Symbol-Punctuation-Asterisk : begin
flat Middle asteriskCenterY [widths fine fine] flat Middle asteriskCenterY [widths fine fine]
curl (Middle + radius * s) (asteriskCenterY + radius * c) [widths final final] curl (Middle + radius * s) (asteriskCenterY + radius * c) [widths final final]
create-glyph (name + '.' + low) : composite-proc if sMid : create-glyph (name + '.' + sMid) : composite-proc
refer-glyph (name + '.' + high) refer-glyph (name + '.' + high)
Upright ApparentTranslate 0 (SymbolMid - asteriskCenterY)
Translate 0 (SymbolMid - asteriskCenterY)
Italify
if midXH : create-glyph (name + '.' + midXH) : composite-proc if midXH : create-glyph (name + '.' + midXH) : composite-proc
refer-glyph (name + '.' + high) refer-glyph (name + '.' + high)
Upright ApparentTranslate 0 (XH / 2 - asteriskCenterY)
Translate 0 (XH / 2 - asteriskCenterY)
Italify if low : create-glyph (name + '.' + low) : composite-proc
refer-glyph (name + '.' + high)
ApparentTranslate 0 (2 * (SymbolMid - asteriskCenterY))
if (dual && sMid && low) : create-glyph (dual + '.' + sMid) : composite-proc
refer-glyph (name + '.' + high)
refer-glyph (name + '.' + low)
select-variant 'asterisk' '*' select-variant 'asterisk' '*'
select-variant 'asterisk/lowered' (shapeFrom -- 'asterisk') select-variant 'asterisk/sMid' (shapeFrom -- 'asterisk')
select-variant 'lowAsterisk' 0x204E (shapeFrom -- 'asterisk')
select-variant 'dualAsterisk' 0x2051 (follow -- 'asterisk/sMid')

View file

@ -102,13 +102,13 @@ define [buildLigationsImpl sink para featureName mappedFeature rankedLookups] :
CreateLigationLookup : list CreateLigationLookup : list
chain-rule # (* chain-rule # (*
{'parenLeft'} ~> look-around {'parenLeft'} ~> look-around
{'asterisk'} ~> {'asterisk/lowered'} {'asterisk'} ~> {'asterisk/sMid'}
chain-rule # *) chain-rule # *)
{'asterisk'} ~> {'asterisk/lowered'} {'asterisk'} ~> {'asterisk/sMid'}
{'parenRight'} ~> look-around {'parenRight'} ~> look-around
do "Operator centering" : if [hasLG 'center-ops'] : begin do "Operator centering" : if [hasLG 'center-ops'] : begin
define [centerAsterisk] : {'asterisk'} ~> {'asterisk/lowered'} define [centerAsterisk] : {'asterisk'} ~> {'asterisk/sMid'}
define [centerColon] : {'colon'} ~> {'colon.mid'} define [centerColon] : {'colon'} ~> {'colon.mid'}
define [centerCaret] : {'asciiCaret'} ~> {'asciiCaret.low'} define [centerCaret] : {'asciiCaret'} ~> {'asciiCaret.low'}
define [centerTilde] : {'asciiTilde'} ~> {'asciiTilde.low'} define [centerTilde] : {'asciiTilde'} ~> {'asciiTilde.low'}

View file

@ -4512,49 +4512,57 @@ tag = "cv81"
rank = 1 rank = 1
description = "Higher five-pointed asterisk `*`" description = "Higher five-pointed asterisk `*`"
selector.asterisk = "pentaHigh" selector.asterisk = "pentaHigh"
selector."asterisk/lowered" = "pentaLow" selector."asterisk/sMid" = "pentaSMid"
selector."lowAsterisk" = "pentaLow"
[prime.asterisk.variants.penta-low] [prime.asterisk.variants.penta-low]
rank = 2 rank = 2
description = "Lower five-pointed asterisk `*`" description = "Lower five-pointed asterisk `*`"
selector.asterisk = "pentaLow" selector.asterisk = "pentaSMid"
selector."asterisk/lowered" = "pentaLow" selector."asterisk/sMid" = "pentaSMid"
selector."lowAsterisk" = "pentaLow"
[prime.asterisk.variants.flip-penta-high] [prime.asterisk.variants.flip-penta-high]
rank = 3 rank = 3
description = "Higher five-pointed and turned asterisk `*`" description = "Higher five-pointed and turned asterisk `*`"
selector.asterisk = "turnPentaHigh" selector.asterisk = "turnPentaHigh"
selector."asterisk/lowered" = "turnPentaLow" selector."asterisk/sMid" = "turnPentaSMid"
selector."lowAsterisk" = "turnPentaLow"
[prime.asterisk.variants.flip-penta-low] [prime.asterisk.variants.flip-penta-low]
rank = 4 rank = 4
description = "Lower five-pointed and turned asterisk `*`" description = "Lower five-pointed and turned asterisk `*`"
selector.asterisk = "turnPentaLow" selector.asterisk = "turnPentaSMid"
selector."asterisk/lowered" = "turnPentaLow" selector."asterisk/sMid" = "turnPentaSMid"
selector."lowAsterisk" = "turnPentaLow"
[prime.asterisk.variants.hex-high] [prime.asterisk.variants.hex-high]
rank = 5 rank = 5
description = "Higher six-pointed asterisk `*`" description = "Higher six-pointed asterisk `*`"
selector.asterisk = "hexHigh" selector.asterisk = "hexHigh"
selector."asterisk/lowered" = "hexLow" selector."asterisk/sMid" = "hexSMid"
selector."lowAsterisk" = "hexLow"
[prime.asterisk.variants.hex-low] [prime.asterisk.variants.hex-low]
rank = 6 rank = 6
description = "Lower six-pointed asterisk `*`" description = "Lower six-pointed asterisk `*`"
selector.asterisk = "hexLow" selector.asterisk = "hexSMid"
selector."asterisk/lowered" = "hexLow" selector."asterisk/sMid" = "hexSMid"
selector."lowAsterisk" = "hexLow"
[prime.asterisk.variants.turn-hex-high] [prime.asterisk.variants.turn-hex-high]
rank = 7 rank = 7
description = "Higher turned six-pointed asterisk `*`" description = "Higher turned six-pointed asterisk `*`"
selector.asterisk = "turnHexHigh" selector.asterisk = "turnHexHigh"
selector."asterisk/lowered" = "turnHexLow" selector."asterisk/sMid" = "turnHexSMid"
selector."lowAsterisk" = "turnHexLow"
[prime.asterisk.variants.turn-hex-low] [prime.asterisk.variants.turn-hex-low]
rank = 8 rank = 8
description = "Lower turned six-pointed asterisk `*`" description = "Lower turned six-pointed asterisk `*`"
selector.asterisk = "turnHexLow" selector.asterisk = "turnHexSMid"
selector."asterisk/lowered" = "turnHexLow" selector."asterisk/sMid" = "turnHexSMid"
selector."lowAsterisk" = "turnHexLow"