core-ini.mkxl /size: 5539 b    last modification: 2023-12-21 09:44
1%D \module
2%D   [       file=core-ini,
3%D        version=2003.12.01,
4%D          title=\CONTEXT\ Core Macros,
5%D       subtitle=Additional Initialization,
6%D         author=Hans Hagen,
7%D           date=\currentdate,
8%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
9%C
10%C This module is part of the \CONTEXT\ macro||package and is
11%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
12%C details.
13
14\writestatus{loading}{ConTeXt Core Macros / Additional Initialization}
15
16\unprotect
17
18%D We introduce a couple of variables that are used all over \CONTEXT. Alternatively
19%D we could define them in each module but as they are part of the bigger picture we
20%D prefer to do it here. Ideally we should hav ea proper dependency tree but it might
21%D be that we want to make versions with a smaller footprints in which case one would
22%D still need to define the token list registers (unless we could do that runtime).
23
24%D \macros
25%D   {every...}
26%D
27%D A few every's.
28
29%D Output routine:
30
31\newtoks \everybeforeoutput
32\newtoks \everyafteroutput
33
34%D Shipout:
35
36\newtoks \everyshipout
37\newtoks \everybeforeshipout
38\newtoks \everyaftershipout
39\newtoks \everyfirstshipout
40\newtoks \everylastshipout
41
42%D End of run:
43
44\newtoks \everybye
45\newtoks \everygoodbye
46\newtoks \everynotabene
47
48%D Document:
49
50\newtoks \everyendoftextbody
51
52\newtoks \everystarttext
53\newtoks \everystoptext
54
55\newtoks \everystartdocument
56\newtoks \everystopdocument
57
58%D Purity:
59
60\newtoks \everyforgetall
61\newtoks \everycleanupfeatures
62\newtoks \everysimplifycommands
63%newtoks \everypreroll
64
65\aliased\let\simplifiedcommands\everysimplifycommands % backward compatible, will stay as it's used in styles
66
67\newconditional\simplifyingcommands % public
68
69\permanent\protected\def\forgetall       {\expand\everyforgetall}
70\permanent\protected\def\cleanupfeatures {\expand\everycleanupfeatures}
71\permanent\protected\def\simplifycommands{\expand\everysimplifycommands}
72
73\appendtoks
74    \simplifyingcommands\conditionaltrue
75\to \everysimplifycommands
76
77\appendtoks
78    \everypar      \emptytoks % pretty important
79    \everybeforepar\emptytoks % pretty important
80\to \everyforgetall
81
82%D Page building:
83
84\newtoks \everybeforepagebody
85\newtoks \everyafterpagebody
86
87\aliased\let\everypagebody\everybeforepagebody % backward compatible, will become obsolete
88
89%D Floats:
90
91\newtoks \everyinsidefloat
92
93%D Exporting:
94
95\newtoks \everyinitializeexport
96
97%D Sectioning:
98
99%newtoks \everyheadstart
100
101%D Par building (experimental, used in xml <p> .. </p>)
102
103\newtoks \everybeginofpar
104\newtoks \everyendofpar
105%newtoks \everyparflush
106
107\protected\def\bpar{\expand\everybeginofpar\ignorespaces}                  % may interfere with \everypar
108\protected\def\epar{\ifhmode\removeunwantedspaces\expand\everyendofpar\fi} % test prevents problems with \bpar\epar
109
110%D Lists:
111
112\newtoks \everylistentry
113\newtoks \everysavesortkeys
114
115%D Marks:
116
117%newtoks \everymarking
118
119%D Fonts:
120
121\newtoks \everyfont
122\newtoks \everyglobalbodyfont
123\newtoks \everydefinedfont
124
125\newtoks \everybodyfont
126\newtoks \everyfontswitch
127
128\newtoks \everysetupbodyfont
129\newtoks \everyswitchtobodyfont
130
131%D Math:
132
133\newtoks \everybeforedisplayformula
134\newtoks \everymathematics
135
136% \prependtoks \expand\everymathematics \to \everymath
137% \prependtoks \expand\everymathematics \to \everydisplay
138
139\tokspre\everymath   {\expand\everymathematics}
140\tokspre\everydisplay{\expand\everymathematics}
141
142%D Tables:
143
144%newtoks \everytable % we need to disstinguish kinds
145
146%D More generic (used to be pushcolor etc)
147
148\newtoks\everystarttextproperties
149\newtoks\everystoptextproperties
150
151\permanent\protected\def\starttextproperties{\expand\everystarttextproperties}
152\permanent\protected\def\stoptextproperties {\expand\everystoptextproperties}
153
154%D \macros
155%D   {trialtypesetting}
156%D
157%D We disable trial typesetting in the output routine,
158%D just to be sure.
159
160\prependtoks
161    \resettrialtypesetting
162\to \everybeforepagebody
163
164%D \macros
165%D   {ifinpagebody,ifinsidecolumns,ifdoublesided,ifsinglesided}
166%D
167%D These will become system modes and conditionals
168
169\newif \ifinpagebody
170\newif \ifinsidecolumns
171\newif \ifinsidemulticolumns  % simple mixed-in-text columns
172\newif \ifdoublesided         \doublesidedfalse
173\newif \ifsinglesided         \singlesidedtrue
174\newif \ifinsidefloat
175\newif \ifdoingblocks
176\newif \ifgridsnapping
177\newif \ifexporting
178
179\newconstant\pageduplexmode % 0 single 1 double 2 mix
180\newconstant\pagebodymode   % 0 not 1 normal pagebody 2 spread
181
182\newinteger\nofcolumns      \nofcolumns     \plusone
183\newinteger\nofmulticolumns \nofmulticolumns\plusone
184
185%D \macros
186%D   {ifproductionrun}
187%D
188%D This boolean can be used to bypass certain initializations.
189
190% \newif\ifproductionrun % already defined
191
192\appendtoks
193    \productionruntrue
194\to \everydump
195
196%D \macros
197%D   {everyboxedcontent, ifboxedcontent,
198%D    startboxedcontent, stopboxedcontent}
199%D
200%D This one is relatively new and will be used as a more robust test for inner
201%D situations.
202
203\newif  \ifboxedcontent
204\newtoks\everyboxedcontent
205
206\appendtoks
207    \boxedcontenttrue
208\to \everyboxedcontent
209
210\permanent\protected\def\startboxedcontent{\bgroup\expand\everyboxedcontent}
211
212\aliased\let\stopboxedcontent\egroup
213
214% %D We store some original meanings, maybe in \type {math-ini}.
215%
216% \let\normalat   \at
217% \let\normalin   \in
218% \let\normalfrom \from
219% \let\normalover \over
220% \let\normalabout\about
221
222%D This will be implemented way later:
223
224\let\setlayoutcomponentattribute  \gobbleoneargument
225\let\resetlayoutcomponentattribute\relax
226
227\lettonothing\layoutcomponentboxattribute
228
229\protect \endinput
230