Add corner and flat-hooked variants for ? (#829).

This commit is contained in:
be5invis 2021-01-24 20:31:20 -08:00
parent cbf4e48876
commit 3ae9b7829b
3 changed files with 66 additions and 25 deletions

View file

@ -402,8 +402,9 @@ glyph-block Symbol-Punctuation-Emotion : begin
glyph-block-import Common-Derivatives
local questionBottom : Math.max (CAP * 0.3) (DotSize * 1.5)
local questionYConnect : mix questionBottom (CAP - HalfStroke) 0.375
define [QuestionShape top questionBottom left right] : glyph-proc
define [QuestionSmoothShape top questionBottom left right] : glyph-proc
define strokeEndCor : Math.hypot 1 TanSlope
include : dispiro
widths.rhs
@ -413,33 +414,36 @@ glyph-block Symbol-Punctuation-Emotion : begin
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]
create-glyph 'question' '?' : glyph-proc
create-glyph 'question.smooth' : glyph-proc
set-width Width
include : QuestionShape CAP questionBottom SB RightSB
include : QuestionSmoothShape CAP questionBottom SB RightSB
include : DotAt Middle DotRadius (DotRadius - O)
create-glyph 'interrobang' 0x203D : glyph-proc
set-width Width
local angle : 12 / 180 * Math.PI
include : QuestionShape 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
create-glyph 'question.corner' : glyph-proc
include : dispiro
widths.rhs
g4 SB (CAP - Hook)
hookstart (CAP - O)
g4 (RightSB - OX) [YSmoothMidR CAP (questionYConnect - Stroke) SmoothA SmoothB]
arcvh
straight.left.end Middle (questionYConnect - Stroke) [heading Leftward]
include : VBar Middle questionBottom questionYConnect
include : DotAt Middle DotRadius (DotRadius - O)
create-glyph 'gnaborretni' 0x2E18 : glyph-proc
set-width Width
include : refer-glyph "interrobang"
include : FlipAround Middle (CAP / 2)
create-glyph 'question.cornerFlatHooked' : glyph-proc
local depth : Math.max (Stroke * 1.5) ((RightSB - SB) * 0.5)
include : dispiro
widths.rhs
flat [mix Middle SB 0.75] CAP [heading Rightward]
curl (RightSB - depth - CorrectionOMidS) CAP
archv
g4 (RightSB - OX) [YSmoothMidR CAP (questionYConnect - Stroke) SmoothA SmoothB]
arcvh
straight.left.end Middle (questionYConnect - Stroke) [heading Leftward]
include : VBar Middle questionBottom questionYConnect
include : DotAt Middle DotRadius (DotRadius - O)
create-glyph 'questionDown' 0xBF : glyph-proc
set-width Width
include : refer-glyph "question"
include : FlipAround Middle (XH / 2)
select-variant 'question' '?'
create-glyph 'exclam' '!' : glyph-proc
set-width Width
@ -449,11 +453,22 @@ glyph-block Symbol-Punctuation-Emotion : begin
alias 'alveolarclick' 0x1C3 'exclam'
create-glyph 'exclamDown' 0xA1 : glyph-proc
create-glyph 'interrobang' 0x203D : glyph-proc
set-width Width
include : refer-glyph "exclam"
include : FlipAround Middle (XH / 2)
local angle : 12 / 180 * Math.PI
include : QuestionSmoothShape 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
include : DotAt Middle DotRadius (DotRadius - O)
turned 'gnaborretni' 0x2E18 'interrobang' Middle (CAP / 2)
turned 'questionDown'0xBF 'question' Middle (XH / 2)
turned 'exclamDown' 0xA1 'exclam' Middle (XH / 2)
glyph-block Symbol-Punctuation-Bar : begin
glyph-block-import CommonShapes