%   Documentation for Tib reference formatting programs --- version 2.2
%   Plain TeX file                    August, 1986
%   Last revision                     November, 1989
%   Copyright (C) 1986, 1989 James C. Alexander
%
\def\TDOCDIR{AAAAA}%directory for Tib documentation
\def\TMACDIR{BBBBB}%directory for Tib macros
\def\TCOMMON{CCCCC}%name of Tib file of common words
\def\DIRSEP{/}%directory separator in path names
\def\OPTCH{-}%option character on program call

\def\leftheadline{\rightheadline}%                          one-sided printing
%\def\leftheadline{\bf folio\ \ --- \it\firstmark\hss\bfTib}%two-sided printing

\baselineskip 1.2\normalbaselineskip
\nopagenumbers\voffset=2\baselineskip
\headline{\ifnum\pageno=1\hfill
    \else{\ifodd\pageno\rightheadline\else\leftheadline\fi}\fi}
\def\rightheadline{\bfTib\hss\it\firstmark\ ---\ \ \bf\folio}
\outer\def\beginsection#1#2\par{\vskip0pt plus#1\vsize\penalty-250
    \vskip0pt plus-#1\vsize\bigskip\vskip\parskip\message{#2}
    \leftline{\kern-4pt\llap{$\bullet$\ }\bf#2\hfill}\mark{#2}
    \nobreak\smallskip\noindent}
