/* Standard fonts */ enum { TEXT_FONT, /* default everywhere exept in formulae */ FORMM_FONT, /* math in formulae ([^a-zA-Z]) */ FORMML_FONT, /* the same but for large \int, \sum, and \prod */ FORMT_FONT, /* text in formulae ([a-zA-Z]) */ SCRT_FONT, /* text in scripts */ SCRM_FONT, /* math in scripts */ JUMP_FONT, /* jumps */ BOLD_FONT, PROG_FONT, /* proportional, for listings */ CUSTOM_FONT }; /* Special symbol table */ typedef struct { CharPtr sym; Uint1 code; Uint1 font; /* in formula mode */ Uint1 sfont; /* in script mode */ } Special, PNTR SpecialPtr; #define SUFF "_" /* Suffix used to allow only internal access to symbols */ static Special SpecialTable[]={ /* name in the Symbol font */ {"", 0000,FORMT_FONT,FORMT_FONT}, {"Alpha", 0101,FORMM_FONT,SCRM_FONT}, {"Beta", 0102,FORMM_FONT,SCRM_FONT}, {"Chi", 0103,FORMM_FONT,SCRM_FONT}, {"Delta", 0104,FORMM_FONT,SCRM_FONT}, {"Epsilon", 0105,FORMM_FONT,SCRM_FONT}, {"Eta", 0110,FORMM_FONT,SCRM_FONT}, {"Gamma", 0107,FORMM_FONT,SCRM_FONT}, {"Int"SUFF, 0362,FORMML_FONT,FORMM_FONT}, /* integral */ {"Iota", 0111,FORMM_FONT,SCRM_FONT}, {"Kappa", 0113,FORMM_FONT,SCRM_FONT}, {"Lambda", 0114,FORMM_FONT,SCRM_FONT}, {"Mu", 0115,FORMM_FONT,SCRM_FONT}, {"Nu", 0116,FORMM_FONT,SCRM_FONT}, {"Omega", 0127,FORMM_FONT,SCRM_FONT}, {"Omicron", 0117,FORMM_FONT,SCRM_FONT}, {"Phi", 0106,FORMM_FONT,SCRM_FONT}, {"Pi", 0120,FORMM_FONT,SCRM_FONT}, {"Prod"SUFF, 0325,FORMML_FONT,FORMM_FONT}, /* product */ {"Psi", 0131,FORMM_FONT,SCRM_FONT}, {"Rho", 0122,FORMM_FONT,SCRM_FONT}, {"Sigma", 0123,FORMM_FONT,SCRM_FONT}, {"Sum"SUFF, 0345,FORMML_FONT,FORMM_FONT}, /* summation */ {"Tau", 0124,FORMM_FONT,SCRM_FONT}, {"Theta", 0121,FORMM_FONT,SCRM_FONT}, {"Upsilon", 0241,FORMM_FONT,SCRM_FONT}, /* Upsilon1(0241); Upsilon(0125) */ {"Xi", 0130,FORMM_FONT,SCRM_FONT}, {"Zeta", 0132,FORMM_FONT,SCRM_FONT}, {"alpha", 0141,FORMM_FONT,SCRM_FONT}, {"approx", 0273,FORMM_FONT,SCRM_FONT}, /* approxequal */ {"arrowhorizex",0276,FORMM_FONT,SCRM_FONT}, {"beta", 0142,FORMM_FONT,SCRM_FONT}, {"bullet", 0267,FORMM_FONT,SCRM_FONT}, {"cdot", 0327,FORMM_FONT,SCRM_FONT}, /* dotmath */ {"chi", 0143,FORMM_FONT,SCRM_FONT}, {"copyright", 0323,FORMM_FONT,SCRM_FONT}, /* copyrightserif */ {"delta", 0144,FORMM_FONT,SCRM_FONT}, {"empty", 0040,FORMM_FONT,SCRM_FONT}, /* just space */ {"emptyset", 0306,FORMM_FONT,SCRM_FONT}, {"epsilon", 0145,FORMM_FONT,SCRM_FONT}, {"equiv", 0272,FORMM_FONT,SCRM_FONT}, /* equivalence */ {"eta", 0150,FORMM_FONT,SCRM_FONT}, {"gamma", 0147,FORMM_FONT,SCRM_FONT}, {"geq", 0263,FORMM_FONT,SCRM_FONT}, /* greaterequal */ {"in", 0316,FORMM_FONT,SCRM_FONT}, /* element */ {"infty", 0245,FORMM_FONT,SCRM_FONT}, /* infinity */ {"int"SUFF, 0362,FORMM_FONT,SCRM_FONT}, /* integral */ {"iota", 0151,FORMM_FONT,SCRM_FONT}, {"kappa", 0153,FORMM_FONT,SCRM_FONT}, {"lambda", 0154,FORMM_FONT,SCRM_FONT}, {"langle", 0341,FORMM_FONT,SCRM_FONT}, {"ldots", 0274,FORMM_FONT,SCRM_FONT}, /* ellipsis */ {"leq", 0243,FORMM_FONT,SCRM_FONT}, /* lessequal */ {"mu", 0155,FORMM_FONT,SCRM_FONT}, {"nabla", 0321,FORMM_FONT,SCRM_FONT}, /* gradient */ {"neq", 0271,FORMM_FONT,SCRM_FONT}, /* notequal */ {"nu", 0156,FORMM_FONT,SCRM_FONT}, {"oplus", 0305,FORMM_FONT,SCRM_FONT}, {"otimes", 0304,FORMM_FONT,SCRM_FONT}, {"omega", 0167,FORMM_FONT,SCRM_FONT}, {"omicron", 0157,FORMM_FONT,SCRM_FONT}, {"partial", 0266,FORMM_FONT,SCRM_FONT}, /* partialdiff */ {"phi", 0146,FORMM_FONT,SCRM_FONT}, {"pi", 0160,FORMM_FONT,SCRM_FONT}, {"pm", 0261,FORMM_FONT,SCRM_FONT}, /* plusminus */ {"prime", 0242,FORMM_FONT,SCRM_FONT}, /* minute */ {"prod"SUFF, 0325,FORMM_FONT,SCRM_FONT}, /* product */ {"psi", 0171,FORMM_FONT,SCRM_FONT}, {"rangle", 0361,FORMM_FONT,SCRM_FONT}, {"rho", 0162,FORMM_FONT,SCRM_FONT}, {"rightarrow",0256,FORMM_FONT,SCRM_FONT}, /* arrowright */ {"sigma", 0163,FORMM_FONT,SCRM_FONT}, {"sim", 0176,FORMM_FONT,SCRM_FONT}, /* similar */ {"subset", 0314,FORMM_FONT,SCRM_FONT}, {"supset", 0311,FORMM_FONT,SCRM_FONT}, {"sum"SUFF, 0345,FORMM_FONT,SCRM_FONT}, /* summation */ {"tau", 0164,FORMM_FONT,SCRM_FONT}, {"theta", 0161,FORMM_FONT,SCRM_FONT}, {"times", 0264,FORMM_FONT,SCRM_FONT}, /* multiply */ {"upsilon", 0165,FORMM_FONT,SCRM_FONT}, {"varepsilon",0145,FORMM_FONT,SCRM_FONT}, /* epsilon */ {"varphi", 0152,FORMM_FONT,SCRM_FONT}, /* phi1 */ {"varrho", 0162,FORMM_FONT,SCRM_FONT}, /* rho */ {"varsigma", 0126,FORMM_FONT,SCRM_FONT}, /* sigma1 */ {"vartheta", 0112,FORMM_FONT,SCRM_FONT}, /* theta1 */ {"vee", 0332,FORMM_FONT,SCRM_FONT}, /* logicalor */ {"wedge", 0331,FORMM_FONT,SCRM_FONT}, /* logicaland */ {"xi", 0170,FORMM_FONT,SCRM_FONT}, {"zeta", 0172,FORMM_FONT,SCRM_FONT}, {"{", 0173,FORMM_FONT,SCRM_FONT}, /* braceleft */ {"}", 0175,FORMM_FONT,SCRM_FONT}, /* braceright */ {"underscore",0137,FORMM_FONT,SCRM_FONT} /* underscore */ }; static Int2 SpecialTableNum=DIM(SpecialTable); typedef enum { /* specail name used in formulae */ SS_MATRIX=129, SS_DETERMINANT, SS_SYSTEM, SS_TABLE, SS_HAT, SS_TILDE, SS_BAR, SS_DOT, SS_BARDOT, SS_SQRT, SS_BRACKETS, SS_FRAC, SS_LIM, SS_MIN, SS_MAX, SS_INF, SS_SUP, SS_INT, SS_SUM, SS_PROD, SS_INTL, /* large */ SS_SUML, /* large */ SS_PRODL, /* large */ SS_SPACE1, /* Thin */ SS_SPACE2, /* Medium */ SS_SPACE3, /* Thick */ SS_SPACE_1, /* Negative thin */ SS_, /* operators */ SC_TOPIC, /* start of Topic */ SC_F, /* Font */ SC_BF, /* Bold Font */ SC_CF, /* Color Foreground */ SC_LI, /* Left Indent */ SC_FI, /* First line Indent */ SC_PAR, /* end of Paragraph */ SC_SB, /* Spacing Before paragraph */ SC_SA, /* Spacing After paragraph */ SC_STAB, /* Set Tab stops */ SC_TAB, /* go to next Tab stop */ SC_PS, /* psudo-space */ SC_CAT, /* concate */ SC_RIGHT, /* Right alignment */ SC_CENTER, /* Centrate */ SC_LEVEL, /* check the Level of the current scope */ SC_END, /* End of topic */ SC_JUMP, /* to another topic */ SC_INCLUDE, /* text of another topic */ SC_PICTURE, SC_DESC, /* term definitions list */ SC_VERBATIM, /* reproduce lines 'as they are' */ SC_COND, /* condition of topic's visibility; never appears in .hlp */ SC_ /* The last */ } SpecialCode; /* Object codes, see xfig sources */ #define P_ELLIPSE 1 #define P_POLYLINE 2 #define P_SPLINE 3 /* private modification: -P_SPLINE means 'closed' */ #define P_TEXT 4 #define P_ARC 5 #define P_COMPOUND 6 #define P_COMPOUNDE -6 #define P_SPLINEI 30 /* private: interpolated spline */