AUTHIDX 1 "02 October 1996" "Version 1.00"

Table of contents


authidx - a tool for creating author/editor index files from citations of BibTeX file entries


authidx [ MAXNAME=nnn ] [ ROTATE=n ] [ SEE=nnn ] *.aei   > output-ida-file


authidx [ MAXNAME=nnn ] [ ROTATE=n ] [ SEE=nnn ] *.aei bbl-file    > output-new-bbl-file


authidx processes one or more .aei (author/editor index) files, or stdin if no input files are named on the command line, to produce on stdout a .ida index file that can either be logically merged with the original .idx file (for a combined author/editor and subject index), or processed independently by an indexing program, such as makeindex(1), texidx(1), or texindex(1), to produce a separate author/editor index.

Alternatively, if a BibTeX .bbl formatted bibliography file is given following the index files on the command line, then the output will instead be a new .bbl file with citation page references inserted at the end of each bibliography entry. This alternative provides a compact mini-index embedded in the bibliography, but loses the convenience to the reader of being able to locate quickly a reference to a publication by a particular person. Nevertheless, it may be convenient when space is at a premium, such as in journal articles.

authidx assumes that BibTeX files have a consistent form such as that guaranteed by bibclean(1), in order to permit simple pattern matching for parsing BibTeX entries.

A typical use with makeindex(1) looks like this:

authidx mybook.aei > mybook.ida
Then, for separate author/editor and subject indexes:
makeindex -o mybook.ina mybook.ida
makeindex -o mybook.ind mybook.idx
or for a single combined index:
makeindex -o mybook.ind mybook.idx mybook.ida

The required .aei files are produced from a LaTeX file that incorporates the authidx style option, and issues the \makeauthoreditorindex command in the preamble.

If a separate author/editor index is wanted, then the LaTeX file should have a \printauthoreditorindex command where the index is required (usually near the end, either before or after the \printindex command). The contents of the .ina file produced by the indexing program will be read at that point.

If a combined index is required, then only the \printindex command is needed.

Here is an outline of a suitable LaTeX 2.09 input file:

For LaTeX 2e in native 2e mode, replace the first line by
Assuming makeindex(1) as the indexing program, the document can be typeset like this:
latex mybook.ltx
bibtex mybook
latex mybook.ltx
bibtex mybook
authidx mybook.aei > mybook.ida
makeindex -o mybook.ina mybook.ida
makeindex -o mybook.ind mybook.idx
latex mybook.ltx


authidx options take the form of NAME=value assignments, rather than the more usual hyphen-prefixed options common in other UNIX utilities. If an option is given more than once, its last assigned value is used.
The MAXNAME=nnn option can be used to limit which author/editor names are indexed. MAXNAME=1 indexes only the first of them, MAXNAME=2 indexes the first and second, and so on. The default is MAXNAME=infinity, for indexing all names.
A non-zero value of the ROTATE=n option requests generation of rotated multi-part names in the index, so that an author like Madrid, Jorge de la will produce cross-referenced entries for la Madrid, Jorge de and de la Madrid, Jorge. Since conventions about alphabetizing of multi-part names depend on language and culture, and since many scientific and literary bibliographies are international in nature, it is a convenience to the reader to be able to find a name under any of the rotated forms, so the default is ROTATE=1. To suppress generation of the rotated index entries, use ROTATE=0.

It is possible that name rotation will produce some additional unexpected entries in your index. Consider these three names:

  • Donald Ervin Knuth
  • Per Brinch Hansen
  • Federico Garcia Lorca

In the first of these names, Ervin is just a middle name, and one that that particular author always abbreviates to an initial in his publications, and it should therefore not rate an index entry under Ervin Knuth, even though authidx will generate one. In the second, Brinch is a middle name that is generally used in combination with the last name to distinguish that author from the large number of other people with one of the commonest Danish surnames, so both Brinch Hansen, Per and Hansen, Per Brinch index entries are desirable. In the third, Garcia is the Spanish author's paternal name which, for him, is generally used with the maternal name, Lorca, because the latter is less common.

A computer program cannot distinguish between the indexing expectations that you might have for each of these three authors, so authidx takes the view that it should consistently index all rotations of their names, since a few more index entries is better than too few. Nevertheless, you can limit the indexing by addition of suitable bracing: if the BibTeX file contains

author = "{Donald Ervin} Knuth",
author = "Per {Brinch Hansen}"
author = "Federico {Garcia Lorca}"

then index rotations of those names will be suppressed.

