Annotation of loncom/cgi/mimeTeX/mimetex.h, revision 1.2

1.1       albertel    1: #ifndef	_MIMETEX
                      2: #define	_MIMETEX
                      3: /****************************************************************************
                      4:  *
                      5:  * Copyright(c) 2002-2003, John Forkosh Associates, Inc. All rights reserved.
                      6:  * --------------------------------------------------------------------------
                      7:  * This file is part of mimeTeX, which is free software. You may redistribute
                      8:  * and/or modify it under the terms of the GNU General Public License,
                      9:  * version 2 or later, as published by the Free Software Foundation.
                     10:  *      MimeTeX is distributed in the hope that it will be useful, but
                     11:  * WITHOUT ANY WARRANTY, not even the implied warranty of MERCHANTABILITY.
                     12:  * See the GNU General Public License for specific details.
                     13:  *      By using mimeTeX, you warrant that you have read, understood and
                     14:  * agreed to these terms and conditions, and that you are at least 18 years
                     15:  * of age and possess the legal right and ability to enter into this
                     16:  * agreement and to use mimeTeX in accordance with it.
                     17:  *      Your mimeTeX distribution should contain a copy of the GNU General
                     18:  * Public License.  If not, write to the Free Software Foundation, Inc.,
                     19:  * 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA,
                     20:  * or point your browser to  http://www.gnu.org/licenses/gpl.html
                     21:  * --------------------------------------------------------------------------
                     22:  *
                     23:  * Purpose:	Structures, macros, symbols,
                     24:  *		and static font data for mimetex (and friends)
                     25:  * 
                     26:  * Source:	mimetex.h
                     27:  *
                     28:  * Notes:     o	#define TEXFONTS before #include "mimetex.h"
                     29:  *		if you need the fonttable[] (of fontfamily's) set up.
                     30:  *		mimetex.c needs this; other modules probably don't
                     31:  *		because they'll call access functions from mimetex.c
                     32:  *		that hide the underlying font data
                     33:  *
                     34:  * --------------------------------------------------------------------------
                     35:  * Revision History:
                     36:  * 09/18/02	J.Forkosh	Installation.
                     37:  * 12/11/02	J.Forkosh	Version 1.00 released.
                     38:  * 07/06/03	J.Forkosh	Version 1.10 begun.
                     39:  *
                     40:  ***************************************************************************/
                     41: 
                     42: 
                     43: /* --------------------------------------------------------------------------
                     44: check for compilation by parts (not supported yet)
                     45: -------------------------------------------------------------------------- */
                     46: /* --- check for (up to) five parts --- */
                     47: #if defined(PART1) || defined(PART2) || defined(PART3) \
                     48: ||  defined(PART4) || defined(PART5)
                     49:   #define PARTS
                     50: #endif
                     51: /* --- default STATIC=static, else set up static for parts --- */
                     52: #if defined(PARTS)
                     53:   #if defined(PART1)
1.2     ! albertel   54:     #define INITVALS
1.1       albertel   55:     #define STATIC /* not static */
                     56:   #else
                     57:     #define STATIC extern
                     58:   #endif
                     59: #else
                     60:   #define INITVALS
1.2     ! albertel   61:   #if defined(DRIVER)
        !            62:     #define STATIC static
        !            63:   #else
        !            64:     #define STATIC static /* not static (won't work) */
        !            65:   #endif
1.1       albertel   66: #endif
                     67: /* --- declare global symbol --- */
                     68: #ifdef INITVALS
                     69:   #define GLOBAL(type,variable,value) STATIC type variable = (value)
1.2     ! albertel   70:   /* #define SHARED(type,variable,value) type variable = (value) */
1.1       albertel   71: #else
                     72:   #define GLOBAL(type,variable,value) STATIC type variable
1.2     ! albertel   73:   /* #define SHARED(type,variable,value) STATIC type variable */
1.1       albertel   74: #endif
                     75: 
                     76: 
                     77: /* --------------------------------------------------------------------------
                     78: macros to get/set/unset a single bit (in rasters), and some bitfield macros
                     79: -------------------------------------------------------------------------- */
                     80: /* --- single-bit operations on a scalar argument (x) --- */
                     81: #define get1bit(x,bit)   ( ((x)>>(bit)) & 1 )	/* get the bit-th bit of x */
                     82: #define set1bit(x,bit)   ( (x) |=  (1<<(bit)) )	/* set the bit-th bit of x */
                     83: #define unset1bit(x,bit) ( (x) &= ~(1<<(bit)) )	/*unset the bit-th bit of x*/
                     84: /* --- single-bit operations on a byte-addressable argument (x) --- */
                     85: #define getlongbit(x,bit) get1bit(*((x)+(bit)/8),(bit)%8)	/* get bit */
                     86: #define setlongbit(x,bit) set1bit(*((x)+(bit)/8),(bit)%8)	/* set bit */
                     87: #define unsetlongbit(x,bit) unset1bit(*((x)+(bit)/8),(bit)%8)	/*unset bit*/
                     88: /* --- a few bitfield macros --- */
                     89: #define	bitmask(nbits)	((1<<(nbits))-1)	/* a mask of nbits 1's */
                     90: #define getbitfld(x,bit1,nbits)	(((x)>>(bit1)) & (bitmask(nbits)))
                     91: 
1.2     ! albertel   92: /* --------------------------------------------------------------------------
        !            93: macros to get/clear/set a single 4-bit nibble (in rasters)
        !            94: -------------------------------------------------------------------------- */
        !            95: #define	getnibble(x,i)				/* get i-th 4-bit nibble */ \
        !            96: 	( (i)%2==0? ((x)[(i)/2] & 0xF0) >> 4:	/* left/high nibble */      \
        !            97: 	(x)[(i)/2] & 0x0F )			/* right/low-order nibble */
        !            98: #define	clearnibble(x,i) ((x)[(i)/2] &= ((i)%2==0?0x0F:0xF0)) /*clear ith*/
        !            99: #define	setnibble(x,i,n)			/*set ith nibble of x to n*/\
        !           100: 	if ( (i)%2 == 0 )			/* setting left nibble */   \
        !           101: 	  { clearnibble(x,i);			/* first clear the nibble*/ \
        !           102: 	    (x)[(i)/2] |= ((n)&0x0F)<<4; }	/* set high-order 4 bits */ \
        !           103: 	else					/* setting right nibble */  \
        !           104: 	 if ( 1 )				/* dummy -- always true */  \
        !           105: 	  { clearnibble(x,i);			/* first clear the nibble*/ \
        !           106: 	    (x)[(i)/2] |= (n)&0x0F; }		/* set low-order 4 bits */  \
        !           107: 	 else					/* let user supply final ;*/
        !           108: /* --- macros to get/set/clear byte (format=2) or nibble (format=3) --- */
        !           109: #define	getbyfmt(fmt,x,i)			/*byte(fmt=2) or nibble(3)*/\
        !           110: 	( ((fmt)==2? ((int)((x)[(i)])) :	/* get full 8-bit byte */   \
        !           111: 	   ((fmt)==3? getnibble(x,i) : 0)) )	/* or 4-bit nibble (err=0)*/
        !           112: #define	clearbyfmt(fmt,x,i)			/*byte(fmt=2) or nibble(3)*/\
        !           113: 	if((fmt)==2) (x)[(i)] = ((unsigned char)0); /* clear 8-bit byte */  \
        !           114: 	else if((fmt)==3) clearnibble(x,i)	/* or clear 4-bit nibble */
        !           115: #define	setbyfmt(fmt,x,i,n)			/*byte(fmt=2) or nibble(3)*/\
        !           116: 	if((fmt)==2) (x)[(i)] = ((unsigned char)n); /*set full 8-bit byte*/ \
        !           117: 	else if((fmt)==3) setnibble(x,i,n); else /* or set 4-bit nibble */
1.1       albertel  118: 
                    119: /* -------------------------------------------------------------------------
                    120: Raster structure (bitmap or bytemap, along with its width and height in bits)
                    121: -------------------------------------------------------------------------- */
                    122: /* --- 8-bit datatype (always unsigned) --- */
                    123: #define intbyte  unsigned char
                    124: /* --- datatype for pixels --- */
                    125: /* --- #if !defined(UNSIGNEDCHAR) && !defined(SIGNEDCHAR)
                    126:           #define SIGNEDCHAR
                    127:        #endif --- */
                    128: #ifndef	SIGNEDCHAR
                    129:   #define pixbyte  unsigned char
                    130: #else
                    131:   #define pixbyte  char
                    132: #endif
                    133: /* --- raster structure --- */
                    134: #define	raster	struct raster_struct	/* "typedef" for raster_struct*/
                    135: raster
                    136:   {
                    137:   /* -----------------------------------------------------------------------
                    138:   dimensions of raster
                    139:   ------------------------------------------------------------------------ */
                    140:   int	width;				/* #pixels wide */
                    141:   int	height;				/* #pixels high */
1.2     ! albertel  142:   int	format;				/* 1=bitmap, 2=gf/8bits,3=gf/4bits */
1.1       albertel  143:   int	pixsz;				/* #bits per pixel, 1 or 8 */
                    144:   /* -----------------------------------------------------------------------
                    145:   memory for raster
                    146:   ------------------------------------------------------------------------ */
                    147:   pixbyte *pixmap;		/* memory for width*height bits or bytes */
                    148:   } ; /* --- end-of-raster_struct --- */
                    149: 
                    150: /* ---
                    151:  * associated raster constants and macros
                    152:  * -------------------------------------- */
                    153: #define	maxraster 99999			/* max #pixels for raster pixmap */
                    154: /* --- #bytes in pixmap raster needed to contain width x height pixels --- */
                    155: #define	bitmapsz(width,height) (((width)*(height)+7)/8) /*#bytes if a bitmap*/
                    156: #define	pixmapsz(rp) (((rp)->pixsz)*bitmapsz((rp)->width,(rp)->height))
1.2     ! albertel  157: /* --- #bytes in raster struct, by its format --- */
        !           158: #define	pixbytes(rp) ((rp)->format==1? pixmapsz(rp) : /*#bytes in bitmap*/  \
        !           159: 	((rp)->format==2? (rp)->pixsz : (1+(rp)->pixsz)/2) ) /*gf-formatted*/
1.1       albertel  160: /* --- pixel index calculation used by getpixel() and setpixel() below --- */
                    161: #define	PIXDEX(rp,irow,icol) (((irow)*((rp)->width))+(icol))/*irow,icol indx*/
                    162: /* --- get value of pixel, either one bit or one byte, at (irow,icol) --- */
                    163: #define	getpixel(rp,irow,icol)		/*get bit or byte based on pixsz*/  \
                    164: 	((rp)->pixsz==1? getlongbit((rp)->pixmap,PIXDEX(rp,(irow),(icol))) :\
                    165: 	 ((rp)->pixsz==8? ((rp)->pixmap)[PIXDEX(rp,(irow),(icol))] : (-1)) )
                    166: /* --- set value of pixel, either one bit or one byte, at (irow,icol) --- */
                    167: #define	setpixel(rp,irow,icol,value)	/*set bit or byte based on pixsz*/  \
                    168: 	if ( (rp)->pixsz == 1 )		/*set pixel to 1 or 0 for bitmap*/  \
                    169: 	 if ( (value) != 0 )		/* turn bit pixel on */             \
                    170: 	  { setlongbit((rp)->pixmap,PIXDEX(rp,(irow),(icol))); }            \
                    171: 	 else				/* or turn bit pixel 0ff */         \
                    172: 	  { unsetlongbit((rp)->pixmap,PIXDEX(rp,(irow),(icol))); }	    \
                    173: 	else				/* set 8-bit bytemap pixel value */ \
                    174: 	  if ( (rp)->pixsz == 8 )	/* check pixsz=8 for bytemap */	    \
                    175: 	     ((rp)->pixmap)[PIXDEX(rp,(irow),(icol))]=(pixbyte)(value);     \
1.2     ! albertel  176: 	  else				/* let user supply final ; */
1.1       albertel  177: 
                    178: /* --------------------------------------------------------------------------
                    179: some char classes tokenizer needs to recognize, and macros to check for them
                    180: -------------------------------------------------------------------------- */
                    181: /* --- some character classes --- */
1.2     ! albertel  182: #define	istextmode	(fontinfo[fontnum].istext==1) /* true for text font*/
1.1       albertel  183: #define	WHITEMATH	"~ \t\n\r\f\v"	/* white chars in display/math mode*/
                    184: #define	WHITETEXT	"\t\n\r\f\v"	/* white chars in text mode */
                    185: #define	WHITEDELIM	"~ "		/*always ignored following \sequence*/
1.2     ! albertel  186: #define	WHITESPACE	(istextmode?WHITETEXT:WHITEMATH) /*whitespace chars*/
1.1       albertel  187: #define	LEFTBRACES	"{([<|-="	/* opening delims are left{([< |,|| */
                    188: #define	RIGHTBRACES	"})]>|-="	/* corresponding closing delims */
                    189: #define	ESCAPE		"\\"		/* introduce escape sequence */
                    190: #define	SUPERSCRIPT	"^"		/* introduce superscript */
                    191: #define	SUBSCRIPT	"_"		/* introduce subscript */
                    192: #define	SCRIPTS		SUPERSCRIPT SUBSCRIPT /* either "script" */
                    193: /* --- macros to check for them --- */
                    194: #define	isthischar(thischar,accept) \
                    195: 	( (thischar)!='\000' && *(accept)!='\000' \
                    196: 	&& strchr(accept,(thischar))!=(char *)NULL )
                    197: #define	isthisstr(thisstr,accept) \
                    198: 	((*(thisstr))!='\000' && strspn(thisstr,accept)==strlen(thisstr))
                    199: #define	skipwhite(thisstr)  if ( (thisstr) != NULL ) \
                    200: 	while ( isthischar(*(thisstr),WHITESPACE) ) (thisstr)++
                    201: #define	isnextchar(thisstr,accept) \
                    202: 	({skipwhite(thisstr);},isthischar(*thisstr,accept))
                    203: 
                    204: /* -------------------------------------------------------------------------
                    205: character definition struct (font info from .gf file describing a char)
                    206: -------------------------------------------------------------------------- */
                    207: #define	chardef	struct chardef_struct	/* "typedef" for chardef_struct*/
                    208: chardef
                    209:   {
                    210:   /* -----------------------------------------------------------------------
                    211:   character description
                    212:   ------------------------------------------------------------------------ */
                    213:   /* --- character identification as given in .gf font file --- */
                    214:   int	charnum;			/*different gf files resuse same num*/
                    215:   int	location;			/* location in font */
                    216:   /* --- upper-left and lower-left corners of char (topcol=botcol?) --- */
                    217:   int	toprow, topleftcol;		/* upper-left corner */
                    218:   int	botrow, botleftcol;		/* lower-left corner */
                    219:   /* -----------------------------------------------------------------------
                    220:   character bitmap raster (image.width is character width, ditto height)
                    221:   ------------------------------------------------------------------------ */
                    222:   raster  image;			/* bitmap image of character */
                    223:   } ; /* --- end-of-chardef_struct --- */
                    224: 
                    225: 
                    226: /* -------------------------------------------------------------------------
                    227: Font info corresponding to TeX \matchardef, see TeXbook Appendix F (page 431)
                    228: -------------------------------------------------------------------------- */
                    229: typedef void *((*HANDLER)());		/* ptr to function returning void* */
                    230: #define	mathchardef	struct mathchardef_struct /*typedef for mathchardef*/
                    231: mathchardef
                    232:   {
                    233:   /* -----------------------------------------------------------------------
                    234:   symbol name ("a", "\alpha", "1", etc)
                    235:   ------------------------------------------------------------------------ */
                    236:   char	*symbol;			/* as it appears in a source file */
                    237:   /* -----------------------------------------------------------------------
                    238:   components of \mathchardef hexadecimal code assigned to this symbol
                    239:   ------------------------------------------------------------------------ */
                    240:   int	charnum;			/* char# (as given in .gf file) */
                    241:   int	family;				/* font family e.g., 2=math symbol */
                    242:   int	class;				/* e.g., 3=relation, TexBook pg.154*/
                    243:   /* ------------------------------------------------------------------------
                    244:   Extra info: some math "functions" require special processing (e.g., \frac)
                    245:   ------------------------------------------------------------------------ */
                    246:   /* --- function that performs special processing required by symbol --- */
                    247:   /* subraster *((*handler)()); -- handler is ultimately recast like this */
                    248:   HANDLER handler;			/* e.g., rastfrac() for \frac's */
                    249:   } ; /* --- end-of-mathchardef_struct --- */
                    250: 
                    251: /* ---
                    252:  * classes for mathchardef (TeXbook pg.154)
                    253:  * ---------------------------------------- */
                    254: #define	ORDINARY	(0)		/* e.g., /    */
                    255: #define	OPERATOR	(1)		/* e.g., \sum */
                    256: #define	BINARYOP	(2)		/* e.g., +    */
                    257: #define	RELATION	(3)		/* e.g., =    */
                    258: #define	OPENING		(4)		/* e.g., (    */
                    259: #define	CLOSING		(5)		/* e.g., }    */
                    260: #define	PUNCTION	(6)		/* e.g., , (punctuation) */
                    261: #define	VARIABLE	(7)		/* e.g., x    */
                    262: #define	DISPOPER	(8)		/* e.g., Bigint (displaymath opers)*/
                    263: #define	MAXCLASS	(8)		/* just for index checks */
                    264: #define	UPPERBIG	DISPOPER	/*how to interpret Bigxxx operators*/
                    265: #define	LOWERBIG	DISPOPER	/*how to interpret bigxxx operators*/
                    266: /* --- class aliases --- */
                    267: #define	ARROW		RELATION
                    268: /* --- families for mathchardef (TeXbook, top of pg.431) --- */
1.2     ! albertel  269: #define	CMR10		(1)		/* normal roman */
        !           270: #define	CMMI10		(2)		/* math italic */
        !           271: #define	CMMIB10		(3)		/* math italic bold */
        !           272: #define	CMSY10		(4)		/* math symbol */
        !           273: #define	CMEX10		(5)		/* math extension */
        !           274: #define	RSFS10		(6)		/* rsfs \scrA ... \scrZ */
        !           275: #define	BBOLD10		(7)		/* blackboard bold \mathbb A ... */
        !           276: #define	STMARY10	(8)		/* stmaryrd math symbols */
