1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16\writestatus{loading}{ConTeXt Math Macros Fractions}
17
18\unprotect
19
20
21
22\registerctxluafile{mathfrc}{autosuffix}
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76\installcorenamespace{mathfractions}
77\installcorenamespace{mathfractionstyle}
78\installcorenamespace{mathfractionalternative}
79
80\installcommandhandler \??mathfractions {mathfraction} \??mathfractions
81
82\aliased\let\setupmathfractions\setupmathfraction
83
84
85
86\integerdef\math_frac_no_delim "2E
87
88\setupmathfractions
89 [\c!mathstyle=,
90 \c!method=\v!vertical,
91 \c!mathnumeratorstyle=\mathfractionparameter\c!mathstyle,
92 \c!mathdenominatorstyle=\mathfractionparameter\c!mathstyle,
93 \c!mathmeaning=\currentglobalmathfraction,
94 \c!mathclass=\mathfractioncode,
95 \c!alternative=\v!inner,
96 \c!margin=\zeropoint,
97
98 \c!rulethickness=\v!font,
99 \c!left="2E,
100 \c!right="2E,
101 \c!middle="2F,
102 \c!color=,
103 \c!topcolor=\mathfractionparameter\c!textcolor,
104 \c!bottomcolor=\mathfractionparameter\c!textcolor,
105 \c!textcolor=\mathfractionparameter\c!color,
106 \c!symbolcolor=\mathfractionparameter\c!color,
107 \c!strut=\v!yes,
108 \c!topdistance=,
109 \c!bottomdistance=,
110 \c!source=\zerocount,
111 \c!hfactor=\plusfivehundred,
112 \c!vfactor=\plusonehundredtwentyfive,
113 \c!rule=\v!auto]
114
115
116
117\integerdef\fractionbarextenderuc \privatecharactercode{fraction bar extender}
118
119\setupmathfractions
120 [\c!rule=\v!symbol,
121 \c!symbol=\fractionbarextenderuc]
122
123\appendtoks
124 \instance\frozen\protected\edefcsname\currentmathfraction\endcsname{\math_frac{\currentmathfraction}}
125\to \everydefinemathfraction
126
127
128
129
130
131
132
133
134
135
136
137\installcorenamespace{mathfractionstrut}
138
139\def\math_frac_no_strut
140 {\enforced\let\m_fractions_strut_top\relax
141 \enforced\let\m_fractions_strut_bot\relax}
142
143\defcsname\??mathfractionstrut\v!yes\endcsname
144 {\enforced\let\m_fractions_strut_top\mathstrut
145 \enforced\let\m_fractions_strut_bot\mathstrut}
146
147\defcsname\??mathfractionstrut\v!math\endcsname
148 {\enforced\let\m_fractions_strut_top\mathstrut
149 \enforced\let\m_fractions_strut_bot\mathstrut}
150
151\letcsname\??mathfractionstrut\v!no\endcsname\math_frac_no_strut
152
153\defcsname\??mathfractionstrut\v!tight\endcsname
154 {\enforced\let\m_fractions_strut_top\mathdepthstrut
155 \enforced\let\m_fractions_strut_bot\mathheightstrut}
156
157\defcsname\??mathfractionstrut\v!text\endcsname
158 {\enforced\let\m_fractions_strut_top\strut
159 \enforced\let\m_fractions_strut_bot\strut}
160
161\math_frac_no_strut
162
163\newdimension\d_math_fraction_margin
164
165\def\math_fraction_margin_kern_indeed{\kern\d_math_fraction_margin}
166
167\let\math_fraction_margin_kern\relax
168
169
170
171
172
173
174
175\installlocalcurrenthandler\??mathfractions {mathfraction}
176
177\tolerant\protected\def\math_frac#1#*[#S#2]
178 {\beginmathgroup
179
180 \setlocalmathfractioncurrent{#1}
181
182 \ifparameter#2\or\setupcurrentmathfraction[#2]\fi
183
184 \edef\p_math_fraction_fences{\mathfractionparameter\c!fences}
185 \dostarttagged\t!mfractionstack{\mathfractionparameter\c!mathmeaning}
186
187 \math_atom_by_parameter\mathfractionparameter\bgroup
188 \ifempty\p_math_fraction_fences \else
189 \math_fenced_fenced_start\p_math_fraction_fences
190 \fi
191
192 \d_math_fraction_margin{\mathfractionparameter\c!margin}
193 \ifcase\d_math_fraction_margin
194 \let\math_fraction_margin_kern\relax
195 \else
196 \let\math_fraction_margin_kern\math_fraction_margin_kern_indeed
197 \fi
198
199 \edef\p_math_fractions_strut{\mathfractionparameter\c!strut}
200 \ifcsname\??mathfractionstrut\p_math_fractions_strut\endcsname
201 \lastnamedcs
202 \else
203 \math_frac_no_strut
204 \fi
205
206
207
208 \dostarttagged\t!mfraction\currentglobalmathfraction
209 \expandnamespaceparameter\??mathfractionalternative\mathfractionparameter\c!alternative\v!inner}
210
211\protected\def\math_frac_wrapup
212 {\ifempty\p_math_fraction_fences \else
213 \math_fenced_fenced_stop\p_math_fraction_fences
214 \fi
215 \dostoptagged
216 \egroup
217 \dostoptagged
218 \endmathgroup}
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235\installcorenamespace{fractionmethods}
236
237\defcsname\??fractionmethods\v!vertical \v!no \v!none\endcsname{\Uatop}
238\defcsname\??fractionmethods\v!vertical \v!no \endcsname{\Uatopwithdelims
239 \Umathchar\zerocount\fam\scratchcounterone
240 \Umathchar\zerocount\fam\scratchcountertwo}
241\defcsname\??fractionmethods\v!vertical \v!yes \v!none\endcsname{\Uabove}
242\defcsname\??fractionmethods\v!vertical \v!yes \endcsname{\Uabovewithdelims
243 \Umathchar\zerocount\fam\scratchcounterone
244 \Umathchar\zerocount\fam\scratchcountertwo}
245\defcsname\??fractionmethods\v!vertical \v!hidden \v!none\endcsname{\Uabove}
246\defcsname\??fractionmethods\v!vertical \v!hidden \endcsname{\Uabovewithdelims
247 \Umathchar\zerocount\fam\scratchcounterone
248 \Umathchar\zerocount\fam\scratchcountertwo}
249\defcsname\??fractionmethods\v!vertical \v!auto \v!none\endcsname{\Uover}
250\defcsname\??fractionmethods\v!vertical \v!auto \endcsname{\Uoverwithdelims
251 \Umathchar\zerocount\fam\scratchcounterone
252 \Umathchar\zerocount\fam\scratchcountertwo}
253\defcsname\??fractionmethods\v!vertical \v!symbol \v!none\endcsname{\Ustretched
254 \Umathchar\zerocount\fam\scratchcounterthree}
255\defcsname\??fractionmethods\v!vertical \v!symbol \endcsname{\Ustretchedwithdelims
256 \Umathchar\zerocount\fam\scratchcounterone
257 \Umathchar\zerocount\fam\scratchcountertwo
258 \Umathchar\zerocount\fam\scratchcounterthree}
259\defcsname\??fractionmethods\v!horizontal \v!none\endcsname{\Uskewed
260 \Umathchar\zerocount\fam\scratchcounterthree
261 \s!hfactor {\mathfractionparameter\c!hfactor}}
262\defcsname\??fractionmethods\v!horizontal \endcsname{\Uskewedwithdelims
263 \Umathchar\zerocount\fam\scratchcounterone
264 \Umathchar\zerocount\fam\scratchcountertwo
265 \Umathchar\zerocount\fam\scratchcounterthree
266 \s!hfactor {\mathfractionparameter\c!hfactor}}
267\defcsname\??fractionmethods\v!line \v!none\endcsname{\Uskewed
268 \Umathchar\zerocount\fam\scratchcounterthree
269 \s!noaxis \relaxedspace
270 \s!hfactor {\mathfractionparameter\c!hfactor}}
271\defcsname\??fractionmethods\v!line \endcsname{\Uskewedwithdelims
272 \Umathchar\zerocount\fam\scratchcounterone
273 \Umathchar\zerocount\fam\scratchcountertwo
274 \Umathchar\zerocount\fam\scratchcounterthree
275 \s!noaxis \relaxedspace
276 \s!hfactor {\mathfractionparameter\c!hfactor}}
277
278\def\math_frac_common
279 {\edef\p_method {\mathfractionparameter\c!method}
280 \edef\p_rule {\mathfractionparameter\c!rule}
281 \edef\p_thickness {\mathfractionparameter\c!rulethickness}
282 \scratchcounterone \mathfractionparameter\c!left \relax
283 \scratchcountertwo \mathfractionparameter\c!right \relax
284 \scratchcounterthree
285 \ifx\p_method\v!horizontal
286 \mathfractionparameter\c!middle
287
288
289 \orelse\ifx\p_method\v!line
290 \mathfractionparameter\c!middle
291 \else
292 \mathfractionparameter\c!symbol
293 \fi
294 \relax
295
296 \ifcstok{\mathfractionparameter\c!mathstyle}\s!identity
297 \frozen\Umathnumeratorvariant \allmathstyles\mathstylevariantidentity
298 \frozen\Umathdenominatorvariant\allmathstyles\mathstylevariantidentity
299 \resetmathfractionparameter\c!mathstyle
300 \fi
301
302 \ifcstok{\mathfractionparameter\c!plugin}\v!mp
303 \edef\p_mp{\mathfractionparameter\c!mp}
304 \ifempty\p_mp\else
305 \clf_set_extensible_data
306 mp {\p_mp}
307 left \scratchcounterthree
308 right \scratchcounterthree
309 middle \scratchcounterthree
310 \relax
311 \fi
312 \else
313 \lettonothing\p_mp
314 \fi
315
316 \ifcsname
317 \??fractionmethods
318 \p_method
319 \ifx\p_method\v!horizontal
320
321 \orelse\ifx\p_method\v!line
322 \orelse\ifcsname\??fractionmethods\p_method\p_rule\endcsname
323 \p_rule
324 \else
325 \v!auto
326 \fi
327 \ifnum\scratchcounterone=\math_frac_no_delim
328 \ifnum\scratchcountertwo=\math_frac_no_delim
329 \v!none
330 \fi
331 \fi
332 \endcsname \lastnamedcs \else \csname\??fractionmethods\v!vertical\v!auto\endcsname \fi
333 \usedsymbolcolorparameterattributes{\mathfractionparameter\c!symbolcolor}
334 \s!thickness
335 \ifx\p_thickness\v!font
336 \zeropoint
337 \s!font\relaxedspace
338 \else
339 {\p_thickness}
340 \fi
341 \s!class \math_class_by_parameter\mathfractionparameter\c!mathclass
342 \s!vfactor {\mathfractionparameter\c!vfactor}
343 \s!source {\namedboxanchor{\mathfractionparameter\c!source}}
344 \ifempty\p_mp\else
345 \s!usecallback\relaxedspace
346 \fi}
347
348\installcorenamespace{mathalignsimple}
349
350\defcsname\??mathalignsimple\v!right \endcsname#1{#1\hfill}
351\defcsname\??mathalignsimple\v!flushleft \endcsname#1{#1\hfill}
352\defcsname\??mathalignsimple\v!left \endcsname#1{\hfill#1}
353\defcsname\??mathalignsimple\v!flushright\endcsname#1{\hfill#1}
354\defcsname\??mathalignsimple\v!middle \endcsname#1{\hfill#1\hfill}
355
356\protected\def\math_frac_aligned_top{\begincsname\??mathalignsimple\mathfractionparameter\c!topalign \endcsname}
357\protected\def\math_frac_aligned_bot{\begincsname\??mathalignsimple\mathfractionparameter\c!bottomalign\endcsname}
358
359
360
361
362\protected\defcsname\??mathfractionalternative\v!inner\endcsname#1#2
363 {
364 \math_frac_common
365 {\usemathfractioncolorparameter\c!topcolor
366 \math_fraction_margin_kern
367 \usemathstyleparameter\mathfractionparameter\c!mathnumeratorstyle
368 \m_fractions_strut_top\math_frac_aligned_top{#1}
369 \math_fraction_margin_kern}
370 {\usemathfractioncolorparameter\c!bottomcolor
371 \math_fraction_margin_kern
372 \usemathstyleparameter\mathfractionparameter\c!mathdenominatorstyle
373 \m_fractions_strut_bot\math_frac_aligned_bot{#2}
374 \math_fraction_margin_kern}
375
376 \math_frac_wrapup}
377
378\protected\defcsname\??mathfractionalternative\v!outer\endcsname#1#2
379 {\beginmathgroup
380 \usemathstyleparameter\mathfractionparameter\c!mathstyle
381 \math_frac_common
382 {\usemathfractioncolorparameter\c!topcolor
383 \math_fraction_margin_kern
384 \m_fractions_strut_top\math_frac_aligned_top{#1}
385 \math_fraction_margin_kern}
386 {\usemathfractioncolorparameter\c!bottomcolor
387 \math_fraction_margin_kern
388 \m_fractions_strut_bot\math_frac_aligned_bot{#2}
389 \math_fraction_margin_kern}
390 \endmathgroup
391 \math_frac_wrapup}
392
393\protected\defcsname\??mathfractionalternative\v!both\endcsname#1#2
394 {\beginmathgroup
395 \usemathstyleparameter\mathfractionparameter\c!mathstyle
396 \math_frac_common
397 {\usemathfractioncolorparameter\c!topcolor
398 \math_fraction_margin_kern
399 \usemathstyleparameter\mathfractionparameter\c!mathnumeratorstyle
400 \m_fractions_strut_top\math_frac_aligned_top{#1}
401 \math_fraction_margin_kern}
402 {\usemathfractioncolorparameter\c!bottomcolor
403 \math_fraction_margin_kern
404 \usemathstyleparameter\mathfractionparameter\c!mathdenominatorstyle
405 \m_fractions_strut_bot\math_frac_aligned_bot{#2}
406 \math_fraction_margin_kern}
407 \endmathgroup
408 \math_frac_wrapup}
409
410\nulldelimiterspace\zeropoint
411
412\definemathfraction[xfrac] [\c!alternative=\v!inner,\c!mathstyle=\s!script]
413\definemathfraction[xxfrac][\c!alternative=\v!inner,\c!mathstyle=\s!scriptscript]
414
415\aliased\let\normalxfrac\xfrac
416
417\permanent\protected\def\xfrac#1#2{\normalxfrac{\enforced\let\xfrac\xxfrac#1}{\enforced\let\xfrac\xxfrac#2}}
418
419
420
421\installcorenamespace{mathfractiondistance}
422
423\defcsname\??mathfractiondistance\v!none\endcsname
424 {\Umathfractionnumup \allmathstyles\zeropoint
425 \Umathfractiondenomdown\allmathstyles\zeropoint}
426
427\defcsname\??mathfractiondistance\v!no\endcsname
428 {\Umathfractionnumup \allmathstyles\zeropoint
429 \Umathfractiondenomdown\allmathstyles\zeropoint}
430
431\defcsname\??mathfractiondistance\v!overlay\endcsname
432 {\Umathfractionnumup \allmathstyles\zeropoint
433 \Umathfractionnumvgap \allmathstyles\zeropoint
434 \Umathfractiondenomvgap\allmathstyles\zeropoint
435 \Umathfractiondenomdown\allmathstyles\zeropoint}
436
437\defcsname\??mathfractiondistance\v!top\endcsname
438 {\Umathfractionnumvgap \allmathstyles{\mathfractionparameter\c!topdistance}
439 \relax}
440
441\defcsname\??mathfractiondistance\v!bottom\endcsname
442 {\Umathfractiondenomvgap\allmathstyles{\mathfractionparameter\c!bottomdistance}
443 \relax}
444
445\defcsname\??mathfractiondistance\v!both\endcsname
446 {\Umathfractionnumvgap \allmathstyles{\mathfractionparameter\c!topdistance}
447 \Umathfractiondenomvgap\allmathstyles{\mathfractionparameter\c!bottomdistance}
448 \relax}
449
450\setupmathfractions
451 [\c!distance=\v!none,
452 \c!topdistance=\zeropoint,
453 \c!bottomdistance=\zeropoint]
454
455
456
457\appendtoks
458 \edef\p_distance{\rootmathfractionparameter\c!distance}
459 \ifempty\p_distance\else
460 \begincsname\??mathfractiondistance\p_distance\endcsname
461 \fi
462\to \everymathematics
463
464
465
466\let\math_fraction_set_threshold_inline \relax
467\let\math_fraction_set_threshold_display\relax
468
469\appendtoks
470 \math_fraction_set_threshold_inline
471 \math_fraction_set_threshold_display
472\to \everymathematics
473
474\appendtoks
475 \ifempty\currentmathfraction
476 \edef\p_threshold{\mathfractionparameter\c!inlinethreshold}
477 \ifempty\p_threshold
478 \let\math_fraction_set_threshold_inline\math_fraction_set_threshold_inline_auto
479 \orelse\ifx\p_threshold\v!auto
480 \let\math_fraction_set_threshold_inline\math_fraction_set_threshold_inline_auto
481 \else
482 \let\math_fraction_set_threshold_inline\math_fraction_set_threshold_inline_ratio
483 \fi
484 \edef\p_threshold{\mathfractionparameter\c!displaythreshold}
485 \ifempty\p_threshold
486 \let\math_fraction_set_threshold_display\math_fraction_set_threshold_display_auto
487 \orelse\ifx\p_threshold\v!auto
488 \let\math_fraction_set_threshold_display\math_fraction_set_threshold_display_auto
489 \else
490 \let\math_fraction_set_threshold_display\math_fraction_set_threshold_display_ratio
491 \fi
492 \fi
493\to \everysetupmathfraction
494
495\def\math_fraction_set_threshold_inline_auto
496 {\Umathfractiondelsize\allmathstyles\maxdimen}
497
498\def\math_fraction_set_threshold_display_auto
499 {\Umathfractiondelsize\alldisplaystyles\maxdimen}
500
501
502
503\def\math_fraction_set_threshold_inline_ratio
504 {\edef\p_threshold{\mathfractionparameter\c!inlinethreshold}
505 \Umathfractiondelsize\alltextstyles \p_threshold\glyphscaled\textface
506 \Umathfractiondelsize\allscriptstyles \p_threshold\glyphscaled\scriptface
507 \Umathfractiondelsize\allscriptscriptstyles\p_threshold\glyphscaled\scriptscriptface}
508
509\def\math_fraction_set_threshold_display_ratio
510 {\edef\p_threshold{\mathfractionparameter\c!displaythreshold}
511 \Umathfractiondelsize\alldisplaystyles\p_threshold\glyphscaled\textface}
512
513\setupmathfractions
514 [\c!inlinethreshold=1.2,
515 \c!displaythreshold=\v!auto,
516 \c!threshold=.25\exheight]
517
518\appendtoks
519 \Umathskeweddelimitertolerance\allmathstyles\mathfractionparameter\c!threshold
520\to \everymathematics
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545\definemathfraction[i:frac] [\c!alternative=\v!inner,\c!mathstyle=\v!small]
546\definemathfraction[i:tfrac][\c!alternative=\v!inner,\c!mathstyle=\s!script]
547\definemathfraction[i:sfrac][\c!alternative=\v!inner,\c!mathstyle=\s!scriptscript]
548\definemathfraction[i:dfrac][\c!alternative=\v!inner,\c!mathstyle=\s!display]
549
550\definemathfraction[d:frac] [\c!alternative=\v!inner,\c!mathstyle=\s!cramped]
551\definemathfraction[d:tfrac][\c!alternative=\v!inner,\c!mathstyle={\s!cramped,\s!script}]
552\definemathfraction[d:sfrac][\c!alternative=\v!inner,\c!mathstyle={\s!cramped,\s!scriptscript}]
553\definemathfraction[d:dfrac][\c!alternative=\v!both,\c!mathstyle=\s!display]
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574\permanent\protected\def\frac {\csname\inlineordisplaymath id:frac\endcsname}
575\permanent\protected\def\tfrac{\csname\inlineordisplaymath id:tfrac\endcsname}
576\permanent\protected\def\sfrac{\csname\inlineordisplaymath id:sfrac\endcsname}
577\permanent\protected\def\dfrac{\csname\inlineordisplaymath id:dfrac\endcsname}
578
579\definemathfraction
580 [d:binom]
581 [d:frac]
582 [\c!rule=\v!no,
583 \c!mathmeaning=binom,
584
585 \c!left="28,
586 \c!right="29]
587
588\definemathfraction
589 [i:binom]
590 [i:frac]
591 [\c!rule=\v!no,
592 \c!mathmeaning=binom,
593
594 \c!left="28,
595 \c!right="29]
596
597\permanent\protected\def\binom{\csname\inlineordisplaymath id:binom\endcsname}
598
599\definemathfraction
600 [dbinom]
601 [d:binom]
602 [\c!mathstyle=\s!display]
603
604\definemathfraction
605 [tbinom]
606 [i:binom]
607 [\c!mathstyle=\s!text]
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654\definemathfraction
655 [cfrac]
656 [\c!mathstyle=\v!text]
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689\defcsname\??mathalignsimple\v!split:\v!flushleft\endcsname#1
690 {#1
691 \ifchkdimension\mathfractionparameter\c!distance\or\hkern\lastchkdimension\fi
692 \hfill}
693
694\defcsname\??mathalignsimple\v!split:\v!flushright\endcsname#1
695 {\hfill
696 \ifchkdimension\mathfractionparameter\c!distance\or\hkern\lastchkdimension\fi
697 \mathatom \s!class \mathordcode \s!unroll {}
698 #1}
699
700\definemathfraction
701 [splitfrac]
702 [\c!mathnumeratorstyle=\v!text,
703 \c!mathdenominatorstyle=\v!text,
704 \c!topalign=\v!split:\v!flushleft,
705 \c!bottomalign=\v!split:\v!flushright,
706 \c!distance=\emwidth,
707 \c!rule=\v!no]
708
709\definemathfraction
710 [splitdfrac]
711 [splitfrac]
712 [\c!mathnumeratorstyle=\v!display,
713 \c!mathdenominatorstyle=\v!display]
714
715
716
717
718
719
720
721
722\definemathfraction
723 [\s!vfrac]
724 [\c!method=\v!horizontal]
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747\definemathfraction
748 [relfraction]
749 [\c!mathclass=\mathrelationcode,
750 \c!margin=.25\emwidth,
751 \c!rule=\v!symbol]
752
753\definemathfraction [bartext] [relfraction] [\c!middle="203E]
754\definemathfraction [leftarrowtext] [relfraction] [\c!middle="2190]
755\definemathfraction [rightarrowtext] [relfraction] [\c!middle="2192]
756\definemathfraction [twoheadleftarrowtext] [relfraction] [\c!middle="219E]
757\definemathfraction [twoheadrightarrowtext] [relfraction] [\c!middle="21A0]
758\definemathfraction [reltext] [relfraction] [\c!middle="002D]
759\definemathfraction [equaltext] [relfraction] [\c!middle="003D]
760\definemathfraction [mapstotext] [relfraction] [\c!middle="21A6]
761\definemathfraction [hookleftarrowtext] [relfraction] [\c!middle="21A9]
762\definemathfraction [hookrightarrowtext] [relfraction] [\c!middle="21AA]
763\definemathfraction [leftharpoondowntext] [relfraction] [\c!middle="21BD]
764\definemathfraction [leftharpoonuptext] [relfraction] [\c!middle="21BC]
765\definemathfraction [rightharpoondowntext] [relfraction] [\c!middle="21C1]
766\definemathfraction [rightharpoonuptext] [relfraction] [\c!middle="21C0]
767\definemathfraction [rightoverleftarrowtext] [relfraction] [\c!middle="21C4]
768\definemathfraction [leftrightharpoonstext] [relfraction] [\c!middle="21CB]
769\definemathfraction [rightleftharpoonstext] [relfraction] [\c!middle="21CC]
770\definemathfraction [triplereltext] [relfraction] [\c!middle="2261]
771\definemathfraction [leftrightarrowtext] [relfraction] [\c!middle="27F7]
772\definemathfraction [rightleftarrowtext] [relfraction] [\c!middle="27F7]
773\definemathfraction [Leftarrowtext] [relfraction] [\c!middle="27F8]
774\definemathfraction [Rightarrowtext] [relfraction] [\c!middle="27F9]
775\definemathfraction [Leftrightarrowtext] [relfraction] [\c!middle="27FA]
776\definemathfraction [Rightleftarrowtext] [relfraction] [\c!middle="27FA]
777
778\protect \endinput
779 |