meta-imp-symbols.mkxl /size: 4390 b    last modification: 2021-10-28 13:51
1%D \module
2%D   [       file=meta-imp-symbols,
3%D        version=2019.10.01,
4%D          title=\METAPOST\ Graphics,
5%D       subtitle=Symbols,
6%D         author=Hans Hagen,
7%D           date=\currentdate,
8%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
9%C
10%C This module is part of the \CONTEXT\ macro||package and is
11%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
12%C details.
13
14%D This is an (experimental) prelude to more.
15
16\startMPcalculation{simplefun}
17
18    pen SymbolPen ; SymbolPen := pencircle scaled 1/4 ;
19
20    vardef SymbolBullet        = fill   unitcircle      scaled  3       shifted (1.5,1.5) withpen SymbolPen          enddef ; % 0x2022 •
21    vardef SymbolDash          = draw   (origin--right) scaled  3       shifted (1.5,3.0) withpen SymbolPen scaled 2 enddef ; % 0x2013 –
22    vardef SymbolTriangle      = draw   unittriangle    scaled  3       shifted (1.5,1.5) withpen SymbolPen          enddef ; % 0x25B6 ⊳
23    vardef SymbolCircle        = fill   unitcircle      scaled  3       shifted (1.5,1.5) withpen SymbolPen          enddef ; % 0x2218 ∘
24    vardef SymbolSquare        = draw   unitsquare      scaled (3-1/16) shifted (1.5,1.5) withpen SymbolPen          enddef ; % 0x25A1 □
25    vardef SymbolDiamond       = draw   unitdiamond     scaled  3       shifted (1.5,1.5) withpen SymbolPen          enddef ; % 0x22C4 ⋄
26    vardef SymbolBlackTriangle = fillup unittriangle    scaled (3-1/16) shifted (1.5,1.5) withpen SymbolPen          enddef ; % 0x25B6 ▶
27    vardef SymbolBlackSquare   = fillup unitsquare      scaled (3-1/16) shifted (1.5,1.5) withpen SymbolPen          enddef ; % 0x25A0 ■
28    vardef SymbolBlackDiamond  = fillup unitdiamond     scaled (3-1/16) shifted (1.5,1.5) withpen SymbolPen          enddef ; % 0x25C6 ◆
29
30    vardef SymbolNotDef =
31        draw center unitcircle
32            scaled 3
33            shifted (1.5,1.5)
34            withpen SymbolPen scaled 4
35    enddef ;
36
37    vardef SymbolStar =  % 0x22C6 % ⋆
38        SymbolNotDef
39    enddef ;
40
41    vardef SymbolCheckmark =  % 0x2713 ✓
42        SymbolNotDef
43    enddef ;
44
45    vardef SymbolAsterisk =  % 0x2217 ∗
46        SymbolNotDef
47    enddef ;
48
49    % We could set code directly to the meaning of the macro.
50
51    lmt_registerglyphs [
52        name     = "symbols",
53        units    = 10,
54        usecolor = true,
55        width    = 6,
56        height   = 6,
57        depth    = 0,
58        code     = "SymbolNotDef ;",
59    ] ;
60
61    lmt_registerglyph [ category = "symbols", unicode = "0x2022", code  = "SymbolBullet ;"        ] ;
62    lmt_registerglyph [ category = "symbols", unicode = "0x2013", code  = "SymbolDash ;"          ] ;
63    lmt_registerglyph [ category = "symbols", unicode = "0x22C6" ] ; % , code  = "SymbolStar ;"          ] ;
64    lmt_registerglyph [ category = "symbols", unicode = "0x22B3", code  = "SymbolTriangle ;"      ] ;
65    lmt_registerglyph [ category = "symbols", unicode = "0x2218", code  = "SymbolCircle ;"        ] ;
66    lmt_registerglyph [ category = "symbols", unicode = "0x25A1", code  = "SymbolSquare ;"        ] ;
67    lmt_registerglyph [ category = "symbols", unicode = "0x22C4", code  = "SymbolDiamond ;"       ] ;
68    lmt_registerglyph [ category = "symbols", unicode = "0x2713" ] ; % , code  = "SymbolCheckmark ;"     ] ;
69    lmt_registerglyph [ category = "symbols", unicode = "0x2217" ] ; % , code  = "SymbolAsterisk ;"      ] ;
70    lmt_registerglyph [ category = "symbols", unicode = "0x25B6", code  = "SymbolBlackTriangle ;" ] ;
71    lmt_registerglyph [ category = "symbols", unicode = "0x25A0", code  = "SymbolBlackSquare ;"   ] ;
72    lmt_registerglyph [ category = "symbols", unicode = "0x25C6", code  = "SymbolBlackDiamond ;"  ] ;
73
74\stopMPcalculation
75
76\continueifinputfile{meta-imp-symbols.mkxl}
77
78\usemodule[article-basic] \setupbodyfont[pagella]
79
80\starttext
81
82\definefontfeature[metasymbols][metapost=symbols]
83
84\definefont[MyFont] [Serif*default,metasymbols sa 1]
85
86Some metasymbols:
87
88\startitem {\MyFont                   }\quad Regular rendering. \stopitem
89\startitem {\MyFont\red               }\quad Rendering with color. \stopitem
90\startitem {\MyFont\blue\showglyphs   }\quad Idem but with boundingboxes shown. \stopitem
91
92And some more:
93
94\startlines
95               
96    {\MyFont            }
97\stoplines
98
99\stoptext
100