1
2
3
4
5
6
7
8
9
10
11
12
13
14\writestatus{loading}{ConTeXt Page Macros Cutmarks and Colorbars}
15
16\unprotect
17
18
19
20
21
22
23
24
25
26
27
28
29
30\def\pagecutmarklength {5mm}
31\def\pagecutmarkoffset {3mm}
32\def\pagecutmarkmargin{10cm}
33
34
35
36\newconditional\c_page_marks_add_more_color
37\newconditional\c_page_marks_add_more_marking
38\newconditional\c_page_marks_add_more_lines
39\newconditional\c_page_marks_add_page_lines
40\newconditional\c_page_marks_add_more_number
41
42\newcount\c_page_marks_max
43\newcount\c_page_marks_nx
44\newcount\c_page_marks_ny
45
46\startuniqueMPgraphic{print:color}{w,h,l,o}
47 loadmodule "crop" ;
48 page_marks_add_color(\MPvar w,\MPvar h,\MPvar l,\MPvar o) ;
49\stopuniqueMPgraphic
50
51\startuniqueMPgraphic{print:marking}{w,h,l,o}
52 loadmodule "crop" ;
53 page_marks_add_marking(\MPvar w,\MPvar h,\MPvar l,\MPvar o) ;
54\stopuniqueMPgraphic
55
56\startuniqueMPgraphic{print:lines}{w,h,l,o,x,y}
57 loadmodule "crop" ;
58 page_marks_add_lines(\MPvar w,\MPvar h,\MPvar l,\MPvar o,\MPvar x,\MPvar y,
59 \ifconditional\c_page_marks_add_page_lines tru\else fals\fi e) ;
60\stopuniqueMPgraphic
61
62\startuseMPgraphic{print:number}{w,h,l,o,n}
63 loadmodule "crop" ;
64 page_marks_add_number(\MPvar w,\MPvar h,\MPvar l,\MPvar o,\MPvar n) ;
65\stopuseMPgraphic
66
67\def\page_marks_add_color
68 {\setlayoutcomponentattribute{\v!print:\v!color}
69 \setbox\scratchbox\hpack \layoutcomponentboxattribute\bgroup
70 \uniqueMPgraphic
71 {print:color}
72 {w=\the\scratchwidth,h=\the\scratchheight,
73 l=\pagecutmarklength,o=\pagecutmarkoffset}
74 \egroup
75 \wd\scratchbox\scratchwidth\ht\scratchbox\scratchheight\dp\scratchbox\scratchdepth
76 \hskip\scratchwidth\box\scratchbox}
77
78\def\page_marks_add_marking
79 {\setlayoutcomponentattribute{\v!print:\v!marking}
80 \setbox\scratchbox\hpack \layoutcomponentboxattribute\bgroup
81 \uniqueMPgraphic
82 {print:marking}
83 {w=\the\scratchwidth,h=\the\scratchheight,
84 l=\pagecutmarklength,o=\pagecutmarkoffset}
85 \egroup
86 \wd\scratchbox\scratchwidth\ht\scratchbox\scratchheight\dp\scratchbox\scratchdepth
87 \hskip\scratchwidth\box\scratchbox}
88
89\def\page_marks_add_lines
90 {\setlayoutcomponentattribute{\v!print:\v!lines}
91 \setbox\scratchbox\hpack \layoutcomponentboxattribute\bgroup
92 \uniqueMPgraphic
93 {print:lines}
94 {w=\the\scratchwidth,h=\the\scratchheight,
95 l=\pagecutmarklength,o=\pagecutmarkoffset,
96 x=\the\c_page_marks_nx,y=\the\c_page_marks_ny}
97 \egroup
98 \wd\scratchbox\scratchwidth\ht\scratchbox\scratchheight\dp\scratchbox\scratchdepth
99 \hskip\scratchwidth\box\scratchbox}
100
101\def\page_marks_add_number
102 {\setlayoutcomponentattribute{\v!print:\v!number}
103 \setbox\scratchbox\hpack \layoutcomponentboxattribute\bgroup
104 \useMPgraphic
105 {print:number}
106 {w=\the\scratchwidth ,h=\the\scratchheight,
107 l=\pagecutmarklength,o=\pagecutmarkoffset,
108 n=\number\ifcase\arrangeno\realpageno\else\arrangeno\fi}
109 \egroup
110 \wd\scratchbox\scratchwidth\ht\scratchbox\scratchheight\dp\scratchbox\scratchdepth
111 \hskip\scratchwidth\box\scratchbox}
112
113\def\page_marks_add_page_indeed#1
114 {\setbox#1\hpack\bgroup
115 \resetvisualizers
116 \let\objectoffset\pagecutmarkmargin
117
118 \scratchwidth \wd#1
119 \scratchheight\ht#1
120 \scratchdepth \dp#1
121 \box#1\relax
122 \page_marks_add_lines
123 \egroup}
124
125\def\page_marks_add_more_indeed#1
126 {\setbox#1\hbox\bgroup
127 \resetvisualizers
128 \let\objectoffset\pagecutmarkmargin
129 \infofont
130 \scratchwidth \wd#1
131 \scratchheight\ht#1
132 \scratchdepth \dp#1
133 \box#1\relax
134 \ifconditional\c_page_marks_add_more_color
135 \page_marks_add_color
136 \fi
137 \ifconditional\c_page_marks_add_more_marking
138 \page_marks_add_marking
139 \fi
140 \ifconditional\c_page_marks_add_more_lines
141 \page_marks_add_lines
142 \fi
143 \ifconditional\c_page_marks_add_more_number
144 \page_marks_add_number
145 \fi
146 \global\advance\c_page_marks_max\minusone
147 \ifnum\c_page_marks_max>\zerocount\else
148 \glet\page_marks_add_more\gobbleoneargument
149 \glet\page_marks_add_page\gobbleoneargument
150 \fi
151 \egroup}
152
153\let\page_marks_add_page\gobbleoneargument
154\let\page_marks_add_more\gobbleoneargument
155
156\installcorenamespace{layoutmarking}
157
158\unexpanded\def\installpagecutmark#1#2
159 {\setvalue{\??layoutmarking#1}{#2}}
160
161
162
163
164
165
166
167
168
169
170\installpagecutmark\v!on
171 {
172 \settrue\c_page_marks_add_more_lines
173 \settrue\c_page_marks_add_more_number}
174
175\installpagecutmark\v!page
176 {\settrue\c_page_marks_add_page_lines
177 \settrue\c_page_marks_add_more_lines
178 \settrue\c_page_marks_add_more_number}
179
180\installpagecutmark\v!empty
181 {
182 \settrue\c_page_marks_add_more_lines}
183
184\installpagecutmark\v!color
185 {
186 \settrue\c_page_marks_add_more_lines
187 \settrue\c_page_marks_add_more_color
188 \settrue\c_page_marks_add_more_marking
189 \settrue\c_page_marks_add_more_number}
190
191\installpagecutmark\v!one {\global\c_page_marks_max\plusone}
192\installpagecutmark\v!two {\global\c_page_marks_max\plustwo}
193\installpagecutmark\v!four{\global\c_page_marks_max\plusfour}
194
195\unexpanded\def\page_marks_set#1
196 {\begincsname\??layoutmarking#1\endcsname}
197
198\appendtoks
199 \setfalse\c_page_marks_add_page_lines
200 \setfalse\c_page_marks_add_more_color
201 \setfalse\c_page_marks_add_more_marking
202 \setfalse\c_page_marks_add_more_lines
203 \setfalse\c_page_marks_add_more_number
204 \global\c_page_marks_max\maxcount
205 \rawprocesscommacommand[\layoutparameter\c!marking]\page_marks_set
206 \ifnum\c_page_marks_max<\maxcount
207 \ifconditional\c_page_marks_add_page_lines \else
208 \ifconditional\c_page_marks_add_more_color \else
209 \ifconditional\c_page_marks_add_more_marking\else
210 \ifconditional\c_page_marks_add_more_lines \else
211 \ifconditional\c_page_marks_add_more_number \else
212 \settrue\c_page_marks_add_page_lines
213 \settrue\c_page_marks_add_more_number
214 \fi\fi\fi\fi\fi
215 \fi
216 \ifconditional\c_page_marks_add_page_lines
217 \let\page_marks_add_page\page_marks_add_page_indeed
218 \else
219 \let\page_marks_add_page\gobbleoneargument
220 \fi
221
222 \ifconditional\c_page_marks_add_more_lines
223 \let\page_marks_add_more\page_marks_add_more_indeed
224 \else\ifconditional\c_page_marks_add_more_color
225 \let\page_marks_add_more\page_marks_add_more_indeed
226 \else\ifconditional\c_page_marks_add_more_marking
227 \let\page_marks_add_more\page_marks_add_more_indeed
228 \else\ifconditional\c_page_marks_add_more_number
229 \let\page_marks_add_more\page_marks_add_more_indeed
230 \else
231 \let\page_marks_add_more\gobbleoneargument
232 \fi\fi\fi\fi
233\to \everysetuplayout
234
235\setuplayout
236 [\c!marking=\v!off]
237
238\protect \endinput
239 |