file: README for January 1997 release of LTX2X LaTeX to X Autotagger New improved LTX2X with all sorts of print capabilities and an embedded interpreter for the EXPRESS-A programming langUage, based on the ISO standard ISO 10303-11:1994 "Industrial automation systems and integration -- Product data representation and exchange -- Part11: Description methods: The EXPRESS language reference manual". The gcc compiler doesn't whine now (the cc compiler never did), courtesy of Laurent Duperval (duperval@jsp.umontreal.ca). FUNCTION The LTX2X program, which is written in C, will replace LaTeX commands in a LaTeX document by user-defined strings. In essence, LaTeX tags can be replaced by other kinds of document tags (e.g. HTML/SGML or RTF tags), or can be removed altogether. The program also has an unsophisticated pretty-print capability. The replacement strings for the LaTeX commands are specified in a command table file, which can be created simply via any text editor. For more advanced users an interpreter for the EXPRESS-A programming language is also included. EXPRESS-A includes STRING, LIST and ENTITY types as as primitives of the language, as well as the usual REAL, INTEGER and LOGICAL types. Regular expressions are also an integral part of EXPRESS-A. The interpreter also includes an interactive source level debugger for EXPRESS-A. The supplied command tables include facilities for, among others: o deTeXing and pretty-printing o Conversion from LaTeX tagging to HTML tagging The 100+ page user manual is supplied as LaTeX source, Postscript, and in deTeXed and HTML forms, the latter two being automatically generated by running LTX2X on the LaTeX source. FILES Files in this distribution are: o README (this file) o l2xlib.c and l2xlib.h main program and library functions for LTX2X o l2xlibtc.h keywords and their string representations o l2xcom.h typedefs o l2x.l lexer source to be processed by flex o l2xlexyy.c lexer code after flex processing o l2x.y parser source to be processed by bison o l2xytab.c and l2xytab.h parser code after bison processing o l2xacts.c and l2xacts.h standard action functions o l2xusrlb.c and l2xusrlb.h user-defined action functions o srchenv.c and srchenv.h C code for directory searching o getopt.c and getpopt.h C code for command line options o strtypes.h header file for string proccessing o l2xistup.c and l2xicmon.h interface for the interpreter o l2xirtne.c, l2xistd.c, interpreter parsing routines l2xidecl.c, l2xistmt.c, l2xiexpr.c, l2xiprse.h o l2xixutl.c l2xiexec.h interpreter executor utility routines o l2xixstd.c l2xixstm.c, routines for interpreter executor module l2xixxpr.c o l2xirexp.c, l2xirexp.h routines for processing regular expressions o listsetc.c, listsetc.h general list processing routines o l2xiscan.c l2xiscan.h interpreter lexing routines o l2xisymt.c, l2xisymt.h interpreter symbol table support o l2xidbug.c source level debugger for the interpreter o l2xierr.c, l2xierr.h EXPRESS-A user focussed error handling o l2xiidbg.c l2xiidbg.h, diagnostics for interpreter developer l2xisdcl.c o licomsym.h general interpreter header file o l2xidftc.h, l2xiertc.h, keywords and their string representations l2xisctc.h, l2xisftc.h o printct.c C program for command table printing and update o man manpage o makefile makefile for ltx2x o ltx2html.sty Package file for ltx2x LaTeX to HTML o ltx2x.tex User manual in LaTeX format o ltx2x.ps User manual in PostScript format o ltx2x.html HTMLed version of ltx2x.tex o ltx2x.txt deTeXed version of ltx2x.tex o ltx2x.ct Dummy command table file o bye.ct Example "Goodbye document" command table file o remcom.ct Example decommenter command table file o detex.ct Example deTeXing command table file o l2h.ct Example command table for LaTeX to HTML conversion o fun.ct Example EXPRESS-A code and possibly o ltx2x.tar.gz Tared and Zipped archive of all the above INSTALLATION ltx2x is written as a parser for LaTeX. The main source is in l2xlib.c. Source for the lexer is in l2x.l which has to be processed by flex (or equivalent) and the parser is in l2x.y which is intended to be processed by bison (or equivalent). Support functions are in files l2xacts.c, l2xusrlb.c, srchenv.c and getopt.c. After the lexer and parser files are processed, all the code files must be compiled and linked to form the executable. The syntax of the command table has been extended and modified. The printct program will convert a command table in the original syntax to the new syntax. Via Make -------- 0. Read the manual 1. Edit the first part of makefile to match your system's configuration. If you are feeling brave, do `make all'. Otherwise continue as below. 2. Do `make' (processes lexer and parser and compiles and links the program) 3. (Optional) Set the environment variable LTX2XTABLES to the directories where command table files might be located 4. Test the program 5. Do `make install' (moves the binary into its final location) 6. Do `make manpage' (edits the manpage and copies it to its working location) 7. Do `make ctables' (copies the command tables to their working location) 8. Do `make doc' (copies the user manual sources to their final location) 9. Do `make clean' (deletes the object code, yacc output, and edited manpage files) 10. Do `make printct' to compile printct.c, then move the binary to its final destination. By Hand ------- 0. Read the manual. Steps 1 and/or 2 below are only required if changes have been made to the files l2x.y and/or l2x.l, respectively. 1. Run bison on l2x.y. Rename y.tab.c to l2xytab.c and rename y.tab.h to l2xytab.h 2. Run flex on l2x.l. Rename lex.yy.c to l2xlexyy.c. 3. Compile all the .c files 4. Link the compiled code to form the final program binary 5. (Optional) Set the environment variable LTX2XTABLES to the directories where command table files might be located 6. Test the program 7. Move the binary to its final destination 8. Edit the manpage file and copy it to its working location, renaming it appropriately 9. Copy the example .ct files to their working location 10. Copy the manual source filers to their final location 11. Compile printct.c and move the binary to its final destination 12. Remove intermediate files AUTHOR Comments and suggestions should be sent to Peter Wilson (The Catholic University of America and NIST) pwilson@cme.nist.gov 29 August 1996