REFER(1) UNIX Programmer's Manual REFER(1) NAME refer - find and insert literature references in documents SYNOPSIS refer [ -a ] [ -b ] [ -c ] [ -e ] [ -f_n ] [ -k_x ] [ -l_m,_n ] [ -n ] [ -p bib ] [ -s_k_e_y_s ] [ -B_l._m ] [ -P ] [ -S ] [ file ... ] DESCRIPTION _R_e_f_e_r is a preprocessor for _n_r_o_f_f or _t_r_o_f_f(1) that finds and formats references for footnotes or endnotes. It is also the base for a series of programs designed to index, search, sort, and print stand-alone bibliographies, or other data entered in the appropriate form. Given an incomplete citation with sufficiently precise key- words, _r_e_f_e_r will search a bibliographic database for refer- ences containing these keywords anywhere in the title, author, journal, etc. The input file (or standard input) is copied to standard output, except for lines between .[ and .] delimiters, which are assumed to contain keywords, and are replaced by information from the bibliographic database. The user may also search different databases, override par- ticular fields, or add new fields. The reference data, from whatever source, are assigned to a set of _t_r_o_f_f strings. Macro packages such as _m_s(7) print the finished reference text from these strings. By default references are flagged by footnote numbers. The following options are available: -a_n Reverse the first _n author names (Jones, J. A. instead of J. A. Jones). If _n is omitted all author names are reversed. -b Bare mode: do not put any flags in text (neither numbers nor labels). -c_k_e_y_s Capitalize (with CAPS SMALL CAPS) the fields whose key-letters are in _k_e_y_s. -e Instead of leaving the references where encountered, accumulate them until a sequence of the form .[ $LIST$ .] is encountered, and then write out all references col- lected so far. Collapse references to same source. -f_n Set the footnote number to _n instead of the default of 1 (one). With labels rather than numbers, this flag Printed 11/26/99 October 22, 1996 1 REFER(1) UNIX Programmer's Manual REFER(1) is a no-op. -k_x Instead of numbering references, use labels as speci- fied in a reference data line beginning %_x; by default _x is L. -l_m,_n Instead of numbering references, use labels made from the senior author's last name and the year of publica- tion. Only the first _m letters of the last name and the last _n digits of the date are used. If either _m or _n is omitted the entire name or date respectively is used. -n Do not search the default file /usr/dict/papers/Ind. If there is a REFER environment variable, the speci- fied file will be searched instead of the default file; in this case the -n flag has no effect. -p _b_i_b Take the next argument _b_i_b as a file of references to be searched. The default file is searched last. -s_k_e_y_s Sort references by fields whose key-letters are in the _k_e_y_s string; permute reference numbers in text accord- ingly. Implies -e. The key-letters in _k_e_y_s may be followed by a number to indicate how many such fields are used, with + taken as a very large number. The default is AD which sorts on the senior author and then date; to sort, for example, on all authors and then title, use -sA+T. -B_l._m Bibliography mode. Take a file composed of records separated by blank lines, and turn them into _t_r_o_f_f input. Label _l will be turned into the macro ._m with _l defaulting to %X and ._m defaulting to .AP (annota- tion paragraph). -P Place punctuation marks .,:;?! after the reference signal, rather than before. (Periods and commas used to be done with strings.) -S Produce references in the Natural or Social Science format. To use your own references, put them in the format described below. They can be searched more rapidly by running _i_n_d_x_- _b_i_b(1) on them before using _r_e_f_e_r; failure to index results in a linear search. When _r_e_f_e_r is used with the _e_q_n, _n_e_q_n or _t_b_l preprocessors _r_e_f_e_r should be first, to minimize the volume of data passed through pipes. Printed 11/26/99 October 22, 1996 2 REFER(1) UNIX Programmer's Manual REFER(1) The _r_e_f_e_r preprocessor and associated programs expect input from a file of references composed of records separated by blank lines. A record is a set of lines (fields), each con- taining one kind of information. Fields start on a line beginning with a ``%'', followed by a key-letter, then a blank, and finally the contents of the field, and continue until the next line starting with ``%''. The output order- ing and formatting of fields is controlled by the macros specified for _n_r_o_f_f/_t_r_o_f_f (for footnotes and endnotes) or _r_o_f_f_b_i_b (for stand-alone bibliographies). For a list of the most common key-letters and their corresponding fields, see _a_d_d_b_i_b(1). An example of a _r_e_f_e_r entry is given below. EXAMPLE %A M. E. Lesk %T Some Applications of Inverted Indexes on the UNIX System %B UNIX Programmer's Manual %V 2b %I Bell Laboratories %C Murray Hill, NJ %D 1978 FILES /usr/dict/papers directory of default publication lists /usr/libexec/refer directory of companion programs SEE ALSO addbib(1), sortbib(1), roffbib(1), indxbib(1), lookbib(1) AUTHOR Mike Lesk BUGS Blank spaces at the end of lines in bibliography fields will cause the records to sort and reverse incorrectly. Sorting large numbers of references causes a core dump. Printed 11/26/99 October 22, 1996 3