The SEE=nnn option can be used to control cross-references from second, third, ... author/editor names to the first author/editor name. SEE=0 suppresses such cross-referencing; SEE=2 cross-references only the second author/editor; SEE=3 cross-references the second and third, and so on. The default is SEE=infinity, for complete cross-referencing.


You can customize the appearance of author/editor index entries by supplying suitable redefinitions of four TeX macros that encapsulate index entries, after the authidx.sty file, which defines them initially, is processed. Their default definitions are:
\def \AEnamefontfirst #1{{\sc #1}}
\def \AEnamefontrest  #1{{\rm #1}}
\def \AEpagefontfirst #1{{\bf #1}}
\def \AEpagefontrest  #1{{\rm #1}}
The first author/editor name in each bibliography entry is typeset by \AEnamefontfirst, and remaining names are typeset by \AEnamefontrest. Similarly, the page number of an entry for the first author/editor name is typeset by \AEpagefontfirst, and the page numbers of entries for remaining names are typeset by \AEpagefontrest. Using different fonts for the first and rest parts allows the reader to readily distinguish between the contributions of Smith and et al..

The default definitions of these font macros do not specify a font size, so in LaTeX, they will automatically inherit the prevailing font size. This allows you to use LaTeX input like this:

to typeset the indexes in smaller type, as is commonly done.

When a .bbl file is supplied on the command line, authidx produces a new .bbl file in which each bibliography entry is augmented by a call to the \bibindex macro, giving it a list of page numbers on which the bibliography entry is cited. The default definition of this macro

\def \bibindex #1{\{{\bf #1}\}}
provided by the authidx.sty file typesets the page numbers as a braced boldface list.

You can provide an alternate definition of this macro if you wish, anywhere between the use of authidx.sty and the \bibliography{bibfile1,bibfile2,...,bibfilen} command in your LaTeX file.


I need to add an option to control the handling of Jr.-like suffixes. The current version implements the recommendations of The Chicago Manual of Style, (14th ed., 1995, University of Chicago Press, Chicago, IL, USA, ISBN 0-226-10389-7), and The MLA Handbook for Writers of Research Papers, (4th ed., 1995, Modern Language Association of America, New York, NY, USA, ISBN 0-87352-565-5), moving Jr.-like suffixes to the end of the inverted name, as in the index entries
Bach, P. D. Q., Jr., 123--125, 203
Rockefeller, John D., III, 17, 29--32

I need to implement an option to index the bibliography items themselves, by redefining \bibitem to output an index entry to the .aei file.

For production of .bbl file mini-indexes, authidx currently only handles simple page numbers that are lower-case roman numerals, arabic numbers, or upper-case roman numerals, and sorts them in that order. Composite page numbers (127a, A.1, C-123, II-D-23, ...) of the type supported by makeindex(1) will not be sorted properly, or collapsed into page ranges, by authidx. Also, unlike makeindex(1), authidx does not support user customization of the sort order.

Finally, the authidx.sty file needs to be extended so that it can be used with plain TeX and AmSTeX as well.


A colon-separated list of directory names used by bibtex(1) and authidx to locate BibTeX bibliography files named in the \bibdata command in the .aei and .aux files.


Author/editor citation index files containing index entries of the form

plus a single


command naming the BibTeX bibliography files needed to resolve the citations. The index entries are produced by an internal LaTeX citation command that is called by user-level citation commands, such as \cite, \shortcite, \citeA, \citeANP, \citeN, \citeNP, \citeyear, \citeyearNP, \shortcite, \shortciteA, \shortciteANP, \shortciteN, and \shortciteNP. The kinds of citation commands available depend on the \bibliographystyle chosen; only \cite is available in all bibliography styles.

Formatted bibliography files produced by BibTeX from citation requests recorded in *.aux files, bibliography styles defined in *.bst files, and BibTeX bibliography database files. authidx does not read *.bst or *.aux files.
BibTeX bibliography database files.
Author/editor index files produced by authidx. These must be processed by an indexing program to produce the final author/editor index.


The master source distribution for authidx is maintained at the Internet archive location for both anonymous ftp and World-Wide Web access. The source code is in the public domain, and copies of the program may be freely distributed and used for any purpose.


bibclean(1), bibtex(1), latex(1), makeindex(1), tex(1). texidx(1), texindex(1).


Nelson H. F. Beebe, Ph.D.
Center for Scientific Computing
University of Utah
Department of Mathematics, 105 JWB
155 S 1400 E RM 233
Salt Lake City, UT 84112-0090
Tel: +1 801 581 5254
FAX: +1 801 581 4148
Email:,, (Internet)