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