1.1       albertel  277: #define	NOTACHAR	(99)		/* e.g., \frac */
                    278: /* --- dummy argument value for handlers --- */
                    279: #define	NOVALUE		(-989898)	/*charnum,family,class used as args*/
                    280: 
                    281: /* ---
1.2     ! albertel  282:  * font family information
        !           283:  * ----------------------- */
        !           284: STATIC	int  nfontinfo			/* legal font#'s are 1...nfontinfo */
        !           285: #ifdef INITVALS
        !           286:   = 7
        !           287: #endif
        !           288:   ;
        !           289: STATIC	struct {char *name; int family; int istext; int class;}
        !           290:   /* note: class(1=upper,2=alpha,3=alnum,4=lower,5=digit,9=all) now unused */
        !           291:   fontinfo[]
        !           292: #ifdef INITVALS
        !           293:   = {/* --- name family istext class --- */
        !           294:     { "\\math",	   0,       0,  0 }, /*(0) default math mode */
        !           295:     { "\\mathcal", CMSY10,  0,  1 }, /*(1) calligraphic, uppercase */
        !           296:     { "\\mathscr", RSFS10,  0,  1 }, /*(2) rsfs/script, uppercase */
        !           297:     { "\\textrm",  CMR10,   1, -1 }, /*(3) \rm,\text{abc} --> {\textrm~abc}*/
        !           298:     { "\\textit",  CMMI10,  1, -1 }, /*(4) \it,\textit{abc}-->{\textit~abc}*/
        !           299:     { "\\mathbb",  BBOLD10, 0, -1 }, /*(5) \bb,\mathbb{abc}-->{\mathbb~abc}*/
        !           300:     { "\\mathbf",  CMMIB10, 0, -1 }, /*(6) \bf,\mathbf{abc}-->{\mathbf~abc}*/
        !           301:     { "\\mathrm",  CMR10,   0, -1 }, /*(7) \mathrm */
        !           302:     {  NULL,	   0,       0,  0 } }
        !           303: #endif
        !           304:   ; /* --- end-of-fonts[] --- */
        !           305: 
        !           306: /* ---
1.1       albertel  307:  * additional font attributes (only size is implemented)
                    308:  * ----------------------------------------------------- */
1.2     ! albertel  309: /* --- font sizes 0-7 = tiny,small,normal,large,Large,LARGE,huge,Huge --- */
        !           310: #define	LARGESTSIZE	(7)
        !           311: #ifdef DEFAULTSIZE
        !           312:   #ifndef NORMALSIZE
        !           313:     #define NORMALSIZE (DEFAULTSIZE)
        !           314:   #endif
        !           315: #endif
1.1       albertel  316: #ifndef	NORMALSIZE
1.2     ! albertel  317:   /*#define NORMALSIZE	(2)*/
        !           318:   #define NORMALSIZE	(3)
1.1       albertel  319: #endif
                    320: #ifndef	DISPLAYSIZE
                    321:   /* --- automatically sets scripts in \displaystyle when fontsize>= --- */
1.2     ! albertel  322:   /*#define DISPLAYSIZE	(NORMALSIZE+1)*/
        !           323:   #define DISPLAYSIZE	(3)
1.1       albertel  324: #endif
                    325: 
                    326: /* ---
                    327: aspect ratio is width/height of the displayed image of a pixel
                    328: -------------------------------------------------------------- */
                    329: #define	ASPECTRATIO	1.0 /*(16.0/9.0)*/
                    330: #define	SQRTWIDTH(sqrtht) ((int)(.5*((double)(sqrtht+1))*ASPECTRATIO + 0.5))
                    331: 
                    332: /* ---
                    333:  * space between adjacent symbols, e.g., symspace[RELATION][VARIABLE]
                    334:  * ------------------------------------------------------------------ */
                    335: STATIC	int symspace[10][10]
                    336: #ifdef INITVALS
                    337:  =
                    338:  { /* ---------------------------------------------------------------
                    339:          Right... ORD OPER  BIN  REL OPEN CLOS PUNC  VAR DISP unused
                    340:     Left... ------------------------------------------------------ */
                    341:   /*ORDINARY*/	{  2,   3,   3,   5,   3,   2,   2,   2,   3,   0 },
                    342:   /*OPERATOR*/	{  3,   1,   1,   5,   3,   2,   2,   2,   3,   0 },
                    343:   /*BINARYOP*/	{  2,   1,   1,   5,   3,   2,   2,   2,   3,   0 },
                    344:   /*RELATION*/	{  5,   5,   5,   5,   5,   5,   5,   5,   5,   0 },
                    345:    /*OPENING*/	{  2,   2,   2,   5,   2,   4,   2,   2,   3,   0 },
                    346:    /*CLOSING*/	{  2,   3,   3,   5,   4,   2,   1,   2,   3,   0 },
                    347:   /*PUNCTION*/	{  2,   2,   2,   5,   2,   2,   1,   2,   2,   0 },
                    348:   /*VARIABLE*/	{  2,   2,   2,   5,   2,   2,   1,   2,   2,   0 },
                    349:   /*DISPOPER*/	{  2,   3,   3,   5,   2,   3,   2,   2,   2,   0 },
                    350:     /*unused*/	{  0,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
                    351:  }
                    352: #endif
                    353:  ; /* --- end-of-symspace[][] --- */
                    354: 
                    355: 
                    356: /* -------------------------------------------------------------------------
                    357: subraster (bitmap image, its attributes, overlaid position in raster, etc)
                    358: -------------------------------------------------------------------------- */
                    359: #define	subraster struct subraster_struct /* "typedef" for subraster_struct*/
                    360: subraster
                    361:   {
                    362:   /* --- subraster type --- */
                    363:   int	type;				/* charcter or image raster */
                    364:   /* --- character info (if subraster represents a character) --- */
                    365:   mathchardef *symdef;			/* mathchardef identifying image */
                    366:   int	baseline;			/*0 if image is entirely descending*/
                    367:   int	size;				/* font size 0-4 */
                    368:   /* --- upper-left corner for bitmap (as overlaid on a larger raster) --- */
                    369:   int	toprow, leftcol;		/* upper-left corner of subraster */
                    370:   /* --- pointer to raster bitmap image of subraster --- */
                    371:   raster *image;			/*ptr to bitmap image of subraster*/
                    372:   } ; /* --- end-of-subraster_struct --- */
                    373: 
                    374: /* --- subraster types --- */
                    375: #define	CHARASTER	(1)		/* character */
                    376: #define	STRINGRASTER	(2)		/* string of characters */
                    377: #define	IMAGERASTER	(3)		/* image */
                    378: #define	ASCIISTRING	(4)		/* ascii string (not a raster) */
                    379: 
                    380: /* ---
                    381:  * issue rasterize() call end extract embedded raster from returned subraster
                    382:  * -------------------------------------------------------------------------- */
                    383: subraster *rasterize();			/* declare rasterize */
                    384: #define	make_raster(expression,size)	((rasterize(expression,size))->image)
                    385: 
                    386: 
                    387: /* -------------------------------------------------------------------------
                    388: font family
                    389: -------------------------------------------------------------------------- */
                    390: #define	fontfamily	struct fontfamily_struct /* typedef for fontfamily */
                    391: fontfamily
                    392:   {
                    393:   /* -----------------------------------------------------------------------
1.2     ! albertel  394:   several sizes, fontdef[0-7]=tiny,small,normal,large,Large,LARGE,huge,HUGE
1.1       albertel  395:   ------------------------------------------------------------------------ */
                    396:   int	family;				/* font family e.g., 2=math symbol */
                    397:   chardef *fontdef[LARGESTSIZE+2];	/*small=(fontdef[1])[charnum].image*/
                    398:   } ; /* --- end-of-fontfamily_struct --- */
                    399: /* --- dummy font table (for contexts requiring const) --- */
                    400: #define dummyfonttable \
                    401:   { \
1.2     ! albertel  402:    {   -999, {  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL  } } \
1.1       albertel  403:   }
                    404: 
                    405: 
                    406: /* -------------------------------------------------------------------------
                    407: S t a t i c   F o n t   D a t a   u s e d   b y   M i m e t e x
                    408: -------------------------------------------------------------------------- */
                    409: #ifdef TEXFONTS
                    410: /* ---
                    411:  * font info generated for us by gfuntype
                    412:  * -------------------------------------- */
                    413: #ifdef INITVALS
                    414:   #include "texfonts.h"
                    415: #endif
                    416: 
                    417: /* ---
                    418:  * font families (by size), just a table of preceding font info
                    419:  * ------------------------------------------------------------ */
                    420: /* --- for low-pass anti-aliasing --- */
                    421: STATIC	fontfamily aafonttable[]
                    422: #ifdef INITVALS
                    423:  =
1.2     ! albertel  424:  {/* -----------------------------------------------------------------------------------------
        !           425:     family     size=0,        1,        2,        3,        4,        5,        6,        7
        !           426:   ----------------------------------------------------------------------------------------- */
        !           427:   {   CMR10,{   cmr83,   cmr100,   cmr118,   cmr131,   cmr160,   cmr180,   cmr210,   cmr250}},
        !           428:   {  CMMI10,{  cmmi83,  cmmi100,  cmmi118,  cmmi131,  cmmi160,  cmmi180,  cmmi210,  cmmi250}},
        !           429:   { CMMIB10,{ cmmib83, cmmib100, cmmib118, cmmib131, cmmib160, cmmib180, cmmib210, cmmib250}},
        !           430:   {  CMSY10,{  cmsy83,  cmsy100,  cmsy118,  cmsy131,  cmsy160,  cmsy180,  cmsy210,  cmsy250}},
        !           431:   {  CMEX10,{  cmex83,  cmex100,  cmex118,  cmex131,  cmex160,  cmex180,  cmex210,  cmex250}},
        !           432:   {  RSFS10,{  rsfs83,  rsfs100,  rsfs118,  rsfs131,  rsfs160,  rsfs180,  rsfs210,  rsfs250}},
        !           433:   { BBOLD10,{ bbold83, bbold100, bbold118, bbold131, bbold160, bbold180, bbold210, bbold250}},
        !           434:   {STMARY10,{stmary83,stmary100,stmary118,stmary131,stmary160,stmary180,stmary210,stmary250}},
        !           435:   {    -999,{    NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL}}
1.1       albertel  436:  }
                    437: #endif
                    438:  ; /* --- end-of-aafonttable[] --- */
                    439: 
                    440: /* --- for super-sampling anti-aliasing --- */
                    441: #ifdef SSFONTS
                    442:  STATIC fontfamily ssfonttable[]
                    443:  #ifdef INITVALS
                    444:   =
1.2     ! albertel  445:   {/* -----------------------------------------------------------------------------------------
        !           446:     family     size=0,        1,        2,        3,        4,        5,        6,        7
        !           447:    ----------------------------------------------------------------------------------------- */
        !           448:    {  CMR10,{  cmr250,  cmr1200,  cmr1200,  cmr1200,  cmr1200,  cmr1200,  cmr1200,  cmr1200}},
        !           449:    { CMMI10,{ cmmi250,  cmmi100,  cmmi118,  cmmi131,  cmmi160,  cmmi180,  cmmi210,  cmmi250}},
        !           450:    {CMMIB10,{cmmib250, cmmib100, cmmib118, cmmib131, cmmib160, cmmib180, cmmib210, cmmib250}},
        !           451:    { CMSY10,{ cmsy250,  cmsy100,  cmsy118,  cmsy131,  cmsy160,  cmsy180,  cmsy210,  cmsy250}},
        !           452:    { CMEX10,{ cmex250,  cmex100,  cmex118,  cmex131,  cmex160,  cmex180,  cmex210,  cmex250}},
        !           453:    { RSFS10,{ rsfs250,  rsfs100,  rsfs118,  rsfs131,  rsfs160,  rsfs180,  rsfs210,  rsfs250}},
        !           454:   { BBOLD10,{bbold250, bbold100, bbold118, bbold131, bbold160, bbold180, bbold210, bbold250}},
        !           455:  {STMARY10,{stmary250,stmary100,stmary118,stmary131,stmary160,stmary180,stmary210,stmary250}},
        !           456:    {   -999,{    NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL}}
1.1       albertel  457:   }
                    458:  #endif
                    459:   ; /* --- end-of-ssfonttable[] --- */
                    460: #else
                    461:  /*GLOBAL(fontfamily,ssfonttable[],dummyfonttable);*/
                    462:  STATIC fontfamily ssfonttable[]
                    463:  #ifdef INITVALS
                    464:   = dummyfonttable
                    465:  #endif
                    466:   ;
                    467: #endif  /* #ifdef SSFONTS */
                    468: #else
                    469:  /*GLOBAL(fontfamily,aafonttable[],dummyfonttable);*/
                    470:  /*GLOBAL(fontfamily,ssfonttable[],dummyfonttable);*/
                    471:  STATIC fontfamily
                    472: 	aafonttable[]
                    473: 	#ifdef INITVALS
                    474: 	 = dummyfonttable
                    475: 	#endif
                    476: 	,
                    477: 	ssfonttable[]
                    478: 	#ifdef INITVALS
                    479: 	 = dummyfonttable
                    480: 	#endif
                    481: 	;
                    482: #endif  /* #ifdef TEXFONTS */
                    483: 
                    484: /* --- select current font table (for lowpass or supersampling) --- */
                    485: #ifndef ISSUPERSAMPLING
                    486:   #define ISSUPERSAMPLING 0
                    487: #endif
                    488: GLOBAL(fontfamily,*fonttable,(ISSUPERSAMPLING?ssfonttable:aafonttable));
                    489: 
                    490: /* --- supersampling shrink factors corresponding to displayed sizes --- */
                    491: STATIC	int shrinkfactors[]		/*supersampling shrinkfactor by size*/
                    492: #ifdef INITVALS
                    493:  =
1.2     ! albertel  494:     {  3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
1.1       albertel  495:   /*{ 15,13,11, 9, 7, 5, 3, 1 }*/
                    496: #endif
                    497:  ;
                    498: 
                    499: /* ---
                    500:  * handler functions for math operations
                    501:  * ------------------------------------- */
                    502: subraster *rastflags();			/* set flags, e.g., for \rm */
                    503: subraster *rastfrac();			/* handle \frac \atop expressions */
                    504: subraster *rastackrel();		/* handle \stackrel expressions */
                    505: subraster *rastmathfunc();		/* handle \lim,\log,etc expressions*/
                    506: subraster *rastoverlay();		/* handle \not */
                    507: subraster *rastspace();			/* handle math space, \hspace,\hfill*/
                    508: subraster *rastnewline();		/* handle \\ newline */
                    509: subraster *rastarrow();			/* handle \longrightarrow, etc */
                    510: subraster *rastuparrow();		/* handle \longuparrow, etc */
                    511: subraster *rastsqrt();			/* handle \sqrt */
                    512: subraster *rastaccent();		/* handle \hat \vec \braces, etc */
                    513: subraster *rastfont();			/* handle \cal{} \scr{}, etc */
                    514: subraster *rastbegin();			/* handle \begin{}...\end{} */
1.2     ! albertel  515: subraster *rastleft();			/* handle \left...\right */
        !           516: subraster *rastmiddle();		/* handle \left...\middle...\right */
1.1       albertel  517: subraster *rastarray();			/* handle \array{...} */
                    518: subraster *rastpicture();		/* handle \picture(,){...} */
                    519: subraster *rastline();			/* handle \line(xinc,yinc){xlen} */
                    520: subraster *rastcircle();		/* handle \circle(xdiam[,ydiam]) */
                    521: subraster *rastbezier();		/*handle\bezier(c0,r0)(c1,r1)(ct,rt)*/
                    522: subraster *rastraise();			/* handle \raisebox{lift}{expr} */
                    523: subraster *rastrotate();		/* handle \rotatebox{degs}{expr} */
                    524: subraster *rastfbox();			/* handle \fbox{expr} */
                    525: subraster *rastinput();			/* handle \input{filename} */
                    526: subraster *rastcounter();		/* handle \counter{filename} */
1.2     ! albertel  527: subraster *rasttoday();			/* handle \today[+/-tzdelta,ifmt] */
        !           528: subraster *rastcalendar();		/* handle \calendar[yaer,month] */
1.1       albertel  529: subraster *rastnoop();			/* handle \escape's to be flushed */
                    530: 
                    531: /* --- sqrt --- */
                    532: #define	SQRTACCENT	(1)		/* \sqrt */
                    533: /* --- accents --- */
                    534: #define	BARACCENT	(11)		/* \bar \overline*/
                    535: #define	UNDERBARACCENT	(12)		/* \underline */
                    536: #define	HATACCENT	(13)		/* \hat */
                    537: #define	DOTACCENT	(14)		/* \dot */
                    538: #define	DDOTACCENT	(15)		/* \ddot */
                    539: #define	VECACCENT	(16)		/* \vec */
                    540: #define	TILDEACCENT	(17)		/* \tilde */
                    541: #define	OVERBRACE	(18)		/* \overbrace */
                    542: #define	UNDERBRACE	(19)		/* \underbrace */
                    543: /* --- flags/modes --- */
1.2     ! albertel  544: #define	ISFONTFAM	(1)		/* set font family */
1.1       albertel  545: #define	ISDISPLAYSTYLE	(2)		/* set isdisplaystyle */
                    546: #define	ISDISPLAYSIZE	(21)		/* set displaysize */
                    547: #define	ISFONTSIZE	(3)		/* set fontsize */
                    548: #define	ISWEIGHT	(4)		/* set aa params */
                    549: #define	ISOPAQUE	(5)		/* set background opaque */
                    550: #define	ISSUPER		(6)		/* set supersampling/lowpass */
                    551: #define	ISAAALGORITHM	(61)		/* set anti-aliasing algorithm */
                    552: #define	ISCENTERWT	(62)		/* set anti-aliasing center weight */
                    553: #define	ISADJACENTWT	(63)		/* set anti-aliasing adjacent weight*/
                    554: #define	ISCORNERWT	(64)		/* set anti-aliasing adjacent weight*/
                    555: #define	PNMPARAMS	(65)		/* set fgalias,fgonly,bgalias,bgonly*/
                    556: #define	ISSHRINK	(7)		/* set supersampling shrinkfactor */
                    557: #define	UNITLENGTH	(8)		/* set unitlength */
                    558: #define	ISCOLOR		(9)		/* set color */
                    559: #define	ISREVERSE	(10)		/* set reverse video colors */
                    560: #define	ISSTRING	(11)		/* set ascii string mode */
1.2     ! albertel  561: #define	ISSMASH		(12)		/* set (minimum) "smash" margin */
1.1       albertel  562: 
                    563: /* ---
                    564:  * mathchardefs for symbols recognized by mimetex
                    565:  * ---------------------------------------------- */
                    566: STATIC	mathchardef symtable[]
                    567: #ifdef INITVALS
                    568:  =
                    569:  {
                    570:     /* ---------- c o m m a n d  h a n d l e r s --------------
                    571:           symbol    arg1     arg2     arg3       function
                    572:     -------------------------------------------------------- */
                    573:     /* --- commands --- */
                    574:     { "\\left", NOVALUE,NOVALUE,NOVALUE,  (HANDLER)(rastleft) },
1.2     ! albertel  575:     { "\\middle",NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastmiddle) },
1.1       albertel  576:     { "\\frac",   1,	NOVALUE,NOVALUE,  (HANDLER)(rastfrac) },
                    577:     { "\\over",   1,	NOVALUE,NOVALUE,  (HANDLER)(rastfrac) },
                    578:     { "\\atop",   0,	NOVALUE,NOVALUE,  (HANDLER)(rastfrac) },
                    579:     { "\\choose", 0,	NOVALUE,NOVALUE,  (HANDLER)(rastfrac) },
                    580:     { "\\not",    1,          0,NOVALUE,  (HANDLER)(rastoverlay) },
                    581:     { "\\Not",    2,          0,NOVALUE,  (HANDLER)(rastoverlay) },
                    582:     { "\\widenot",2,          0,NOVALUE,  (HANDLER)(rastoverlay) },
                    583:     { "\\sout",   3,    NOVALUE,NOVALUE,  (HANDLER)(rastoverlay) },
                    584:     { "\\strikeout",3,  NOVALUE,NOVALUE,  (HANDLER)(rastoverlay) },
                    585:     { "\\compose",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastoverlay) },
                    586:     { "\\stackrel", 2,	NOVALUE,NOVALUE,  (HANDLER)(rastackrel) },
                    587:     { "\\relstack", 1,	NOVALUE,NOVALUE,  (HANDLER)(rastackrel) },
                    588:     { "\\sqrt",	NOVALUE,NOVALUE,NOVALUE,  (HANDLER)(rastsqrt) },
                    589:     { "\\overbrace",  OVERBRACE,1,    1,  (HANDLER)(rastaccent) },
                    590:     { "\\underbrace",UNDERBRACE,0,    1,  (HANDLER)(rastaccent) },
                    591:     { "\\overline",   BARACCENT,1,    0,  (HANDLER)(rastaccent) },
                    592:     { "\\underline",UNDERBARACCENT,0, 0,  (HANDLER)(rastaccent) },
                    593:     { "\\begin",NOVALUE,NOVALUE,NOVALUE,  (HANDLER)(rastbegin) },
                    594:     { "\\array",NOVALUE,NOVALUE,NOVALUE,  (HANDLER)(rastarray) },
                    595:     { "\\matrix",NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastarray) },
                    596:     { "\\tabular",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastarray) },
                    597:     { "\\picture",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastpicture) },
                    598:     { "\\line", NOVALUE,NOVALUE,NOVALUE,  (HANDLER)(rastline) },
                    599:     { "\\circle", NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastcircle) },
                    600:     { "\\bezier", NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastbezier) },
                    601:     { "\\qbezier",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastbezier) },
                    602:     { "\\raisebox",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastraise) },
                    603:     { "\\rotatebox",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastrotate) },
                    604:     { "\\fbox", NOVALUE,NOVALUE,NOVALUE,  (HANDLER)(rastfbox) },
                    605:     { "\\input",NOVALUE,NOVALUE,NOVALUE,  (HANDLER)(rastinput) },
