TeX in C
Explore TeX with modern c compiler.
|
#include "global.h"
#include "charset.h"
#include "fonts.h"
#include "scan.h"
#include "box.h"
#include "tex_constant.h"
宏定义 | |
#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 |
SmallNumber cursize |