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