diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/index/autind.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/index/autind.tex | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/index/autind.tex b/Master/texmf-dist/doc/latex/index/autind.tex new file mode 100644 index 00000000000..0eac606f39e --- /dev/null +++ b/Master/texmf-dist/doc/latex/index/autind.tex @@ -0,0 +1,131 @@ +\documentclass{article} + +\newcommand*{\email}[1]{$\langle$\texttt{#1}$\rangle$} + +\newcommand{\BibTeX}{\textsc{Bib}\TeX} + +\begin{document} + +\title{Preliminary thoughts on automatic author indexing with \BibTeX\ +and \texttt{index.sty}} + +\author{David M. Jones} + +\date{September 28, 1995} + +\maketitle + +\begin{abstract} + +A method for automically indexing the names of authors in a +bibliography is described. The ideas presented here were developed in +conjunction with Berwin A. Turlach \email{berwin@core.ucl.ac.be} in +Spring 1994, but he has not seen the current writeup and is not +responsible for its contents. + +\end{abstract} + +When producing a name index, one typically wants to include entries +for all authors mentioned in the bibliography, as well entries for +each point in the text where an item of the bibliography is cited. It +would obviously be useful if this stage of the index compilation could +be automated. This note sketches a procedure for doing this using +\BibTeX\ and \texttt{index.sty}. There are essentially two parts: +modifying the BST file to produce appopriate indexing information in +the BBL file, and modifying the \verb+\cite+ command to make use of +this information. + +The BST file should produce something like +\begin{verbatim} + \bibitem{Adamowicz92} + \authorindexentries{Adamowicz92}{\do{Adamowicz, Zofia}} + Zofia Adamowicz. +\end{verbatim} + +Then \verb+\authorindexentries+ could both execute its argument to +produce index entries for the bibliography and also store the index +entries for later retrieval by the \verb+\cite+ command. This +requires two new functions and a slight modification of one old +function (\verb+output.bibitem+): +\begin{verbatim} + FUNCTION {format.name.index.entry} + { + "\do{" + s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ + duplicate$ purify$ swap$ "@" swap$ * * + "}" * * + } + + FUNCTION {format.author.index.entries} + { + author empty$ + 'skip$ + { + author 's := + #1 'nameptr := + s num.names$ 'numnames := + "\authorindexentries{" + cite$ * + "}{" * + numnames 'namesleft := + { namesleft #0 > } + { format.name.index.entry * + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + "}" * write$ + newline$ + } + if$ + } + + FUNCTION {output.bibitem} + { newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + format.author.index.entries % modification + "" + before.all 'output.state := + } +\end{verbatim} +These can be inserted into the bst file after the definition of +\verb+format.names+. (\verb+output.bibitem+ has to be moved from it's +position earlier in the file.) + +A minimal definition of \verb+\authorindexentries+ can be found in the +accompanying file \texttt{autind.sty}. + +The fun part is trying to modify the \verb+\cite+ command without +assuming too much about how it is defined. It would be nice if we +could just type something like +\begin{verbatim} + \adjustcitation\cite + \adjustcitation\citeasnoun +\end{verbatim} +and then have \verb+\cite+ and \verb+\citeasnoun+ automatically add +the appropriate author index entries. Assuming that the commands +behave like the standard \LaTeX\ \verb+\cite+ command (i.e., they take +one optional argument and one required argument, which is a list of +citekeys), the \verb+\adjustcitation+ macro in \texttt{autind.sty} more +or less does the job. + +The only other macro needed is \verb+\authorindex@cite+, which pulls +in the author index entries from the appropriate +\verb+\authorindexentries+ command. This macro is also found in \texttt{autind.sty}. + +I've tried this approach on \texttt{plain.bst} and the standard +\LaTeX\ \verb+\cite+ command and also on the \verb+\cite+ and +\verb+\citeasnoun+ commands in \texttt{harvard.sty}, and it seems to +work. The accompanying files \texttt{plaintst.tex}, +\texttt{agsmtst.tex}, \texttt{test.bib}, \texttt{xplain.bst}, and +\texttt{xagsm.bst} demonstrate the procedure. + +More testing is needed, but unless there's some major flaw that I'm +overlooking, this should work with any citation commands that aren't +too different from the standard \verb+\cite+ command and with any +bibliography files that aren't too different from the standard styles. + +\end{document} |