55 #define noadsize (4 * CHAR_NODE_SIZE)
57 #define radicalnoadsize (5 * CHAR_NODE_SIZE)
59 #define fractionnoadsize (6 * CHAR_NODE_SIZE)
61 #define accentnoadsize (5 * CHAR_NODE_SIZE)
64 #define stylenode (UNSET_NODE + 1)
66 #define stylenodesize 3
79 #define choicenode (UNSET_NODE + 2)
85 #define nucleus(x) ((x)+CHAR_NODE_SIZE)
86 #define supscr(x) (nucleus(x)+CHAR_NODE_SIZE)
87 #define subscr(x) (supscr(x)+CHAR_NODE_SIZE)
89 #define leftdelimiter(x) (subscr(x)+CHAR_NODE_SIZE)
90 #define rightdelimiter(x) (leftdelimiter(x)+CHAR_NODE_SIZE)
92 #define accentchr(x) (subscr(x)+CHAR_NODE_SIZE)
94 #define nucleus(x) ((x)+1)
95 #define supscr(x) ((x)+2)
96 #define subscr(x) ((x)+7)
97 #define leftdelimiter(x) ((x)+4)
98 #define rightdelimiter(x) ((x)+5)
99 #define accentchr(x) ((x)+4)
103 #define mathtype link
104 #define fam(x) type(x)
106 #define smallfam(x) mem[x].qqqq.b0
107 #define smallchar(x) mem[x].qqqq.b1
108 #define largefam(x) mem[x].qqqq.b2
109 #define largechar(x) mem[x].qqqq.b3
110 #define thickness(x) (mem[nucleus(x)-MEM_MIN].sc)
111 #define defaultcode 1073741824L
112 #define numerator supscr
113 #define denominator subscr
115 #define delimiter nucleus
117 #define scriptsallowed(x) ((type(x)>=ordnoad)&&(type(x)<leftnoad))
119 #define vpack(x, y, z) vpackage((x), (y), (z), MAX_DIMEN)
121 #define displaymlist(x) info(x+1)
122 #define textmlist(x) link(x+1)
123 #define scriptmlist(x) info(x+2)
124 #define scriptscriptmlist(x) link(x+2)
134 #define SCRIPT_SIZE 16
136 #define SCRIPT_SCRIPT_SIZE 32
139 #define totalmathsyparams 22
141 #define totalmathexparams 13
144 #define mathsy(x, y) (fontinfo[(x) + parambase[fam_fnt(2 + (y))]].sc)
145 #define mathxheight(x) mathsy(5, x)
146 #define mathquad(x) mathsy(6, x)
147 #define num1(x) mathsy(8,x)
148 #define num2(x) mathsy(9,x)
149 #define num3(x) mathsy(10,x)
150 #define denom1(x) mathsy(11,x)
151 #define denom2(x) mathsy(12,x)
152 #define sup1(x) mathsy(13,x)
153 #define sup2(x) mathsy(14,x)
154 #define sup3(x) mathsy(15,x)
155 #define sub1(x) mathsy(16,x)
156 #define sub2(x) mathsy(17,x)
157 #define supdrop(x) mathsy(18,x)
158 #define subdrop(x) mathsy(19,x)
159 #define delim1(x) mathsy(20,x)
161 #define delim2(x) mathsy(21,x)
162 #define axisheight(x) mathsy(22,x)
165 #define mathex(x) fontinfo[x + parambase[fam_fnt(3 + cursize)]].sc
166 #define defaultrulethickness mathex(8)
167 #define bigopspacing1 mathex(9)
168 #define bigopspacing2 mathex(10)
169 #define bigopspacing3 mathex(11)
170 #define bigopspacing4 mathex(12)
171 #define bigopspacing5 mathex(13)
174 #define crampedstyle(x) 2*(x / 2)+cramped
175 #define substyle(x) 2*(x / 4)+scriptstyle+cramped
176 #define supstyle(x) 2*(x / 4)+scriptstyle+(x % 2)
177 #define numstyle(x) x+2-2*(x / 6)
178 #define denomstyle(x) 2*(x / 2)+cramped+2-2*(x / 6)
183 #define newhlist(x) mem[nucleus(x)].int_
uint16_t QuarterWord
[p43#113]: QuarterWord(8=>16) .
Definition: tex_types.h:126
uint32_t HalfWord
[p43#113]: HalfWord(16=>32) .
Definition: tex_types.h:127
@ UNSET_NODE
#159: type for an unset node
Definition: box.h:64
UChar ASCIICode
[#18]: ASCIICode::UChar(8) = [0, 255]
Definition: charset.h:11
UChar InternalFontNumber
[#548]: [FONT_BASE, FONT_MAX] = [0, 75]
Definition: fonts.h:92
HalfWord newnoad(void)
Definition: mmode.c:31
StyleNodeSubtype
[#688]
Definition: mmode.h:69
void printfamandchar(HalfWord p)
[#691] prints family and character.
Definition: mmode.c:80
TwoHalves emptyfield
[p267#726] label not_use
Definition: mmode.c:15
void showinfo(void)
Definition: mmode.c:131
void printsubsidiarydata(HalfWord p, ASCIICode c)
[#692] display a noad field.
Definition: mmode.c:100
void printstyle(Integer c)
[#694]
Definition: mmode.c:135
NoadType
[p251#682] type of noad classified XXX.
Definition: mmode.h:22
void mmode_init()
[#685]
Definition: mmode.c:21
HalfWord newchoice(void)
Definition: mmode.c:64
FourQuarters nulldelimiter
Definition: mmode.c:16
HalfWord newstyle(SmallNumber s)
Definition: mmode.c:51
void printdelimiter(HalfWord p)
[#691] prints a delimiter as 24-bit hex value.
Definition: mmode.c:88
@ textstyle
subtype for \textstyle
Definition: mmode.h:71
@ scriptstyle
subtype for \scriptstyle
Definition: mmode.h:72
@ scriptscriptstyle
subtype for \scriptscriptstyle
Definition: mmode.h:73
@ displaystyle
subtype for \displaystyle
Definition: mmode.h:70
@ relnoad
noad classified Rel
Definition: mmode.h:30
@ binnoad
noad classified Bin
Definition: mmode.h:29
@ ordnoad
[#682] [UNSET_NODE=13 + 3 = 16] type of a noad classified Ord.
Definition: mmode.h:25
@ radicalnoad
noad for square roots
Definition: mmode.h:37
@ accentnoad
noad for accented subformulas
Definition: mmode.h:43
@ opennoad
noad classified Ope
Definition: mmode.h:31
@ fractionnoad
noad for generalized fractions.
Definition: mmode.h:38
@ overnoad
noad for overlining
Definition: mmode.h:42
@ rightnoad
noad for \right
Definition: mmode.h:46
@ leftnoad
noad for \left
Definition: mmode.h:45
@ opnoad
noad classified Op
Definition: mmode.h:28
@ punctnoad
noad classified Pun
Definition: mmode.h:33
@ closenoad
noad classified Clo
Definition: mmode.h:32
@ vcenternoad
noad for \vcenter
Definition: mmode.h:44
@ undernoad
noad for underlining
Definition: mmode.h:41
@ innernoad
noad classified Inn.
Definition: mmode.h:34
void flushmath(void)
Definition: mmode.c:424
void stackintobox(HalfWord b, InternalFontNumber f, QuarterWord c)
Definition: mmode.c:213
Integer heightplusdepth(InternalFontNumber f, QuarterWord c)
Definition: mmode.c:224
HalfWord rebox(HalfWord b, long w)
Definition: mmode.c:346
HalfWord fractionrule(long t)
Definition: mmode.c:167
void mathkern(HalfWord p, long m)
Definition: mmode.c:407
void print_size(Integer s)
[#699]
Definition: mmode.c:154
HalfWord overbar(HalfWord b, long k, long t)
Definition: mmode.c:178
HalfWord charbox(InternalFontNumber f, QuarterWord c)
Definition: mmode.c:193
HalfWord mathglue(HalfWord g, long m)
Definition: mmode.c:374
HalfWord vardelimiter(HalfWord d, SmallNumber s, long v)
Definition: mmode.c:234
Pointer curmlist
Definition: math_formula.c:19
InternalFontNumber curf
Definition: math_formula.c:24
Boolean mlistpenalties
Definition: math_formula.c:21
QuarterWord curc
Definition: math_formula.c:25
SmallNumber curstyle
Definition: math_formula.c:20
void mlisttohlist(void)
Definition: math_formula.c:659
FourQuarters curi
Definition: math_formula.c:26
SmallNumber cursize
Definition: mmode.h:196
[p43#113]: FourQuarters(64) .
Definition: tex_types.h:159
[p43#113]: TwoHalves(64) .
Definition: tex_types.h:144
int64_t Integer
Integer(64) =
Definition: tex_types.h:42
size_t Pointer
Pointer::size_t(64), a flag or a location in mem or eqtb.
Definition: tex_types.h:45
bool Boolean
布尔类型定义
Definition: tex_types.h:11
UChar SmallNumber
[p38#101]: SmallNumber::UChar(8) = [0, 255] only need: (6bit)[0, 63] .
Definition: tex_types.h:112