1
2
3
4
5
6
7
8
9
10
11
12
13
14\writestatus{loading}{ConTeXt Page Macros Facing Pages}
15
16\unprotect
17
18
19
20
21
22
23
24
25
26
27
28\newbox \b_page_facings_content
29\newconditional\c_page_facings_busy
30
31\installcorenamespace{oppositeplacing}
32
33\installsetuponlycommandhandler \??oppositeplacing {oppositeplacing}
34
35\unexpanded\def\startopposite
36 {\dowithnextboxcontent
37 {\hsize\makeupwidth}
38 {\global\setbox\b_page_facings_content\vbox
39 {\ifvoid\b_page_facings_content
40 \directoppositeplacingparameter\c!before
41 \else
42 \directoppositeplacingparameter\c!inbetween
43 \unvbox\b_page_facings_content
44 \fi
45 \box\nextbox}}
46 \vbox\bgroup}
47
48\unexpanded\def\stopopposite
49 {\egroup}
50
51\def\page_facings_finish
52 {\ifvoid\b_page_facings_content \else
53 \global\setbox\b_page_facings_content\vbox to \makeupheight
54 {\unvbox\b_page_facings_content
55 \directoppositeplacingparameter\c!after
56 \vss}
57 \fi}
58
59\def\page_facings_flush
60 {\ifconditional\c_page_facings_busy
61 \ifvoid\b_page_facings_content \else
62 \page_facings_flush_indeed
63 \fi
64 \fi}
65
66\def\page_facings_flush_indeed
67 {\ifnum\realpageno>\plusone
68 \begingroup
69 \pageornamentstate\plusone
70 \page_facings_finish
71 \page_boxes_shipout{\page_boxes_constructed_page\box\b_page_facings_content}
72 \endgroup
73 \else
74 \global\setbox\b_page_facings_content\emptybox
75 \fi}
76
77\appendtoks
78 \doifelse{\directoppositeplacingparameter\c!state}\v!start\settrue\setfalse\c_page_facings_busy
79\to \everysetupoppositeplacing
80
81\setupoppositeplacing
82 [\c!state=\v!start,
83 \c!before=,
84 \c!inbetween=\blank,
85 \c!after=]
86
87\protect \endinput
88 |