Refer (software)

refer is a program for managing bibliographic references, and citing them in troff, nroff, and groff documents. It is implemented as a preprocessor.

refer was written by Mike Lesk at Bell Laboratories in or before 1978, and is now available as part of most Unix-like operating systems. A free reimplementation exists as part of the groff package.

, refer sees little use, primarily because troff itself is not used much for longer technical writing that might need software support for reference and citation management. , some reference management software (for instance, RefWorks) will import refer data.

Example
refer works with a "reference file", a text file where the author lists works to which they might want to refer. One such reference, to an article in a journal in this case, might look like:

%A Brian W. Kernighan %A Lorinda L. Cherry %T A System for Typesetting Mathematics %J J. Comm. ACM %V 18 %N 3 %D March 1978 %P 151-157 %K eqn

The author then can refer to it in their troff, groff, or nroff document by listing keywords which uniquely match this reference:

.[ kernighan cherry eqn .]

Database fields
A refer bibliographic database is a text file consisting of a series of records, separated by one or more blank lines. Within each record, each field starts with a %-sign at the beginning of the line and one character immediately after. The name of the field should be followed by exactly one space, and then by the contents of the field. Empty fields are ignored. The conventional meaning of each field is shown in the table below. Compare this scheme with the newer EndNote scheme which uses a similar syntax.