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\mutable\def\pagecutmarklength {5mm}
31\mutable\def\pagecutmarkoffset {3mm}
32\mutable\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\permanent\protected\def\installpagecutmark#1#2
159 {\defcsname\??layoutmarking#1\endcsname{#2}}
160
161\installpagecutmark\v!on
162 {
163 \settrue\c_page_marks_add_more_lines
164 \settrue\c_page_marks_add_more_number}
165
166\installpagecutmark\v!page
167 {\settrue\c_page_marks_add_page_lines
168 \settrue\c_page_marks_add_more_lines
169 \settrue\c_page_marks_add_more_number}
170
171\installpagecutmark\v!empty
172 {
173 \settrue\c_page_marks_add_more_lines}
174
175\installpagecutmark\v!color
176 {
177 \settrue\c_page_marks_add_more_lines
178 \settrue\c_page_marks_add_more_color
179 \settrue\c_page_marks_add_more_marking
180 \settrue\c_page_marks_add_more_number}
181
182\installpagecutmark\v!one {\global\c_page_marks_max\plusone}
183\installpagecutmark\v!two {\global\c_page_marks_max\plustwo}
184\installpagecutmark\v!four{\global\c_page_marks_max\plusfour}
185
186\permanent\protected\def\page_marks_set#1
187 {\begincsname\??layoutmarking#1\endcsname}
188
189\def\page_marks_setup_layout
190 {\setfalse\c_page_marks_add_page_lines
191 \setfalse\c_page_marks_add_more_color
192 \setfalse\c_page_marks_add_more_marking
193 \setfalse\c_page_marks_add_more_lines
194 \setfalse\c_page_marks_add_more_number
195 \global\c_page_marks_max\maxcount
196 \rawprocesscommacommand[\layoutparameter\c!marking]\page_marks_set
197 \ifnum\c_page_marks_max<\maxcount
198 \ifconditional\c_page_marks_add_page_lines \orelse
199 \ifconditional\c_page_marks_add_more_color \orelse
200 \ifconditional\c_page_marks_add_more_marking\orelse
201 \ifconditional\c_page_marks_add_more_lines \orelse
202 \ifconditional\c_page_marks_add_more_number \else
203 \settrue\c_page_marks_add_page_lines
204 \settrue\c_page_marks_add_more_number
205 \fi
206 \fi
207 \ifconditional\c_page_marks_add_page_lines
208 \let\page_marks_add_page\page_marks_add_page_indeed
209 \else
210 \let\page_marks_add_page\gobbleoneargument
211 \fi
212
213 \ifconditional\c_page_marks_add_more_lines
214 \let\page_marks_add_more\page_marks_add_more_indeed
215 \orelse\ifconditional\c_page_marks_add_more_color
216 \let\page_marks_add_more\page_marks_add_more_indeed
217 \orelse\ifconditional\c_page_marks_add_more_marking
218 \let\page_marks_add_more\page_marks_add_more_indeed
219 \orelse\ifconditional\c_page_marks_add_more_number
220 \let\page_marks_add_more\page_marks_add_more_indeed
221 \else
222 \let\page_marks_add_more\gobbleoneargument
223 \fi}
224
225\appendtoks
226 \page_marks_setup_layout
227\to \everysetuplayout
228
229\setuplayout
230 [\c!marking=\v!off]
231
232\protect \endinput
233 |