Man Linux: Main Page and Category List

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  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 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 a, b, or 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 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

       noweave(1), nodefs(1), 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.

                                local 3/28/2001                       NOWEB(1)