1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16\unprotect
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32\newconstant\c_grph_buffers_mode
33
34\mutable\let\lasttypesetbuffer\empty
35
36\permanent\protected\def\typesetbuffer {\bgroup\setconstant\c_grph_buffers_mode\plusone \grph_buffers_typeset}
37\permanent\protected\def\typesetbufferonly{\bgroup\setconstant\c_grph_buffers_mode\zerocount\grph_buffers_typeset}
38
39\tolerant\permanent\protected\def\grph_buffers_typeset[#1]#*[#2]
40 {\ifparameters
41 \grph_buffers_typeset_indeed\jobname\empty
42 \or
43 \ifhastok={#1}
44 \grph_buffers_typeset_indeed\jobname{#1}
45 \else
46 \grph_buffers_typeset_indeed{#1}\empty
47 \fi
48 \or
49 \grph_buffers_typeset_indeed{#1}{#2}
50 \fi}
51
52\def\grph_buffers_typeset_indeed#1#2
53 {\doifnot{#1}{*}{\xdef\lasttypesetbuffer{\clf_typesetbuffer{#1}}}
54 \ifcase\c_grph_buffers_mode
55
56 \or
57 \externalfigure[\lasttypesetbuffer][#2]
58 \fi
59 \egroup}
60
61\tolerant\permanent\protected\def\runbuffer[#1]#*[#2]
62 {\xdef\lasttypesetbuffer{\clf_runbuffer{#1}{#2}}}
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78\installcorenamespace{typesettingfile}
79
80\tolerant\permanent\protected\def\definetypesetting[#1]#*[#2]#*[#3]
81 {\ifparameter#1\or
82 \frozen\instance\protected\defcsname\??typesettingfile#1\endcsname{\grph_typesetting_process_indeed{#2}{#3}}
83 \fi}
84
85\tolerant\permanent\protected\def\typesetfile[#1]#*[#2]#*[#3]
86 {\ifcsname\??typesettingfile#1\endcsname
87 \lastnamedcs{#2}{#3}
88 \orelse\ifparameter#3\or
89 \grph_typesetting_process_indeed{#2}{#3}{#1}{}
90 \orelse\ifparameter#2\or
91 \grph_typesetting_process_indeed{}{#2}{#1}{}
92 \fi}
93
94\defineexternalfigure[typesetting]
95
96\def\grph_typesetting_process_indeed#1#2#3#4
97 {\begingroup
98 \edef\m_typesetting_name{\clf_runcontextjob{#3}{#1}}
99 \ifempty\m_typesetting_name \else
100 \normalexpanded{\externalfigure[\m_typesetting_name][typesetting]}[#2,#4]
101 \fi
102 \endgroup}
103
104
105
106
107
108\newcount\c_grph_steps_reference
109\newdimen\d_grph_steps_x
110\newdimen\d_grph_steps_y
111\newbox \b_grph_steps_colorbar
112
113\ifdefined\referring\else \mutable\let\referring\relax \fi
114\ifdefined\marking \else \mutable\let\marking \relax \fi
115\ifdefined\remark \else \mutable\let\remark \relax \fi
116\ifdefined\colorbar \else \mutable\let\colorbar \relax \fi
117
118\tolerant\protected\def\grph_steps_place_figure#1#2#3#4[#5]
119 {\hpack
120 {\setbox\scratchbox\hpack
121 {\useexternalfigure[\s!dummy][#2][#3,#5]
122 \externalfigure[\s!dummy]}
123 \grph_steps_calculate
124 \startpositioning
125 \enforced\let\referring\grph_steps_one_referring
126 \enforced\let\marking \grph_steps_one_marking
127 \enforced\let\remark \grph_steps_one_remark
128 \enforced\let\colorbar \grph_steps_one_colorbar
129 \position(0,0){\box\scratchbox}
130 \linewidth\onepoint
131 \setuppositioning
132 [\c!unit=pt,
133 \c!xscale=\withoutpt\the\d_grph_steps_x,
134 \c!yscale=\withoutpt\the\d_grph_steps_y,
135 \c!factor=1]
136 \ignorespaces#4
137 \enforced\let\referring\grph_steps_two_referring
138 \enforced\let\marking \grph_steps_two_marking
139 \enforced\let\remark \grph_steps_two_remark
140 \enforced\let\colorbar \grph_steps_two_colorbar
141 \ignorespaces#4\removeunwantedspaces
142 \stoppositioning
143 \ifvoid\b_grph_steps_colorbar\else\box\b_grph_steps_colorbar\fi}}
144
145\protected\def\grph_steps_one_referring(#1,#2)#*(#3,#4)#*[#5]
146 {\position(#1,#2){\grph_steps_goto(#3,#4){\externalfigureparameter\c!frames}[#5]}}
147
148\protected\def\grph_steps_one_marking(#1,#2)#*(#3,#4)#*[#5]
149 {\position(#1,#2){\grph_steps_this_is(#3,#4){\externalfigureparameter\c!frames}[#5]}}
150
151\protected\def\grph_steps_one_remark (#,#)#*(#,#)#*[#]#*#:#{}
152\protected\def\grph_steps_one_colorbar #[#]{}
153\protected\def\grph_steps_two_referring(#,#)#*(#,#)#*[#]{}
154
155\let\grph_steps_two_marking\grph_steps_two_referring
156
157\protected\def\grph_steps_two_remark
158 {\grph_steps_comment\v!no}
159
160\protected\def\grph_steps_two_colorbar#1[#2]
161 {\begingroup
162 \global\setbox\b_grph_steps_colorbar\vpack
163 {\forgetall
164 \processcommalist[#2]\grph_colorbar_make_step}
165 \global\setbox\b_grph_steps_colorbar\vpack
166 {\hskip2\emwidth\box\b_grph_steps_colorbar}
167 \global\wd\b_grph_steps_colorbar\zeropoint
168 \endgroup}
169
170\protected\def\grph_colorbar_make_step#1
171 {\blackrule[\c!color=#1,\c!width=2\emwidth,\c!height=\exheight,\c!depth=\zeropoint]
172 \endgraf}
173
174\permanent\protected\def\startfigure[#1]#*[#2]#*[#3]#:#4\stopfigure
175 {\doifelse{\externalfigureparameter\c!option}\v!test
176 {\grph_steps_test_figure{#1}{#2}{#3}{#4}
177 \letexternalfigureparameter\c!frames\v!on}
178 {\letexternalfigureparameter\c!frames\v!off}
179 \setvalue{\??externalfigureinstance#1}
180 {\grph_steps_place_figure{#1}{#2}{#3}{#4}}}
181
182\permanent\protected\lettonothing\stopfigure
183
184\ifdefined\referring \else \let\referring\relax \fi
185\ifdefined\marking \else \let\marking \relax \fi
186\ifdefined\remark \else \let\remark \relax \fi
187\ifdefined\colorbar \else \let\colorbar \relax \fi
188
189\protected\def\grph_steps_test_figure#1#2#3#4
190 {\begingroup
191 \setbox\scratchbox\hpack
192 {\useexternalfigure[\s!dummy][#2][\c!wfactor=\v!max]
193 \externalfigure[\s!dummy]}
194 \let\referring\grph_steps_three_referring
195 \let\marking \grph_steps_three_marking
196 \let\remark \grph_steps_three_remark
197 \let\colorbar \grph_steps_three_colorbar
198 \c_grph_steps_reference\zerocount
199 \setbox\scratchboxone\vpack
200 {\hsize240\points
201 \startpositioning
202 \grph_steps_calculate
203 \position(0,0)
204 {\box\scratchbox}
205 \position(0,0)
206 {\basegrid
207 [\c!nx=\externalfigureparameter\c!xmax,
208 \c!dx=\withoutpt\the\d_grph_steps_x,
209 \c!ny=\externalfigureparameter\c!ymax,
210 \c!dy=\withoutpt\the\d_grph_steps_y,
211 \c!xstep=1,
212 \c!ystep=1,
213 \c!scale=1,
214 \c!offset=\v!no,
215 \c!unit=pt]}
216 \setuppositioning
217 [\c!unit=pt,
218 \c!xscale=\withoutpt\the\d_grph_steps_x,
219 \c!yscale=\withoutpt\the\d_grph_steps_y,
220 \c!factor=1]
221 \linewidth\onepoint
222 \ignorespaces#4\removeunwantedspaces
223 \stoppositioning
224 \vfill}
225 \c_grph_steps_reference\zerocount
226 \enforced\let\referring\grph_steps_four_referring
227 \enforced\let\marking \grph_steps_four_marking
228 \enforced\let\remark \grph_steps_four_remark
229 \enforced\let\colorbar \grph_steps_four_colorbar
230 \setbox\scratchboxtwo\vbox
231 {\forgetall
232 \begingroup
233 \tfa\doifelsenothing{#1}{#2}{#1}
234 \endgroup
235 \blank
236 \tfxx#4
237 \vfilll}
238 \ifdim\ht\scratchboxone>\ht\scratchboxtwo
239 \ht\scratchboxtwo\ht\scratchboxone
240 \else
241 \ht\scratchboxone\ht\scratchboxtwo
242 \fi
243 \hpack
244 {\hskip3\emwidth
245 \tpack{\vskip12\points\box\scratchboxone\vskip6\points}
246 \tpack{\vskip12\points\box\scratchboxtwo\vskip6\points}}
247 \endgroup}
248
249\definesystemconstant{vwa}
250\definesystemconstant{vwb}
251
252\tolerant\protected\def\grph_steps_three_referring(#1,#2)#*(#3,#4)#*[#5]
253 {\advance\c_grph_steps_reference\plusone
254 \position(#1,#2)
255 {\hbox{\the\c_grph_steps_reference}}
256 \position(#1,#2)
257 {\gotosomeinternal\s!vwb{#5}\realfolio
258 {\grph_steps_marker(#3,#4)\v!on{\thisissomeinternal\s!vwa{#5}}}}}
259
260\protected\def\grph_steps_three_remark
261 {\grph_steps_comment\v!yes}
262
263\let\grph_steps_three_marking \grph_steps_three_referring
264\let\grph_steps_three_colorbar\grph_steps_one_colorbar
265
266\protected\def\grph_steps_four_referring{\grph_steps_text{\normalstartimath\rightarrow\normalstopimath}}
267\protected\def\grph_steps_four_marking {\grph_steps_text{\normalstartimath\leftarrow \normalstopimath}}
268
269\let\grph_steps_four_remark \grph_steps_one_remark
270\let\grph_steps_four_colorbar\grph_steps_one_colorbar
271
272
273
274\def\grph_steps_calculate
275 {\ifnum0\externalfigureparameter\c!xmax=\zerocount
276 \ifnum0\externalfigureparameter\c!ymax=\zerocount
277 \setexternalfigureparameter\c!ymax{24}
278 \fi
279 \d_grph_steps_y\figureheight
280 \divide\d_grph_steps_y \externalfigureparameter\c!ymax
281 \d_grph_steps_x\d_grph_steps_y
282 \scratchdimen\figurewidth
283 \advance\scratchdimen\d_grph_steps_y
284 \divide \scratchdimen\d_grph_steps_y
285 \setexternalfigureparameter\c!xmax{\number\scratchdimen}
286 \else
287 \d_grph_steps_x\figurewidth \divide\d_grph_steps_x \externalfigureparameter\c!xmax\relax
288 \d_grph_steps_y\figureheight \divide\d_grph_steps_y \externalfigureparameter\c!ymax\relax
289 \fi}
290
291\tolerant\def\grph_steps_comment#1(#2,#3)#*(#4,#5)#*[#6]#*#:#7
292 {\position(#2,#3)
293 {\setnostrut
294 \framed[\c!width=#4\d_grph_steps_x,\c!height=#5\d_grph_steps_y,\c!offset=\v!none,\c!frame=#1,#6]{#7}}}
295
296
297
298
299\def\grph_steps_goto(#1,#2)#3[#4]
300 {\gotobox{\vpack{\grph_steps_area(#1,#2)#3{}}}[#4]}
301
302\tolerant\def\grph_steps_text#1(#2,#3)#*(#4,#5)#*[#6]
303 {\advance\c_grph_steps_reference\plusone
304 \hbox
305 {\quad
306 \thisissomeinternal\s!vwb{#6}
307 \gotosomeinternal\s!vwa{#6}\realfolio{\hbox to 1.5\emwidth{\the\c_grph_steps_reference\hfill}}
308 \quad#1 (#2,#3) (#4,#5) [#6]\hfill}
309 \endgraf}
310
311\def\grph_steps_this_is(#1,#2)#3[#4]
312 {\grph_steps_area(#1,#2){#3}{\dosetdirectpagereference{#4}}}
313
314\def\grph_steps_area(#1,#2)#3#4
315 {\bgroup
316 \setnostrut
317 \framed[\c!width=#1\d_grph_steps_x,\c!height=#2\d_grph_steps_y,\c!offset=\zeropoint,\c!frame=#3]{#4}
318 \egroup}
319
320\def\grph_steps_marker(#1,#2)#3#4
321 {\framed[\c!width=#1\d_grph_steps_x,\c!height=#2\d_grph_steps_y,\c!offset=\v!none,\c!frame=#3]{#4}}
322
323\protect \endinput
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370 |