Refer (software) explained

refer
Author:Mike Lesk
Operating System:Unix-like
Genre:Reference management
License:depends on implementation

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[1] [2] 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 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.

Database fields[3]
FieldMeaning
%AThe name of an author. If the name contains a title such as at the end, it should be separated from the last name by a comma. There can be multiple occurrences of the %A field. The order is significant. It is a good idea always to supply an %A field or a %Q field.
%BFor an article that is part of a book, the title of the book.
%CThe place (city) of publication.
%DThe date of publication. The year should be specified in full. If the month is specified, the name rather than the number of the month should be used, but only the first three letters are required. It is a good idea always to supply a %D field; if the date is unknown, a value such as or can be used.
%EFor an article that is part of a book, the name of an editor of the book. Where the work has editors and no authors, the names of the editors should be given as %A fields and or should be appended to the last author.
%GUS Government ordering number.
%IThe publisher (issuer).
%JFor an article in a journal, the name of the journal.
%KKeywords to be used for searching.
%LLabel.
%NJournal issue number.
%OOther information. This is usually printed at the end of the reference.
%PPage number. A range of pages can be specified as .
%QThe name of the author, if the author is not a person. This will only be used if there are no %A fields. There can only be one %Q field.
%RTechnical report number.
%SSeries name.
%TTitle. For an article in a book or journal, this should be the title of the article.
%VVolume number of the journal or book.
%XAnnotation.
  • For all fields except %A and %E, if there is more than one occurrence of a particular field in a record, only the last such field will be used.
  • A field with no value given is simply ignored.

See also

Data schemes

Other

External links

Notes and References

  1. Michael Lesk. Some applications of inverted indexes on the Unix system. In UNIX Programmer's manual: Supplementary Documents, volume 2. Holt, Rinehart and Winston, seventh edition, 1982. Also available online http://plan9.bell-labs.com/7thEdMan/
  2. M. D. . McIlroy . Doug McIlroy . 1987 . A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 . CSTR . 139 . Bell Labs.
  3. refer man page,, dated 2July 2016.