1
2
3
4
5
6
7
8
9
10
11
12
13
14\writestatus{loading}{ConTeXt Page Macros Spreading}
15
16
17
18\unprotect
19
20\newbox \b_page_spread_content
21\newconditional\c_page_spread_busy
22\newconditional\c_page_spread_once
23
24\permanent\overloaded\protected\def\normalsettextpagecontent#1#2#3
25 {\setbox#1\hpack
26 {\setlayoutcomponentattribute{\v!page:\v!text}
27 \vpack \layoutcomponentboxattribute to \textheight
28 {\offinterlineskip
29 \freezetextwidth
30 \hsize\textwidth
31 \boxmaxdepth\maxdepth
32 \page_otr_flush_top_content
33 \noindent
34 \page_otr_command_package_contents#2#3}}
35 \dp#1\zeropoint
36 \ifconditional\c_page_spread_busy
37 \normalsettextpagecontent_spread{#1}
38 \else
39 \normalsettextpagecontent_normal{#1}
40 \fi}
41
42\def\normalsettextpagecontent_normal#1
43 {\ifdim\wd#1=\makeupwidth\else
44 \setbox#1\hpack to \makeupwidth
45 {\hss\box#1\hss}
46 \fi}
47
48\def\normalsettextpagecontent_spread#1
49 {\setbox#1\hpack to \makeupwidth
50 {\ifvoid\b_page_spread_content
51 \ifconditional\c_page_spread_once
52 \box#1
53 \else
54 \global\setbox\b_page_spread_content\box#1
55 \copy\b_page_spread_content
56 \fi
57 \hss
58 \else
59 \hss
60 \ifarrangingpages
61
62 \orelse\ifconditional\c_page_spread_once
63 \global\setbox\b_page_spread_content\emptyhbox
64 \wd\b_page_spread_content\makeupwidth
65 \ht\b_page_spread_content\textheight
66 \else
67
68 \fi
69 \box\b_page_spread_content
70 \fi}}
71
72\protected\def\page_spread_flush
73 {\ifconditional\c_page_spread_busy \ifvoid\b_page_spread_content\else
74
75 \emptyhbox \page
76 \fi \fi }
77
78\permanent\protected\def\startspread
79 {\unless\ifdoublesided
80 \expandafter\page_spread_start_nop
81 \orelse\ifconditional\c_page_spread_busy
82 \expandafter\page_spread_start_nop
83 \else
84 \expandafter\page_spread_start_yes
85 \fi}
86
87\aliased\let\stopspread\relax
88
89\protected\def\page_spread_start_yes
90 {\bgroup
91 \page[\v!left]
92
93 \c_page_spread_busy\conditionaltrue
94 \normalexpanded{\setuplayout[\c!textwidth=\todimension{2\textwidth2\backspace}]}
95 \enforced\let\stopspread\page_spread_stop_yes}
96
97\permanent\protected\def\page_spread_stop_yes
98 {\kern\zeropoint
99 \page
100 \setuplayout[\c!textwidth=\textwidth]
101 \page[\v!left]
102 \egroup}
103
104\protected\def\page_spread_start_nop
105 {\bgroup
106 \let\stopspread\page_spread_stop_nop}
107
108\protected\def\page_spread_stop_nop
109 {\egroup}
110
111\protect \endinput
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131 |