\outer\def\beginsubsection#1#2\par{\vskip0pt plus#1\vsize\penalty-250
    \vskip0pt plus-#1\vsize\medskip\vskip\parskip
    \leftline{\bf\ \ #2}\nobreak\smallskip\noindent}
\def\Tib{{\rm T\kern-.1667em\sevenrm I\rm b}}
\def\bfTib{{\bf T\kern-.2em\sevenbf I\bf b}}
\def\itTib{{\it T\kern-.2em\seveni I\it b}}
\def\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\sevenrm A}\kern-.15em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\def\itLaTeX{{\it L\kern-.3em\raise.3ex\hbox{\seveni A}\kern-.15em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\def\AmSTeX{$\cal A\kern-.1667em\lower.5ex\hbox{$\cal M$}\kern-.125em
    S$-\TeX}
\def\\{\begingroup\catcode`\\=12\tt\char"5C\endgroup}
\def\{{\begingroup\catcode`\{=12\tt\char"7B\endgroup}
\def\}{\begingroup\catcode`\}=12\tt\char"7D\endgroup}
\def\<#1>{\leavevmode\hbox{$\langle${\it#1\/}$\rangle$}}
\def\[#1]{\leavevmode\hbox{\tt[#1]}}
\def\({\/\rm(}\def\){\/\rm)}
\newdimen\tableindent\newdimen\leftbox
\def\tableset{\tableindent=\leftbox\advance\tableindent by 20pt
    \leftskip\tableindent\rightskip10pt\parindent=0pt}
\def\tableentry#1{%
    \setbox0\hbox{{\tt\tablemark#1}\hss}\wd0=\leftbox
    \item{\box0}}
\def\listitem{\tt\obeylines\obeyspaces\parindent20pt}

\immediate\write16{       **** Documentation for Tib ****}
\indent\par
\vglue-.5in
\centerline{\bfTib\footnote{$^*$}{Version 2.2. \copyright 1986, 1989
James C. Alexander.  \Tib{} may be distributed whole, but not sold.}}
\bigskip
\centerline{A \TeX{} bibliographic preprocessor}
\bigskip
{\baselineskip10pt
\centerline{J. C. Alexander ({\tt jca@lakisis.umd.edu})}
\smallskip
\centerline{Department of Mathematics}
\centerline{University of Maryland}
\centerline{College Park, MD 20742}}

\bigskip\hfill\hbox{\vbox{\baselineskip10pt
\hbox{\it Small have continual plodders ever won,}
\hbox{\it Save base authority from others{\rm'} books.}
\smallskip
\hbox{\ \ W. Shakespeare, \it Love{\rm'}s Labour{\rm'}s Lost}}}

\beginsection{.3} 0. General

\Tib{} is a package of four programs for making citations and reference
lists in \TeX{} documents.  The main program, \Tib, operates on a \TeX{}
file with incomplete or keyed citations, looks up the reference in a
database, makes the complete citation and on command, makes a list of
the references.  The citations in the source document
are enclosed in (non-\TeX) escape characters
which \Tib{} recognizes.  The output of \Tib{} is another \TeX{} file with
complete citations and reference list formatted with a number of \TeX{} control
sequences and with definitions for these control sequences, ready
to be processed by plain \TeX, \LaTeX, or another \TeX.  With appropriate
options in \Tib{} and definitions of the control sequences, set by
flags in the call to \Tib{} or as environment variables,
the citations and references can be formatted in any
of a large variety of styles, and in particular, in the styles of various 
journals.  It is intended that \Tib{} be easy to use as is and yet also allow
custom citation and reference formats to be created and implemented
without undue effort.

\Tib is a preprocessor in the style of {\it refer\/}, a similar
preprocessor for the {\it nroff{\rm/}troff\/} textsetters.  Indeed
\Tib{} originally was to be a minor modification of the {\it
nroff{\rm/}troff\/} preprocessor {\it bib\/} written by T. A. Budd
(which was inspired by {\it refer\/}), but with \TeX{} output; however
it has grown and changed considerably. The philosophy, though, is that
of {\it refer\/} and {\it bib\/} (especially of {\it bib\/} in regard
to modularity of the formatting files), and some of the code and
subroutines from {\it bib\/} remain.  The source code of \Tib{} is in
the language C.

The sections of this document are:
\medskip
\halign{\indent\indent\hfil#&\quad{\it#}\hfill\cr
1.&Demonstration\cr
2.&Program calls\cr
3.&Available styles\cr
4.&The input document\cr
5.&Styles and files\cr
6.&The reference file\cr
7.&{\tt\\input} files\cr
8.&Error and warning messages\cr
&Disclaimer\cr
A1.&Appendix: the example document\cr
A2.&Appendix: local changes\/ {\rm(if any)}\cr
}
\medskip\noindent
Section~1 is for first-time users.  Indeed, probably the best course is
to use the demonstration files as models and use the remainder of this
documentation as reference when needed.

The escape characters of \Tib{} do not interfere with \TeX{} processing.
If \TeX{} is applied to the original pre-\Tib{} document, the escape
characters and incomplete citations will appear as written.
Thus it is suggested that a \TeX{} document be debugged before applying
\Tib.  When the \TeX{} bugs are eliminated, \Tib{} can be used
for the final one or two runs.

\beginsection{.3} 1. Demonstration

{\leftskip3pc\parindent0pt\it
\item{\rm1.} Copy the file\/ {\rm\TDOCDIR\DIRSEP test.tex} 
{\rm(}see appendix\/{\rm)} into a directory.
This is a sample\/ \TeX{} document ready for \itTib.

\item{\rm2.} Copy the file\/ {\rm\TDOCDIR\DIRSEP test.ref} into the same
directory.  This is a sample bibliographic database.

\item{\rm3.} Apply the program \itTib dex to\/ {\rm test.ref\/}
\smallskip\par\hskip40pt{\tt tibdex test} \hskip1em (the {\tt .ref} is appended
automatically)\smallskip
\par This creates an inverted index\/ {\rm INDEX\/} in the directory.

\item{\rm4.} Apply \itTib{} to\/ {\rm test.tex\/}.
\smallskip\par\hskip40pt{\tt tib test.tex}
\par or
\par\hskip40pt{\tt tib test}\smallskip
\par {\rm(}the extension\/ {\rm .tex\/} need not be part of the call\/{\rm)}. 
The output is the file\/ {\rm test-t.tex}, which is ready for\/ \TeX.

\item{\rm4.L.} For \itLaTeX, follow the instructions in\/ {\rm test.tex\/} before
performing step 4.

\item{\rm5.} Process\/ {\rm test-t.tex\/} with \TeX{} or \itLaTeX{} as usual.
\bigskip}\noindent
This call sets default options.  A large variety of formatting options
is available.  Some of them are: other fonts (old English, boldface ...),
alphabetizing and other sorts of sorts, replacing successive
listings of identical
author(s) by underlines, other citation styles (3 letter codes from authors'
names, authors' names and date, superscripts), reversing and/or abbreviating
authors' names, caps-small caps for names, hyphenating strings of references
in citations, footnotes instead of endnotes, other listing formats.  Any
combination of these (and others) can be packaged in a format file and called
with the \OPTCH s~\<style> option.  For demonstrations of some of these,
repeat steps 4-5 with the following calls on {\it test.tex} (see also
section~3):
\smallskip{\tt
\par\indent\indent tib \OPTCH s demo1 test
\par\indent\indent tib \OPTCH s demo2 test {\rm(for plain \TeX)}
\par\indent\indent tib \OPTCH s demo2l test {\rm(for \LaTeX)}
\par\indent\indent tib \OPTCH s demo3 test {\rm(for plain \TeX)}
\par\indent\indent tib \OPTCH s demo3l test {\rm(for \LaTeX)}
\par\indent\indent tib \OPTCH s demo4 test
\par\indent\indent tib \OPTCH s demo5 test
\par\indent\indent tib \OPTCH s demo6p test {\rm(for plain \TeX)}
\par\indent\indent tib \OPTCH s demo6l test {\rm(for \LaTeX)}}.
\smallskip

\noindent The last two call for footnotes; note the instructions in
{\it test.tex}. Note that occasionally, reformatting or additional editing is 
called for.  \Tib{} is not meant to cover {\it all\/} formatting possibilities.

\beginsection{.1} 2. Program calls

There are four programs in the \Tib{} package:
\medskip\halign{\indent\indent#\hfil&\qquad{\it#}\hfil\cr
\Tib&bibliographic preprocessor for \TeX{} documents,\cr
\Tib dex&makes inverted index from database\/{\rm(}s\/{\rm)},\cr
\Tib list&lists all members of the database\/{\rm(}s\/{\rm)},\cr
\Tib look&interactively locates listings in the database\/{\rm(}s\/{\rm)}.\cr}
\medskip
We consider the specifications for each.  In the calls below angle brackets
(\<name>) enclose names to be supplied by the user.  Square
brackets (\[\OPTCH {\it flag}]) enclose optional items.  The brackets
are not part of the call.  The space indicated between a flag and a
\<name> can be omitted.  The flags need not be used in the order indicated
below; files are processed in the order they appear, left to right.
Note there is a distinction between {\it index\/}
files and {\it reference\/} files.  The latter is the database created by
the user; the former is created by \Tib dex.

\centerline{\vrule height0pt depth.5pt width8pc}
\par\vskip0pt plus.3\vsize\penalty-250\vskip0pt plus-.3\vsize
{\noindent\raggedright\tt 
\leftline{tib \[\OPTCH d \<directory>] \[\OPTCH i \<include file>]
     [\OPTCH j] \[\OPTCH n \<initial flag>]
     \[\OPTCH p \<private index file\/{\rm(}s\/{\rm)}>]}
     \rightline{\[\OPTCH s \<style file>]
     \[\OPTCH x] \[\OPTCH z] \[\OPTCH $|$] \[\<input
                file\/{\rm(}s\/{\rm)}>]}}
\smallskip
\noindent\Tib{} is a program to construct a bibliography for a \TeX{} file
and to include calls to macros files so that \TeX{} formats the citations
and bibliography in any of a number of styles.
The {\it input file} is a \TeX{} file augmented with incomplete or keyed
citations surrounded by \Tib{} escape characters, as described in section~4.
Multiple input files are separated by spaces on the call and amalgamated
into one output file.  If \<input file> is omitted, one prompt is given.
If the input file is named {\it file\/} or {\it file.tex},
the output file is named {\it file-t.tex}, unless the input file is
{\it stdin}, in which case the output file is {\it stdout}.
The following are the options:
\par{\leftbox5pc\def\tablemark{\OPTCH }\tableset

\tableentry{d \<directory>}Private directory of \Tib{} files.  Obviates
\OPTCH i~option.  See Table~6.

\tableentry{i \<file>}Include file of macros and \Tib{} commands.
See sections 3 and~5.
This option is used if there are private macro/command file(s).

\tableentry{j}Process {\tt\\input} files.

\tableentry{n \<initial flag>}Number (nonnegative) used as initial
numerical citation flag (default 1).  Ignored for nonnumerical flags.

\tableentry{p \<files>}Private index files, separated by commas.
The default is the file {\it INDEX\/} in the working directory.

\tableentry{s \<file>}Style file, which contains formatting instructions and
also may call other files.  Style files are described in detail in section~6.
The available style files are described in section~3.

\tableentry{x}Output to {\it stdout}.

\tableentry{z}Silent run.  Informational (but not warning or error)
messages are suppressed.

\tableentry{$|$}Pipe.  Input is {\it stdin\/}; output is {\it stdout}.  Silent.
\par}\centerline{\vrule height0pt depth.5pt width8pc}

\par%\vskip0pt plus.3\vsize\penalty-250\vskip0pt plus-.3\vsize
{\noindent\tt
\leftline{tibdex \[\OPTCH c \<common-word files>] \[\OPTCH k \<key number>]
       \[\OPTCH l \<length of keys>] \[\OPTCH n \<initial flag>]}
       \rightline{\[\OPTCH p \<private output file>] \[\OPTCH z]
       \[\OPTCH \%\<string>] \<reference file\/{\rm(}s\/{\rm)}>}}
\smallskip
\noindent\Tib dex makes an inverted index from reference file(s).  The
reference files are described in section~6.  Names of multiple reference files
are separated by spaces.  The output is an inverted index for use by
\Tib{} and \Tib look.  The output index must not be moved or
the links to the reference files will be broken.
The following are the options:
\par{\leftbox5pc\def\tablemark{\OPTCH }\tableset

\tableentry{c \<file>}Common-word list, one word per line.  Common words
are not used as keys (default \TCOMMON).

\tableentry{k \<number>}Maximum number of keys kept per record (default 100).

\tableentry{l \<number>}Maximum length of keys (default 6).

\tableentry{n \<initial flag>}Number (nonnegative) used as initial
numerical citation flag (default 1).  Ignored for nonnumerical flags.

\tableentry{p \<file>}Private output file (default {\it INDEX\/} in the
current directory).

\tableentry{z}Silent run.  Informational (but not warning and error)
messages are suppressed.

\tableentry{\%\<string>}Ignore lines in the reference file that begin 
with \%x where x is in {\it string\/} (see Table~10) (default CNOPVcnopv\\\%).
\par}\centerline{\vrule height0pt depth.5pt width8pc}

\par\vskip0pt plus.3\vsize\penalty-250\vskip0pt plus-.3\vsize
{\noindent\raggedright\tt 
     tiblist \[\OPTCH d \<directory>] \[\OPTCH i \<include file>]
     \[\OPTCH s \<style file>] \[\OPTCH x] \[\OPTCH z] \[\OPTCH $|$] 
     \[\<reference file\/{\rm(}s\/{\rm)}>]}
\smallskip
\noindent\Tib list makes a formatted plain \TeX{} file of all entries in the
input reference file(s).  Names of multiple files are separated by spaces.
If \<input file> is omitted, one prompt is given.  Unlike \Tib, \Tib list
does not use inverted indices, but directly processes the reference files.
The following are the options:
\par{\leftbox5pc\def\tablemark{\OPTCH }\tableset

\tableentry{d \<directory>}Private directory of \Tib{} files.  Obviates
\OPTCH i~option.  See Table~6.

\tableentry{i \<file>}Include file of macros and \Tib{} commands.
See sections 3 and~5.
This option is used if there are private macro/command file(s).

\tableentry{s \<file>}Style file, which contains formatting instructions and
also may call other files.  Style files are described in detail in section~5.
The available style files are described in section~3.

\tableentry{x}Output to {\it stdout}.

\tableentry{z}Silent run.  Informational (but not warning and error)
messages are suppressed.

\tableentry{$|$}Pipe.  Input is {\it stdin\/}; output is {\it stdout}.  Silent.
\par}

\noindent Note: the \OPTCH p~option does not cause an error, but is ignored.
\par\centerline{\vrule height0pt depth.5pt width8pc}

\par\vskip0pt plus.3\vsize\penalty-250\vskip0pt plus-.3\vsize
{\noindent\raggedright\hangindent1pc\hangafter0\tt
          tiblook \[\OPTCH c \<common-words file>]
          \[\OPTCH l \<length of keys>] \[\OPTCH p \<private indices>]
          \[\<keywords>]}
\smallskip
\noindent\Tib look locates entries in reference files from keywords.
If keywords are not entered on the command line, \Tib look gives
instructions and operates interactively.  \Tib look, like \Tib, works
through inverted indices to get to the reference files.

The following are the options:
\par{\leftbox5pc\def\tablemark{\OPTCH }\tableset

\tableentry{c \<file>}Common-word list, one word per line.  Common words
are not used as keys (default \TCOMMON).

\tableentry{l \<number>}Maximum length of keys (default 6).

\tableentry{p \<files>}Private index files, separated by commas.
The default is the file {\it INDEX\/} in the working directory.

\tableentry{\<keywords>}Keywords for noninteractive search.
\par}\centerline{\vrule height0pt depth.5pt width8pc}
\par\vskip0pt plus.1\vsize\penalty-250\vskip0pt plus-.1\vsize

\bigskip
\par\noindent  The following can optionally 
be set as variables in the environment:
\medskip\par{\leftbox5pc\def\tablemark{}\tableset
\tableentry{\rm TMACLIB}Directory for macro files (no directory-separator
character on the end).
\tableentry{\rm TMPDIR}Scratch directory for temporary work files (no
directory-separator character on the end).
\tableentry{\rm COMFILE}File of common words.
\tableentry{\rm SYSINDEX}System index file.
\tableentry{\rm DEFSTYLE}Default style file.
\par}\centerline{\vrule height0pt depth.5pt width8pc}

\bigskip
\par\noindent  The options permit a variety of possibilities in file
organization.  At one extreme there can be a number of specialized 
reference files and \Tib dex can be run
on particular ones to create an index for each particular document.  At the
other extreme, there can be one master reference file and one master
index in a dedicated directory.  This index can be accessed by \Tib{}
with the \OPTCH p~option.  In this case the \Tib{} programs could be {\it aliased\/}
(or called from macros) so this index is automatically accessible.  The same
is true of private command files which are accessed with the \OPTCH i~option or made
available with the \OPTCH d~option.

\beginsection{.1} 3. Available styles

The selection of style file for the \OPTCH s~option for the call to 
\Tib{} is the basic choice and is often the only choice necessary.
It controls the format style of the citations and reference list.  A
number of styles are supplied; they are listed for reference (Tables 1 \&~2).
A {\it name\/} listed is called by the option {\tt \OPTCH s~\<name>}
(although {\it name\/} is only part of the actual name of the file).  The
effect of the choice on \Tib{} is described in section~5.  There are 
a number of general styles and variations which are listed in Table~1.
Also a number of journal styles are available.  Journal styles
currently available are listed in Table~2.  One of the purposes
of \Tib{} is generating citations and reference lists in journal styles
so that papers can be sent to journals as \TeX{} files.  As journals develop
format specifications for \TeX{} files, more journal styles will be
developed and refined to those specifications.  Conversely, a journal
which accepts papers in \TeX{} form and which has
a copy of \Tib{}, or at least appropriate {\it .ttx\/} files
(see section~5), could process a paper set in \TeX{} with \Tib{}
control sequences and format it to its own journal style.  See also the
file {\tt\TDOCDIR\DIRSEP Styles}.

\midinsert
\centerline{\bf Table~1.  General format styles}\smallskip
{\tt\catcode`\u=12\parindent17pt
\par num \hskip2pc{\rm(default unless reset at installation or in environment)}
\par numo, numos, numb, numbs, numu, numub, numubs, numus, numul,
numubl, numubsl
\par alpha, alphab
\par nmdt, nmdtb
\par footp, footl
\par intext, slyd}
\medskip
\centerline{Meanings:}
{\leftbox5pc\def\tablemark{}\tableset
\par\tableentry{num}standard numerical citations
\par\tableentry{alpha}3 letter alphabetic citations
\par\tableentry{nmdt}citations made from names and date
\par\tableentry{foot}footnotes
\par\tableentry{o}old English
\par\tableentry{b}some boldface
\par\tableentry{s}sorted (alphabetized)
\par\tableentry{u}superscripts (up)
\par\tableentry{p}plain \TeX
\par\tableentry{l}\LaTeX
\par\tableentry{intext}references in text
\par\tableentry{slyd}for making slides
\par\centerline{\vrule height0pt depth.5pt width8pc}}
\centerline{\bf Table~2.  Journal format styles}\smallskip
{\leftbox5pc\def\tablemark{}\tableset
\par\tableentry{acm}Association of Computing Machinery (all journals)
[{\tt acml} for \LaTeX]
\par\tableentry{}American Mathematical Society (all journals)
\par\tableentry{amsa}\hskip1pc alphabetical citations
\par\tableentry{amsd}\hskip1pc name-date citations
\par\tableentry{amsn}\hskip1pc numerical citations
\par\tableentry{aps}American Physical Society        
\par\tableentry{cmp}{\it Communications in Mathematical Physics}
\par\tableentry{epes}{\it Electrical Power and Energy Systems}
\par\tableentry{ijrr}{\it International Journal of Robotics Research}
\par\tableentry{ieee}Institute of Electrical and Electronic Engineers 
(all journals)
\par\tableentry{jgr}{\it Journal of Geophysical Research}
\par\tableentry{lala}{\it Linear Algebra and its Applications}
\par\tableentry{}Society for Industrial and Applied Mathematics (all journals)
\par\tableentry{siamd}\hskip1pc name-date citations [{\tt siamdl} for \LaTeX]
\par\tableentry{siamn}\hskip1pc numerical citations [{\tt siamnl} for \LaTeX]
\par\tableentry{spln}Springer {\it Lecture Notes\/} and other publications
\par\centerline{\vrule height0pt depth.5pt width8pc}}\endinsert

\Tib{} is not universally successful with all styles.  There are
several features which don't work well in slyd; these are detailed in
the master file {\tt\TMACDIR\DIRSEP slyd.tib}.  Moreover, so that the
alternate citation style (see section~4) works with footnotes, \Tib{}
uses its own citation numbers in footnotes in plain \TeX.  If numbered
footnotes are used for purposes other than citations, conflicts will
arise.  \Tib{} works acceptably with \LaTeX, since it uses the footnote
numbers generated by \LaTeX.  Certainly the same process can be made to
work in plain \TeX{} ({\it The \TeX book}, exercise 15.12).  In
addition, when using ``{\it loc.\ cit.}," \Tib{} refers only to the
author(s).  However, see the appropriate {\tt .ttx} files for
modifications to include the title also in the citation.  Also some
styles call for amalgamating multiple references into one footnote or
include comments and references in one footnote.  This is presently
beyond \Tib's capability.  For example, \Tib{} has considerable trouble
with the American Physical Society's style, which uses footnotes with
all the above features, and in addition collects them at the end as
endnotes.

\beginsection{.2} 4. The input document

\Tib{} operates on a \TeX{} file with incomplete citations.  It recognizes
its own set of escape sequences, which are summarized in Table~3.  For an
example document, see the appendix.  For each
such citation it locates the reference in a reference file, constructs the
citation in one of several styles and on demand, creates a reference list.
In this section we discuss the way \Tib{} reads the file.

An {\it ordinary incomplete\/} citation is surrounded by the characters
{\tt [.} {\tt .]}.  For example:
\medskip\centerline{\tt
        \dots in Arnol'd's book,[.arnold singularities.]\ especially\dots}
\medskip
\noindent Words in the incomplete citation (separated by spaces)
are matched against the inverted index created by \Tib dex
and hence against the source reference files.  The words are any words
in the reference listing, except those in the excluded fields (see section
6 for a discussion of the reference files; see the \OPTCH \%~option for \Tib dex
for excluded fields).  \Tib{} first searches the default index ({\it INDEX\/})
or the indices designated with the \OPTCH p~option, in order from left to right
and then the system index, if there is one.  If an entry is found that
matches all words, that reference is used. If no reference entry is found
or if multiple entries are found, a warning message is sent to the console.
The case of the letters in the citation is immaterial.  The words in the
citation are truncated (by default to 6 letters; see the \OPTCH l~option for
\Tib dex).  Thus {\tt [.arnold singularities.]} and {\tt [.ARNOLD singul.]}
effect the same result.  Embedded newlines, tabs and extra spaces are ignored.
The format of the citation is controlled by \Tib{} format files (section~5).

Note that punctuation is placed to the left of the citation.  In some
citation styles (e.g.\ brackets), punctuation comes after the citation,
and in others (e.g.\ superscripts), it comes before.  \Tib{}
looks at the character immediately preceding the {\tt [.}\ and generates
control sequences which are interpreted by \TeX{} via macro files appropriate
to the citation style.  Punctuation to the right of citations is passed
through unparsed to \TeX.
Such a citation placed in a line after a \TeX{} comment character `\%'
(or other character of category~14)
will cause the cited reference to appear in the listing, but not in the text.

Multiple citations in one citation mark are indicated by commas:
\medskip\centerline{\tt
       \dots equations.[.arnold singularities, arnold equations.]}
\medskip

\noindent {\it Additional information\/} can be placed at the end of a
citation by enclosing it in angle brackets {\tt< >}, e.g.\
\medskip\centerline{\tt
       \dots in.[.arnold singularities <, chap.\catcode`\~=12{~}2>.]}
\medskip
\noindent In citation styles which use brackets, such insertions are enclosed
{\it verbatim\/} in the brackets.  In other styles, such as footnotes, the
information is appended to the reference listing.

An {\it alternate citation} style can be used by surrounding the incomplete
citation with {\tt<. .>}.  This is mostly for citations in running text.
Thus:
\medskip\centerline{\tt
       \dots discussed in reference <.arnold singularities.>.}
\medskip
\noindent Insertions are not permitted in this alternative style.  Neither is
punctuation handled specially; thus punctuation should be put in its
usual place.

A reference list is constructed and inserted in the document where the
sequence {\tt .[]} is encountered at the beginning of a line.  The remainder
of that line is processed and inserted before the listing.  The style and
format of the listing is controlled by \Tib{} format files.

If for some reason, one of \Tib's sequences is part of the text
of the document, break up the sequence so \Tib{} will not recognize it
(e.g.{} {\tt [\{\}.} or {\tt\$x< .5\$}).  
Note that the \Tib{} escape sequences are transparent to
\TeX{} so they do not interfere with \TeX{} processing.  Thus a \TeX{}
document can be debugged without running \Tib{}.  The citations
will appear as typed in the document.  After all \TeX{} bugs are eliminated,
then \Tib{} can be used for the final one or two runs.

\midinsert
\centerline{\bf Table~3.  \bfTib's escape sequences}\smallskip
{\leftbox10pc\def\tablemark{}\tableset

\tableentry{[.{\it key words}.]}Citation,

\tableentry{<.{\it key words\/}.>}Alternate citation,

\tableentry{[.\ $\dots$<{\it insertion\/}>.]}Insertion in citation,

\tableentry{.[]}Make reference list after this line (must be at beginning
of line).
\par}\endinsert

\beginsection{.2} 5. Styles and files

\Tib{} controls the format of the citations and reference lists by means
of files of \Tib{} and \TeX{} commands.  For the most part the details of such
controls can be ignored, with three possible exceptions.  

One: it is possible
to ``define" code words for use in the reference files.  For example, a file of
1845 standard (= {\it Mathematical Reviews}) journal abbreviations is supplied
and \Tib{} will automatically abbreviate journal names.  The process is
discussed below in the subsection on definitions.  Additionally, private
abbreviations can be defined and the standard abbreviations can be overridden.
The method for doing such is discussed in this section.  

Two: \Tib{} can automatically format
99\kern.25em\raise.5ex\hbox{\the\scriptfont0 {44}}
\kern-.35em/\kern-.15em\lower.25ex\hbox{\the\scriptfont0 {100}}\%\ \thinspace
of citation work.  However it is only a computer
program, and on occasion will require human assistance.  There will be
references which \Tib{} just cannot format correctly.  Or an overfull
{\tt\\hbox} may crop up.  The output of \Tib{} is a \TeX{} document
which may be edited before applying \TeX.  However \Tib{} puts out
a small jungle of control sequences and it is necessary to have some idea how
to hack through them.  

Three: concerning those control strings, \Tib{}
reserves fifty or so control strings for its use.  The definitions of these
strings can be modified for particular effects; however unintentional
modification can result in chaos.  Thus it is at least necessary to
know what the reserved strings are.

\beginsubsection{.2} Reserved control strings

We take care of the last point first.  Table~4 is a complete list
of global control strings which \Tib{} may insert into a document.
Also \Tib{} uses the plain \TeX{} strings {\tt\\bgroup}
and {\tt\\egroup} as implicit left and right braces.  For
completeness, it explicitly defines them with their plain \TeX{} meanings.
In addition \Tib{} sets a number of other control strings.  However
these are local and thus will not conflict with their possible other use
in other parts of the document.  For the meaning of these strings,
see the file {\tt\TMACDIR\DIRSEP Macros.ttx}, where
these control strings are given their default definitions.

\midinsert
\centerline{\bf Table~4.  Reserved global control strings}
\smallskip
\centerline{(See file {\tt\TMACDIR\DIRSEP Macros.ttx} for definitions)}
\smallskip
{\tt\settabs4\columns

\+\\TMACLIB		&\\aand		&\\Aand		&\\aandd\cr
\+\\Aandd		&\\ACitefont	&\\acomma	&\\Acomma\cr
\+\\Authfont		&\\Citebrackets	&\\Citebreak	&\\Citecomma\cr
\+\\Citefont		&\\Citehyphen	&\\Citenamedate	&\\Citeparen\cr
\+\\Citesuper		&\\eand		&\\Eand		&\\eandd\cr
\+\\Eandd		&\\ecomma	&\\Ecomma	&\\Flagfont\cr
\+\\Flagstyle		&\\Initgap	&\\Initper	&\\LAcitemark\cr
\+\\Lbang		&\\Lcitemark	&\\Lcolon	&\\Lcomma\cr
\+\\LIcitemark		&\\Lperiod	&\\Lpunct	&\\Lqquote\cr
\+\\Lquest		&\\Lquote	&\\Lrquote	&\\Lscolon\cr
\+\\Lspace		&\\Nameand	&\\Nameandd	&\\Namecomma\cr
\+\\RAcitemark		&\\Rbang	&\\Rcitemark	&\\Rcolon\cr
\+\\Rcomma		&\\Reffont	&\\Refformat	&\\Refstd\cr
\+\\Refstda		&\\Resetstrings	&\\Revcomma	&\\RIcitemark\cr
\+\\Rperiod		&\\Rpunct	&\\Rqquote	&\\Rquest\cr
\+\\Rquote		&\\Rrquote	&\\Rscolon	&\\Rspace\cr
\+\\Smallcapsaand	&\\Smallcapseand&\\Smallcapsfont&\\Titlefont\cr
\+\\Tomefont		&\\Underlinemark&\\Volfont	&\\zstr\cr
\+\\Zstr		&\\ztest	&\\Ztest\cr
\settabs3\columns
\+\\journalarticleformat    &\\conferencereportformat  &\\bookformat\cr
\+\\technicalreportformat   &\\bookarticleformat       &\\otherformat\cr
}\endinsert

\Tib{} is intended to be compatible with virtually all possible \TeX s,
in particular plain \TeX, \LaTeX, and \AmSTeX.
With only a few exceptions, all macros in \Tib{} are written
in terms of primitive \TeX{} (starred commands in D. Knuth's
{\it The \TeX book}).  The exceptions are:
\par{\leftskip2pc\parindent0pt
\item{(1)} fonts {\tt\\rm} and {\tt\\sl} are assumed loaded; also
{\tt\\sevenrm} if {\tt AX} or {\tt EX} is used,
\item{(2)} footnote
macros for plain \TeX{} and \LaTeX{} are used in the appropriate macro files,
\item{(3)} the files of journal names are for Latin fonts and
include plain \TeX{} diacritical marks
(D. Knuth's {\it The \TeX book}, p.~52 or L. Lamport's \itLaTeX, p.~40);
in particular, if a Cyrillic font is to be
used, different journal word-definition files must be used.\par}
\noindent On the other hand, \Tib{} requires
that the category codes of plain \TeX{} be in force
(see {\it The \TeX book}, p.~37).  For example `\{' and `\}'
are assumed to be grouping characters, `\%' is assumed to terminate a
line, etc.\ \Tib{} occasionally puts out something in 
{\tt\$math mode\$}, but creates neither displayed nor tabular material.

\beginsubsection{.2} \bfTib{} files

\midinsert
\centerline{\bf Table~5.  A typical {\tt .tib}\ file}
{\tt\obeylines\obeyspaces%
\#
\#  standard format
\#
\#         include word-definition file (journals and publishers)
I TMACLIB amsabb.ttz
H         hyphenate strings of citations

\%The lines below are copied verbatim into the output document as TeX commands.
\%First the file \\TMACLIB Macros.tib is \\input with Macros and default settings.
\%The control string \\TMACLIB is just a path.
\%
\\input\\TMACLIB\ stdbra.ttx \%TeX macros for formatting reference list
\\Refstda\\Citebrackets \%set general formats for reference list and citations
}\endinsert

\noindent The \OPTCH s and \OPTCH i~options of the call to \Tib{} both cause \Tib{} to
process files.  The files are processed in their orders in the call to \Tib.
These files (Table~5) contain \Tib{} format commands (Table~7) which
control how \Tib{} processes the input file and/or \TeX{} control
strings which are printed {\it verbatim\/} in the output document.  In turn
these files can contain a command to process further files.  In general
the \OPTCH s~option causes \Tib{} to process a master style file which in turn
effects processing of subsidiary files.  For the most part the user need 
only be concerned with the master file.  The \OPTCH d and \OPTCH i~options are available
if some private commands (such as definitions for code words) or styles
are to be incorporated.
Although any \Tib{} command file can contain either \Tib{} commands or \TeX{} 
control strings or both, there is a general extension-naming convention:
\medskip
{\leftbox3.5pc\def\tablemark{}\tableset\everypar={\hangindent1em\hangafter1}
\smallskip\tableentry{.tib}Master command files, which are usually called by
the \OPTCH s~option. These files contain enough commands to completely set a style.
It is possible for one of these files to call another.
\smallskip\tableentry{.ttz}Subsidiary files consisting of \Tib{} commands
and possibly \TeX{} commands, which are called by {\tt .tib} files.
\smallskip\tableentry{.ttx}Files consisting of \TeX{} macros which are
often {\tt\\input} by commands from the master {\tt .tib} file.
\par}\medskip

\noindent Thus there are files
\medskip
\par{\leftbox5pc\def\tablemark{}\tableset
\par\tableentry{\tt num.tib} setting standard numerical flags enclosed in 
brackets,
\par\tableentry{\tt amsabb.ttz} containing definitions 
(abbreviations) of code words for journals, and 
\par\tableentry{\tt ieee.ttx} containing the \TeX{}
macros for formatting citations and references in the style of IEEE
journals.
\medskip}

\midinsert\centerline{\bf Table~6. Order of file search}\medskip
\par\vskip0pt plus4\baselineskip\penalty-250\vskip0pt plus-4\baselineskip
\par\indent\indent\indent first: look in the current directory for \<filename>,
\par\indent\indent\indent second: append {\tt .tib} to \<filename> 
and look in the current directory,
\par\indent\indent\indent third: if the \OPTCH d~option is used, look in that 
directory for \<filename>,
\par\indent\indent\indent fourth: append {\tt .tib} to \<filename> and look 
in the \OPTCH d~directory,
\par\indent\indent\indent fifth: look in the system directory for \<filename>,
\par\indent\indent\indent sixth: append {\tt .tib} to \<filename> and look 
in the system directory,
\par\indent\indent\indent seventh: quit with an error message.
\par\endinsert
\bigskip
\midinsert
\centerline{\bf Table~7.  \bfTib{} commands}\smallskip
\par{\leftbox10pc\def\tablemark{}\tableset
\everypar={\hangindent1em\hangafter1}

\tableentry{\#}Comment, line ignored

\tableentry{A}Format authors' names depending on following characters
as follows:

{\leftbox11pc\tableset
\tableentry{AA}Abbreviate authors' first names

\tableentry{AR\<num>}Reverse first and last names of first {\it num}
authors.  If {\it num} is omitted, all authors's names are reversed.

\tableentry{AX}Print authors' names in caps-small caps.  If {\tt AA} and
{\tt AX} are called for, the abbreviated first names are not put in
caps-small caps (relevant only for first names not beginning with a capital 
letter).  Defining {\tt\\Authfont} as a caps-small caps font [such as 
{\it amcsc\/} (={\tt\\sc} in \LaTeX)] if one is available, 
is an alternative to using {\tt AX}.
\par}

\tableentry{E}Equivalent to the {\tt A} command, except for editors.

\tableentry{C\<template>}Citation template.  See discussion in text.

\tableentry{D \<word> \<definition>}Definition of word.  See discussion in text.

\tableentry{f}Footnotes.  Print out reference immediately, instead of
saving for list (in which case the escape sequence {\tt .[]} is not used).

\tableentry{F}Use special citations flags from reference file if they exist,
instead of constructed flags.

\tableentry{I \<filename>}Include {\it filename\/} for processing; 
{\it filename\/} may contain further \Tib{} commands.

\tableentry{H}Hyphenate three or more citations in one citation mark that 
refer to successive entries in the reference list.  For example, the citation 
2,3,4,5 is replaced by 2--5.  The {\tt H}~option implies the {\tt O}~option.

\tableentry{L}Use ``{\it loc.\ cit.}" and ``{\it ibid.}" 
for duplicate references.

\tableentry{N\<string>}Turn off options indicated by {\it string}, which must
be composed of the letters A (for AA), F, H, O, R, S, X (for AX).

\tableentry{O}Citations in one citation mark are sorted according to the order 
given by the reference list.

\tableentry{P}Print only first page numbers of articles.

\tableentry{S\<template>}Sort reference list according to {\it template}.  See
discussion in text.

\tableentry{T\<string>}Generate trailing character strings for reference fields
coded in {\it string}.  See discussion in text.

\tableentry{U}Replace two or more successive reference listings of identical
authors by underlines.
\par}\endinsert

\Tib{} searches for \<filename> called with the \OPTCH s or \OPTCH i~option in the call, or
the I~command in a file (see next subsection) in the order listed in Table~6.
Thus system {\tt .tib} files or private {\tt .tib}
files can be called with short names.  All other files require full names.
Private files can be kept in the working directory or a directory designated
with the \OPTCH d~option.  If the \OPTCH d~option is to be used regularly, the calls to
\Tib{} and \Tib list could be {\it aliased\/} or put in macros.
The code {\tt TMACLIB} (followed by one or more spaces)
is defined as the system directory \TMACDIR{}
for use in command files, and the \TeX{} control string {\tt\\TMACLIB}
is defined as the system directory name, for use in {\tt\\input} commands.

A \Tib{} output file starts with the \TeX{} commands
\smallskip\hskip20pt
{\tt\\def\\TMACLIB\{\TMACDIR\DIRSEP\}\\input\\TMACLIB\ Macros.ttx}.  
\smallskip\noindent The file {\tt TMACLIB\DIRSEP Macros.ttx\/} contains
default definitions for the reserved control strings.  Then any \TeX{}
commands from the files called with the \OPTCH s or \OPTCH i~options (and commands
from files called by these files) are listed.  Then comes the processed
document.  There are also {\tt\\message} commands to list the files
called (in order with nesting) on the terminal and in the {\tt .log} file
during the subsequent \TeX{} run.
Note that any default \TeX{} definition can be overridden by a redefinition
either in a file called with \OPTCH i or in the document proper.  Similarly
\Tib{} commands can be added in files called with \OPTCH i.  If there is a
standard private such file (e.g.\ containing definitions), it could be kept in
a special directory and the call to \Tib{} could 
be {\it aliased\/} or put in a macro so that this file is always included.

\beginsubsection{.05} \bfTib{} commands

\Tib{} commands begin in the first column of a file and are one-letter commands
possibly followed by character sequences.  Table~7 lists the commands.
The first line in the file that does not match one of the items in Table~7
causes that line and all subsequent lines to be copied {\it verbatim\/} to the
output file.

\beginsubsection{.1} Citations

\midinsert
\centerline{\bf Table~8.  Citation styles}
\medskip\par{\leftbox2.5pc\def\tablemark{}\tableset
\everypar={\hangindent1em\hangafter1}

\tableentry{0}No citation -- used for inserting reference in the body of the 
text.
\smallskip
\tableentry{1}Numerical citation, starting at 1 (default style).
\smallskip
\tableentry{2}Alphabetic citation constructed from last names of author(s):
if one author then first 3 letters of name; if two authors then
first 2 letter of name of first and first letter of name of second;
if 3 or more authors then first letter of name of first three.
If the last name of an author does not begin with a capital letter,
the citation is extended until the first capital letter is encountered.
Can be followed by further code which denotes additional fields from the
reference file.  For example the template {\tt 2D-2} means follow the
alphabetic citation with the last two characters in the date field.
The two fields are separated by the \TeX{} control string {\tt\\Citebreak}.
If {\tt\\Citebreak} is defined to be empty, the template {\tt 2D-2} will
effect citations of the form ``AuD77."  If there are no authors, citations
are made from editors' names.  If there are also no editors, the issuer
is used.
\smallskip
\tableentry{3}Last names of authors or first author {\it et al.}\ if more
than three authors. Can be followed by further code which denotes additional 
fields from the reference file, as above.  If {\tt\\Citebreak} is defined to 
be \{, \}, the template {\tt 3D-4} will effect citations of the form 
``Hale, 1983."  If there are no authors, editors or the issuer is used as 
above.
\medskip
\tableentry{4--9}Available for future use or for local styles.
\par}\endinsert

\noindent The citation command {\tt C} determines the style of the citation.
The template is one number 0 through 3, which codes the citation,
possibly followed by further instructions.  The template 
codes are listed in Table~8.  The numerical citation style is the default.
%Each field in the template can be followed by either `u' or `l' and the
%field will be printed in upper or lower case respectively.  
If necessary,
the character `@' can be used to separate objects in the citation template.
If two citations are identical (e.g.\ two works by one author
in one year), \Tib{} appends letters `a', `b', etc.
at the end of the citation to resolve ambiguities.

\beginsubsection{.1} Sorting

This command causes the reference list to be sorted according to the
order encoded in \<template>.  The template consists of letters
denoting fields of the reference file, possibly followed by numbers.
For example, the template AD will effect a sort on authors' last
names, with a secondary sort on the date.  The template A1D will effect
a sort on the first authors' last names, with a secondary sort on the date.
A minus sign after a field code will cause the sort to be in the reverse
order, e.g.\ anti-alphabetically.  Two references which test equally in the
sort will be listed in order of citation.

\beginsubsection{.05} Trailing characters

If the \Tib{} {\tt T} command is set, for each {\it field\/} indicated in
{\it template}, \Tib{} prints out a control string {\tt\\{\it field\/}trail}
which is defined as the last character in {\tt\\{\it field\/}str}.  This
sometimes is used for determining the punctuation after the {\it data\/} in
the listing.

\beginsubsection{.2} Definitions

\Tib{} is able to store a list of code words and their expansions.
Such word-definition pairs are inserted with the {\tt D} command, followed
by a space, followed by the code {\it word}, followed by another space,
followed by the {\it definition} (expansion), e.g.
\smallskip\par\hskip20pt {\tt D PROC Proceedings}\smallskip
\par\noindent or
\smallskip\par\hskip20pt {\tt D COMMA1 Comm.\ ACM}\smallskip
\par\noindent
Code words are restricted to alphanumeric, ampersand and underscore characters.
Whenever \Tib{} encounters a $|${\it word\/}$|$ (enclosed between two vertical
bars) in a reference file, it searches its list and replaces {\it word} with
{\it definition}.  Moreover {\it definition} can itself contain 
$|${\it another\_word\/}$|$.  \Tib{} will iterate the process until all
{\it words} are expanded.  Also, more than one field can be part of the
definition.  For example (with reference to Table~10) the word-definition pair
\smallskip{\par\hskip20pt\tt
D AcPress Academic Press\\
\par\hskip20pt\%C $|$NYC$|$
}\smallskip
\noindent causes {\tt$|$AcPress$|$} to expand to the publisher
``Academic Press" and the city ``$|$NYC$|$", which of course further
expands to ``New York, NY."  Both fields are automatically available.
Similarly {\tt$|$LNMath$|$} expands to the series ``Lecture Notes in 
Mathematics," the publisher ``Springer-Verlag" and the cities 
``New York--Heidelberg--Berlin."

Files of word-definition pairs can be collected and
processed by \Tib{} before processing the document.
Thus expansions which are different in different styles can 
be changed by using different definition files.  For example, one style
may require ``Proceedings" where another may require ``Proc."  Furthermore
files of standard abbreviations can be made automatically available.
In particular, {\it Mathematical Reviews\/} has supplied its databases of full
journal names and abbreviations.  These are available as 
{\it amsfll.ttz\/} and {\it amsabb.ttz\/} respectively, and are 
automatically processed by the supplied format styles.\footnote{$^*$}{\Tib{} 
thanks {\it Mathematical Reviews\/} for its
generosity in providing these files as a service to the
scientific community.  The data in these files are copyright \copyright\ by
{\it Mathematical Reviews\/} and are not to be used
in any proprietary manner.}
The styles of most journals call for abbreviated journal names in reference
lists, although a few (such as the 
{\it Journal of Optimization Theory and Applications\/}) require full names.
The 6-letter codes may be obtained by perusing the files. Any definition can
be overridden by a later word-definition pair.  Moreover, since \Tib{}
iterates the process of expanding words, private (perhaps shorter) codes
can be created which expand to the ones in the files.  These could be kept 
in another file which is accessed with the \OPTCH i or \OPTCH d~option.  For example:
\smallskip\par\hskip20pt {\tt D CACM $|$COMMA1$|$}\smallskip
\noindent There are other word-definition files
{\it pub.ttz\/} (publishers) and {\it misabb.ttz\/} and {\it misfll.ttz\/}
(miscellaneous) which are automatically included with the journal files.
For run-time efficiency, extensive word-definition files should be amalgamated
as much as possible and sorted alphabetically on the {\it word\/}s.

\beginsubsection{.2} Reference lists

For each reference to be listed, \Tib{} generates a local sequence of
control strings for \TeX.  The interpretation of these control strings
is governed by the macros in the selected {\it .ttx\/} file.  The relation
of control strings with reference file fields is discussed in section~6.
In this section we discuss the control strings \Tib{} generates.  In Table~9
is listed a typical reference listing in a \Tib{} output file.

\midinsert
\centerline{\bf Table~9.  A typical \bfTib{} reference listing}\smallskip
{\obeylines\obeyspaces\tt
\{\\Resetstrings\%
\\def\\Loccittest\{\}\\def\\Abbtest\{\}\\def\\Capssmallcapstest\{\}\%
\noindent       \\def\\Edabbtest\{\}\\def\\Edcapsmallcapstest\{\}\\def\\Underlinetest\{\}\%
\\def\\NoArev\{0\}\\def\\NoErev\{0\}\\def\\Acnt\{1\}\\def\\Ecnt\{0\}\\def\\acnt\{0\}\\def\\ecnt\{0\}\%
\\def\\Ftest\{\ \}\\def\\Fstr\{10\}\%
\\def\\Atest\{\ \}\\def\\Astr\{Donald E. Knuth\}\%
\\def\\Ttest\{\ \}\\def\\Tstr\{The \\TeX book\}\%
\\def\\Itest\{\ \}\\def\\Istr\{Addison Wesley\}\%
\\def\\Ctest\{\ \}\\def\\Cstr\{Reading, MA\}\%
\\def\\Dtest\{\ \}\\def\\Dstr\{1984\}\%
\\Refformat\%
\}
}\endinsert

The control strings {\tt\\Loccittest}, etc.\ are printed out by \Tib{}
depending on the setting of various \Tib{} controls.  They are defined
as \{\} or \{\ \} depending on whether the control is off or on, respectively.
The control strings {\tt\\NoArev}, {\tt\\Acnt}, etc.\ are respectively set equal
to the numbers of authors' names to be reversed, the number of authors, etc.
These are for use in formatting, if needed.  For certain fields, \Tib{}
also prints out formatting aides.  For example, for listings with page
numbers, \Tib{} prints out a control string {\tt\\Pcnt}, which is
defined as \{\} or \{\ \} if there is one or more than one page, respectively,
so that for example, a choice can be made between ``p." and ``pp." in the
listing.  For each field {\it field\/} 
of the reference file which contains {\it data}, \Tib{} prints out
\smallskip\par\hskip20pt
{\tt\\def\\{\it field\/}test\{\ \}\\def\\{\it field\/}str\{{\it data\/}\}\%}.
\smallskip\noindent A new field can be inserted in the \Tib{} output file 
before running \TeX{} by inserting such a line.  In particular, anything put 
in the O field is appended to the end of the reference listing.
Also if need be, the {\it data\/} can be changed.  Depending on \Tib{} 
commands set, some fields, particularly author and editor fields,
may contain inserted \TeX{} control strings.  The control string
{\tt\\Resetstrings} resets all the {\tt\\{\it field\/}test}s and
{\tt\\{\it field\/}str}s to \{\} (except for the Z and z fields,
see Table~10).  The control string {\tt\\Refformat} effects the printing
of the listing.  Thus any changes between these two control strings affect
the final printed document.
%\vfill\eject

\beginsection{.3} 6. The reference file

\midinsert
\centerline{\bf Table~10.  Field tags}\smallskip
\par{\leftbox2pc\def\tablemark{\%}\tableset

\par\tableentry{A}Author(s) (may have multiple authors, separate 
field entry for each author in order)
\par\tableentry{B}Book title
\par\tableentry{C}City of publication
\par\tableentry{D}Date
\par\tableentry{E}Editor(s) (may have multiple editors, separate 
field entry for each editor in order)
\par\tableentry{F}Special citation flag, use is governed by \Tib{} 
{\tt F}~command
\par\tableentry{G}Government (NTIS) ordering number
\par\tableentry{I}Issuer (publisher)
\par\tableentry{J}Journal name or for unpublished conference report, 
the conference name
\par\tableentry{K}Keys for searching, not printed out
\par\tableentry{M}{\it Mathematical Reviews} number
\par\tableentry{N}Number of issue (journal or series)
\par\tableentry{O}Other information, appended to listing
\par\tableentry{P}Page numbers
\par\tableentry{R}Technical report identifier
\par\tableentry{S}Series title
\par\tableentry{T}Title of article or book
\par\tableentry{V}Volume number (journal or series)
\par\tableentry{Z}Reserved by \Tib{} for special insertions
\par\tableentry{a}Translator(s), also editor(s) of translated compilations
\par\tableentry{b}Translated book title
\par\tableentry{c}City of publication of translated item
\par\tableentry{d}Date of translated item
\par\tableentry{e}Author(s) 
of reviewed material; reviewers' names go in {\tt A} fields in order
\par\tableentry{i}Issuer of translated item
\par\tableentry{j}Translated journal name
\par\tableentry{k}Reserved for future use for secondary references
\par\tableentry{l}Language of translation
\par\tableentry{n}Number of translated item
\par\tableentry{o}Other information, inserted after book title
\par\tableentry{p}Pages of translated article
\par\tableentry{r}Identifier of translated technical report
\par\tableentry{s}Series of translated item
\par\tableentry{t}Title of translated article or book
\par\tableentry{v}Volume of translated item
\par\tableentry{z}Reserved by \Tib{} for special insertions
\par\tableentry{\\}Beginning of line of \TeX{} instruction(s)
\par\tableentry{\%}Comment (passed as \TeX{} comment)
\par}\endinsert

\noindent A reference {\it file\/} is a database file containing any
number of reference {\it items}, separated by one or more blank lines.
Reference items consist of reference {\it fields\/} which in turn
consist of data organized into field {\it tags\/} and field {\it data}.
The meaning of field tags is an extension of that of {\it bib\/} and is
suggested by that of {\it refer}.  However there are enough differences
that {\it bib\/} or {\it refer\/} reference files are not directly
usable with \Tib.  A field tag is a percent sign `\%' in column~1
followed in column~2 by a single character.  The currently recognized
tags are listed in Table~10.  Field data begins in column~4; the data
can consist of any printable characters.  Field data can be as long as
necessary and can extend into the next line.  Lines that do not begin
with a percent sign are treated as continuation lines.  Every line
(including continuation lines) must begin in column~1.  The {\tt A},
{\tt E}, {\tt a}, {\tt e} and {\tt\\} fields can be repeated as often
as necessary; other fields can occur at most once (more precisely the
last occurance of a field is the one used).  Fields can occur in any
order except that authors, editors, etc.\ are listed in order of
appearance.  Lines beginning `{\tt\%\\}' are inserted {\it verbatim\/}
into the output; they are assumed to be \TeX{} instructions.  Lines in
a reference item beginning `{\tt\%\%}' are comments.

\midinsert
\centerline{\bf Table~11.  The control string {\tt\\Refformat}}\smallskip
{\tt\obeylines\obeyspaces%
\\def\\Refformat\{\%Determines the kind of reference by the presence or
\%   absence of certain fields in the database listing, and calls the
\%   appropriate macro.
\noindent        \\if\\Jtest\\present
\noindent            \{\\if\\Vtest\\present\\journalarticleformat
\noindent                 \\else\\conferencereportformat\\fi\}
\noindent           \\else\\if\\Btest\\present\\bookarticleformat
\noindent              \\else\\if\\Rtest\\present\\technicalreportformat
\noindent                 \\else\\if\\Itest\\present\\bookformat
\noindent                    \\else\\otherformat\\fi\\fi\\fi\\fi\}}
\endinsert

As discussed in section~5, \Tib{} turns the field data in a reference
item into a sequence of \TeX{} control strings.  In each {\it .ttx} file,
there are six basic format macros.  Which one is used depends on the presence
or absence of certain fields in the sequence (unless the process is
overridden).  The control string {\tt\\Refformat} (Table~11),
which \Tib{} sets up to be processed by \TeX{} 
after the sequence of field strings (Table~9),
is contained in the file {\it Macros.ttx}, and causes \TeX{} to choose
one of the six.  The control string {\tt\\Resetstrings} defines {\tt\\present}
to be a space, so that if {\\\it field\/}test is {\{\ \}}, then 
{\tt\\if{\\\it field\/}test\\present} tests true.

\midinsert
\centerline{\bf Table~12.  A macro to print a reference item}\smallskip
{\tt\obeylines\obeyspaces%
\\def\\conferencereportformat\{\\Reffont\\let\\uchyph=1\\parindent=1.25pc\\def\\Comma\{\}\%
\noindent    \\sfcode`\\.=1000\\sfcode`\\?=1000\\sfcode`\\!=1000\\sfcode`\\:=1000\%
\noindent              \\sfcode`\\;=1000\\sfcode`\\,=1000\%\\frenchspacing
\noindent               \\par\\vfil\\penalty-200\\vfilneg\%\\filbreak
\noindent     \\if\\Ftest\\present\\Flagstyle\\Fstr\\fi\%
\noindent      \\if\\Atest\\present\\bgroup\\Authfont\\Astr\\egroup\\def\\Comma\{\\unskip, \}\\fi\%
\noindent       \\if\\Ttest\\present\\Comma\\bgroup\\Titlefont\\Tstr\\egroup\\def\\Comma\{, \}\\fi\%
\noindent        \\if\\Jtest\\present\\Comma\\bgroup\\Tomefont\\Jstr\\egroup\\def\\Comma\{, \}\\fi\%
\noindent         \\if\\Ctest\\present\\Comma\\bgroup\\Cstr\\egroup\\def\\Comma\{, \}\\fi\%
\noindent          \\if\\Dtest\\present\\kern.16667em(\\bgroup\\Dstr\\egroup)\\def\\Comma\{, \}\\fi\%
\noindent           \\if\\Otest\\present\\Comma\\bgroup\\Ostr\\egroup\\fi.\%
\noindent            \\vskip3ptplus1ptminus1pt\}\%\\smallskip}
\endinsert

The six macros {\tt\\journalarticalformat}, etc.\ 
that actually effect the printing of the reference listings are rather 
straightforward (see Table~12).  They check for the presence of
relevant fields and print them out in the desired form.  Thus they consist
mostly of a series of {\tt\\if\dots\\fi} conditional commands enclosing
printing commands.

If {\tt\\Reffont}'s selection for a particular reference item is 
unsatisfactory, it can be redefined locally on a one-time basis in the
\Tib{} output document before running \TeX, or permanently by including
control strings in the reference file (see the example below).  
Indeed of course, {\tt\\Refformat} or any
of the six formatting macros can be redefined in the document or in an
included file (called with the \OPTCH i~option or the \Tib{} I~command (Table~7)).

\beginsubsection{.15} The K (keyword) field

The K field is searched to identify references but is not printed out.
Thus it can be used to facilitate identification.  An example:
\medskip\vbox{\catcode`\~=12{\listitem%
\%A Dennie Van~Tassel
\%T Program Style, Design, Efficiency
\%I $|$PrHall$|$
\%D 1978
\%K testing debugging tassel
}}\medskip
\noindent Note also the use of the defined word in the \%I field.
The city of publication is included as part of the definition.

\beginsubsection{.2} Formatting techniques

Most reference items are uncomplicated and present no formatting problems.
In this subsection we discuss some techniques for the other cases.

\TeX{} control strings in the reference file can be used to automatically
effect the format of the reference listing.  Consider the example:
\medskip{\listitem%
\%A R. Colt Hoare
\%T A Tour through the Island of Elba
\%C London
\%D 1814
\%O out of print
\%\\def\\Refformat\{\\bookformat\}
}\medskip
\noindent This example of a book has no listed publisher (I field).  The 
I field is used by {\tt\\Refformat} in its decision
(Table~11) and the decision would be incorrect for this example.  Thus
{\tt\\Refformat} is redefined in the reference item.  The redefinition
is local to the one reference and does not affect other references.

Most data in the reference file is passed through to \TeX{} unaltered.
Thus \TeX{} control strings are permitted in the field data:
\medskip
{\listitem%
\%T The development of the January 1983\\/\$1\^\\circ\\times1\^\\circ\$ 
mean free-air anomaly data tape}
\medskip
The italic correction spaces things correctly if the title is printed in
italic or slant.  In the six formatting macros, the control string
printing the data is preceded by {\tt\\bgroup} and followed by
{\tt\\egroup}.  This permits certain techniques.  For example, either
\medskip
{\tt\raggedright
\%T A refined gravity model from LAGEOS\\/ \\egroup(GEM-L2)\\bgroup}
\smallskip\noindent or \smallskip
{\tt\%T A refined gravity model from LAGEOS\\/ \{\\Reffont(GEM-L2)\}}
\medskip\noindent
causes ``(GEM-L2)" to be printed out in ordinary type (usually Roman),
even if the font for titles is something else.

It is necessary to be more careful with author, editor, reviewer,
translator and possibly institution fields.  \Tib{} operates on
these fields in response to commands to abbreviate names, reverse
names, and put fields in caps-small caps.  We discuss how \Tib{}
operates on these fields.  The `a' and `e' fields
are governed by the commands for editors.  If a reference item
has no authors, the editors are used in place of the authors, both
in the listing and for sorting.  If there are also no editors, the
publishing institution is used.  The last name is the last word
in a field.  If the name is compound, it can be connected with
an active character or a space control character.  Thus
\smallskip
{\tt\%A Dennie Van\catcode`\~=12{~}Tassel}
\par\noindent or
\par{\tt\%A Dennie Van\\\ Tassel}
\smallskip\noindent is correct.  The first style prohibits a line
break; the second permits a break.

For purposes of sorting, the first capital letter of the
last name is used.  The abbreviation routine has a certain amount
of sophistication.  It will abbreviate ``Heinz-Otto" to ``H-O."
It will abbreviate ``d'Arcy" to ``d'A."  However if both abbreviation
and caps-small caps are called for, it will not set the `d' in ``d'A."
in small caps.  That will have to be done by hand or with \TeX.
Making special letters with control characters in these fields
(D. Knuth's {\it The \TeX book}, p.~52 or L. Lamport's \itLaTeX, p.~40)
must conform to the following rules: they may not be nested and
they must be enclosed in braces.  When sorting or making caps-small caps,
\Tib{} handles material in braces in special ways.  The following are
correct:
\medskip\vbox{{\listitem%
\%A Ol\{\\'u\}wol\{\\'e\} \{\\'O\}d\{\\'u\}nd\{\\'u\}n
\%A S\{\\o\}ren \{\\AA\}ngstr\{\\"o\}m
\%A Heinz-Otto O'Grady
\%A Serge\{\\v\\i\} \{\\t I\}ur'ev}}
\medskip
There is one more rule.  Caps-small caps turns lowercase letters into
uppercase; accordingly lowercase strings must have uppercase analogues
if \Tib's caps-small caps are to be used.  If necessary these
can be set up by {\tt\\def} (which are local to the references).  
Thus: \medskip\vbox{{\listitem%
\%\\def\\SS\{\\ss\}
\%A K. L. Weierstra\{\\ss\}}}
\medskip
\noindent The last example above is better:
\medskip{\listitem%
\%\\def\\I\{I\}
\%A Serge\{\\v\\i\} \{\\t I\}ur'ev}

In fact, such control strings can be created and used to fool \Tib,
at least partially, if need be.  For example:
\medskip{\listitem%
\%\\def\\PRESIDENT\{The President's Commission on Aging\}
\%A \{\\PRESIDENT\}
}\medskip
\noindent This will ensure that the reference is alphabetized by ``PRESIDENT,"
rather than by ``The."  However, \Tib's caps-small caps will not work;
the entry will have to be set by hand.

\beginsubsection{.3} Reference items

In this section we consider the forms in the reference database
of various types of reference materials.  The criteria used are
those of {\tt\\Refformat} (Table~11).  Tags are indicated in
parenthesis.

\beginsubsection{.2} Journal article

A journal article must have a journal name (\%J) and a volume
number (\%V).  It usually also has one or more authors (\%A),
a title (\%T), page numbers (\%P), and a date of publication (\%D),
and sometimes an issue number (\%N).  It may have
a publisher (\%I) or be a translation.  In the last case, certain lower case
fields are used.  Two examples:
\medskip\vbox{\catcode`\~=12{\listitem%
\%A Tammo tom~Dieck
\%T Bordism of \$G\$-manifolds and integrality theorems
\%J $|$TOPOL$|$
\%P 345-358
\%V 9
\%D 1970
\%K dieck
}}\bigskip
\vbox{\listitem%
\%A V. I. Arnol'd
\%T Singularities of smooth mappings
\%J $|$USPMN1$|$
\%V 23
\%P 3-44
\%D 1968
\%K arnold
\%j $|$RUSMS$|$
\%v 23
\%d 1968
\%p 1-43
}\medskip
\noindent Note the use of journal codes to effect automatic
standard abbreviation.

\beginsubsection{.2} Conference presentation

A conference presentation can be either an unpublished report
or an article in a proceedings which has no editor and is identified
by the conference.  In this case the name of the conference is put
in the journal field (\%J).  There is no volume (\%V) field.  There
are likely also one or more authors (\%A),
a title (\%T), a date (\%D) and a city (\%C), and in a proceedings, pages (\%P).
\medskip\vbox{\listitem%
\%A F. J. Lerch
\%A S. M. Klosko
\%T Gravity model improvement using laser data
\%J First Crustal Dynamics Working Group Meeting
\%C Goddard Space Flight Center
\%D $|$SEP$|$, 1981
}

\beginsubsection{.2} Technical report

A technical report has a report number or identifier (\%R).  It
probably also has one or more authors (\%A), a title (\%T), a date
(\%D), and an issuing institution (\%I) (which may alternatively be
part of the report identifier), and possibly a city (\%C), a government
issue number (\%G) and perhaps pages (\%P).
\medskip\vbox{\listitem%
\%A F. J. Lerch
\%A S. M. Klosko
\%A G. B. Patel
\%T A refined gravity model from LAGEOS\\/ \\egroup(GEM-L2)\\bgroup
\%I $|$NASA$|$
\%R Tech.\ Memo.\ TM 84986
\%D $|$FEB$|$, 1983
}

\beginsubsection{.2} Book

A book has a publisher (\%I) but no journal name (\%J) or report number
(\%R).  Usually it also has one or more authors (\%A), a title (\%T),
a date (\%D) and a
city of publication (\%C).  It may also belong to a series, in which case
it has a series name (\%S), and probably a series volume (\%V) or number (\%N).
It may also have a government number (\%G).  Note the use of the F field.
In these examples, the city of publication (\%C)
included as part of the definition of the abbreviated \%I field.
In the first example there is no author (\%A) or editor (\%E); the issuer (\%I)
is used in place of the author for citation making and sorting.

\medskip\vbox{\listitem%
\%T Software Engineering Automated Tools Index
\%I $|$SRA$|$
\%F SRA
\%D 1982
}\bigskip
\vbox{\listitem%
\%A R. E. Griswold
\%A J. F. Poage
\%A I. P. Polonsky
\%T The SNOBOL4 Programming Language
\%o (second edition)
\%I $|$PrHall$|$
\%D 1971
}

\beginsubsection{.2} Article in book

An article in a book has two titles, the title of the article (\%T) and
the title of the book (\%B).  It probably has one or more authors (\%A), and
the book probably has one or more editors (\%E).  It also probably has page
numbers (\%P).  As well, the fields for a book are present.
\medskip\vbox{\listitem%
\%A C. A. R. Hoare
\%T Procedures and parameters:\ An axiomatic approach
\%B Symposium on Semantics of Algorithmic Languages
\%E E. Engeler
\%P 102-116
\%S $|$LNMath$|$
\%V 188
\%D 1971
}

\beginsubsection{.2} Compilation

A compilation is the work of several authors gathered together by one or more
editors (\%E).  Thus there are no authors (\%A).  Other than that,
it is treated as a book.
\medskip\vbox{\listitem%
\%E Heinz-Otto Peitgen
\%E Hans-Otto Walther
\%T Functional Differential Equations and Approximation of Fixed Points
\%D 1979
\%S $|$LNMath$|$
\%V 730
}

\beginsubsection{.2} Dissertation or thesis

Many manuals of style say to treat a PhD dissertation as a book, with the
institution granting the degree as the issuer.  However most journals
format dissertation and thesis listings as technical reports.
\medskip\vbox{\listitem%
\%A Martin Brooks
\%T Automatic Generation of Test Data for Recursive Programs Having
Simple Errors
\%R PhD Thesis
\%I Stanford $|$UNIV$|$
\%D 1980
}

\beginsubsection{.05} Preprint

A preprint is also best handled as a technical report with ``preprint"
or ``to be published" or even ``unpublished" in the R field.  
Sometimes a preprint has a report
number which can be used and ``to be published" can be put in the O field.

\beginsubsection{.2} Other

Most sources fit in one of the above categories.  A little experimentation
may be necessary for less-standard sources, such as newspapers, archival
sources, or correspondence.  If the reference item does not meet any of
the criteria of {\tt\\Refformat}, it is formated by {\tt\\otherformat}
(see Table~11).

\beginsection{.1} 7. {\tt\char"5Cinput} files

With the {\tt OPTCH j} option ({\tt OPTCH i} was already assigned),
\Tib{} will recognize {\tt\\input} statements,\footnote{$^*$}{In
\LaTeX, there is a similar command, {\tt\\include}.  However,
{\tt\\include} is more complicated than {\tt\\input}. For examples,
{\tt\\include} interacts with the {\tt\\includeonly} command and it
involves dealing with auxiliary files.  It was decided that trying to
get \Tib{} to process {\tt\\include}d files could lead to mishandled
files, and that it is safest not to include this capability.} and
process the corresponding files.  The processed contents of these
files are incorporated in the master {\tt -t} file.  Messages are
printed out during the \Tib{} run and also messages ``{\tt \<file>
input by Tib}'' are printed out during the subsequent \TeX{} run.
\Tib{} will process a file {\it only\/} if a complete (relative or
absolute) path is given (it will attempt to append the {\tt.tex}
suffix to the name).  In particular, it does not look through the {\tt
TEXINPUTS} environment.  It assumes anything without a complete path
name is not a text file and should not be processed.  If \Tib{} cannot
find a file, it prints out a message and leaves the {\tt\\input}
statement unaltered.  If {\tt\\input} is part of a definition of a
macro in the text, \Tib{} will be confused, but not fatally; it will
leave the definition unchanged and the message it prints can be
ignored.  However files which are input by means of the macro will not
be processed by \Tib.  Indeed, to be safe, it is probably best to
prevent \Tib{} from processing macro files, even if they are in the
working directory; this can be accomplished by defining something else
as {\tt\\input} (e.g., {\tt\\INPUT}) and using that for non-text
files.

\Tib{} incorporates any final blank lines and the usual final
`newline' in the {\tt\\input} file.  This generally effects a new
paragraph after the material from the {\tt\\input} file.  The new
paragraph can be avoided by eliminating any final blank lines and
either: (1) eliminating the final `newline' in the {\tt\\input} file
(not recommended), or (2) continuing the text (possibly a comment
character preceeded by at least one space) on the same line after the
``{\tt\\input \<file>}'' statement in the master file.

\beginsection{.1} 8. Error and warning messages

{{\parindent0pt\filbreak
\medskip{\tt Can't open index {\tt <}{\it indexname\/}{\tt>}}
{\par\leftskip1pc Index \<indexname> does not exist or not readable.\par}

\filbreak\medskip{\tt command line:\ invalid switch 
{\tt <}{\it switch\/}{\tt>}}
{\par\leftskip1pc \<switch> not a valid option on the call.\par}

\filbreak\medskip{\tt Can't open {\tt <}{\it filename\/}{\tt>} or 
{\tt <}{\it filename\/}{\tt>}.tex}
{\par\leftskip1pc Neither document file \<filename> nor \<filename>.tex is
available for reading.\par}

\filbreak\medskip{\tt Cannot locate reference file {\tt <}{\it filename\/}{\tt>}}
{\par\leftskip1pc File of references \<filename> not available.\par}

\filbreak\medskip{\tt {\tt <}{\it index\/}{\tt>} not up to date}
{\par\leftskip1pc One of the reference files antecedent to \<index> has been
changed since \<index> was made.\par}

\filbreak\medskip{\tt word {\tt <}{\it word}{\tt>} not defined in 
definition list}
{\par\leftskip1pc Misspelled word in reference file?\par}

\filbreak\medskip{\tt bad brackets in string {\tt <}{\it string}{\tt>} in 
references}
{\par\leftskip1pc Unmatched, or badly placed, pair of brackets \{\} in a
reference item has caused \Tib{} to get lost.\par}

\filbreak\medskip{\tt word expected in definition}
{\par\leftskip1pc A undefined word exists in word-definition file.\par}

\filbreak\medskip{\tt too many definitions}
{\par\leftskip1pc Word-definition file larger than limit set in source code.
Reset and recompile.\par}

\filbreak\medskip{\tt out of storage}
{\par\leftskip1pc \Tib{} too big for system (either while making 
word-definition list or while processing citations).  Possibly have to use 
smaller word-definition file.\par}

\filbreak\medskip{\tt unexpected end of citation template}
{\par\leftskip1pc Citation template not complete.\par}

\filbreak\medskip{\tt can't open temporary reference file}
{\par\leftskip1pc Work file cannot be opened---system or environment 
problem.\par}

\filbreak\medskip{\tt can't open temporary output file}
{\par\leftskip1pc Work file cannot be opened---system or environment
problem.\par}

\filbreak\medskip{\tt can't open temporary output file for reading}
{\par\leftskip1pc Work file cannot be reopened---system or environment problem.\par}

\filbreak\medskip{\tt ill formed reference}
{\par\leftskip1pc Bad reference item has caused \Tib{} to get lost.\par}

\filbreak\medskip{\tt end of file reading citation}
{\par\leftskip1pc Probably {\tt.]} was omitted in document.\par}

\filbreak\medskip{\tt citation too long}
{\par\leftskip1pc Too many keys, or keys too long (truncate to 6 letters).\par}

\filbreak\medskip{\tt inconsistent citation found in pass two}
{\par\leftskip1pc \Tib{} found a reference earlier, now it can't---something
funny's going on.\par}

\filbreak\medskip{\tt citation not found in pass two}
{\par\leftskip1pc \Tib{} found a reference earlier, now it can't---something
funny's going on.\par}

\filbreak\medskip{\tt tibdex:\ can't open temporary output file}
{\par\leftskip1pc Work file cannot be opened---system or environment
problem.\par}

\filbreak\medskip{\tt tibdex:\ error in open of {\tt <}{\it filename\/}{\tt>}}
{\par\leftskip1pc \<filename> doesn't exist or can't be read.\par}

\filbreak\medskip{\tt tibdex:\ error in opening file for compression}
{\par\leftskip1pc Work file cannot be opened---system problem.\par}

\filbreak\medskip{\tt ill formed reference file}
{\par\leftskip1pc Bad reference item has caused \Tib{} to get lost.\par}

\filbreak\medskip{\tt too many references}
{\par\leftskip1pc Number of reference larger than limit set in source 
code.\par}

\filbreak\medskip{\tt locate:\ cannot open {\tt <}{\it filename\/}{\tt>}}
{\par\leftskip1pc \<filename> not available for reading in subroutine 
{\it locate}.\par}

\filbreak\medskip{\tt locate:\ no keys for citation}
{\par\leftskip1pc Empty citation discovered in subroutine {\it locate}.\par}

\filbreak\medskip{\tt locate:\ insufficient space for references}
{\par\leftskip1pc \Tib{} too big for system---discovered in subroutine 
{\it locate}.\par}

\filbreak\medskip{\tt locate:\ first key ({\tt <}{\it keyname}{\tt>}) matched 
too many refs}
{\par\leftskip1pc Put another key first in citation.\par}

\filbreak\medskip{\tt tibdex:\ too many common words}
{\par\leftskip1pc Too many words in list of words not to be used as keys.\par}

\filbreak\medskip{\tt no reference matching {\tt <}{\it citation}{\tt>}}
{\par\leftskip1pc Probably mistyped keyword.\par}

\filbreak\medskip{\tt multiple references match {\tt <}{\it citation}{\tt>}}
{\par\leftskip1pc Need more keys in citation.\par}

\filbreak\medskip{\tt end of file after \\input/\\include}
{\par\leftskip1pc Missing file name.\par}

\filbreak\medskip{\tt \\input/\\include files nested too deeply}
{\par\leftskip1pc Nesting limited to a depth of 32 files.\par}

\filbreak\medskip{\tt unable to locate file, assuming it has no
references}
{\par\leftskip1pc Cannot locate \\input/\\include file, and leaves
command unaltered.\par}

\filbreak\medskip{\tt truncated following reference \dots}
{\par\leftskip1pc Reference too large and must be truncated.\par}

\filbreak\medskip{\tt Warning:\ reference list not made -- .[] not encountered}
{\par\leftskip1pc A reference list is made where the symbols {\tt.[]} begin a 
line.\par}
}
\filbreak\bigskip}
Finally there is the possibility the \Tib{} output file will cause a
\TeX{} error.  It may be that a reference item does not have the
right format (e.g.\ unmatched braces).  In many cases a quick fix may be
possible in the \Tib{} output file.  If something goes completely
haywire, a reserved control string may have been inadverdently redefined.
There is also the possibility
that \TeX{} will run out of room (see {\it The \TeX book}, p.~300),
most likely because there are too many macros that
are too big.  The macros that \Tib{} creates are not particularly
space efficient.  None the less, they seem to have no trouble
coexisting with the macros of \LaTeX{} or \AmSTeX.  However, these
macros together with a collection of private macros may be too much.
In this regard, see {\it The \TeX book}, appendix~D.4.  It is also
true that there is much room for compactification in the macros
\Tib{} creates.  In particular, for any particular input document, many of
the macros are probably not used and can be physically eliminated
from the appropriate {\it .ttx\/} files.  

It is hoped, however, that all your \TeX nical referencing is
trouble-free and that you never have read this section.
\filbreak
\bigskip
\centerline{\bf Disclaimer}
\medskip
{\narrower\narrower In no event will the author be liable for any
damages, including any lost profits, or other incidental or
consequential damages arising out the use of or inability to use this
program, even if the author has been advised of the possibility of such
damages, or for any claim by any other party.\par}
\filbreak

\beginsection{.3}A1. Appendix: the example document

\bigskip
{\tt\obeylines\obeyspaces\indent%
\%           EXAMPLE PAGE FOR TIB -- FOR USE WITH test.refs
\%
\%       For plain TeX:\ adjust \\vglue just below if necessary.
\%       For footnotes (demo.6.p) comment out (\%) the line "\\vsize ..."
\%       just below and the line near the end beginning ".[]".
\%
\%       For LaTeX, comment out (\%) the line "\\vsize ..." just below
\%       and activate the three indicated lines.\ \ Also activate the
\%       line "\\end\{document\}" near the end.\ \ For footnotes (demo.6.l)
\%       comment out the second of the three lines and the line near
\%       the end beginning ".[]".
\%
\%   next line for plain TeX
\\vsize10.3truein\\nopagenumbers\\vglue-.5truein\% adjust \\vglue if necessary
\%
\%   next 3 lines for LaTeX
\%\\documentstyle\{article\}\\textwidth6.5truein\\nofiles\\oddsidemargin=0truein
\%\\pagestyle\{empty\}\\textheight10.3truein\\topmargin=-.7truein
\%\\begin\{document\}
\\centerline\{\\bf Example Test Page\}\\smallskip
This example shows a citation for a book,[.griswold poage polonsky.]
a journal article,[.dieck.]\ a conference paper,[.lerch crustal.]
a technical report,[.lerch patel.]\ an article in a book,[.hoare engeler.]
and something that fits in no category.[.reagan.]\ \ Multiple citations 
[.brooks, hoare engeler.]\ look like this---or this,\%
[.brooks.].[.hoare engeler.]\ \ A run of citations [.derham, sra, knuth, tassel.]
can sometimes be hyphenated.\ \ The alternate citation style, for referring to
reference <.knuth.> in running text, is different.\ \ Extra text can be
inserted in citations.[.griswold poage polonsky <, chap.\catcode`\~12{~}2>.]\ \ Translations
can be referenced.[.arnold equations, arnold singularities,gantmacher.]
If necessary, letters are appended to citations to remove ambiguities.
If desired, citations can be sorted by any of several templates.[.lerch 
crustal,lerch putney,hoare elba,hoare engeler.]\ \ If there are no authors, 
editors are used instead;[.peitgen walther.]\ if there are also no editors, the
publishing institution is used.[.sra.]\ \ Sorting and citation creation is 
based on the first capital letter in the last name.[.tassel,dieck,derham.]
Special strings can be part of references [.tex,momentum harmonic,derham,rapp.]
and special citation strings can be used.[.sra.]\ \ Also note 
the performance of the abbreviation routine.[.thompson,peitgen.]
.[]\\smallskip\\centerline\{\\bf References\}\\smallskip  \%comment out for footnotes
\%\\end\{document\}  \%LaTeX
\\bye  \%plain TeX
\par}

%Insert local changes below after removing `%' from next line.
%beginsection{.3}A2. Appendix: local changes

%Leave blank line before insertions.
\bye%After insertions
