1
2
3
4
5
6
7
8
9
10
11
12
13
14if known metafun_loaded_miss : endinput ; fi ;
15
16newinternal boolean metafun_loaded_miss ; metafun_loaded_miss := true ; immutable metafun_loaded_miss ;
17
18picture MissingSnippets[][];
19
20vardef MissingGlyphSymbol(expr w, h, d) =
21 image (
22 draw (0,d)--(w,d)--(w,h)--(0,h)cycle ;
23 if d <> 0 : draw (0,0)--(w,0) ;
24 )
25enddef ;
26
27vardef MissingLowercase = image ( draw MissingGlyphSymbol(.45, .55, .20) scaled 1000 ; ) enddef ;
28vardef MissingUppercase = image ( draw MissingGlyphSymbol(.65, .70, .25) scaled 1000 ; ) enddef ;
29vardef MissingMark = image ( draw MissingGlyphSymbol(.15, .70, -.50) scaled 1000 ; ) enddef ;
30vardef MissingPunctuation = image ( draw MissingGlyphSymbol(.15, .55, .20) scaled 1000 ; ) enddef ;
31vardef MissingUnknown = image ( draw MissingGlyphSymbol(.45, .20, 0) scaled 1000 ; ) enddef ;
32
33
34
35
36
37
38vardef MissingGlyph =
39 save u ; u := getparameterdefault "mpsfont" "unicode" 1;
40 save s ; s := getparameterdefault "mpsfont" "scale" 1 ;
41 save n ; n := getparameterdefault "mpsfont" "namespace" 1 ;
42 save i ; i := getparameterdefault "mpsfont" "slant" 0 ;
43 save w ; w := getparameterdefault "mpsfont" "weight" 1 ;
44 pickup pencircle scaled (0.05 w) ;
45 MissingSnippets[n][u] := image (
46 draw scantokens ( getparameter "mpsfont" "shapes" (1) "shape" )
47 withcolor getparameter "mpsfont" "shapes" (1) "color"
48 ) scaled s slanted i ;
49 registercomposedglyph(u, MissingSnippets[n]) ;
50enddef ;
51
52lmt_registerglyphs [
53 name = "missing",
54 units = 1000,
55 width = 100,
56 height = 100,
57 depth = 0,
58] ;
59
60
61
62
63lmt_registerglyph [
64 category = "missing",
65] ;
66
67permanent MissingSnippets, MissingGlyphSymbol, MissingLowercase, MissingUppercase,
68 MissingMark, MissingPunctuation, MissingUnknown, MissingGlyph ;
69 |