NAME
noindex - build external index for noweb document
SYNOPSIS
noindex basename[.tex]
DESCRIPTION
noindex
looks through
LaTeX
.aux
files for identifiers that should go in a
noweb
external index.
It sorts all identifiers and writes the results on
basename.nwi.
NOWEB INDEXING STRATEGIES
A
noweb
program consists of one or more files.
In the simple case, these files are run through
noweave
together, to produce a single
LaTeX
file.
noweave -index
suffices to produce an index and cross-referencing information;
neither
nodefs
nor
noindex
is required.
When a
noweb
program
consists of several source files, it is often better to run each source file
through
noweave
to produce its own
LaTeX
file, then use
noindex
to produce an external index.
This technique has several advantages:
The line numbers in the
LaTeX
files correspond to the line numbers in the source files, so it is easier
to diagnose
LaTeX
errors.
The
LaTeX
\\includeonly
feature can be used, making it possible to format parts of large programs while retaining
complete cross-reference information.
When used with
R make (1),
the technique
avoids running
noweave
over source files that have not changed.
Using the external index places fewer demands on LaTeX's memory,
making it read its
.aux
files much more quickly.
The disadvantages are that
nodefs
and
noindex
are needed for full cross-referencing and a properly sorted index.
EXAMPLE
This example assumes a
noweb
program of three source files:
a.nw ,
b.nw ,
and
R c.nw .
The file
doc.tex
is assumed to contain
LaTeX
boilerplate, including the commands
\noweboptions{externalindex}
\include{a}
\include{b}
\include{c}
The first sequence of steps is to create a file listing all the
identifiers defined anywhere in
R a ,
R b ,
or
R c .
nodefs a.nw > a.defs
nodefs b.nw > b.defs
nodefs c.nw > c.defs
sort -u a.defs b.defs c.defs | cpif all.defs
Using
sort -u
and
R cpif (1)
avoids changing
all.defs
unless the set of identifiers changes.
This technique, used in a Makefile, avoids unnecessary rebuilding.
The next series of steps is to create
LaTeX
files with full cross-reference information for all identifiers.
noweave -n -indexfrom all.defs a.nw > a.tex
noweave -n -indexfrom all.defs b.nw > b.tex
noweave -n -indexfrom all.defs c.nw > c.tex
The final steps run
LaTeX
once to create
.aux
files, then
noindex
to create the index,
then
LaTeX
again to format the complete document.
latex doc
noindex doc
latex doc
In a Makefile,
noindex
can be run before every invocation of
LaTeX.
BUGS
noindex
is distributed in awk and Icon versions.
The awk version is slow and does a poorer job sorting.
There is no comparable machinery to make it possible to use multiple files
with the HTML back end.
SEE ALSO
R noweave (1),
R nodefs (1),
R cpif (1)
VERSION
This man page is from
noweb
version 2.11b.
AUTHOR
Norman Ramsey, Harvard University.
Internet address nr@eecs.harvard.edu.
Noweb home page at http://www.eecs.harvard.edu/~nr/noweb.