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.