1.2     ! albertel  606:     { "\\today",NOVALUE,NOVALUE,NOVALUE,  (HANDLER)(rasttoday) },
        !           607:     { "\\calendar",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastcalendar) },
1.1       albertel  608:     { "\\counter",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastcounter) },
                    609:     /* --- spaces --- */
                    610:     { "\\/",	1,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
                    611:     { "\\,",	2,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
                    612:     { "\\:",	4,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
                    613:     { "\\;",	6,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
                    614:     { "\\\n",	3,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
                    615:     { "\\\r",	3,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
                    616:     { "\\\t",	3,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
                    617:       /*{ "\\~",5,NOVALUE,NOVALUE,(HANDLER)(rastspace) },*/
                    618:     { "~",	5,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
                    619:     { "\\ ",	5,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
                    620:     { " ",	5,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
                    621:     { "\\quad",	6,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
                    622:     { "\\qquad",10,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
                    623:     { "\\hspace",0,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
                    624:     { "\\vspace",0,	NOVALUE,      1,  (HANDLER)(rastspace) },
                    625:     { "\\hfill",0,	      1,NOVALUE,  (HANDLER)(rastspace) },
                    626:     /* --- newline --- */
                    627:     { "\\\\",   NOVALUE,NOVALUE,NOVALUE,  (HANDLER)(rastnewline) },
                    628:     /* --- arrows --- */
                    629:     { "\\longrightarrow",   1,0,NOVALUE,  (HANDLER)(rastarrow) },
                    630:     { "\\Longrightarrow",   1,1,NOVALUE,  (HANDLER)(rastarrow) },
                    631:     { "\\longleftarrow",   -1,0,NOVALUE,  (HANDLER)(rastarrow) },
                    632:     { "\\Longleftarrow",   -1,1,NOVALUE,  (HANDLER)(rastarrow) },
                    633:     { "\\longleftrightarrow",0,0,NOVALUE, (HANDLER)(rastarrow) },
                    634:     { "\\Longleftrightarrow",0,1,NOVALUE, (HANDLER)(rastarrow) },
                    635:     { "\\longuparrow",      1,0,NOVALUE, (HANDLER)(rastuparrow) },
                    636:     { "\\Longuparrow",      1,1,NOVALUE, (HANDLER)(rastuparrow) },
                    637:     { "\\longdownarrow",   -1,0,NOVALUE, (HANDLER)(rastuparrow) },
                    638:     { "\\Longdownarrow",   -1,1,NOVALUE, (HANDLER)(rastuparrow) },
                    639:     { "\\longupdownarrow",  0,0,NOVALUE, (HANDLER)(rastuparrow) },
                    640:     { "\\Longupdownarrow",  0,1,NOVALUE, (HANDLER)(rastuparrow) },
                    641:     /* --- modes and values --- */
                    642:     { "\\cal",		  1,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    643:     { "\\mathcal",	  1,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    644:     { "\\scr",		  2,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    645:     { "\\mathscr",	  2,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    646:     { "\\mathfrak",	  2,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    647:     { "\\mathbb",	  5,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    648:     { "\\rm",		  3,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    649:     { "\\text",		  3,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    650:     { "\\textrm",	  3,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
1.2     ! albertel  651:     { "\\mathrm",	  7,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
        !           652:     { "\\mathbf",	  6,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
        !           653:     { "\\bf",		  6,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
1.1       albertel  654:     { "\\mathtt",	  3,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    655:     { "\\mathsf",	  3,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    656:     { "\\mbox",		  3,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    657:     { "\\operatorname",	  3,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    658:     { "\\it",		  4,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    659:     { "\\textit",	  4,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
                    660:     { "\\mathit",	  4,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
1.2     ! albertel  661:     { "\\rm",	  ISFONTFAM,           3,NOVALUE, (HANDLER)(rastflags) },
        !           662:     { "\\it",	  ISFONTFAM,           4,NOVALUE, (HANDLER)(rastflags) },
        !           663:     { "\\sl",	  ISFONTFAM,           4,NOVALUE, (HANDLER)(rastflags) },
        !           664:     { "\\bb",	  ISFONTFAM,           5,NOVALUE, (HANDLER)(rastflags) },
        !           665:     { "\\bf",	  ISFONTFAM,           6,NOVALUE, (HANDLER)(rastflags) },
        !           666:     { "\\text",	  ISFONTFAM,           3,NOVALUE, (HANDLER)(rastflags) },
        !           667:     { "\\math",	  ISFONTFAM,           0,NOVALUE, (HANDLER)(rastflags) },
1.1       albertel  668:     { "\\ascii",     ISSTRING,         1,NOVALUE, (HANDLER)(rastflags) },
                    669:     { "\\image",     ISSTRING,         0,NOVALUE, (HANDLER)(rastflags) },
                    670:     { "\\limits",    ISDISPLAYSTYLE,   2,NOVALUE, (HANDLER)(rastflags) },
                    671:     { "\\nolimits",  ISDISPLAYSTYLE,   0,NOVALUE, (HANDLER)(rastflags) },
                    672:     { "\\displaystyle",ISDISPLAYSTYLE, 2,NOVALUE, (HANDLER)(rastflags) },
                    673:     { "\\textstyle", ISDISPLAYSTYLE,   0,NOVALUE, (HANDLER)(rastflags) },
                    674:     { "\\displaysize",ISDISPLAYSIZE,NOVALUE,NOVALUE,(HANDLER)(rastflags)},
                    675:     { "\\tiny",      ISFONTSIZE,       0,NOVALUE, (HANDLER)(rastflags) },
                    676:     { "\\scriptsize",ISFONTSIZE,       0,NOVALUE, (HANDLER)(rastflags) },
                    677:     { "\\footnotesize",ISFONTSIZE,     1,NOVALUE, (HANDLER)(rastflags) },
                    678:     { "\\small",     ISFONTSIZE,       1,NOVALUE, (HANDLER)(rastflags) },
                    679:     { "\\normalsize",ISFONTSIZE,       2,NOVALUE, (HANDLER)(rastflags) },
                    680:     { "\\large",     ISFONTSIZE,       3,NOVALUE, (HANDLER)(rastflags) },
                    681:     { "\\Large",     ISFONTSIZE,       4,NOVALUE, (HANDLER)(rastflags) },
                    682:     { "\\LARGE",     ISFONTSIZE,       5,NOVALUE, (HANDLER)(rastflags) },
1.2     ! albertel  683:     { "\\huge",      ISFONTSIZE,       6,NOVALUE, (HANDLER)(rastflags) },
        !           684:     { "\\Huge",      ISFONTSIZE,       7,NOVALUE, (HANDLER)(rastflags) },
        !           685:     { "\\HUGE",      ISFONTSIZE,       7,NOVALUE, (HANDLER)(rastflags) },
1.1       albertel  686:     { "\\fontsize",  ISFONTSIZE, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
                    687:     { "\\fs",        ISFONTSIZE, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
                    688:     { "\\shrinkfactor",ISSHRINK, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
                    689:     { "\\sf",        ISSHRINK,   NOVALUE,NOVALUE, (HANDLER)(rastflags) },
                    690:     { "\\light",     ISWEIGHT,         0,NOVALUE, (HANDLER)(rastflags) },
                    691:     { "\\regular",   ISWEIGHT,         1,NOVALUE, (HANDLER)(rastflags) },
                    692:     { "\\semibold",  ISWEIGHT,         2,NOVALUE, (HANDLER)(rastflags) },
                    693:     { "\\bold",      ISWEIGHT,         3,NOVALUE, (HANDLER)(rastflags) },
                    694:     { "\\fontweight",ISWEIGHT,   NOVALUE,NOVALUE, (HANDLER)(rastflags) },
                    695:     { "\\fw",        ISWEIGHT,   NOVALUE,NOVALUE, (HANDLER)(rastflags) },
                    696:     { "\\centerwt",  ISCENTERWT, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
                    697:     { "\\adjacentwt",ISADJACENTWT,NOVALUE,NOVALUE,(HANDLER)(rastflags) },
                    698:     { "\\cornerwt",  ISCORNERWT, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
                    699:     { "\\ssampling",  ISSUPER,         1,NOVALUE, (HANDLER)(rastflags) },
                    700:     { "\\lowpass",    ISSUPER,         0,NOVALUE, (HANDLER)(rastflags) },
                    701:     { "\\aaalg",ISAAALGORITHM,   NOVALUE,NOVALUE, (HANDLER)(rastflags) },
                    702:     { "\\pnmparams",PNMPARAMS,   NOVALUE,NOVALUE, (HANDLER)(rastflags) },
                    703:     { "\\opaque",    ISOPAQUE,         0,NOVALUE, (HANDLER)(rastflags) },
1.2     ! albertel  704:     { "\\squash",    ISSMASH,          3,1,       (HANDLER)(rastflags) },
        !           705:     { "\\smash",     ISSMASH,          3,1,       (HANDLER)(rastflags) },
        !           706:     { "\\nosquash",  ISSMASH,          0,NOVALUE, (HANDLER)(rastflags) },
        !           707:     { "\\nosmash",   ISSMASH,          0,NOVALUE, (HANDLER)(rastflags) },
        !           708:     { "\\squashmargin",ISSMASH,  NOVALUE,NOVALUE, (HANDLER)(rastflags) },
        !           709:     { "\\smashmargin", ISSMASH,  NOVALUE,NOVALUE, (HANDLER)(rastflags) },
1.1       albertel  710:     { "\\unitlength",UNITLENGTH, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
                    711:     { "\\reverse",   ISREVERSE,  NOVALUE,NOVALUE, (HANDLER)(rastflags) },
                    712:     { "\\reversefg", ISREVERSE,        1,NOVALUE, (HANDLER)(rastflags) },
                    713:     { "\\reversebg", ISREVERSE,        2,NOVALUE, (HANDLER)(rastflags) },
                    714:     { "\\color",     ISCOLOR,    NOVALUE,NOVALUE, (HANDLER)(rastflags) },
                    715:     { "\\red",       ISCOLOR,          1,NOVALUE, (HANDLER)(rastflags) },
                    716:     { "\\green",     ISCOLOR,          2,NOVALUE, (HANDLER)(rastflags) },
                    717:     { "\\blue",      ISCOLOR,          3,NOVALUE, (HANDLER)(rastflags) },
                    718:     { "\\black",     ISCOLOR,          0,NOVALUE, (HANDLER)(rastflags) },
                    719:     { "\\white",     ISCOLOR,          7,NOVALUE, (HANDLER)(rastflags) },
                    720:     /* --- accents --- */
                    721:     { "\\vec",	VECACCENT,    1,      0,  (HANDLER)(rastaccent) },
                    722:     { "\\widevec", VECACCENT, 1,      0,  (HANDLER)(rastaccent) },
                    723:     { "\\bar",	BARACCENT,    1,      0,  (HANDLER)(rastaccent) },
                    724:     { "\\widebar", BARACCENT, 1,      0,  (HANDLER)(rastaccent) },
                    725:     { "\\hat",	HATACCENT,    1,      0,  (HANDLER)(rastaccent) },
                    726:     { "\\widehat", HATACCENT, 1,      0,  (HANDLER)(rastaccent) },
                    727:     { "\\tilde", TILDEACCENT, 1,      0,  (HANDLER)(rastaccent) },
                    728:     { "\\widetilde",TILDEACCENT,1,    0,  (HANDLER)(rastaccent) },
                    729:     { "\\dot",	DOTACCENT,    1,      0,  (HANDLER)(rastaccent) },
                    730:     { "\\widedot", DOTACCENT, 1,      0,  (HANDLER)(rastaccent) },
                    731:     { "\\ddot",	DDOTACCENT,   1,      0,  (HANDLER)(rastaccent) },
                    732:     { "\\wideddot",DDOTACCENT,1,      0,  (HANDLER)(rastaccent) },
                    733:     /* --- math functions --- */
                    734:     { "\\arccos",	1,   0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    735:     { "\\arcsin",	2,   0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    736:     { "\\arctan",	3,   0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    737:     { "\\arg",		4,   0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    738:     { "\\cos",		5,   0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    739:     { "\\cosh",		6,   0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    740:     { "\\cot",		7,   0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    741:     { "\\coth",		8,   0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    742:     { "\\csc",		9,   0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    743:     { "\\deg",		10,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    744:     { "\\det",		11,  1,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    745:     { "\\dim",		12,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    746:     { "\\exp",		13,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    747:     { "\\gcd",		14,  1,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    748:     { "\\hom",		15,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    749:     { "\\inf",		16,  1,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    750:     { "\\ker",		17,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    751:     { "\\lg",		18,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    752:     { "\\lim",		19,  1,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    753:     { "\\liminf",	20,  1,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    754:     { "\\limsup",	21,  1,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    755:     { "\\ln",		22,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    756:     { "\\log",		23,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    757:     { "\\max",		24,  1,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    758:     { "\\min",		25,  1,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    759:     { "\\Pr",		26,  1,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    760:     { "\\sec",		27,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    761:     { "\\sin",		28,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    762:     { "\\sinh",		29,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    763:     { "\\sup",		30,  1,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    764:     { "\\tan",		31,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    765:     { "\\tanh",		32,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    766:     { "\\tr",		33,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    767:     { "\\pmod",		34,  0,	NOVALUE,  (HANDLER)(rastmathfunc) },
                    768:     /* --- flush -- recognized but not yet handled by mimeTeX --- */
                    769:     { "\\nooperation",0,NOVALUE,NOVALUE,  (HANDLER)(rastnoop) },
                    770:     { "\\bigskip",   0, NOVALUE,NOVALUE,  (HANDLER)(rastnoop) },
                    771:     { "\\phantom",   1, NOVALUE,NOVALUE,  (HANDLER)(rastnoop) },
                    772:     { "\\nocaching", 0, NOVALUE,NOVALUE,  (HANDLER)(rastnoop) },
                    773:     { "\\nonumber",  0, NOVALUE,NOVALUE,  (HANDLER)(rastnoop) },
                    774:     { "\\!",         0, NOVALUE,NOVALUE,  (HANDLER)(rastnoop) },
                    775:     /* --------------------- C M M I --------------------------
                    776:           symbol     charnum    family    class	    function
                    777:     -------------------------------------------------------- */
                    778:     /* --- uppercase greek letters --- */
                    779:     { "\\Gamma",	0,	CMMI10,   VARIABLE,	NULL },
                    780:     { "\\Delta",	1,	CMMI10,   VARIABLE,	NULL },
                    781:     { "\\Theta",	2,	CMMI10,   VARIABLE,	NULL },
                    782:     { "\\Lambda",	3,	CMMI10,   VARIABLE,	NULL },
                    783:     { "\\Xi",		4,	CMMI10,   VARIABLE,	NULL },
                    784:     { "\\Pi",		5,	CMMI10,   VARIABLE,	NULL },
                    785:     { "\\Sigma",	6,	CMMI10,   VARIABLE,	NULL },
                    786:     { "\\smallsum",	6,	CMMI10,   OPERATOR,	NULL },
                    787:     { "\\Upsilon",	7,	CMMI10,   VARIABLE,	NULL },
                    788:     { "\\Phi",		8,	CMMI10,   VARIABLE,	NULL },
                    789:     { "\\Psi",		9,	CMMI10,   VARIABLE,	NULL },
                    790:     { "\\Omega",	10,	CMMI10,   VARIABLE,	NULL },
                    791:     /* --- lowercase greek letters --- */
                    792:     { "\\alpha",	11,	CMMI10,   VARIABLE,	NULL },
                    793:     { "\\beta",		12,	CMMI10,   VARIABLE,	NULL },
                    794:     { "\\gamma",	13,	CMMI10,   VARIABLE,	NULL },
                    795:     { "\\delta",	14,	CMMI10,   VARIABLE,	NULL },
                    796:     { "\\epsilon",	15,	CMMI10,   VARIABLE,	NULL },
                    797:     { "\\zeta",		16,	CMMI10,   VARIABLE,	NULL },
                    798:     { "\\eta",		17,	CMMI10,   VARIABLE,	NULL },
                    799:     { "\\theta",	18,	CMMI10,   VARIABLE,	NULL },
                    800:     { "\\iota",		19,	CMMI10,   VARIABLE,	NULL },
                    801:     { "\\kappa",	20,	CMMI10,   VARIABLE,	NULL },
                    802:     { "\\lambda",	21,	CMMI10,   VARIABLE,	NULL },
                    803:     { "\\mu",		22,	CMMI10,   VARIABLE,	NULL },
                    804:     { "\\nu",		23,	CMMI10,   VARIABLE,	NULL },
                    805:     { "\\xi",		24,	CMMI10,   VARIABLE,	NULL },
                    806:     { "\\pi",		25,	CMMI10,   VARIABLE,	NULL },
                    807:     { "\\rho",		26,	CMMI10,   VARIABLE,	NULL },
                    808:     { "\\sigma",	27,	CMMI10,   VARIABLE,	NULL },
                    809:     { "\\tau",		28,	CMMI10,   VARIABLE,	NULL },
                    810:     { "\\upsilon",	29,	CMMI10,   VARIABLE,	NULL },
                    811:     { "\\phi",		30,	CMMI10,   VARIABLE,	NULL },
                    812:     { "\\chi",		31,	CMMI10,   VARIABLE,	NULL },
                    813:     { "\\psi",		32,	CMMI10,   VARIABLE,	NULL },
                    814:     { "\\omega",	33,	CMMI10,   VARIABLE,	NULL },
                    815:     { "\\varepsilon",	34,	CMMI10,   VARIABLE,	NULL },
                    816:     { "\\vartheta",	35,	CMMI10,   VARIABLE,	NULL },
                    817:     { "\\varpi",	36,	CMMI10,   VARIABLE,	NULL },
                    818:     { "\\varrho",	37,	CMMI10,   VARIABLE,	NULL },
                    819:     { "\\varsigma",	38,	CMMI10,   VARIABLE,	NULL },
                    820:     { "\\varphi",	39,	CMMI10,   VARIABLE,	NULL },
                    821:     /* --- arrow relations --- */
                    822:     { "\\leftharpoonup",    40,	CMMI10,   ARROW,	NULL },
                    823:     { "\\leftharpoondown",  41,	CMMI10,   ARROW,	NULL },
                    824:     { "\\rightharpoonup",   42,	CMMI10,   ARROW,	NULL },
                    825:     { "\\rightharpoondown", 43,	CMMI10,   ARROW,	NULL },
                    826:     /* --- punctuation --- */
                    827:     { "`",		44,	CMMI10,   PUNCTION,	NULL },
                    828:     { "\'",		45,	CMMI10,   PUNCTION,	NULL },
                    829:     /* --- triangle binary relations --- */
                    830:     { "\\triangleright",    46,	CMMI10,   RELATION,	NULL },
                    831:     { "\\triangleleft",     47,	CMMI10,   RELATION,	NULL },
                    832:     /* --- digits 0-9 --- */
                    833:     { "\\0",		48,	CMMI10,   ORDINARY,	NULL },
                    834:     { "\\1",		49,	CMMI10,   ORDINARY,	NULL },
                    835:     { "\\2",		50,	CMMI10,   ORDINARY,	NULL },
                    836:     { "\\3",		51,	CMMI10,   ORDINARY,	NULL },
                    837:     { "\\4",		52,	CMMI10,   ORDINARY,	NULL },
                    838:     { "\\5",		53,	CMMI10,   ORDINARY,	NULL },
                    839:     { "\\6",		54,	CMMI10,   ORDINARY,	NULL },
                    840:     { "\\7",		55,	CMMI10,   ORDINARY,	NULL },
                    841:     { "\\8",		56,	CMMI10,   ORDINARY,	NULL },
                    842:     { "\\9",		57,	CMMI10,   ORDINARY,	NULL },
                    843:     /* --- punctuation --- */
                    844:     { ".",		58,	CMMI10,   PUNCTION,	NULL },
                    845:     { ",",		59,	CMMI10,   PUNCTION,	NULL },
                    846:     /* --- operations (some ordinary) --- */
                    847:     { "<",		60,	CMMI10,   OPENING,	NULL },
                    848:     { "\\<",		60,	CMMI10,   OPENING,	NULL },
                    849:     { "\\lt",		60,	CMMI10,   OPENING,	NULL },
                    850:     { "/",		61,	CMMI10,   BINARYOP,	NULL },
                    851:     { ">",		62,	CMMI10,   CLOSING,	NULL },
                    852:     { "\\>",		62,	CMMI10,   CLOSING,	NULL },
                    853:     { "\\gt",		62,	CMMI10,   CLOSING,	NULL },
                    854:     { "\\star",		63,	CMMI10,   BINARYOP,	NULL },
                    855:     { "\\partial",	64,	CMMI10,   VARIABLE,	NULL },
                    856:     /* --- uppercase letters --- */
                    857:     { "A",		65,	CMMI10,   VARIABLE,	NULL },
                    858:     { "B",		66,	CMMI10,   VARIABLE,	NULL },
                    859:     { "C",		67,	CMMI10,   VARIABLE,	NULL },
                    860:     { "D",		68,	CMMI10,   VARIABLE,	NULL },
                    861:     { "E",		69,	CMMI10,   VARIABLE,	NULL },
                    862:     { "F",		70,	CMMI10,   VARIABLE,	NULL },
                    863:     { "G",		71,	CMMI10,   VARIABLE,	NULL },
                    864:     { "H",		72,	CMMI10,   VARIABLE,	NULL },
                    865:     { "I",		73,	CMMI10,   VARIABLE,	NULL },
                    866:     { "J",		74,	CMMI10,   VARIABLE,	NULL },
                    867:     { "K",		75,	CMMI10,   VARIABLE,	NULL },
                    868:     { "L",		76,	CMMI10,   VARIABLE,	NULL },
                    869:     { "M",		77,	CMMI10,   VARIABLE,	NULL },
                    870:     { "N",		78,	CMMI10,   VARIABLE,	NULL },
                    871:     { "O",		79,	CMMI10,   VARIABLE,	NULL },
                    872:     { "P",		80,	CMMI10,   VARIABLE,	NULL },
                    873:     { "Q",		81,	CMMI10,   VARIABLE,	NULL },
                    874:     { "R",		82,	CMMI10,   VARIABLE,	NULL },
                    875:     { "S",		83,	CMMI10,   VARIABLE,	NULL },
                    876:     { "T",		84,	CMMI10,   VARIABLE,	NULL },
                    877:     { "U",		85,	CMMI10,   VARIABLE,	NULL },
                    878:     { "V",		86,	CMMI10,   VARIABLE,	NULL },
                    879:     { "W",		87,	CMMI10,   VARIABLE,	NULL },
                    880:     { "X",		88,	CMMI10,   VARIABLE,	NULL },
                    881:     { "Y",		89,	CMMI10,   VARIABLE,	NULL },
                    882:     { "Z",		90,	CMMI10,   VARIABLE,	NULL },
                    883:     /* --- miscellaneous symbols and relations --- */
                    884:     { "\\flat",		91,	CMMI10,   ORDINARY,	NULL },
                    885:     { "\\natural",	92,	CMMI10,   ORDINARY,	NULL },
                    886:     { "\\sharp",	93,	CMMI10,   ORDINARY,	NULL },
                    887:     { "\\smile",	94,	CMMI10,   RELATION,	NULL },
                    888:     { "\\frown",	95,	CMMI10,   RELATION,	NULL },
                    889:     { "\\ell",		96,	CMMI10,   ORDINARY,	NULL },
                    890:     /* --- lowercase letters --- */
                    891:     { "a",		97,	CMMI10,   VARIABLE,	NULL },
                    892:     { "b",		98,	CMMI10,   VARIABLE,	NULL },
                    893:     { "c",		99,	CMMI10,   VARIABLE,	NULL },
                    894:     { "d",		100,	CMMI10,   VARIABLE,	NULL },
                    895:     { "e",		101,	CMMI10,   VARIABLE,	NULL },
                    896:     { "f",		102,	CMMI10,   VARIABLE,	NULL },
                    897:     { "g",		103,	CMMI10,   VARIABLE,	NULL },
                    898:     { "h",		104,	CMMI10,   VARIABLE,	NULL },
                    899:     { "i",		105,	CMMI10,   VARIABLE,	NULL },
                    900:     { "j",		106,	CMMI10,   VARIABLE,	NULL },
                    901:     { "k",		107,	CMMI10,   VARIABLE,	NULL },
                    902:     { "l",		108,	CMMI10,   VARIABLE,	NULL },
                    903:     { "m",		109,	CMMI10,   VARIABLE,	NULL },
                    904:     { "n",		110,	CMMI10,   VARIABLE,	NULL },
                    905:     { "o",		111,	CMMI10,   VARIABLE,	NULL },
                    906:     { "p",		112,	CMMI10,   VARIABLE,	NULL },
                    907:     { "q",		113,	CMMI10,   VARIABLE,	NULL },
                    908:     { "r",		114,	CMMI10,   VARIABLE,	NULL },
                    909:     { "s",		115,	CMMI10,   VARIABLE,	NULL },
                    910:     { "t",		116,	CMMI10,   VARIABLE,	NULL },
                    911:     { "u",		117,	CMMI10,   VARIABLE,	NULL },
                    912:     { "v",		118,	CMMI10,   VARIABLE,	NULL },
                    913:     { "w",		119,	CMMI10,   VARIABLE,	NULL },
                    914:     { "x",		120,	CMMI10,   VARIABLE,	NULL },
                    915:     { "y",		121,	CMMI10,   VARIABLE,	NULL },
                    916:     { "z",		122,	CMMI10,   VARIABLE,	NULL },
                    917:     /* --- miscellaneous symbols and relations --- */
                    918:     { "\\imath",	123,	CMMI10,   ORDINARY,	NULL },
                    919:     { "\\jmath",	124,	CMMI10,   ORDINARY,	NULL },
                    920:     { "\\wp",		125,	CMMI10,   ORDINARY,	NULL },
                    921:     { "\\vec",		126,	CMMI10,   ORDINARY,	NULL },
1.2     ! albertel  922:     /* --------------------- C M M I B ------------------------
        !           923:           symbol     charnum    family    class	    function
        !           924:     -------------------------------------------------------- */
        !           925:     /* --- uppercase greek letters --- */
        !           926:     { "\\Gamma",	0,	CMMIB10,  VARIABLE,	NULL },
        !           927:     { "\\Delta",	1,	CMMIB10,  VARIABLE,	NULL },
        !           928:     { "\\Theta",	2,	CMMIB10,  VARIABLE,	NULL },
        !           929:     { "\\Lambda",	3,	CMMIB10,  VARIABLE,	NULL },
        !           930:     { "\\Xi",		4,	CMMIB10,  VARIABLE,	NULL },
        !           931:     { "\\Pi",		5,	CMMIB10,  VARIABLE,	NULL },
        !           932:     { "\\Sigma",	6,	CMMIB10,  VARIABLE,	NULL },
        !           933:     { "\\smallsum",	6,	CMMIB10,  OPERATOR,	NULL },
        !           934:     { "\\Upsilon",	7,	CMMIB10,  VARIABLE,	NULL },
        !           935:     { "\\Phi",		8,	CMMIB10,  VARIABLE,	NULL },
        !           936:     { "\\Psi",		9,	CMMIB10,  VARIABLE,	NULL },
        !           937:     { "\\Omega",	10,	CMMIB10,  VARIABLE,	NULL },
        !           938:     /* --- lowercase greek letters --- */
        !           939:     { "\\alpha",	11,	CMMIB10,  VARIABLE,	NULL },
        !           940:     { "\\beta",		12,	CMMIB10,  VARIABLE,	NULL },
        !           941:     { "\\gamma",	13,	CMMIB10,  VARIABLE,	NULL },
        !           942:     { "\\delta",	14,	CMMIB10,  VARIABLE,	NULL },
        !           943:     { "\\epsilon",	15,	CMMIB10,  VARIABLE,	NULL },
        !           944:     { "\\zeta",		16,	CMMIB10,  VARIABLE,	NULL },
        !           945:     { "\\eta",		17,	CMMIB10,  VARIABLE,	NULL },
        !           946:     { "\\theta",	18,	CMMIB10,  VARIABLE,	NULL },
        !           947:     { "\\iota",		19,	CMMIB10,  VARIABLE,	NULL },
        !           948:     { "\\kappa",	20,	CMMIB10,  VARIABLE,	NULL },
        !           949:     { "\\lambda",	21,	CMMIB10,  VARIABLE,	NULL },
        !           950:     { "\\mu",		22,	CMMIB10,  VARIABLE,	NULL },
        !           951:     { "\\nu",		23,	CMMIB10,  VARIABLE,	NULL },
        !           952:     { "\\xi",		24,	CMMIB10,  VARIABLE,	NULL },
        !           953:     { "\\pi",		25,	CMMIB10,  VARIABLE,	NULL },
        !           954:     { "\\rho",		26,	CMMIB10,  VARIABLE,	NULL },
        !           955:     { "\\sigma",	27,	CMMIB10,  VARIABLE,	NULL },
        !           956:     { "\\tau",		28,	CMMIB10,  VARIABLE,	NULL },
        !           957:     { "\\upsilon",	29,	CMMIB10,  VARIABLE,	NULL },
        !           958:     { "\\phi",		30,	CMMIB10,  VARIABLE,	NULL },
        !           959:     { "\\chi",		31,	CMMIB10,  VARIABLE,	NULL },
        !           960:     { "\\psi",		32,	CMMIB10,  VARIABLE,	NULL },
        !           961:     { "\\omega",	33,	CMMIB10,  VARIABLE,	NULL },
        !           962:     { "\\varepsilon",	34,	CMMIB10,  VARIABLE,	NULL },
        !           963:     { "\\vartheta",	35,	CMMIB10,  VARIABLE,	NULL },
        !           964:     { "\\varpi",	36,	CMMIB10,  VARIABLE,	NULL },
        !           965:     { "\\varrho",	37,	CMMIB10,  VARIABLE,	NULL },
        !           966:     { "\\varsigma",	38,	CMMIB10,  VARIABLE,	NULL },
        !           967:     { "\\varphi",	39,	CMMIB10,  VARIABLE,	NULL },
        !           968:     /* --- arrow relations --- */
        !           969:     { "\\bfleftharpoonup",  40,	CMMIB10,  ARROW,	NULL },
        !           970:     { "\\bfleftharpoondown",41,	CMMIB10,  ARROW,	NULL },
        !           971:     { "\\bfrightharpoonup", 42,	CMMIB10,  ARROW,	NULL },
        !           972:     { "\\bfrightharpoondown",43,CMMIB10,  ARROW,	NULL },
        !           973:     /* --- punctuation --- */
        !           974:     { "`",		44,	CMMIB10,  PUNCTION,	NULL },
        !           975:     { "\'",		45,	CMMIB10,  PUNCTION,	NULL },
        !           976:     /* --- triangle binary relations --- */
        !           977:     { "\\triangleright",    46,	CMMIB10,  RELATION,	NULL },
        !           978:     { "\\triangleleft",     47,	CMMIB10,  RELATION,	NULL },
        !           979:     /* --- digits 0-9 --- */
        !           980:     { "\\0",		48,	CMMIB10,  ORDINARY,	NULL },
        !           981:     { "\\1",		49,	CMMIB10,  ORDINARY,	NULL },
        !           982:     { "\\2",		50,	CMMIB10,  ORDINARY,	NULL },
        !           983:     { "\\3",		51,	CMMIB10,  ORDINARY,	NULL },
        !           984:     { "\\4",		52,	CMMIB10,  ORDINARY,	NULL },
        !           985:     { "\\5",		53,	CMMIB10,  ORDINARY,	NULL },
        !           986:     { "\\6",		54,	CMMIB10,  ORDINARY,	NULL },
        !           987:     { "\\7",		55,	CMMIB10,  ORDINARY,	NULL },
        !           988:     { "\\8",		56,	CMMIB10,  ORDINARY,	NULL },
        !           989:     { "\\9",		57,	CMMIB10,  ORDINARY,	NULL },
        !           990:     /* --- punctuation --- */
        !           991:     { ".",		58,	CMMIB10,  PUNCTION,	NULL },
        !           992:     { ",",		59,	CMMIB10,  PUNCTION,	NULL },
        !           993:     /* --- operations (some ordinary) --- */
        !           994:     { "<",		60,	CMMIB10,  OPENING,	NULL },
        !           995:     { "\\lt",		60,	CMMIB10,  OPENING,	NULL },
        !           996:     { "/",		61,	CMMIB10,  BINARYOP,	NULL },
        !           997:     { ">",		62,	CMMIB10,  CLOSING,	NULL },
        !           998:     { "\\gt",		62,	CMMIB10,  CLOSING,	NULL },
        !           999:     { "\\star",		63,	CMMIB10,  BINARYOP,	NULL },
        !          1000:     { "\\partial",	64,	CMMIB10,  VARIABLE,	NULL },
        !          1001:     /* --- uppercase letters --- */
        !          1002:     { "A",		65,	CMMIB10,  VARIABLE,	NULL },
        !          1003:     { "B",		66,	CMMIB10,  VARIABLE,	NULL },
        !          1004:     { "C",		67,	CMMIB10,  VARIABLE,	NULL },
        !          1005:     { "D",		68,	CMMIB10,  VARIABLE,	NULL },
        !          1006:     { "E",		69,	CMMIB10,  VARIABLE,	NULL },
        !          1007:     { "F",		70,	CMMIB10,  VARIABLE,	NULL },
        !          1008:     { "G",		71,	CMMIB10,  VARIABLE,	NULL },
        !          1009:     { "H",		72,	CMMIB10,  VARIABLE,	NULL },
        !          1010:     { "I",		73,	CMMIB10,  VARIABLE,	NULL },
        !          1011:     { "J",		74,	CMMIB10,  VARIABLE,	NULL },
        !          1012:     { "K",		75,	CMMIB10,  VARIABLE,	NULL },
        !          1013:     { "L",		76,	CMMIB10,  VARIABLE,	NULL },
        !          1014:     { "M",		77,	CMMIB10,  VARIABLE,	NULL },
        !          1015:     { "N",		78,	CMMIB10,  VARIABLE,	NULL },
        !          1016:     { "O",		79,	CMMIB10,  VARIABLE,	NULL },
        !          1017:     { "P",		80,	CMMIB10,  VARIABLE,	NULL },
        !          1018:     { "Q",		81,	CMMIB10,  VARIABLE,	NULL },
        !          1019:     { "R",		82,	CMMIB10,  VARIABLE,	NULL },
        !          1020:     { "S",		83,	CMMIB10,  VARIABLE,	NULL },
        !          1021:     { "T",		84,	CMMIB10,  VARIABLE,	NULL },
        !          1022:     { "U",		85,	CMMIB10,  VARIABLE,	NULL },
        !          1023:     { "V",		86,	CMMIB10,  VARIABLE,	NULL },
        !          1024:     { "W",		87,	CMMIB10,  VARIABLE,	NULL },
        !          1025:     { "X",		88,	CMMIB10,  VARIABLE,	NULL },
        !          1026:     { "Y",		89,	CMMIB10,  VARIABLE,	NULL },
        !          1027:     { "Z",		90,	CMMIB10,  VARIABLE,	NULL },
        !          1028:     /* --- miscellaneous symbols and relations --- */
        !          1029:     { "\\flat",		91,	CMMIB10,  ORDINARY,	NULL },
        !          1030:     { "\\natural",	92,	CMMIB10,  ORDINARY,	NULL },
        !          1031:     { "\\sharp",	93,	CMMIB10,  ORDINARY,	NULL },
        !          1032:     { "\\smile",	94,	CMMIB10,  RELATION,	NULL },
        !          1033:     { "\\frown",	95,	CMMIB10,  RELATION,	NULL },
        !          1034:     { "\\ell",		96,	CMMIB10,  ORDINARY,	NULL },
        !          1035:     /* --- lowercase letters --- */
        !          1036:     { "a",		97,	CMMIB10,  VARIABLE,	NULL },
        !          1037:     { "b",		98,	CMMIB10,  VARIABLE,	NULL },
        !          1038:     { "c",		99,	CMMIB10,  VARIABLE,	NULL },
        !          1039:     { "d",		100,	CMMIB10,  VARIABLE,	NULL },
        !          1040:     { "e",		101,	CMMIB10,  VARIABLE,	NULL },
        !          1041:     { "f",		102,	CMMIB10,  VARIABLE,	NULL },
        !          1042:     { "g",		103,	CMMIB10,  VARIABLE,	NULL },
        !          1043:     { "h",		104,	CMMIB10,  VARIABLE,	NULL },
        !          1044:     { "i",		105,	CMMIB10,  VARIABLE,	NULL },
        !          1045:     { "j",		106,	CMMIB10,  VARIABLE,	NULL },
        !          1046:     { "k",		107,	CMMIB10,  VARIABLE,	NULL },
        !          1047:     { "l",		108,	CMMIB10,  VARIABLE,	NULL },
        !          1048:     { "m",		109,	CMMIB10,  VARIABLE,	NULL },
        !          1049:     { "n",		110,	CMMIB10,  VARIABLE,	NULL },
        !          1050:     { "o",		111,	CMMIB10,  VARIABLE,	NULL },
        !          1051:     { "p",		112,	CMMIB10,  VARIABLE,	NULL },
        !          1052:     { "q",		113,	CMMIB10,  VARIABLE,	NULL },
        !          1053:     { "r",		114,	CMMIB10,  VARIABLE,	NULL },
        !          1054:     { "s",		115,	CMMIB10,  VARIABLE,	NULL },
        !          1055:     { "t",		116,	CMMIB10,  VARIABLE,	NULL },
        !          1056:     { "u",		117,	CMMIB10,  VARIABLE,	NULL },
        !          1057:     { "v",		118,	CMMIB10,  VARIABLE,	NULL },
        !          1058:     { "w",		119,	CMMIB10,  VARIABLE,	NULL },
        !          1059:     { "x",		120,	CMMIB10,  VARIABLE,	NULL },
        !          1060:     { "y",		121,	CMMIB10,  VARIABLE,	NULL },
        !          1061:     { "z",		122,	CMMIB10,  VARIABLE,	NULL },
        !          1062:     /* --- miscellaneous symbols and relations --- */
        !          1063:     { "\\imath",	123,	CMMIB10,  ORDINARY,	NULL },
        !          1064:     { "\\jmath",	124,	CMMIB10,  ORDINARY,	NULL },
        !          1065:     { "\\wp",		125,	CMMIB10,  ORDINARY,	NULL },
        !          1066:     { "\\bfvec",	126,	CMMIB10,  ORDINARY,	NULL },
        !          1067:     /* --------------------- C M S Y --------------------------
1.1       albertel 1068:           symbol     charnum    family    class	    function
                   1069:     -------------------------------------------------------- */
                   1070:     /* --- operations --- */
                   1071:     { "-",		0,	CMSY10,   BINARYOP,	NULL },
                   1072:     { "\\cdot",		1,	CMSY10,   BINARYOP,	NULL },
                   1073:     { "\\times",	2,	CMSY10,   BINARYOP,	NULL },
                   1074:     { "\\ast",		3,	CMSY10,   BINARYOP,	NULL },
                   1075:     { "\\div",		4,	CMSY10,   BINARYOP,	NULL },
                   1076:     { "\\diamond",	5,	CMSY10,   BINARYOP,	NULL },
                   1077:     { "\\pm",		6,	CMSY10,   BINARYOP,	NULL },
                   1078:     { "\\mp",		7,	CMSY10,   BINARYOP,	NULL },
                   1079:     { "\\oplus",	8,	CMSY10,   BINARYOP,	NULL },
                   1080:     { "\\ominus",	9,	CMSY10,   BINARYOP,	NULL },
                   1081:     { "\\otimes",	10,	CMSY10,   BINARYOP,	NULL },
                   1082:     { "\\oslash",	11,	CMSY10,   BINARYOP,	NULL },
                   1083:     { "\\odot",		12,	CMSY10,   BINARYOP,	NULL },
                   1084:     { "\\bigcirc",	13,	CMSY10,   BINARYOP,	NULL },
                   1085:     { "\\circ",		14,	CMSY10,   BINARYOP,	NULL },
                   1086:     { "\\bullet",	15,	CMSY10,   BINARYOP,	NULL },
                   1087:     /* --- relations --- */
                   1088:     { "\\asymp",	16,	CMSY10,   RELATION,	NULL },
                   1089:     { "\\equiv",	17,	CMSY10,   RELATION,	NULL },
                   1090:     { "\\subseteq",	18,	CMSY10,   RELATION,	NULL },
                   1091:     { "\\supseteq",	19,	CMSY10,   RELATION,	NULL },
                   1092:     { "\\leq",		20,	CMSY10,   RELATION,	NULL },
                   1093:     { "\\geq",		21,	CMSY10,   RELATION,	NULL },
                   1094:     { "\\preceq",	22,	CMSY10,   RELATION,	NULL },
                   1095:     { "\\succeq",	23,	CMSY10,   RELATION,	NULL },
                   1096:     { "\\sim",		24,	CMSY10,   RELATION,	NULL },
                   1097:     { "\\approx",	25,	CMSY10,   RELATION,	NULL },
                   1098:     { "\\subset",	26,	CMSY10,   RELATION,	NULL },
                   1099:     { "\\supset",	27,	CMSY10,   RELATION,	NULL },
                   1100:     { "\\ll",		28,	CMSY10,   RELATION,	NULL },
                   1101:     { "\\gg",		29,	CMSY10,   RELATION,	NULL },
                   1102:     { "\\prec",		30,	CMSY10,   RELATION,	NULL },
                   1103:     { "\\succ",		31,	CMSY10,   RELATION,	NULL },
                   1104:     /* --- (mostly) arrows --- */
                   1105:     { "\\leftarrow",	32,	CMSY10,   ARROW,	NULL },
                   1106:     { "\\rightarrow",	33,	CMSY10,   ARROW,	NULL },
                   1107:     { "\\to",		33,	CMSY10,   ARROW,	NULL },
                   1108:     { "\\mapsto",	33,	CMSY10,   ARROW,	NULL },
                   1109:     { "\\uparrow",	34,	CMSY10,   ARROW,	NULL },
                   1110:     { "\\downarrow",	35,	CMSY10,   ARROW,	NULL },
                   1111:     { "\\leftrightarrow",   36,	CMSY10,   ARROW,	NULL },
                   1112:     { "\\nearrow",	37,	CMSY10,   ARROW,	NULL },
                   1113:     { "\\searrow",	38,	CMSY10,   ARROW,	NULL },
                   1114:     { "\\simeq",	39,	CMSY10,   RELATION,	NULL },
                   1115:     { "\\Leftarrow",	40,	CMSY10,   ARROW,	NULL },
                   1116:     { "\\Rightarrow",	41,	CMSY10,   ARROW,	NULL },
                   1117:     { "\\Uparrow",	42,	CMSY10,   ARROW,	NULL },
                   1118:     { "\\Downarrow",	43,	CMSY10,   ARROW,	NULL },
                   1119:     { "\\Leftrightarrow",   44,	CMSY10,   ARROW,	NULL },
                   1120:     { "\\nwarrow",	45,	CMSY10,   ARROW,	NULL },
                   1121:     { "\\swarrow",	46,	CMSY10,   ARROW,	NULL },
                   1122:     { "\\propto",	47,	CMSY10,   RELATION,	NULL },
                   1123:     /* --- symbols --- */
                   1124:     { "\\prime",	48,	CMSY10,   ORDINARY,	NULL },
                   1125:     { "\\infty",	49,	CMSY10,   ORDINARY,	NULL },
                   1126:     /* --- relations --- */
                   1127:     { "\\in",		50,	CMSY10,   RELATION,	NULL },
                   1128:     { "\\ni",		51,	CMSY10,   RELATION,	NULL },
                   1129:     /* --- symbols --- */
                   1130:     { "\\triangle",	    52,	CMSY10,   ORDINARY,	NULL },
                   1131:     { "\\bigtriangleup",    52,	CMSY10,   ORDINARY,	NULL },
                   1132:     { "\\bigtriangledown",  53,	CMSY10,   ORDINARY,	NULL },
1.2     ! albertel 1133:     { "\\boldslash",	54,	CMSY10,   BINARYOP,	NULL },
1.1       albertel 1134:     { "\\'",		55,	CMSY10,   ORDINARY,	NULL },
                   1135:     { "\\forall",	56,	CMSY10,   OPERATOR,	NULL },
                   1136:     { "\\exists",	57,	CMSY10,   OPERATOR,	NULL },
                   1137:     { "\\neg",		58,	CMSY10,   OPERATOR,	NULL },
                   1138:     { "\\emptyset",	59,	CMSY10,   ORDINARY,	NULL },
                   1139:     { "\\Re",		60,	CMSY10,   ORDINARY,	NULL },
                   1140:     { "\\Im",		61,	CMSY10,   ORDINARY,	NULL },
                   1141:     { "\\top",		62,	CMSY10,   ORDINARY,	NULL },
                   1142:     { "\\bot",		63,	CMSY10,   ORDINARY,	NULL },
                   1143:     { "\\perp",		63,	CMSY10,   BINARYOP,	NULL },
                   1144:     { "\\aleph",	64,	CMSY10,   ORDINARY,	NULL },
                   1145:     /* --- calligraphic letters (we use \\calA...\\calZ --- */
                   1146:     { "\\calA",		65,	CMSY10,   VARIABLE,	NULL },
                   1147:     { "\\calB",		66,	CMSY10,   VARIABLE,	NULL },
                   1148:     { "\\calC",		67,	CMSY10,   VARIABLE,	NULL },
                   1149:     { "\\calD",		68,	CMSY10,   VARIABLE,	NULL },
                   1150:     { "\\calE",		69,	CMSY10,   VARIABLE,	NULL },
                   1151:     { "\\calF",		70,	CMSY10,   VARIABLE,	NULL },
                   1152:     { "\\calG",		71,	CMSY10,   VARIABLE,	NULL },
                   1153:     { "\\calH",		72,	CMSY10,   VARIABLE,	NULL },
                   1154:     { "\\calI",		73,	CMSY10,   VARIABLE,	NULL },
                   1155:     { "\\calJ",		74,	CMSY10,   VARIABLE,	NULL },
                   1156:     { "\\calK",		75,	CMSY10,   VARIABLE,	NULL },
                   1157:     { "\\calL",		76,	CMSY10,   VARIABLE,	NULL },
                   1158:     { "\\calM",		77,	CMSY10,   VARIABLE,	NULL },
                   1159:     { "\\calN",		78,	CMSY10,   VARIABLE,	NULL },
                   1160:     { "\\calO",		79,	CMSY10,   VARIABLE,	NULL },
                   1161:     { "\\calP",		80,	CMSY10,   VARIABLE,	NULL },
                   1162:     { "\\calQ",		81,	CMSY10,   VARIABLE,	NULL },
                   1163:     { "\\calR",		82,	CMSY10,   VARIABLE,	NULL },
                   1164:     { "\\calS",		83,	CMSY10,   VARIABLE,	NULL },
                   1165:     { "\\calT",		84,	CMSY10,   VARIABLE,	NULL },
                   1166:     { "\\calU",		85,	CMSY10,   VARIABLE,	NULL },
                   1167:     { "\\calV",		86,	CMSY10,   VARIABLE,	NULL },
                   1168:     { "\\calW",		87,	CMSY10,   VARIABLE,	NULL },
                   1169:     { "\\calX",		88,	CMSY10,   VARIABLE,	NULL },
                   1170:     { "\\calY",		89,	CMSY10,   VARIABLE,	NULL },
                   1171:     { "\\calZ",		90,	CMSY10,   VARIABLE,	NULL },
1.2     ! albertel 1172:     { "A",		65,	CMSY10,   VARIABLE,	NULL },
        !          1173:     { "B",		66,	CMSY10,   VARIABLE,	NULL },
        !          1174:     { "C",		67,	CMSY10,   VARIABLE,	NULL },
        !          1175:     { "D",		68,	CMSY10,   VARIABLE,	NULL },
        !          1176:     { "E",		69,	CMSY10,   VARIABLE,	NULL },
        !          1177:     { "F",		70,	CMSY10,   VARIABLE,	NULL },
        !          1178:     { "G",		71,	CMSY10,   VARIABLE,	NULL },
        !          1179:     { "H",		72,	CMSY10,   VARIABLE,	NULL },
        !          1180:     { "I",		73,	CMSY10,   VARIABLE,	NULL },
        !          1181:     { "J",		74,	CMSY10,   VARIABLE,	NULL },
        !          1182:     { "K",		75,	CMSY10,   VARIABLE,	NULL },
        !          1183:     { "L",		76,	CMSY10,   VARIABLE,	NULL },
        !          1184:     { "M",		77,	CMSY10,   VARIABLE,	NULL },
        !          1185:     { "N",		78,	CMSY10,   VARIABLE,	NULL },
        !          1186:     { "O",		79,	CMSY10,   VARIABLE,	NULL },
        !          1187:     { "P",		80,	CMSY10,   VARIABLE,	NULL },
        !          1188:     { "Q",		81,	CMSY10,   VARIABLE,	NULL },
        !          1189:     { "R",		82,	CMSY10,   VARIABLE,	NULL },
        !          1190:     { "S",		83,	CMSY10,   VARIABLE,	NULL },
        !          1191:     { "T",		84,	CMSY10,   VARIABLE,	NULL },
        !          1192:     { "U",		85,	CMSY10,   VARIABLE,	NULL },
        !          1193:     { "V",		86,	CMSY10,   VARIABLE,	NULL },
        !          1194:     { "W",		87,	CMSY10,   VARIABLE,	NULL },
        !          1195:     { "X",		88,	CMSY10,   VARIABLE,	NULL },
        !          1196:     { "Y",		89,	CMSY10,   VARIABLE,	NULL },
        !          1197:     { "Z",		90,	CMSY10,   VARIABLE,	NULL },
1.1       albertel 1198:     /* --- operations and relations --- */
                   1199:     { "\\cup",		91,	CMSY10,   OPERATOR,	NULL },
                   1200:     { "\\cap",		92,	CMSY10,   OPERATOR,	NULL },
                   1201:     { "\\uplus",	93,	CMSY10,   OPERATOR,	NULL },
                   1202:     { "\\wedge",	94,	CMSY10,   OPERATOR,	NULL },
                   1203:     { "\\vee",		95,	CMSY10,   OPERATOR,	NULL },
                   1204:     { "\\vdash",	96,	CMSY10,   RELATION,	NULL },
                   1205:     { "\\dashv",	97,	CMSY10,   RELATION,	NULL },
                   1206:     /* --- brackets --- */
                   1207:     { "\\lfloor",	98,	CMSY10,   OPENING,	NULL },
                   1208:     { "\\rfloor",	99,	CMSY10,   CLOSING,	NULL },
                   1209:     { "\\lceil",	100,	CMSY10,   OPENING,	NULL },
                   1210:     { "\\rceil",	101,	CMSY10,   CLOSING,	NULL },
                   1211:     { "\\lbrace",	102,	CMSY10,   OPENING,	NULL },
                   1212:     { "{",		102,	CMSY10,   OPENING,	NULL },
                   1213:     { "\\{",		102,	CMSY10,   OPENING,	NULL },
                   1214:     { "\\rbrace",	103,	CMSY10,   CLOSING,	NULL },
                   1215:     { "}",		103,	CMSY10,   CLOSING,	NULL },
                   1216:     { "\\}",		103,	CMSY10,   CLOSING,	NULL },
                   1217:     { "\\langle",	104,	CMSY10,   OPENING,	NULL },
                   1218:     { "\\rangle",	105,	CMSY10,   CLOSING,	NULL },
                   1219:     { "\\mid",		106,	CMSY10,   ORDINARY,	NULL },
                   1220:     { "|",		106,	CMSY10,   BINARYOP,	NULL },
                   1221:     { "\\parallel",	107,	CMSY10,   BINARYOP,	NULL },
                   1222:     { "\\|",		107,	CMSY10,   BINARYOP,	NULL },
                   1223:     /* --- arrows --- */
                   1224:     { "\\updownarrow",	108,	CMSY10,   ARROW,	NULL },
                   1225:     { "\\Updownarrow",	109,	CMSY10,   ARROW,	NULL },
                   1226:     /* --- symbols and operations and relations --- */
                   1227:     { "\\setminus",	110,	CMSY10,   BINARYOP,	NULL },
                   1228:     { "\\backslash",	110,	CMSY10,   BINARYOP,	NULL },
                   1229:     { "\\wr",		111,	CMSY10,   BINARYOP,	NULL },
                   1230:     { "\\surd",		112,	CMSY10,   OPERATOR,	NULL },
                   1231:     { "\\amalg",	113,	CMSY10,   BINARYOP,	NULL },
                   1232:     { "\\nabla",	114,	CMSY10,   VARIABLE,	NULL },
                   1233:     { "\\smallint",	115,	CMSY10,   OPERATOR,	NULL },
                   1234:     { "\\sqcup",	116,	CMSY10,   OPERATOR,	NULL },
                   1235:     { "\\sqcap",	117,	CMSY10,   OPERATOR,	NULL },
                   1236:     { "\\sqsubseteq",	118,	CMSY10,   RELATION,	NULL },
                   1237:     { "\\sqsupseteq",	119,	CMSY10,   RELATION,	NULL },
                   1238:     /* --- special characters --- */
                   1239:     { "\\S",		120,	CMSY10,   ORDINARY,	NULL },
                   1240:     { "\\dag",		121,	CMSY10,   ORDINARY,	NULL },
                   1241:     { "\\dagger",	121,	CMSY10,   ORDINARY,	NULL },
                   1242:     { "\\ddag",		122,	CMSY10,   ORDINARY,	NULL },
                   1243:     { "\\ddagger",	122,	CMSY10,   ORDINARY,	NULL },
                   1244:     { "\\P",		123,	CMSY10,   ORDINARY,	NULL },
                   1245:     { "\\clubsuit",	124,	CMSY10,   ORDINARY,	NULL },
                   1246:     { "\\Diamond",	125,	CMSY10,   ORDINARY,	NULL },
                   1247:     { "\\Heart",	126,	CMSY10,   ORDINARY,	NULL },
                   1248:     { "\\spadesuit",	127,	CMSY10,   ORDINARY,	NULL },
1.2     ! albertel 1249:     /* ---------------------- C M R ---------------------------
1.1       albertel 1250:           symbol     charnum    family    class	    function
                   1251:     -------------------------------------------------------- */
1.2     ! albertel 1252:     /* --- uppercase greek letters --- */
        !          1253:     { "\\Gamma",	0,	CMR10,   VARIABLE,	NULL },
        !          1254:     { "\\Delta",	1,	CMR10,   VARIABLE,	NULL },
        !          1255:     { "\\Theta",	2,	CMR10,   VARIABLE,	NULL },
        !          1256:     { "\\Lambda",	3,	CMR10,   VARIABLE,	NULL },
        !          1257:     { "\\Xi",		4,	CMR10,   VARIABLE,	NULL },
        !          1258:     { "\\Pi",		5,	CMR10,   VARIABLE,	NULL },
        !          1259:     { "\\Sigma",	6,	CMR10,   VARIABLE,	NULL },
        !          1260:     { "\\smallsum",	6,	CMR10,   OPERATOR,	NULL },
        !          1261:     { "\\Upsilon",	7,	CMR10,   VARIABLE,	NULL },
        !          1262:     { "\\Phi",		8,	CMR10,   VARIABLE,	NULL },
        !          1263:     { "\\Psi",		9,	CMR10,   VARIABLE,	NULL },
        !          1264:     { "\\Omega",	10,	CMR10,   VARIABLE,	NULL },
        !          1265:     /* ---  --- */
        !          1266:     { "\\ff",		11,	CMR10,   ORDINARY,	NULL },
        !          1267:     { "\\fi",		12,	CMR10,   ORDINARY,	NULL },
        !          1268:     { "\\fl",		13,	CMR10,   ORDINARY,	NULL },
        !          1269:     { "\\ffi",		14,	CMR10,   ORDINARY,	NULL },
        !          1270:     { "\\ffl",		15,	CMR10,   ORDINARY,	NULL },
        !          1271:     { "\\imath",	16,	CMR10,   ORDINARY,	NULL },
        !          1272:     { "\\jmath",	17,	CMR10,   ORDINARY,	NULL },
1.1       albertel 1273:     /* --- foreign letters --- */
                   1274:     { "\\ss",		25,	CMR10,   ORDINARY,	NULL },
                   1275:     { "\\ae",		26,	CMR10,   ORDINARY,	NULL },
                   1276:     { "\\oe",		27,	CMR10,   ORDINARY,	NULL },
                   1277:     { "\\AE",		29,	CMR10,   ORDINARY,	NULL },
                   1278:     { "\\OE",		30,	CMR10,   ORDINARY,	NULL },
                   1279:     /* --- digits 0-9 --- */
                   1280:     { "0",		48,	CMR10,   ORDINARY,	NULL },
                   1281:     { "1",		49,	CMR10,   ORDINARY,	NULL },
                   1282:     { "2",		50,	CMR10,   ORDINARY,	NULL },
                   1283:     { "3",		51,	CMR10,   ORDINARY,	NULL },
                   1284:     { "4",		52,	CMR10,   ORDINARY,	NULL },
                   1285:     { "5",		53,	CMR10,   ORDINARY,	NULL },
                   1286:     { "6",		54,	CMR10,   ORDINARY,	NULL },
                   1287:     { "7",		55,	CMR10,   ORDINARY,	NULL },
                   1288:     { "8",		56,	CMR10,   ORDINARY,	NULL },
                   1289:     { "9",		57,	CMR10,   ORDINARY,	NULL },
                   1290:     /* --- symbols, relations, etc --- */
1.2     ! albertel 1291:     { "\\gravesym",	18,	CMR10,   ORDINARY,	NULL },
        !          1292:     { "\\acutesym",	19,	CMR10,   ORDINARY,	NULL },
        !          1293:     { "\\checksym",	20,	CMR10,   ORDINARY,	NULL },
        !          1294:     { "\\brevesym",	21,	CMR10,   ORDINARY,	NULL },
1.1       albertel 1295:     { "!",		33,	CMR10,   BINARYOP,	NULL },
                   1296:     { "\"",		34,	CMR10,   ORDINARY,	NULL },
                   1297:     { "\\quote",	34,	CMR10,   ORDINARY,	NULL },
                   1298:     { "#",		35,	CMR10,   BINARYOP,	NULL },
                   1299:     { "\\#",		35,	CMR10,   BINARYOP,	NULL },
                   1300:     { "$",		36,	CMR10,   BINARYOP,	NULL },
                   1301:     { "\\$",		36,	CMR10,   BINARYOP,	NULL },
                   1302:     { "%",		37,	CMR10,   BINARYOP,	NULL },
                   1303:     { "\\%",		37,	CMR10,   BINARYOP,	NULL },
                   1304:     { "\\percent",	37,	CMR10,   BINARYOP,	NULL },
                   1305:     { "&",		38,	CMR10,   BINARYOP,	NULL },
                   1306:     { "\\&",		38,	CMR10,   BINARYOP,	NULL },
                   1307:     { "\'",		39,	CMR10,   BINARYOP,	NULL },
1.2     ! albertel 1308:     { "\\\'",		39,	CMR10,   BINARYOP,	NULL },
1.1       albertel 1309:     { "\\apostrophe",	39,	CMR10,   ORDINARY,	NULL },
                   1310:     { "(",		40,	CMR10,   OPENING,	NULL },
                   1311:     { "\\(",		40,	CMR10,   OPENING,	NULL },
                   1312:     { ")",		41,	CMR10,   CLOSING,	NULL },
                   1313:     { "\\)",		41,	CMR10,   CLOSING,	NULL },
                   1314:     { "*",		42,	CMR10,   BINARYOP,	NULL },
                   1315:     { "+",		43,	CMR10,   BINARYOP,	NULL },
                   1316:     { "/",		47,	CMR10,   BINARYOP,	NULL },
                   1317:     { ":",		58,	CMR10,   BINARYOP,	NULL },
                   1318:     { ";",		59,	CMR10,   BINARYOP,	NULL },
                   1319:     { "=",		61,	CMR10,   RELATION,	NULL },
                   1320:     { "?",		63,	CMR10,   BINARYOP,	NULL },
                   1321:     { "@",		64,	CMR10,   BINARYOP,	NULL },
                   1322:     { "[",		91,	CMR10,   OPENING,	NULL },
                   1323:     { "\\[",		91,	CMR10,   OPENING,	NULL },
                   1324:     { "]",		93,	CMR10,   CLOSING,	NULL },
                   1325:     { "\\]",		93,	CMR10,   CLOSING,	NULL },
                   1326:     { "\\^",		94,	CMR10,   BINARYOP,	NULL },
                   1327:     { "\\~",		126,	CMR10,   OPERATOR,	NULL },
                   1328:     /* --- uppercase letters --- */
                   1329:     { "A",		65,	CMR10,   VARIABLE,	NULL },
                   1330:     { "B",		66,	CMR10,   VARIABLE,	NULL },
                   1331:     { "C",		67,	CMR10,   VARIABLE,	NULL },
                   1332:     { "D",		68,	CMR10,   VARIABLE,	NULL },
                   1333:     { "E",		69,	CMR10,   VARIABLE,	NULL },
                   1334:     { "F",		70,	CMR10,   VARIABLE,	NULL },
                   1335:     { "G",		71,	CMR10,   VARIABLE,	NULL },
                   1336:     { "H",		72,	CMR10,   VARIABLE,	NULL },
                   1337:     { "I",		73,	CMR10,   VARIABLE,	NULL },
                   1338:     { "J",		74,	CMR10,   VARIABLE,	NULL },
                   1339:     { "K",		75,	CMR10,   VARIABLE,	NULL },
                   1340:     { "L",		76,	CMR10,   VARIABLE,	NULL },
                   1341:     { "M",		77,	CMR10,   VARIABLE,	NULL },
                   1342:     { "N",		78,	CMR10,   VARIABLE,	NULL },
                   1343:     { "O",		79,	CMR10,   VARIABLE,	NULL },
                   1344:     { "P",		80,	CMR10,   VARIABLE,	NULL },
                   1345:     { "Q",		81,	CMR10,   VARIABLE,	NULL },
                   1346:     { "R",		82,	CMR10,   VARIABLE,	NULL },
                   1347:     { "S",		83,	CMR10,   VARIABLE,	NULL },
                   1348:     { "T",		84,	CMR10,   VARIABLE,	NULL },
                   1349:     { "U",		85,	CMR10,   VARIABLE,	NULL },
                   1350:     { "V",		86,	CMR10,   VARIABLE,	NULL },
                   1351:     { "W",		87,	CMR10,   VARIABLE,	NULL },
                   1352:     { "X",		88,	CMR10,   VARIABLE,	NULL },
                   1353:     { "Y",		89,	CMR10,   VARIABLE,	NULL },
                   1354:     { "Z",		90,	CMR10,   VARIABLE,	NULL },
                   1355:     /* --- lowercase letters --- */
                   1356:     { "a",		97,	CMR10,   VARIABLE,	NULL },
                   1357:     { "b",		98,	CMR10,   VARIABLE,	NULL },
                   1358:     { "c",		99,	CMR10,   VARIABLE,	NULL },
                   1359:     { "d",		100,	CMR10,   VARIABLE,	NULL },
                   1360:     { "e",		101,	CMR10,   VARIABLE,	NULL },
                   1361:     { "f",		102,	CMR10,   VARIABLE,	NULL },
                   1362:     { "g",		103,	CMR10,   VARIABLE,	NULL },
                   1363:     { "h",		104,	CMR10,   VARIABLE,	NULL },
                   1364:     { "i",		105,	CMR10,   VARIABLE,	NULL },
                   1365:     { "j",		106,	CMR10,   VARIABLE,	NULL },
                   1366:     { "k",		107,	CMR10,   VARIABLE,	NULL },
                   1367:     { "l",		108,	CMR10,   VARIABLE,	NULL },
                   1368:     { "m",		109,	CMR10,   VARIABLE,	NULL },
                   1369:     { "n",		110,	CMR10,   VARIABLE,	NULL },
                   1370:     { "o",		111,	CMR10,   VARIABLE,	NULL },
                   1371:     { "p",		112,	CMR10,   VARIABLE,	NULL },
                   1372:     { "q",		113,	CMR10,   VARIABLE,	NULL },
                   1373:     { "r",		114,	CMR10,   VARIABLE,	NULL },
                   1374:     { "s",		115,	CMR10,   VARIABLE,	NULL },
                   1375:     { "t",		116,	CMR10,   VARIABLE,	NULL },
                   1376:     { "u",		117,	CMR10,   VARIABLE,	NULL },
                   1377:     { "v",		118,	CMR10,   VARIABLE,	NULL },
                   1378:     { "w",		119,	CMR10,   VARIABLE,	NULL },
                   1379:     { "x",		120,	CMR10,   VARIABLE,	NULL },
                   1380:     { "y",		121,	CMR10,   VARIABLE,	NULL },
                   1381:     { "z",		122,	CMR10,   VARIABLE,	NULL },
1.2     ! albertel 1382:     /* --------------------- C M E X --------------------------
1.1       albertel 1383:           symbol     charnum    family    class	    function
                   1384:     -------------------------------------------------------- */
                   1385:     /* --- parens ()'s --- */
                   1386:     { "\\big(",		0,	CMEX10,   OPENING,	NULL },
                   1387:     { "\\big)",		1,	CMEX10,   CLOSING,	NULL },
                   1388:     { "\\Big(",		16,	CMEX10,   OPENING,	NULL },
                   1389:     { "\\Big)",		17,	CMEX10,   CLOSING,	NULL },
                   1390:     { "\\bigg(",	18,	CMEX10,   OPENING,	NULL },
                   1391:     { "\\bigg)",	19,	CMEX10,   CLOSING,	NULL },
                   1392:     { "\\Bigg(",	32,	CMEX10,   OPENING,	NULL },
                   1393:     { "\\Bigg)",	33,	CMEX10,   CLOSING,	NULL },
                   1394:     { "\\bigl(",	0,	CMEX10,   OPENING,	NULL },
                   1395:     { "\\bigr)",	1,	CMEX10,   CLOSING,	NULL },
                   1396:     { "\\Bigl(",	16,	CMEX10,   OPENING,	NULL },
                   1397:     { "\\Bigr)",	17,	CMEX10,   CLOSING,	NULL },
                   1398:     { "\\biggl(",	18,	CMEX10,   OPENING,	NULL },
                   1399:     { "\\biggr)",	19,	CMEX10,   CLOSING,	NULL },
                   1400:     { "\\Biggl(",	32,	CMEX10,   OPENING,	NULL },
                   1401:     { "\\Biggr)",	33,	CMEX10,   CLOSING,	NULL },
                   1402:     /* --- brackets []'s --- */
                   1403:     { "\\big[",		2,	CMEX10,   OPENING,	NULL },
                   1404:     { "\\big]",		3,	CMEX10,   CLOSING,	NULL },
                   1405:     { "\\bigg[",	20,	CMEX10,   OPENING,	NULL },
                   1406:     { "\\bigg]",	21,	CMEX10,   CLOSING,	NULL },
                   1407:     { "\\Bigg[",	34,	CMEX10,   OPENING,	NULL },
                   1408:     { "\\Bigg]",	35,	CMEX10,   CLOSING,	NULL },
                   1409:     { "\\Big[",		104,	CMEX10,   OPENING,	NULL },
                   1410:     { "\\Big]",		105,	CMEX10,   CLOSING,	NULL },
                   1411:     { "\\bigl[",	2,	CMEX10,   OPENING,	NULL },
                   1412:     { "\\bigr]",	3,	CMEX10,   CLOSING,	NULL },
                   1413:     { "\\biggl[",	20,	CMEX10,   OPENING,	NULL },
                   1414:     { "\\biggr]",	21,	CMEX10,   CLOSING,	NULL },
                   1415:     { "\\Biggl[",	34,	CMEX10,   OPENING,	NULL },
                   1416:     { "\\Biggr]",	35,	CMEX10,   CLOSING,	NULL },
                   1417:     { "\\Bigl[",	104,	CMEX10,   OPENING,	NULL },
                   1418:     { "\\Bigr]",	105,	CMEX10,   CLOSING,	NULL },
                   1419:     /* --- braces {}'s --- */
                   1420:     { "\\big{",		8,	CMEX10,   OPENING,	NULL },
                   1421:     { "\\big}",		9,	CMEX10,   CLOSING,	NULL },
                   1422:     { "\\bigg{",	26,	CMEX10,   OPENING,	NULL },
                   1423:     { "\\bigg}",	27,	CMEX10,   CLOSING,	NULL },
                   1424:     { "\\Bigg{",	40,	CMEX10,   OPENING,	NULL },
                   1425:     { "\\Bigg}",	41,	CMEX10,   CLOSING,	NULL },
                   1426:     { "\\Big{",		110,	CMEX10,   OPENING,	NULL },
                   1427:     { "\\Big}",		111,	CMEX10,   CLOSING,	NULL },
                   1428:     { "\\bigl{",	8,	CMEX10,   OPENING,	NULL },
                   1429:     { "\\bigr}",	9,	CMEX10,   CLOSING,	NULL },
                   1430:     { "\\biggl{",	26,	CMEX10,   OPENING,	NULL },
                   1431:     { "\\biggr}",	27,	CMEX10,   CLOSING,	NULL },
                   1432:     { "\\Biggl{",	40,	CMEX10,   OPENING,	NULL },
                   1433:     { "\\Biggr}",	41,	CMEX10,   CLOSING,	NULL },
                   1434:     { "\\Bigl{",	110,	CMEX10,   OPENING,	NULL },
                   1435:     { "\\Bigr}",	111,	CMEX10,   CLOSING,	NULL },
                   1436:     { "\\big\\{",	8,	CMEX10,   OPENING,	NULL },
                   1437:     { "\\big\\}",	9,	CMEX10,   CLOSING,	NULL },
                   1438:     { "\\bigg\\{",	26,	CMEX10,   OPENING,	NULL },
                   1439:     { "\\bigg\\}",	27,	CMEX10,   CLOSING,	NULL },
                   1440:     { "\\Bigg\\{",	40,	CMEX10,   OPENING,	NULL },
                   1441:     { "\\Bigg\\}",	41,	CMEX10,   CLOSING,	NULL },
                   1442:     { "\\Big\\{",	110,	CMEX10,   OPENING,	NULL },
                   1443:     { "\\Big\\}",	111,	CMEX10,   CLOSING,	NULL },
                   1444:     { "\\bigl\\{",	8,	CMEX10,   OPENING,	NULL },
                   1445:     { "\\bigr\\}",	9,	CMEX10,   CLOSING,	NULL },
                   1446:     { "\\biggl\\{",	26,	CMEX10,   OPENING,	NULL },
                   1447:     { "\\biggr\\}",	27,	CMEX10,   CLOSING,	NULL },
                   1448:     { "\\Biggl\\{",	40,	CMEX10,   OPENING,	NULL },
                   1449:     { "\\Biggr\\}",	41,	CMEX10,   CLOSING,	NULL },
                   1450:     { "\\Bigl\\{",	110,	CMEX10,   OPENING,	NULL },
                   1451:     { "\\Bigr\\}",	111,	CMEX10,   CLOSING,	NULL },
                   1452:     { "\\big\\lbrace",	8,	CMEX10,   OPENING,	NULL },
                   1453:     { "\\big\\rbrace",	9,	CMEX10,   CLOSING,	NULL },
                   1454:     { "\\bigg\\lbrace",	26,	CMEX10,   OPENING,	NULL },
                   1455:     { "\\bigg\\rbrace",	27,	CMEX10,   CLOSING,	NULL },
                   1456:     { "\\Bigg\\lbrace",	40,	CMEX10,   OPENING,	NULL },
                   1457:     { "\\Bigg\\rbrace",	41,	CMEX10,   CLOSING,	NULL },
                   1458:     { "\\Big\\lbrace",	110,	CMEX10,   OPENING,	NULL },
                   1459:     { "\\Big\\rbrace",	111,	CMEX10,   CLOSING,	NULL },
                   1460:     /* --- angles <>'s --- */
                   1461:     { "\\big<",		10,	CMEX10,   OPENING,	NULL },
                   1462:     { "\\big>",		11,	CMEX10,   CLOSING,	NULL },
                   1463:     { "\\bigg<",	28,	CMEX10,   OPENING,	NULL },
                   1464:     { "\\bigg>",	29,	CMEX10,   CLOSING,	NULL },
                   1465:     { "\\Bigg<",	42,	CMEX10,   OPENING,	NULL },
                   1466:     { "\\Bigg>",	43,	CMEX10,   CLOSING,	NULL },
                   1467:     { "\\Big<",		68,	CMEX10,   OPENING,	NULL },
                   1468:     { "\\Big>",		69,	CMEX10,   CLOSING,	NULL },
                   1469:     { "\\bigl<",	10,	CMEX10,   OPENING,	NULL },
                   1470:     { "\\bigr>",	11,	CMEX10,   CLOSING,	NULL },
                   1471:     { "\\biggl<",	28,	CMEX10,   OPENING,	NULL },
                   1472:     { "\\biggr>",	29,	CMEX10,   CLOSING,	NULL },
                   1473:     { "\\Biggl<",	42,	CMEX10,   OPENING,	NULL },
                   1474:     { "\\Biggr>",	43,	CMEX10,   CLOSING,	NULL },
                   1475:     { "\\Bigl<",	68,	CMEX10,   OPENING,	NULL },
                   1476:     { "\\Bigr>",	69,	CMEX10,   CLOSING,	NULL },
                   1477:     { "\\big\\langle",	10,	CMEX10,   OPENING,	NULL },
                   1478:     { "\\big\\rangle",	11,	CMEX10,   CLOSING,	NULL },
                   1479:     { "\\bigg\\langle",	28,	CMEX10,   OPENING,	NULL },
                   1480:     { "\\bigg\\rangle",	29,	CMEX10,   CLOSING,	NULL },
                   1481:     { "\\Bigg\\langle",	42,	CMEX10,   OPENING,	NULL },
                   1482:     { "\\Bigg\\rangle",	43,	CMEX10,   CLOSING,	NULL },
                   1483:     { "\\Big\\langle",	68,	CMEX10,   OPENING,	NULL },
                   1484:     { "\\Big\\rangle",	69,	CMEX10,   CLOSING,	NULL },
                   1485:     /* --- hats ^ --- */
                   1486:     { "^",		98,	CMEX10,   OPERATOR,	NULL },
                   1487:     { "^",		99,	CMEX10,   OPERATOR,	NULL },
                   1488:     { "^",		100,	CMEX10,   OPERATOR,	NULL },
                   1489:     /* --- tildes --- */
                   1490:     { "~",		101,	CMEX10,   OPERATOR,	NULL },
                   1491:     { "~",		102,	CMEX10,   OPERATOR,	NULL },
                   1492:     { "~",		103,	CMEX10,   OPERATOR,	NULL },
1.2     ! albertel 1493:     /* --- /'s --- */
        !          1494:     { "/",		44,	CMEX10,   OPENING,	NULL },
        !          1495:     { "/",		46,	CMEX10,   OPENING,	NULL },
        !          1496:     { "\\",		45,	CMEX10,   OPENING,	NULL },
        !          1497:     { "\\",		47,	CMEX10,   OPENING,	NULL },
1.1       albertel 1498:     /* --- \sum, \int and other (displaymath) symbols --- */
                   1499:     { "\\bigsqcup",	70,	CMEX10,   LOWERBIG,	NULL },
                   1500:     { "\\Bigsqcup",	71,	CMEX10,   UPPERBIG,	NULL },
                   1501:     { "\\oint",		72,	CMEX10,   OPERATOR,	NULL },
                   1502:     { "\\bigoint",	72,	CMEX10,   LOWERBIG,	NULL },
                   1503:     { "\\Bigoint",	73,	CMEX10,   UPPERBIG,	NULL },
                   1504:     { "\\bigodot",	74,	CMEX10,   LOWERBIG,	NULL },
                   1505:     { "\\Bigodot",	75,	CMEX10,   UPPERBIG,	NULL },
                   1506:     { "\\bigoplus",	76,	CMEX10,   LOWERBIG,	NULL },
                   1507:     { "\\Bigoplus",	77,	CMEX10,   UPPERBIG,	NULL },
                   1508:     { "\\bigotimes",	78,	CMEX10,   LOWERBIG,	NULL },
                   1509:     { "\\Bigotimes",	79,	CMEX10,   UPPERBIG,	NULL },
                   1510:     { "\\sum",		80,	CMEX10,   OPERATOR,	NULL },
                   1511:     { "\\bigsum",	80,	CMEX10,   LOWERBIG,	NULL },
                   1512:     { "\\prod",		81,	CMEX10,   OPERATOR,	NULL },
                   1513:     { "\\bigprod",	81,	CMEX10,   LOWERBIG,	NULL },
                   1514:     { "\\int",		82,	CMEX10,   OPERATOR,	NULL },
                   1515:     { "\\bigint",	82,	CMEX10,   LOWERBIG,	NULL },
                   1516:     { "\\bigcup",	83,	CMEX10,   LOWERBIG,	NULL },
                   1517:     { "\\bigcap",	84,	CMEX10,   LOWERBIG,	NULL },
                   1518:     { "\\biguplus",	85,	CMEX10,   LOWERBIG,	NULL },
                   1519:     { "\\bigwedge",	86,	CMEX10,   LOWERBIG,	NULL },
                   1520:     { "\\bigvee",	87,	CMEX10,   LOWERBIG,	NULL },
                   1521:     { "\\Bigsum",	88,	CMEX10,   UPPERBIG,	NULL },
                   1522:     { "\\big\\sum",	88,	CMEX10,   UPPERBIG,	NULL },
                   1523:     { "\\Big\\sum",	88,	CMEX10,   UPPERBIG,	NULL },
                   1524:     { "\\bigg\\sum",	88,	CMEX10,   UPPERBIG,	NULL },
                   1525:     { "\\Bigg\\sum",	88,	CMEX10,   UPPERBIG,	NULL },
                   1526:     { "\\Bigprod",	89,	CMEX10,   UPPERBIG,	NULL },
                   1527:     { "\\Bigint",	90,	CMEX10,   UPPERBIG,	NULL },
                   1528:     { "\\big\\int",	90,	CMEX10,   UPPERBIG,	NULL },
                   1529:     { "\\Big\\int",	90,	CMEX10,   UPPERBIG,	NULL },
                   1530:     { "\\bigg\\int",	90,	CMEX10,   UPPERBIG,	NULL },
                   1531:     { "\\Bigg\\int",	90,	CMEX10,   UPPERBIG,	NULL },
                   1532:     { "\\Bigcup",	91,	CMEX10,   UPPERBIG,	NULL },
                   1533:     { "\\Bigcap",	92,	CMEX10,   UPPERBIG,	NULL },
                   1534:     { "\\Biguplus",	93,	CMEX10,   UPPERBIG,	NULL },
                   1535:     { "\\Bigwedge",	94,	CMEX10,   UPPERBIG,	NULL },
                   1536:     { "\\Bigvee",	95,	CMEX10,   UPPERBIG,	NULL },
                   1537:     { "\\coprod",	96,	CMEX10,   LOWERBIG,	NULL },
                   1538:     { "\\bigcoprod",	96,	CMEX10,   LOWERBIG,	NULL },
                   1539:     { "\\Bigcoprod",	97,	CMEX10,   UPPERBIG,	NULL },
1.2     ! albertel 1540:     /* --- symbol pieces (see TeXbook page 432) --- */
        !          1541:     { "\\leftbracetop",	56,	CMEX10,   OPENING,	NULL },
        !          1542:     { "\\rightbracetop",57,	CMEX10,   CLOSING,	NULL },
        !          1543:     { "\\leftbracebot",	58,	CMEX10,   OPENING,	NULL },
        !          1544:     { "\\rightbracebot",59,	CMEX10,   CLOSING,	NULL },
        !          1545:     { "\\leftbracemid",	60,	CMEX10,   OPENING,	NULL },
        !          1546:     { "\\rightbracemid",61,	CMEX10,   CLOSING,	NULL },
        !          1547:     { "\\leftbracebar",	62,	CMEX10,   OPENING,	NULL },
        !          1548:     { "\\rightbracebar",62,	CMEX10,   CLOSING,	NULL },
        !          1549:     { "\\leftparentop",	48,	CMEX10,   OPENING,	NULL },
        !          1550:     { "\\rightparentop",49,	CMEX10,   CLOSING,	NULL },
        !          1551:     { "\\leftparenbot",	64,	CMEX10,   OPENING,	NULL },
        !          1552:     { "\\rightparenbot",65,	CMEX10,   CLOSING,	NULL },
        !          1553:     { "\\leftparenbar",	66,	CMEX10,   OPENING,	NULL },
        !          1554:     { "\\rightparenbar",67,	CMEX10,   CLOSING,	NULL },
        !          1555:     /* --------------------- R S F S --------------------------
1.1       albertel 1556:           symbol     charnum    family    class	    function
                   1557:     -------------------------------------------------------- */
1.2     ! albertel 1558:     /* --- rsfs script letters (written as \scr{A...Z}) --- */
        !          1559:     { "A",		 0,	RSFS10,   VARIABLE,	NULL },
        !          1560:     { "B",		 1,	RSFS10,   VARIABLE,	NULL },
        !          1561:     { "C",		 2,	RSFS10,   VARIABLE,	NULL },
        !          1562:     { "D",		 3,	RSFS10,   VARIABLE,	NULL },
        !          1563:     { "E",		 4,	RSFS10,   VARIABLE,	NULL },
        !          1564:     { "F",		 5,	RSFS10,   VARIABLE,	NULL },
        !          1565:     { "G",		 6,	RSFS10,   VARIABLE,	NULL },
        !          1566:     { "H",		 7,	RSFS10,   VARIABLE,	NULL },
        !          1567:     { "I",		 8,	RSFS10,   VARIABLE,	NULL },
        !          1568:     { "J",		 9,	RSFS10,   VARIABLE,	NULL },
        !          1569:     { "K",		10,	RSFS10,   VARIABLE,	NULL },
        !          1570:     { "L",		11,	RSFS10,   VARIABLE,	NULL },
        !          1571:     { "M",		12,	RSFS10,   VARIABLE,	NULL },
        !          1572:     { "N",		13,	RSFS10,   VARIABLE,	NULL },
        !          1573:     { "O",		14,	RSFS10,   VARIABLE,	NULL },
        !          1574:     { "P",		15,	RSFS10,   VARIABLE,	NULL },
        !          1575:     { "Q",		16,	RSFS10,   VARIABLE,	NULL },
        !          1576:     { "R",		17,	RSFS10,   VARIABLE,	NULL },
        !          1577:     { "S",		18,	RSFS10,   VARIABLE,	NULL },
        !          1578:     { "T",		19,	RSFS10,   VARIABLE,	NULL },
        !          1579:     { "U",		20,	RSFS10,   VARIABLE,	NULL },
        !          1580:     { "V",		21,	RSFS10,   VARIABLE,	NULL },
        !          1581:     { "W",		22,	RSFS10,   VARIABLE,	NULL },
        !          1582:     { "X",		23,	RSFS10,   VARIABLE,	NULL },
        !          1583:     { "Y",		24,	RSFS10,   VARIABLE,	NULL },
        !          1584:     { "Z",		25,	RSFS10,   VARIABLE,	NULL },
        !          1585:     /* --- rsfs script letters (written as \scrA...\scrZ) --- */
1.1       albertel 1586:     { "\\scrA",		 0,	RSFS10,   VARIABLE,	NULL },
                   1587:     { "\\scrB",		 1,	RSFS10,   VARIABLE,	NULL },
                   1588:     { "\\scrC",		 2,	RSFS10,   VARIABLE,	NULL },
                   1589:     { "\\scrD",		 3,	RSFS10,   VARIABLE,	NULL },
                   1590:     { "\\scrE",		 4,	RSFS10,   VARIABLE,	NULL },
                   1591:     { "\\scrF",		 5,	RSFS10,   VARIABLE,	NULL },
                   1592:     { "\\scrG",		 6,	RSFS10,   VARIABLE,	NULL },
                   1593:     { "\\scrH",		 7,	RSFS10,   VARIABLE,	NULL },
                   1594:     { "\\scrI",		 8,	RSFS10,   VARIABLE,	NULL },
                   1595:     { "\\scrJ",		 9,	RSFS10,   VARIABLE,	NULL },
                   1596:     { "\\scrK",		10,	RSFS10,   VARIABLE,	NULL },
                   1597:     { "\\scrL",		11,	RSFS10,   VARIABLE,	NULL },
                   1598:     { "\\scrM",		12,	RSFS10,   VARIABLE,	NULL },
                   1599:     { "\\scrN",		13,	RSFS10,   VARIABLE,	NULL },
                   1600:     { "\\scrO",		14,	RSFS10,   VARIABLE,	NULL },
                   1601:     { "\\scrP",		15,	RSFS10,   VARIABLE,	NULL },
                   1602:     { "\\scrQ",		16,	RSFS10,   VARIABLE,	NULL },
                   1603:     { "\\scrR",		17,	RSFS10,   VARIABLE,	NULL },
                   1604:     { "\\scrS",		18,	RSFS10,   VARIABLE,	NULL },
                   1605:     { "\\scrT",		19,	RSFS10,   VARIABLE,	NULL },
                   1606:     { "\\scrU",		20,	RSFS10,   VARIABLE,	NULL },
                   1607:     { "\\scrV",		21,	RSFS10,   VARIABLE,	NULL },
                   1608:     { "\\scrW",		22,	RSFS10,   VARIABLE,	NULL },
                   1609:     { "\\scrX",		23,	RSFS10,   VARIABLE,	NULL },
                   1610:     { "\\scrY",		24,	RSFS10,   VARIABLE,	NULL },
                   1611:     { "\\scrZ",		25,	RSFS10,   VARIABLE,	NULL },
                   1612:     /* -------------------- B B O L D -------------------------
                   1613:           symbol     charnum    family    class	    function
                   1614:     -------------------------------------------------------- */
                   1615:     /* --- uppercase greek letters --- */
                   1616:     { "\\Gamma",	0,     BBOLD10,   VARIABLE,	NULL },
                   1617:     { "\\Delta",	1,     BBOLD10,   VARIABLE,	NULL },
                   1618:     { "\\Theta",	2,     BBOLD10,   VARIABLE,	NULL },
                   1619:     { "\\Lambda",	3,     BBOLD10,   VARIABLE,	NULL },
                   1620:     { "\\Xi",		4,     BBOLD10,   VARIABLE,	NULL },
                   1621:     { "\\Pi",		5,     BBOLD10,   VARIABLE,	NULL },
                   1622:     { "\\Sigma",	6,     BBOLD10,   VARIABLE,	NULL },
                   1623:     { "\\smallsum",	6,     BBOLD10,   OPERATOR,	NULL },
                   1624:     { "\\Upsilon",	7,     BBOLD10,   VARIABLE,	NULL },
                   1625:     { "\\Phi",		8,     BBOLD10,   VARIABLE,	NULL },
                   1626:     { "\\Psi",		9,     BBOLD10,   VARIABLE,	NULL },
                   1627:     { "\\Omega",	10,    BBOLD10,   VARIABLE,	NULL },
                   1628:     /* --- lowercase greek letters --- */
                   1629:     { "\\alpha",	11,    BBOLD10,   VARIABLE,	NULL },
                   1630:     { "\\beta",		12,    BBOLD10,   VARIABLE,	NULL },
                   1631:     { "\\gamma",	13,    BBOLD10,   VARIABLE,	NULL },
                   1632:     { "\\delta",	14,    BBOLD10,   VARIABLE,	NULL },
                   1633:     { "\\epsilon",	15,    BBOLD10,   VARIABLE,	NULL },
                   1634:     { "\\zeta",		16,    BBOLD10,   VARIABLE,	NULL },
                   1635:     { "\\eta",		17,    BBOLD10,   VARIABLE,	NULL },
                   1636:     { "\\theta",	18,    BBOLD10,   VARIABLE,	NULL },
                   1637:     { "\\iota",		19,    BBOLD10,   VARIABLE,	NULL },
                   1638:     { "\\kappa",	20,    BBOLD10,   VARIABLE,	NULL },
                   1639:     { "\\lambda",	21,    BBOLD10,   VARIABLE,	NULL },
                   1640:     { "\\mu",		22,    BBOLD10,   VARIABLE,	NULL },
                   1641:     { "\\nu",		23,    BBOLD10,   VARIABLE,	NULL },
                   1642:     { "\\xi",		24,    BBOLD10,   VARIABLE,	NULL },
                   1643:     { "\\pi",		25,    BBOLD10,   VARIABLE,	NULL },
                   1644:     { "\\rho",		26,    BBOLD10,   VARIABLE,	NULL },
                   1645:     { "\\sigma",	27,    BBOLD10,   VARIABLE,	NULL },
                   1646:     { "\\tau",		28,    BBOLD10,   VARIABLE,	NULL },
                   1647:     { "\\upsilon",	29,    BBOLD10,   VARIABLE,	NULL },
                   1648:     { "\\phi",		30,    BBOLD10,   VARIABLE,	NULL },
                   1649:     { "\\chi",		31,    BBOLD10,   VARIABLE,	NULL },
                   1650:     { "\\psi",		32,    BBOLD10,   VARIABLE,	NULL },
                   1651:     { "\\omega",	127,   BBOLD10,   VARIABLE,	NULL },
                   1652:     /* --- digits 0-9 --- */
                   1653:     { "0",		48,    BBOLD10,   ORDINARY,	NULL },
                   1654:     { "1",		49,    BBOLD10,   ORDINARY,	NULL },
                   1655:     { "2",		50,    BBOLD10,   ORDINARY,	NULL },
                   1656:     { "3",		51,    BBOLD10,   ORDINARY,	NULL },
                   1657:     { "4",		52,    BBOLD10,   ORDINARY,	NULL },
                   1658:     { "5",		53,    BBOLD10,   ORDINARY,	NULL },
                   1659:     { "6",		54,    BBOLD10,   ORDINARY,	NULL },
                   1660:     { "7",		55,    BBOLD10,   ORDINARY,	NULL },
                   1661:     { "8",		56,    BBOLD10,   ORDINARY,	NULL },
                   1662:     { "9",		57,    BBOLD10,   ORDINARY,	NULL },
                   1663:     { "\\0",		48,    BBOLD10,   ORDINARY,	NULL },
                   1664:     { "\\1",		49,    BBOLD10,   ORDINARY,	NULL },
                   1665:     { "\\2",		50,    BBOLD10,   ORDINARY,	NULL },
                   1666:     { "\\3",		51,    BBOLD10,   ORDINARY,	NULL },
                   1667:     { "\\4",		52,    BBOLD10,   ORDINARY,	NULL },
                   1668:     { "\\5",		53,    BBOLD10,   ORDINARY,	NULL },
                   1669:     { "\\6",		54,    BBOLD10,   ORDINARY,	NULL },
                   1670:     { "\\7",		55,    BBOLD10,   ORDINARY,	NULL },
                   1671:     { "\\8",		56,    BBOLD10,   ORDINARY,	NULL },
                   1672:     { "\\9",		57,    BBOLD10,   ORDINARY,	NULL },
                   1673:     /* --- uppercase letters --- */
                   1674:     { "A",		65,    BBOLD10,   VARIABLE,	NULL },
                   1675:     { "B",		66,    BBOLD10,   VARIABLE,	NULL },
                   1676:     { "C",		67,    BBOLD10,   VARIABLE,	NULL },
                   1677:     { "D",		68,    BBOLD10,   VARIABLE,	NULL },
                   1678:     { "E",		69,    BBOLD10,   VARIABLE,	NULL },
                   1679:     { "F",		70,    BBOLD10,   VARIABLE,	NULL },
                   1680:     { "G",		71,    BBOLD10,   VARIABLE,	NULL },
                   1681:     { "H",		72,    BBOLD10,   VARIABLE,	NULL },
                   1682:     { "I",		73,    BBOLD10,   VARIABLE,	NULL },
                   1683:     { "J",		74,    BBOLD10,   VARIABLE,	NULL },
                   1684:     { "K",		75,    BBOLD10,   VARIABLE,	NULL },
                   1685:     { "L",		76,    BBOLD10,   VARIABLE,	NULL },
                   1686:     { "M",		77,    BBOLD10,   VARIABLE,	NULL },
                   1687:     { "N",		78,    BBOLD10,   VARIABLE,	NULL },
                   1688:     { "O",		79,    BBOLD10,   VARIABLE,	NULL },
                   1689:     { "P",		80,    BBOLD10,   VARIABLE,	NULL },
                   1690:     { "Q",		81,    BBOLD10,   VARIABLE,	NULL },
                   1691:     { "R",		82,    BBOLD10,   VARIABLE,	NULL },
                   1692:     { "S",		83,    BBOLD10,   VARIABLE,	NULL },
                   1693:     { "T",		84,    BBOLD10,   VARIABLE,	NULL },
                   1694:     { "U",		85,    BBOLD10,   VARIABLE,	NULL },
                   1695:     { "V",		86,    BBOLD10,   VARIABLE,	NULL },
                   1696:     { "W",		87,    BBOLD10,   VARIABLE,	NULL },
                   1697:     { "X",		88,    BBOLD10,   VARIABLE,	NULL },
                   1698:     { "Y",		89,    BBOLD10,   VARIABLE,	NULL },
                   1699:     { "Z",		90,    BBOLD10,   VARIABLE,	NULL },
                   1700:     /* --- lowercase letters --- */
                   1701:     { "a",		97,    BBOLD10,   VARIABLE,	NULL },
                   1702:     { "b",		98,    BBOLD10,   VARIABLE,	NULL },
                   1703:     { "c",		99,    BBOLD10,   VARIABLE,	NULL },
                   1704:     { "d",		100,   BBOLD10,   VARIABLE,	NULL },
                   1705:     { "e",		101,   BBOLD10,   VARIABLE,	NULL },
                   1706:     { "f",		102,   BBOLD10,   VARIABLE,	NULL },
                   1707:     { "g",		103,   BBOLD10,   VARIABLE,	NULL },
                   1708:     { "h",		104,   BBOLD10,   VARIABLE,	NULL },
                   1709:     { "i",		105,   BBOLD10,   VARIABLE,	NULL },
                   1710:     { "j",		106,   BBOLD10,   VARIABLE,	NULL },
                   1711:     { "k",		107,   BBOLD10,   VARIABLE,	NULL },
                   1712:     { "l",		108,   BBOLD10,   VARIABLE,	NULL },
                   1713:     { "m",		109,   BBOLD10,   VARIABLE,	NULL },
                   1714:     { "n",		110,   BBOLD10,   VARIABLE,	NULL },
                   1715:     { "o",		111,   BBOLD10,   VARIABLE,	NULL },
                   1716:     { "p",		112,   BBOLD10,   VARIABLE,	NULL },
                   1717:     { "q",		113,   BBOLD10,   VARIABLE,	NULL },
                   1718:     { "r",		114,   BBOLD10,   VARIABLE,	NULL },
                   1719:     { "s",		115,   BBOLD10,   VARIABLE,	NULL },
                   1720:     { "t",		116,   BBOLD10,   VARIABLE,	NULL },
                   1721:     { "u",		117,   BBOLD10,   VARIABLE,	NULL },
                   1722:     { "v",		118,   BBOLD10,   VARIABLE,	NULL },
                   1723:     { "w",		119,   BBOLD10,   VARIABLE,	NULL },
                   1724:     { "x",		120,   BBOLD10,   VARIABLE,	NULL },
                   1725:     { "y",		121,   BBOLD10,   VARIABLE,	NULL },
                   1726:     { "z",		122,   BBOLD10,   VARIABLE,	NULL },
                   1727:     /* --- symbols, relations, etc --- */
                   1728:     { "!",		33,    BBOLD10,   BINARYOP,	NULL },
                   1729:     { "#",		35,    BBOLD10,   BINARYOP,	NULL },
                   1730:     { "\\#",		35,    BBOLD10,   BINARYOP,	NULL },
                   1731:     { "$",		36,    BBOLD10,   BINARYOP,	NULL },
                   1732:     { "\\$",		36,    BBOLD10,   BINARYOP,	NULL },
                   1733:     { "%",		37,    BBOLD10,   BINARYOP,	NULL },
                   1734:     { "\\%",		37,    BBOLD10,   BINARYOP,	NULL },
                   1735:     { "\\percent",	37,    BBOLD10,   BINARYOP,	NULL },
                   1736:     { "&",		38,    BBOLD10,   BINARYOP,	NULL },
                   1737:     { "\\&",		38,    BBOLD10,   BINARYOP,	NULL },
                   1738:     { "\'",		39,    BBOLD10,   BINARYOP,	NULL },
                   1739:     { "\\apostrophe",	39,    BBOLD10,   ORDINARY,	NULL },
                   1740:     { "(",		40,    BBOLD10,   OPENING,	NULL },
                   1741:     { "\\(",		40,    BBOLD10,   OPENING,	NULL },
                   1742:     { ")",		41,    BBOLD10,   CLOSING,	NULL },
                   1743:     { "\\)",		41,    BBOLD10,   CLOSING,	NULL },
                   1744:     { "*",		42,    BBOLD10,   BINARYOP,	NULL },
                   1745:     { "+",		43,    BBOLD10,   BINARYOP,	NULL },
                   1746:     { ",",		44,    BBOLD10,   PUNCTION,	NULL },
                   1747:     { "-",		45,    BBOLD10,   BINARYOP,	NULL },
                   1748:     { ".",		46,    BBOLD10,   PUNCTION,	NULL },
                   1749:     { "/",		47,    BBOLD10,   BINARYOP,	NULL },
                   1750:     { ":",		58,    BBOLD10,   BINARYOP,	NULL },
                   1751:     { ";",		59,    BBOLD10,   BINARYOP,	NULL },
                   1752:     { "<",		60,    BBOLD10,   RELATION,	NULL },
                   1753:     { "\\<",		60,    BBOLD10,   RELATION,	NULL },
                   1754:     { "\\cdot",		61,    BBOLD10,   BINARYOP,	NULL },
                   1755:     { ">",		62,    BBOLD10,   RELATION,	NULL },
                   1756:     { "\\>",		62,    BBOLD10,   RELATION,	NULL },
                   1757:     { "?",		63,    BBOLD10,   BINARYOP,	NULL },
                   1758:     { "@",		64,    BBOLD10,   BINARYOP,	NULL },
                   1759:     { "[",		91,    BBOLD10,   OPENING,	NULL },
                   1760:     { "\\[",		91,    BBOLD10,   OPENING,	NULL },
                   1761:     { "\\\\",		92,    BBOLD10,   OPENING,	NULL },
                   1762:     { "\\backslash",	92,    BBOLD10,   OPENING,	NULL },
                   1763:     { "]",		93,    BBOLD10,   CLOSING,	NULL },
                   1764:     { "\\]",		93,    BBOLD10,   CLOSING,	NULL },
                   1765:     { "|",		124,   BBOLD10,   BINARYOP,	NULL },
                   1766:     { "\\-",		123,   BBOLD10,   BINARYOP,	NULL },
1.2     ! albertel 1767:     /* ------------------- S T M A R Y ------------------------
        !          1768:           symbol     charnum    family    class	    function
        !          1769:     -------------------------------------------------------- */
        !          1770:     /* --- stmaryrd symbols (see stmaryrd.sty for defs) --- */
        !          1771:     { "\\shortleftarrow",   0, STMARY10,  ARROW,	NULL },
        !          1772:     { "\\shortrightarrow",  1, STMARY10,  ARROW,	NULL },
        !          1773:     { "\\shortuparrow",     2, STMARY10,  ARROW,	NULL },
        !          1774:     { "\\shortdownarrow",   3, STMARY10,  ARROW,	NULL },
        !          1775:     { "\\Yup",		    4, STMARY10,  BINARYOP,	NULL },
        !          1776:     { "\\Ydown",	    5, STMARY10,  BINARYOP,	NULL },
        !          1777:     { "\\Yleft",	    6, STMARY10,  BINARYOP,	NULL },
        !          1778:     { "\\Yright",	    7, STMARY10,  BINARYOP,	NULL },
        !          1779:     { "\\varcurlyvee",	    8, STMARY10,  BINARYOP,	NULL },
        !          1780:     { "\\varcurlywedge",    9, STMARY10,  BINARYOP,	NULL },
        !          1781:     { "\\minuso",	   10, STMARY10,  BINARYOP,	NULL },
        !          1782:     { "\\baro",		   11, STMARY10,  BINARYOP,	NULL },
        !          1783:     { "\\sslash",	   12, STMARY10,  BINARYOP,	NULL },
        !          1784:     { "\\bblash",	   13, STMARY10,  BINARYOP,	NULL },
        !          1785:     { "\\moo",		   14, STMARY10,  BINARYOP,	NULL },
        !          1786:     { "\\varotimes",	   15, STMARY10,  BINARYOP,	NULL },
        !          1787:     { "\\varoast",	   16, STMARY10,  BINARYOP,	NULL },
        !          1788:     { "\\varobar",	   17, STMARY10,  BINARYOP,	NULL },
        !          1789:     { "\\varodot",	   18, STMARY10,  BINARYOP,	NULL },
        !          1790:     { "\\varoslash",	   19, STMARY10,  BINARYOP,	NULL },
        !          1791:     { "\\varobslash",	   20, STMARY10,  BINARYOP,	NULL },
        !          1792:     { "\\varocircle",	   21, STMARY10,  BINARYOP,	NULL },
        !          1793:     { "\\varoplus",	   22, STMARY10,  BINARYOP,	NULL },
        !          1794:     { "\\varominus",	   23, STMARY10,  BINARYOP,	NULL },
        !          1795:     { "\\boxast",	   24, STMARY10,  BINARYOP,	NULL },
        !          1796:     { "\\boxbar",	   25, STMARY10,  BINARYOP,	NULL },
        !          1797:     { "\\boxdot",	   26, STMARY10,  BINARYOP,	NULL },
        !          1798:     { "\\boxslash",	   27, STMARY10,  BINARYOP,	NULL },
        !          1799:     { "\\boxbslash",	   28, STMARY10,  BINARYOP,	NULL },
        !          1800:     { "\\boxcircle",	   29, STMARY10,  BINARYOP,	NULL },
        !          1801:     { "\\boxbox",	   30, STMARY10,  BINARYOP,	NULL },
        !          1802:     { "\\boxempty",	   31, STMARY10,  BINARYOP,	NULL },
        !          1803:     { "\\lightning",	   32, STMARY10,  ORDINARY,	NULL },
        !          1804:     { "\\merge",	   33, STMARY10,  BINARYOP,	NULL },
        !          1805:     { "\\vartimes",	   34, STMARY10,  BINARYOP,	NULL },
        !          1806:     { "\\fatsemi",	   35, STMARY10,  BINARYOP,	NULL },
        !          1807:     { "\\sswarrow",	   36, STMARY10,  ARROW,	NULL },
        !          1808:     { "\\ssearrow",	   37, STMARY10,  ARROW,	NULL },
        !          1809:     { "\\curlywedgeuparrow",38,STMARY10,  ARROW,	NULL },
        !          1810:     { "\\curlywedgedownarrow",39,STMARY10,ARROW,	NULL },
        !          1811:     { "\\fatslash",	   40, STMARY10,  BINARYOP,	NULL },
        !          1812:     { "\\fatbslash",	   41, STMARY10,  BINARYOP,	NULL },
        !          1813:     { "\\lbag",		   42, STMARY10,  BINARYOP,	NULL },
        !          1814:     { "\\rbag",		   43, STMARY10,  BINARYOP,	NULL },
        !          1815:     { "\\varbigcirc",	   44, STMARY10,  BINARYOP,	NULL },
        !          1816:     { "\\leftrightarroweq",45, STMARY10,  ARROW,	NULL },
        !          1817:     { "\\curlyveedownarrow",46,STMARY10,  ARROW,	NULL },
        !          1818:     { "\\curlyveeuparrow", 47, STMARY10,  ARROW,	NULL },
        !          1819:     { "\\nnwarrow",	   48, STMARY10,  ARROW,	NULL },
        !          1820:     { "\\nnearrow",	   49, STMARY10,  ARROW,	NULL },
        !          1821:     { "\\leftslice",	   50, STMARY10,  BINARYOP,	NULL },
        !          1822:     { "\\rightslice",	   51, STMARY10,  BINARYOP,	NULL },
        !          1823:     { "\\varolessthan",	   52, STMARY10,  BINARYOP,	NULL },
        !          1824:     { "\\varogreaterthan", 53, STMARY10,  BINARYOP,	NULL },
        !          1825:     { "\\varovee",	   54, STMARY10,  BINARYOP,	NULL },
        !          1826:     { "\\varowedge",	   55, STMARY10,  BINARYOP,	NULL },
        !          1827:     { "\\talloblong",	   56, STMARY10,  BINARYOP,	NULL },
        !          1828:     { "\\interleave",	   57, STMARY10,  BINARYOP,	NULL },
        !          1829:     { "\\obar",		   58, STMARY10,  BINARYOP,	NULL },
        !          1830:     { "\\oslash",	   59, STMARY10,  BINARYOP,	NULL },
        !          1831:     { "\\olessthan",	   60, STMARY10,  BINARYOP,	NULL },
        !          1832:     { "\\ogreaterthan",	   61, STMARY10,  BINARYOP,	NULL },
        !          1833:     { "\\ovee",		   62, STMARY10,  BINARYOP,	NULL },
        !          1834:     { "\\owedge",	   63, STMARY10,  BINARYOP,	NULL },
        !          1835:     { "\\oblong",	   64, STMARY10,  BINARYOP,	NULL },
        !          1836:     { "\\inplus",	   65, STMARY10,  RELATION,	NULL },
        !          1837:     { "\\niplus",	   66, STMARY10,  RELATION,	NULL },
        !          1838:     { "\\nplus",	   67, STMARY10,  BINARYOP,	NULL },
        !          1839:     { "\\subsetplus",	   68, STMARY10,  RELATION,	NULL },
        !          1840:     { "\\supsetplus",	   69, STMARY10,  RELATION,	NULL },
        !          1841:     { "\\subsetpluseq",	   70, STMARY10,  RELATION,	NULL },
        !          1842:     { "\\supsetpluseq",	   71, STMARY10,  RELATION,	NULL },
        !          1843:     { "\\Lbag",		   72, STMARY10,  OPENING,	NULL },
        !          1844:     { "\\Rbag",		   73, STMARY10,  CLOSING,	NULL },
        !          1845:     { "\\llbracket",	   74, STMARY10,  OPENING,	NULL },
        !          1846:     { "\\rrbracket",	   75, STMARY10,  CLOSING,	NULL },
        !          1847:     { "\\llparenthesis",   76, STMARY10,  OPENING,	NULL },
        !          1848:     { "\\rrparenthesis",   77, STMARY10,  CLOSING,	NULL },
        !          1849:     { "\\binampersand",	   78, STMARY10,  OPENING,	NULL },
        !          1850:     { "\\bindnasrepma",	   79, STMARY10,  CLOSING,	NULL },
        !          1851:     { "\\trianglelefteqslant",80,STMARY10,RELATION,	NULL },
        !          1852:     { "\\trianglerighteqslant",81,STMARY10,RELATION,	NULL },
        !          1853:     { "\\ntrianglelefteqslant",82,STMARY10,RELATION,	NULL },
        !          1854:     { "\\ntrianglerighteqslant",83,STMARY10,RELATION,	NULL },
        !          1855:     { "\\llfloor",	   84, STMARY10,  OPENING,	NULL },
        !          1856:     { "\\rrfloor",	   85, STMARY10,  CLOSING,	NULL },
        !          1857:     { "\\llceil",	   86, STMARY10,  OPENING,	NULL },
        !          1858:     { "\\rrceil",	   87, STMARY10,  CLOSING,	NULL },
        !          1859:     { "\\arrownot",	   88, STMARY10,  RELATION,	NULL },
        !          1860:     { "\\Arrownot",	   89, STMARY10,  RELATION,	NULL },
        !          1861:     { "\\Mapstochar",	   90, STMARY10,  RELATION,	NULL },
        !          1862:     { "\\mapsfromchar",	   91, STMARY10,  RELATION,	NULL },
        !          1863:     { "\\Mapsfromchar",	   92, STMARY10,  RELATION,	NULL },
        !          1864:     { "\\leftrightarrowtriangle",93,STMARY10,BINARYOP,	NULL },
        !          1865:     { "\\leftarrowtriangle",94,STMARY10,  RELATION,	NULL },
        !          1866:     { "\\rightarrowtriangle",95,STMARY10, RELATION,	NULL },
        !          1867:     { "\\bigtriangledown", 96, STMARY10,  OPERATOR,	NULL },
        !          1868:     { "\\bigtriangleup",   97, STMARY10,  OPERATOR,	NULL },
        !          1869:     { "\\bigcurlyvee",	   98, STMARY10,  OPERATOR,	NULL },
        !          1870:     { "\\bigcurlywedge",   99, STMARY10,  OPERATOR,	NULL },
        !          1871:     { "\\bigsqcap",	  100, STMARY10,  OPERATOR,	NULL },
        !          1872:     { "\\Bigsqcap",	  100, STMARY10,  OPERATOR,	NULL },
        !          1873:     { "\\bigbox",	  101, STMARY10,  OPERATOR,	NULL },
        !          1874:     { "\\bigparallel",	  102, STMARY10,  OPERATOR,	NULL },
        !          1875:     { "\\biginterleave",  103, STMARY10,  OPERATOR,	NULL },
        !          1876:     { "\\bignplus",	  112, STMARY10,  OPERATOR,	NULL },
1.1       albertel 1877:     /* --- trailer record --- */
                   1878:     { NULL,		-999,	-999,	-999,		NULL }
                   1879:  }
                   1880: #endif /* INITVALS */
                   1881:  ; /* --- end-of-symtable[] --- */
                   1882: 
                   1883: /* ======================= END-OF-FILE MIMETEX.H ========================= */
                   1884: #endif
                   1885: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>