diff options
author | Karl Berry <karl@freefriends.org> | 2008-08-12 16:57:16 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-08-12 16:57:16 +0000 |
commit | ad1b2dfc1dc335cc4c4badc26538fe2172f8dbc5 (patch) | |
tree | d0a954421e788df33dcb9a96213d99bb116fab1f | |
parent | ca53ea9aa6549a549b9acfdc0a19304c5a763015 (diff) |
authorindex update (11aug08)
git-svn-id: svn://tug.org/texlive/trunk@10275 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/latex/authorindex/NEWS | 21 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/authorindex/authorindex | 58 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/authorindex/authorindex.pdf | bin | 189149 -> 122953 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/authorindex/authorindex.tex | 150 |
4 files changed, 143 insertions, 86 deletions
diff --git a/Master/texmf-dist/doc/latex/authorindex/NEWS b/Master/texmf-dist/doc/latex/authorindex/NEWS index fbe7e81e24e..204d51c0a69 100644 --- a/Master/texmf-dist/doc/latex/authorindex/NEWS +++ b/Master/texmf-dist/doc/latex/authorindex/NEWS @@ -1,3 +1,22 @@ +August 2008: + +- Describe workaround for bibunits (simplified from Sylwester Arabas's + proposal) + +October 2007 + +- Support names and citation keys longer than 79 characters. Note + that if you used you own bst script (via \authorindexstyle) in the + past, you need to revise that bst script to include additional + separator lines. + +- Bugfix: Use semicolon as pathname separator on Windows + +May 2007 + +- Bugfix: Allow the same BibTeX data base to appear repeatedly in the + LaTeX source. This is hard to avoid for when using chapterbib. + November 2006: - Include an enhancement by Pieter Eendebak for natbib.cfg (part @@ -16,4 +35,4 @@ October 2004: - Bugfix: Gracefully handle spaces in citation commands with multiple arguments. Previous versions included the space in the key, which - cased the search in the BibTeX data base to fail. + caused the search in the BibTeX data base to fail. diff --git a/Master/texmf-dist/doc/latex/authorindex/authorindex b/Master/texmf-dist/doc/latex/authorindex/authorindex index be1b2d9e15d..6c154a080e9 100644 --- a/Master/texmf-dist/doc/latex/authorindex/authorindex +++ b/Master/texmf-dist/doc/latex/authorindex/authorindex @@ -1,7 +1,8 @@ -#!/usr/bin/perl -w +#!/usr/bin/env perl # This file is part of the authorindex package for LaTeX + BibTeX. -# Version: 22. March 2005 +# Version: 10. August 2008 +use warnings 'all'; use strict; # configuration: apart from the command to invoke perl above you might want to @@ -10,6 +11,8 @@ use strict; my $bstenv="BSTINPUTS"; # Environment Variable holding .bst search path my $bibenv="BIBINPUTS"; # Env Variable holding search path for BibTeX databases my $tmp="_autidx_"; # Name base for temporary files +my $cwdpath="."; # Directory where files are generated +my $pathsep=($^O eq "MSWin32") ? ';' : ":"; # Seperator between paths in a list # This script takes LaTeX .aux files as input. It extracts all citations made # with page number information. These, together with the bibliography data base @@ -63,7 +66,8 @@ my $authorcount=0; my $miniindex=0; # flag: is 1 if mini-index is requested my $nocompress=0; # flag: is 1 if page range compression is prohibited -my @bib; # collect .bib-file names +my @bib; # collect .bib-file names +my %biboccured; # collect .bib-file names my %pnlist; # collect occuring pages/bib.numbers as keys of hash my $editors=0; # number: 0 no editors; 1 editors if no authors @@ -146,7 +150,13 @@ while(<>){ print AUXFILE "\\citation{$tmp$explicits}\n"; $explicits++; }elsif(/^\\bibdata\{(.+)\}$/){ - push @bib, split(",",$1); + # keep the order of data base files, but remove duplicates; + # BibTeX complains about them. + my $bibdb; + for $bibdb (split(",",$1)){ + push @bib, $bibdb unless $biboccured{$bibdb}; + $biboccured{$bibdb}=1; + } }elsif(/^\\aistyle\{(.+)\}$/){ warn "Multiple \\authorindexstyle\n" if $bst && ($bst ne $1); $bst=$1; @@ -189,9 +199,9 @@ $output="-" if exists $opt{'p'}; push @bib, $tmp if($explicits); -my $bib=join(",",@bib) +my $bibfiles=join(",",@bib) || die "You must specify at least one BibTeX database\n"; -print AUXFILE "\\bibdata{$bib}\n"; +print AUXFILE "\\bibdata{$bibfiles}\n"; $see && $also && die "\\aisee and \\aialso are mutually exlusive!\n"; @@ -200,19 +210,19 @@ $see && $also && die "\\aisee and \\aialso are mutually exlusive!\n"; unless($bst){ my @nameformat=split /;/,$nameformat; - my ($printkey,$namefmtcmd)=("cite\$ write\$ newline\$\n",""); + my ($printkey,$namefmtcmd)=("cite\$ write\$ termline\n",""); for (@nameformat){ my ($namerep,$sortrep)=split /:/; $sortrep=$namerep unless $sortrep; $namefmtcmd.= "duplicate\$ names swap\$ \"$namerep\" format.name\$ " . - "write\$ newline\$\n" . - "duplicate\$ names swap\$ \"$sortrep\" format.name\$ " . - "purify\$ \"u\" change.case\$ write\$ newline\$\n$printkey"; - $printkey="newline\$\n"; + "write\$ termline\n" . + "duplicate\$ names swap\$ \"$sortrep\" format.name\$ " . + "purify\$ \"u\" change.case\$ write\$ termline\n$printkey"; + $printkey="termline\n"; } - $ENV{$bstenv}=".:" . (exists $ENV{$bstenv} ? $ENV{$bstenv} : ""); + $ENV{$bstenv}="$cwdpath$pathsep" . (exists $ENV{$bstenv} ? $ENV{$bstenv} : ""); $bst=$tmp; open(BSTFILE,">$bst.bst") || die "Can't open $bst.bst\n"; print BSTFILE <<END; # Now comes the BibTeX programm inlined... @@ -228,6 +238,7 @@ function{prefersecond} % return second argument if non-empty } function{pauthor}{ author authauthor prefersecond } function{peditor}{ editor autheditor prefersecond } +function{termline}{ newline\$ "%" write\$ newline\$ } function{format} { duplicate\$ empty\$ % field present? { pop\$ } % no: do nothing but cleanup @@ -273,7 +284,7 @@ close AUXFILE; # if we have written to the temporary database, make sure BibTeX can find it. -$ENV{$bibenv}=".:" . (exists $ENV{$bibenv} ? $ENV{$bibenv} : "") if $explicits; +$ENV{$bibenv}="$cwdpath$pathsep" . (exists $ENV{$bibenv} ? $ENV{$bibenv} : "") if $explicits; # We now give BibTeX all the citation labels. In return we get a file whose # lines in turn contain an author name and a label of a work of that author. @@ -307,12 +318,11 @@ if($usenum){ my ($firstauthor,$firstsortname,$Lab,$PrevLab)=("","","",""); open(BIBFILE,"$tmp.bbl") || die "Can't open $tmp.bbl\n"; -while(<BIBFILE>){ - chop; s/[\[\]]//g; - my $author=$_; - my ($sortname,$LabOrEmpty); - chop($sortname=<BIBFILE>); - chop($LabOrEmpty=<BIBFILE>); +my $author; +while($author=&readtosep()){ + map s/[\[\]]//g, $author; + my $sortname=&readtosep(); + my $LabOrEmpty=&readtosep(); if($LabOrEmpty){ $PrevLab=$Lab; $Lab=$LabOrEmpty; @@ -564,3 +574,13 @@ sub pages_for_label } return ""; } + +sub readtosep +{ + my $sum=""; + while(<BIBFILE>){ + return $sum if(/^%$/); + chop; s/%$//; + $sum.=$_; + } +} diff --git a/Master/texmf-dist/doc/latex/authorindex/authorindex.pdf b/Master/texmf-dist/doc/latex/authorindex/authorindex.pdf Binary files differindex a6f11f128a3..2e1a562af88 100644 --- a/Master/texmf-dist/doc/latex/authorindex/authorindex.pdf +++ b/Master/texmf-dist/doc/latex/authorindex/authorindex.pdf diff --git a/Master/texmf-dist/doc/latex/authorindex/authorindex.tex b/Master/texmf-dist/doc/latex/authorindex/authorindex.tex index 7b4d2b229f2..e494a8c6ed6 100644 --- a/Master/texmf-dist/doc/latex/authorindex/authorindex.tex +++ b/Master/texmf-dist/doc/latex/authorindex/authorindex.tex @@ -3,6 +3,10 @@ % \BibTeX command above has been stolen from \cite{Patashnik88a} \documentclass[a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage{textcomp} +\renewcommand{\labelitemi}{\textbullet} + \newcommand{\package}[1]{\textsf{#1}} \newcommand{\authorindex}{\package{authorindex}} \newcommand{\mkindex}{\package{makeindex}} @@ -22,15 +26,15 @@ \renewcommand\descriptionlabel[1]{\hspace\labelsep\normalfont\texttt{#1}} \title{The \authorindex\ Package} -\author{Andreas Wettstein\\\texttt{wettstae@synopsys.com}} -\date{March 2005} +\author{Andreas Wettstein\\\texttt{wettstae@solnet.ch}} +\date{August 2008} \begin{document} \maketitle \begin{abstract} - The \authorindex\ package lists all authors cited in a \LaTeXe\ document from + The \authorindex\ package lists all authors cited in a \LaTeX\ document from the \ltxinp{\cite} entries and their associated \fnext{bib} bibliography files. It will not run with bibliographical entries (\ltxinp{\bibitem}) explicitly typed into the document. Each author entry in the generated list @@ -41,7 +45,7 @@ preprocessor for \mkindex. It can produce separate indices and mini indices, which are merged in the bibliography. The package can run under Unix, Windows, or MS-DOS. The \authorindex\ package is compatible with the standard - bibliographical styles distributed with \LaTeXe\ and with \package{hyperref}. + bibliographical styles distributed with \LaTeX\ and with \package{hyperref}. With the small patches listed here, it will also run with the \package{chapterbib}, \package{chicago}, \package{harvard}, and \package{natbib} bibliographical style packages. @@ -51,7 +55,7 @@ \section{Installation} The \authorindex\ package consists of the \LaTeX\ style file \aisty\ and the -\perl\ script \aiperl. It needs \LaTeXe, \BibTeX\ \cite{Patashnik88a} and +\perl\ script \aiperl. It needs \LaTeX, \BibTeX\ \cite{Patashnik88a} and \perl\ (version 5 or better) to run. To install the package, move \aisty\ to a place where \LaTeX\ looks for its @@ -90,31 +94,32 @@ command \ltxinp{\aionly} expects a bibliography key and puts the corresponding authors in the author index without generating a citation. In a sense, it is similar to \ltxinp{\nocite}. -Producing the author index requires only a few steps. Run the \perl\ script -\aiperl\ and \LaTeX\ sequentially; the procedure is similar to producing the -bibliography output from \BibTeX. The command \ltxinp{\printauthorindex} marks -the point where the author index is to appear in the \LaTeX\ output. A typical -sequence to run the tools would be \LaTeX, \BibTeX, \authorindex, \LaTeX, -\authorindex, \LaTeX. For MS-DOS or Windows, the \authorindex\ step would be -processed in a command window by an explicit statement like \cmdline{perl - authorindex \textit{example} [cr]}, where \textit{example} is the name of the -\fnext{aux} file and ``\cmdline{[cr]}'' indicates the enter key. In a Unix -environment, the \aiperl\ script can be invoked simply by the statement -\cmdline{authorindex \textit{example} [cr]}. - -Options to the \authorindex\ package are available, invoked in the usually way -\ltxinp{\usepackage[option\ldots]\{authorindex\}}. The option \ltxinp{withbib} -automatically indexes the page where a bibliography entry appears in the -references. There is also the possibility of generating an index that is merged -into the corresponding bibliography entries themselves. This possibility is -switched on by the package option \ltxinp{miniindex} discussed more below. +To produce the author index, run the \perl\ script \aiperl\ and \LaTeX\ +sequentially; the procedure is similar to producing the bibliography output +from \BibTeX. The command \ltxinp{\printauthorindex} marks the point where the +author index is to appear in the \LaTeX\ output. A typical sequence to run the +tools would be \LaTeX, \BibTeX, \authorindex, \LaTeX, \authorindex, \LaTeX. For +MS-DOS or Windows, the \authorindex\ step would be processed in a command +window by an explicit statement like \cmdline{perl authorindex \textit{example} + [cr]}, where \textit{example} is the name of the \fnext{aux} file and +``\cmdline{[cr]}'' indicates the enter key. In a Unix environment, the \aiperl\ +script can be invoked simply by the statement \cmdline{authorindex + \textit{example} [cr]}. + +Options to the \authorindex\ package are available,passed to the package in the +usual way \ltxinp{\usepackage[option\ldots]\{authorindex\}}. The option +\ltxinp{withbib} automatically indexes the page where a bibliography entry +appears in the references. There is also the possibility of generating an index +that is merged into the corresponding bibliography entries themselves. This +possibility is switched on by the package option \ltxinp{miniindex} discussed +more below. The details of including the author index are left to the author. Unlike the -\LaTeX\ commands \ltxinp{\printindex} or the \ltxinp{\thebibliography}, the -command \ltxinp{\printauthorindex} does not create a chapter or section -heading. To format the author index in multiple columns on a page in a -one-column document, use an additional package like \package{multicol}. With -this package, a two-column author index will be created with +commands \ltxinp{\printindex} or the \ltxinp{\thebibliography}, +\ltxinp{\printauthorindex} does not create a chapter or section heading. To +format the author index in multiple columns on a page in a one-column document, +use an additional package like \package{multicol}. With this package, a +two-column author index will be created with \begin{verbatim} \begin{multicols}{2} \printauthorindex @@ -187,10 +192,10 @@ For example, if you write in German, you'd put \end{verbatim} in your preamble. If you write in English, you would use ``see'' instead of ``siehe''. For example, assume that we cite works with the following author -lists: ``A. Schmidt, R. Musil, and K. May'' (cited on page 4); ``R. Walser -and K. May'' (and page 4 and 5); ``R. Musil'' (on page 3); `R. Musil and N. -Souter'' (on page 5); ``N. Souter and R. Musil'' (on page 2 and 6). Then, the -entries starting with ``M'' in the \fnext{ain} file look like like +lists: ``A.~Schmidt, R.~Musil, and K.~May'' (cited on page 4); ``R.~Walser and +K.~May'' (and page 4 and 5); ``R.~Musil'' (on page 3); ``R.~Musil and +N.~Souter'' (on page 5); ``N.~Souter and R.~Musil'' (on page 2 and 6). Then, +the entries starting with ``M'' in the \fnext{ain} file look like like \begin{verbatim} \item[\aitop{May, K.}, siehe \aifirst{Schmidt, A.}] \aipages{4} \item[\airep{May, K.}, siehe \aifirst{Walser, R.}] \aipages{4, 5} @@ -219,7 +224,7 @@ option is used. Normally, the mini index is placed at the end of each item. You can change this by hacking your bibliography style file. Let it place \verb|\bibindex{}| -on it's own line where you want the mini index to go, and \aiperl\ will do the +on its own line where you want the mini index to go, and \aiperl\ will do the rest. \section{Author names} @@ -268,7 +273,7 @@ cases: \subsection{Formatting and sorting} The command \ltxinp{\ainamefmt} contains the specification for formatting and -ordering names. Its argument is a string consisting of one or more parts +ordering of names. Its argument is a string consisting of one or more parts separated by semicolons. Each part is made up of one or two components, separated by a colon. If there is only one component, the both components are assumed to be equal. Each of the two component consists of a \BibTeX-format @@ -295,11 +300,12 @@ For example, the package options \ltxinp{fullname}, \ltxinp{lastname}, and \ainamefmt{{vv }{ll}}} % lastname \ainamefmt{{vv }{ll}{, f.}{, jj}}} % firstabbrev \end{verbatim} -For a more complex example, assume we want to format the names like for -\ltxinp{firstabbrev} but, in addition to the normal sorting, we also want to -sort in names that have a `von'-part ignoring that part. In other words, we -want C. F. von Weizs\"{a}cker to appear both under ``V'' and ``W'' in the -index, but nonetheless always typeset as ``von Weizs\"{a}cker, C. F.'': + +For a more complex example, assume we want to format the names like for the +\ltxinp{firstabbrev} option but, in addition to the normal sorting, we also +want to sort in names that have a `von'-part ignoring that part. In other +words, we want C. F. von Weizs\"{a}cker to appear both under ``V'' and ``W'' in +the index, but nonetheless always typeset as ``von Weizs\"{a}cker, C. F.'': \begin{verbatim} \ainamefmt{% {vv }{ll}{, f.}{, jj};% @@ -375,10 +381,11 @@ preamble. Its single argument is the name of some \fnext{bst}-file that you select to format the author names. If you decide to write a custom \fnext{bst}-file, it is necessary to understand -hacking \fnext{bst} files, e.~g.\ by reading \cite{Patashnik88b}. Your \BibTeX\ -style file needs to generate a \fnext{bbl} file that contains three lines for -each author-label pair. The first line is the name formatted according to your -taste, as it appears in the index. The second line is the name format used for +hacking \fnext{bst} files, e.~g.\ by reading \cite{Patashnik88b}. Your \BibTeX\ +style file needs to generate a \fnext{bbl} file that contains three lines per +author-label pair, each of which is followed by a line that contains just a +percent sign. The first line is the name formatted according to your taste, as +it appears in the index. The second line is the name format used for sorting. The third line contains the label of the citation, or is empty. In the latter case, the label of the previous three line entry is taken; furthermore, this entry is assumed to refer to the same author as the current @@ -405,7 +412,7 @@ is done through the package options \end{description} With the option \ltxinp{biblabels}, every citation will be indexed. There is no need to use the special citation commands \ltxinp{\aicite}, unless you want to -have a mini index as well (see section \ref{sec:mini}). With this option, it +have a mini index as well (see section~\ref{sec:mini}). With this option, it makes no sense to use either the \ltxinp{\aimention} command or the \ltxinp{withbib} package option. @@ -415,9 +422,9 @@ of bibliography labels unless explicitly noted otherwise. \subsection{Ordering of pages and compression of page ranges} -The command \ltxinp{\aipagetypeorder}\verb|{|\textsl{order\/}\verb|}| can be +The command \ltxinp{\aipagetypeorder}\verb|{|\textit{order\/}\verb|}| can be used to determine the relative order of different types of page numbers, such -as roman, arabic, and others. The argument \textsl{order\/} is a string +as roman, arabic, and others. The argument \textit{order\/} is a string consisting of a selection of the characters \ltxinp{rRnAa}, which indicate lowercase roman, uppercase roman, arabic, uppercase alphabetic, and lowercase alphabetic page numbers, respectively. The relative order of the letters in the @@ -443,7 +450,7 @@ altogether by using the \ltxinp{nocompress} package option. \subsection{Fonts used for the pages} The command \ltxinp{\aipages} determines the overall font of the page numbers. -The \ltxinp{\aibibpage} command is used to switch on additional properties to +The command \ltxinp{\aibibpage} is used to switch on additional properties to mark the pages that contain the bibliography entries of works of the author --- relevant if the \ltxinp{withbib} package option is used. \ltxinp{\aifirstpage} is used to print page numbers of references in which the author is the leading @@ -484,10 +491,11 @@ The \perl\ script can be called with any number of arguments. Without arguments, \aiperl\ reads from the standard input. With several arguments, \aiperl\ appends \fnext{aux} extensions wherever necessary and processes these files. The output is written to the file whose name is extracted from the -\fnext{aux}-file where \ltxinp{\printauthorindex} was given. It is necessary to -give the \fnext{aux}-file produced by the \fnext{tex}-file containing -\verb|\begin{document}| to \aiperl; this file passes information to the script -regarding the style and content of the index. +\fnext{aux}-file for the \fnext{tex}-file where \ltxinp{\printauthorindex} was +given. It is necessary to give the \fnext{aux}-file produced by the +\fnext{tex}-file containing \verb|\begin{document}| to \aiperl; this file + passes information to the script regarding the style and content of the + index. If you use \ltxinp{\include} in your \LaTeX\ source document, it is sufficient to give the master \fnext{aux}-file to \aiperl; the @@ -531,7 +539,7 @@ seems to work with \authorindex\ without problems. The \package{chapterbib} package also works well with \authorindex. If you want to use the mini indices, be sure to run \aiperl\ separately on the main \fnext{aux}-file plus the \fnext{aux}-file for each chapter using the -\option{-r} option (see section \ref{sec:Runai}). In addition, you may want to +\option{-r} option (see section~\ref{sec:Runai}). In addition, you may want to run \aiperl\ on the main \fnext{aux}-file to generate an author index for all chapters. For example, you might use a sequence of the form: \begin{verbatim} @@ -548,7 +556,7 @@ authorindex to appear. The script \authorindex\ works well with \package{hyperref}. In the standard version, the pages in the author index are not linked back to the page with the -citation. Section \ref{sec:pagerep} describes how to fix this problem. +citation. Section~\ref{sec:pagerep} describes how to fix this problem. \subsection{Less compatible packages} @@ -560,12 +568,12 @@ additional output for a few specific packages. Please note that these ``fixes'' may no longer work if newer versions of these packages appear. If you use a non-compatible package that is not listed below, it is worthwile -to have a look into it's source code. I the simplest case, the package might -simply include one of the listed packages (using \ltxinp{\usepackage}), and -hence one of the examples below applies. Others might require more effort, but -the basic strategy for a fix will be always similar to the examples below. If -you encounter non-compatible packages, please notify me about them (ideally, -with instructions for a fix) so that I can include them in this manual. +to have a look into its source code. In the simplest case, the package might +include one of the listed packages (using \ltxinp{\usepackage}), and hence one +of the examples below applies. Others might require more effort, but the basic +strategy for a fix will be always similar to the examples below. If you +encounter non-compatible packages, please notify me about them (ideally, with +instructions for a fix) so that I can include them in this manual. \subsubsection{\package{chicago}} @@ -645,12 +653,25 @@ Please note that I tested this work-around superficially. It does not repair a conflict that occurs when the \authorindex\ package option \ltxinp{withbib} is used. +\subsubsection{\package{bibunits}} + +To make \package{bibunits} to work with \authorindex, in \file{bibunits.sty}, +replace the lines +\begin{verbatim} +\def\bu@@citex[#1]#2{% +\end{verbatim} +by +\begin{verbatim} +\def\bu@@citex[#1]#2{\@aicitey{#2}% +\end{verbatim} +and save the modfied file under a new name. + \subsubsection{Other packages} \begin{description} \item[\package{monog3}] A class from Oxford University Press that used - \package{chicago}. See section \ref{sec:chicago}. + \package{chicago}. See section~\ref{sec:chicago}. \end{description} @@ -670,9 +691,6 @@ Currently, I am aware of the following problems and restrictions: \item If you use \ltxinp{\aicite} with multiple arguments and a page break occurs within the list of generated references, one part of the citations will be associated with the wrong page. -\item The package will fail for author names longer than 79 characters - (including spaces, commas, etc) or for very long citation labels. These force - a line break in \BibTeX\ output. Future versions of \BibTeX\ may help. \item You can not use the package when you explicitly type your bibliography in your \LaTeX\ file (\ltxinp{\bibitem}) instead of using \BibTeX. Consider using \BibTeX\ instead. It is a powerful bibliographical tool worth the @@ -689,17 +707,17 @@ and presentation in this manual. \bibitem{Patashnik88a} \textsc{O.~Patashnik}. -\newblock \textsl{{\BibTeX ing}} (1988). +\newblock \textit{{\BibTeX ing}} (1988). \newblock Documentation for general {\BibTeX} users. \bibitem{Beebe98} \textsc{N.~H.~F. Beebe}. -\newblock \textsl{{AUTHIDX}: An author/editor indexing package}. +\newblock \textit{{AUTHIDX}: An author/editor indexing package}. \newblock TUGboat \textbf{19}(1):1001--1007 (1998). \bibitem{Patashnik88b} \textsc{O.~Patashnik}. -\newblock \textsl{Designing {\BibTeX} styles} (1988). +\newblock \textit{Designing {\BibTeX} styles} (1988). \newblock The part of \BibTeX's documentation that's not meant for general users. |