1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
%D \module
%D [ file=meta-dum,
%D version=2003.03.21,
%D title=\METAPOST\ Graphics,
%D subtitle=Dummy (External) Graphics,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
\unprotect
%D This library overloads the normal external figure
%D placeholder by a nicer one.
%D
%D \startbuffer
%D \useMPlibrary[dum]
%D
%D \startlinecorrection
%D \externalfigure[unknown-a][width=3cm,height=1cm]
%D \stoplinecorrection
%D
%D \startlinecorrection
%D \externalfigure[unknown-b][width=4cm,height=5cm]
%D \stoplinecorrection
%D \stopbuffer
%D
%D \typebuffer \getbuffer
% currently preparempvariables is unable to resolve number
% fractions like reduction
% June 22, 2003, this definition was patched to adapt itself
% to transparent colors
\startuseMPgraphic{placeholder}{width,height,reduction,color}
numeric w, h, d, r ; color c, b, cc ; path p ; boolean t ;
t := is_transparent(\MPvar{color}) ;
c := not_transparent(\MPvar{color}) ;
b := not_transparent(white) ;
w := \MPvar{width} ;
h := \MPvar{height} ;
r := \MPvar{reduction} ;
d := max(w,h) ;
p := unitsquare xyscaled (w,h) ;
cc := r[.5c,b] ;
fill p withcolor if t : transparent(1,.5,cc) else : cc fi ;
for i := 1 upto 60 :
cc := r[c randomized(.3,.9),b] ;
fill fullcircle
scaled (d/5 randomized (d/5))
shifted (center p randomized (d))
withcolor if t : transparent(1,.5,cc) else : cc fi ;
endfor ;
clip currentpicture to p ;
\stopuseMPgraphic
\definepalet
[placeholder]
[1=red,2=green,3=blue,4=cyan,5=magenta,6=yellow]
% \newcounter \figurereplacementcycle
\let\figurereplacementcycle\relax
\setupexternalfigures
[\c!reduction=0,
\c!text=\v!yes]
\def\externalfigurereplacement#1#2#3%
{\getpaletsize[placeholder]%
\ifx\figurereplacementcycle\relax
\getrandomnumber \figurereplacementcycle \!!plusone \paletsize
\globallet \figurereplacementcycle \figurereplacementcycle
\else
\doglobal\increment\figurereplacementcycle
\fi
\ifnum\figurereplacementcycle>\paletsize
\globallet\figurereplacementcycle\!!plusone
\fi
\weightGRAYfalse % monochrome anyway
\MPcmykcolorsfalse
\MPspotcolorsfalse
\defineoverlay
[\s!dummy]
[\useMPgraphic
{placeholder}%
{width=\figurewidth,
height=\figureheight,
reduction=\@@efreduction,
color=placeholder:\figurereplacementcycle}]%
\expanded{\localframed
[\??ef]
[\c!width=\figurewidth,
\c!height=\figureheight,
\c!frame=\v!off,
\c!strut=\v!no,
\c!background=\s!dummy,
\c!foregroundcolor=\s!white]}%
{\doif\@@eftext\v!yes
{\infofont \setupinterlinespace \dohyphens % \nohyphens
\doifelse{#1}\s!dummy \!!doneafalse\!!doneatrue
\doifelse{#2}\s!dummy \!!donebfalse\!!donebtrue
\doifelse{#3}\s!unknown\!!donecfalse\!!donectrue
\if!!donea
name: \expanded{\verbatimstring{#1}}\strut\endgraf
\fi
\if!!doneb
\if!!donea file: \else \if!!donec file: \fi \fi
\expanded{\verbatimstring{#2}}\strut\endgraf
\fi
\if!!donec
state: \expanded{\verbatimstring{#3}}\strut\endgraf
\fi}}}
\def\dummyfigure{\externalfigure[placeholder]}
\protect \endinput
|