1
2
3
4
5
6
7
8
9
10
11
12
13
14\writestatus{loading}{ConTeXt Page Macros Extra Page Building}
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
122
123
124
125
126
127
128
129
130
131
132
133\unprotect
134
135\startcontextdefinitioncode
136
137\installcorenamespace{layoutmakeupalternative}
138
139\definecolor[\v!makeup:trace][s=.5,a=1,t=.5]
140
141\installtextracker
142 {pagelayout}
143 {\def\page_boxes_show_box{\backgroundline[\v!makeup:trace]}}
144 {\let\page_boxes_show_box\relax}
145
146\let\page_boxes_show_box\relax
147
148\def\page_boxes_construct_content_makeup#1#2#3
149 {\setbox#1\vpack\bgroup
150 \offinterlineskip
151 \calculatereducedvsizes
152 \calculatehsizes
153 \page_layouts_swap_margins\v!page
154 \setbox#1\hbox\bgroup
155 \vbox to \textheight\bgroup
156 \offinterlineskip
157 \vskip{1\topskip\strutheight}
158 \textwidth\makeupwidth
159 \hsize\textwidth
160 \boxmaxdepth\maxdepth
161 \noindent
162 \hpack to \zeropoint{\anch_positions_place_anchors}
163 \page_boxes_show_box\bgroup
164 \page_otr_command_package_contents#2#3
165 \egroup
166 \egroup
167 \egroup
168 \wd#1\makeupwidth
169 \ht#1\textheight
170 \dp#1\zeropoint
171 \hsize\paperwidth
172 \vsize\paperheight
173 \setbox#1\vbox\bgroup
174
175
176 \doifbothsidesoverruled\relax\relax{\hkern{\paperwidth\backspace\makeupwidth\cutspace\backspace}}
177 \page_boxes_show_box\bgroup
178 \csname\??layoutmakeupalternative\doifbothsidesoverruled\v!page\v!rightpage\v!leftpage\endcsname
179 \egroup
180 \egroup
181 \wd#1\paperwidth
182 \ht#1\paperheight
183 \dp#1\zeropoint
184
185 \box#1
186 \egroup}
187
188\installlayoutalternative\v!makeup{\page_boxes_construct_content_makeup}
189
190\newbox\b_page_area
191
192\permanent\tolerant\protected\def\pagearea[#1]#*[#2]#*[#3]
193 {\ifarguments
194 \expandafter\gobblethreeoptionals
195 \or
196 \expandafter\page_area_one
197 \or
198 \expandafter\page_area_two
199 \or
200 \expandafter\page_area_three
201 \fi[#1][#2][#3]}
202
203\def\page_area_three[#1][#2][#3]
204 {\edef\m_page_area_three{#3}
205 \ifx\m_page_area_three\v!left
206 \let\m_page_area_three\c!lefttext
207 \orelse\ifx\m_page_area_three\v!right
208 \let\m_page_area_three\c!righttext
209 \else
210 \let\m_page_area_three\c!middletext
211 \fi
212 \page_area_indeed{#1}{#2}\m_page_area_three}
213
214\def\page_area_two[#1][#2][#3]
215 {\edef\m_page_area_three{\doifbothsidesoverruled\c!righttext\c!righttext\c!lefttext}
216 \page_area_indeed{#1}{#2}\m_page_area_three}
217
218\def\page_area_one[#1][#2][#3]
219 {\ifcstok{#1}\v!text
220 \iftrialtypesetting
221 \fakebox\pagebox
222 \else
223 \page_backgrounds_add_to_text\pagebox
224 \page_grids_add_to_box\pagebox
225 \box\pagebox
226 \fi
227 \fi}
228
229\def\page_area_indeed#1#2#3
230 {\setbox\b_page_area\vbox{\getspecificlayouttext{#1}{#2}{#3}}
231 \iftrialtypesetting
232 \fakebox\b_page_area
233 \orelse\ifcsname\??layoutbackgrounds#1#2\endcsname
234 \page_area_indeed_yes{#1}{#2}
235 \else
236 \box\b_page_area
237 \fi}
238
239\def\page_area_indeed_yes#1#2
240 {
241 \localframed
242 [\??layoutbackgrounds#1#2]
243 [\c!width=\wd\b_page_area,
244 \c!height=\ht\b_page_area,
245 \c!offset=\v!overlay]
246 {\box\b_page_area}}
247
248
249
250\defcsname\??layoutmakeupalternative\v!leftpage \endcsname{\csname\??layoutmakeupalternative\v!page\endcsname}
251\defcsname\??layoutmakeupalternative\v!rightpage\endcsname{\csname\??layoutmakeupalternative\v!page\endcsname}
252
253\permanent\protected\def\startpagelayout
254 {\bgroup
255 \catcode\endoflineasciicode\ignorecatcode
256 \page_layouts_start_layout}
257
258\aliased\let\stoppagelayout\relax
259
260\def\page_layouts_start_layout[#1]#2\stoppagelayout
261 {\egroup
262 \defcsname\??layoutmakeupalternative#1\endcsname{#2}}
263
264\permanent\protected\def\pagelayout[#1]
265 {\csname\??layoutmakeupalternative#1\endcsname}
266
267\stopcontextdefinitioncode
268
269\protect \endinput
270 |