boundary nodes made consistent (cleanup and document): WARNING: bump the format numbe...
[luatex.git] / source / texk / web2c / luatexdir / lua / luatex-api.h
blobf671842d6881070147b196e3b7d2ff362b97b39f
1 /* luatex-api.h
3 Copyright 2006-2012 Taco Hoekwater <taco@luatex.org>
5 This file is part of LuaTeX.
7 LuaTeX is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 2 of the License, or (at your
10 option) any later version.
12 LuaTeX is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
15 License for more details.
17 You should have received a copy of the GNU General Public License along
18 with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */
20 #ifndef LUATEX_API_H
21 # define LUATEX_API_H 1
23 /* output modes, a bad place but this compiles at least */
25 typedef enum { OMODE_NONE, OMODE_DVI, OMODE_PDF } output_mode ;
27 # define MAX_OMODE 2 /* largest index in enum output_mode */
29 extern int output_mode_used;
30 extern int output_mode_option;
31 extern int output_mode_value;
32 extern int draft_mode_option;
33 extern int draft_mode_value;
35 /* get_o_mode translates from output_mode to output_mode_used */
36 /* fix_o_mode freezes output_mode as soon as anything goes through the backend */
38 extern output_mode get_o_mode(void);
39 extern void fix_o_mode(void);
41 /* till here */
43 # include <stdlib.h>
44 # include <stdio.h>
45 # include <stdarg.h>
46 # include "lua.h"
47 # include "lauxlib.h"
48 # include "lualib.h"
49 #ifdef LuajitTeX
50 # include "luajit.h"
51 # define MyName "LuajitTeX"
52 # define my_name "luajittex"
53 #else
54 # define MyName "LuaTeX"
55 # define my_name "luatex"
56 #endif
58 #ifdef __cplusplus
59 extern "C" {
60 #endif
62 typedef struct LoadS {
63 char *s;
64 size_t size;
65 } LoadS;
67 extern lua_State *Luas;
69 extern void make_table(lua_State * L, const char *tab, const char *mttab, const char *getfunc,
70 const char *setfunc);
72 extern int luac_main(int argc, char *argv[]);
74 extern int luaopen_tex(lua_State * L);
75 extern int luaopen_pdf(lua_State * L);
76 extern int luaopen_texio(lua_State * L);
77 extern int luaopen_lang(lua_State * L);
79 # define LUA_TEXFILEHANDLE "TEXFILE*"
81 extern lua_State *luatex_error(lua_State * L, int fatal);
83 extern int luaopen_unicode(lua_State * L);
84 extern int luaopen_zip(lua_State * L);
85 extern int luaopen_lfs(lua_State * L);
86 extern int luaopen_lpeg(lua_State * L);
87 extern int luaopen_md5(lua_State * L);
88 extern int luatex_md5_lua_open(lua_State * L);
90 extern int luaopen_zlib(lua_State * L);
91 extern int luaopen_gzip(lua_State * L);
92 extern int luaopen_ff(lua_State * L);
93 extern int luaopen_profiler(lua_State * L);
95 extern int luaopen_socket_core(lua_State * L);
96 extern int luaopen_mime_core(lua_State * L);
97 extern void luatex_socketlua_open(lua_State * L);
99 extern int luaopen_img(lua_State * L);
100 extern int l_new_image(lua_State * L);
101 extern int luaopen_epdf(lua_State * L);
102 extern int luaopen_pdfscanner(lua_State * L);
103 extern int luaopen_mplib(lua_State * L);
105 extern void open_oslibext(lua_State * L, int safer_option);
106 extern int open_iolibext(lua_State * L);
107 extern void open_strlibext(lua_State * L);
108 extern void open_lfslibext(lua_State * L);
110 extern void initfilecallbackids(int max);
111 extern void setinputfilecallbackid(int n, int i);
112 extern void setreadfilecallbackid(int n, int i);
113 extern int getinputfilecallbackid(int n);
114 extern int getreadfilecallbackid(int n);
116 extern void lua_initialize(int ac, char **av);
118 extern int luaopen_kpse(lua_State * L);
120 extern int luaopen_callback(lua_State * L);
122 extern int luaopen_lua(lua_State * L, char *fname);
124 extern int luaopen_stats(lua_State * L);
126 extern int luaopen_font(lua_State * L);
127 extern int luaopen_vf(lua_State * L);
128 extern int font_to_lua(lua_State * L, int f);
129 extern int font_from_lua(lua_State * L, int f); /* return is boolean */
131 extern int luaopen_token(lua_State * L);
132 extern void tokenlist_to_lua(lua_State * L, int p);
133 extern void tokenlist_to_luastring(lua_State * L, int p);
134 extern int tokenlist_from_lua(lua_State * L);
136 extern void lua_nodelib_push(lua_State * L);
137 extern int nodelib_getdir(lua_State * L, int n, int absolute_only);
138 extern int nodelib_getlist(lua_State * L, int n);
140 extern int luaopen_node(lua_State * L);
141 extern void nodelist_to_lua(lua_State * L, int n);
142 extern int nodelist_from_lua(lua_State * L);
144 extern int dimen_to_number(lua_State * L, const char *s);
146 extern int get_command_id(const char *s);
148 extern void dump_luac_registers(void);
150 extern void undump_luac_registers(void);
152 extern int lua_only;
153 #ifdef LuajitTeX
154 extern int luajiton;
155 extern char *jithash_hashname ;
156 #endif
158 #if !defined(LUAI_HASHLIMIT)
159 #define LUAI_HASHLIMIT 5
160 #endif
161 extern unsigned char show_luahashchars ;
163 extern void unhide_lua_table(lua_State * lua, const char *name, int r);
164 extern int hide_lua_table(lua_State * lua, const char *name);
166 extern void unhide_lua_value(lua_State * lua, const char *name, const char *item, int r);
167 extern int hide_lua_value(lua_State * lua, const char *name, const char *item);
169 typedef struct command_item_ {
170 const char *cmd_name;
171 int command_offset;
172 const char **commands;
173 } command_item;
175 extern command_item command_names[];
176 extern int callback_callbacks_id;
178 extern void luainterpreter(void);
180 extern int luabytecode_max;
181 extern unsigned int luabytecode_bytes;
182 extern int luastate_bytes;
184 extern int callback_count;
185 extern int saved_callback_count;
187 extern const char *luatex_banner;
189 /* luastuff.h */
191 typedef struct {
192 const char *name; /* parameter name */
193 int idx; /* index within img_parms array */
194 } parm_struct;
196 extern void preset_environment(lua_State * L, const parm_struct * p, const char *s);
198 extern char *startup_filename;
199 extern int safer_option;
200 extern int nosocket_option;
202 extern char *last_source_name;
203 extern int last_lineno;
205 extern int program_name_set; /* in lkpselib.c */
207 /* for topenin() */
208 extern char **argv;
209 extern int argc;
211 extern int loader_C_luatex(lua_State * L, const char *name, const char *filename);
212 extern int loader_Call_luatex(lua_State * L, const char *name, const char *filename);
214 extern void init_tex_table(lua_State * L);
216 extern int tex_table_id;
217 extern int pdf_table_id;
218 extern int token_table_id;
219 extern int node_table_id;
220 extern int main_initialize(void);
222 extern int do_run_callback(int special, const char *values, va_list vl);
223 extern int lua_traceback(lua_State * L);
225 extern int luainit;
227 extern char *luanames[];
229 extern int ff_get_ttc_index(char *ffname, char *psname); /* luafontloader/src/luafflib.c */
230 extern int ff_createcff(char *, unsigned char **, int *); /* luafontloader/src/luafflib.c */
232 extern char *FindResourceTtfFont(char *filename, char *fontname); /* luafontloader/fontforge/fontforge/macbinary.c */
234 extern char charsetstr[]; /* from mpdir/psout.w */
236 #ifndef WIN32
237 extern char **environ;
238 #endif
240 #ifdef __cplusplus
242 #endif
244 extern int luatwrite(lua_State * L);
247 Same as in lnodelib.c, but with prefix G_ for now.
248 These macros create and access pointers (indices) to keys which is faster. The
249 shortcuts are created as part of the initialization.
253 #define init_lua_key(a) do { \
254 lua_pushliteral(Luas,#a); \
255 luaS_##a##_ptr = lua_tostring(Luas,-1); \
256 luaS_##a##_index = luaL_ref (Luas,LUA_REGISTRYINDEX); \
257 } while (0)
259 #define init_lua_key_alias(a,b) do { \
260 lua_pushliteral(Luas,b); \
261 luaS_##a##_ptr = lua_tostring(Luas,-1); \
262 luaS_##a##_index = luaL_ref (Luas,LUA_REGISTRYINDEX); \
263 } while (0)
265 #define make_lua_key(a) \
266 int luaS_##a##_index = 0; \
267 const char * luaS_##a##_ptr = NULL
269 #define lua_key_eq(a,b) (a==luaS_##b##_ptr)
271 #define lua_key_index(a) luaS_##a##_index
272 #define lua_key(a) luaS_##a##_ptr
273 #define lua_key_plus(a) luaS_p##a##_ptr
274 #define lua_key_minus(a) luaS_m##a##_ptr
275 #define use_lua_key(a) \
276 extern int luaS_##a##_index ; \
277 extern const char * luaS_##a##_ptr
279 #define lua_key_rawgeti(a) \
280 lua_rawgeti(L, LUA_REGISTRYINDEX, luaS_##a##_index);\
281 lua_rawget(L, -2)
283 #define lua_key_direct_rawgeti(i) \
284 lua_rawgeti(L, LUA_REGISTRYINDEX, i);\
285 lua_rawget(L, -2)
287 #define lua_key_rawgeti_n(a,n) \
288 lua_rawgeti(L, LUA_REGISTRYINDEX, luaS_##a##_index);\
289 lua_rawget(L, -1+n)
291 #define lua_key_direct_rawget_n(i,n) \
292 lua_rawgeti(L, LUA_REGISTRYINDEX, i);\
293 lua_rawget(L, -1+n)
295 #define lua_push_key(a) \
296 lua_rawgeti(L, LUA_REGISTRYINDEX, luaS_##a##_index);
298 #define lua_get_metatablelua_l(L,a) do { \
299 lua_rawgeti(L, LUA_REGISTRYINDEX, luaS_##a##_index); \
300 lua_gettable(L, LUA_REGISTRYINDEX); \
301 } while (0)
303 #define lua_get_metatablelua(a) lua_get_metatablelua_l(L,a)
306 Unfortunately floor is already redefined as
307 #define floor ((integer)floor((double)(a)))
309 #define lua_uroundnumber(a,b) (unsigned int)floor((double)(lua_tonumber(a,b)+0.5))
310 is useless.
313 #define lua_roundnumber(a,b) (int)floor((double)lua_tonumber(a,b)+0.5)
314 #define lua_uroundnumber(a,b) (unsigned int)((double)(lua_tonumber(a,b)+0.5))
315 extern int lua_numeric_field_by_index(lua_State *, int , int);
316 extern unsigned int lua_unsigned_numeric_field_by_index(lua_State *, int , int);
318 /* Currently we sometimes use numbers and sometimes strings in node properties. We can
319 make that consistent by having a check on number and if not then assign a string. The
320 strings are prehashed and we make a bunch of lua tables that have these values. We can
321 preassign these at startup time. */
323 /* no need for L state argument */
325 #define PACK_TYPE_SIZE 4
326 #define GROUP_CODE_SIZE 23
327 #define LOCAL_PAR_SIZE 5
328 #define MATH_STYLE_NAME_SIZE 8
329 #define APPEND_LIST_SIZE 5
330 #define DIR_PAR_SIZE 8
331 #define DIR_TEXT_SIZE 8
333 extern int l_pack_type_index [PACK_TYPE_SIZE];
334 extern int l_group_code_index [GROUP_CODE_SIZE];
335 extern int l_local_par_index [LOCAL_PAR_SIZE];
336 extern int l_math_style_name_index [MATH_STYLE_NAME_SIZE];
337 extern int l_dir_par_index [DIR_PAR_SIZE];
338 extern int l_dir_text_index [DIR_TEXT_SIZE];
340 #define lua_push_pack_type(L,pack_type) lua_rawgeti(L, LUA_REGISTRYINDEX, l_pack_type_index[pack_type] );
341 #define lua_push_group_code(L,group_code) lua_rawgeti(L, LUA_REGISTRYINDEX, l_group_code_index[group_code]);
342 #define lua_push_local_par_mode(L,par_mode) lua_rawgeti(L, LUA_REGISTRYINDEX, l_local_par_index[par_mode]);
343 #define lua_push_math_style_name(L,style_name) lua_rawgeti(L, LUA_REGISTRYINDEX, l_math_style_name_index[style_name]);
344 #define lua_push_dir_par(L,dir) lua_rawgeti(L, LUA_REGISTRYINDEX, l_dir_par_index[dir+dir_swap])
345 #define lua_push_dir_text(L,dir) lua_rawgeti(L, LUA_REGISTRYINDEX, l_dir_text_index[dir+dir_swap])
347 #define lua_push_string_by_index(L,index) lua_rawgeti(L, LUA_REGISTRYINDEX, index)
348 #define lua_push_string_by_name(L,index) lua_rawgeti(L, LUA_REGISTRYINDEX, lua_key_index(index))
350 #define set_l_pack_type_index \
351 l_pack_type_index[0] = lua_key_index(exactly); \
352 l_pack_type_index[1] = lua_key_index(additional); \
353 l_pack_type_index[2] = lua_key_index(cal_expand_ratio);\
354 l_pack_type_index[3] = lua_key_index(subst_ex_font);
356 #define set_l_group_code_index \
357 l_group_code_index[0] = lua_key_index(empty_string);\
358 l_group_code_index[1] = lua_key_index(simple);\
359 l_group_code_index[2] = lua_key_index(hbox);\
360 l_group_code_index[3] = lua_key_index(adjusted_hbox);\
361 l_group_code_index[4] = lua_key_index(vbox);\
362 l_group_code_index[5] = lua_key_index(vtop);\
363 l_group_code_index[6] = lua_key_index(align);\
364 l_group_code_index[7] = lua_key_index(no_align);\
365 l_group_code_index[8] = lua_key_index(output);\
366 l_group_code_index[9] = lua_key_index(math);\
367 l_group_code_index[10] = lua_key_index(disc);\
368 l_group_code_index[11] = lua_key_index(insert);\
369 l_group_code_index[12] = lua_key_index(vcenter);\
370 l_group_code_index[13] = lua_key_index(math_choice);\
371 l_group_code_index[14] = lua_key_index(semi_simple);\
372 l_group_code_index[15] = lua_key_index(math_shift);\
373 l_group_code_index[16] = lua_key_index(math_left);\
374 l_group_code_index[17] = lua_key_index(local_box);\
375 l_group_code_index[18] = lua_key_index(split_off);\
376 l_group_code_index[19] = lua_key_index(split_keep);\
377 l_group_code_index[20] = lua_key_index(preamble);\
378 l_group_code_index[21] = lua_key_index(align_set);\
379 l_group_code_index[22] = lua_key_index(fin_row)
381 #define set_l_local_par_index \
382 l_local_par_index[0] = lua_key_index(new_graf);\
383 l_local_par_index[1] = lua_key_index(local_box);\
384 l_local_par_index[2] = lua_key_index(hmode_par);\
385 l_local_par_index[3] = lua_key_index(penalty);\
386 l_local_par_index[4] = lua_key_index(math);
388 #define set_l_math_style_name_index \
389 l_math_style_name_index[0] = lua_key_index(display);\
390 l_math_style_name_index[1] = lua_key_index(crampeddisplay);\
391 l_math_style_name_index[2] = lua_key_index(text);\
392 l_math_style_name_index[3] = lua_key_index(crampedtext);\
393 l_math_style_name_index[4] = lua_key_index(script);\
394 l_math_style_name_index[5] = lua_key_index(crampedscript);\
395 l_math_style_name_index[6] = lua_key_index(scriptscript);\
396 l_math_style_name_index[7] = lua_key_index(crampedscriptscript)
398 #define set_l_dir_par_index \
399 l_dir_par_index[0] = lua_key_index(TLT);\
400 l_dir_par_index[1] = lua_key_index(TRT);\
401 l_dir_par_index[2] = lua_key_index(LTL);\
402 l_dir_par_index[3] = lua_key_index(RTT);\
403 l_dir_par_index[4] = lua_key_index(TLT);\
404 l_dir_par_index[5] = lua_key_index(TRT);\
405 l_dir_par_index[6] = lua_key_index(LTL);\
406 l_dir_par_index[7] = lua_key_index(RTT);\
408 #define set_l_dir_text_index \
409 l_dir_text_index[0] = lua_key_index(mTLT);\
410 l_dir_text_index[1] = lua_key_index(mTRT);\
411 l_dir_text_index[2] = lua_key_index(mLTL);\
412 l_dir_text_index[3] = lua_key_index(mRTT);\
413 l_dir_text_index[4] = lua_key_index(pTLT);\
414 l_dir_text_index[5] = lua_key_index(pTRT);\
415 l_dir_text_index[6] = lua_key_index(pLTL);\
416 l_dir_text_index[7] = lua_key_index(pRTT);\
418 #define img_parms_max 25
419 #define img_pageboxes_max 6
421 extern int img_parms [img_parms_max];
422 extern int img_pageboxes [img_pageboxes_max];
424 # define set_l_img_keys_index \
425 img_parms[ 0] = lua_key_index(attr); \
426 img_parms[ 1] = lua_key_index(bbox); \
427 img_parms[ 2] = lua_key_index(colordepth); \
428 img_parms[ 3] = lua_key_index(colorspace); \
429 img_parms[ 4] = lua_key_index(depth); \
430 img_parms[ 5] = lua_key_index(filename); \
431 img_parms[ 6] = lua_key_index(filepath); \
432 img_parms[ 7] = lua_key_index(height); \
433 img_parms[ 8] = lua_key_index(imagetype); \
434 img_parms[ 9] = lua_key_index(index); \
435 img_parms[10] = lua_key_index(keepopen); \
436 img_parms[11] = lua_key_index(objnum); \
437 img_parms[12] = lua_key_index(pagebox); \
438 img_parms[13] = lua_key_index(page); \
439 img_parms[14] = lua_key_index(pages); \
440 img_parms[15] = lua_key_index(ref_count); \
441 img_parms[16] = lua_key_index(rotation); \
442 img_parms[17] = lua_key_index(stream); \
443 img_parms[18] = lua_key_index(transform); \
444 img_parms[19] = lua_key_index(visiblefilename); \
445 img_parms[20] = lua_key_index(width); \
446 img_parms[21] = lua_key_index(xres); \
447 img_parms[22] = lua_key_index(xsize); \
448 img_parms[23] = lua_key_index(yres); \
449 img_parms[24] = lua_key_index(ysize); \
451 # define set_l_img_pageboxes_index \
452 img_pageboxes[0] = lua_key_index(none); \
453 img_pageboxes[1] = lua_key_index(media); \
454 img_pageboxes[2] = lua_key_index(crop); \
455 img_pageboxes[3] = lua_key_index(bleed); \
456 img_pageboxes[4] = lua_key_index(trim); \
457 img_pageboxes[5] = lua_key_index(art); \
459 #define lua_push_img_key(L,key) lua_rawgeti(L, LUA_REGISTRYINDEX, img_parms[key] );
460 #define lua_push_img_pagebox(L,box) lua_rawgeti(L, LUA_REGISTRYINDEX, img_pageboxes[box]);
462 extern int lua_show_valid_list(lua_State *L, const char **list, int max);
463 extern int lua_show_valid_keys(lua_State *L, int *list, int max);
465 #define set_make_keys \
466 make_lua_key(cmdname);make_lua_key(expandable);make_lua_key(protected);\
467 make_lua_key(LTL);\
468 make_lua_key(MathConstants);\
469 make_lua_key(RTT);\
470 make_lua_key(TLT);\
471 make_lua_key(TRT);\
472 make_lua_key(accent);\
473 make_lua_key(action);\
474 make_lua_key(action_id);\
475 make_lua_key(action_type);\
476 make_lua_key(active);\
477 make_lua_key(additional);\
478 make_lua_key(adjdemerits);\
479 make_lua_key(adjust);\
480 make_lua_key(adjust_head);\
481 make_lua_key(adjusted_hbox);\
482 make_lua_key(adjustspacing);\
483 make_lua_key(advance);\
484 make_lua_key(after_display);\
485 make_lua_key(after_output);\
486 make_lua_key(align);\
487 make_lua_key(align_head);\
488 make_lua_key(align_set);\
489 make_lua_key(alignment);\
490 make_lua_key(annot);\
491 make_lua_key(area);\
492 make_lua_key(art);\
493 make_lua_key(attr);\
494 make_lua_key(attributes);\
495 make_lua_key(auto_expand);\
496 make_lua_key(bbox);\
497 make_lua_key(before_display);\
498 make_lua_key(best_ins_ptr);\
499 make_lua_key(best_page_break);\
500 make_lua_key(best_size);\
501 make_lua_key(bleed);\
502 make_lua_key(bot);\
503 make_lua_key(bot_accent);\
504 make_lua_key(bottom_left);\
505 make_lua_key(bottom_right);\
506 make_lua_key(boundary);\
507 make_lua_key(box);\
508 make_lua_key(box_left);\
509 make_lua_key(box_left_width);\
510 make_lua_key(box_right);\
511 make_lua_key(box_right_width);\
512 make_lua_key(broken_ins);\
513 make_lua_key(broken_ptr);\
514 make_lua_key(brokenpenalty);\
515 make_lua_key(cache);\
516 make_lua_key(cal_expand_ratio);\
517 make_lua_key(catalog);\
518 make_lua_key(char);\
519 make_lua_key(characters);\
520 make_lua_key(checksum);\
521 make_lua_key(cidinfo);\
522 make_lua_key(class);\
523 make_lua_key(clubpenalty);\
524 make_lua_key(colordepth);\
525 make_lua_key(colorspace);\
526 make_lua_key(command);\
527 make_lua_key(commands);\
528 make_lua_key(comment);\
529 make_lua_key(components);\
530 make_lua_key(compresslevel);\
531 make_lua_key(contrib_head);\
532 make_lua_key(core);\
533 make_lua_key(cost);\
534 make_lua_key(count);\
535 make_lua_key(crampeddisplay);\
536 make_lua_key(crampedscript);\
537 make_lua_key(crampedscriptscript);\
538 make_lua_key(crampedtext);\
539 make_lua_key(crop);\
540 make_lua_key(csname);\
541 make_lua_key(data);\
542 make_lua_key(degree);\
543 make_lua_key(delim);\
544 make_lua_key(delimptr);\
545 make_lua_key(demerits);\
546 make_lua_key(denom);\
547 make_lua_key(depth);\
548 make_lua_key(designsize);\
549 make_lua_key(dest_id);\
550 make_lua_key(dest_type);\
551 make_lua_key(dir);\
552 make_lua_key(dir_h);\
553 make_lua_key(direct);\
554 make_lua_key(direction);\
555 make_lua_key(dirs);\
556 make_lua_key(disc);\
557 make_lua_key(display);\
558 make_lua_key(doublehyphendemerits);\
559 make_lua_key(down);\
560 make_lua_key(embedding);\
561 make_lua_key(emergencystretch);\
562 make_lua_key(empty_string);\
563 make_lua_key(encodingbytes);\
564 make_lua_key(encodingname);\
565 make_lua_key(end);\
566 make_lua_key(etex);\
567 make_lua_key(equation);\
568 make_lua_key(equation_number);\
569 make_lua_key(exactly);\
570 make_lua_key(expansion_factor);\
571 make_lua_key(ext);\
572 make_lua_key(extend);\
573 make_lua_key(extender);\
574 make_lua_key(extensible);\
575 make_lua_key(extra_space);\
576 make_lua_key(fam);\
577 make_lua_key(fast);\
578 make_lua_key(fence);\
579 make_lua_key(file);\
580 make_lua_key(filename);\
581 make_lua_key(filepath);\
582 make_lua_key(fill);\
583 make_lua_key(fin_row);\
584 make_lua_key(finalhyphendemerits);\
585 make_lua_key(font);\
586 make_lua_key(fonts);\
587 make_lua_key(format);\
588 make_lua_key(fullname);\
589 make_lua_key(global);\
590 make_lua_key(glue);\
591 make_lua_key(glue_order);\
592 make_lua_key(glue_set);\
593 make_lua_key(glue_sign);\
594 make_lua_key(glyph);\
595 make_lua_key(h);\
596 make_lua_key(hangafter);\
597 make_lua_key(hangindent);\
598 make_lua_key(hbox);\
599 make_lua_key(head);\
600 make_lua_key(height);\
601 make_lua_key(hlist);\
602 make_lua_key(hmode_par);\
603 make_lua_key(hold_head);\
604 make_lua_key(horiz_variants);\
605 make_lua_key(hsize);\
606 make_lua_key(hyphenchar);\
607 make_lua_key(id);\
608 make_lua_key(image);\
609 make_lua_key(imagetype);\
610 make_lua_key(immediate);\
611 make_lua_key(index);\
612 make_lua_key(info);\
613 make_lua_key(insert);\
614 make_lua_key(interlinepenalty);\
615 make_lua_key(italic);\
616 make_lua_key(keepopen);\
617 make_lua_key(kern);\
618 make_lua_key(kerns);\
619 make_lua_key(lang);\
620 make_lua_key(large_char);\
621 make_lua_key(large_fam);\
622 make_lua_key(last_ins_ptr);\
623 make_lua_key(lastlinefit);\
624 make_lua_key(leader);\
625 make_lua_key(least_page_cost);\
626 make_lua_key(left);\
627 make_lua_key(left_boundary);\
628 make_lua_key(left_protruding);\
629 make_lua_key(leftskip);\
630 make_lua_key(level);\
631 make_lua_key(ligatures);\
632 make_lua_key(linepenalty);\
633 make_lua_key(link_attr);\
634 make_lua_key(list);\
635 make_lua_key(local_box);\
636 make_lua_key(log);\
637 make_lua_key(looseness);\
638 make_lua_key(lua);\
639 make_lua_key(lua_bytecodes_indirect);\
640 make_lua_key(lua_functions);\
641 make_lua_key(luatex);\
642 make_lua_key(luatex_node);\
643 make_lua_key(luatex_token);\
644 make_lua_key(mLTL);\
645 make_lua_key(mRTT);\
646 make_lua_key(mTLT);\
647 make_lua_key(mTRT);\
648 make_lua_key(marginkern);\
649 make_lua_key(mark);\
650 make_lua_key(math);\
651 make_lua_key(math_choice);\
652 make_lua_key(math_left);\
653 make_lua_key(math_shift);\
654 make_lua_key(mathdir);\
655 make_lua_key(mathkern);\
656 make_lua_key(mathstyle);\
657 make_lua_key(media);\
658 make_lua_key(mid);\
659 make_lua_key(mode);\
660 make_lua_key(modeline);\
661 make_lua_key(name);\
662 make_lua_key(named_id);\
663 make_lua_key(names);\
664 make_lua_key(new_graf);\
665 make_lua_key(new_window);\
666 make_lua_key(next);\
667 make_lua_key(no);\
668 make_lua_key(no_align);\
669 make_lua_key(noad);\
670 make_lua_key(node);\
671 make_lua_key(node_properties);\
672 make_lua_key(node_properties_indirect);\
673 make_lua_key(nomath);\
674 make_lua_key(none);\
675 make_lua_key(nop);\
676 make_lua_key(nucleus);\
677 make_lua_key(num);\
678 make_lua_key(number);\
679 make_lua_key(objcompression);\
680 make_lua_key(objnum);\
681 make_lua_key(oldmath);\
682 make_lua_key(ordering);\
683 make_lua_key(origin);\
684 make_lua_key(output);\
685 make_lua_key(overlay_accent);\
686 make_lua_key(pLTL);\
687 make_lua_key(pRTT);\
688 make_lua_key(pTLT);\
689 make_lua_key(pTRT);\
690 make_lua_key(page);\
691 make_lua_key(pages);\
692 make_lua_key(page_discards_head);\
693 make_lua_key(page_head);\
694 make_lua_key(page_ins_head);\
695 make_lua_key(pageattributes);\
696 make_lua_key(pagebox);\
697 make_lua_key(pageresources);\
698 make_lua_key(pagesattributes);\
699 make_lua_key(parameters);\
700 make_lua_key(pardir);\
701 make_lua_key(parshape);\
702 make_lua_key(pdf_data);\
703 make_lua_key(pdf_destination);\
704 make_lua_key(pdf_literal);\
705 make_lua_key(pen_broken);\
706 make_lua_key(pen_inter);\
707 make_lua_key(penalty);\
708 make_lua_key(pop);\
709 make_lua_key(post);\
710 make_lua_key(post_linebreak);\
711 make_lua_key(pre);\
712 make_lua_key(pre_adjust);\
713 make_lua_key(pre_adjust_head);\
714 make_lua_key(pre_align);\
715 make_lua_key(pre_box);\
716 make_lua_key(preamble);\
717 make_lua_key(pretolerance);\
718 make_lua_key(prev);\
719 make_lua_key(prevdepth);\
720 make_lua_key(prevgraf);\
721 make_lua_key(protrudechars);\
722 make_lua_key(psname);\
723 make_lua_key(ptr);\
724 make_lua_key(push);\
725 make_lua_key(quad);\
726 make_lua_key(radical);\
727 make_lua_key(raw);\
728 make_lua_key(ref_count);\
729 make_lua_key(reg);\
730 make_lua_key(registry);\
731 make_lua_key(renew);\
732 make_lua_key(rep);\
733 make_lua_key(replace);\
734 make_lua_key(resources);\
735 make_lua_key(right);\
736 make_lua_key(right_boundary);\
737 make_lua_key(right_protruding);\
738 make_lua_key(rightskip);\
739 make_lua_key(rotation);\
740 make_lua_key(rule);\
741 make_lua_key(scale);\
742 make_lua_key(script);\
743 make_lua_key(scriptscript);\
744 make_lua_key(semi_simple);\
745 make_lua_key(shift);\
746 make_lua_key(shrink);\
747 make_lua_key(shrink_order);\
748 make_lua_key(simple);\
749 make_lua_key(size);\
750 make_lua_key(skewchar);\
751 make_lua_key(slant);\
752 make_lua_key(slot);\
753 make_lua_key(small_char);\
754 make_lua_key(small_fam);\
755 make_lua_key(space);\
756 make_lua_key(space_shrink);\
757 make_lua_key(space_stretch);\
758 make_lua_key(spacefactor);\
759 make_lua_key(special);\
760 make_lua_key(split_discards_head);\
761 make_lua_key(split_keep);\
762 make_lua_key(split_off);\
763 make_lua_key(stack);\
764 make_lua_key(start);\
765 make_lua_key(step);\
766 make_lua_key(stream);\
767 make_lua_key(streamfile);\
768 make_lua_key(stretch);\
769 make_lua_key(stretch_order);\
770 make_lua_key(string);\
771 make_lua_key(style);\
772 make_lua_key(sub);\
773 make_lua_key(subst_ex_font);\
774 make_lua_key(subtype);\
775 make_lua_key(sup);\
776 make_lua_key(supplement);\
777 make_lua_key(surround);\
778 make_lua_key(tail);\
779 make_lua_key(temp_head);\
780 make_lua_key(term);\
781 make_lua_key(term_and_log);\
782 make_lua_key(tex);\
783 make_lua_key(text);\
784 make_lua_key(thread_attr);\
785 make_lua_key(thread_id);\
786 make_lua_key(tolerance);\
787 make_lua_key(tok);\
788 make_lua_key(token);\
789 make_lua_key(top);\
790 make_lua_key(top_accent);\
791 make_lua_key(top_left);\
792 make_lua_key(top_right);\
793 make_lua_key(tounicode);\
794 make_lua_key(tracingparagraphs);\
795 make_lua_key(trailer);\
796 make_lua_key(trailerid);\
797 make_lua_key(transform);\
798 make_lua_key(trim);\
799 make_lua_key(type);\
800 make_lua_key(uchyph);\
801 make_lua_key(units_per_em);\
802 make_lua_key(used);\
803 make_lua_key(user_id);\
804 make_lua_key(v);\
805 make_lua_key(value);\
806 make_lua_key(vbox);\
807 make_lua_key(vcenter);\
808 make_lua_key(version);\
809 make_lua_key(vert_italic);\
810 make_lua_key(vert_variants);\
811 make_lua_key(vmode_par);\
812 make_lua_key(visiblefilename);\
813 make_lua_key(vlist);\
814 make_lua_key(vtop);\
815 make_lua_key(widowpenalty);\
816 make_lua_key(width);\
817 make_lua_key(x_height);\
818 make_lua_key(xadvance);\
819 make_lua_key(xformresources);\
820 make_lua_key(xformattributes);\
821 make_lua_key(xoffset);\
822 make_lua_key(xres);\
823 make_lua_key(xsize);\
824 make_lua_key(xyz_zoom);\
825 make_lua_key(yoffset); \
826 make_lua_key(yres); \
827 make_lua_key(ysize)
829 #define set_init_keys \
830 init_lua_key(cmdname);init_lua_key(expandable);init_lua_key(protected);\
831 init_lua_key(LTL);\
832 init_lua_key(MathConstants);\
833 init_lua_key(RTT);\
834 init_lua_key(TLT);\
835 init_lua_key(TRT);\
836 init_lua_key(accent);\
837 init_lua_key(action);\
838 init_lua_key(action_id);\
839 init_lua_key(action_type);\
840 init_lua_key(active);\
841 init_lua_key(additional);\
842 init_lua_key(adjdemerits);\
843 init_lua_key(adjust);\
844 init_lua_key(adjust_head);\
845 init_lua_key(adjusted_hbox);\
846 init_lua_key(adjustspacing);\
847 init_lua_key(advance);\
848 init_lua_key(after_display);\
849 init_lua_key(after_output);\
850 init_lua_key(align);\
851 init_lua_key(align_head);\
852 init_lua_key(align_set);\
853 init_lua_key(alignment);\
854 init_lua_key(annot);\
855 init_lua_key(area);\
856 init_lua_key(art);\
857 init_lua_key(attr);\
858 init_lua_key(attributes);\
859 init_lua_key(auto_expand);\
860 init_lua_key(bbox);\
861 init_lua_key(before_display);\
862 init_lua_key(best_ins_ptr);\
863 init_lua_key(best_page_break);\
864 init_lua_key(best_size);\
865 init_lua_key(bleed);\
866 init_lua_key(bot);\
867 init_lua_key(bot_accent);\
868 init_lua_key(bottom_left);\
869 init_lua_key(bottom_right);\
870 init_lua_key(boundary);\
871 init_lua_key(box);\
872 init_lua_key(box_left);\
873 init_lua_key(box_left_width);\
874 init_lua_key(box_right);\
875 init_lua_key(box_right_width);\
876 init_lua_key(broken_ins);\
877 init_lua_key(broken_ptr);\
878 init_lua_key(brokenpenalty);\
879 init_lua_key(cache);\
880 init_lua_key(cal_expand_ratio);\
881 init_lua_key(catalog);\
882 init_lua_key(char);\
883 init_lua_key(characters);\
884 init_lua_key(checksum);\
885 init_lua_key(cidinfo);\
886 init_lua_key(class);\
887 init_lua_key(clubpenalty);\
888 init_lua_key(colordepth);\
889 init_lua_key(colorspace);\
890 init_lua_key(command);\
891 init_lua_key(commands);\
892 init_lua_key(comment);\
893 init_lua_key(components);\
894 init_lua_key(compresslevel);\
895 init_lua_key(contrib_head);\
896 init_lua_key(core);\
897 init_lua_key(cost);\
898 init_lua_key(count);\
899 init_lua_key(crampeddisplay);\
900 init_lua_key(crampedscript);\
901 init_lua_key(crampedscriptscript);\
902 init_lua_key(crampedtext);\
903 init_lua_key(crop);\
904 init_lua_key(csname);\
905 init_lua_key(data);\
906 init_lua_key(degree);\
907 init_lua_key(delim);\
908 init_lua_key(delimptr);\
909 init_lua_key(demerits);\
910 init_lua_key(denom);\
911 init_lua_key(depth);\
912 init_lua_key(designsize);\
913 init_lua_key(dest_id);\
914 init_lua_key(dest_type);\
915 init_lua_key(dir);\
916 init_lua_key(dir_h);\
917 init_lua_key(direct);\
918 init_lua_key(direction);\
919 init_lua_key(dirs);\
920 init_lua_key(disc);\
921 init_lua_key(display);\
922 init_lua_key(doublehyphendemerits);\
923 init_lua_key(down);\
924 init_lua_key(embedding);\
925 init_lua_key(emergencystretch);\
926 init_lua_key(encodingbytes);\
927 init_lua_key(encodingname);\
928 init_lua_key(end);\
929 init_lua_key(etex);\
930 init_lua_key(equation);\
931 init_lua_key(equation_number);\
932 init_lua_key(exactly);\
933 init_lua_key(expansion_factor);\
934 init_lua_key(ext);\
935 init_lua_key(extend);\
936 init_lua_key(extender);\
937 init_lua_key(extensible);\
938 init_lua_key(extra_space);\
939 init_lua_key(fam);\
940 init_lua_key(fast);\
941 init_lua_key(fence);\
942 init_lua_key(file);\
943 init_lua_key(filename);\
944 init_lua_key(filepath);\
945 init_lua_key(fill);\
946 init_lua_key(fin_row);\
947 init_lua_key(finalhyphendemerits);\
948 init_lua_key(font);\
949 init_lua_key(fonts);\
950 init_lua_key(format);\
951 init_lua_key(fullname);\
952 init_lua_key(global);\
953 init_lua_key(glue);\
954 init_lua_key(glue_order);\
955 init_lua_key(glue_set);\
956 init_lua_key(glue_sign);\
957 init_lua_key(glyph);\
958 init_lua_key(h);\
959 init_lua_key(hangafter);\
960 init_lua_key(hangindent);\
961 init_lua_key(hbox);\
962 init_lua_key(head);\
963 init_lua_key(height);\
964 init_lua_key(hlist);\
965 init_lua_key(hmode_par);\
966 init_lua_key(hold_head);\
967 init_lua_key(horiz_variants);\
968 init_lua_key(hsize);\
969 init_lua_key(hyphenchar);\
970 init_lua_key(id);\
971 init_lua_key(image);\
972 init_lua_key(imagetype);\
973 init_lua_key(immediate);\
974 init_lua_key(index);\
975 init_lua_key(info);\
976 init_lua_key(insert);\
977 init_lua_key(interlinepenalty);\
978 init_lua_key(italic);\
979 init_lua_key(keepopen);\
980 init_lua_key(kern);\
981 init_lua_key(kerns);\
982 init_lua_key(lang);\
983 init_lua_key(large_char);\
984 init_lua_key(large_fam);\
985 init_lua_key(last_ins_ptr);\
986 init_lua_key(lastlinefit);\
987 init_lua_key(leftskip);\
988 init_lua_key(leader);\
989 init_lua_key(least_page_cost);\
990 init_lua_key(left);\
991 init_lua_key(left_boundary);\
992 init_lua_key(left_protruding);\
993 init_lua_key(leftskip);\
994 init_lua_key(level);\
995 init_lua_key(ligatures);\
996 init_lua_key(leftskip);\
997 init_lua_key(linepenalty);\
998 init_lua_key(link_attr);\
999 init_lua_key(list);\
1000 init_lua_key(local_box);\
1001 init_lua_key(log);\
1002 init_lua_key(looseness);\
1003 init_lua_key(lua);\
1004 init_lua_key(lua_bytecodes_indirect);\
1005 init_lua_key(lua_functions);\
1006 init_lua_key(luatex);\
1007 init_lua_key(luatex_node);\
1008 init_lua_key(luatex_token);\
1009 init_lua_key(marginkern);\
1010 init_lua_key(mark);\
1011 init_lua_key(math);\
1012 init_lua_key(math_choice);\
1013 init_lua_key(math_left);\
1014 init_lua_key(math_shift);\
1015 init_lua_key(mathdir);\
1016 init_lua_key(mathkern);\
1017 init_lua_key(mathstyle);\
1018 init_lua_key(media);\
1019 init_lua_key(mid);\
1020 init_lua_key(mode);\
1021 init_lua_key(modeline);\
1022 init_lua_key(name);\
1023 init_lua_key(named_id);\
1024 init_lua_key(names);\
1025 init_lua_key(new_graf);\
1026 init_lua_key(new_window);\
1027 init_lua_key(next);\
1028 init_lua_key(no);\
1029 init_lua_key(no_align);\
1030 init_lua_key(noad);\
1031 init_lua_key(node);\
1032 init_lua_key(nomath);\
1033 init_lua_key(none);\
1034 init_lua_key(nop);\
1035 init_lua_key(nucleus);\
1036 init_lua_key(num);\
1037 init_lua_key(number);\
1038 init_lua_key(objcompression);\
1039 init_lua_key(objnum);\
1040 init_lua_key(oldmath);\
1041 init_lua_key(origin);\
1042 init_lua_key(ordering);\
1043 init_lua_key(output);\
1044 init_lua_key(overlay_accent);\
1045 init_lua_key(page);\
1046 init_lua_key(pages);\
1047 init_lua_key(page_discards_head);\
1048 init_lua_key(page_head);\
1049 init_lua_key(page_ins_head);\
1050 init_lua_key(pageattributes);\
1051 init_lua_key(pagebox);\
1052 init_lua_key(pageresources);\
1053 init_lua_key(pagesattributes);\
1054 init_lua_key(parameters);\
1055 init_lua_key(pardir);\
1056 init_lua_key(parshape);\
1057 init_lua_key(pdf_destination);\
1058 init_lua_key(pdf_literal);\
1059 init_lua_key(pen_broken);\
1060 init_lua_key(pen_inter);\
1061 init_lua_key(penalty);\
1062 init_lua_key(pop);\
1063 init_lua_key(post);\
1064 init_lua_key(post_linebreak);\
1065 init_lua_key(pre);\
1066 init_lua_key(pre_adjust);\
1067 init_lua_key(pre_adjust_head);\
1068 init_lua_key(pre_align);\
1069 init_lua_key(pre_box);\
1070 init_lua_key(preamble);\
1071 init_lua_key(pretolerance);\
1072 init_lua_key(prev);\
1073 init_lua_key(prevdepth);\
1074 init_lua_key(prevgraf);\
1075 init_lua_key(protrudechars);\
1076 init_lua_key(psname);\
1077 init_lua_key(ptr);\
1078 init_lua_key(push);\
1079 init_lua_key(quad);\
1080 init_lua_key(radical);\
1081 init_lua_key(raw);\
1082 init_lua_key(ref_count);\
1083 init_lua_key(reg);\
1084 init_lua_key(registry);\
1085 init_lua_key(renew);\
1086 init_lua_key(rep);\
1087 init_lua_key(replace);\
1088 init_lua_key(resources);\
1089 init_lua_key(right);\
1090 init_lua_key(right_boundary);\
1091 init_lua_key(right_protruding);\
1092 init_lua_key(rightskip);\
1093 init_lua_key(rotation);\
1094 init_lua_key(rule);\
1095 init_lua_key(scale);\
1096 init_lua_key(script);\
1097 init_lua_key(scriptscript);\
1098 init_lua_key(semi_simple);\
1099 init_lua_key(shift);\
1100 init_lua_key(shrink);\
1101 init_lua_key(shrink_order);\
1102 init_lua_key(simple);\
1103 init_lua_key(size);\
1104 init_lua_key(skewchar);\
1105 init_lua_key(slant);\
1106 init_lua_key(slot);\
1107 init_lua_key(small_char);\
1108 init_lua_key(small_fam);\
1109 init_lua_key(space);\
1110 init_lua_key(space_shrink);\
1111 init_lua_key(space_stretch);\
1112 init_lua_key(spacefactor);\
1113 init_lua_key(special);\
1114 init_lua_key(split_discards_head);\
1115 init_lua_key(split_keep);\
1116 init_lua_key(split_off);\
1117 init_lua_key(stack);\
1118 init_lua_key(start);\
1119 init_lua_key(step);\
1120 init_lua_key(stream);\
1121 init_lua_key(streamfile);\
1122 init_lua_key(stretch);\
1123 init_lua_key(stretch_order);\
1124 init_lua_key(string);\
1125 init_lua_key(style);\
1126 init_lua_key(sub);\
1127 init_lua_key(subst_ex_font);\
1128 init_lua_key(subtype);\
1129 init_lua_key(sup);\
1130 init_lua_key(supplement);\
1131 init_lua_key(surround);\
1132 init_lua_key(tail);\
1133 init_lua_key(temp_head);\
1134 init_lua_key(term);\
1135 init_lua_key(tex);\
1136 init_lua_key(text);\
1137 init_lua_key(thread_attr);\
1138 init_lua_key(thread_id);\
1139 init_lua_key(tolerance);\
1140 init_lua_key(tok);\
1141 init_lua_key(token);\
1142 init_lua_key(top);\
1143 init_lua_key(top_accent);\
1144 init_lua_key(top_left);\
1145 init_lua_key(top_right);\
1146 init_lua_key(tounicode);\
1147 init_lua_key(tracingparagraphs);\
1148 init_lua_key(trailer);\
1149 init_lua_key(trailerid);\
1150 init_lua_key(transform);\
1151 init_lua_key(trim);\
1152 init_lua_key(type);\
1153 init_lua_key(uchyph);\
1154 init_lua_key(units_per_em);\
1155 init_lua_key(used);\
1156 init_lua_key(user_id);\
1157 init_lua_key(v);\
1158 init_lua_key(value);\
1159 init_lua_key(vbox);\
1160 init_lua_key(vcenter);\
1161 init_lua_key(version);\
1162 init_lua_key(vert_italic);\
1163 init_lua_key(vert_variants);\
1164 init_lua_key(vmode_par);\
1165 init_lua_key(visiblefilename);\
1166 init_lua_key(vlist);\
1167 init_lua_key(vtop);\
1168 init_lua_key(widowpenalty);\
1169 init_lua_key(width);\
1170 init_lua_key(x_height);\
1171 init_lua_key(xadvance);\
1172 init_lua_key(xformresources);\
1173 init_lua_key(xformattributes);\
1174 init_lua_key(xoffset);\
1175 init_lua_key(xres);\
1176 init_lua_key(xsize);\
1177 init_lua_key(xyz_zoom);\
1178 init_lua_key(yoffset);\
1179 init_lua_key(yres);\
1180 init_lua_key(ysize);\
1181 init_lua_key_alias(empty_string,"");\
1182 init_lua_key_alias(lua_bytecodes_indirect,"lua.bytecodes.indirect");\
1183 init_lua_key_alias(lua_functions,"lua.functions");\
1184 init_lua_key_alias(luatex_node, "luatex.node");\
1185 init_lua_key_alias(mLTL,"-LTL");\
1186 init_lua_key_alias(mRTT,"-RTT");\
1187 init_lua_key_alias(mTLT,"-TLT");\
1188 init_lua_key_alias(mTRT,"-TRT");\
1189 init_lua_key_alias(node_properties,"node.properties");\
1190 init_lua_key_alias(node_properties_indirect,"node.properties.indirect");\
1191 init_lua_key_alias(pLTL,"+LTL");\
1192 init_lua_key_alias(pRTT,"+RTT");\
1193 init_lua_key_alias(pTLT,"+TLT");\
1194 init_lua_key_alias(pTRT,"+TRT");\
1195 init_lua_key_alias(pdf_data,"pdf.data");\
1196 init_lua_key_alias(term_and_log,"term and log")
1198 #define assign_math_style(L,n,target) do { \
1199 if (lua_type(L,n) == LUA_TNUMBER) { \
1200 /* new, often same as subtype anyway */ \
1201 target = lua_tointeger(L,n); \
1202 } else if (lua_type(L,n) == LUA_TSTRING) { \
1203 const char *s = lua_tostring(L, n); \
1204 if (lua_key_eq(s,display)) { \
1205 target = 0; \
1206 } else if (lua_key_eq(s,crampeddisplay)) { \
1207 target = 1; \
1208 } else if (lua_key_eq(s,text)) { \
1209 target = 2; \
1210 } else if (lua_key_eq(s,crampedtext)) { \
1211 target = 3; \
1212 } else if (lua_key_eq(s,script)) { \
1213 target = 4; \
1214 } else if (lua_key_eq(s,crampedscript)) { \
1215 target = 5; \
1216 } else if (lua_key_eq(s,scriptscript)) { \
1217 target = 6; \
1218 } else if (lua_key_eq(s,crampedscriptscript)) { \
1219 target = 7; \
1220 } else { \
1221 target = 2; \
1223 } else { \
1224 target = 2; /* text by default */ \
1226 } while(0)
1228 #ifdef __MINGW32__
1229 extern FILE *_cairo_win32_tmpfile( void );
1230 #define tmpfile() _cairo_win32_tmpfile()
1231 #endif /* __MINGW32__ */
1233 #endif /* LUATEX_API_H */
1235 /* */
1236 /* These keys have to available to different files */
1237 /* */
1239 use_lua_key(cmdname);use_lua_key(expandable);use_lua_key(protected);
1241 use_lua_key(LTL);
1242 use_lua_key(MathConstants);
1243 use_lua_key(RTT);
1244 use_lua_key(TLT);
1245 use_lua_key(TRT);
1246 use_lua_key(accent);
1247 use_lua_key(action);
1248 use_lua_key(action_id);
1249 use_lua_key(action_type);
1250 use_lua_key(active);
1251 use_lua_key(additional);
1252 use_lua_key(adjdemerits);
1253 use_lua_key(adjust);
1254 use_lua_key(adjust_head);
1255 use_lua_key(adjusted_hbox);
1256 use_lua_key(adjustspacing);
1257 use_lua_key(advance);
1258 use_lua_key(after_display);
1259 use_lua_key(after_output);
1260 use_lua_key(align);
1261 use_lua_key(align_head);
1262 use_lua_key(align_set);
1263 use_lua_key(alignment);
1264 use_lua_key(annot);
1265 use_lua_key(area);
1266 use_lua_key(art);
1267 use_lua_key(attr);
1268 use_lua_key(attributes);
1269 use_lua_key(auto_expand);
1270 use_lua_key(bbox);
1271 use_lua_key(before_display);
1272 use_lua_key(best_ins_ptr);
1273 use_lua_key(best_page_break);
1274 use_lua_key(best_size);
1275 use_lua_key(bleed);
1276 use_lua_key(bot);
1277 use_lua_key(bot_accent);
1278 use_lua_key(bottom_left);
1279 use_lua_key(bottom_right);
1280 use_lua_key(boundary);
1281 use_lua_key(box);
1282 use_lua_key(box_left);
1283 use_lua_key(box_left_width);
1284 use_lua_key(box_right);
1285 use_lua_key(box_right_width);
1286 use_lua_key(broken_ins);
1287 use_lua_key(broken_ptr);
1288 use_lua_key(brokenpenalty);
1289 use_lua_key(cache);
1290 use_lua_key(cal_expand_ratio);
1291 use_lua_key(catalog);
1292 use_lua_key(char);
1293 use_lua_key(characters);
1294 use_lua_key(checksum);
1295 use_lua_key(cidinfo);
1296 use_lua_key(class);
1297 use_lua_key(clubpenalty);
1298 use_lua_key(colordepth);
1299 use_lua_key(colorspace);
1300 use_lua_key(command);
1301 use_lua_key(commands);
1302 use_lua_key(comment);
1303 use_lua_key(components);
1304 use_lua_key(compresslevel);
1305 use_lua_key(contrib_head);
1306 use_lua_key(core);
1307 use_lua_key(cost);
1308 use_lua_key(count);
1309 use_lua_key(crampeddisplay);
1310 use_lua_key(crampedscript);
1311 use_lua_key(crampedscriptscript);
1312 use_lua_key(crampedtext);
1313 use_lua_key(crop);
1314 use_lua_key(csname);
1315 use_lua_key(data);
1316 use_lua_key(degree);
1317 use_lua_key(delim);
1318 use_lua_key(delimptr);
1319 use_lua_key(demerits);
1320 use_lua_key(denom);
1321 use_lua_key(depth);
1322 use_lua_key(designsize);
1323 use_lua_key(dest_id);
1324 use_lua_key(dest_type);
1325 use_lua_key(dir);
1326 use_lua_key(dir_h);
1327 use_lua_key(direct);
1328 use_lua_key(direction);
1329 use_lua_key(dirs);
1330 use_lua_key(disc);
1331 use_lua_key(display);
1332 use_lua_key(doublehyphendemerits);
1333 use_lua_key(down);
1334 use_lua_key(embedding);
1335 use_lua_key(emergencystretch);
1336 use_lua_key(empty_string);
1337 use_lua_key(encodingbytes);
1338 use_lua_key(encodingname);
1339 use_lua_key(end);
1340 use_lua_key(etex);
1341 use_lua_key(equation);\
1342 use_lua_key(equation_number);\
1343 use_lua_key(exactly);
1344 use_lua_key(expansion_factor);
1345 use_lua_key(ext);
1346 use_lua_key(extend);
1347 use_lua_key(extender);
1348 use_lua_key(extensible);
1349 use_lua_key(extra_space);
1350 use_lua_key(fam);
1351 use_lua_key(fast);
1352 use_lua_key(fence);
1353 use_lua_key(file);
1354 use_lua_key(filename);
1355 use_lua_key(filepath);
1356 use_lua_key(fill);
1357 use_lua_key(fin_row);
1358 use_lua_key(finalhyphendemerits);
1359 use_lua_key(font);
1360 use_lua_key(fonts);
1361 use_lua_key(format);
1362 use_lua_key(fullname);
1363 use_lua_key(global);
1364 use_lua_key(glue);
1365 use_lua_key(glue_order);
1366 use_lua_key(glue_set);
1367 use_lua_key(glue_sign);
1368 use_lua_key(glyph);
1369 use_lua_key(h);
1370 use_lua_key(hangafter);
1371 use_lua_key(hangindent);
1372 use_lua_key(hbox);
1373 use_lua_key(head);
1374 use_lua_key(height);
1375 use_lua_key(hlist);
1376 use_lua_key(hmode_par);
1377 use_lua_key(hold_head);
1378 use_lua_key(horiz_variants);
1379 use_lua_key(hsize);
1380 use_lua_key(hyphenchar);
1381 use_lua_key(id);
1382 use_lua_key(image);
1383 use_lua_key(imagetype);
1384 use_lua_key(immediate);
1385 use_lua_key(index);
1386 use_lua_key(info);
1387 use_lua_key(insert);
1388 use_lua_key(interlinepenalty);
1389 use_lua_key(italic);
1390 use_lua_key(keepopen);
1391 use_lua_key(kern);
1392 use_lua_key(kerns);
1393 use_lua_key(lang);
1394 use_lua_key(large_char);
1395 use_lua_key(large_fam);
1396 use_lua_key(last_ins_ptr);
1397 use_lua_key(lastlinefit);
1398 use_lua_key(leader);
1399 use_lua_key(least_page_cost);
1400 use_lua_key(left);
1401 use_lua_key(left_boundary);
1402 use_lua_key(left_protruding);
1403 use_lua_key(leftskip);
1404 use_lua_key(level);
1405 use_lua_key(ligatures);
1406 use_lua_key(linepenalty);
1407 use_lua_key(link_attr);
1408 use_lua_key(list);
1409 use_lua_key(local_box);
1410 use_lua_key(log);
1411 use_lua_key(looseness);
1412 use_lua_key(lua);
1413 use_lua_key(lua_bytecodes_indirect);
1414 use_lua_key(lua_functions);
1415 use_lua_key(luatex);
1416 use_lua_key(luatex_node);
1417 use_lua_key(luatex_token);
1418 use_lua_key(mLTL);
1419 use_lua_key(mRTT);
1420 use_lua_key(mTLT);
1421 use_lua_key(mTRT);
1422 use_lua_key(marginkern);
1423 use_lua_key(mark);
1424 use_lua_key(math);
1425 use_lua_key(math_choice);
1426 use_lua_key(math_left);
1427 use_lua_key(math_shift);
1428 use_lua_key(mathdir);
1429 use_lua_key(mathkern);
1430 use_lua_key(mathstyle);
1431 use_lua_key(media);
1432 use_lua_key(mid);
1433 use_lua_key(mode);
1434 use_lua_key(modeline);
1435 use_lua_key(name);
1436 use_lua_key(named_id);
1437 use_lua_key(names);
1438 use_lua_key(new_graf);
1439 use_lua_key(new_window);
1440 use_lua_key(next);
1441 use_lua_key(no);
1442 use_lua_key(no_align);
1443 use_lua_key(noad);
1444 use_lua_key(node);
1445 use_lua_key(node_properties);
1446 use_lua_key(node_properties_indirect);
1447 use_lua_key(nomath);
1448 use_lua_key(none);
1449 use_lua_key(nop);
1450 use_lua_key(nucleus);
1451 use_lua_key(num);
1452 use_lua_key(number);
1453 use_lua_key(objcompression);
1454 use_lua_key(objnum);
1455 use_lua_key(oldmath);
1456 use_lua_key(origin);
1457 use_lua_key(ordering);
1458 use_lua_key(output);
1459 use_lua_key(overlay_accent);
1460 use_lua_key(pLTL);
1461 use_lua_key(pRTT);
1462 use_lua_key(pTLT);
1463 use_lua_key(pTRT);
1464 use_lua_key(page);
1465 use_lua_key(pages);
1466 use_lua_key(page_discards_head);
1467 use_lua_key(page_head);
1468 use_lua_key(page_ins_head);
1469 use_lua_key(pagebox);
1470 use_lua_key(pageattributes);
1471 use_lua_key(pageresources);
1472 use_lua_key(pagesattributes);
1473 use_lua_key(parameters);
1474 use_lua_key(pardir);
1475 use_lua_key(parshape);
1476 use_lua_key(pdf_data);
1477 use_lua_key(pdf_destination);
1478 use_lua_key(pdf_literal);
1479 use_lua_key(pen_broken);
1480 use_lua_key(pen_inter);
1481 use_lua_key(penalty);
1482 use_lua_key(pop);
1483 use_lua_key(post);
1484 use_lua_key(post_linebreak);
1485 use_lua_key(pre);
1486 use_lua_key(pre_adjust);
1487 use_lua_key(pre_adjust_head);
1488 use_lua_key(pre_align);
1489 use_lua_key(pre_box);
1490 use_lua_key(preamble);
1491 use_lua_key(pretolerance);
1492 use_lua_key(prev);
1493 use_lua_key(prevdepth);
1494 use_lua_key(prevgraf);
1495 use_lua_key(protrudechars);
1496 use_lua_key(psname);
1497 use_lua_key(ptr);
1498 use_lua_key(push);
1499 use_lua_key(quad);
1500 use_lua_key(radical);
1501 use_lua_key(raw);
1502 use_lua_key(ref_count);
1503 use_lua_key(reg);
1504 use_lua_key(registry);
1505 use_lua_key(renew);
1506 use_lua_key(rep);
1507 use_lua_key(replace);
1508 use_lua_key(resources);
1509 use_lua_key(right);
1510 use_lua_key(right_boundary);
1511 use_lua_key(right_protruding);
1512 use_lua_key(rightskip);
1513 use_lua_key(rotation);
1514 use_lua_key(rule);
1515 use_lua_key(scale);
1516 use_lua_key(script);
1517 use_lua_key(scriptscript);
1518 use_lua_key(semi_simple);
1519 use_lua_key(shift);
1520 use_lua_key(shrink);
1521 use_lua_key(shrink_order);
1522 use_lua_key(simple);
1523 use_lua_key(size);
1524 use_lua_key(skewchar);
1525 use_lua_key(slant);
1526 use_lua_key(slot);
1527 use_lua_key(small_char);
1528 use_lua_key(small_fam);
1529 use_lua_key(space);
1530 use_lua_key(space_shrink);
1531 use_lua_key(space_stretch);
1532 use_lua_key(spacefactor);
1533 use_lua_key(special);
1534 use_lua_key(split_discards_head);
1535 use_lua_key(split_keep);
1536 use_lua_key(split_off);
1537 use_lua_key(stack);
1538 use_lua_key(start);
1539 use_lua_key(step);
1540 use_lua_key(stream);
1541 use_lua_key(streamfile);
1542 use_lua_key(stretch);
1543 use_lua_key(stretch_order);
1544 use_lua_key(string);
1545 use_lua_key(style);
1546 use_lua_key(sub);
1547 use_lua_key(subst_ex_font);
1548 use_lua_key(subtype);
1549 use_lua_key(sup);
1550 use_lua_key(supplement);
1551 use_lua_key(surround);
1552 use_lua_key(tail);
1553 use_lua_key(temp_head);
1554 use_lua_key(term);
1555 use_lua_key(term_and_log);
1556 use_lua_key(tex);
1557 use_lua_key(text);
1558 use_lua_key(thread_attr);
1559 use_lua_key(thread_id);
1560 use_lua_key(tolerance);
1561 use_lua_key(tok);
1562 use_lua_key(token);
1563 use_lua_key(top);
1564 use_lua_key(top_accent);
1565 use_lua_key(top_left);
1566 use_lua_key(top_right);
1567 use_lua_key(tounicode);
1568 use_lua_key(tracingparagraphs);
1569 use_lua_key(trailer);
1570 use_lua_key(trailerid);
1571 use_lua_key(transform);
1572 use_lua_key(trim);
1573 use_lua_key(type);
1574 use_lua_key(uchyph);
1575 use_lua_key(units_per_em);
1576 use_lua_key(used);
1577 use_lua_key(user_id);
1578 use_lua_key(v);
1579 use_lua_key(value);
1580 use_lua_key(vbox);
1581 use_lua_key(vcenter);
1582 use_lua_key(version);
1583 use_lua_key(vert_italic);
1584 use_lua_key(vert_variants);
1585 use_lua_key(vmode_par);
1586 use_lua_key(visiblefilename);
1587 use_lua_key(vlist);
1588 use_lua_key(vtop);
1589 use_lua_key(widowpenalty);
1590 use_lua_key(width);
1591 use_lua_key(x_height);
1592 use_lua_key(xadvance);
1593 use_lua_key(xformresources);
1594 use_lua_key(xformattributes);
1595 use_lua_key(xoffset);
1596 use_lua_key(xres);
1597 use_lua_key(xsize);
1598 use_lua_key(xyz_zoom);
1599 use_lua_key(yoffset);
1600 use_lua_key(yres);
1601 use_lua_key(ysize);