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\def\page_boxes_construct_content_makeup#1#2#3
118 {\setbox#1\hbox
119 {\vbox to \textheight
120 {\offinterlineskip
121 \vskip\dimexpr1\topskip\strutheight\relax
122 \textwidth\makeupwidth
123 \hsize\textwidth
124 \boxmaxdepth\maxdepth
125 \noindent
126 \page_otr_command_package_contents#2#3}}
127 \wd#1\makeupwidth
128 \ht#1\textheight
129 \dp#1\zeropoint
130 \hsize\paperwidth
131 \vsize\paperheight
132 \setbox#1\vbox{\csname\??layoutmakeupalternative\doifbothsidesoverruled\v!page\v!rightpage\v!leftpage\endcsname}
133 \wd#1\paperwidth
134 \ht#1\paperheight
135 \dp#1\zeropoint}
136
137\installlayoutalternative\v!makeup{\page_boxes_construct_content_makeup}
138
139\newbox\b_page_area
140
141\unexpanded\def\pagearea
142 {\dotripleempty\page_area}
143
144\def\page_area
145 {\ifthirdargument
146 \expandafter\page_area_three
147 \else\ifsecondargument
148 \doubleexpandafter\page_area_two
149 \else
150 \doubleexpandafter\page_area_one
151 \fi\fi}
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 \else\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\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 \else\ifcsname\??layoutbackgrounds#1#2\endcsname
185 \page_area_indeed_yes{#1}{#2}
186 \else
187 \box\b_page_area
188 \fi\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\setvalue{\??layoutmakeupalternative\v!leftpage }{\csname\??layoutmakeupalternative\v!page\endcsname}
202\setvalue{\??layoutmakeupalternative\v!rightpage}{\csname\??layoutmakeupalternative\v!page\endcsname}
203
204\unexpanded\def\startpagelayout
205 {\bgroup
206 \catcode\endoflineasciicode\ignorecatcode
207 \page_layouts_start_layout}
208
209\let\stoppagelayout\relax
210
211\def\page_layouts_start_layout[#1]#2\stoppagelayout
212 {\egroup
213 \setvalue{\??layoutmakeupalternative#1}{#2}}
214
215\protect \endinput
216 |