gf is short for "general formatter", i.e., a program capable of formatting documents which conform to the ISO "general" document type definition (DTD). It can convert SGML documents conforming to a small number of DTDs into various output formats: LaTeX, ASCII, RTF and Texinfo. However not every output format can be generated for every DTD. Apart from the general DTD, gf supports the HTML DTD used in the WWW project and a DTD I just made up. There are many other DTDs which would be worth supporting. However gf is not intended as a flexible system for hacking up a formatter for a random DTD, but as a usable document production system for a few DTDs. For more information on gf and the supported DTDs, see the file doc/gf.sgml. It may be easier to read if you first use gf to convert it from SGML into some other format. gf may be copied and modified under the terms of the GNU General Public License, version 2. See the file COPYING for details. Installation ------------ This package contains source code: compiling it requires an ANSI C compiler and flex (available from GNU archives) among other things. James Clark's program nsgmls (tested with version 1.0.1), is required at runtime. nsgmls is part of the sp-1.0 package, available from ftp.jclark.com or SGML archives. To typeset the LaTeX output produced by gf, LaTeX version 2.09 or 2e can be used. To compile and install gf, follow these steps: 1. the default output from gf is LaTeX 2e. change this at the top of of src/Makefile.in if you like. 2. the LaTeX 2e output produced by gf requires some macros: if you want to install these, set the location at the top of latex2e/Makefile.in. naturally this must be a place where TeX will search for macro files. 3. likewise for the LaTeX 2.09 output: set the location at the top of latex209/Makefile.in. 4. ./configure (see the file INSTALL for more details). 5. make 6. make install 7. if you want to build and install Info format versions of the documentation, run "make info" and "make install-info". this requires the makeinfo program to be available. you need to edit the "dir" file in the info directory as usual. 8. if you want to install the LaTeX 2e macros, type "make install-2e". for the LaTeX 2.09 macros type "make install-209". Formatting the Manuals for Printing ----------------------------------- PostScript versions of the two user manuals can be created (via LaTeX) by switching to the doc directory and typing "make gf.ps" or "make snafu.ps". Alternatively ASCII or RTF versions can be created, e.g., "gf -fab gf.sgml". Acknowledgements ---------------- Some code and many ideas are from other sources: The tables for the conversion of ISOlat1 to "best" ASCII follow a system developed by Markus Kuhn. ISOlat1.2tex is based on a latin1 to TeX table by (I think) Peter Flynn. Other TeX symbols were grabbed individually from numerous sources. error.c is from the GNU textutils by David MacKenzie. putenv.c is from the GNU C library version 1.09. getopt.c, getopt1.c, getopt.h are from the GNU C library version 1.07. The HTML DTD is by Dan Connelly et al. from the WWW project. ISOlat1 etc., and general.dtd are from the ISO. a4wide.sty (for LaTeX-2.09) is by Jean-Francois Lamy. mkinstalldirs, configure, install-sh, INSTALL are from autoconf. ---------------- Gary Houston