1 /* manifests.h: Various constants used everywhere.
2 
3 This file is part of Omega,
4 which is based on the web2c distribution of TeX,
5 
6 Copyright (c) 1994--2001 John Plaice and Yannis Haralambous
7 
8 Omega is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
12 
13 Omega is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 GNU General Public License for more details.
17 
18 You should have received a copy of the GNU General Public License
19 along with Omega; if not, write to the Free Software Foundation, Inc.,
20 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
21 
22 */
23 
24 /* Character measures */
25 
26 #define C_MIN 		 0
27 
28 #define C_WD  		 0
29 #define C_HT  		 1
30 #define C_DP  		 2
31 #define C_IC  		 3
32 
33 #define C_SECWD 	 4
34 #define C_SECHT  	 5
35 #define C_SECDP  	 6
36 #define C_SECIC  	 7
37 
38 #define C_P_TOPAXIS	 8
39 #define C_P_TOPAXISBIs	 9
40 #define C_P_BOTAXIS	10
41 #define C_P_BOTAXISBIS	11
42 #define C_P_MIDHOR	12
43 #define C_P_MIDVERT	13
44 #define C_P_BASESLANT	14
45 
46 #define C_S_TOPAXIS	16
47 #define C_S_TOPAXISBIs	17
48 #define C_S_BOTAXIS	18
49 #define C_S_BOTAXISBIS	19
50 #define C_S_MIDHOR	20
51 #define C_S_MIDVERT	21
52 #define C_S_BASESLANT	22
53 
54 #define C_MAX		22
55 
56 /* Extensible pieces */
57 
58 #define E_MIN  0
59 
60 #define E_TOP  0
61 #define E_MID  1
62 #define E_BOT  2
63 #define E_REP  3
64 
65 #define E_MAX  3
66 
67 /* Ligature commands */
68 
69 #define L_MIN    0
70 
71 #define L_0      0	/*   LIG     */
72 #define L_B      1	/*   LIG/    */
73 #define L_A      2	/*  /LIG     */
74 #define L_AB     3	/*  /LIG/    */
75 #define L_Bx     5	/*   LIG/>   */
76 #define L_Ax     6	/*  /LIG>    */
77 #define L_ABx    7	/*  /LIG/>   */
78 #define L_ABxx  11	/*  /LIG/>>  */
79 
80 #define L_MAX	11
81 
82 /* Lig/Kern activities */
83 #define A_UNREACHABLE   0	/* a program step not known to be reachable */
84 #define A_PASS_THROUGH  1	/* a program step passed through on initialization */
85 #define A_ACCESSIBLE    2	/* a program step that can be relevant */
86 
87 /* Xerox faces */
88 
89 #define F_MIN   0
90 
91 #define F_MRR   0
92 #define F_MIR   1
93 #define F_BRR   2
94 #define F_BIR   3
95 #define F_LRR   4
96 #define F_LIR   5
97 #define F_MRC   6
98 #define F_MIC   7
99 #define F_BRC   8
100 #define F_BIC   9
101 #define F_LRC  10
102 #define F_LIC  11
103 #define F_MRE  12
104 #define F_MIE  13
105 #define F_BRE  14
106 #define F_BIE  15
107 #define F_LRE  16
108 #define F_LIE  17
109 
110 #define F_MAX  17
111 
112 /* Named parameters */
113 
114 #define P_MIN		 1
115 
116 #define P_SLANT		 1
117 #define P_SPACE		 2
118 #define P_STRETCH	 3
119 #define P_SHRINK	 4
120 #define P_XHEIGHT	 5
121 #define P_QUAD		 6
122 #define P_EXTRASPACE	 7
123 
124 #define P_MAX		 7
125 
126 /* Named math symbol parameters */
127 
128 #define P_MATHSY_MIN	 8
129 
130 #define P_NUM1		 8
131 #define P_NUM2		 9
132 #define P_NUM3		10
133 #define P_DENOM1	11
134 #define P_DENOM2	12
135 #define P_SUP1		13
136 #define P_SUP2		14
137 #define P_SUP3		15
138 #define P_SUB1		16
139 #define P_SUB2		17
140 #define P_SUPDROP	18
141 #define P_SUBDROP	19
142 #define P_DELIM1	20
143 #define P_DELIM2	21
144 #define P_AXISHEIGHT	22
145 
146 #define P_MATHSY_MAX	22
147 
148 /* Named math extension parameters */
149 
150 #define P_MATHEX_MIN		 8
151 
152 #define P_DEFAULTRULETHICKNESS	 8
153 #define P_BIGOPSPACING1		 9
154 #define P_BIGOPSPACING2		10
155 #define P_BIGOPSPACING3		11
156 #define P_BIGOPSPACING4		12
157 #define P_BIGOPSPACING5		13
158 
159 #define P_MATHEX_MAX		13
160 
161 /* Typesetting directions */
162 
163 #define DIR_MIN  0
164 
165 #define DIR_ORD  0
166 #define DIR_NAT  8
167 
168 #define DIR_TL   0
169 #define DIR_LT   1
170 #define DIR_TR   2
171 #define DIR_LB   3
172 #define DIR_BL   4
173 #define DIR_RT   5
174 #define DIR_BR   6
175 #define DIR_RB   7
176 
177 #define DIR_MAX  15
178 
179 /* Kinds of accent */
180 
181 #define ACC_NONE 0
182 #define ACC_TOP  1
183 #define ACC_MID  2
184 #define ACC_BOT  3
185 
186 /* Move directions */
187 
188 #define M_MIN    0
189 
190 #define M_RIGHT  0
191 #define M_LEFT   1
192 #define M_UP     2
193 #define M_DOWN   3
194 
195 #define M_MAX    3
196 
197 /* Rule measures */
198 
199 #define RULE_MIN 0
200 
201 #define RULE_WD  0
202 #define RULE_HT  1
203 #define RULE_DP  2
204 
205 #define RULE_MAX 2
206 
207 /* Glue shrink or stretch */
208 
209 #define GLUE_MIN 0
210 
211 #define GLUE_SHRINK  0
212 #define GLUE_STRETCH 1
213 
214 #define GLUE_MAX 1
215 
216 /* Glue orders */
217 
218 #define O_MIN	0
219 
220 #define O_UNIT	0
221 #define O_FI	1
222 #define O_FIL	2
223 #define O_FILL	3
224 #define O_FILLL	4
225 
226 #define O_MAX	4
227 
228 
229 /* Glue kinds */
230 
231 #define K_MIN      0
232 
233 #define K_NORMAL   0
234 #define K_ALEADERS 1
235 #define K_CLEADERS 2
236 #define K_XLEADERS 3
237 
238 #define K_MAX      3
239 
240 
241 /* Font types */
242 
243 #define FT_MIN		0
244 
245 #define FT_VANILLA	0
246 #define FT_MATHSY	1
247 #define FT_MATHEX	2
248 
249 #define FT_MAX		2
250 
251 
252 #define UNITY     0x100000
253 #define WEB_INFINITY  0x7fffffff
254 
255 #define LEN_CODING_SCHEME  39
256 #define LEN_FAMILY         19
257 #define LEN_VTITLE        255
258 #define LEN_FONT_NAME     255
259 #define LEN_FONT_AREA     255
260 
261 #define TAG_NONE  0
262 #define TAG_LIG   1
263 #define TAG_LIST  2
264 #define TAG_EXT   3
265 
266 #define CHAR_MINIMUM	0x0
267 #define CHAR_MAXIMUM	0x7fffffff
268 #define CHAR_BOUNDARY	0x80000000
269 #define CHAR_ERROR	0x80000001
270 
271 #define LIG_SIMPLE      0       /* f(x,y) = z                 */
272 #define LIG_LEFT_Z      1       /* f(x,y) = f(z,y)            */
273 #define LIG_RIGHT_Z     2       /* f(x,y) = f(x,z)            */
274 #define LIG_BOTH_Z      3       /* f(x,y) = f(f(x,z),y)       */
275 #define LIG_PENDING     4       /* f(x,y) is being evaluated  */
276 
277 #define GLUEARG_NONE    0
278 #define GLUEARG_CHAR    1
279 #define GLUEARG_RULE    2
280 
281 #define OFM_NOLEVEL	0
282 #define OFM_TFM		1
283 #define OFM_LEVEL0	2
284 #define OFM_LEVEL1	3
285 #define OFM_LEVEL2	4
286