--- loncom/cgi/mimeTeX/mimetex.h 2006/03/24 23:08:33 1.2 +++ loncom/cgi/mimeTeX/mimetex.h 2008/12/04 12:17:13 1.4 @@ -2,22 +2,24 @@ #define _MIMETEX /**************************************************************************** * - * Copyright(c) 2002-2003, John Forkosh Associates, Inc. All rights reserved. + * Copyright(c) 2002-2008, John Forkosh Associates, Inc. All rights reserved. + * http://www.forkosh.com mailto: john@forkosh.com * -------------------------------------------------------------------------- * This file is part of mimeTeX, which is free software. You may redistribute * and/or modify it under the terms of the GNU General Public License, - * version 2 or later, as published by the Free Software Foundation. + * version 3 or later, as published by the Free Software Foundation. * MimeTeX is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY, not even the implied warranty of MERCHANTABILITY. * See the GNU General Public License for specific details. * By using mimeTeX, you warrant that you have read, understood and - * agreed to these terms and conditions, and that you are at least 18 years - * of age and possess the legal right and ability to enter into this - * agreement and to use mimeTeX in accordance with it. - * Your mimeTeX distribution should contain a copy of the GNU General - * Public License. If not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA, - * or point your browser to http://www.gnu.org/licenses/gpl.html + * agreed to these terms and conditions, and that you possess the legal + * right and ability to enter into this agreement and to use mimeTeX + * in accordance with it. + * Your mimetex.zip distribution file should contain the file COPYING, + * an ascii text copy of the GNU General Public License, version 3. + * If not, point your browser to http://www.gnu.org/licenses/ + * or write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * -------------------------------------------------------------------------- * * Purpose: Structures, macros, symbols, @@ -35,7 +37,9 @@ * Revision History: * 09/18/02 J.Forkosh Installation. * 12/11/02 J.Forkosh Version 1.00 released. - * 07/06/03 J.Forkosh Version 1.10 begun. + * 07/04/03 J.Forkosh Version 1.01 released. + * --- + * 09/06/08 J.Forkosh Version 1.70 released. * ***************************************************************************/ @@ -66,7 +70,8 @@ check for compilation by parts (not supp #endif /* --- declare global symbol --- */ #ifdef INITVALS - #define GLOBAL(type,variable,value) STATIC type variable = (value) + #define GLOBAL(type,variable,value) STATIC type variable = value + /* #define GLOBAL(type,variable,value) STATIC type variable = (value) */ /* #define SHARED(type,variable,value) type variable = (value) */ #else #define GLOBAL(type,variable,value) STATIC type variable @@ -150,7 +155,7 @@ raster /* --- * associated raster constants and macros * -------------------------------------- */ -#define maxraster 99999 /* max #pixels for raster pixmap */ +#define maxraster 1048576 /*99999*/ /* max #pixels for raster pixmap */ /* --- #bytes in pixmap raster needed to contain width x height pixels --- */ #define bitmapsz(width,height) (((width)*(height)+7)/8) /*#bytes if a bitmap*/ #define pixmapsz(rp) (((rp)->pixsz)*bitmapsz((rp)->width,(rp)->height)) @@ -260,7 +265,8 @@ mathchardef #define PUNCTION (6) /* e.g., , (punctuation) */ #define VARIABLE (7) /* e.g., x */ #define DISPOPER (8) /* e.g., Bigint (displaymath opers)*/ -#define MAXCLASS (8) /* just for index checks */ +#define SPACEOPER (9) /* e.g., \hspace{} */ +#define MAXCLASS (9) /* just for index checks */ #define UPPERBIG DISPOPER /*how to interpret Bigxxx operators*/ #define LOWERBIG DISPOPER /*how to interpret bigxxx operators*/ /* --- class aliases --- */ @@ -274,6 +280,7 @@ mathchardef #define RSFS10 (6) /* rsfs \scrA ... \scrZ */ #define BBOLD10 (7) /* blackboard bold \mathbb A ... */ #define STMARY10 (8) /* stmaryrd math symbols */ +#define CYR10 (9) /* cyrillic (wncyr10.mf) */ #define NOTACHAR (99) /* e.g., \frac */ /* --- dummy argument value for handlers --- */ #define NOVALUE (-989898) /*charnum,family,class used as args*/ @@ -283,7 +290,7 @@ mathchardef * ----------------------- */ STATIC int nfontinfo /* legal font#'s are 1...nfontinfo */ #ifdef INITVALS - = 7 + = 8 #endif ; STATIC struct {char *name; int family; int istext; int class;} @@ -299,6 +306,7 @@ STATIC struct {char *name; int family; i { "\\mathbb", BBOLD10, 0, -1 }, /*(5) \bb,\mathbb{abc}-->{\mathbb~abc}*/ { "\\mathbf", CMMIB10, 0, -1 }, /*(6) \bf,\mathbf{abc}-->{\mathbf~abc}*/ { "\\mathrm", CMR10, 0, -1 }, /*(7) \mathrm */ + { "\\cyr", CYR10, 1, -1 }, /*(8) \cyr (defaults as text mode) */ { NULL, 0, 0, 0 } } #endif ; /* --- end-of-fonts[] --- */ @@ -332,22 +340,23 @@ aspect ratio is width/height of the disp /* --- * space between adjacent symbols, e.g., symspace[RELATION][VARIABLE] * ------------------------------------------------------------------ */ -STATIC int symspace[10][10] +STATIC int symspace[11][11] #ifdef INITVALS = - { /* --------------------------------------------------------------- - Right... ORD OPER BIN REL OPEN CLOS PUNC VAR DISP unused - Left... ------------------------------------------------------ */ - /*ORDINARY*/ { 2, 3, 3, 5, 3, 2, 2, 2, 3, 0 }, - /*OPERATOR*/ { 3, 1, 1, 5, 3, 2, 2, 2, 3, 0 }, - /*BINARYOP*/ { 2, 1, 1, 5, 3, 2, 2, 2, 3, 0 }, - /*RELATION*/ { 5, 5, 5, 5, 5, 5, 5, 5, 5, 0 }, - /*OPENING*/ { 2, 2, 2, 5, 2, 4, 2, 2, 3, 0 }, - /*CLOSING*/ { 2, 3, 3, 5, 4, 2, 1, 2, 3, 0 }, - /*PUNCTION*/ { 2, 2, 2, 5, 2, 2, 1, 2, 2, 0 }, - /*VARIABLE*/ { 2, 2, 2, 5, 2, 2, 1, 2, 2, 0 }, - /*DISPOPER*/ { 2, 3, 3, 5, 2, 3, 2, 2, 2, 0 }, - /*unused*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + { /* ----------------------------------------------------------------------- + Right... ORD OPER BIN REL OPEN CLOS PUNC VAR DISP SPACE unused + Left... -------------------------------------------------------------- */ + /*ORDINARY*/ { 2, 3, 3, 5, 3, 2, 2, 2, 3, 0, 0 }, + /*OPERATOR*/ { 3, 1, 1, 5, 3, 2, 2, 2, 3, 0, 0 }, + /*BINARYOP*/ { 2, 1, 1, 5, 3, 2, 2, 2, 3, 0, 0 }, + /*RELATION*/ { 5, 5, 5, 2, 5, 5, 2, 5, 5, 0, 0 }, + /*OPENING*/ { 2, 2, 2, 5, 2, 4, 2, 2, 3, 0, 0 }, + /*CLOSING*/ { 2, 3, 3, 5, 4, 2, 1, 2, 3, 0, 0 }, + /*PUNCTION*/ { 2, 2, 2, 5, 2, 2, 1, 2, 2, 0, 0 }, + /*VARIABLE*/ { 2, 2, 2, 5, 2, 2, 1, 2, 2, 0, 0 }, + /*DISPOPER*/ { 2, 3, 3, 5, 2, 3, 2, 2, 2, 0, 0 }, + /*SPACEOPER*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + /*unused*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } #endif ; /* --- end-of-symspace[][] --- */ @@ -375,7 +384,8 @@ subraster #define CHARASTER (1) /* character */ #define STRINGRASTER (2) /* string of characters */ #define IMAGERASTER (3) /* image */ -#define ASCIISTRING (4) /* ascii string (not a raster) */ +#define FRACRASTER (4) /* image of \frac{}{} */ +#define ASCIISTRING (5) /* ascii string (not a raster) */ /* --- * issue rasterize() call end extract embedded raster from returned subraster @@ -432,6 +442,7 @@ STATIC fontfamily aafonttable[] { RSFS10,{ rsfs83, rsfs100, rsfs118, rsfs131, rsfs160, rsfs180, rsfs210, rsfs250}}, { BBOLD10,{ bbold83, bbold100, bbold118, bbold131, bbold160, bbold180, bbold210, bbold250}}, {STMARY10,{stmary83,stmary100,stmary118,stmary131,stmary160,stmary180,stmary210,stmary250}}, + { CYR10,{ wncyr83, wncyr100, wncyr118, wncyr131, wncyr160, wncyr180, wncyr210, wncyr250}}, { -999,{ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}} } #endif @@ -453,6 +464,7 @@ STATIC fontfamily aafonttable[] { RSFS10,{ rsfs250, rsfs100, rsfs118, rsfs131, rsfs160, rsfs180, rsfs210, rsfs250}}, { BBOLD10,{bbold250, bbold100, bbold118, bbold131, bbold160, bbold180, bbold210, bbold250}}, {STMARY10,{stmary250,stmary100,stmary118,stmary131,stmary160,stmary180,stmary210,stmary250}}, + { CYR10,{ wncyr83, wncyr100, wncyr118, wncyr131, wncyr160, wncyr180, wncyr210, wncyr250}}, { -999,{ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}} } #endif @@ -517,10 +529,12 @@ subraster *rastmiddle(); /* handle \lef subraster *rastarray(); /* handle \array{...} */ subraster *rastpicture(); /* handle \picture(,){...} */ subraster *rastline(); /* handle \line(xinc,yinc){xlen} */ +subraster *rastrule(); /* handle \rule[lift]{width}{height}*/ subraster *rastcircle(); /* handle \circle(xdiam[,ydiam]) */ subraster *rastbezier(); /*handle\bezier(c0,r0)(c1,r1)(ct,rt)*/ subraster *rastraise(); /* handle \raisebox{lift}{expr} */ subraster *rastrotate(); /* handle \rotatebox{degs}{expr} */ +subraster *rastreflect(); /* handle \reflectbox[axis]{expr} */ subraster *rastfbox(); /* handle \fbox{expr} */ subraster *rastinput(); /* handle \input{filename} */ subraster *rastcounter(); /* handle \counter{filename} */ @@ -553,12 +567,14 @@ subraster *rastnoop(); /* handle \esca #define ISADJACENTWT (63) /* set anti-aliasing adjacent weight*/ #define ISCORNERWT (64) /* set anti-aliasing adjacent weight*/ #define PNMPARAMS (65) /* set fgalias,fgonly,bgalias,bgonly*/ +#define ISGAMMA (66) /* set gamma correction */ #define ISSHRINK (7) /* set supersampling shrinkfactor */ #define UNITLENGTH (8) /* set unitlength */ #define ISCOLOR (9) /* set color */ #define ISREVERSE (10) /* set reverse video colors */ #define ISSTRING (11) /* set ascii string mode */ #define ISSMASH (12) /* set (minimum) "smash" margin */ +#define ISCONTENTTYPE (13) /*enable/disable Content-type lines*/ /* --- * mathchardefs for symbols recognized by mimetex @@ -596,11 +612,13 @@ STATIC mathchardef symtable[] { "\\tabular",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastarray) }, { "\\picture",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastpicture) }, { "\\line", NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastline) }, + { "\\rule", NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastrule) }, { "\\circle", NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastcircle) }, { "\\bezier", NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastbezier) }, { "\\qbezier",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastbezier) }, { "\\raisebox",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastraise) }, { "\\rotatebox",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastrotate) }, + { "\\reflectbox",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastreflect) }, { "\\fbox", NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastfbox) }, { "\\input",NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rastinput) }, { "\\today",NOVALUE,NOVALUE,NOVALUE, (HANDLER)(rasttoday) }, @@ -618,9 +636,12 @@ STATIC mathchardef symtable[] { "~", 5, NOVALUE,NOVALUE, (HANDLER)(rastspace) }, { "\\ ", 5, NOVALUE,NOVALUE, (HANDLER)(rastspace) }, { " ", 5, NOVALUE,NOVALUE, (HANDLER)(rastspace) }, + { "\\!", -2, NOVALUE,NOVALUE, (HANDLER)(rastspace) }, + /*{ "\\!*", -2, 99,NOVALUE, (HANDLER)(rastspace) },*/ { "\\quad", 6, NOVALUE,NOVALUE, (HANDLER)(rastspace) }, { "\\qquad",10, NOVALUE,NOVALUE, (HANDLER)(rastspace) }, { "\\hspace",0, NOVALUE,NOVALUE, (HANDLER)(rastspace) }, + { "\\hspace*",0, 99,NOVALUE, (HANDLER)(rastspace) }, { "\\vspace",0, NOVALUE, 1, (HANDLER)(rastspace) }, { "\\hfill",0, 1,NOVALUE, (HANDLER)(rastspace) }, /* --- newline --- */ @@ -649,6 +670,7 @@ STATIC mathchardef symtable[] { "\\text", 3, NOVALUE,NOVALUE, (HANDLER)(rastfont) }, { "\\textrm", 3, NOVALUE,NOVALUE, (HANDLER)(rastfont) }, { "\\mathrm", 7, NOVALUE,NOVALUE, (HANDLER)(rastfont) }, + { "\\cyr", 8, NOVALUE,NOVALUE, (HANDLER)(rastfont) }, { "\\mathbf", 6, NOVALUE,NOVALUE, (HANDLER)(rastfont) }, { "\\bf", 6, NOVALUE,NOVALUE, (HANDLER)(rastfont) }, { "\\mathtt", 3, NOVALUE,NOVALUE, (HANDLER)(rastfont) }, @@ -700,7 +722,10 @@ STATIC mathchardef symtable[] { "\\lowpass", ISSUPER, 0,NOVALUE, (HANDLER)(rastflags) }, { "\\aaalg",ISAAALGORITHM, NOVALUE,NOVALUE, (HANDLER)(rastflags) }, { "\\pnmparams",PNMPARAMS, NOVALUE,NOVALUE, (HANDLER)(rastflags) }, + { "\\gammacorrection",ISGAMMA,NOVALUE,NOVALUE,(HANDLER)(rastflags) }, + { "\\nocontenttype",ISCONTENTTYPE, 0,NOVALUE, (HANDLER)(rastflags) }, { "\\opaque", ISOPAQUE, 0,NOVALUE, (HANDLER)(rastflags) }, + { "\\transparent",ISOPAQUE, 1,NOVALUE, (HANDLER)(rastflags) }, { "\\squash", ISSMASH, 3,1, (HANDLER)(rastflags) }, { "\\smash", ISSMASH, 3,1, (HANDLER)(rastflags) }, { "\\nosquash", ISSMASH, 0,NOVALUE, (HANDLER)(rastflags) }, @@ -770,8 +795,10 @@ STATIC mathchardef symtable[] { "\\bigskip", 0, NOVALUE,NOVALUE, (HANDLER)(rastnoop) }, { "\\phantom", 1, NOVALUE,NOVALUE, (HANDLER)(rastnoop) }, { "\\nocaching", 0, NOVALUE,NOVALUE, (HANDLER)(rastnoop) }, + { "\\noconten", 0, NOVALUE,NOVALUE, (HANDLER)(rastnoop) }, { "\\nonumber", 0, NOVALUE,NOVALUE, (HANDLER)(rastnoop) }, - { "\\!", 0, NOVALUE,NOVALUE, (HANDLER)(rastnoop) }, + /* { "\\!", 0, NOVALUE,NOVALUE, (HANDLER)(rastnoop) }, */ + { "\\cydot", 0, NOVALUE,NOVALUE, (HANDLER)(rastnoop) }, /* --------------------- C M M I -------------------------- symbol charnum family class function -------------------------------------------------------- */ @@ -915,8 +942,8 @@ STATIC mathchardef symtable[] { "y", 121, CMMI10, VARIABLE, NULL }, { "z", 122, CMMI10, VARIABLE, NULL }, /* --- miscellaneous symbols and relations --- */ - { "\\imath", 123, CMMI10, ORDINARY, NULL }, - { "\\jmath", 124, CMMI10, ORDINARY, NULL }, + { "\\imath", 123, CMMI10, VARIABLE, NULL }, + { "\\jmath", 124, CMMI10, VARIABLE, NULL }, { "\\wp", 125, CMMI10, ORDINARY, NULL }, { "\\vec", 126, CMMI10, ORDINARY, NULL }, /* --------------------- C M M I B ------------------------ @@ -1060,8 +1087,8 @@ STATIC mathchardef symtable[] { "y", 121, CMMIB10, VARIABLE, NULL }, { "z", 122, CMMIB10, VARIABLE, NULL }, /* --- miscellaneous symbols and relations --- */ - { "\\imath", 123, CMMIB10, ORDINARY, NULL }, - { "\\jmath", 124, CMMIB10, ORDINARY, NULL }, + { "\\imath", 123, CMMIB10, VARIABLE, NULL }, + { "\\jmath", 124, CMMIB10, VARIABLE, NULL }, { "\\wp", 125, CMMIB10, ORDINARY, NULL }, { "\\bfvec", 126, CMMIB10, ORDINARY, NULL }, /* --------------------- C M S Y -------------------------- @@ -1314,8 +1341,8 @@ STATIC mathchardef symtable[] { "*", 42, CMR10, BINARYOP, NULL }, { "+", 43, CMR10, BINARYOP, NULL }, { "/", 47, CMR10, BINARYOP, NULL }, - { ":", 58, CMR10, BINARYOP, NULL }, - { ";", 59, CMR10, BINARYOP, NULL }, + { ":", 58, CMR10, ORDINARY, NULL }, + { ";", 59, CMR10, ORDINARY, NULL }, { "=", 61, CMR10, RELATION, NULL }, { "?", 63, CMR10, BINARYOP, NULL }, { "@", 64, CMR10, BINARYOP, NULL }, @@ -1747,8 +1774,8 @@ STATIC mathchardef symtable[] { "-", 45, BBOLD10, BINARYOP, NULL }, { ".", 46, BBOLD10, PUNCTION, NULL }, { "/", 47, BBOLD10, BINARYOP, NULL }, - { ":", 58, BBOLD10, BINARYOP, NULL }, - { ";", 59, BBOLD10, BINARYOP, NULL }, + { ":", 58, BBOLD10, ORDINARY, NULL }, + { ";", 59, BBOLD10, ORDINARY, NULL }, { "<", 60, BBOLD10, RELATION, NULL }, { "\\<", 60, BBOLD10, RELATION, NULL }, { "\\cdot", 61, BBOLD10, BINARYOP, NULL }, @@ -1800,6 +1827,7 @@ STATIC mathchardef symtable[] { "\\boxcircle", 29, STMARY10, BINARYOP, NULL }, { "\\boxbox", 30, STMARY10, BINARYOP, NULL }, { "\\boxempty", 31, STMARY10, BINARYOP, NULL }, + { "\\qed", 31, STMARY10, BINARYOP, NULL }, { "\\lightning", 32, STMARY10, ORDINARY, NULL }, { "\\merge", 33, STMARY10, BINARYOP, NULL }, { "\\vartimes", 34, STMARY10, BINARYOP, NULL }, @@ -1874,6 +1902,114 @@ STATIC mathchardef symtable[] { "\\bigparallel", 102, STMARY10, OPERATOR, NULL }, { "\\biginterleave", 103, STMARY10, OPERATOR, NULL }, { "\\bignplus", 112, STMARY10, OPERATOR, NULL }, + /* ---------------------- C Y R --------------------------- + symbol charnum family class function + -------------------------------------------------------- */ + /* --- + * undefined: 20,21,28,29,33-59,61,63,64,91,92,93,96,123,124 + * ---------------------------------------------------------- */ + /* --- special characters --- */ + { "\\cyddot", 32, CYR10, VARIABLE, NULL }, + /* ---See amsfndoc.dvi Figure 1 Input Conventions for AMS cyrillic--- */ + { "A", 65, CYR10, VARIABLE, NULL }, + { "a", 97, CYR10, VARIABLE, NULL }, + { "B", 66, CYR10, VARIABLE, NULL }, + { "b", 98, CYR10, VARIABLE, NULL }, + { "V", 86, CYR10, VARIABLE, NULL }, + { "v", 118, CYR10, VARIABLE, NULL }, + { "G", 71, CYR10, VARIABLE, NULL }, + { "g", 103, CYR10, VARIABLE, NULL }, + { "D", 68, CYR10, VARIABLE, NULL }, + { "d", 100, CYR10, VARIABLE, NULL }, + { "Dj", 6, CYR10, VARIABLE, NULL }, + { "DJ", 6, CYR10, VARIABLE, NULL }, + { "dj", 14, CYR10, VARIABLE, NULL }, + { "E", 69, CYR10, VARIABLE, NULL }, + { "e", 101, CYR10, VARIABLE, NULL }, + { "\\\"E", 19, CYR10, VARIABLE, NULL }, + { "\\\"e", 27, CYR10, VARIABLE, NULL }, + { "\\=E", 5, CYR10, VARIABLE, NULL }, + { "\\=e", 13, CYR10, VARIABLE, NULL }, + { "Zh", 17, CYR10, VARIABLE, NULL }, + { "ZH", 17, CYR10, VARIABLE, NULL }, + { "zh", 25, CYR10, VARIABLE, NULL }, + { "Z", 90, CYR10, VARIABLE, NULL }, + { "z", 122, CYR10, VARIABLE, NULL }, + { "I", 73, CYR10, VARIABLE, NULL }, + { "i", 105, CYR10, VARIABLE, NULL }, + { "\\=I", 4, CYR10, VARIABLE, NULL }, + { "\\=\\i", 12, CYR10, VARIABLE, NULL }, + { "J", 74, CYR10, VARIABLE, NULL }, + { "j", 106, CYR10, VARIABLE, NULL }, + { "\\u I", 18, CYR10, VARIABLE, NULL }, + { "\\u\\i", 26, CYR10, VARIABLE, NULL }, + { "K", 75, CYR10, VARIABLE, NULL }, + { "k", 107, CYR10, VARIABLE, NULL }, + { "L", 76, CYR10, VARIABLE, NULL }, + { "l", 108, CYR10, VARIABLE, NULL }, + { "Lj", 1, CYR10, VARIABLE, NULL }, + { "LJ", 1, CYR10, VARIABLE, NULL }, + { "lj", 9, CYR10, VARIABLE, NULL }, + { "M", 77, CYR10, VARIABLE, NULL }, + { "m", 109, CYR10, VARIABLE, NULL }, + { "N", 78, CYR10, VARIABLE, NULL }, + { "n", 110, CYR10, VARIABLE, NULL }, + { "Nj", 0, CYR10, VARIABLE, NULL }, + { "NJ", 0, CYR10, VARIABLE, NULL }, + { "nj", 8, CYR10, VARIABLE, NULL }, + { "O", 79, CYR10, VARIABLE, NULL }, + { "o", 111, CYR10, VARIABLE, NULL }, + { "P", 80, CYR10, VARIABLE, NULL }, + { "p", 112, CYR10, VARIABLE, NULL }, + { "R", 82, CYR10, VARIABLE, NULL }, + { "r", 114, CYR10, VARIABLE, NULL }, + { "S", 83, CYR10, VARIABLE, NULL }, + { "s", 115, CYR10, VARIABLE, NULL }, + { "T", 84, CYR10, VARIABLE, NULL }, + { "t", 116, CYR10, VARIABLE, NULL }, + { "\\\'C", 7, CYR10, VARIABLE, NULL }, + { "\\\'c", 15, CYR10, VARIABLE, NULL }, + { "U", 85, CYR10, VARIABLE, NULL }, + { "u", 117, CYR10, VARIABLE, NULL }, + { "F", 70, CYR10, VARIABLE, NULL }, + { "f", 102, CYR10, VARIABLE, NULL }, + { "Kh", 72, CYR10, VARIABLE, NULL }, + { "KH", 72, CYR10, VARIABLE, NULL }, + { "kh", 104, CYR10, VARIABLE, NULL }, + { "Ts", 67, CYR10, VARIABLE, NULL }, + { "TS", 67, CYR10, VARIABLE, NULL }, + { "ts", 99, CYR10, VARIABLE, NULL }, + { "Ch", 81, CYR10, VARIABLE, NULL }, + { "CH", 81, CYR10, VARIABLE, NULL }, + { "ch", 113, CYR10, VARIABLE, NULL }, + { "Dzh", 2, CYR10, VARIABLE, NULL }, + { "DZH", 2, CYR10, VARIABLE, NULL }, + { "dzh", 10, CYR10, VARIABLE, NULL }, + { "Sh", 88, CYR10, VARIABLE, NULL }, + { "SH", 88, CYR10, VARIABLE, NULL }, + { "sh", 120, CYR10, VARIABLE, NULL }, + { "Shch", 87, CYR10, VARIABLE, NULL }, + { "SHCH", 87, CYR10, VARIABLE, NULL }, + { "shch", 119, CYR10, VARIABLE, NULL }, + { "\\Cdprime", 95, CYR10, VARIABLE, NULL }, + { "\\cdprime", 127, CYR10, VARIABLE, NULL }, + { "Y", 89, CYR10, VARIABLE, NULL }, + { "y", 121, CYR10, VARIABLE, NULL }, + { "\\Cprime", 94, CYR10, VARIABLE, NULL }, + { "\\cprime", 126, CYR10, VARIABLE, NULL }, + { "\\`E", 3, CYR10, VARIABLE, NULL }, + { "\\`e", 11, CYR10, VARIABLE, NULL }, + { "Yu", 16, CYR10, VARIABLE, NULL }, + { "YU", 16, CYR10, VARIABLE, NULL }, + { "yu", 24, CYR10, VARIABLE, NULL }, + { "Ya", 23, CYR10, VARIABLE, NULL }, + { "YA", 23, CYR10, VARIABLE, NULL }, + { "ya", 31, CYR10, VARIABLE, NULL }, + { "\\Dz", 22, CYR10, VARIABLE, NULL }, + { "\\dz", 30, CYR10, VARIABLE, NULL }, + { "N0", 125, CYR10, VARIABLE, NULL }, + { "<", 60, CYR10, VARIABLE, NULL }, + { ">", 62, CYR10, VARIABLE, NULL }, /* --- trailer record --- */ { NULL, -999, -999, -999, NULL } }