Skip to content

Commit

Permalink
Add Asterism (U+2042) character (be5invis#1324).
Browse files Browse the repository at this point in the history
  • Loading branch information
be5invis authored and xinhaoyuan committed May 22, 2022
1 parent 6bb0642 commit 82ad19b
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 7 deletions.
1 change: 1 addition & 0 deletions changes/15.0.3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* Add Asterism (`U+2042`) character (#1324).
36 changes: 29 additions & 7 deletions font-src/glyphs/symbol/punctuation/asterisk.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,16 @@ glyph-block Symbol-Punctuation-Asterisk : begin
glyph-block-import Common-Derivatives

define asteriskCenterY : ParenTop - LongJut * 1.5
define asteriskCenterYLow : asteriskCenterY + 2 * (SymbolMid - asteriskCenterY)

define asteriskKinds : list
list 5 1.2 0 0.4 Stroke 'asterisk' 'pentaHigh' 'pentaSMid' 'midXH' 'pentaLow' 'dualAsterisk'
list 6 1.2 0 0.4 Stroke 'asterisk' 'hexHigh' 'hexSMid' '' 'hexLow' 'dualAsterisk'
list 5 1.2 1 0.4 Stroke 'asterisk' 'turnPentaHigh' 'turnPentaSMid' '' 'turnPentaLow' 'dualAsterisk'
list 6 1.2 0.5 0.4 Stroke 'asterisk' 'turnHexHigh' 'turnHexSMid' '' 'turnHexLow' 'dualAsterisk'
list 5 0.85 0 0.4 Stroke 'smallAsterisk' 'high' 'low' '' '' ''
list 5 1 0 0.4 GeometryStroke 'opAsterisk' 'high' 'low' '' '' ''
foreach [{sides size rot pFine stroke name high sMid midXH low dual} : items-of asteriskKinds] : begin
list 5 1.2 0 0.4 Stroke 'asterisk' 'pentaHigh' 'pentaSMid' 'midXH' 'pentaLow' 'dualAsterisk' 'asterism'
list 6 1.2 0 0.4 Stroke 'asterisk' 'hexHigh' 'hexSMid' '' 'hexLow' 'dualAsterisk' 'asterism'
list 5 1.2 1 0.4 Stroke 'asterisk' 'turnPentaHigh' 'turnPentaSMid' '' 'turnPentaLow' 'dualAsterisk' 'asterism'
list 6 1.2 0.5 0.4 Stroke 'asterisk' 'turnHexHigh' 'turnHexSMid' '' 'turnHexLow' 'dualAsterisk' 'asterism'
list 5 0.85 0 0.4 Stroke 'smallAsterisk' 'high' 'low' '' '' '' ''
list 5 1 0 0.4 GeometryStroke 'opAsterisk' 'high' 'low' '' '' '' ''
foreach [{sides size rot pFine stroke name high sMid midXH low dual triple} : items-of asteriskKinds] : begin
create-glyph (name + '.' + high) : glyph-proc
local radius : LongJut * size
local fine : stroke * pFine
Expand Down Expand Up @@ -46,7 +48,27 @@ glyph-block Symbol-Punctuation-Asterisk : begin
refer-glyph (name + '.' + high)
refer-glyph (name + '.' + low)

if (triple && sMid && low) : for-width-kinds WideWidth1
local scale : Math.sqrt (MosaicWidthScalar / 2)
create-glyph ([MangleName triple] + '.' + sMid) : glyph-proc
set-width MosaicWidth
include : WithTransform [ApparentTranslate (MosaicWidth * 0.5 - Width / 2) 0]
composite-proc
refer-glyph (name + '.' + high)
ScaleAround Middle asteriskCenterY scale scale
include : WithTransform [ApparentTranslate (MosaicWidth * 0.75 - Width / 2) 0]
composite-proc
refer-glyph (name + '.' + low)
ScaleAround Middle asteriskCenterYLow scale scale
include : WithTransform [ApparentTranslate (MosaicWidth * 0.25 - Width / 2) 0]
composite-proc
refer-glyph (name + '.' + low)
ScaleAround Middle asteriskCenterYLow scale scale

select-variant 'asterisk' '*'
select-variant 'asterisk/sMid' (shapeFrom -- 'asterisk')
select-variant 'lowAsterisk' 0x204E (shapeFrom -- 'asterisk')
select-variant 'dualAsterisk' 0x2051 (follow -- 'asterisk/sMid')

for-width-kinds WideWidth1
select-variant [MangleName 'asterism'] [MangleUnicode 0x2042] (follow -- 'asterisk/sMid')

0 comments on commit 82ad19b

Please sign in to comment.