Add keyboard symbol (#2306)
This commit is contained in:
parent
d6533065db
commit
d58ffab23f
4 changed files with 117 additions and 9 deletions
|
@ -1 +1,3 @@
|
||||||
* Refine shape of CYRILLIC CAPITAL LETTER SHHA (`U+04BA`).
|
* Refine shape of CYRILLIC CAPITAL LETTER SHHA (`U+04BA`).
|
||||||
|
* Add characters:
|
||||||
|
- KEYBOARD (`U+2328`).
|
||||||
|
|
|
@ -9,6 +9,7 @@ glyph-block Symbol-Mosaic-Split-Graphic : begin
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Common-Derivatives
|
glyph-block-import Common-Derivatives
|
||||||
glyph-block-import Symbol-Pictograph-Stick-Figure : StickFigureKit PointingHandShape
|
glyph-block-import Symbol-Pictograph-Stick-Figure : StickFigureKit PointingHandShape
|
||||||
|
glyph-block-import Symbol-Pictograph-Keyboard : KeyGen
|
||||||
|
|
||||||
define boxDrawingStroke : AdviceStroke 3.5
|
define boxDrawingStroke : AdviceStroke 3.5
|
||||||
define graphicSw : AdviceStroke 3.5
|
define graphicSw : AdviceStroke 3.5
|
||||||
|
@ -165,14 +166,6 @@ glyph-block Symbol-Mosaic-Split-Graphic : begin
|
||||||
set scaffold.dotYOffset : (top - bottom) / 6
|
set scaffold.dotYOffset : (top - bottom) / 6
|
||||||
set scaffold.keyInset : (top - bottom) / 8 * (MosaicWidthScalar / 2)
|
set scaffold.keyInset : (top - bottom) / 8 * (MosaicWidthScalar / 2)
|
||||||
|
|
||||||
define [KeyGen top bot left right keys] : glyph-proc
|
|
||||||
foreach {yp xp1 xp2} [items-of keys] : begin
|
|
||||||
include : HBar.m
|
|
||||||
mix left right (xp1 / 28)
|
|
||||||
mix left right (xp2 / 28)
|
|
||||||
mix (bot + graphicSw) (top - graphicSw) ((yp + 0.5) / 4)
|
|
||||||
* graphicSw
|
|
||||||
|
|
||||||
define [Microcomputer top bot left right] : glyph-proc
|
define [Microcomputer top bot left right] : glyph-proc
|
||||||
local cpuTop : mix top bot scaffold.blank
|
local cpuTop : mix top bot scaffold.blank
|
||||||
local dotX : right - [HSwToV graphicSw] - scaffold.dotXOffset
|
local dotX : right - [HSwToV graphicSw] - scaffold.dotXOffset
|
||||||
|
@ -195,7 +188,7 @@ glyph-block Symbol-Mosaic-Split-Graphic : begin
|
||||||
# *** ** ** ** ** ** ***
|
# *** ** ** ** ** ** ***
|
||||||
# **** ** ** ** ** ******
|
# **** ** ** ** ** ******
|
||||||
# ****************
|
# ****************
|
||||||
include : KeyGen (kbdTop - graphicSw - scaffold.keyInset) (bot + graphicSw + scaffold.keyInset) keyLeft keyRight : list
|
include : KeyGen (kbdTop - graphicSw - scaffold.keyInset) (bot + graphicSw + scaffold.keyInset) keyLeft keyRight 28 4 graphicSw : list
|
||||||
list 3 0 2
|
list 3 0 2
|
||||||
list 3 4 6
|
list 3 4 6
|
||||||
list 3 8 10
|
list 3 8 10
|
||||||
|
|
|
@ -24,3 +24,4 @@ export : define [apply] : begin
|
||||||
run-glyph-module "./pictograph/stick-figure.mjs"
|
run-glyph-module "./pictograph/stick-figure.mjs"
|
||||||
run-glyph-module "./pictograph/suit.mjs"
|
run-glyph-module "./pictograph/suit.mjs"
|
||||||
run-glyph-module "./pictograph/telephone-recorder.mjs"
|
run-glyph-module "./pictograph/telephone-recorder.mjs"
|
||||||
|
run-glyph-module "./pictograph/keyboard.mjs"
|
||||||
|
|
112
packages/font-glyphs/src/symbol/pictograph/keyboard.ptl
Normal file
112
packages/font-glyphs/src/symbol/pictograph/keyboard.ptl
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
$$include '../../meta/macros.ptl'
|
||||||
|
|
||||||
|
import [mix linreg clamp fallback] from "@iosevka/util"
|
||||||
|
import [Box] from "@iosevka/geometry/box"
|
||||||
|
|
||||||
|
glyph-module
|
||||||
|
|
||||||
|
glyph-block Symbol-Pictograph-Keyboard : begin
|
||||||
|
glyph-block-import CommonShapes
|
||||||
|
glyph-block-import Common-Derivatives
|
||||||
|
glyph-block-import Symbol-Geometric-Shared : GeometricDim GeometricSizes
|
||||||
|
|
||||||
|
glyph-block-export KeyGen
|
||||||
|
define [KeyGen top bot left right nRows nCols sw keys] : glyph-proc
|
||||||
|
foreach {yp xp1 xp2} [items-of keys] : begin
|
||||||
|
include : HBar.m
|
||||||
|
mix left right (xp1 / nRows)
|
||||||
|
mix left right (xp2 / nRows)
|
||||||
|
mix (bot + sw) (top - sw) ((yp + 0.5) / nCols)
|
||||||
|
* sw
|
||||||
|
|
||||||
|
for-width-kinds WideWidth1
|
||||||
|
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
|
||||||
|
define Size : GeometricSizes Geom
|
||||||
|
|
||||||
|
do "Keyboard"
|
||||||
|
define [KeyboardShape top bot left right sw] : glyph-proc
|
||||||
|
local scaffold : object
|
||||||
|
set scaffold.keyInset : (top - bot) / 16 * (MosaicWidthScalar / 2)
|
||||||
|
|
||||||
|
local keyTop : top - sw - scaffold.keyInset
|
||||||
|
local keyBot : bot + sw + scaffold.keyInset
|
||||||
|
local keyLeft : left + [HSwToV sw] + scaffold.keyInset
|
||||||
|
local keyRight : right - [HSwToV sw] - scaffold.keyInset
|
||||||
|
|
||||||
|
include : HBar.t left right top sw
|
||||||
|
include : HBar.b left right bot sw
|
||||||
|
include : VBar.l left bot top sw
|
||||||
|
include : VBar.r right bot top sw
|
||||||
|
|
||||||
|
# Key configuration
|
||||||
|
# *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
|
||||||
|
# ***** *** *** *** *** *** *** *** *** *** *** *** *** *****
|
||||||
|
# ****** *** *** *** *** *** *** *** *** *** *** *** ********
|
||||||
|
# ******** *** *** *** *** *** *** *** *** *** *** ****** ***
|
||||||
|
# *** ***** *********************** ***** ***
|
||||||
|
include : KeyGen keyTop keyBot keyLeft keyRight 59 5 [Math.min sw ((keyTop - keyBot) / 9)] : list
|
||||||
|
list 4 0 3
|
||||||
|
list 4 4 7
|
||||||
|
list 4 8 11
|
||||||
|
list 4 12 15
|
||||||
|
list 4 16 19
|
||||||
|
list 4 20 23
|
||||||
|
list 4 24 27
|
||||||
|
list 4 28 31
|
||||||
|
list 4 32 35
|
||||||
|
list 4 36 39
|
||||||
|
list 4 40 43
|
||||||
|
list 4 44 47
|
||||||
|
list 4 48 51
|
||||||
|
list 4 52 55
|
||||||
|
list 4 56 59
|
||||||
|
list 3 0 5
|
||||||
|
list 3 6 9
|
||||||
|
list 3 10 13
|
||||||
|
list 3 14 17
|
||||||
|
list 3 18 21
|
||||||
|
list 3 22 25
|
||||||
|
list 3 26 29
|
||||||
|
list 3 30 33
|
||||||
|
list 3 34 37
|
||||||
|
list 3 38 41
|
||||||
|
list 3 42 45
|
||||||
|
list 3 46 49
|
||||||
|
list 3 50 53
|
||||||
|
list 3 54 59
|
||||||
|
list 2 0 6
|
||||||
|
list 2 7 10
|
||||||
|
list 2 11 14
|
||||||
|
list 2 15 18
|
||||||
|
list 2 19 22
|
||||||
|
list 2 23 26
|
||||||
|
list 2 27 30
|
||||||
|
list 2 31 34
|
||||||
|
list 2 35 38
|
||||||
|
list 2 39 42
|
||||||
|
list 2 43 46
|
||||||
|
list 2 47 50
|
||||||
|
list 2 51 59
|
||||||
|
list 1 0 8
|
||||||
|
list 1 9 12
|
||||||
|
list 1 13 16
|
||||||
|
list 1 17 20
|
||||||
|
list 1 21 24
|
||||||
|
list 1 25 28
|
||||||
|
list 1 29 32
|
||||||
|
list 1 33 36
|
||||||
|
list 1 37 40
|
||||||
|
list 1 41 44
|
||||||
|
list 1 45 48
|
||||||
|
list 1 49 55
|
||||||
|
list 1 56 59
|
||||||
|
list 0 6 9
|
||||||
|
list 0 10 15
|
||||||
|
list 0 16 39
|
||||||
|
list 0 40 45
|
||||||
|
list 0 46 49
|
||||||
|
|
||||||
|
create-glyph [MangleName "keyboard"] [MangleUnicode 0x2328] : glyph-proc
|
||||||
|
set-width Geom.Width
|
||||||
|
local sw : AdviceStroke 8 : Math.sqrt MosaicWidthScalar
|
||||||
|
include : KeyboardShape (Geom.MidY + Geom.Size / 1.5) (Geom.MidY - Geom.Size / 1.5) Geom.Left Geom.Right sw
|
Loading…
Add table
Add a link
Reference in a new issue