1 /* luatex-api.h 2 3 Copyright 2006-2012 Taco Hoekwater <taco@luatex.org> 4 5 This file is part of LuaTeX. 6 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. 11 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. 16 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/>. */ 19 20 21 #ifndef LUATEX_API_H 22 # define LUATEX_API_H 1 23 24 # include <stdlib.h> 25 # include <stdio.h> 26 # include <stdarg.h> 27 # include "lua.h" 28 # include "lauxlib.h" 29 # include "lualib.h" 30 #ifdef LuajitTeX 31 # include "luajit.h" 32 # define MyName "LuajitTeX" 33 # define my_name "luajittex" 34 #else 35 # define MyName "LuaTeX" 36 # define my_name "luatex" 37 #endif 38 39 #ifdef __cplusplus 40 extern "C" { 41 #endif 42 43 typedef struct LoadS { 44 char *s; 45 size_t size; 46 } LoadS; 47 48 extern lua_State *Luas; 49 50 extern void make_table(lua_State * L, const char *tab, const char *mttab, const char *getfunc, 51 const char *setfunc); 52 53 extern int luac_main(int argc, char *argv[]); 54 55 extern int luaopen_tex(lua_State * L); 56 57 extern int luaopen_pdf(lua_State * L); 58 59 # define LUA_TEXFILEHANDLE "TEXFILE*" 60 61 extern int luaopen_texio(lua_State * L); 62 63 extern int luaopen_lang(lua_State * L); 64 65 extern lua_State *luatex_error(lua_State * L, int fatal); 66 67 extern int luaopen_unicode(lua_State * L); 68 extern int luaopen_zip(lua_State * L); 69 extern int luaopen_lfs(lua_State * L); 70 extern int luaopen_lpeg(lua_State * L); 71 extern int luaopen_md5(lua_State * L); 72 extern int luatex_md5_lua_open(lua_State * L); 73 74 extern int luaopen_zlib(lua_State * L); 75 extern int luaopen_gzip(lua_State * L); 76 extern int luaopen_ff(lua_State * L); 77 extern int luaopen_profiler(lua_State * L); 78 79 extern int luaopen_socket_core(lua_State * L); 80 extern int luaopen_mime_core(lua_State * L); 81 extern void luatex_socketlua_open(lua_State * L); 82 83 extern int luaopen_img(lua_State * L); 84 extern int l_new_image(lua_State * L); 85 extern int luaopen_epdf(lua_State * L); 86 extern int luaopen_pdfscanner(lua_State * L); 87 extern int luaopen_mplib(lua_State * L); 88 89 extern void open_oslibext(lua_State * L, int safer_option); 90 extern int open_iolibext(lua_State * L); 91 extern void open_strlibext(lua_State * L); 92 extern void open_lfslibext(lua_State * L); 93 94 extern void initfilecallbackids(int max); 95 extern void setinputfilecallbackid(int n, int i); 96 extern void setreadfilecallbackid(int n, int i); 97 extern int getinputfilecallbackid(int n); 98 extern int getreadfilecallbackid(int n); 99 100 extern void lua_initialize(int ac, char **av); 101 102 extern int luaopen_kpse(lua_State * L); 103 104 extern int luaopen_callback(lua_State * L); 105 106 extern int luaopen_lua(lua_State * L, char *fname); 107 108 extern int luaopen_stats(lua_State * L); 109 110 extern int luaopen_font(lua_State * L); 111 extern int luaopen_vf(lua_State * L); 112 extern int font_to_lua(lua_State * L, int f); 113 extern int font_from_lua(lua_State * L, int f); /* return is boolean */ 114 115 extern int luaopen_token(lua_State * L); 116 extern int luaopen_newtoken(lua_State * L); 117 extern void tokenlist_to_lua(lua_State * L, int p); 118 extern void tokenlist_to_luastring(lua_State * L, int p); 119 extern int tokenlist_from_lua(lua_State * L); 120 121 extern void lua_nodelib_push(lua_State * L); 122 extern int nodelib_getdir(lua_State * L, int n, int absolute_only); 123 124 extern int luaopen_node(lua_State * L); 125 extern void nodelist_to_lua(lua_State * L, int n); 126 extern int nodelist_from_lua(lua_State * L); 127 128 extern int dimen_to_number(lua_State * L, const char *s); 129 130 extern int get_command_id(const char *s); 131 132 extern void dump_luac_registers(void); 133 134 extern void undump_luac_registers(void); 135 136 extern int lua_only; 137 #ifdef LuajitTeX 138 extern int luajiton; 139 extern char *jithash_hashname ; 140 #endif 141 142 143 #if !defined(LUAI_HASHLIMIT) 144 #define LUAI_HASHLIMIT 5 145 #endif 146 extern unsigned char show_luahashchars ; 147 148 extern void unhide_lua_table(lua_State * lua, const char *name, int r); 149 extern int hide_lua_table(lua_State * lua, const char *name); 150 151 extern void unhide_lua_value(lua_State * lua, const char *name, 152 const char *item, int r); 153 extern int hide_lua_value(lua_State * lua, const char *name, const char *item); 154 155 typedef struct command_item_ { 156 const char *cmd_name; 157 int command_offset; 158 const char **commands; 159 } command_item; 160 161 extern command_item command_names[]; 162 extern int callback_callbacks_id; 163 164 extern void luainterpreter(void); 165 166 extern int luabytecode_max; 167 extern unsigned int luabytecode_bytes; 168 extern int luastate_bytes; 169 170 extern int callback_count; 171 extern int saved_callback_count; 172 173 extern const char *luatex_banner; 174 175 extern const char *last_lua_error; 176 177 178 /* luastuff.h */ 179 180 typedef struct { 181 const char *name; /* parameter name */ 182 int idx; /* index within img_parms array */ 183 } parm_struct; 184 185 extern void preset_environment(lua_State * L, const parm_struct * p, 186 const char *s); 187 188 extern char *startup_filename; 189 extern int safer_option; 190 extern int nosocket_option; 191 192 extern char *last_source_name; 193 extern int last_lineno; 194 195 extern int program_name_set; /* in lkpselib.c */ 196 197 /* for topenin() */ 198 extern char **argv; 199 extern int argc; 200 201 extern int loader_C_luatex(lua_State * L, const char *name, 202 const char *filename); 203 extern int loader_Call_luatex(lua_State * L, const char *name, 204 const char *filename); 205 206 extern void init_tex_table(lua_State * L); 207 208 extern int tex_table_id; 209 extern int pdf_table_id; 210 extern int newtoken_table_id; 211 extern int token_table_id; 212 extern int node_table_id; 213 extern int main_initialize(void); 214 215 extern int do_run_callback(int special, const char *values, va_list vl); 216 extern int lua_traceback(lua_State * L); 217 218 extern int luainit; 219 220 221 extern char *luanames[]; 222 223 extern int ff_get_ttc_index(char *ffname, char *psname); /* luafontloader/src/luafflib.c */ 224 extern int ff_createcff(char *, unsigned char **, int *); /* luafontloader/src/luafflib.c */ 225 226 extern char *FindResourceTtfFont(char *filename, char *fontname); /* luafontloader/fontforge/fontforge/macbinary.c */ 227 228 extern char charsetstr[]; /* from mpdir/psout.w */ 229 230 #ifndef WIN32 231 extern char **environ; 232 #endif 233 234 #ifdef __cplusplus 235 } 236 #endif 237 238 /* 239 Same as in lnodelib.c, but with prefix G_ for now. 240 These macros create and access pointers (indices) to keys which is faster. The 241 shortcuts are created as part of the initialization. 242 243 */ 244 245 /*#define init_luaS_index(a) do { */ 246 #define init_lua_key(a) do { \ 247 lua_pushliteral(Luas,#a); \ 248 luaS_##a##_ptr = lua_tostring(Luas,-1); \ 249 luaS_##a##_index = luaL_ref (Luas,LUA_REGISTRYINDEX); \ 250 } while (0) 251 252 /*#define init_luaS_index_s(a,b) do { */ 253 #define init_lua_key_alias(a,b) do { \ 254 lua_pushliteral(Luas,b); \ 255 luaS_##a##_ptr = lua_tostring(Luas,-1); \ 256 luaS_##a##_index = luaL_ref (Luas,LUA_REGISTRYINDEX); \ 257 } while (0) 258 259 /*#define make_luaS_index(a) */ 260 #define make_lua_key(a) \ 261 int luaS_##a##_index = 0; \ 262 const char * luaS_##a##_ptr = NULL 263 264 265 /*#define luaS_ptr_eq(a,b) (a==luaS_##b##_ptr)*/ 266 #define lua_key_eq(a,b) (a==luaS_##b##_ptr) 267 268 #define luaS_index(a) luaS_##a##_index 269 #define lua_key_index(a) luaS_##a##_index 270 #define lua_key(a) luaS_##a##_ptr 271 #define use_lua_key(a) \ 272 extern int luaS_##a##_index ; \ 273 extern const char * luaS_##a##_ptr 274 275 276 #define lua_key_rawgeti(a) \ 277 lua_rawgeti(L, LUA_REGISTRYINDEX, luaS_##a##_index);\ 278 lua_rawget(L, -2) 279 280 #define lua_key_rawgeti_n(a,n) \ 281 lua_rawgeti(L, LUA_REGISTRYINDEX, luaS_##a##_index);\ 282 lua_rawget(L, -1+n) 283 284 /* 285 Unfortunately floor is already redefined as 286 #define floor ((integer)floor((double)(a))) 287 so 288 #define lua_uroundnumber(a,b) (unsigned int)floor((double)(lua_tonumber(a,b)+0.5)) 289 is useless. 290 */ 291 292 #define lua_roundnumber(a,b) (int)floor((double)lua_tonumber(a,b)+0.5) 293 #define lua_uroundnumber(a,b) (unsigned int)((double)(lua_tonumber(a,b)+0.5)) 294 extern int lua_numeric_field_by_index(lua_State *, int , int); 295 extern unsigned int lua_unsigned_numeric_field_by_index(lua_State *, int , int); 296 297 298 /* Currently we sometimes use numbers and sometimes strings in node properties. We can 299 make that consistent by having a check on number and if not then assign a string. The 300 strings are prehashed and we make a bunch of lua tables that have these values. We can 301 preassign these at startup time. */ 302 303 /* no need for L state argument */ 304 305 #define PACK_TYPE_SIZE 4 306 #define GROUP_CODE_SIZE 23 307 #define MATH_STYLE_NAME_SIZE 8 308 #define DIR_PAR_SIZE 128 309 #define DIR_TEXT_SIZE 128 310 311 extern int l_pack_type_index [PACK_TYPE_SIZE] ; 312 extern int l_group_code_index [GROUP_CODE_SIZE]; 313 extern int l_math_style_name_index [MATH_STYLE_NAME_SIZE]; 314 extern int l_dir_par_index [DIR_PAR_SIZE]; 315 extern int l_dir_text_index [DIR_TEXT_SIZE]; 316 317 #define lua_push_pack_type(L,pack_type) lua_rawgeti(L, LUA_REGISTRYINDEX, l_pack_type_index [pack_type] ); 318 #define lua_push_group_code(L,group_code) lua_rawgeti(L, LUA_REGISTRYINDEX, l_group_code_index [group_code]); 319 #define lua_push_math_style_name(L,style_name) lua_rawgeti(L, LUA_REGISTRYINDEX, l_math_style_name_index[style_name]); 320 #define lua_push_dir_par(L,dir) lua_rawgeti(L, LUA_REGISTRYINDEX, l_dir_par_index[dir+64]) 321 #define lua_push_dir_text(L,dir) lua_rawgeti(L, LUA_REGISTRYINDEX, l_dir_text_index[dir+64]) 322 323 324 #define lua_push_string_by_index(L,index) lua_rawgeti(L, LUA_REGISTRYINDEX, index) 325 #define lua_push_string_by_name(L,index) lua_rawgeti(L, LUA_REGISTRYINDEX, lua_key_index(index)) 326 327 328 #define set_pack_type_index \ 329 l_pack_type_index[0] = lua_key_index(exactly); \ 330 l_pack_type_index[1] = lua_key_index(additional); \ 331 l_pack_type_index[2] = lua_key_index(cal_expand_ratio);\ 332 l_pack_type_index[3] = lua_key_index(subst_ex_font); 333 334 #define set_l_group_code_index \ 335 l_group_code_index[0] = lua_key_index(empty_string);\ 336 l_group_code_index[1] = lua_key_index(simple);\ 337 l_group_code_index[2] = lua_key_index(hbox);\ 338 l_group_code_index[3] = lua_key_index(adjusted_hbox);\ 339 l_group_code_index[4] = lua_key_index(vbox);\ 340 l_group_code_index[5] = lua_key_index(vtop);\ 341 l_group_code_index[6] = lua_key_index(align);\ 342 l_group_code_index[7] = lua_key_index(no_align);\ 343 l_group_code_index[8] = lua_key_index(output);\ 344 l_group_code_index[9] = lua_key_index(math);\ 345 l_group_code_index[10] = lua_key_index(disc);\ 346 l_group_code_index[11] = lua_key_index(insert);\ 347 l_group_code_index[12] = lua_key_index(vcenter);\ 348 l_group_code_index[13] = lua_key_index(math_choice);\ 349 l_group_code_index[14] = lua_key_index(semi_simple);\ 350 l_group_code_index[15] = lua_key_index(math_shift);\ 351 l_group_code_index[16] = lua_key_index(math_left);\ 352 l_group_code_index[17] = lua_key_index(local_box);\ 353 l_group_code_index[18] = lua_key_index(split_off);\ 354 l_group_code_index[19] = lua_key_index(split_keep);\ 355 l_group_code_index[20] = lua_key_index(preamble);\ 356 l_group_code_index[21] = lua_key_index(align_set);\ 357 l_group_code_index[22] = lua_key_index(fin_row) 358 359 #define set_l_math_style_name_index \ 360 l_math_style_name_index[0] = lua_key_index(display);\ 361 l_math_style_name_index[1] = lua_key_index(crampeddisplay);\ 362 l_math_style_name_index[2] = lua_key_index(text);\ 363 l_math_style_name_index[3] = lua_key_index(crampedtext);\ 364 l_math_style_name_index[4] = lua_key_index(script);\ 365 l_math_style_name_index[5] = lua_key_index(crampedscript);\ 366 l_math_style_name_index[6] = lua_key_index(scriptscript);\ 367 l_math_style_name_index[7] = lua_key_index(crampedscriptscript) 368 369 #define set_l_dir_par_index \ 370 l_dir_par_index[0] = lua_key_index(TLT);\ 371 l_dir_par_index[4] = lua_key_index(TRT);\ 372 l_dir_par_index[9] = lua_key_index(LTL);\ 373 l_dir_par_index[24] = lua_key_index(RTT);\ 374 l_dir_par_index[64] = lua_key_index(TLT);\ 375 l_dir_par_index[68] = lua_key_index(TRT);\ 376 l_dir_par_index[73] = lua_key_index(LTL);\ 377 l_dir_par_index[88] = lua_key_index(RTT);\ 378 379 #define set_l_dir_text_index \ 380 l_dir_text_index[0] = lua_key_index(mTLT);\ 381 l_dir_text_index[4] = lua_key_index(mTRT);\ 382 l_dir_text_index[9] = lua_key_index(mLTL);\ 383 l_dir_text_index[24] = lua_key_index(mRTT);\ 384 l_dir_text_index[64] = lua_key_index(pTLT);\ 385 l_dir_text_index[68] = lua_key_index(pTRT);\ 386 l_dir_text_index[73] = lua_key_index(pLTL);\ 387 l_dir_text_index[88] = lua_key_index(pRTT);\ 388 389 390 #define set_make_keys \ 391 make_lua_key(cmdname);make_lua_key(expandable);make_lua_key(protected);\ 392 make_lua_key(LTL);\ 393 make_lua_key(MathConstants);\ 394 make_lua_key(RTT);\ 395 make_lua_key(TLT);\ 396 make_lua_key(TRT);\ 397 make_lua_key(accent);\ 398 make_lua_key(action);\ 399 make_lua_key(action_id);\ 400 make_lua_key(action_type);\ 401 make_lua_key(active);\ 402 make_lua_key(additional);\ 403 make_lua_key(adjust);\ 404 make_lua_key(adjust_head);\ 405 make_lua_key(adjusted_hbox);\ 406 make_lua_key(advance);\ 407 make_lua_key(after_display);\ 408 make_lua_key(after_output);\ 409 make_lua_key(aleph);\ 410 make_lua_key(align);\ 411 make_lua_key(align_head);\ 412 make_lua_key(align_set);\ 413 make_lua_key(alignment);\ 414 make_lua_key(annot);\ 415 make_lua_key(area);\ 416 make_lua_key(attr);\ 417 make_lua_key(attributes);\ 418 make_lua_key(auto_expand);\ 419 make_lua_key(before_display);\ 420 make_lua_key(best_ins_ptr);\ 421 make_lua_key(best_page_break);\ 422 make_lua_key(best_size);\ 423 make_lua_key(bot);\ 424 make_lua_key(bot_accent);\ 425 make_lua_key(bottom_left);\ 426 make_lua_key(bottom_right);\ 427 make_lua_key(box);\ 428 make_lua_key(box_left);\ 429 make_lua_key(box_left_width);\ 430 make_lua_key(box_right);\ 431 make_lua_key(box_right_width);\ 432 make_lua_key(broken_ins);\ 433 make_lua_key(broken_ptr);\ 434 make_lua_key(cache);\ 435 make_lua_key(cal_expand_ratio);\ 436 make_lua_key(catalog);\ 437 make_lua_key(char);\ 438 make_lua_key(characters);\ 439 make_lua_key(checksum);\ 440 make_lua_key(cidinfo);\ 441 make_lua_key(class);\ 442 make_lua_key(command);\ 443 make_lua_key(commands);\ 444 make_lua_key(comment);\ 445 make_lua_key(components);\ 446 make_lua_key(compresslevel);\ 447 make_lua_key(contrib_head);\ 448 make_lua_key(core);\ 449 make_lua_key(cost);\ 450 make_lua_key(count);\ 451 make_lua_key(crampeddisplay);\ 452 make_lua_key(crampedscript);\ 453 make_lua_key(crampedscriptscript);\ 454 make_lua_key(crampedtext);\ 455 make_lua_key(csname);\ 456 make_lua_key(data);\ 457 make_lua_key(degree);\ 458 make_lua_key(delim);\ 459 make_lua_key(delimptr);\ 460 make_lua_key(denom);\ 461 make_lua_key(depth);\ 462 make_lua_key(designsize);\ 463 make_lua_key(dest_id);\ 464 make_lua_key(dest_type);\ 465 make_lua_key(dir);\ 466 make_lua_key(dir_h);\ 467 make_lua_key(direct);\ 468 make_lua_key(direction);\ 469 make_lua_key(dirs);\ 470 make_lua_key(disc);\ 471 make_lua_key(display);\ 472 make_lua_key(down);\ 473 make_lua_key(dvi_ptr);\ 474 make_lua_key(embedding);\ 475 make_lua_key(empty_string);\ 476 make_lua_key(encodingbytes);\ 477 make_lua_key(encodingname);\ 478 make_lua_key(end);\ 479 make_lua_key(etex);\ 480 make_lua_key(exactly);\ 481 make_lua_key(expansion_factor);\ 482 make_lua_key(ext);\ 483 make_lua_key(extend);\ 484 make_lua_key(extender);\ 485 make_lua_key(extensible);\ 486 make_lua_key(extra_space);\ 487 make_lua_key(fam);\ 488 make_lua_key(fast);\ 489 make_lua_key(file);\ 490 make_lua_key(filename);\ 491 make_lua_key(fin_row);\ 492 make_lua_key(font);\ 493 make_lua_key(fonts);\ 494 make_lua_key(format);\ 495 make_lua_key(fullname);\ 496 make_lua_key(global);\ 497 make_lua_key(glue_order);\ 498 make_lua_key(glue_set);\ 499 make_lua_key(glue_sign);\ 500 make_lua_key(glyph);\ 501 make_lua_key(h);\ 502 make_lua_key(hbox);\ 503 make_lua_key(head);\ 504 make_lua_key(height);\ 505 make_lua_key(hmode_par);\ 506 make_lua_key(hold_head);\ 507 make_lua_key(horiz_variants);\ 508 make_lua_key(hyphenchar);\ 509 make_lua_key(id);\ 510 make_lua_key(image);\ 511 make_lua_key(immediate);\ 512 make_lua_key(index);\ 513 make_lua_key(info);\ 514 make_lua_key(insert);\ 515 make_lua_key(italic);\ 516 make_lua_key(kern);\ 517 make_lua_key(kerns);\ 518 make_lua_key(lang);\ 519 make_lua_key(large_char);\ 520 make_lua_key(large_fam);\ 521 make_lua_key(last_ins_ptr);\ 522 make_lua_key(leader);\ 523 make_lua_key(least_page_cost);\ 524 make_lua_key(left);\ 525 make_lua_key(left_boundary);\ 526 make_lua_key(left_protruding);\ 527 make_lua_key(level);\ 528 make_lua_key(ligatures);\ 529 make_lua_key(link_attr);\ 530 make_lua_key(list);\ 531 make_lua_key(local_box);\ 532 make_lua_key(log);\ 533 make_lua_key(lua);\ 534 make_lua_key(lua_functions);\ 535 make_lua_key(luatex);\ 536 make_lua_key(luatex_newtoken);\ 537 make_lua_key(luatex_node);\ 538 make_lua_key(mLTL);\ 539 make_lua_key(mRTT);\ 540 make_lua_key(mTLT);\ 541 make_lua_key(mTRT);\ 542 make_lua_key(mark);\ 543 make_lua_key(math);\ 544 make_lua_key(math_choice);\ 545 make_lua_key(math_left);\ 546 make_lua_key(math_shift);\ 547 make_lua_key(mathdir);\ 548 make_lua_key(mathkern);\ 549 make_lua_key(mathstyle);\ 550 make_lua_key(mid);\ 551 make_lua_key(mode);\ 552 make_lua_key(modeline);\ 553 make_lua_key(name);\ 554 make_lua_key(named_id);\ 555 make_lua_key(names);\ 556 make_lua_key(new_graf);\ 557 make_lua_key(new_window);\ 558 make_lua_key(next);\ 559 make_lua_key(no);\ 560 make_lua_key(no_align);\ 561 make_lua_key(noad);\ 562 make_lua_key(node);\ 563 make_lua_key(node_properties);\ 564 make_lua_key(node_properties_indirect);\ 565 make_lua_key(nomath);\ 566 make_lua_key(nop);\ 567 make_lua_key(nucleus);\ 568 make_lua_key(num);\ 569 make_lua_key(number);\ 570 make_lua_key(objcompression);\ 571 make_lua_key(objnum);\ 572 make_lua_key(omega);\ 573 make_lua_key(ordering);\ 574 make_lua_key(output);\ 575 make_lua_key(pLTL);\ 576 make_lua_key(pRTT);\ 577 make_lua_key(pTLT);\ 578 make_lua_key(pTRT);\ 579 make_lua_key(page);\ 580 make_lua_key(page_head);\ 581 make_lua_key(page_ins_head);\ 582 make_lua_key(pageattributes);\ 583 make_lua_key(pageresources);\ 584 make_lua_key(pagesattributes);\ 585 make_lua_key(parameters);\ 586 make_lua_key(pdf_data);\ 587 make_lua_key(pdftex);\ 588 make_lua_key(pen_broken);\ 589 make_lua_key(pen_inter);\ 590 make_lua_key(penalty);\ 591 make_lua_key(pop);\ 592 make_lua_key(post);\ 593 make_lua_key(pre);\ 594 make_lua_key(pre_adjust);\ 595 make_lua_key(pre_adjust_head);\ 596 make_lua_key(pre_align);\ 597 make_lua_key(pre_box);\ 598 make_lua_key(preamble);\ 599 make_lua_key(prev);\ 600 make_lua_key(prevdepth);\ 601 make_lua_key(prevgraf);\ 602 make_lua_key(psname);\ 603 make_lua_key(ptr);\ 604 make_lua_key(push);\ 605 make_lua_key(quad);\ 606 make_lua_key(raw);\ 607 make_lua_key(ref_count);\ 608 make_lua_key(reg);\ 609 make_lua_key(registry);\ 610 make_lua_key(renew);\ 611 make_lua_key(rep);\ 612 make_lua_key(replace);\ 613 make_lua_key(right);\ 614 make_lua_key(right_boundary);\ 615 make_lua_key(right_protruding);\ 616 make_lua_key(rule);\ 617 make_lua_key(scale);\ 618 make_lua_key(script);\ 619 make_lua_key(scriptscript);\ 620 make_lua_key(semi_simple);\ 621 make_lua_key(shift);\ 622 make_lua_key(shrink);\ 623 make_lua_key(shrink_order);\ 624 make_lua_key(simple);\ 625 make_lua_key(size);\ 626 make_lua_key(skewchar);\ 627 make_lua_key(slant);\ 628 make_lua_key(slot);\ 629 make_lua_key(small_char);\ 630 make_lua_key(small_fam);\ 631 make_lua_key(space);\ 632 make_lua_key(space_shrink);\ 633 make_lua_key(space_stretch);\ 634 make_lua_key(spacefactor);\ 635 make_lua_key(spec);\ 636 make_lua_key(special);\ 637 make_lua_key(split_keep);\ 638 make_lua_key(split_off);\ 639 make_lua_key(stack);\ 640 make_lua_key(start);\ 641 make_lua_key(step);\ 642 make_lua_key(stream);\ 643 make_lua_key(streamfile);\ 644 make_lua_key(stretch);\ 645 make_lua_key(stretch_order);\ 646 make_lua_key(string);\ 647 make_lua_key(style);\ 648 make_lua_key(sub);\ 649 make_lua_key(subst_ex_font);\ 650 make_lua_key(subtype);\ 651 make_lua_key(sup);\ 652 make_lua_key(supplement);\ 653 make_lua_key(surround);\ 654 make_lua_key(tail);\ 655 make_lua_key(temp_head);\ 656 make_lua_key(term);\ 657 make_lua_key(term_and_log);\ 658 make_lua_key(tex);\ 659 make_lua_key(text);\ 660 make_lua_key(thread_attr);\ 661 make_lua_key(thread_id);\ 662 make_lua_key(tok);\ 663 make_lua_key(token);\ 664 make_lua_key(top);\ 665 make_lua_key(top_accent);\ 666 make_lua_key(top_left);\ 667 make_lua_key(top_right);\ 668 make_lua_key(tounicode);\ 669 make_lua_key(trailer);\ 670 make_lua_key(transform);\ 671 make_lua_key(type);\ 672 make_lua_key(uchyph);\ 673 make_lua_key(umath);\ 674 make_lua_key(units_per_em);\ 675 make_lua_key(used);\ 676 make_lua_key(user_id);\ 677 make_lua_key(v);\ 678 make_lua_key(value);\ 679 make_lua_key(vbox);\ 680 make_lua_key(vcenter);\ 681 make_lua_key(version);\ 682 make_lua_key(vert_variants);\ 683 make_lua_key(vmode_par);\ 684 make_lua_key(vtop);\ 685 make_lua_key(width);\ 686 make_lua_key(writable);\ 687 make_lua_key(x_height);\ 688 make_lua_key(xoffset);\ 689 make_lua_key(xyz_zoom);\ 690 make_lua_key(yoffset) 691 692 693 #define set_init_keys \ 694 init_lua_key(cmdname);init_lua_key(expandable);init_lua_key(protected);\ 695 init_lua_key(LTL);\ 696 init_lua_key(MathConstants);\ 697 init_lua_key(RTT);\ 698 init_lua_key(TLT);\ 699 init_lua_key(TRT);\ 700 init_lua_key(accent);\ 701 init_lua_key(action);\ 702 init_lua_key(action_id);\ 703 init_lua_key(action_type);\ 704 init_lua_key(active);\ 705 init_lua_key(additional);\ 706 init_lua_key(adjust);\ 707 init_lua_key(adjust_head);\ 708 init_lua_key(adjusted_hbox);\ 709 init_lua_key(advance);\ 710 init_lua_key(after_display);\ 711 init_lua_key(after_output);\ 712 init_lua_key(aleph);\ 713 init_lua_key(align);\ 714 init_lua_key(align_head);\ 715 init_lua_key(align_set);\ 716 init_lua_key(alignment);\ 717 init_lua_key(annot);\ 718 init_lua_key(area);\ 719 init_lua_key(attr);\ 720 init_lua_key(attributes);\ 721 init_lua_key(auto_expand);\ 722 init_lua_key(before_display);\ 723 init_lua_key(best_ins_ptr);\ 724 init_lua_key(best_page_break);\ 725 init_lua_key(best_size);\ 726 init_lua_key(bot);\ 727 init_lua_key(bot_accent);\ 728 init_lua_key(bottom_left);\ 729 init_lua_key(bottom_right);\ 730 init_lua_key(box);\ 731 init_lua_key(box_left);\ 732 init_lua_key(box_left_width);\ 733 init_lua_key(box_right);\ 734 init_lua_key(box_right_width);\ 735 init_lua_key(broken_ins);\ 736 init_lua_key(broken_ptr);\ 737 init_lua_key(cache);\ 738 init_lua_key(cal_expand_ratio);\ 739 init_lua_key(catalog);\ 740 init_lua_key(char);\ 741 init_lua_key(characters);\ 742 init_lua_key(checksum);\ 743 init_lua_key(cidinfo);\ 744 init_lua_key(class);\ 745 init_lua_key(command);\ 746 init_lua_key(commands);\ 747 init_lua_key(comment);\ 748 init_lua_key(components);\ 749 init_lua_key(compresslevel);\ 750 init_lua_key(contrib_head);\ 751 init_lua_key(core);\ 752 init_lua_key(cost);\ 753 init_lua_key(count);\ 754 init_lua_key(crampeddisplay);\ 755 init_lua_key(crampedscript);\ 756 init_lua_key(crampedscriptscript);\ 757 init_lua_key(crampedtext);\ 758 init_lua_key(csname);\ 759 init_lua_key(data);\ 760 init_lua_key(degree);\ 761 init_lua_key(delim);\ 762 init_lua_key(delimptr);\ 763 init_lua_key(denom);\ 764 init_lua_key(depth);\ 765 init_lua_key(designsize);\ 766 init_lua_key(dest_id);\ 767 init_lua_key(dest_type);\ 768 init_lua_key(dir);\ 769 init_lua_key(dir_h);\ 770 init_lua_key(direct);\ 771 init_lua_key(direction);\ 772 init_lua_key(dirs);\ 773 init_lua_key(disc);\ 774 init_lua_key(display);\ 775 init_lua_key(down);\ 776 init_lua_key(dvi_ptr);\ 777 init_lua_key(embedding);\ 778 init_lua_key(encodingbytes);\ 779 init_lua_key(encodingname);\ 780 init_lua_key(end);\ 781 init_lua_key(etex);\ 782 init_lua_key(exactly);\ 783 init_lua_key(expansion_factor);\ 784 init_lua_key(ext);\ 785 init_lua_key(extend);\ 786 init_lua_key(extender);\ 787 init_lua_key(extensible);\ 788 init_lua_key(extra_space);\ 789 init_lua_key(fam);\ 790 init_lua_key(fast);\ 791 init_lua_key(file);\ 792 init_lua_key(filename);\ 793 init_lua_key(fin_row);\ 794 init_lua_key(font);\ 795 init_lua_key(fonts);\ 796 init_lua_key(format);\ 797 init_lua_key(fullname);\ 798 init_lua_key(global);\ 799 init_lua_key(glue_order);\ 800 init_lua_key(glue_set);\ 801 init_lua_key(glue_sign);\ 802 init_lua_key(glyph);\ 803 init_lua_key(h);\ 804 init_lua_key(hbox);\ 805 init_lua_key(head);\ 806 init_lua_key(height);\ 807 init_lua_key(hmode_par);\ 808 init_lua_key(hold_head);\ 809 init_lua_key(horiz_variants);\ 810 init_lua_key(hyphenchar);\ 811 init_lua_key(id);\ 812 init_lua_key(image);\ 813 init_lua_key(immediate);\ 814 init_lua_key(index);\ 815 init_lua_key(info);\ 816 init_lua_key(insert);\ 817 init_lua_key(italic);\ 818 init_lua_key(kern);\ 819 init_lua_key(kerns);\ 820 init_lua_key(lang);\ 821 init_lua_key(large_char);\ 822 init_lua_key(large_fam);\ 823 init_lua_key(last_ins_ptr);\ 824 init_lua_key(leader);\ 825 init_lua_key(least_page_cost);\ 826 init_lua_key(left);\ 827 init_lua_key(left_boundary);\ 828 init_lua_key(left_protruding);\ 829 init_lua_key(level);\ 830 init_lua_key(ligatures);\ 831 init_lua_key(link_attr);\ 832 init_lua_key(list);\ 833 init_lua_key(local_box);\ 834 init_lua_key(log);\ 835 init_lua_key(lua);\ 836 init_lua_key(luatex);\ 837 init_lua_key(luatex_newtoken);\ 838 init_lua_key(mark);\ 839 init_lua_key(math);\ 840 init_lua_key(math_choice);\ 841 init_lua_key(math_left);\ 842 init_lua_key(math_shift);\ 843 init_lua_key(mathdir);\ 844 init_lua_key(mathkern);\ 845 init_lua_key(mathstyle);\ 846 init_lua_key(mid);\ 847 init_lua_key(mode);\ 848 init_lua_key(modeline);\ 849 init_lua_key(name);\ 850 init_lua_key(named_id);\ 851 init_lua_key(names);\ 852 init_lua_key(new_graf);\ 853 init_lua_key(new_window);\ 854 init_lua_key(next);\ 855 init_lua_key(no);\ 856 init_lua_key(no_align);\ 857 init_lua_key(noad);\ 858 init_lua_key(node);\ 859 init_lua_key(nomath);\ 860 init_lua_key(nop);\ 861 init_lua_key(nucleus);\ 862 init_lua_key(num);\ 863 init_lua_key(number);\ 864 init_lua_key(objcompression);\ 865 init_lua_key(objnum);\ 866 init_lua_key(omega);\ 867 init_lua_key(ordering);\ 868 init_lua_key(output);\ 869 init_lua_key(page);\ 870 init_lua_key(page_head);\ 871 init_lua_key(page_ins_head);\ 872 init_lua_key(pageattributes);\ 873 init_lua_key(pageresources);\ 874 init_lua_key(pagesattributes);\ 875 init_lua_key(parameters);\ 876 init_lua_key(pdftex);\ 877 init_lua_key(pen_broken);\ 878 init_lua_key(pen_inter);\ 879 init_lua_key(penalty);\ 880 init_lua_key(pop);\ 881 init_lua_key(post);\ 882 init_lua_key(pre);\ 883 init_lua_key(pre_adjust);\ 884 init_lua_key(pre_adjust_head);\ 885 init_lua_key(pre_align);\ 886 init_lua_key(pre_box);\ 887 init_lua_key(preamble);\ 888 init_lua_key(prev);\ 889 init_lua_key(prevdepth);\ 890 init_lua_key(prevgraf);\ 891 init_lua_key(psname);\ 892 init_lua_key(ptr);\ 893 init_lua_key(push);\ 894 init_lua_key(quad);\ 895 init_lua_key(raw);\ 896 init_lua_key(ref_count);\ 897 init_lua_key(reg);\ 898 init_lua_key(registry);\ 899 init_lua_key(renew);\ 900 init_lua_key(rep);\ 901 init_lua_key(replace);\ 902 init_lua_key(right);\ 903 init_lua_key(right_boundary);\ 904 init_lua_key(right_protruding);\ 905 init_lua_key(rule);\ 906 init_lua_key(scale);\ 907 init_lua_key(script);\ 908 init_lua_key(scriptscript);\ 909 init_lua_key(semi_simple);\ 910 init_lua_key(shift);\ 911 init_lua_key(shrink);\ 912 init_lua_key(shrink_order);\ 913 init_lua_key(simple);\ 914 init_lua_key(size);\ 915 init_lua_key(skewchar);\ 916 init_lua_key(slant);\ 917 init_lua_key(slot);\ 918 init_lua_key(small_char);\ 919 init_lua_key(small_fam);\ 920 init_lua_key(space);\ 921 init_lua_key(space_shrink);\ 922 init_lua_key(space_stretch);\ 923 init_lua_key(spacefactor);\ 924 init_lua_key(spec);\ 925 init_lua_key(special);\ 926 init_lua_key(split_keep);\ 927 init_lua_key(split_off);\ 928 init_lua_key(stack);\ 929 init_lua_key(start);\ 930 init_lua_key(step);\ 931 init_lua_key(stream);\ 932 init_lua_key(streamfile);\ 933 init_lua_key(stretch);\ 934 init_lua_key(stretch_order);\ 935 init_lua_key(string);\ 936 init_lua_key(style);\ 937 init_lua_key(sub);\ 938 init_lua_key(subst_ex_font);\ 939 init_lua_key(subtype);\ 940 init_lua_key(sup);\ 941 init_lua_key(supplement);\ 942 init_lua_key(surround);\ 943 init_lua_key(tail);\ 944 init_lua_key(temp_head);\ 945 init_lua_key(term);\ 946 init_lua_key(tex);\ 947 init_lua_key(text);\ 948 init_lua_key(thread_attr);\ 949 init_lua_key(thread_id);\ 950 init_lua_key(tok);\ 951 init_lua_key(token);\ 952 init_lua_key(top);\ 953 init_lua_key(top_accent);\ 954 init_lua_key(top_left);\ 955 init_lua_key(top_right);\ 956 init_lua_key(tounicode);\ 957 init_lua_key(trailer);\ 958 init_lua_key(transform);\ 959 init_lua_key(type);\ 960 init_lua_key(uchyph);\ 961 init_lua_key(umath);\ 962 init_lua_key(units_per_em);\ 963 init_lua_key(used);\ 964 init_lua_key(user_id);\ 965 init_lua_key(v);\ 966 init_lua_key(value);\ 967 init_lua_key(vbox);\ 968 init_lua_key(vcenter);\ 969 init_lua_key(version);\ 970 init_lua_key(vert_variants);\ 971 init_lua_key(vmode_par);\ 972 init_lua_key(vtop);\ 973 init_lua_key(width);\ 974 init_lua_key(writable);\ 975 init_lua_key(x_height);\ 976 init_lua_key(xoffset);\ 977 init_lua_key(xyz_zoom);\ 978 init_lua_key(yoffset);\ 979 init_lua_key_alias(empty_string,"");\ 980 init_lua_key_alias(lua_functions,"lua.functions");\ 981 init_lua_key_alias(luatex_node, "luatex.node");\ 982 init_lua_key_alias(mLTL,"-LTL");\ 983 init_lua_key_alias(mRTT,"-RTT");\ 984 init_lua_key_alias(mTLT,"-TLT");\ 985 init_lua_key_alias(mTRT,"-TRT");\ 986 init_lua_key_alias(node_properties,"node.properties");\ 987 init_lua_key_alias(node_properties_indirect,"node.properties.indirect");\ 988 init_lua_key_alias(pLTL,"+LTL");\ 989 init_lua_key_alias(pRTT,"+RTT");\ 990 init_lua_key_alias(pTLT,"+TLT");\ 991 init_lua_key_alias(pTRT,"+TRT");\ 992 init_lua_key_alias(pdf_data,"pdf.data");\ 993 init_lua_key_alias(term_and_log,"term and log") 994 995 996 #define assign_math_style(L,n,target) do { \ 997 if (lua_isnumber(L,n)) { \ 998 /* new, often same as subtype anyway */ \ 999 target = lua_tonumber(L,n); \ 1000 } else if (lua_isstring(L,n)) { \ 1001 const char *s = lua_tostring(L, n); \ 1002 if (lua_key_eq(s,display)) { \ 1003 target = 0; \ 1004 } else if (lua_key_eq(s,crampeddisplay)) { \ 1005 target = 1; \ 1006 } else if (lua_key_eq(s,text)) { \ 1007 target = 2; \ 1008 } else if (lua_key_eq(s,crampedtext)) { \ 1009 target = 3; \ 1010 } else if (lua_key_eq(s,script)) { \ 1011 target = 4; \ 1012 } else if (lua_key_eq(s,crampedscript)) { \ 1013 target = 5; \ 1014 } else if (lua_key_eq(s,scriptscript)) { \ 1015 target = 6; \ 1016 } else if (lua_key_eq(s,crampedscriptscript)) { \ 1017 target = 7; \ 1018 } else { \ 1019 target = 2; \ 1020 } \ 1021 } else { \ 1022 target = 2; /* text by default */ \ 1023 } \ 1024 } while(0) 1025 1026 1027 1028 1029 #ifdef __MINGW32__ 1030 extern FILE *_cairo_win32_tmpfile( void ); 1031 #define tmpfile() _cairo_win32_tmpfile() 1032 #endif /* __MINGW32__ */ 1033 1034 1035 1036 /* 1037 * experimental code (no primitive): 1038 1039 0 = all 1040 1 = retain math nodes 1041 1042 */ 1043 1044 #define max_experimental_code 1 1045 #define MAX_EXPERIMENTAL_CODE_SIZE max_experimental_code+1 1046 /* to be indexed by i with 1<= i <=max_experimental_code */ 1047 extern int experimental_code[MAX_EXPERIMENTAL_CODE_SIZE] ; 1048 1049 1050 #endif /* LUATEX_API_H */ 1051 1052 1053 1054 1055 /* */ 1056 /* These keys have to available to different files */ 1057 /* */ 1058 1059 1060 use_lua_key(cmdname);use_lua_key(expandable);use_lua_key(protected); 1061 1062 use_lua_key(LTL); 1063 use_lua_key(MathConstants); 1064 use_lua_key(RTT); 1065 use_lua_key(TLT); 1066 use_lua_key(TRT); 1067 use_lua_key(accent); 1068 use_lua_key(action); 1069 use_lua_key(action_id); 1070 use_lua_key(action_type); 1071 use_lua_key(active); 1072 use_lua_key(additional); 1073 use_lua_key(adjust); 1074 use_lua_key(adjust_head); 1075 use_lua_key(adjusted_hbox); 1076 use_lua_key(advance); 1077 use_lua_key(after_display); 1078 use_lua_key(after_output); 1079 use_lua_key(aleph); 1080 use_lua_key(align); 1081 use_lua_key(align_head); 1082 use_lua_key(align_set); 1083 use_lua_key(alignment); 1084 use_lua_key(annot); 1085 use_lua_key(area); 1086 use_lua_key(attr); 1087 use_lua_key(attributes); 1088 use_lua_key(auto_expand); 1089 use_lua_key(before_display); 1090 use_lua_key(best_ins_ptr); 1091 use_lua_key(best_page_break); 1092 use_lua_key(best_size); 1093 use_lua_key(bot); 1094 use_lua_key(bot_accent); 1095 use_lua_key(bottom_left); 1096 use_lua_key(bottom_right); 1097 use_lua_key(box); 1098 use_lua_key(box_left); 1099 use_lua_key(box_left_width); 1100 use_lua_key(box_right); 1101 use_lua_key(box_right_width); 1102 use_lua_key(broken_ins); 1103 use_lua_key(broken_ptr); 1104 use_lua_key(cache); 1105 use_lua_key(cal_expand_ratio); 1106 use_lua_key(catalog); 1107 use_lua_key(char); 1108 use_lua_key(characters); 1109 use_lua_key(checksum); 1110 use_lua_key(cidinfo); 1111 use_lua_key(class); 1112 use_lua_key(command); 1113 use_lua_key(commands); 1114 use_lua_key(comment); 1115 use_lua_key(components); 1116 use_lua_key(compresslevel); 1117 use_lua_key(contrib_head); 1118 use_lua_key(core); 1119 use_lua_key(cost); 1120 use_lua_key(count); 1121 use_lua_key(crampeddisplay); 1122 use_lua_key(crampedscript); 1123 use_lua_key(crampedscriptscript); 1124 use_lua_key(crampedtext); 1125 use_lua_key(csname); 1126 use_lua_key(data); 1127 use_lua_key(degree); 1128 use_lua_key(delim); 1129 use_lua_key(delimptr); 1130 use_lua_key(denom); 1131 use_lua_key(depth); 1132 use_lua_key(designsize); 1133 use_lua_key(dest_id); 1134 use_lua_key(dest_type); 1135 use_lua_key(dir); 1136 use_lua_key(dir_h); 1137 use_lua_key(direct); 1138 use_lua_key(direction); 1139 use_lua_key(dirs); 1140 use_lua_key(disc); 1141 use_lua_key(display); 1142 use_lua_key(down); 1143 use_lua_key(dvi_ptr); 1144 use_lua_key(embedding); 1145 use_lua_key(empty_string); 1146 use_lua_key(encodingbytes); 1147 use_lua_key(encodingname); 1148 use_lua_key(end); 1149 use_lua_key(etex); 1150 use_lua_key(exactly); 1151 use_lua_key(expansion_factor); 1152 use_lua_key(ext); 1153 use_lua_key(extend); 1154 use_lua_key(extender); 1155 use_lua_key(extensible); 1156 use_lua_key(extra_space); 1157 use_lua_key(fam); 1158 use_lua_key(fast); 1159 use_lua_key(file); 1160 use_lua_key(filename); 1161 use_lua_key(fin_row); 1162 use_lua_key(font); 1163 use_lua_key(fonts); 1164 use_lua_key(format); 1165 use_lua_key(fullname); 1166 use_lua_key(global); 1167 use_lua_key(glue_order); 1168 use_lua_key(glue_set); 1169 use_lua_key(glue_sign); 1170 use_lua_key(glyph); 1171 use_lua_key(h); 1172 use_lua_key(hbox); 1173 use_lua_key(head); 1174 use_lua_key(height); 1175 use_lua_key(hmode_par); 1176 use_lua_key(hold_head); 1177 use_lua_key(horiz_variants); 1178 use_lua_key(hyphenchar); 1179 use_lua_key(id); 1180 use_lua_key(image); 1181 use_lua_key(immediate); 1182 use_lua_key(index); 1183 use_lua_key(info); 1184 use_lua_key(insert); 1185 use_lua_key(italic); 1186 use_lua_key(kern); 1187 use_lua_key(kerns); 1188 use_lua_key(lang); 1189 use_lua_key(large_char); 1190 use_lua_key(large_fam); 1191 use_lua_key(last_ins_ptr); 1192 use_lua_key(leader); 1193 use_lua_key(least_page_cost); 1194 use_lua_key(left); 1195 use_lua_key(left_boundary); 1196 use_lua_key(left_protruding); 1197 use_lua_key(level); 1198 use_lua_key(ligatures); 1199 use_lua_key(link_attr); 1200 use_lua_key(list); 1201 use_lua_key(local_box); 1202 use_lua_key(log); 1203 use_lua_key(lua); 1204 use_lua_key(lua_functions); 1205 use_lua_key(luatex); 1206 use_lua_key(luatex_newtoken); 1207 use_lua_key(luatex_node); 1208 use_lua_key(mLTL); 1209 use_lua_key(mRTT); 1210 use_lua_key(mTLT); 1211 use_lua_key(mTRT); 1212 use_lua_key(mark); 1213 use_lua_key(math); 1214 use_lua_key(math_choice); 1215 use_lua_key(math_left); 1216 use_lua_key(math_shift); 1217 use_lua_key(mathdir); 1218 use_lua_key(mathkern); 1219 use_lua_key(mathstyle); 1220 use_lua_key(mid); 1221 use_lua_key(mode); 1222 use_lua_key(modeline); 1223 use_lua_key(name); 1224 use_lua_key(named_id); 1225 use_lua_key(names); 1226 use_lua_key(new_graf); 1227 use_lua_key(new_window); 1228 use_lua_key(next); 1229 use_lua_key(no); 1230 use_lua_key(no_align); 1231 use_lua_key(noad); 1232 use_lua_key(node); 1233 use_lua_key(node_properties); 1234 use_lua_key(node_properties_indirect); 1235 use_lua_key(nomath); 1236 use_lua_key(nop); 1237 use_lua_key(nucleus); 1238 use_lua_key(num); 1239 use_lua_key(number); 1240 use_lua_key(objcompression); 1241 use_lua_key(objnum); 1242 use_lua_key(omega); 1243 use_lua_key(ordering); 1244 use_lua_key(output); 1245 use_lua_key(pLTL); 1246 use_lua_key(pRTT); 1247 use_lua_key(pTLT); 1248 use_lua_key(pTRT); 1249 use_lua_key(page); 1250 use_lua_key(page_head); 1251 use_lua_key(page_ins_head); 1252 use_lua_key(pageattributes); 1253 use_lua_key(pageresources); 1254 use_lua_key(pagesattributes); 1255 use_lua_key(parameters); 1256 use_lua_key(pdf_data); 1257 use_lua_key(pdftex); 1258 use_lua_key(pen_broken); 1259 use_lua_key(pen_inter); 1260 use_lua_key(penalty); 1261 use_lua_key(pop); 1262 use_lua_key(post); 1263 use_lua_key(pre); 1264 use_lua_key(pre_adjust); 1265 use_lua_key(pre_adjust_head); 1266 use_lua_key(pre_align); 1267 use_lua_key(pre_box); 1268 use_lua_key(preamble); 1269 use_lua_key(prev); 1270 use_lua_key(prevdepth); 1271 use_lua_key(prevgraf); 1272 use_lua_key(psname); 1273 use_lua_key(ptr); 1274 use_lua_key(push); 1275 use_lua_key(quad); 1276 use_lua_key(raw); 1277 use_lua_key(ref_count); 1278 use_lua_key(reg); 1279 use_lua_key(registry); 1280 use_lua_key(renew); 1281 use_lua_key(rep); 1282 use_lua_key(replace); 1283 use_lua_key(right); 1284 use_lua_key(right_boundary); 1285 use_lua_key(right_protruding); 1286 use_lua_key(rule); 1287 use_lua_key(scale); 1288 use_lua_key(script); 1289 use_lua_key(scriptscript); 1290 use_lua_key(semi_simple); 1291 use_lua_key(shift); 1292 use_lua_key(shrink); 1293 use_lua_key(shrink_order); 1294 use_lua_key(simple); 1295 use_lua_key(size); 1296 use_lua_key(skewchar); 1297 use_lua_key(slant); 1298 use_lua_key(slot); 1299 use_lua_key(small_char); 1300 use_lua_key(small_fam); 1301 use_lua_key(space); 1302 use_lua_key(space_shrink); 1303 use_lua_key(space_stretch); 1304 use_lua_key(spacefactor); 1305 use_lua_key(spec); 1306 use_lua_key(special); 1307 use_lua_key(split_keep); 1308 use_lua_key(split_off); 1309 use_lua_key(stack); 1310 use_lua_key(start); 1311 use_lua_key(step); 1312 use_lua_key(stream); 1313 use_lua_key(streamfile); 1314 use_lua_key(stretch); 1315 use_lua_key(stretch_order); 1316 use_lua_key(string); 1317 use_lua_key(style); 1318 use_lua_key(sub); 1319 use_lua_key(subst_ex_font); 1320 use_lua_key(subtype); 1321 use_lua_key(sup); 1322 use_lua_key(supplement); 1323 use_lua_key(surround); 1324 use_lua_key(tail); 1325 use_lua_key(temp_head); 1326 use_lua_key(term); 1327 use_lua_key(term_and_log); 1328 use_lua_key(tex); 1329 use_lua_key(text); 1330 use_lua_key(thread_attr); 1331 use_lua_key(thread_id); 1332 use_lua_key(tok); 1333 use_lua_key(token); 1334 use_lua_key(top); 1335 use_lua_key(top_accent); 1336 use_lua_key(top_left); 1337 use_lua_key(top_right); 1338 use_lua_key(tounicode); 1339 use_lua_key(trailer); 1340 use_lua_key(transform); 1341 use_lua_key(type); 1342 use_lua_key(uchyph); 1343 use_lua_key(umath); 1344 use_lua_key(units_per_em); 1345 use_lua_key(used); 1346 use_lua_key(user_id); 1347 use_lua_key(v); 1348 use_lua_key(value); 1349 use_lua_key(vbox); 1350 use_lua_key(vcenter); 1351 use_lua_key(version); 1352 use_lua_key(vert_variants); 1353 use_lua_key(vmode_par); 1354 use_lua_key(vtop); 1355 use_lua_key(width); 1356 use_lua_key(writable); 1357 use_lua_key(x_height); 1358 use_lua_key(xoffset); 1359 use_lua_key(xyz_zoom); 1360 use_lua_key(yoffset); 1361