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\unprotect
113
114\startcontextdefinitioncode
115
116\installcorenamespace{layoutmakeupalternative}
117
118\def\page_boxes_construct_content_makeup#1#2#3
119 {\setbox#1\hbox
120 {\vbox to \textheight
121 {\offinterlineskip
122 \vskip\dimexpr1\topskip\strutheight\relax
123 \textwidth\makeupwidth
124 \hsize\textwidth
125 \boxmaxdepth\maxdepth
126 \noindent
127 \page_otr_command_package_contents#2#3}}
128 \wd#1\makeupwidth
129 \ht#1\textheight
130 \dp#1\zeropoint
131 \hsize\paperwidth
132 \vsize\paperheight
133 \setbox#1\vbox{\csname\??layoutmakeupalternative\doifbothsidesoverruled\v!page\v!rightpage\v!leftpage\endcsname}
134 \wd#1\paperwidth
135 \ht#1\paperheight
136 \dp#1\zeropoint}
137
138\installlayoutalternative\v!makeup{\page_boxes_construct_content_makeup}
139
140\newbox\b_page_area
141
142\permanent\tolerant\protected\def\pagearea[#1]#*[#2]#*[#3]
143 {\ifarguments
144 \expandafter\gobblethreeoptionals
145 \or
146 \expandafter\page_area_one
147 \or
148 \expandafter\page_area_two
149 \or
150 \expandafter\page_area_three
151 \fi[#1][#2][#3]}
152
153\def\page_area_three[#1][#2][#3]
154 {\edef\m_page_area_three{#3}
155 \ifx\m_page_area_three\v!left
156 \let\m_page_area_three\c!lefttext
157 \orelse\ifx\m_page_area_three\v!right
158 \let\m_page_area_three\c!righttext
159 \else
160 \let\m_page_area_three\c!middletext
161 \fi
162 \page_area_indeed{#1}{#2}\m_page_area_three}
163
164\def\page_area_two[#1][#2][#3]
165 {\edef\m_page_area_three{\doifbothsidesoverruled\c!righttext\c!righttext\c!lefttext}
166 \page_area_indeed{#1}{#2}\m_page_area_three}
167
168\def\page_area_one[#1][#2][#3]
169 {\edef\m_page_area_one{#1}
170 \ifx\m_page_area_one\v!text
171 \iftrialtypesetting
172 \fakebox\pagebox
173 \else
174 \page_backgrounds_add_to_text\pagebox
175 \page_grids_add_to_box\pagebox
176 \box\pagebox
177 \fi
178 \fi}
179
180\def\page_area_indeed#1#2#3
181 {\setbox\b_page_area\vbox{\getspecificlayouttext{#1}{#2}{#3}}
182 \iftrialtypesetting
183 \fakebox\b_page_area
184 \orelse\ifcsname\??layoutbackgrounds#1#2\endcsname
185 \page_area_indeed_yes{#1}{#2}
186 \else
187 \box\b_page_area
188 \fi}
189
190\def\page_area_indeed_yes#1#2
191 {
192 \localframed
193 [\??layoutbackgrounds#1#2]
194 [\c!width=\wd\b_page_area,
195 \c!height=\ht\b_page_area,
196 \c!offset=\v!overlay]
197 {\box\b_page_area}}
198
199
200
201\defcsname\??layoutmakeupalternative\v!leftpage \endcsname{\csname\??layoutmakeupalternative\v!page\endcsname}
202\defcsname\??layoutmakeupalternative\v!rightpage\endcsname{\csname\??layoutmakeupalternative\v!page\endcsname}
203
204\permanent\protected\def\startpagelayout
205 {\bgroup
206 \catcode\endoflineasciicode\ignorecatcode
207 \page_layouts_start_layout}
208
209\aliased\let\stoppagelayout\relax
210
211\def\page_layouts_start_layout[#1]#2\stoppagelayout
212 {\egroup
213 \defcsname\??layoutmakeupalternative#1\endcsname{#2}}
214
215\stopcontextdefinitioncode
216
217\protect \endinput
218 |