Annotation of loncom/cgi/mimeTeX/mimetex.h, revision 1.1
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)
! 54: #define STATIC /* not static */
! 55: #define INITVALS
! 56: #else
! 57: #define STATIC extern
! 58: #endif
! 59: #else
! 60: #define STATIC static
! 61: #define INITVALS
! 62: #endif
! 63: /* --- declare global symbol --- */
! 64: #ifdef INITVALS
! 65: #define GLOBAL(type,variable,value) STATIC type variable = (value)
! 66: #else
! 67: #define GLOBAL(type,variable,value) STATIC type variable
! 68: #endif
! 69:
! 70:
! 71: /* --------------------------------------------------------------------------
! 72: macros to get/set/unset a single bit (in rasters), and some bitfield macros
! 73: -------------------------------------------------------------------------- */
! 74: /* --- single-bit operations on a scalar argument (x) --- */
! 75: #define get1bit(x,bit) ( ((x)>>(bit)) & 1 ) /* get the bit-th bit of x */
! 76: #define set1bit(x,bit) ( (x) |= (1<<(bit)) ) /* set the bit-th bit of x */
! 77: #define unset1bit(x,bit) ( (x) &= ~(1<<(bit)) ) /*unset the bit-th bit of x*/
! 78: /* --- single-bit operations on a byte-addressable argument (x) --- */
! 79: #define getlongbit(x,bit) get1bit(*((x)+(bit)/8),(bit)%8) /* get bit */
! 80: #define setlongbit(x,bit) set1bit(*((x)+(bit)/8),(bit)%8) /* set bit */
! 81: #define unsetlongbit(x,bit) unset1bit(*((x)+(bit)/8),(bit)%8) /*unset bit*/
! 82: /* --- a few bitfield macros --- */
! 83: #define bitmask(nbits) ((1<<(nbits))-1) /* a mask of nbits 1's */
! 84: #define getbitfld(x,bit1,nbits) (((x)>>(bit1)) & (bitmask(nbits)))
! 85:
! 86:
! 87: /* -------------------------------------------------------------------------
! 88: Raster structure (bitmap or bytemap, along with its width and height in bits)
! 89: -------------------------------------------------------------------------- */
! 90: /* --- 8-bit datatype (always unsigned) --- */
! 91: #define intbyte unsigned char
! 92: /* --- datatype for pixels --- */
! 93: /* --- #if !defined(UNSIGNEDCHAR) && !defined(SIGNEDCHAR)
! 94: #define SIGNEDCHAR
! 95: #endif --- */
! 96: #ifndef SIGNEDCHAR
! 97: #define pixbyte unsigned char
! 98: #else
! 99: #define pixbyte char
! 100: #endif
! 101: /* --- raster structure --- */
! 102: #define raster struct raster_struct /* "typedef" for raster_struct*/
! 103: raster
! 104: {
! 105: /* -----------------------------------------------------------------------
! 106: dimensions of raster
! 107: ------------------------------------------------------------------------ */
! 108: int width; /* #pixels wide */
! 109: int height; /* #pixels high */
! 110: int pixsz; /* #bits per pixel, 1 or 8 */
! 111: /* -----------------------------------------------------------------------
! 112: memory for raster
! 113: ------------------------------------------------------------------------ */
! 114: pixbyte *pixmap; /* memory for width*height bits or bytes */
! 115: } ; /* --- end-of-raster_struct --- */
! 116:
! 117: /* ---
! 118: * associated raster constants and macros
! 119: * -------------------------------------- */
! 120: #define maxraster 99999 /* max #pixels for raster pixmap */
! 121: /* --- #bytes in pixmap raster needed to contain width x height pixels --- */
! 122: #define bitmapsz(width,height) (((width)*(height)+7)/8) /*#bytes if a bitmap*/
! 123: #define pixmapsz(rp) (((rp)->pixsz)*bitmapsz((rp)->width,(rp)->height))
! 124: /* --- pixel index calculation used by getpixel() and setpixel() below --- */
! 125: #define PIXDEX(rp,irow,icol) (((irow)*((rp)->width))+(icol))/*irow,icol indx*/
! 126: /* --- get value of pixel, either one bit or one byte, at (irow,icol) --- */
! 127: #define getpixel(rp,irow,icol) /*get bit or byte based on pixsz*/ \
! 128: ((rp)->pixsz==1? getlongbit((rp)->pixmap,PIXDEX(rp,(irow),(icol))) :\
! 129: ((rp)->pixsz==8? ((rp)->pixmap)[PIXDEX(rp,(irow),(icol))] : (-1)) )
! 130: /* --- set value of pixel, either one bit or one byte, at (irow,icol) --- */
! 131: #define setpixel(rp,irow,icol,value) /*set bit or byte based on pixsz*/ \
! 132: if ( (rp)->pixsz == 1 ) /*set pixel to 1 or 0 for bitmap*/ \
! 133: if ( (value) != 0 ) /* turn bit pixel on */ \
! 134: { setlongbit((rp)->pixmap,PIXDEX(rp,(irow),(icol))); } \
! 135: else /* or turn bit pixel 0ff */ \
! 136: { unsetlongbit((rp)->pixmap,PIXDEX(rp,(irow),(icol))); } \
! 137: else /* set 8-bit bytemap pixel value */ \
! 138: if ( (rp)->pixsz == 8 ) /* check pixsz=8 for bytemap */ \
! 139: ((rp)->pixmap)[PIXDEX(rp,(irow),(icol))]=(pixbyte)(value); \
! 140: else /* user supplies final ; */
! 141:
! 142: /* --------------------------------------------------------------------------
! 143: some char classes tokenizer needs to recognize, and macros to check for them
! 144: -------------------------------------------------------------------------- */
! 145: /* --- some character classes --- */
! 146: #define WHITEMATH "~ \t\n\r\f\v" /* white chars in display/math mode*/
! 147: #define WHITETEXT "\t\n\r\f\v" /* white chars in text mode */
! 148: #define WHITEDELIM "~ " /*always ignored following \sequence*/
! 149: #define WHITESPACE (istext>0&&istext!=3?WHITETEXT:WHITEMATH) /* white */
! 150: #define LEFTBRACES "{([<|-=" /* opening delims are left{([< |,|| */
! 151: #define RIGHTBRACES "})]>|-=" /* corresponding closing delims */
! 152: #define ESCAPE "\\" /* introduce escape sequence */
! 153: #define SUPERSCRIPT "^" /* introduce superscript */
! 154: #define SUBSCRIPT "_" /* introduce subscript */
! 155: #define SCRIPTS SUPERSCRIPT SUBSCRIPT /* either "script" */
! 156: /* --- macros to check for them --- */
! 157: #define isthischar(thischar,accept) \
! 158: ( (thischar)!='\000' && *(accept)!='\000' \
! 159: && strchr(accept,(thischar))!=(char *)NULL )
! 160: #define isthisstr(thisstr,accept) \
! 161: ((*(thisstr))!='\000' && strspn(thisstr,accept)==strlen(thisstr))
! 162: #define skipwhite(thisstr) if ( (thisstr) != NULL ) \
! 163: while ( isthischar(*(thisstr),WHITESPACE) ) (thisstr)++
! 164: #define isnextchar(thisstr,accept) \
! 165: ({skipwhite(thisstr);},isthischar(*thisstr,accept))
! 166:
! 167: /* -------------------------------------------------------------------------
! 168: character definition struct (font info from .gf file describing a char)
! 169: -------------------------------------------------------------------------- */
! 170: #define chardef struct chardef_struct /* "typedef" for chardef_struct*/
! 171: chardef
! 172: {
! 173: /* -----------------------------------------------------------------------
! 174: character description
! 175: ------------------------------------------------------------------------ */
! 176: /* --- character identification as given in .gf font file --- */
! 177: int charnum; /*different gf files resuse same num*/
! 178: int location; /* location in font */
! 179: /* --- upper-left and lower-left corners of char (topcol=botcol?) --- */
! 180: int toprow, topleftcol; /* upper-left corner */
! 181: int botrow, botleftcol; /* lower-left corner */
! 182: /* -----------------------------------------------------------------------
! 183: character bitmap raster (image.width is character width, ditto height)
! 184: ------------------------------------------------------------------------ */
! 185: raster image; /* bitmap image of character */
! 186: } ; /* --- end-of-chardef_struct --- */
! 187:
! 188:
! 189: /* -------------------------------------------------------------------------
! 190: Font info corresponding to TeX \matchardef, see TeXbook Appendix F (page 431)
! 191: -------------------------------------------------------------------------- */
! 192: typedef void *((*HANDLER)()); /* ptr to function returning void* */
! 193: #define mathchardef struct mathchardef_struct /*typedef for mathchardef*/
! 194: mathchardef
! 195: {
! 196: /* -----------------------------------------------------------------------
! 197: symbol name ("a", "\alpha", "1", etc)
! 198: ------------------------------------------------------------------------ */
! 199: char *symbol; /* as it appears in a source file */
! 200: /* -----------------------------------------------------------------------
! 201: components of \mathchardef hexadecimal code assigned to this symbol
! 202: ------------------------------------------------------------------------ */
! 203: int charnum; /* char# (as given in .gf file) */
! 204: int family; /* font family e.g., 2=math symbol */
! 205: int class; /* e.g., 3=relation, TexBook pg.154*/
! 206: /* ------------------------------------------------------------------------
! 207: Extra info: some math "functions" require special processing (e.g., \frac)
! 208: ------------------------------------------------------------------------ */
! 209: /* --- function that performs special processing required by symbol --- */
! 210: /* subraster *((*handler)()); -- handler is ultimately recast like this */
! 211: HANDLER handler; /* e.g., rastfrac() for \frac's */
! 212: } ; /* --- end-of-mathchardef_struct --- */
! 213:
! 214: /* ---
! 215: * classes for mathchardef (TeXbook pg.154)
! 216: * ---------------------------------------- */
! 217: #define ORDINARY (0) /* e.g., / */
! 218: #define OPERATOR (1) /* e.g., \sum */
! 219: #define BINARYOP (2) /* e.g., + */
! 220: #define RELATION (3) /* e.g., = */
! 221: #define OPENING (4) /* e.g., ( */
! 222: #define CLOSING (5) /* e.g., } */
! 223: #define PUNCTION (6) /* e.g., , (punctuation) */
! 224: #define VARIABLE (7) /* e.g., x */
! 225: #define DISPOPER (8) /* e.g., Bigint (displaymath opers)*/
! 226: #define MAXCLASS (8) /* just for index checks */
! 227: #define UPPERBIG DISPOPER /*how to interpret Bigxxx operators*/
! 228: #define LOWERBIG DISPOPER /*how to interpret bigxxx operators*/
! 229: /* --- class aliases --- */
! 230: #define ARROW RELATION
! 231: /* --- families for mathchardef (TeXbook, top of pg.431) --- */
! 232: #define CMR10 (0) /* normal roman */
! 233: #define CMMI10 (1) /* math italic */
! 234: #define CMMIB10 (2) /* math italic bold */
! 235: #define CMSY10 (3) /* math symbol */
! 236: #define CMEX10 (4) /* math extension */
! 237: #define RSFS10 (5) /* rsfs \scrA ... \scrZ */
! 238: #define BBOLD10 (6) /* blackboard bold \mathbb A ... */
! 239: #define NOTACHAR (99) /* e.g., \frac */
! 240: /* --- dummy argument value for handlers --- */
! 241: #define NOVALUE (-989898) /*charnum,family,class used as args*/
! 242:
! 243: /* ---
! 244: * additional font attributes (only size is implemented)
! 245: * ----------------------------------------------------- */
! 246: /* --- font sizes 0-5 = tiny,small,normal,large,Large,LARGE (roughly) --- */
! 247: #define LARGESTSIZE (5)
! 248: #ifndef NORMALSIZE
! 249: #define NORMALSIZE (2)
! 250: #endif
! 251: #ifndef DISPLAYSIZE
! 252: /* --- automatically sets scripts in \displaystyle when fontsize>= --- */
! 253: #define DISPLAYSIZE (3) /*(NORMALSIZE+1)*/
! 254: #endif
! 255:
! 256: /* ---
! 257: aspect ratio is width/height of the displayed image of a pixel
! 258: -------------------------------------------------------------- */
! 259: #define ASPECTRATIO 1.0 /*(16.0/9.0)*/
! 260: #define SQRTWIDTH(sqrtht) ((int)(.5*((double)(sqrtht+1))*ASPECTRATIO + 0.5))
! 261:
! 262: /* ---
! 263: * space between adjacent symbols, e.g., symspace[RELATION][VARIABLE]
! 264: * ------------------------------------------------------------------ */
! 265: STATIC int symspace[10][10]
! 266: #ifdef INITVALS
! 267: =
! 268: { /* ---------------------------------------------------------------
! 269: Right... ORD OPER BIN REL OPEN CLOS PUNC VAR DISP unused
! 270: Left... ------------------------------------------------------ */
! 271: /*ORDINARY*/ { 2, 3, 3, 5, 3, 2, 2, 2, 3, 0 },
! 272: /*OPERATOR*/ { 3, 1, 1, 5, 3, 2, 2, 2, 3, 0 },
! 273: /*BINARYOP*/ { 2, 1, 1, 5, 3, 2, 2, 2, 3, 0 },
! 274: /*RELATION*/ { 5, 5, 5, 5, 5, 5, 5, 5, 5, 0 },
! 275: /*OPENING*/ { 2, 2, 2, 5, 2, 4, 2, 2, 3, 0 },
! 276: /*CLOSING*/ { 2, 3, 3, 5, 4, 2, 1, 2, 3, 0 },
! 277: /*PUNCTION*/ { 2, 2, 2, 5, 2, 2, 1, 2, 2, 0 },
! 278: /*VARIABLE*/ { 2, 2, 2, 5, 2, 2, 1, 2, 2, 0 },
! 279: /*DISPOPER*/ { 2, 3, 3, 5, 2, 3, 2, 2, 2, 0 },
! 280: /*unused*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
! 281: }
! 282: #endif
! 283: ; /* --- end-of-symspace[][] --- */
! 284:
! 285:
! 286: /* -------------------------------------------------------------------------
! 287: subraster (bitmap image, its attributes, overlaid position in raster, etc)
! 288: -------------------------------------------------------------------------- */
! 289: #define subraster struct subraster_struct /* "typedef" for subraster_struct*/
! 290: subraster
! 291: {
! 292: /* --- subraster type --- */
! 293: int type; /* charcter or image raster */
! 294: /* --- character info (if subraster represents a character) --- */
! 295: mathchardef *symdef; /* mathchardef identifying image */
! 296: int baseline; /*0 if image is entirely descending*/
! 297: int size; /* font size 0-4 */
! 298: /* --- upper-left corner for bitmap (as overlaid on a larger raster) --- */
! 299: int toprow, leftcol; /* upper-left corner of subraster */
! 300: /* --- pointer to raster bitmap image of subraster --- */
! 301: raster *image; /*ptr to bitmap image of subraster*/
! 302: } ; /* --- end-of-subraster_struct --- */
! 303:
! 304: /* --- subraster types --- */
! 305: #define CHARASTER (1) /* character */
! 306: #define STRINGRASTER (2) /* string of characters */
! 307: #define IMAGERASTER (3) /* image */
! 308: #define ASCIISTRING (4) /* ascii string (not a raster) */
! 309:
! 310: /* ---
! 311: * issue rasterize() call end extract embedded raster from returned subraster
! 312: * -------------------------------------------------------------------------- */
! 313: subraster *rasterize(); /* declare rasterize */
! 314: #define make_raster(expression,size) ((rasterize(expression,size))->image)
! 315:
! 316:
! 317: /* -------------------------------------------------------------------------
! 318: font family
! 319: -------------------------------------------------------------------------- */
! 320: #define fontfamily struct fontfamily_struct /* typedef for fontfamily */
! 321: fontfamily
! 322: {
! 323: /* -----------------------------------------------------------------------
! 324: several sizes, fontdef[0...4] = footnote, small, normal, large, Large
! 325: ------------------------------------------------------------------------ */
! 326: int family; /* font family e.g., 2=math symbol */
! 327: chardef *fontdef[LARGESTSIZE+2]; /*small=(fontdef[1])[charnum].image*/
! 328: } ; /* --- end-of-fontfamily_struct --- */
! 329: /* --- dummy font table (for contexts requiring const) --- */
! 330: #define dummyfonttable \
! 331: { \
! 332: { -999,{ NULL, NULL, NULL, NULL, NULL, NULL}} \
! 333: }
! 334:
! 335:
! 336: /* -------------------------------------------------------------------------
! 337: 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
! 338: -------------------------------------------------------------------------- */
! 339: #ifdef TEXFONTS
! 340: /* ---
! 341: * font info generated for us by gfuntype
! 342: * -------------------------------------- */
! 343: #ifdef INITVALS
! 344: #include "texfonts.h"
! 345: #endif
! 346:
! 347: /* ---
! 348: * font families (by size), just a table of preceding font info
! 349: * ------------------------------------------------------------ */
! 350: /* --- for low-pass anti-aliasing --- */
! 351: STATIC fontfamily aafonttable[]
! 352: #ifdef INITVALS
! 353: =
! 354: {/* ------------------------------------------------------------------------
! 355: family size=0, 1, 2, 3, 4, 5
! 356: ------------------------------------------------------------------------ */
! 357: { CMR10,{ cmr83, cmr100, cmr118, cmr131, cmr160, cmr180}},
! 358: { CMMI10,{ cmmi83, cmmi100, cmmi118, cmmi131, cmmi160, cmmi180}},
! 359: { CMSY10,{ cmsy83, cmsy100, cmsy118, cmsy131, cmsy160, cmsy180}},
! 360: { CMEX10,{ cmex83, cmex100, cmex118, cmex131, cmex160, cmex180}},
! 361: { RSFS10,{ rsfs83, rsfs100, rsfs118, rsfs131, rsfs160, rsfs180}},
! 362: {BBOLD10,{bbold83,bbold100,bbold118,bbold131,bbold160,bbold180}},
! 363: { -999,{ NULL, NULL, NULL, NULL, NULL, NULL}}
! 364: }
! 365: #endif
! 366: ; /* --- end-of-aafonttable[] --- */
! 367:
! 368: /* --- for super-sampling anti-aliasing --- */
! 369: #ifdef SSFONTS
! 370: STATIC fontfamily ssfonttable[]
! 371: #ifdef INITVALS
! 372: =
! 373: {/* -----------------------------------------------------------------------
! 374: family size=0, 1, 2, 3, 4, 5
! 375: ----------------------------------------------------------------------- */
! 376: { CMR10,{ cmr180, cmr1200, cmr1200, cmr1200, cmr1200, cmr1200}},
! 377: { CMMI10,{cmmi180, cmmi100, cmmi118, cmmi131, cmmi160, cmmi180}},
! 378: { CMSY10,{cmsy180, cmsy100, cmsy118, cmsy131, cmsy160, cmsy180}},
! 379: { CMEX10,{cmex180, cmex100, cmex118, cmex131, cmex160, cmex180}},
! 380: { RSFS10,{rsfs180, rsfs100, rsfs118, rsfs131, rsfs160, rsfs180}},
! 381: {BBOLD10,{bbold180,bbold100,bbold118,bbold131,bbold160,bbold180}},
! 382: { -999,{ NULL, NULL, NULL, NULL, NULL, NULL}}
! 383: }
! 384: #endif
! 385: ; /* --- end-of-ssfonttable[] --- */
! 386: #else
! 387: /*GLOBAL(fontfamily,ssfonttable[],dummyfonttable);*/
! 388: STATIC fontfamily ssfonttable[]
! 389: #ifdef INITVALS
! 390: = dummyfonttable
! 391: #endif
! 392: ;
! 393: #endif /* #ifdef SSFONTS */
! 394: #else
! 395: /*GLOBAL(fontfamily,aafonttable[],dummyfonttable);*/
! 396: /*GLOBAL(fontfamily,ssfonttable[],dummyfonttable);*/
! 397: STATIC fontfamily
! 398: aafonttable[]
! 399: #ifdef INITVALS
! 400: = dummyfonttable
! 401: #endif
! 402: ,
! 403: ssfonttable[]
! 404: #ifdef INITVALS
! 405: = dummyfonttable
! 406: #endif
! 407: ;
! 408: #endif /* #ifdef TEXFONTS */
! 409:
! 410: /* --- select current font table (for lowpass or supersampling) --- */
! 411: #ifndef ISSUPERSAMPLING
! 412: #define ISSUPERSAMPLING 0
! 413: #endif
! 414: GLOBAL(fontfamily,*fonttable,(ISSUPERSAMPLING?ssfonttable:aafonttable));
! 415:
! 416: /* --- supersampling shrink factors corresponding to displayed sizes --- */
! 417: STATIC int shrinkfactors[] /*supersampling shrinkfactor by size*/
! 418: #ifdef INITVALS
! 419: =
! 420: { 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
! 421: /*{ 15,13,11, 9, 7, 5, 3, 1 }*/
! 422: #endif
! 423: ;
! 424:
! 425: /* ---
! 426: * handler functions for math operations
! 427: * ------------------------------------- */
! 428: subraster *rastflags(); /* set flags, e.g., for \rm */
! 429: subraster *rastfrac(); /* handle \frac \atop expressions */
! 430: subraster *rastackrel(); /* handle \stackrel expressions */
! 431: subraster *rastmathfunc(); /* handle \lim,\log,etc expressions*/
! 432: subraster *rastoverlay(); /* handle \not */
! 433: subraster *rastspace(); /* handle math space, \hspace,\hfill*/
! 434: subraster *rastnewline(); /* handle \\ newline */
! 435: subraster *rastarrow(); /* handle \longrightarrow, etc */
! 436: subraster *rastuparrow(); /* handle \longuparrow, etc */
! 437: subraster *rastsqrt(); /* handle \sqrt */
! 438: subraster *rastaccent(); /* handle \hat \vec \braces, etc */
! 439: subraster *rastfont(); /* handle \cal{} \scr{}, etc */
! 440: subraster *rastbegin(); /* handle \begin{}...\end{} */
! 441: subraster *rastleft(); /* handle \left{}...\right{} */
! 442: subraster *rastarray(); /* handle \array{...} */
! 443: subraster *rastpicture(); /* handle \picture(,){...} */
! 444: subraster *rastline(); /* handle \line(xinc,yinc){xlen} */
! 445: subraster *rastcircle(); /* handle \circle(xdiam[,ydiam]) */
! 446: subraster *rastbezier(); /*handle\bezier(c0,r0)(c1,r1)(ct,rt)*/
! 447: subraster *rastraise(); /* handle \raisebox{lift}{expr} */
! 448: subraster *rastrotate(); /* handle \rotatebox{degs}{expr} */
! 449: subraster *rastfbox(); /* handle \fbox{expr} */
! 450: subraster *rastinput(); /* handle \input{filename} */
! 451: subraster *rastcounter(); /* handle \counter{filename} */
! 452: subraster *rastnoop(); /* handle \escape's to be flushed */
! 453:
! 454: /* --- sqrt --- */
! 455: #define SQRTACCENT (1) /* \sqrt */
! 456: /* --- accents --- */
! 457: #define BARACCENT (11) /* \bar \overline*/
! 458: #define UNDERBARACCENT (12) /* \underline */
! 459: #define HATACCENT (13) /* \hat */
! 460: #define DOTACCENT (14) /* \dot */
! 461: #define DDOTACCENT (15) /* \ddot */
! 462: #define VECACCENT (16) /* \vec */
! 463: #define TILDEACCENT (17) /* \tilde */
! 464: #define OVERBRACE (18) /* \overbrace */
! 465: #define UNDERBRACE (19) /* \underbrace */
! 466: /* --- flags/modes --- */
! 467: #define ISTEXT (1) /* set istext */
! 468: #define ISDISPLAYSTYLE (2) /* set isdisplaystyle */
! 469: #define ISDISPLAYSIZE (21) /* set displaysize */
! 470: #define ISFONTSIZE (3) /* set fontsize */
! 471: #define ISWEIGHT (4) /* set aa params */
! 472: #define ISOPAQUE (5) /* set background opaque */
! 473: #define ISSUPER (6) /* set supersampling/lowpass */
! 474: #define ISAAALGORITHM (61) /* set anti-aliasing algorithm */
! 475: #define ISCENTERWT (62) /* set anti-aliasing center weight */
! 476: #define ISADJACENTWT (63) /* set anti-aliasing adjacent weight*/
! 477: #define ISCORNERWT (64) /* set anti-aliasing adjacent weight*/
! 478: #define PNMPARAMS (65) /* set fgalias,fgonly,bgalias,bgonly*/
! 479: #define ISSHRINK (7) /* set supersampling shrinkfactor */
! 480: #define UNITLENGTH (8) /* set unitlength */
! 481: #define ISCOLOR (9) /* set color */
! 482: #define ISREVERSE (10) /* set reverse video colors */
! 483: #define ISSTRING (11) /* set ascii string mode */
! 484: #define ISSQUASH (12) /* set (minimum) "squash" margin */
! 485:
! 486: /* ---
! 487: * mathchardefs for symbols recognized by mimetex
! 488: * ---------------------------------------------- */
! 489: STATIC mathchardef symtable[]
! 490: #ifdef INITVALS
! 491: =
! 492: {
! 493: /* ---------- c o m m a n d h a n d l e r s --------------
! 494: symbol arg1 arg2 arg3 function
! 495: -------------------------------------------------------- */
! 496: /* --- commands --- */
! 497: { "\\left", NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastleft) },
! 498: { "\\frac", 1, NOVALUE,NOVALUE, (HANDLER)(rastfrac) },
! 499: { "\\over", 1, NOVALUE,NOVALUE, (HANDLER)(rastfrac) },
! 500: { "\\atop", 0, NOVALUE,NOVALUE, (HANDLER)(rastfrac) },
! 501: { "\\choose", 0, NOVALUE,NOVALUE, (HANDLER)(rastfrac) },
! 502: { "\\not", 1, 0,NOVALUE, (HANDLER)(rastoverlay) },
! 503: { "\\Not", 2, 0,NOVALUE, (HANDLER)(rastoverlay) },
! 504: { "\\widenot",2, 0,NOVALUE, (HANDLER)(rastoverlay) },
! 505: { "\\sout", 3, NOVALUE,NOVALUE, (HANDLER)(rastoverlay) },
! 506: { "\\strikeout",3, NOVALUE,NOVALUE, (HANDLER)(rastoverlay) },
! 507: { "\\compose",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastoverlay) },
! 508: { "\\stackrel", 2, NOVALUE,NOVALUE, (HANDLER)(rastackrel) },
! 509: { "\\relstack", 1, NOVALUE,NOVALUE, (HANDLER)(rastackrel) },
! 510: { "\\sqrt", NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastsqrt) },
! 511: { "\\overbrace", OVERBRACE,1, 1, (HANDLER)(rastaccent) },
! 512: { "\\underbrace",UNDERBRACE,0, 1, (HANDLER)(rastaccent) },
! 513: { "\\overline", BARACCENT,1, 0, (HANDLER)(rastaccent) },
! 514: { "\\underline",UNDERBARACCENT,0, 0, (HANDLER)(rastaccent) },
! 515: { "\\begin",NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastbegin) },
! 516: { "\\array",NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastarray) },
! 517: { "\\matrix",NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastarray) },
! 518: { "\\tabular",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastarray) },
! 519: { "\\picture",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastpicture) },
! 520: { "\\line", NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastline) },
! 521: { "\\circle", NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastcircle) },
! 522: { "\\bezier", NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastbezier) },
! 523: { "\\qbezier",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastbezier) },
! 524: { "\\raisebox",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastraise) },
! 525: { "\\rotatebox",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastrotate) },
! 526: { "\\fbox", NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastfbox) },
! 527: { "\\input",NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastinput) },
! 528: { "\\counter",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastcounter) },
! 529: /* --- spaces --- */
! 530: { "\\/", 1, NOVALUE,NOVALUE, (HANDLER)(rastspace) },
! 531: { "\\,", 2, NOVALUE,NOVALUE, (HANDLER)(rastspace) },
! 532: { "\\:", 4, NOVALUE,NOVALUE, (HANDLER)(rastspace) },
! 533: { "\\;", 6, NOVALUE,NOVALUE, (HANDLER)(rastspace) },
! 534: { "\\\n", 3, NOVALUE,NOVALUE, (HANDLER)(rastspace) },
! 535: { "\\\r", 3, NOVALUE,NOVALUE, (HANDLER)(rastspace) },
! 536: { "\\\t", 3, NOVALUE,NOVALUE, (HANDLER)(rastspace) },
! 537: /*{ "\\~",5,NOVALUE,NOVALUE,(HANDLER)(rastspace) },*/
! 538: { "~", 5, NOVALUE,NOVALUE, (HANDLER)(rastspace) },
! 539: { "\\ ", 5, NOVALUE,NOVALUE, (HANDLER)(rastspace) },
! 540: { " ", 5, NOVALUE,NOVALUE, (HANDLER)(rastspace) },
! 541: { "\\quad", 6, NOVALUE,NOVALUE, (HANDLER)(rastspace) },
! 542: { "\\qquad",10, NOVALUE,NOVALUE, (HANDLER)(rastspace) },
! 543: { "\\hspace",0, NOVALUE,NOVALUE, (HANDLER)(rastspace) },
! 544: { "\\vspace",0, NOVALUE, 1, (HANDLER)(rastspace) },
! 545: { "\\hfill",0, 1,NOVALUE, (HANDLER)(rastspace) },
! 546: /* --- newline --- */
! 547: { "\\\\", NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastnewline) },
! 548: /* --- arrows --- */
! 549: { "\\longrightarrow", 1,0,NOVALUE, (HANDLER)(rastarrow) },
! 550: { "\\Longrightarrow", 1,1,NOVALUE, (HANDLER)(rastarrow) },
! 551: { "\\longleftarrow", -1,0,NOVALUE, (HANDLER)(rastarrow) },
! 552: { "\\Longleftarrow", -1,1,NOVALUE, (HANDLER)(rastarrow) },
! 553: { "\\longleftrightarrow",0,0,NOVALUE, (HANDLER)(rastarrow) },
! 554: { "\\Longleftrightarrow",0,1,NOVALUE, (HANDLER)(rastarrow) },
! 555: { "\\longuparrow", 1,0,NOVALUE, (HANDLER)(rastuparrow) },
! 556: { "\\Longuparrow", 1,1,NOVALUE, (HANDLER)(rastuparrow) },
! 557: { "\\longdownarrow", -1,0,NOVALUE, (HANDLER)(rastuparrow) },
! 558: { "\\Longdownarrow", -1,1,NOVALUE, (HANDLER)(rastuparrow) },
! 559: { "\\longupdownarrow", 0,0,NOVALUE, (HANDLER)(rastuparrow) },
! 560: { "\\Longupdownarrow", 0,1,NOVALUE, (HANDLER)(rastuparrow) },
! 561: /* --- modes and values --- */
! 562: { "\\cal", 1, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 563: { "\\mathcal", 1, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 564: { "\\scr", 2, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 565: { "\\mathscr", 2, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 566: { "\\mathfrak", 2, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 567: { "\\mathbb", 5, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 568: { "\\rm", 3, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 569: { "\\text", 3, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 570: { "\\textrm", 3, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 571: { "\\mathrm", 3, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 572: { "\\mathbf", 3, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 573: { "\\mathtt", 3, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 574: { "\\mathsf", 3, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 575: { "\\mbox", 3, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 576: { "\\operatorname", 3, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 577: { "\\it", 4, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 578: { "\\textit", 4, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 579: { "\\mathit", 4, NOVALUE,NOVALUE, (HANDLER)(rastfont) },
! 580: { "\\rm", ISTEXT, 1,NOVALUE, (HANDLER)(rastflags) },
! 581: { "\\it", ISTEXT, 2,NOVALUE, (HANDLER)(rastflags) },
! 582: { "\\sl", ISTEXT, 2,NOVALUE, (HANDLER)(rastflags) },
! 583: { "\\bb", ISTEXT, 3,NOVALUE, (HANDLER)(rastflags) },
! 584: { "\\bf", ISTEXT, 1,NOVALUE, (HANDLER)(rastflags) },
! 585: { "\\text", ISTEXT, 1,NOVALUE, (HANDLER)(rastflags) },
! 586: { "\\norm", ISTEXT, 0,NOVALUE, (HANDLER)(rastflags) },
! 587: { "\\ascii", ISSTRING, 1,NOVALUE, (HANDLER)(rastflags) },
! 588: { "\\image", ISSTRING, 0,NOVALUE, (HANDLER)(rastflags) },
! 589: { "\\limits", ISDISPLAYSTYLE, 2,NOVALUE, (HANDLER)(rastflags) },
! 590: { "\\nolimits", ISDISPLAYSTYLE, 0,NOVALUE, (HANDLER)(rastflags) },
! 591: { "\\displaystyle",ISDISPLAYSTYLE, 2,NOVALUE, (HANDLER)(rastflags) },
! 592: { "\\textstyle", ISDISPLAYSTYLE, 0,NOVALUE, (HANDLER)(rastflags) },
! 593: { "\\displaysize",ISDISPLAYSIZE,NOVALUE,NOVALUE,(HANDLER)(rastflags)},
! 594: { "\\tiny", ISFONTSIZE, 0,NOVALUE, (HANDLER)(rastflags) },
! 595: { "\\scriptsize",ISFONTSIZE, 0,NOVALUE, (HANDLER)(rastflags) },
! 596: { "\\footnotesize",ISFONTSIZE, 1,NOVALUE, (HANDLER)(rastflags) },
! 597: { "\\small", ISFONTSIZE, 1,NOVALUE, (HANDLER)(rastflags) },
! 598: { "\\normalsize",ISFONTSIZE, 2,NOVALUE, (HANDLER)(rastflags) },
! 599: { "\\large", ISFONTSIZE, 3,NOVALUE, (HANDLER)(rastflags) },
! 600: { "\\Large", ISFONTSIZE, 4,NOVALUE, (HANDLER)(rastflags) },
! 601: { "\\LARGE", ISFONTSIZE, 5,NOVALUE, (HANDLER)(rastflags) },
! 602: { "\\huge", ISFONTSIZE, 5,NOVALUE, (HANDLER)(rastflags) },
! 603: { "\\Huge", ISFONTSIZE, 5,NOVALUE, (HANDLER)(rastflags) },
! 604: { "\\HUGE", ISFONTSIZE, 5,NOVALUE, (HANDLER)(rastflags) },
! 605: { "\\fontsize", ISFONTSIZE, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 606: { "\\fs", ISFONTSIZE, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 607: { "\\shrinkfactor",ISSHRINK, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 608: { "\\sf", ISSHRINK, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 609: { "\\light", ISWEIGHT, 0,NOVALUE, (HANDLER)(rastflags) },
! 610: { "\\regular", ISWEIGHT, 1,NOVALUE, (HANDLER)(rastflags) },
! 611: { "\\semibold", ISWEIGHT, 2,NOVALUE, (HANDLER)(rastflags) },
! 612: { "\\bold", ISWEIGHT, 3,NOVALUE, (HANDLER)(rastflags) },
! 613: { "\\fontweight",ISWEIGHT, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 614: { "\\fw", ISWEIGHT, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 615: { "\\centerwt", ISCENTERWT, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 616: { "\\adjacentwt",ISADJACENTWT,NOVALUE,NOVALUE,(HANDLER)(rastflags) },
! 617: { "\\cornerwt", ISCORNERWT, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 618: { "\\ssampling", ISSUPER, 1,NOVALUE, (HANDLER)(rastflags) },
! 619: { "\\lowpass", ISSUPER, 0,NOVALUE, (HANDLER)(rastflags) },
! 620: { "\\aaalg",ISAAALGORITHM, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 621: { "\\pnmparams",PNMPARAMS, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 622: { "\\opaque", ISOPAQUE, 0,NOVALUE, (HANDLER)(rastflags) },
! 623: { "\\squash", ISSQUASH, 3,1, (HANDLER)(rastflags) },
! 624: { "\\nosquash", ISSQUASH, 0,NOVALUE, (HANDLER)(rastflags) },
! 625: { "\\squashmargin",ISSQUASH, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 626: { "\\unitlength",UNITLENGTH, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 627: { "\\reverse", ISREVERSE, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 628: { "\\reversefg", ISREVERSE, 1,NOVALUE, (HANDLER)(rastflags) },
! 629: { "\\reversebg", ISREVERSE, 2,NOVALUE, (HANDLER)(rastflags) },
! 630: { "\\color", ISCOLOR, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
! 631: { "\\red", ISCOLOR, 1,NOVALUE, (HANDLER)(rastflags) },
! 632: { "\\green", ISCOLOR, 2,NOVALUE, (HANDLER)(rastflags) },
! 633: { "\\blue", ISCOLOR, 3,NOVALUE, (HANDLER)(rastflags) },
! 634: { "\\black", ISCOLOR, 0,NOVALUE, (HANDLER)(rastflags) },
! 635: { "\\white", ISCOLOR, 7,NOVALUE, (HANDLER)(rastflags) },
! 636: /* --- accents --- */
! 637: { "\\vec", VECACCENT, 1, 0, (HANDLER)(rastaccent) },
! 638: { "\\widevec", VECACCENT, 1, 0, (HANDLER)(rastaccent) },
! 639: { "\\bar", BARACCENT, 1, 0, (HANDLER)(rastaccent) },
! 640: { "\\widebar", BARACCENT, 1, 0, (HANDLER)(rastaccent) },
! 641: { "\\hat", HATACCENT, 1, 0, (HANDLER)(rastaccent) },
! 642: { "\\widehat", HATACCENT, 1, 0, (HANDLER)(rastaccent) },
! 643: { "\\tilde", TILDEACCENT, 1, 0, (HANDLER)(rastaccent) },
! 644: { "\\widetilde",TILDEACCENT,1, 0, (HANDLER)(rastaccent) },
! 645: { "\\dot", DOTACCENT, 1, 0, (HANDLER)(rastaccent) },
! 646: { "\\widedot", DOTACCENT, 1, 0, (HANDLER)(rastaccent) },
! 647: { "\\ddot", DDOTACCENT, 1, 0, (HANDLER)(rastaccent) },
! 648: { "\\wideddot",DDOTACCENT,1, 0, (HANDLER)(rastaccent) },
! 649: /* --- math functions --- */
! 650: { "\\arccos", 1, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 651: { "\\arcsin", 2, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 652: { "\\arctan", 3, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 653: { "\\arg", 4, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 654: { "\\cos", 5, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 655: { "\\cosh", 6, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 656: { "\\cot", 7, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 657: { "\\coth", 8, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 658: { "\\csc", 9, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 659: { "\\deg", 10, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 660: { "\\det", 11, 1, NOVALUE, (HANDLER)(rastmathfunc) },
! 661: { "\\dim", 12, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 662: { "\\exp", 13, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 663: { "\\gcd", 14, 1, NOVALUE, (HANDLER)(rastmathfunc) },
! 664: { "\\hom", 15, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 665: { "\\inf", 16, 1, NOVALUE, (HANDLER)(rastmathfunc) },
! 666: { "\\ker", 17, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 667: { "\\lg", 18, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 668: { "\\lim", 19, 1, NOVALUE, (HANDLER)(rastmathfunc) },
! 669: { "\\liminf", 20, 1, NOVALUE, (HANDLER)(rastmathfunc) },
! 670: { "\\limsup", 21, 1, NOVALUE, (HANDLER)(rastmathfunc) },
! 671: { "\\ln", 22, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 672: { "\\log", 23, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 673: { "\\max", 24, 1, NOVALUE, (HANDLER)(rastmathfunc) },
! 674: { "\\min", 25, 1, NOVALUE, (HANDLER)(rastmathfunc) },
! 675: { "\\Pr", 26, 1, NOVALUE, (HANDLER)(rastmathfunc) },
! 676: { "\\sec", 27, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 677: { "\\sin", 28, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 678: { "\\sinh", 29, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 679: { "\\sup", 30, 1, NOVALUE, (HANDLER)(rastmathfunc) },
! 680: { "\\tan", 31, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 681: { "\\tanh", 32, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 682: { "\\tr", 33, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 683: { "\\pmod", 34, 0, NOVALUE, (HANDLER)(rastmathfunc) },
! 684: /* --- flush -- recognized but not yet handled by mimeTeX --- */
! 685: { "\\nooperation",0,NOVALUE,NOVALUE, (HANDLER)(rastnoop) },
! 686: { "\\bigskip", 0, NOVALUE,NOVALUE, (HANDLER)(rastnoop) },
! 687: { "\\phantom", 1, NOVALUE,NOVALUE, (HANDLER)(rastnoop) },
! 688: { "\\nocaching", 0, NOVALUE,NOVALUE, (HANDLER)(rastnoop) },
! 689: { "\\nonumber", 0, NOVALUE,NOVALUE, (HANDLER)(rastnoop) },
! 690: { "\\!", 0, NOVALUE,NOVALUE, (HANDLER)(rastnoop) },
! 691: /* --------------------- C M M I --------------------------
! 692: symbol charnum family class function
! 693: -------------------------------------------------------- */
! 694: /* --- uppercase greek letters --- */
! 695: { "\\Gamma", 0, CMMI10, VARIABLE, NULL },
! 696: { "\\Delta", 1, CMMI10, VARIABLE, NULL },
! 697: { "\\Theta", 2, CMMI10, VARIABLE, NULL },
! 698: { "\\Lambda", 3, CMMI10, VARIABLE, NULL },
! 699: { "\\Xi", 4, CMMI10, VARIABLE, NULL },
! 700: { "\\Pi", 5, CMMI10, VARIABLE, NULL },
! 701: { "\\Sigma", 6, CMMI10, VARIABLE, NULL },
! 702: { "\\smallsum", 6, CMMI10, OPERATOR, NULL },
! 703: { "\\Upsilon", 7, CMMI10, VARIABLE, NULL },
! 704: { "\\Phi", 8, CMMI10, VARIABLE, NULL },
! 705: { "\\Psi", 9, CMMI10, VARIABLE, NULL },
! 706: { "\\Omega", 10, CMMI10, VARIABLE, NULL },
! 707: /* --- lowercase greek letters --- */
! 708: { "\\alpha", 11, CMMI10, VARIABLE, NULL },
! 709: { "\\beta", 12, CMMI10, VARIABLE, NULL },
! 710: { "\\gamma", 13, CMMI10, VARIABLE, NULL },
! 711: { "\\delta", 14, CMMI10, VARIABLE, NULL },
! 712: { "\\epsilon", 15, CMMI10, VARIABLE, NULL },
! 713: { "\\zeta", 16, CMMI10, VARIABLE, NULL },
! 714: { "\\eta", 17, CMMI10, VARIABLE, NULL },
! 715: { "\\theta", 18, CMMI10, VARIABLE, NULL },
! 716: { "\\iota", 19, CMMI10, VARIABLE, NULL },
! 717: { "\\kappa", 20, CMMI10, VARIABLE, NULL },
! 718: { "\\lambda", 21, CMMI10, VARIABLE, NULL },
! 719: { "\\mu", 22, CMMI10, VARIABLE, NULL },
! 720: { "\\nu", 23, CMMI10, VARIABLE, NULL },
! 721: { "\\xi", 24, CMMI10, VARIABLE, NULL },
! 722: { "\\pi", 25, CMMI10, VARIABLE, NULL },
! 723: { "\\rho", 26, CMMI10, VARIABLE, NULL },
! 724: { "\\sigma", 27, CMMI10, VARIABLE, NULL },
! 725: { "\\tau", 28, CMMI10, VARIABLE, NULL },
! 726: { "\\upsilon", 29, CMMI10, VARIABLE, NULL },
! 727: { "\\phi", 30, CMMI10, VARIABLE, NULL },
! 728: { "\\chi", 31, CMMI10, VARIABLE, NULL },
! 729: { "\\psi", 32, CMMI10, VARIABLE, NULL },
! 730: { "\\omega", 33, CMMI10, VARIABLE, NULL },
! 731: { "\\varepsilon", 34, CMMI10, VARIABLE, NULL },
! 732: { "\\vartheta", 35, CMMI10, VARIABLE, NULL },
! 733: { "\\varpi", 36, CMMI10, VARIABLE, NULL },
! 734: { "\\varrho", 37, CMMI10, VARIABLE, NULL },
! 735: { "\\varsigma", 38, CMMI10, VARIABLE, NULL },
! 736: { "\\varphi", 39, CMMI10, VARIABLE, NULL },
! 737: /* --- arrow relations --- */
! 738: { "\\leftharpoonup", 40, CMMI10, ARROW, NULL },
! 739: { "\\leftharpoondown", 41, CMMI10, ARROW, NULL },
! 740: { "\\rightharpoonup", 42, CMMI10, ARROW, NULL },
! 741: { "\\rightharpoondown", 43, CMMI10, ARROW, NULL },
! 742: /* --- punctuation --- */
! 743: { "`", 44, CMMI10, PUNCTION, NULL },
! 744: { "\'", 45, CMMI10, PUNCTION, NULL },
! 745: /* --- triangle binary relations --- */
! 746: { "\\triangleright", 46, CMMI10, RELATION, NULL },
! 747: { "\\triangleleft", 47, CMMI10, RELATION, NULL },
! 748: /* --- digits 0-9 --- */
! 749: { "\\0", 48, CMMI10, ORDINARY, NULL },
! 750: { "\\1", 49, CMMI10, ORDINARY, NULL },
! 751: { "\\2", 50, CMMI10, ORDINARY, NULL },
! 752: { "\\3", 51, CMMI10, ORDINARY, NULL },
! 753: { "\\4", 52, CMMI10, ORDINARY, NULL },
! 754: { "\\5", 53, CMMI10, ORDINARY, NULL },
! 755: { "\\6", 54, CMMI10, ORDINARY, NULL },
! 756: { "\\7", 55, CMMI10, ORDINARY, NULL },
! 757: { "\\8", 56, CMMI10, ORDINARY, NULL },
! 758: { "\\9", 57, CMMI10, ORDINARY, NULL },
! 759: /* --- punctuation --- */
! 760: { ".", 58, CMMI10, PUNCTION, NULL },
! 761: { ",", 59, CMMI10, PUNCTION, NULL },
! 762: /* --- operations (some ordinary) --- */
! 763: { "<", 60, CMMI10, OPENING, NULL },
! 764: { "\\<", 60, CMMI10, OPENING, NULL },
! 765: { "\\lt", 60, CMMI10, OPENING, NULL },
! 766: { "/", 61, CMMI10, BINARYOP, NULL },
! 767: { ">", 62, CMMI10, CLOSING, NULL },
! 768: { "\\>", 62, CMMI10, CLOSING, NULL },
! 769: { "\\gt", 62, CMMI10, CLOSING, NULL },
! 770: { "\\star", 63, CMMI10, BINARYOP, NULL },
! 771: { "\\partial", 64, CMMI10, VARIABLE, NULL },
! 772: /* --- uppercase letters --- */
! 773: { "A", 65, CMMI10, VARIABLE, NULL },
! 774: { "B", 66, CMMI10, VARIABLE, NULL },
! 775: { "C", 67, CMMI10, VARIABLE, NULL },
! 776: { "D", 68, CMMI10, VARIABLE, NULL },
! 777: { "E", 69, CMMI10, VARIABLE, NULL },
! 778: { "F", 70, CMMI10, VARIABLE, NULL },
! 779: { "G", 71, CMMI10, VARIABLE, NULL },
! 780: { "H", 72, CMMI10, VARIABLE, NULL },
! 781: { "I", 73, CMMI10, VARIABLE, NULL },
! 782: { "J", 74, CMMI10, VARIABLE, NULL },
! 783: { "K", 75, CMMI10, VARIABLE, NULL },
! 784: { "L", 76, CMMI10, VARIABLE, NULL },
! 785: { "M", 77, CMMI10, VARIABLE, NULL },
! 786: { "N", 78, CMMI10, VARIABLE, NULL },
! 787: { "O", 79, CMMI10, VARIABLE, NULL },
! 788: { "P", 80, CMMI10, VARIABLE, NULL },
! 789: { "Q", 81, CMMI10, VARIABLE, NULL },
! 790: { "R", 82, CMMI10, VARIABLE, NULL },
! 791: { "S", 83, CMMI10, VARIABLE, NULL },
! 792: { "T", 84, CMMI10, VARIABLE, NULL },
! 793: { "U", 85, CMMI10, VARIABLE, NULL },
! 794: { "V", 86, CMMI10, VARIABLE, NULL },
! 795: { "W", 87, CMMI10, VARIABLE, NULL },
! 796: { "X", 88, CMMI10, VARIABLE, NULL },
! 797: { "Y", 89, CMMI10, VARIABLE, NULL },
! 798: { "Z", 90, CMMI10, VARIABLE, NULL },
! 799: /* --- miscellaneous symbols and relations --- */
! 800: { "\\flat", 91, CMMI10, ORDINARY, NULL },
! 801: { "\\natural", 92, CMMI10, ORDINARY, NULL },
! 802: { "\\sharp", 93, CMMI10, ORDINARY, NULL },
! 803: { "\\smile", 94, CMMI10, RELATION, NULL },
! 804: { "\\frown", 95, CMMI10, RELATION, NULL },
! 805: { "\\ell", 96, CMMI10, ORDINARY, NULL },
! 806: /* --- lowercase letters --- */
! 807: { "a", 97, CMMI10, VARIABLE, NULL },
! 808: { "b", 98, CMMI10, VARIABLE, NULL },
! 809: { "c", 99, CMMI10, VARIABLE, NULL },
! 810: { "d", 100, CMMI10, VARIABLE, NULL },
! 811: { "e", 101, CMMI10, VARIABLE, NULL },
! 812: { "f", 102, CMMI10, VARIABLE, NULL },
! 813: { "g", 103, CMMI10, VARIABLE, NULL },
! 814: { "h", 104, CMMI10, VARIABLE, NULL },
! 815: { "i", 105, CMMI10, VARIABLE, NULL },
! 816: { "j", 106, CMMI10, VARIABLE, NULL },
! 817: { "k", 107, CMMI10, VARIABLE, NULL },
! 818: { "l", 108, CMMI10, VARIABLE, NULL },
! 819: { "m", 109, CMMI10, VARIABLE, NULL },
! 820: { "n", 110, CMMI10, VARIABLE, NULL },
! 821: { "o", 111, CMMI10, VARIABLE, NULL },
! 822: { "p", 112, CMMI10, VARIABLE, NULL },
! 823: { "q", 113, CMMI10, VARIABLE, NULL },
! 824: { "r", 114, CMMI10, VARIABLE, NULL },
! 825: { "s", 115, CMMI10, VARIABLE, NULL },
! 826: { "t", 116, CMMI10, VARIABLE, NULL },
! 827: { "u", 117, CMMI10, VARIABLE, NULL },
! 828: { "v", 118, CMMI10, VARIABLE, NULL },
! 829: { "w", 119, CMMI10, VARIABLE, NULL },
! 830: { "x", 120, CMMI10, VARIABLE, NULL },
! 831: { "y", 121, CMMI10, VARIABLE, NULL },
! 832: { "z", 122, CMMI10, VARIABLE, NULL },
! 833: /* --- miscellaneous symbols and relations --- */
! 834: { "\\imath", 123, CMMI10, ORDINARY, NULL },
! 835: { "\\jmath", 124, CMMI10, ORDINARY, NULL },
! 836: { "\\wp", 125, CMMI10, ORDINARY, NULL },
! 837: { "\\vec", 126, CMMI10, ORDINARY, NULL },
! 838: /* --------------------------------------------------------
! 839: symbol charnum family class function
! 840: -------------------------------------------------------- */
! 841: /* --- operations --- */
! 842: { "-", 0, CMSY10, BINARYOP, NULL },
! 843: { "\\cdot", 1, CMSY10, BINARYOP, NULL },
! 844: { "\\times", 2, CMSY10, BINARYOP, NULL },
! 845: { "\\ast", 3, CMSY10, BINARYOP, NULL },
! 846: { "\\div", 4, CMSY10, BINARYOP, NULL },
! 847: { "\\diamond", 5, CMSY10, BINARYOP, NULL },
! 848: { "\\pm", 6, CMSY10, BINARYOP, NULL },
! 849: { "\\mp", 7, CMSY10, BINARYOP, NULL },
! 850: { "\\oplus", 8, CMSY10, BINARYOP, NULL },
! 851: { "\\ominus", 9, CMSY10, BINARYOP, NULL },
! 852: { "\\otimes", 10, CMSY10, BINARYOP, NULL },
! 853: { "\\oslash", 11, CMSY10, BINARYOP, NULL },
! 854: { "\\odot", 12, CMSY10, BINARYOP, NULL },
! 855: { "\\bigcirc", 13, CMSY10, BINARYOP, NULL },
! 856: { "\\circ", 14, CMSY10, BINARYOP, NULL },
! 857: { "\\bullet", 15, CMSY10, BINARYOP, NULL },
! 858: /* --- relations --- */
! 859: { "\\asymp", 16, CMSY10, RELATION, NULL },
! 860: { "\\equiv", 17, CMSY10, RELATION, NULL },
! 861: { "\\subseteq", 18, CMSY10, RELATION, NULL },
! 862: { "\\supseteq", 19, CMSY10, RELATION, NULL },
! 863: { "\\leq", 20, CMSY10, RELATION, NULL },
! 864: { "\\geq", 21, CMSY10, RELATION, NULL },
! 865: { "\\preceq", 22, CMSY10, RELATION, NULL },
! 866: { "\\succeq", 23, CMSY10, RELATION, NULL },
! 867: { "\\sim", 24, CMSY10, RELATION, NULL },
! 868: { "\\approx", 25, CMSY10, RELATION, NULL },
! 869: { "\\subset", 26, CMSY10, RELATION, NULL },
! 870: { "\\supset", 27, CMSY10, RELATION, NULL },
! 871: { "\\ll", 28, CMSY10, RELATION, NULL },
! 872: { "\\gg", 29, CMSY10, RELATION, NULL },
! 873: { "\\prec", 30, CMSY10, RELATION, NULL },
! 874: { "\\succ", 31, CMSY10, RELATION, NULL },
! 875: /* --- (mostly) arrows --- */
! 876: { "\\leftarrow", 32, CMSY10, ARROW, NULL },
! 877: { "\\rightarrow", 33, CMSY10, ARROW, NULL },
! 878: { "\\to", 33, CMSY10, ARROW, NULL },
! 879: { "\\mapsto", 33, CMSY10, ARROW, NULL },
! 880: { "\\uparrow", 34, CMSY10, ARROW, NULL },
! 881: { "\\downarrow", 35, CMSY10, ARROW, NULL },
! 882: { "\\leftrightarrow", 36, CMSY10, ARROW, NULL },
! 883: { "\\nearrow", 37, CMSY10, ARROW, NULL },
! 884: { "\\searrow", 38, CMSY10, ARROW, NULL },
! 885: { "\\simeq", 39, CMSY10, RELATION, NULL },
! 886: { "\\Leftarrow", 40, CMSY10, ARROW, NULL },
! 887: { "\\Rightarrow", 41, CMSY10, ARROW, NULL },
! 888: { "\\Uparrow", 42, CMSY10, ARROW, NULL },
! 889: { "\\Downarrow", 43, CMSY10, ARROW, NULL },
! 890: { "\\Leftrightarrow", 44, CMSY10, ARROW, NULL },
! 891: { "\\nwarrow", 45, CMSY10, ARROW, NULL },
! 892: { "\\swarrow", 46, CMSY10, ARROW, NULL },
! 893: { "\\propto", 47, CMSY10, RELATION, NULL },
! 894: /* --- symbols --- */
! 895: { "\\prime", 48, CMSY10, ORDINARY, NULL },
! 896: { "\\infty", 49, CMSY10, ORDINARY, NULL },
! 897: /* --- relations --- */
! 898: { "\\in", 50, CMSY10, RELATION, NULL },
! 899: { "\\ni", 51, CMSY10, RELATION, NULL },
! 900: /* --- symbols --- */
! 901: { "\\triangle", 52, CMSY10, ORDINARY, NULL },
! 902: { "\\bigtriangleup", 52, CMSY10, ORDINARY, NULL },
! 903: { "\\bigtriangledown", 53, CMSY10, ORDINARY, NULL },
! 904: { "/", 54, CMSY10, BINARYOP, NULL },
! 905: { "\\'", 55, CMSY10, ORDINARY, NULL },
! 906: { "\\forall", 56, CMSY10, OPERATOR, NULL },
! 907: { "\\exists", 57, CMSY10, OPERATOR, NULL },
! 908: { "\\neg", 58, CMSY10, OPERATOR, NULL },
! 909: { "\\emptyset", 59, CMSY10, ORDINARY, NULL },
! 910: { "\\Re", 60, CMSY10, ORDINARY, NULL },
! 911: { "\\Im", 61, CMSY10, ORDINARY, NULL },
! 912: { "\\top", 62, CMSY10, ORDINARY, NULL },
! 913: { "\\bot", 63, CMSY10, ORDINARY, NULL },
! 914: { "\\perp", 63, CMSY10, BINARYOP, NULL },
! 915: { "\\aleph", 64, CMSY10, ORDINARY, NULL },
! 916: /* --- calligraphic letters (we use \\calA...\\calZ --- */
! 917: { "\\calA", 65, CMSY10, VARIABLE, NULL },
! 918: { "\\calB", 66, CMSY10, VARIABLE, NULL },
! 919: { "\\calC", 67, CMSY10, VARIABLE, NULL },
! 920: { "\\calD", 68, CMSY10, VARIABLE, NULL },
! 921: { "\\calE", 69, CMSY10, VARIABLE, NULL },
! 922: { "\\calF", 70, CMSY10, VARIABLE, NULL },
! 923: { "\\calG", 71, CMSY10, VARIABLE, NULL },
! 924: { "\\calH", 72, CMSY10, VARIABLE, NULL },
! 925: { "\\calI", 73, CMSY10, VARIABLE, NULL },
! 926: { "\\calJ", 74, CMSY10, VARIABLE, NULL },
! 927: { "\\calK", 75, CMSY10, VARIABLE, NULL },
! 928: { "\\calL", 76, CMSY10, VARIABLE, NULL },
! 929: { "\\calM", 77, CMSY10, VARIABLE, NULL },
! 930: { "\\calN", 78, CMSY10, VARIABLE, NULL },
! 931: { "\\calO", 79, CMSY10, VARIABLE, NULL },
! 932: { "\\calP", 80, CMSY10, VARIABLE, NULL },
! 933: { "\\calQ", 81, CMSY10, VARIABLE, NULL },
! 934: { "\\calR", 82, CMSY10, VARIABLE, NULL },
! 935: { "\\calS", 83, CMSY10, VARIABLE, NULL },
! 936: { "\\calT", 84, CMSY10, VARIABLE, NULL },
! 937: { "\\calU", 85, CMSY10, VARIABLE, NULL },
! 938: { "\\calV", 86, CMSY10, VARIABLE, NULL },
! 939: { "\\calW", 87, CMSY10, VARIABLE, NULL },
! 940: { "\\calX", 88, CMSY10, VARIABLE, NULL },
! 941: { "\\calY", 89, CMSY10, VARIABLE, NULL },
! 942: { "\\calZ", 90, CMSY10, VARIABLE, NULL },
! 943: /* --- operations and relations --- */
! 944: { "\\cup", 91, CMSY10, OPERATOR, NULL },
! 945: { "\\cap", 92, CMSY10, OPERATOR, NULL },
! 946: { "\\uplus", 93, CMSY10, OPERATOR, NULL },
! 947: { "\\wedge", 94, CMSY10, OPERATOR, NULL },
! 948: { "\\vee", 95, CMSY10, OPERATOR, NULL },
! 949: { "\\vdash", 96, CMSY10, RELATION, NULL },
! 950: { "\\dashv", 97, CMSY10, RELATION, NULL },
! 951: /* --- brackets --- */
! 952: { "\\lfloor", 98, CMSY10, OPENING, NULL },
! 953: { "\\rfloor", 99, CMSY10, CLOSING, NULL },
! 954: { "\\lceil", 100, CMSY10, OPENING, NULL },
! 955: { "\\rceil", 101, CMSY10, CLOSING, NULL },
! 956: { "\\lbrace", 102, CMSY10, OPENING, NULL },
! 957: { "{", 102, CMSY10, OPENING, NULL },
! 958: { "\\{", 102, CMSY10, OPENING, NULL },
! 959: { "\\rbrace", 103, CMSY10, CLOSING, NULL },
! 960: { "}", 103, CMSY10, CLOSING, NULL },
! 961: { "\\}", 103, CMSY10, CLOSING, NULL },
! 962: { "\\langle", 104, CMSY10, OPENING, NULL },
! 963: { "\\rangle", 105, CMSY10, CLOSING, NULL },
! 964: { "\\mid", 106, CMSY10, ORDINARY, NULL },
! 965: { "|", 106, CMSY10, BINARYOP, NULL },
! 966: { "\\parallel", 107, CMSY10, BINARYOP, NULL },
! 967: { "\\|", 107, CMSY10, BINARYOP, NULL },
! 968: /* --- arrows --- */
! 969: { "\\updownarrow", 108, CMSY10, ARROW, NULL },
! 970: { "\\Updownarrow", 109, CMSY10, ARROW, NULL },
! 971: /* --- symbols and operations and relations --- */
! 972: { "\\setminus", 110, CMSY10, BINARYOP, NULL },
! 973: { "\\backslash", 110, CMSY10, BINARYOP, NULL },
! 974: { "\\wr", 111, CMSY10, BINARYOP, NULL },
! 975: { "\\surd", 112, CMSY10, OPERATOR, NULL },
! 976: { "\\amalg", 113, CMSY10, BINARYOP, NULL },
! 977: { "\\nabla", 114, CMSY10, VARIABLE, NULL },
! 978: { "\\smallint", 115, CMSY10, OPERATOR, NULL },
! 979: { "\\sqcup", 116, CMSY10, OPERATOR, NULL },
! 980: { "\\sqcap", 117, CMSY10, OPERATOR, NULL },
! 981: { "\\sqsubseteq", 118, CMSY10, RELATION, NULL },
! 982: { "\\sqsupseteq", 119, CMSY10, RELATION, NULL },
! 983: /* --- special characters --- */
! 984: { "\\S", 120, CMSY10, ORDINARY, NULL },
! 985: { "\\dag", 121, CMSY10, ORDINARY, NULL },
! 986: { "\\dagger", 121, CMSY10, ORDINARY, NULL },
! 987: { "\\ddag", 122, CMSY10, ORDINARY, NULL },
! 988: { "\\ddagger", 122, CMSY10, ORDINARY, NULL },
! 989: { "\\P", 123, CMSY10, ORDINARY, NULL },
! 990: { "\\clubsuit", 124, CMSY10, ORDINARY, NULL },
! 991: { "\\Diamond", 125, CMSY10, ORDINARY, NULL },
! 992: { "\\Heart", 126, CMSY10, ORDINARY, NULL },
! 993: { "\\spadesuit", 127, CMSY10, ORDINARY, NULL },
! 994: /* --------------------------------------------------------
! 995: symbol charnum family class function
! 996: -------------------------------------------------------- */
! 997: /* --- foreign letters --- */
! 998: { "\\ss", 25, CMR10, ORDINARY, NULL },
! 999: { "\\ae", 26, CMR10, ORDINARY, NULL },
! 1000: { "\\oe", 27, CMR10, ORDINARY, NULL },
! 1001: { "\\AE", 29, CMR10, ORDINARY, NULL },
! 1002: { "\\OE", 30, CMR10, ORDINARY, NULL },
! 1003: /* --- digits 0-9 --- */
! 1004: { "0", 48, CMR10, ORDINARY, NULL },
! 1005: { "1", 49, CMR10, ORDINARY, NULL },
! 1006: { "2", 50, CMR10, ORDINARY, NULL },
! 1007: { "3", 51, CMR10, ORDINARY, NULL },
! 1008: { "4", 52, CMR10, ORDINARY, NULL },
! 1009: { "5", 53, CMR10, ORDINARY, NULL },
! 1010: { "6", 54, CMR10, ORDINARY, NULL },
! 1011: { "7", 55, CMR10, ORDINARY, NULL },
! 1012: { "8", 56, CMR10, ORDINARY, NULL },
! 1013: { "9", 57, CMR10, ORDINARY, NULL },
! 1014: /* --- symbols, relations, etc --- */
! 1015: { "!", 33, CMR10, BINARYOP, NULL },
! 1016: { "\"", 34, CMR10, ORDINARY, NULL },
! 1017: { "\\quote", 34, CMR10, ORDINARY, NULL },
! 1018: { "#", 35, CMR10, BINARYOP, NULL },
! 1019: { "\\#", 35, CMR10, BINARYOP, NULL },
! 1020: { "$", 36, CMR10, BINARYOP, NULL },
! 1021: { "\\$", 36, CMR10, BINARYOP, NULL },
! 1022: { "%", 37, CMR10, BINARYOP, NULL },
! 1023: { "\\%", 37, CMR10, BINARYOP, NULL },
! 1024: { "\\percent", 37, CMR10, BINARYOP, NULL },
! 1025: { "&", 38, CMR10, BINARYOP, NULL },
! 1026: { "\\&", 38, CMR10, BINARYOP, NULL },
! 1027: { "\'", 39, CMR10, BINARYOP, NULL },
! 1028: { "\\apostrophe", 39, CMR10, ORDINARY, NULL },
! 1029: { "(", 40, CMR10, OPENING, NULL },
! 1030: { "\\(", 40, CMR10, OPENING, NULL },
! 1031: { ")", 41, CMR10, CLOSING, NULL },
! 1032: { "\\)", 41, CMR10, CLOSING, NULL },
! 1033: { "*", 42, CMR10, BINARYOP, NULL },
! 1034: { "+", 43, CMR10, BINARYOP, NULL },
! 1035: { "/", 47, CMR10, BINARYOP, NULL },
! 1036: { ":", 58, CMR10, BINARYOP, NULL },
! 1037: { ";", 59, CMR10, BINARYOP, NULL },
! 1038: { "=", 61, CMR10, RELATION, NULL },
! 1039: { "?", 63, CMR10, BINARYOP, NULL },
! 1040: { "@", 64, CMR10, BINARYOP, NULL },
! 1041: { "[", 91, CMR10, OPENING, NULL },
! 1042: { "\\[", 91, CMR10, OPENING, NULL },
! 1043: { "]", 93, CMR10, CLOSING, NULL },
! 1044: { "\\]", 93, CMR10, CLOSING, NULL },
! 1045: { "\\^", 94, CMR10, BINARYOP, NULL },
! 1046: { "\\~", 126, CMR10, OPERATOR, NULL },
! 1047: /* --- uppercase letters --- */
! 1048: { "A", 65, CMR10, VARIABLE, NULL },
! 1049: { "B", 66, CMR10, VARIABLE, NULL },
! 1050: { "C", 67, CMR10, VARIABLE, NULL },
! 1051: { "D", 68, CMR10, VARIABLE, NULL },
! 1052: { "E", 69, CMR10, VARIABLE, NULL },
! 1053: { "F", 70, CMR10, VARIABLE, NULL },
! 1054: { "G", 71, CMR10, VARIABLE, NULL },
! 1055: { "H", 72, CMR10, VARIABLE, NULL },
! 1056: { "I", 73, CMR10, VARIABLE, NULL },
! 1057: { "J", 74, CMR10, VARIABLE, NULL },
! 1058: { "K", 75, CMR10, VARIABLE, NULL },
! 1059: { "L", 76, CMR10, VARIABLE, NULL },
! 1060: { "M", 77, CMR10, VARIABLE, NULL },
! 1061: { "N", 78, CMR10, VARIABLE, NULL },
! 1062: { "O", 79, CMR10, VARIABLE, NULL },
! 1063: { "P", 80, CMR10, VARIABLE, NULL },
! 1064: { "Q", 81, CMR10, VARIABLE, NULL },
! 1065: { "R", 82, CMR10, VARIABLE, NULL },
! 1066: { "S", 83, CMR10, VARIABLE, NULL },
! 1067: { "T", 84, CMR10, VARIABLE, NULL },
! 1068: { "U", 85, CMR10, VARIABLE, NULL },
! 1069: { "V", 86, CMR10, VARIABLE, NULL },
! 1070: { "W", 87, CMR10, VARIABLE, NULL },
! 1071: { "X", 88, CMR10, VARIABLE, NULL },
! 1072: { "Y", 89, CMR10, VARIABLE, NULL },
! 1073: { "Z", 90, CMR10, VARIABLE, NULL },
! 1074: /* --- lowercase letters --- */
! 1075: { "a", 97, CMR10, VARIABLE, NULL },
! 1076: { "b", 98, CMR10, VARIABLE, NULL },
! 1077: { "c", 99, CMR10, VARIABLE, NULL },
! 1078: { "d", 100, CMR10, VARIABLE, NULL },
! 1079: { "e", 101, CMR10, VARIABLE, NULL },
! 1080: { "f", 102, CMR10, VARIABLE, NULL },
! 1081: { "g", 103, CMR10, VARIABLE, NULL },
! 1082: { "h", 104, CMR10, VARIABLE, NULL },
! 1083: { "i", 105, CMR10, VARIABLE, NULL },
! 1084: { "j", 106, CMR10, VARIABLE, NULL },
! 1085: { "k", 107, CMR10, VARIABLE, NULL },
! 1086: { "l", 108, CMR10, VARIABLE, NULL },
! 1087: { "m", 109, CMR10, VARIABLE, NULL },
! 1088: { "n", 110, CMR10, VARIABLE, NULL },
! 1089: { "o", 111, CMR10, VARIABLE, NULL },
! 1090: { "p", 112, CMR10, VARIABLE, NULL },
! 1091: { "q", 113, CMR10, VARIABLE, NULL },
! 1092: { "r", 114, CMR10, VARIABLE, NULL },
! 1093: { "s", 115, CMR10, VARIABLE, NULL },
! 1094: { "t", 116, CMR10, VARIABLE, NULL },
! 1095: { "u", 117, CMR10, VARIABLE, NULL },
! 1096: { "v", 118, CMR10, VARIABLE, NULL },
! 1097: { "w", 119, CMR10, VARIABLE, NULL },
! 1098: { "x", 120, CMR10, VARIABLE, NULL },
! 1099: { "y", 121, CMR10, VARIABLE, NULL },
! 1100: { "z", 122, CMR10, VARIABLE, NULL },
! 1101: /* --------------------------------------------------------
! 1102: symbol charnum family class function
! 1103: -------------------------------------------------------- */
! 1104: /* --- parens ()'s --- */
! 1105: { "\\big(", 0, CMEX10, OPENING, NULL },
! 1106: { "\\big)", 1, CMEX10, CLOSING, NULL },
! 1107: { "\\Big(", 16, CMEX10, OPENING, NULL },
! 1108: { "\\Big)", 17, CMEX10, CLOSING, NULL },
! 1109: { "\\bigg(", 18, CMEX10, OPENING, NULL },
! 1110: { "\\bigg)", 19, CMEX10, CLOSING, NULL },
! 1111: { "\\Bigg(", 32, CMEX10, OPENING, NULL },
! 1112: { "\\Bigg)", 33, CMEX10, CLOSING, NULL },
! 1113: { "\\bigl(", 0, CMEX10, OPENING, NULL },
! 1114: { "\\bigr)", 1, CMEX10, CLOSING, NULL },
! 1115: { "\\Bigl(", 16, CMEX10, OPENING, NULL },
! 1116: { "\\Bigr)", 17, CMEX10, CLOSING, NULL },
! 1117: { "\\biggl(", 18, CMEX10, OPENING, NULL },
! 1118: { "\\biggr)", 19, CMEX10, CLOSING, NULL },
! 1119: { "\\Biggl(", 32, CMEX10, OPENING, NULL },
! 1120: { "\\Biggr)", 33, CMEX10, CLOSING, NULL },
! 1121: /* --- brackets []'s --- */
! 1122: { "\\big[", 2, CMEX10, OPENING, NULL },
! 1123: { "\\big]", 3, CMEX10, CLOSING, NULL },
! 1124: { "\\bigg[", 20, CMEX10, OPENING, NULL },
! 1125: { "\\bigg]", 21, CMEX10, CLOSING, NULL },
! 1126: { "\\Bigg[", 34, CMEX10, OPENING, NULL },
! 1127: { "\\Bigg]", 35, CMEX10, CLOSING, NULL },
! 1128: { "\\Big[", 104, CMEX10, OPENING, NULL },
! 1129: { "\\Big]", 105, CMEX10, CLOSING, NULL },
! 1130: { "\\bigl[", 2, CMEX10, OPENING, NULL },
! 1131: { "\\bigr]", 3, CMEX10, CLOSING, NULL },
! 1132: { "\\biggl[", 20, CMEX10, OPENING, NULL },
! 1133: { "\\biggr]", 21, CMEX10, CLOSING, NULL },
! 1134: { "\\Biggl[", 34, CMEX10, OPENING, NULL },
! 1135: { "\\Biggr]", 35, CMEX10, CLOSING, NULL },
! 1136: { "\\Bigl[", 104, CMEX10, OPENING, NULL },
! 1137: { "\\Bigr]", 105, CMEX10, CLOSING, NULL },
! 1138: /* --- braces {}'s --- */
! 1139: { "\\big{", 8, CMEX10, OPENING, NULL },
! 1140: { "\\big}", 9, CMEX10, CLOSING, NULL },
! 1141: { "\\bigg{", 26, CMEX10, OPENING, NULL },
! 1142: { "\\bigg}", 27, CMEX10, CLOSING, NULL },
! 1143: { "\\Bigg{", 40, CMEX10, OPENING, NULL },
! 1144: { "\\Bigg}", 41, CMEX10, CLOSING, NULL },
! 1145: { "\\Big{", 110, CMEX10, OPENING, NULL },
! 1146: { "\\Big}", 111, CMEX10, CLOSING, NULL },
! 1147: { "\\bigl{", 8, CMEX10, OPENING, NULL },
! 1148: { "\\bigr}", 9, CMEX10, CLOSING, NULL },
! 1149: { "\\biggl{", 26, CMEX10, OPENING, NULL },
! 1150: { "\\biggr}", 27, CMEX10, CLOSING, NULL },
! 1151: { "\\Biggl{", 40, CMEX10, OPENING, NULL },
! 1152: { "\\Biggr}", 41, CMEX10, CLOSING, NULL },
! 1153: { "\\Bigl{", 110, CMEX10, OPENING, NULL },
! 1154: { "\\Bigr}", 111, CMEX10, CLOSING, NULL },
! 1155: { "\\big\\{", 8, CMEX10, OPENING, NULL },
! 1156: { "\\big\\}", 9, CMEX10, CLOSING, NULL },
! 1157: { "\\bigg\\{", 26, CMEX10, OPENING, NULL },
! 1158: { "\\bigg\\}", 27, CMEX10, CLOSING, NULL },
! 1159: { "\\Bigg\\{", 40, CMEX10, OPENING, NULL },
! 1160: { "\\Bigg\\}", 41, CMEX10, CLOSING, NULL },
! 1161: { "\\Big\\{", 110, CMEX10, OPENING, NULL },
! 1162: { "\\Big\\}", 111, CMEX10, CLOSING, NULL },
! 1163: { "\\bigl\\{", 8, CMEX10, OPENING, NULL },
! 1164: { "\\bigr\\}", 9, CMEX10, CLOSING, NULL },
! 1165: { "\\biggl\\{", 26, CMEX10, OPENING, NULL },
! 1166: { "\\biggr\\}", 27, CMEX10, CLOSING, NULL },
! 1167: { "\\Biggl\\{", 40, CMEX10, OPENING, NULL },
! 1168: { "\\Biggr\\}", 41, CMEX10, CLOSING, NULL },
! 1169: { "\\Bigl\\{", 110, CMEX10, OPENING, NULL },
! 1170: { "\\Bigr\\}", 111, CMEX10, CLOSING, NULL },
! 1171: { "\\big\\lbrace", 8, CMEX10, OPENING, NULL },
! 1172: { "\\big\\rbrace", 9, CMEX10, CLOSING, NULL },
! 1173: { "\\bigg\\lbrace", 26, CMEX10, OPENING, NULL },
! 1174: { "\\bigg\\rbrace", 27, CMEX10, CLOSING, NULL },
! 1175: { "\\Bigg\\lbrace", 40, CMEX10, OPENING, NULL },
! 1176: { "\\Bigg\\rbrace", 41, CMEX10, CLOSING, NULL },
! 1177: { "\\Big\\lbrace", 110, CMEX10, OPENING, NULL },
! 1178: { "\\Big\\rbrace", 111, CMEX10, CLOSING, NULL },
! 1179: /* --- angles <>'s --- */
! 1180: { "\\big<", 10, CMEX10, OPENING, NULL },
! 1181: { "\\big>", 11, CMEX10, CLOSING, NULL },
! 1182: { "\\bigg<", 28, CMEX10, OPENING, NULL },
! 1183: { "\\bigg>", 29, CMEX10, CLOSING, NULL },
! 1184: { "\\Bigg<", 42, CMEX10, OPENING, NULL },
! 1185: { "\\Bigg>", 43, CMEX10, CLOSING, NULL },
! 1186: { "\\Big<", 68, CMEX10, OPENING, NULL },
! 1187: { "\\Big>", 69, CMEX10, CLOSING, NULL },
! 1188: { "\\bigl<", 10, CMEX10, OPENING, NULL },
! 1189: { "\\bigr>", 11, CMEX10, CLOSING, NULL },
! 1190: { "\\biggl<", 28, CMEX10, OPENING, NULL },
! 1191: { "\\biggr>", 29, CMEX10, CLOSING, NULL },
! 1192: { "\\Biggl<", 42, CMEX10, OPENING, NULL },
! 1193: { "\\Biggr>", 43, CMEX10, CLOSING, NULL },
! 1194: { "\\Bigl<", 68, CMEX10, OPENING, NULL },
! 1195: { "\\Bigr>", 69, CMEX10, CLOSING, NULL },
! 1196: { "\\big\\langle", 10, CMEX10, OPENING, NULL },
! 1197: { "\\big\\rangle", 11, CMEX10, CLOSING, NULL },
! 1198: { "\\bigg\\langle", 28, CMEX10, OPENING, NULL },
! 1199: { "\\bigg\\rangle", 29, CMEX10, CLOSING, NULL },
! 1200: { "\\Bigg\\langle", 42, CMEX10, OPENING, NULL },
! 1201: { "\\Bigg\\rangle", 43, CMEX10, CLOSING, NULL },
! 1202: { "\\Big\\langle", 68, CMEX10, OPENING, NULL },
! 1203: { "\\Big\\rangle", 69, CMEX10, CLOSING, NULL },
! 1204: /* --- hats ^ --- */
! 1205: { "^", 98, CMEX10, OPERATOR, NULL },
! 1206: { "^", 99, CMEX10, OPERATOR, NULL },
! 1207: { "^", 100, CMEX10, OPERATOR, NULL },
! 1208: /* --- tildes --- */
! 1209: { "~", 101, CMEX10, OPERATOR, NULL },
! 1210: { "~", 102, CMEX10, OPERATOR, NULL },
! 1211: { "~", 103, CMEX10, OPERATOR, NULL },
! 1212: /* --- \sum, \int and other (displaymath) symbols --- */
! 1213: { "\\bigsqcup", 70, CMEX10, LOWERBIG, NULL },
! 1214: { "\\Bigsqcup", 71, CMEX10, UPPERBIG, NULL },
! 1215: { "\\oint", 72, CMEX10, OPERATOR, NULL },
! 1216: { "\\bigoint", 72, CMEX10, LOWERBIG, NULL },
! 1217: { "\\Bigoint", 73, CMEX10, UPPERBIG, NULL },
! 1218: { "\\bigodot", 74, CMEX10, LOWERBIG, NULL },
! 1219: { "\\Bigodot", 75, CMEX10, UPPERBIG, NULL },
! 1220: { "\\bigoplus", 76, CMEX10, LOWERBIG, NULL },
! 1221: { "\\Bigoplus", 77, CMEX10, UPPERBIG, NULL },
! 1222: { "\\bigotimes", 78, CMEX10, LOWERBIG, NULL },
! 1223: { "\\Bigotimes", 79, CMEX10, UPPERBIG, NULL },
! 1224: { "\\sum", 80, CMEX10, OPERATOR, NULL },
! 1225: { "\\bigsum", 80, CMEX10, LOWERBIG, NULL },
! 1226: { "\\prod", 81, CMEX10, OPERATOR, NULL },
! 1227: { "\\bigprod", 81, CMEX10, LOWERBIG, NULL },
! 1228: { "\\int", 82, CMEX10, OPERATOR, NULL },
! 1229: { "\\bigint", 82, CMEX10, LOWERBIG, NULL },
! 1230: { "\\bigcup", 83, CMEX10, LOWERBIG, NULL },
! 1231: { "\\bigcap", 84, CMEX10, LOWERBIG, NULL },
! 1232: { "\\biguplus", 85, CMEX10, LOWERBIG, NULL },
! 1233: { "\\bigwedge", 86, CMEX10, LOWERBIG, NULL },
! 1234: { "\\bigvee", 87, CMEX10, LOWERBIG, NULL },
! 1235: { "\\Bigsum", 88, CMEX10, UPPERBIG, NULL },
! 1236: { "\\big\\sum", 88, CMEX10, UPPERBIG, NULL },
! 1237: { "\\Big\\sum", 88, CMEX10, UPPERBIG, NULL },
! 1238: { "\\bigg\\sum", 88, CMEX10, UPPERBIG, NULL },
! 1239: { "\\Bigg\\sum", 88, CMEX10, UPPERBIG, NULL },
! 1240: { "\\Bigprod", 89, CMEX10, UPPERBIG, NULL },
! 1241: { "\\Bigint", 90, CMEX10, UPPERBIG, NULL },
! 1242: { "\\big\\int", 90, CMEX10, UPPERBIG, NULL },
! 1243: { "\\Big\\int", 90, CMEX10, UPPERBIG, NULL },
! 1244: { "\\bigg\\int", 90, CMEX10, UPPERBIG, NULL },
! 1245: { "\\Bigg\\int", 90, CMEX10, UPPERBIG, NULL },
! 1246: { "\\Bigcup", 91, CMEX10, UPPERBIG, NULL },
! 1247: { "\\Bigcap", 92, CMEX10, UPPERBIG, NULL },
! 1248: { "\\Biguplus", 93, CMEX10, UPPERBIG, NULL },
! 1249: { "\\Bigwedge", 94, CMEX10, UPPERBIG, NULL },
! 1250: { "\\Bigvee", 95, CMEX10, UPPERBIG, NULL },
! 1251: { "\\coprod", 96, CMEX10, LOWERBIG, NULL },
! 1252: { "\\bigcoprod", 96, CMEX10, LOWERBIG, NULL },
! 1253: { "\\Bigcoprod", 97, CMEX10, UPPERBIG, NULL },
! 1254: /* --------------------------------------------------------
! 1255: symbol charnum family class function
! 1256: -------------------------------------------------------- */
! 1257: /* --- rsfs script letters (we use \\scrA...\\scrZ --- */
! 1258: { "\\scrA", 0, RSFS10, VARIABLE, NULL },
! 1259: { "\\scrB", 1, RSFS10, VARIABLE, NULL },
! 1260: { "\\scrC", 2, RSFS10, VARIABLE, NULL },
! 1261: { "\\scrD", 3, RSFS10, VARIABLE, NULL },
! 1262: { "\\scrE", 4, RSFS10, VARIABLE, NULL },
! 1263: { "\\scrF", 5, RSFS10, VARIABLE, NULL },
! 1264: { "\\scrG", 6, RSFS10, VARIABLE, NULL },
! 1265: { "\\scrH", 7, RSFS10, VARIABLE, NULL },
! 1266: { "\\scrI", 8, RSFS10, VARIABLE, NULL },
! 1267: { "\\scrJ", 9, RSFS10, VARIABLE, NULL },
! 1268: { "\\scrK", 10, RSFS10, VARIABLE, NULL },
! 1269: { "\\scrL", 11, RSFS10, VARIABLE, NULL },
! 1270: { "\\scrM", 12, RSFS10, VARIABLE, NULL },
! 1271: { "\\scrN", 13, RSFS10, VARIABLE, NULL },
! 1272: { "\\scrO", 14, RSFS10, VARIABLE, NULL },
! 1273: { "\\scrP", 15, RSFS10, VARIABLE, NULL },
! 1274: { "\\scrQ", 16, RSFS10, VARIABLE, NULL },
! 1275: { "\\scrR", 17, RSFS10, VARIABLE, NULL },
! 1276: { "\\scrS", 18, RSFS10, VARIABLE, NULL },
! 1277: { "\\scrT", 19, RSFS10, VARIABLE, NULL },
! 1278: { "\\scrU", 20, RSFS10, VARIABLE, NULL },
! 1279: { "\\scrV", 21, RSFS10, VARIABLE, NULL },
! 1280: { "\\scrW", 22, RSFS10, VARIABLE, NULL },
! 1281: { "\\scrX", 23, RSFS10, VARIABLE, NULL },
! 1282: { "\\scrY", 24, RSFS10, VARIABLE, NULL },
! 1283: { "\\scrZ", 25, RSFS10, VARIABLE, NULL },
! 1284: /* -------------------- B B O L D -------------------------
! 1285: symbol charnum family class function
! 1286: -------------------------------------------------------- */
! 1287: /* --- uppercase greek letters --- */
! 1288: { "\\Gamma", 0, BBOLD10, VARIABLE, NULL },
! 1289: { "\\Delta", 1, BBOLD10, VARIABLE, NULL },
! 1290: { "\\Theta", 2, BBOLD10, VARIABLE, NULL },
! 1291: { "\\Lambda", 3, BBOLD10, VARIABLE, NULL },
! 1292: { "\\Xi", 4, BBOLD10, VARIABLE, NULL },
! 1293: { "\\Pi", 5, BBOLD10, VARIABLE, NULL },
! 1294: { "\\Sigma", 6, BBOLD10, VARIABLE, NULL },
! 1295: { "\\smallsum", 6, BBOLD10, OPERATOR, NULL },
! 1296: { "\\Upsilon", 7, BBOLD10, VARIABLE, NULL },
! 1297: { "\\Phi", 8, BBOLD10, VARIABLE, NULL },
! 1298: { "\\Psi", 9, BBOLD10, VARIABLE, NULL },
! 1299: { "\\Omega", 10, BBOLD10, VARIABLE, NULL },
! 1300: /* --- lowercase greek letters --- */
! 1301: { "\\alpha", 11, BBOLD10, VARIABLE, NULL },
! 1302: { "\\beta", 12, BBOLD10, VARIABLE, NULL },
! 1303: { "\\gamma", 13, BBOLD10, VARIABLE, NULL },
! 1304: { "\\delta", 14, BBOLD10, VARIABLE, NULL },
! 1305: { "\\epsilon", 15, BBOLD10, VARIABLE, NULL },
! 1306: { "\\zeta", 16, BBOLD10, VARIABLE, NULL },
! 1307: { "\\eta", 17, BBOLD10, VARIABLE, NULL },
! 1308: { "\\theta", 18, BBOLD10, VARIABLE, NULL },
! 1309: { "\\iota", 19, BBOLD10, VARIABLE, NULL },
! 1310: { "\\kappa", 20, BBOLD10, VARIABLE, NULL },
! 1311: { "\\lambda", 21, BBOLD10, VARIABLE, NULL },
! 1312: { "\\mu", 22, BBOLD10, VARIABLE, NULL },
! 1313: { "\\nu", 23, BBOLD10, VARIABLE, NULL },
! 1314: { "\\xi", 24, BBOLD10, VARIABLE, NULL },
! 1315: { "\\pi", 25, BBOLD10, VARIABLE, NULL },
! 1316: { "\\rho", 26, BBOLD10, VARIABLE, NULL },
! 1317: { "\\sigma", 27, BBOLD10, VARIABLE, NULL },
! 1318: { "\\tau", 28, BBOLD10, VARIABLE, NULL },
! 1319: { "\\upsilon", 29, BBOLD10, VARIABLE, NULL },
! 1320: { "\\phi", 30, BBOLD10, VARIABLE, NULL },
! 1321: { "\\chi", 31, BBOLD10, VARIABLE, NULL },
! 1322: { "\\psi", 32, BBOLD10, VARIABLE, NULL },
! 1323: { "\\omega", 127, BBOLD10, VARIABLE, NULL },
! 1324: /* --- digits 0-9 --- */
! 1325: { "0", 48, BBOLD10, ORDINARY, NULL },
! 1326: { "1", 49, BBOLD10, ORDINARY, NULL },
! 1327: { "2", 50, BBOLD10, ORDINARY, NULL },
! 1328: { "3", 51, BBOLD10, ORDINARY, NULL },
! 1329: { "4", 52, BBOLD10, ORDINARY, NULL },
! 1330: { "5", 53, BBOLD10, ORDINARY, NULL },
! 1331: { "6", 54, BBOLD10, ORDINARY, NULL },
! 1332: { "7", 55, BBOLD10, ORDINARY, NULL },
! 1333: { "8", 56, BBOLD10, ORDINARY, NULL },
! 1334: { "9", 57, BBOLD10, ORDINARY, NULL },
! 1335: { "\\0", 48, BBOLD10, ORDINARY, NULL },
! 1336: { "\\1", 49, BBOLD10, ORDINARY, NULL },
! 1337: { "\\2", 50, BBOLD10, ORDINARY, NULL },
! 1338: { "\\3", 51, BBOLD10, ORDINARY, NULL },
! 1339: { "\\4", 52, BBOLD10, ORDINARY, NULL },
! 1340: { "\\5", 53, BBOLD10, ORDINARY, NULL },
! 1341: { "\\6", 54, BBOLD10, ORDINARY, NULL },
! 1342: { "\\7", 55, BBOLD10, ORDINARY, NULL },
! 1343: { "\\8", 56, BBOLD10, ORDINARY, NULL },
! 1344: { "\\9", 57, BBOLD10, ORDINARY, NULL },
! 1345: /* --- uppercase letters --- */
! 1346: { "A", 65, BBOLD10, VARIABLE, NULL },
! 1347: { "B", 66, BBOLD10, VARIABLE, NULL },
! 1348: { "C", 67, BBOLD10, VARIABLE, NULL },
! 1349: { "D", 68, BBOLD10, VARIABLE, NULL },
! 1350: { "E", 69, BBOLD10, VARIABLE, NULL },
! 1351: { "F", 70, BBOLD10, VARIABLE, NULL },
! 1352: { "G", 71, BBOLD10, VARIABLE, NULL },
! 1353: { "H", 72, BBOLD10, VARIABLE, NULL },
! 1354: { "I", 73, BBOLD10, VARIABLE, NULL },
! 1355: { "J", 74, BBOLD10, VARIABLE, NULL },
! 1356: { "K", 75, BBOLD10, VARIABLE, NULL },
! 1357: { "L", 76, BBOLD10, VARIABLE, NULL },
! 1358: { "M", 77, BBOLD10, VARIABLE, NULL },
! 1359: { "N", 78, BBOLD10, VARIABLE, NULL },
! 1360: { "O", 79, BBOLD10, VARIABLE, NULL },
! 1361: { "P", 80, BBOLD10, VARIABLE, NULL },
! 1362: { "Q", 81, BBOLD10, VARIABLE, NULL },
! 1363: { "R", 82, BBOLD10, VARIABLE, NULL },
! 1364: { "S", 83, BBOLD10, VARIABLE, NULL },
! 1365: { "T", 84, BBOLD10, VARIABLE, NULL },
! 1366: { "U", 85, BBOLD10, VARIABLE, NULL },
! 1367: { "V", 86, BBOLD10, VARIABLE, NULL },
! 1368: { "W", 87, BBOLD10, VARIABLE, NULL },
! 1369: { "X", 88, BBOLD10, VARIABLE, NULL },
! 1370: { "Y", 89, BBOLD10, VARIABLE, NULL },
! 1371: { "Z", 90, BBOLD10, VARIABLE, NULL },
! 1372: /* --- lowercase letters --- */
! 1373: { "a", 97, BBOLD10, VARIABLE, NULL },
! 1374: { "b", 98, BBOLD10, VARIABLE, NULL },
! 1375: { "c", 99, BBOLD10, VARIABLE, NULL },
! 1376: { "d", 100, BBOLD10, VARIABLE, NULL },
! 1377: { "e", 101, BBOLD10, VARIABLE, NULL },
! 1378: { "f", 102, BBOLD10, VARIABLE, NULL },
! 1379: { "g", 103, BBOLD10, VARIABLE, NULL },
! 1380: { "h", 104, BBOLD10, VARIABLE, NULL },
! 1381: { "i", 105, BBOLD10, VARIABLE, NULL },
! 1382: { "j", 106, BBOLD10, VARIABLE, NULL },
! 1383: { "k", 107, BBOLD10, VARIABLE, NULL },
! 1384: { "l", 108, BBOLD10, VARIABLE, NULL },
! 1385: { "m", 109, BBOLD10, VARIABLE, NULL },
! 1386: { "n", 110, BBOLD10, VARIABLE, NULL },
! 1387: { "o", 111, BBOLD10, VARIABLE, NULL },
! 1388: { "p", 112, BBOLD10, VARIABLE, NULL },
! 1389: { "q", 113, BBOLD10, VARIABLE, NULL },
! 1390: { "r", 114, BBOLD10, VARIABLE, NULL },
! 1391: { "s", 115, BBOLD10, VARIABLE, NULL },
! 1392: { "t", 116, BBOLD10, VARIABLE, NULL },
! 1393: { "u", 117, BBOLD10, VARIABLE, NULL },
! 1394: { "v", 118, BBOLD10, VARIABLE, NULL },
! 1395: { "w", 119, BBOLD10, VARIABLE, NULL },
! 1396: { "x", 120, BBOLD10, VARIABLE, NULL },
! 1397: { "y", 121, BBOLD10, VARIABLE, NULL },
! 1398: { "z", 122, BBOLD10, VARIABLE, NULL },
! 1399: /* --- symbols, relations, etc --- */
! 1400: { "!", 33, BBOLD10, BINARYOP, NULL },
! 1401: { "#", 35, BBOLD10, BINARYOP, NULL },
! 1402: { "\\#", 35, BBOLD10, BINARYOP, NULL },
! 1403: { "$", 36, BBOLD10, BINARYOP, NULL },
! 1404: { "\\$", 36, BBOLD10, BINARYOP, NULL },
! 1405: { "%", 37, BBOLD10, BINARYOP, NULL },
! 1406: { "\\%", 37, BBOLD10, BINARYOP, NULL },
! 1407: { "\\percent", 37, BBOLD10, BINARYOP, NULL },
! 1408: { "&", 38, BBOLD10, BINARYOP, NULL },
! 1409: { "\\&", 38, BBOLD10, BINARYOP, NULL },
! 1410: { "\'", 39, BBOLD10, BINARYOP, NULL },
! 1411: { "\\apostrophe", 39, BBOLD10, ORDINARY, NULL },
! 1412: { "(", 40, BBOLD10, OPENING, NULL },
! 1413: { "\\(", 40, BBOLD10, OPENING, NULL },
! 1414: { ")", 41, BBOLD10, CLOSING, NULL },
! 1415: { "\\)", 41, BBOLD10, CLOSING, NULL },
! 1416: { "*", 42, BBOLD10, BINARYOP, NULL },
! 1417: { "+", 43, BBOLD10, BINARYOP, NULL },
! 1418: { ",", 44, BBOLD10, PUNCTION, NULL },
! 1419: { "-", 45, BBOLD10, BINARYOP, NULL },
! 1420: { ".", 46, BBOLD10, PUNCTION, NULL },
! 1421: { "/", 47, BBOLD10, BINARYOP, NULL },
! 1422: { ":", 58, BBOLD10, BINARYOP, NULL },
! 1423: { ";", 59, BBOLD10, BINARYOP, NULL },
! 1424: { "<", 60, BBOLD10, RELATION, NULL },
! 1425: { "\\<", 60, BBOLD10, RELATION, NULL },
! 1426: { "\\cdot", 61, BBOLD10, BINARYOP, NULL },
! 1427: { ">", 62, BBOLD10, RELATION, NULL },
! 1428: { "\\>", 62, BBOLD10, RELATION, NULL },
! 1429: { "?", 63, BBOLD10, BINARYOP, NULL },
! 1430: { "@", 64, BBOLD10, BINARYOP, NULL },
! 1431: { "[", 91, BBOLD10, OPENING, NULL },
! 1432: { "\\[", 91, BBOLD10, OPENING, NULL },
! 1433: { "\\\\", 92, BBOLD10, OPENING, NULL },
! 1434: { "\\backslash", 92, BBOLD10, OPENING, NULL },
! 1435: { "]", 93, BBOLD10, CLOSING, NULL },
! 1436: { "\\]", 93, BBOLD10, CLOSING, NULL },
! 1437: { "|", 124, BBOLD10, BINARYOP, NULL },
! 1438: { "\\-", 123, BBOLD10, BINARYOP, NULL },
! 1439: /* --- trailer record --- */
! 1440: { NULL, -999, -999, -999, NULL }
! 1441: }
! 1442: #endif /* INITVALS */
! 1443: ; /* --- end-of-symtable[] --- */
! 1444:
! 1445: /* ======================= END-OF-FILE MIMETEX.H ========================= */
! 1446: #endif
! 1447:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>