TeX in C
Explore TeX with modern c compiler.
mmode.h 文件参考
#include "global.h"
#include "charset.h"
#include "fonts.h"
#include "scan.h"
#include "box.h"
#include "tex_constant.h"
mmode.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

宏定义

#define INC_MMODE_H
 tex.c 里使用的宏 更多...
 
#define limits   1
 [#682] subtype of op_noad whose scripts are to be above, below 更多...
 
#define nolimits   2
 [#682] subtype of op_noad whose scripts are to be normal 更多...
 
#define noadsize   (4 * CHAR_NODE_SIZE)
 [#681] number of words in a normal noad 更多...
 
#define radicalnoadsize   (5 * CHAR_NODE_SIZE)
 [#683] number of mem words in a radical noad 更多...
 
#define fractionnoadsize   (6 * CHAR_NODE_SIZE)
 [#683] number of mem words in a fraction noad 更多...
 
#define accentnoadsize   (5 * CHAR_NODE_SIZE)
 [#687] number of mem words in an accent noad 更多...
 
#define stylenode   (UNSET_NODE + 1)
 [#688] type of a style node 更多...
 
#define stylenodesize   3
 [#688] number of words in a style node 更多...
 
#define cramped   1
 [#688] add this to an uncramped style if you want to cramp it. 更多...
 
#define choicenode   (UNSET_NODE + 2)
 [#689] type of a choice node. 更多...
 
#define nucleus(x)   ((x)+CHAR_NODE_SIZE) /* the |nucleus| field of a noad}*/
 [p250#681] 更多...
 
#define supscr(x)   (nucleus(x)+CHAR_NODE_SIZE) /* the |supscr| field of a noad}*/
 
#define subscr(x)   (supscr(x)+CHAR_NODE_SIZE) /* the |subscr| field of a noad}*/
 
#define leftdelimiter(x)   (subscr(x)+CHAR_NODE_SIZE) /* first delimiter field of a noad}*/
 [p252#683] 更多...
 
#define rightdelimiter(x)   (leftdelimiter(x)+CHAR_NODE_SIZE) /* second delimiter field of a fraction noad}*/
 
#define accentchr(x)   (subscr(x)+CHAR_NODE_SIZE) /* the |accentchr| field of an accent noad}*/
 [p253#687] 更多...
 
#define mathtype   link
 [p250#681] a |halfword| in |mem|. 更多...
 
#define fam(x)   type(x)
 
#define smallfam(x)   mem[x].qqqq.b0 /* |fam| for ``small'' delimiter}*/
 [p252#683] 更多...
 
#define smallchar(x)   mem[x].qqqq.b1 /* |character| for ``small'' delimiter}*/
 
#define largefam(x)   mem[x].qqqq.b2 /* |fam| for ``large'' delimiter}*/
 
#define largechar(x)   mem[x].qqqq.b3 /* |character| for ``large'' delimiter}*/
 
#define thickness(x)   (mem[nucleus(x)-MEM_MIN].sc) /* |thickness| field in a fraction noad}*/
 
#define defaultcode   1073741824L
 
#define numerator   supscr /* |numerator| field in a fraction noad}*/
 
#define denominator   subscr /* |denominator| field in a fraction noad}*/
 
#define delimiter   nucleus /* |delimiter| field in left and right noads}*/
 [p253#687] 更多...
 
#define scriptsallowed(x)   ((type(x)>=ordnoad)&&(type(x)<leftnoad))
 [p253#687] 更多...
 
#define vpack(x, y, z)   vpackage((x), (y), (z), MAX_DIMEN)
 [p245#668] special case of unconstrained depth 更多...
 
#define displaymlist(x)   info(x+1) /* mlist to be used in display style}*/
 [p254#689] 更多...
 
#define textmlist(x)   link(x+1) /* mlist to be used in text style}*/
 
#define scriptmlist(x)   info(x+2) /* mlist to be used in script style}*/
 
#define scriptscriptmlist(x)   link(x+2) /* mlist to be used in scriptscript style}*/
 
#define TEXT_SIZE   0
 p258#699: Subroutines for math mode 更多...
 
#define SCRIPT_SIZE   16
 
#define SCRIPT_SCRIPT_SIZE   32
 
#define totalmathsyparams   22
 
#define totalmathexparams   13
 
#define mathsy(x, y)   (fontinfo[(x) + parambase[fam_fnt(2 + (y))]].sc)
 [p258#700] 更多...
 
#define mathxheight(x)   mathsy(5, x) /* height of `\.x'}*/
 
#define mathquad(x)   mathsy(6, x) /* \.{18mu}}*/
 
#define num1(x)   mathsy(8,x) /* numerator shift-up in display styles}*/
 
#define num2(x)   mathsy(9,x) /* numerator shift-up in non-display, non-\.{\\atop}}*/
 
#define num3(x)   mathsy(10,x) /* numerator shift-up in non-display \.{\\atop}}*/
 
#define denom1(x)   mathsy(11,x) /* denominator shift-down in display styles}*/
 
#define denom2(x)   mathsy(12,x) /* denominator shift-down in non-display styles}*/
 
#define sup1(x)   mathsy(13,x) /* superscript shift-up in uncramped display style}*/
 
#define sup2(x)   mathsy(14,x) /* superscript shift-up in uncramped non-display}*/
 
#define sup3(x)   mathsy(15,x) /* superscript shift-up in cramped styles}*/
 
#define sub1(x)   mathsy(16,x) /* subscript shift-down if superscript is absent}*/
 
#define sub2(x)   mathsy(17,x) /* subscript shift-down if superscript is present}*/
 
#define supdrop(x)   mathsy(18,x) /* superscript baseline below top of large box}*/
 
#define subdrop(x)   mathsy(19,x) /* subscript baseline below bottom of large box}*/
 
#define delim1(x)   mathsy(20,x) /* size of \.{\\atopwithdelims} delimiters*/
 
#define delim2(x)   mathsy(21,x) /* size of \.{\\atopwithdelims} delimiters in non-displays}*/
 
#define axisheight(x)   mathsy(22,x) /* height of fraction lines above the baseline}*/
 
#define mathex(x)   fontinfo[x + parambase[fam_fnt(3 + cursize)]].sc
 [p258#701] 更多...
 
#define defaultrulethickness   mathex(8) /* thickness of \.{\\over} bars}*/
 
#define bigopspacing1   mathex(9) /* minimum clearance above a displayed op}*/
 
#define bigopspacing2   mathex(10) /* minimum clearance below a displayed op}*/
 
#define bigopspacing3   mathex(11) /* minimum baselineskip above displayed op}*/
 
#define bigopspacing4   mathex(12) /* minimum baselineskip below displayed op}*/
 
#define bigopspacing5   mathex(13) /* padding above and below displayed limits}*/
 
#define crampedstyle(x)   2*(x / 2)+cramped /* cramp the style}*/
 [p259#702] 更多...
 
#define substyle(x)   2*(x / 4)+scriptstyle+cramped /* smaller and cramped}*/
 
#define supstyle(x)   2*(x / 4)+scriptstyle+(x % 2) /* smaller}*/
 
#define numstyle(x)   x+2-2*(x / 6) /* smaller unless already script-script}*/
 
#define denomstyle(x)   2*(x / 2)+cramped+2-2*(x / 6) /* smaller, cramped}*/
 
#define newhlist(x)   mem[nucleus(x)].int_
 [p267#725]the translation of an mlist 更多...
 

枚举

enum  NoadType {
  ordnoad = (UNSET_NODE + 3) , opnoad , binnoad , relnoad ,
  opennoad , closenoad , punctnoad , innernoad ,
  radicalnoad , fractionnoad , undernoad , overnoad ,
  accentnoad , vcenternoad , leftnoad , rightnoad
}
 [p251#682] type of noad classified XXX. 更多...
 
enum  StyleNodeSubtype { displaystyle = 0 , textstyle = 2 , scriptstyle = 4 , scriptscriptstyle = 6 }
 [#688] 更多...
 

函数

void mmode_init ()
 [#685] 更多...
 
void print_size (Integer s)
 [#699] 更多...
 
HalfWord newnoad (void)
 
HalfWord newstyle (SmallNumber s)
 
HalfWord newchoice (void)
 
void printfamandchar (HalfWord p)
 [#691] prints family and character. 更多...
 
void printdelimiter (HalfWord p)
 [#691] prints a delimiter as 24-bit hex value. 更多...
 
void printsubsidiarydata (HalfWord p, ASCIICode c)
 [#692] display a noad field. 更多...
 
void showinfo (void)
 
void printstyle (Integer c)
 [#694] 更多...
 
HalfWord fractionrule (long t)
 
HalfWord overbar (HalfWord b, long k, long t)
 
HalfWord charbox (InternalFontNumber f, QuarterWord c)
 
void stackintobox (HalfWord b, InternalFontNumber f, QuarterWord c)
 
Integer heightplusdepth (InternalFontNumber f, QuarterWord c)
 
HalfWord vardelimiter (HalfWord d, SmallNumber s, long v)
 
HalfWord rebox (HalfWord b, long w)
 
HalfWord mathglue (HalfWord g, long m)
 
void mathkern (HalfWord p, long m)
 
void flushmath (void)
 
void mlisttohlist (void)
 

变量

TwoHalves emptyfield
 [p267#726] label not_use 更多...
 
FourQuarters nulldelimiter
 
Pointer curmlist
 
SmallNumber curstyle
 
SmallNumber cursize
 
Boolean mlistpenalties
 
InternalFontNumber curf
 
QuarterWord curc
 
FourQuarters curi
 

宏定义说明

◆ INC_MMODE_H

#define INC_MMODE_H

tex.c 里使用的宏

变量说明

◆ cursize

SmallNumber cursize