1
2
3
4
5
6
7
8
9
10
11
12
13
14\writestatus{loading}{ConTeXt Math Macros Delimited}
15
16\unprotect
17
18
19
20
21
22
23
24
25\installcorenamespace{mathdelimited}
26\installcorenamespace{mathdelimitedalternative}
27
28\installcommandhandler \??mathdelimited {mathdelimited} \??mathdelimited
29
30\setupmathdelimited
31 [\c!define=\v!yes,
32 \c!alternative=\v!normal,
33 \c!mpoffset=.25\exheight,
34 \c!topoffset=\zeropoint,
35 \c!bottomoffset=\zeropoint,
36 \c!height=\zeropoint,
37 \c!depth=\zeropoint,
38 \c!strut=\v!height,
39 \c!source=\zerocount,
40 \c!size=\zerocount,
41 \c!left=\zerocount,
42 \c!right=\zerocount,
43 \c!color=,
44 \c!textcolor=\mathdelimitedparameter\c!color,
45 \c!symbolcolor=\mathdelimitedparameter\c!color,
46 \c!leftmargin=\zeropoint,
47 \c!rightmargin=\zeropoint]
48
49\appendtoks
50 \ifcstok{\mathdelimitedparameter\c!define}\v!yes
51 \frozen\protected\instance\edefcsname\currentmathdelimited\endcsname{\math_delimited_handle{\currentmathdelimited}}
52 \fi
53\to \everydefinemathdelimited
54
55\mutable\lettonothing\currentmathdelimited
56
57\tolerant\protected\def\math_delimited_handle#tag#*[#S#settings]#:#body
58 {\begingroup
59 \cdef\currentmathdelimited{#tag}
60 \setupcurrentmathdelimited[#settings]
61 \math_delimited_alternative{
62 \begincsname\??mathwhateverstrut\mathdelimitedparameter\c!strut\endcsname
63 \scratchdimen{\mathdelimitedparameter\c!leftmargin}
64 \ifzeropt\scratchdimen\else\kern\scratchdimen\fi
65 \begingroup
66 \usemathdelimitedcolorparameter\c!textcolor
67 #body
68 \endgroup
69 \scratchdimen{\mathdelimitedparameter\c!rightmargin}
70 \ifzeropt\scratchdimen\else\kern\scratchdimen\fi
71 }
72 \endgroup}
73
74\def\math_delimited_alternative{\csname\??mathdelimitedalternative\mathdelimitedparameter\c!alternative\endcsname}
75
76\protected\def\math_delimited_common
77 {\Udelimited
78 \usedcolorparameterattributes{\mathdelimitedparameter\c!symbolcolor}
79 \s!height{\mathdelimitedparameter\c!height\mathdelimitedparameter\c!topoffset}
80 \s!depth {\mathdelimitedparameter\c!depth\mathdelimitedparameter\c!bottomoffset}
81 \s!source{\namedboxanchor{\mathdelimitedparameter\c!source}}
82 \s!style \normalmathstyle
83 \s!size {\mathdelimitedparameter\c!size}
84 \zerocount \mathdelimitedparameter\c!left
85 \zerocount \mathdelimitedparameter\c!right
86 \relax}
87
88\defcsname\??mathdelimitedalternative\v!default\endcsname
89 {\math_delimited_common}
90
91\defcsname\??mathdelimitedalternative\v!normal\endcsname#body
92 {\edef\p_mathmeaning{\mathdelimitedparameter\c!mathmeaning}
93 \ifempty\p_mathmeaning
94 \let\p_mathmeaning\currentmathdelimited
95 \fi
96 \dostarttagged\t!mdelimitedstack\p_mathmeaning
97 \math_delimited_common{#body}
98 \dostoptagged}
99
100
101\integerdef\delimitedrightddotuc \privatecharactercode{delimited right ddot}
102\integerdef\delimitedrightbaruc \privatecharactercode{delimited right bar}
103
104\integerdef\delimitedrighthatuc \privatecharactercode{delimited right hat}
105\integerdef\delimitedrightcheckuc \privatecharactercode{delimited right check}
106\integerdef\delimitedrightbreveuc \privatecharactercode{delimited right breve}
107\integerdef\delimitedrightdotuc \privatecharactercode{delimited right dot}
108\integerdef\delimitedrightringuc \privatecharactercode{delimited right ring}
109\integerdef\delimitedrighttildeuc \privatecharactercode{delimited right tilde}
110\integerdef\delimitedrightdddotuc \privatecharactercode{delimited right dddot}
111
112
113
114
115
116
117
118
119\definemathdelimited
120 [marked]
121 [\c!define=\v!no,
122 \c!topoffset=.2\exheight]
123
124\definemathdelimited
125 [ddotmarked]
126 [marked]
127 [\c!define=\v!yes,
128 \c!right=\delimitedrightddotuc]
129
130\definemathdelimited
131 [barmarked]
132 [marked]
133 [\c!define=\v!yes,
134 \c!right=\delimitedrightbaruc]
135
136\definemathdelimited
137 [hatmarked]
138 [marked]
139 [\c!define=\v!yes,
140 \c!right=\delimitedrighthatuc]
141
142\definemathdelimited
143 [checkmarked]
144 [marked]
145 [\c!define=\v!yes,
146 \c!right=\delimitedrightcheckuc]
147
148\definemathdelimited
149 [brevemarked]
150 [marked]
151 [\c!define=\v!yes,
152 \c!right=\delimitedrightbreveuc]
153
154\definemathdelimited
155 [dotmarked]
156 [marked]
157 [\c!right=\delimitedrightdotuc]
158
159\definemathdelimited
160 [ringmarked]
161 [marked]
162 [\c!define=\v!yes,
163 \c!right=\delimitedrightringuc]
164
165\definemathdelimited
166 [tildemarked]
167 [marked]
168 [\c!define=\v!yes,
169 \c!right=\delimitedrighttildeuc]
170
171\definemathdelimited
172 [dddotmarked]
173 [marked]
174 [\c!define=\v!yes,
175 \c!right=\delimitedrightdddotuc]
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193\integerdef\delimitedrightdaggeruc \privatecharactercode{delimited right dagger}
194\integerdef\delimitedrightddaggeruc \privatecharactercode{delimited right ddagger}
195\integerdef\delimitedrightastuc \privatecharactercode{delimited right ast}
196\integerdef\delimitedrightstaruc \privatecharactercode{delimited right star}
197
198\integerdef\delimitedscriptrightdaggeruc \privatecharactercode{delimited right dagger 1}
199\integerdef\delimitedscriptrightddaggeruc \privatecharactercode{delimited right ddagger 1}
200\integerdef\delimitedscriptrightastuc \privatecharactercode{delimited right ast 1}
201\integerdef\delimitedscriptrightstaruc \privatecharactercode{delimited right star 1}
202
203\definemathdelimited
204 [daggermarked]
205 [marked]
206 [\c!define=\v!yes,
207 \c!size=1,
208 \c!right=\delimitedscriptrightdaggeruc]
209
210
211\definemathdelimited
212 [ddaggermarked]
213 [marked]
214 [\c!define=\v!yes,
215 \c!size=1,
216 \c!right=\delimitedscriptrightddaggeruc]
217
218
219\definemathdelimited
220 [astmarked]
221 [marked]
222 [\c!define=\v!yes,
223 \c!size=1,
224 \c!right=\delimitedscriptrightastuc]
225
226
227\definemathdelimited
228 [starmarked]
229 [marked]
230 [\c!define=\v!yes,
231 \c!size=1,
232 \c!right=\delimitedscriptrightstaruc]
233
234
235
236
237\definemathdelimited
238 [fourier]
239 [\c!topoffset=.2\exheight,
240 \c!right=\delimitedrighthatuc]
241
242\definemathdelimited
243 [inversefourier]
244 [fourier]
245 [\c!right=\delimitedrightcheckuc]
246
247\definemathdelimited
248 [fuzzyfourier]
249 [fourier]
250 [\c!right=\delimitedrighttildeuc]
251
252
253
254
255
256
257
258
259
260
261\integerdef\delimitedrightprimeuc \privatecharactercode{delimited right prime}
262\integerdef\delimitedrightdprimeuc \privatecharactercode{delimited right dprime}
263\integerdef\delimitedrighttprimeuc \privatecharactercode{delimited right tprime}
264\integerdef\delimitedrightqprimeuc \privatecharactercode{delimited right qprime}
265\integerdef\delimitedrightrprimeuc \privatecharactercode{delimited right rprime}
266\integerdef\delimitedrightrdprimeuc \privatecharactercode{delimited right rdprime}
267\integerdef\delimitedrightrtprimeuc \privatecharactercode{delimited right rtprime}
268
269
270
271
272
273
274
275
276
277\definemathdelimited [primed] [\c!right=\delimitedrightprimeuc,\c!topoffset=.2\exheight,\c!size=1]
278\definemathdelimited [doubleprimed] [primed] [\c!right=\delimitedrightdprimeuc]
279\definemathdelimited [tripleprimed] [primed] [\c!right=\delimitedrighttprimeuc]
280\definemathdelimited [quadrupleprimed] [primed] [\c!right=\delimitedrightqprimeuc]
281\definemathdelimited [reverseprimed] [primed] [\c!right=\delimitedrightrprimeuc]
282\definemathdelimited [doublereverseprimed] [primed] [\c!right=\delimitedrightrdprimeuc]
283\definemathdelimited [triplereverseprimed] [primed] [\c!right=\delimitedrightrtprimeuc]
284
285
286
287\integerdef\delimitedleftuppercorner \privatecharactercode{delimited left upper corner}
288\integerdef\delimitedrightuppercorner\privatecharactercode{delimited right upper corner}
289\integerdef\delimitedleftlowercorner \privatecharactercode{delimited left lower corner}
290\integerdef\delimitedrightlowercorner\privatecharactercode{delimited right lower corner}
291
292\definemathdelimited
293 [leftuppermarked]
294 [marked]
295 [\c!left=\delimitedleftuppercorner]
296
297\definemathdelimited
298 [rightuppermarked]
299 [marked]
300 [\c!right=\delimitedrightuppercorner]
301
302\definemathdelimited
303 [uppermarked]
304 [marked]
305 [\c!left=\delimitedleftuppercorner,
306 \c!right=\delimitedrightuppercorner]
307
308\definemathdelimited
309 [leftlowermarked]
310 [marked]
311 [\c!left=\delimitedleftlowercorner]
312
313\definemathdelimited
314 [rightlowermarked]
315 [marked]
316 [\c!right=\delimitedrightlowercorner]
317
318\definemathdelimited
319 [lowermarked]
320 [marked]
321 [\c!left=\delimitedleftlowercorner,
322 \c!right=\delimitedrightlowercorner]
323
324\protect \endinput
325 |