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\unprotect
114
115\installcorenamespace{layoutmakeupalternative}
116
117\definecolor[\v!makeup:trace][s=.5,a=1,t=.5]
118
119\installtextracker
120 {pagelayout}
121 {\def\page_boxes_show_box{\backgroundline[\v!makeup:trace]}}
122 {\let\page_boxes_show_box\relax}
123
124\let\page_boxes_show_box\relax
125
126\def\page_boxes_construct_content_makeup#1#2#3
127 {\setbox#1\vpack\bgroup
128 \offinterlineskip
129 \calculatereducedvsizes
130 \calculatehsizes
131 \page_layouts_swap_margins\v!page
132 \setbox#1\hbox\bgroup
133 \vbox to \textheight\bgroup
134 \offinterlineskip
135 \vskip\dimexpr1\topskip\strutheight\relax
136 \textwidth\makeupwidth
137 \hsize\textwidth
138 \boxmaxdepth\maxdepth
139 \noindent
140 \hpack to \zeropoint{\anch_positions_place_anchors}
141 \page_boxes_show_box\bgroup
142 \page_otr_command_package_contents#2#3
143 \egroup
144 \egroup
145 \egroup
146 \wd#1\makeupwidth
147 \ht#1\textheight
148 \dp#1\zeropoint
149 \hsize\paperwidth
150 \vsize\paperheight
151 \setbox#1\vbox\bgroup
152
153
154 \doifbothsidesoverruled\relax\relax{\hkern\dimexpr\paperwidth\backspace\makeupwidth\cutspace\backspace\relax}
155 \page_boxes_show_box\bgroup
156 \csname\??layoutmakeupalternative\doifbothsidesoverruled\v!page\v!rightpage\v!leftpage\endcsname
157 \egroup
158 \egroup
159 \wd#1\paperwidth
160 \ht#1\paperheight
161 \dp#1\zeropoint
162
163 \box#1
164 \egroup}
165
166\installlayoutalternative\v!makeup{\page_boxes_construct_content_makeup}
167
168\newbox\b_page_area
169
170\unexpanded\def\pagearea
171 {\dotripleempty\page_area}
172
173\def\page_area
174 {\ifthirdargument
175 \expandafter\page_area_three
176 \else\ifsecondargument
177 \doubleexpandafter\page_area_two
178 \else
179 \doubleexpandafter\page_area_one
180 \fi\fi}
181
182\def\page_area_three[#1][#2][#3]
183 {\edef\m_page_area_three{#3}
184 \ifx\m_page_area_three\v!left
185 \let\m_page_area_three\c!lefttext
186 \else\ifx\m_page_area_three\v!right
187 \let\m_page_area_three\c!righttext
188 \else
189 \let\m_page_area_three\c!middletext
190 \fi\fi
191 \page_area_indeed{#1}{#2}\m_page_area_three}
192
193\def\page_area_two[#1][#2][#3]
194 {\edef\m_page_area_three{\doifbothsidesoverruled\c!righttext\c!righttext\c!lefttext}
195 \page_area_indeed{#1}{#2}\m_page_area_three}
196
197\def\page_area_one[#1][#2][#3]
198 {\edef\m_page_area_one{#1}
199 \ifx\m_page_area_one\v!text
200 \iftrialtypesetting
201 \fakebox\pagebox
202 \else
203 \page_backgrounds_add_to_text\pagebox
204 \page_grids_add_to_box\pagebox
205 \box\pagebox
206 \fi
207 \fi}
208
209\def\page_area_indeed#1#2#3
210 {\setbox\b_page_area\vbox{\getspecificlayouttext{#1}{#2}{#3}}
211 \iftrialtypesetting
212 \fakebox\b_page_area
213 \else\ifcsname\??layoutbackgrounds#1#2\endcsname
214 \page_area_indeed_yes{#1}{#2}
215 \else
216 \box\b_page_area
217 \fi\fi}
218
219\def\page_area_indeed_yes#1#2
220 {
221 \localframed
222 [\??layoutbackgrounds#1#2]
223 [\c!width=\wd\b_page_area,
224 \c!height=\ht\b_page_area,
225 \c!offset=\v!overlay]
226 {\box\b_page_area}}
227
228
229
230\setvalue{\??layoutmakeupalternative\v!leftpage }{\csname\??layoutmakeupalternative\v!page\endcsname}
231\setvalue{\??layoutmakeupalternative\v!rightpage}{\csname\??layoutmakeupalternative\v!page\endcsname}
232
233\unexpanded\def\startpagelayout
234 {\bgroup
235 \catcode\endoflineasciicode\ignorecatcode
236 \page_layouts_start_layout}
237
238\let\stoppagelayout\relax
239
240\def\page_layouts_start_layout[#1]#2\stoppagelayout
241 {\egroup
242 \setvalue{\??layoutmakeupalternative#1}{#2}}
243
244\protect \endinput
245 |