Apopuli.115
net.oa
utcsrgv!utzoo!decvax!ucbvax!G:tut
Thu Feb 11 21:54:30 1982
refer bibliographies
To answer Amalia Grunfeld's questions of several days ago:

1)      There's no way to prevent the "Too many hits" problem without
       rewriting refer, to my knowledge.  You could, however, do a
       shell escape, run lookbib, and put each reference in its own
       bracket pair.

2)      If lookbib barfs when you're trying to find too many references
       (as when searching for a particular subject), use awk to look
       for a specific keyword field.  A null RS means to treat blank
       lines as record separators.

3)      A version of pubindex, now called indxbib, appears below, with
       a short version of lookbib.

4)      To output formatted references without doing a search, you
       could use the roffbib program, which also appears below.  It
       relies on annobib, which simply changes blank lines to .[ .]
       pairs, and converts the %X into an .AP\n (annotation paragraph).
       Unfortunately roffbib is written for the C shell.  This letter
       closes with macros for roffbib.  (The " marks in the string
       comparisons were changed to ^G so that double quotes could be
       part of fields.)

I'm willing to give the C code for addbib, sortbib, and annobib to
anyone who wants it.  (See the letter in net.general.)

               Bill Tuthill

::::::::::::::
indxbib
::::::::::::::
:       indxbib sh script
if test $1
       then /usr/lib/refer/mkey $* | /usr/lib/refer/inv X$1
       mv X$1.ia $1.ia
       mv X$1.ib $1.ib
       mv X$1.ic $1.ic
else
       echo 'Usage:  indxbib database [ ... ]'
       echo '  first argument is the basename for indexes'
       echo '  indexes will be called database.{ia,ib,ic}'
fi
::::::::::::::
lookbib
::::::::::::::
:       lookbib sh script
if test $1
       then /usr/lib/refer/hunt $1
else
       echo 'Usage:  lookbib database'
       echo '  database must have indexes built by indxbib'
       echo '  lookbib finds citations specified on standard input'
fi
::::::::::::::
roffbib
::::::::::::::
#       roffbib csh script

set loc = ~hum/bin/
set flags =

getflags:
if ($#argv > 0) then
       switch ($argv[1])
       case -o*:
       case -n*:
       case -s*:
       case -r*:
       case -T*:
       case -e:
       case -h:
               set flags = ($flags $argv[1])
               shift argv
               goto getflags
       endsw
endif

if ($#argv == 0) then
       annobib | refer -a1 -b | nroff $flags $loc{bibmacs} -
       exit
endif

annobib $* | refer -a1 -b | nroff $flags $loc{bibmacs} -
::::::::::::::
bibmacs
::::::::::::::
nr PI 5n
if n .nr PD 1v
if t .nr PD 0.3v
       \" source in -me or -mx accent marks
so /usr/lib/me/chars.me
so /usr/lib/tmac/tmac.xacc
       \" HD - header macro
de HD
if t .tl '--''--'
'sp |0.5i-1
if \\n%=1 .tl ''\f1BIBLIOGRAPHY\fP''
if \\n%>1 .tl ''- % -''
'sp |1i
ps
ft
vs
ns
.
       \" FO - footer macro
de FO
ps 10
ft 1
vs 12p
'bp
.
wh 0 HD
wh -1i FO
if n .na
       \" RT -  reset everything to normal state
de RT
in 0
ce 0
ul 0
ft 1
ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n 80n
fi
.
       \" XP - exdented paragraph
de XP
RT
ne 3.1
sp \\n(PDu
in +\\n(PIu
ti -\\n(PIu
.
       \" AP - annotation paragraph
de AP
RT
ne 2.1
sp \\n(PDu
in +\\n(PIu
.
       \" refer macros for citations
de []
][ \\$1
.
de ][
if \\$1>4 .tm %M (Bell Labs Memorandum) undefined
[\\$1
.
if n .ds [o \&"
if n .ds [c \&"
if t .ds [o ``
if t .ds [c ''
       \" [0 - other type of citation
de [0
XP
nr [: 0
if !\\*([A \{\
nr [: 1
\\*([A\c
\}
if !\\*([T \{\
if \\n([:>0 ,
nr [: 1
\f2\\*([T\f1\c
\}
if !\\*([S , \f2\\*([S\f1\c
if !\\*([V , \\*([V\c
if !\\*([P \{\
ie \\n([P>0 , pp. \\*([P\c
el , p. \\*([P\c
\}
if !\\*([C , \\*([C\c
if !\\*([D \& (\\*([D)\c
if \\n([:>0 \&.
if !\\*([O \\*([O
.
       \" [1 - journal article
de [1
XP
if !\\*([A \\*([A,
if !\\*([T \\*([o\\*([T,\\*([c
\f2\\*([J\f1\c
if !\\*([V , vol. \\*([V\c
if !\\*([N , no. \\*([N\c
if !\\*([P \{\
ie \\n([P>0 , pp. \\*([P\c
el , p. \\*([P\c
\}
if !\\*([I , \\*([I\c
if !\\*([C , \\*([C\c
if !\\*([D \& (\\*([D)\c
\&.
if !\\*([O \\*([O
.
       \" [2 - book
de [2
XP
if !\\*([A \\*([A,
if !\\*([T \f2\\*([T,\f1
if !\\*([S \f2\\*([S,\f1
if !\\*([V \\*([V,
if !\\*([P \{\
ie \\n([P>0 pp. \\*([P,
el p. \\*([P,
\}
\\*([I\c
if !\\*([C , \\*([C\c
if !\\*([D \& (\\*([D)\c
\&.
if !\\*([O \\*([O
.
       \" [3 - article in book
de [3
XP
if !\\*([A \\*([A,
if !\\*([T \\*([o\\*([T,\\*([c
in \f2\\*([B\f1\c
if !\\*([E , ed. \\*([E\c
if !\\*([S , \f2\\*([S\f1\c
if !\\*([V , vol. \\*([V\c
if !\\*([P \{\
ie \\n([P>0 , pp. \\*([P\c
el , p. \\*([P\c
\}
if !\\*([I , \\*([I\c
if !\\*([C , \\*([C\c
if !\\*([D \& (\\*([D)\c
\&.
if !\\*([O \\*([O
.
       \" [4 - report
de [4
XP
if !\\*([A \\*([A,
if !\\*([T \\*([o\\*([T,\\*([c
if !\\*([R \\*([R\c
if !\\*([G \& (\\*([G)\c
if !\\*([P \{\
ie \\n([P>0 , pp. \\*([P\c
el , p. \\*([P\c
\}
if !\\*([I , \\*([I\c
if !\\*([C , \\*([C\c
if !\\*([D \& (\\*([D)\c
\&.
if !\\*([O \\*([O
.
de ]
]>
.
de ]>
sp
.
de ]-
[-
.
de [-
rm [A [T [J [B [E
rm [S [V [N [P [I
rm [C [D [O [R [G
.

-----------------------------------------------------------------
gopher://quux.org/ conversion by John Goerzen <[email protected]>
of http://communication.ucsd.edu/A-News/


This Usenet Oldnews Archive
article may be copied and distributed freely, provided:

1. There is no money collected for the text(s) of the articles.

2. The following notice remains appended to each copy:

The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996
Bruce Jones, Henry Spencer, David Wiseman.