summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/cite
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-09-13 19:16:35 +0000
committerKarl Berry <karl@freefriends.org>2010-09-13 19:16:35 +0000
commit8ac4866fb38af45e87b21dff99b0d56b506721a6 (patch)
treeca1b1afa5303dd8db10076f8046bef5b82ac5fe1 /Master/texmf-dist/tex/latex/cite
parent815cea44e9f0f8cdc1b7b8d69dcd507d010301c2 (diff)
cite update (12sep10)
git-svn-id: svn://tug.org/texlive/trunk@19710 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/cite')
-rw-r--r--Master/texmf-dist/tex/latex/cite/chapterbib.sty124
-rw-r--r--Master/texmf-dist/tex/latex/cite/cite.sty178
-rw-r--r--Master/texmf-dist/tex/latex/cite/drftcite.sty258
-rw-r--r--Master/texmf-dist/tex/latex/cite/overcite.sty423
4 files changed, 666 insertions, 317 deletions
diff --git a/Master/texmf-dist/tex/latex/cite/chapterbib.sty b/Master/texmf-dist/tex/latex/cite/chapterbib.sty
index 573d3eb12e4..fe302365bc6 100644
--- a/Master/texmf-dist/tex/latex/cite/chapterbib.sty
+++ b/Master/texmf-dist/tex/latex/cite/chapterbib.sty
@@ -1,9 +1,9 @@
-% chapterbib.sty Version 1.14 (31-Mar-2009) Donald Arseneau
+% chapterbib.sty Version 1.16 (5-Sep-2010) Donald Arseneau
%
% Allow multiple bibliographies in a LaTeX document, including items
% \cite'd in more than one bibliography.
%
-% Copyright (C) 1989-2009 by Donald Arseneau and Niel Kempson
+% Copyright (C) 1989-2010 by Donald Arseneau and Niel Kempson
% These macros may be freely transmitted, reproduced, or modified
% provided that this notice is left intact.
%
@@ -104,20 +104,7 @@
\cb@dobiblio{\@currentipfile.bbl}%
\endgroup}
-\long\def\@firstofone#1{#1}
-\@ifundefined{reset@font}{\let\reset@font\relax}{}
-\@ifundefined{bfseries}{\def\bfseries{\bf}}{}
-\@ifundefined{G@refundefinedtrue}{\let\G@refundefinedtrue\relax}{}
-\@ifundefined{PackageWarning}{\let\cb@warning\@warning}%
- {\def\cb@warning{\PackageWarning{chapterbib}}}
-
-\@ifundefined{@newl@bel}{% pre-1995; must redefine \@testdef
- \let\@test@defiii\@testdef
- \def\@testdef#1#2#3{%
- \if#1b\relax\@test@defiii b{#2\@extra@binfo}{#3}%
- \else \@test@defiii #1{#2}{#3}\fi}%
- \let\cb@dobiblio\@input}%
- {\let\cb@dobiblio\@input@}
+\let\cb@dobiblio\@input@
\def\FinalBibPrefix{\bibname\space for\space}%
\def\@auto@bibname{Bibliography}
@@ -157,22 +144,26 @@
\expandafter\def\expandafter\cb@sectionbib\@tempc{#1}%
}}
-\long\def\@gobblethree#1#2#3{}%
-\def\strip@prefix#1>{}
+\@ifundefined{G@refundefinedtrue}{\let\G@refundefinedtrue\relax}{}
\@ifundefined{bibname}{\def\bibname{Bibliography}}{}
% The following very messy hacking is to apply a prefix to each
% cite value, shown in the cites and the bibitems, and active
% with hyperref. The user should declare something like:
% \CitationPrefix{\thechapter.}
+% Because this hooking-in is so tricky and specific, it is best
+% to regard this feature as perpetually "experimental".
%
\let\@cb@use@prefix\@empty
\let\@CitationPrefix\@empty
%
-\newcommand\bibitemPrefix[1]{%
+\newcommand\CitationPrefix[1]{%
\def\@CitationPrefix{#1}%
- \@ifundefined{cb@emptytoks}{\newtoks\cb@emptytoks}{}%
- \cb@emptytoks={}%
+ \@ifundefined{cb@emptytoks}{\newtoks\cb@emptytoks}{}\cb@emptytoks={}%
+ \def\@cb@use@prefix{% Performed at the first \bibitem of each (sub-)bibliography
+ \let\value\@cb@valuehack
+ \def\@itemlabel{\@biblabel {\the\value\@listctr}}%
+ \let\@cb@use@prefix\@empty}%
\def\@cb@valuehack##1{% hook into "\the\value\@listctr"
\ifx\@listctr##1% only affect "\value\@listctr"
\cb@emptytoks % use up the preceding \the
@@ -180,26 +171,19 @@
\the % restore \the
\fi
\csname c@\@listctr\endcsname}% regular \value
-%
-% This is performed once, at the first \bibitem of each (sub-)bibliography
- \def\@cb@use@prefix{%
- \let\value\@cb@valuehack
- \def\@itemlabel{\@biblabel {\the\value\@listctr}}%
- \let\@cb@use@prefix\@empty}
}
-% redefine \@lbibitem to use prefixed number; set hook to use prefix
-% (through \value) in \@bibitem also.
-\def\@cb@insertprefix{%
+% redefine \@lbibitem to use prefixed number; set hook (through \value)
+% to use prefix in \@bibitem also. This \@cb@insertprefix is executed
+% by \bibliography.
+\def\@cb@insertprefix{%
\let\@cborg@lbibitem\@lbibitem \let\@cborg@bibitem\@bibitem
\def\@bibitem{\@cb@use@prefix\@cborg@bibitem}%
\def\@lbibitem[##1]{\@cb@use@prefix\@cborg@lbibitem[\@CitationPrefix##1]}%
+ \let\@cb@insertprefix\@empty % ensure no recursive use
}
-\@ifundefined{DeclareOption}{% LaTeX2.09
- \def\@CB@wtoc#1{}% disable; broken in 2.09
-}{% LaTeX2e option
-\ProvidesPackage{chapterbib}[2009/03/31 \space v 1.14]
+\ProvidesPackage{chapterbib}[2010/09/05 \space v 1.16]
\DeclareOption{sectionbib}{\AtBeginDocument{\sectionbib{\section*}{section}}%
\let\FinalBibPrefix\@empty
\providecommand\StartFinalBibs{\chapter*{\bibname}%
@@ -213,9 +197,12 @@
\DeclareOption{gather}{\gdef\cb@biblist{}\let\cb@sub@input\@gobble}
\ProcessOptions
-\@ifundefined{chapter}{%
- \@ifundefined{section}{}{\providecommand\CBMainSectioning{section}}%
-}{\providecommand\CBMainSectioning{chapter}}
+\@ifundefined{chapter}%
+{\@ifundefined{section}%
+ {\providecommand\CBMainSectioning{page}}% silly default to prevent errors
+ {\providecommand\CBMainSectioning{section}}%
+}{\providecommand\CBMainSectioning{chapter}}%
+
\ifx\cb@sub@input\@input@ % For [duplicate]
\def\cb@dofinalbibs{\if@filesw
@@ -231,11 +218,12 @@
\ifx\cb@biblist\@empty % duplicate or gather declared
\providecommand\StartFinalBibs{\def\bibname{\@auto@bibname}}%
- \def\cb@dobiblio#1{\begingroup\makeatletter
+ \def\cb@dobiblio#1{% defined to save local context for later "dofinalbibs"
+ \begingroup\makeatletter
\ifx\the@ipfilectr\@empty % in root
\StartFinalBibs \cb@dofinalbibs
- \else % in chapter, or section
- \let\cb@elt\relax % list \cb@elt{title}{input#}{file}
+ \else % in chapter, or section; append to \cb@biblist
+ \let\cb@elt\relax % list \cb@elt{title}{input#}{file}{citeprefix}
\let\@ifchapapp\@secondoftwo % provide a *possible* title
\expandafter\ifx\csname the\CBMainSectioning\endcsname\thechapter
\@ifundefined{@chapapp}{}{\let\@ifchapapp\@firstoftwo}\fi
@@ -243,25 +231,31 @@
{\FinalBibPrefix
\@ifchapapp{\@chapapp}{\csname the\CBMainSectioning\endcsname}\space
\csname the\CBMainSectioning\endcsname}}{}%
- \protected@xdef\cb@biblist{\cb@biblist
- \cb@elt{\FinalBibTitles}{\the\c@inputfile}{\@currentipfile}}%
+ \protected@xdef\cb@biblist{\cb@biblist\cb@elt
+ {\FinalBibTitles}{\the\c@inputfile}{\@currentipfile}{\@CitationPrefix}}%
\cb@sub@input{#1}%
- \fi\endgroup}
- \def\cb@dogatherbib#1#2#3{% Title, count, fname
+ \fi\endgroup}% end \cb@dobiblio
+ \def\cb@dogatherbib#1#2#3#4{% Title, count, fname, prefix
+ \begingroup
\protected@edef\@auto@bibname{#1}%
+ \def\@CitationPrefix{#4}%
+ \ifx\@CitationPrefix\@empty\else \@cb@insertprefix \fi
\global\c@inputfile#2\global\advance\c@inputfile\m@ne
- \IfFileExists{#3.bbl}{\cb@input{#3.bbl}}{}}
+ \IfFileExists{#3.bbl}{\cb@input{#3.bbl}}{}%
+ \endgroup}
\fi
\AtBeginDocument{\let\sectionbib\undefined}
-}
+
\endinput
%====================== BEGIN INSTRUCTIONS ===========================
chapterbib.sty Version
- ~~~~~~~~~~~~~~ 1.14 (31-MAR-2009) DA (\nocite*, \CitationPrefix, etc)
+ ~~~~~~~~~~~~~~ 1.16 (05-SEP-2010) DA \CitationPrefix with [gather], drop 2.09
+ 1.15 (30-JUL-2009) DA (typo \CitationPrefix)
+ 1.14 (31-MAR-2009) DA (\nocite*, \CitationPrefix, etc)
1.13 (11-DEC-2007) DA (new final-bib titling)
1.12 (21-MAR-2004) DA
1.11 (29-FEB-2004) DA (allow \nocite check)
@@ -289,7 +283,8 @@
to allow multiple bibliographies without using \include (see item 4).
There are two added hooks, \citeform and \citepunct, which you can
redefine to customise the formatting of each entry in a citation list,
- and the declaration \CitationPrefix to use in preference to \citeform.
+ and the declaration \CitationPrefix to use in preference to \citeform
+ for numbering-by-chapter.
Usage, Restrictions, and Options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -320,15 +315,18 @@
"@\@citeb" to "@\@citeb\@extra@b@citeb", and insert the line
\@ifundefined{@extra@b@citeb}{\def\@extra@b@citeb{}}{}
somewhere (but not as a comment or as part of another definition!).
+
If the package also redefines \bibcite then you should change that
definition, replacing "@#1" with "@#1\@extra@binfo", and insert
\gdef\@extra@binfo{}
- somewhere in the file.
- Some citation packages deviate quite far from LaTeX's own method of
- organizing cite tags using "b@\@citeb". The instructions above catch
- such extensions as "Y@\@citeb", but not more radical differences.
+ somewhere in the file. If the package defines a command that acts
+ similarly to \bibcite (being written to the aux file), then it should
+ have "\@extra@binfo" inserted the same way.
+ Some citation packages deviate quite far from LaTeX's own method
+ of organizing cite tags using "b@\@citeb". The instructions above
+ catch such extensions as "Y@\@citeb", but not more radical differences.
In such cases, try contacting the author of the citation package.
- If a citation style does not define "\nocite", then that command
+ If a citation style does not define "\nocite", then that command
would not be converted when you make the patches to "@\@citeb".
Chapterbib will try to detect the hook in "\nocite", but if this fails
you may need to redefine "\nocite" (with any "@\@citeb" changed to
@@ -407,7 +405,7 @@
\newcommand\CBMainSectioning{motif}
9. To have bibliographies in each chapter PLUS a bibliography-by-chapter at
- the end, follow item 9, but declare \usepackage[duplicate]{chapterbib}
+ the end, follow item 8, but declare \usepackage[duplicate]{chapterbib}
(or \usepackage[duplicate,sectionbib]{chapterbib}).
10. If you use Babel, load chapterbib before babel.
@@ -430,7 +428,9 @@
\CitationPrefix{\thechapter.}
in the preamble. The prefix will be applied to all the chapter-bibs
but will not be used in an overall (root) bibliography, if you have one.
-
+ (The \CitationPrefix mechanism is likely to break often if it conflicts
+ with other packages.)
+
\citepunct gives the punctuation (comma-penalty-space) between items
in the \cite list.
@@ -515,13 +515,17 @@
% a chapter-identifier on each cite. It locally redefines both
% \@bibitem and \@lbibitem at each \bibliography. The insertion
% of the prefix is straightforward for \@lbibitem, but for \@bibitem
-% the prefix is inserted by a redefined \value macro (eeek!).
+% the prefix is inserted by a redefined \value macro (eeek!). It has
+% a deficiency in not being sorted as a simple number by cite.sty.
%
%---------------------------------------------------------------
%
% Authors Niel Kempson (original)
-% ~~~~~~~ Donald Arseneau <asnd@triumf.ca> March 1993 - Mar 2009
+% ~~~~~~~ Donald Arseneau <asnd@triumf.ca> March 1993 - Sept 2010
%
+% Changes with ver 1.16: Propagate prefix info to final bibs;
+% drop support for ancient LaTeX versions
+% Changes with ver 1.15: Fix typo \bibitemPrefix -> \CitationPrefix
% Changes with ver 1.14: No warning from \nocite* in chapters, \CitationPrefix
% Changes with ver 1.13: Rewrite final-bibs titling
% Changes with ver 1.12: Update \@citex \bfseries
@@ -529,9 +533,9 @@
% Changes with ver 1.10: \CBMainSectioning; \bibsection hook
% Changes with ver 1.9: sectionbib remove \@mkboth
% Changes with ver 1.8: options gather and duplicate; babel workarounds; toc
-% Changes with ver 1.7: change the \sectionbib command re. headings.
-% update \nocite and alter \citeform
-% Changes with ver 1.6: change the \sectionbib command to take arguments.
+% Changes with ver 1.7: Change the \sectionbib command re. headings.
+% Update \nocite and alter \citeform
+% Changes with ver 1.6: Change the \sectionbib command to take arguments.
% Changes with ver 1.5: rootbib option; item 8 in instructions.
% Changes with ver 1.4: sectionbib and draft options
% Changes with ver 1.3: rewrite:
diff --git a/Master/texmf-dist/tex/latex/cite/cite.sty b/Master/texmf-dist/tex/latex/cite/cite.sty
index bedd4eb169e..e8187781788 100644
--- a/Master/texmf-dist/tex/latex/cite/cite.sty
+++ b/Master/texmf-dist/tex/latex/cite/cite.sty
@@ -1,11 +1,11 @@
% C I T E . S T Y
%
-% version 5.2 (Aug 2009)
+% version 5.3 (Sep 2010)
%
% Compressed, sorted lists of on-line or superscript numerical citations.
% see also drftcite.sty (And the stub overcite.sty)
%
-% Copyright (C) 1989-2009 by Donald Arseneau
+% Copyright (C) 1989-2010 by Donald Arseneau
% These macros may be freely used, transmitted, reproduced, or modified
% provided that this notice is left intact.
%
@@ -128,11 +128,9 @@
% be added later.
%
\def\@addto@cite@list{%
- \ifcat _\ifnum\z@<0\@B@citeB _\else A\fi % a positive number, put in list
- \@addnumto@cite@list\@B@citeB
- \else % citation is not a pure positive number, test for number+more combo
- \@cite@combo@num
- \fi
+ \@cite@posnumtest\@B@citeB
+ {\@addnumto@cite@list\@B@citeB}% a positive number, put in list
+ {\@cite@combo@num}% not a pure positive number, test for combo forms
}
% With this \@cite@combo@num we delve into handling of numbers combined
@@ -143,21 +141,22 @@
% definition leads down the road of sorting mostly-numbers but with
% optional single-character prefix and/or suffix.
-\def\@cite@combo@num{\expandafter\@cite@add@letnum\@B@citeB\delimiter}
+\def\@cite@combo@num{\expandafter\@cite@try@combo\@B@citeB\delimiter}
% First of many stages for sorting numbers with prefix/suffix characters.
-% Test for a leading token of category letter or other.
+% Test for a leading token of category letter or other (appropriate for
+% all combination types).
%
-\def\@cite@add@letnum{%
- \@if@printable@char{\@cite@add@letnumB}{\@cite@dump@now}%
- }
+\def\@cite@try@combo{%
+ \@if@printable@char{\@cite@try@prefix}{\@cite@gobbledump@now}}
+% First token is good, so test for a character prefix before a number.
% Process first token, either a first digit or a prefix
%
-\def\@cite@add@letnumB#1{%
- \ifcat _\ifnum\z@<0#1_\else A\fi % a digit else prefix
- \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi
- {\@cite@add@letnumD {\z@}#1}{\@cite@add@letnumC {`#1}}%
+\def\@cite@try@prefix#1{% #1 is first character of citation
+ \@cite@posnumtest{#1}% a digit else prefix
+ {\@cite@add@letnumD {\z@}#1}% no prefix character (use zero)
+ {\@cite@add@letnumC {`#1}}% prefix char; use the char code
}
% Examine character after prefix to ensure it is a number. First must
@@ -165,52 +164,70 @@
%
\def\@cite@add@letnumC#1{\@if@printable@char%
{\@cite@add@letnumD{#1}}% continue with prefix (perhaps zero)
- {\@cite@dump@now}% else abandon fancy processing
+ {\@cite@gobbledump@now}% else abandon fancy processing
}
% Save prefix (if any) numerically in \@tempcnta, test next character for being
% a digit, then collect main number
%
-\def\@cite@add@letnumD#1#2{%
+\def\@cite@add@letnumD#1#2{% #1 = numeric code for prefix, #2 = next char
\@tempcnta=#1\multiply\@tempcnta 16384 %
- \ifcat _\ifnum\z@<0#2_\else A\fi % at least one digit given, so continue
- \afterassignment\@cite@add@letnumE \advance\@tempcnta #2%
- \else \expandafter\@cite@dump@now \fi
+ \@cite@posnumtest{#2}% if next char is a digit, continue with number:
+ {\afterassignment\@cite@add@letnumE \advance\@tempcnta #2}%
+ {\@cite@gobbledump@now}% No number so output citation
}
-% Have collected number. Now look for a single-character suffix.
+% Have collected number. Now look for a non-number suffix or separator.
%
\gdef\@cite@add@letnumE{%
\multiply\@tempcnta\@cclvi
- \@if@printable@char{% a suffix given
+ \@if@printable@char{% a suffix or separator given
\@cite@add@letnumF
}{% else, maybe nothing remains
\ifx\@let@token\delimiter % use number, and remove trailing \delimiter
\@citeaddcnta \expandafter\@gobble
- \else % else abandon fancy processing
- \expandafter\@cite@dump@now
+ \else % non-printable char found, so abandon fancy processing
+ \expandafter\@cite@gobbledump@now
\fi
}}
-% Have a complete compilation, but must ensure there is no trailing garbage
-% (expect \delimiter as next token)
+% Have everything up to a suffix or separator character. Check
+% following to see which. Three possibilites are (1) noting =>
+% a suffix; (2) number => separator-number; (3) other => garbage.
%
-\def\@cite@add@letnumF#1#2{%
- \ifx\delimiter#2\@empty % nothing left but \delimiter
- \advance\@tempcnta`#1\relax \@citeaddcnta
- \else % abandon all fancy processing
- \expandafter\@cite@dump@now
- \fi
-}
+\def\@cite@add@letnumF#1#2\delimiter{% #1 = suffix/separator #2=rest
+ \advance\@tempcnta`#1\relax
+ \@cite@posnumtest{#2}{\@cite@add@numsepnum{#2}}% handle as num sep num
+ {% else...
+ \ifx\delimiter#2\delimiter % nothing left, so #1 is a suffix
+ \@citeaddcnta
+ \else % some non-number; dump it
+ \@cite@dump@now
+ \fi
+}}
+
+% Handle citation as number separator number.
+% Yes, there is a bug that the list 1.1,1.258,1.515 will be compressed as
+% 1.1-1.515; so sue me.
+
+\def\@cite@add@numsepnum#1{% #1 = last number
+ \ifnum\@tempcnta<262144 % OK numeric range
+ \multiply\@tempcnta 4096
+ \advance\@tempcnta #1 % num,sep,num have maximum numbers: 1023, 255, 4095
+ \@citeaddcnta
+ \else % out of range, treat as raw string
+ \@cite@dump@now
+ \fi}
% This is our bail-out when the citation cannot be processed as
-% [prefix]number[suffix]: it outputs the citation immediately
-% (unsorted) and consumes tokens to the \delimiter tag used as an
-% end-marker
+% [prefix]number[suffix] or number[sep]number: it outputs the citation
+% immediately (unsorted) and consumes tokens to the \delimiter tag used
+% as an end-marker
%
-\def\@cite@dump@now#1\delimiter{%
- \@citea \@cite@out{b@\@citeb\@extra@b@citeb}\let\@citea\citepunct
-}
+\def\@cite@gobbledump@now#1\delimiter{\@cite@dump@now}%
+
+\def\@cite@dump@now{%
+ \@citea \@cite@out{b@\@citeb\@extra@b@citeb}\let\@citea\citepunct}
% add an entry to the sorted list, using its sort-number \@tempcnta, and
% also saving the plain-text value \@B@citeB as well as the csname
@@ -384,13 +401,17 @@
\def\@is@fil@ #1FIL#2\relax#3#4\@nil{#3}
}
-% Test if next char is "printable" categories other or letter or active
+% Test if next token is a char of "printable" categories other or letter or
+% active. Syntax:
+% \@if@printable@char {do if printable}{do if not printable}<char>
+%
\def\@if@printable@char#1#2{%
\def\reserved@a{#1}%
\def\reserved@b{#2}%
\futurelet\@let@token\@test@print@char
}
+% Note side-effect of redefining \reserved@a and \reserved@b
\def\@test@print@char{%
\ifnum
\ifcat\noexpand\@let@token A1\fi
@@ -401,6 +422,12 @@
\expandafter\reserved@b \fi
}
+% Test for a pure positive number: {possible number}{true}{false}
+\def\@cite@posnumtest#1{%
+ \ifcat _\ifnum\z@<0#1_\else A\fi
+ \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi
+}
+
\let\nocitecount\relax % in case \nocitecount was used for drftcite
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -432,7 +459,7 @@
\DeclareOption{noadjust}{\let\cite@adjust\@empty}% Don't change spaces
\DeclareOption{adjust}{}% adjust space before [ ]
\DeclareOption{biblabel}{\def\@biblabel#1{\@citess{#1}\kern-\labelsep\,}}
-\ProvidesPackage{cite}[2009/08/29 \space v 5.2]
+\ProvidesPackage{cite}[2010/09/10 \space v 5.3]
\ProcessOptions
\ifx\@citey\oc@movep\else % we are moving punctuation; must ensure sfcodes
@@ -447,7 +474,7 @@
\ifx\@compress@cite\@empty
\ifx\@citeaddcnta\@empty
% [nosort,nocompress] -- short-circuit much processing
- \def\@addto@cite@list{\@cite@dump@now\delimiter}
+ \def\@addto@cite@list{\@cite@dump@now}
\else
% [sort,nocompress]
\def\@compress@cite#1#2#3{% % This is executed for each number
@@ -467,7 +494,7 @@
\fi
\fi
-% Compatability with chapterbib (see use of \@extra@b@citeb)
+% Compatability with chapterbib (see use of \@extra@b@citeb above and in chapterbib)
\@ifundefined{@extra@b@citeb}{\def\@extra@b@citeb{}}{}
% Compatability with multibib (see use of \@newciteauxhandle) (Yes, this is
@@ -516,19 +543,30 @@ o Put a comma and a small space between each citation number. The option
[nospace] removes that space, and the option [space] replaces it with
an ordinary inter-word space.
-o Sort citation numbers into ascending order, printing non-numbers before
- numbers. All numbers should be greater than zero. The [nosort] package
- option turns off sorting.
-
o Compress lists of three or more consecutive numbers to one number range
which can be split, with difficulty, after the dash. All numbers should
be greater than zero. E.g., if you used to get the (nonsense) list
[7,5,6,?,4,9,8,Einstein,6], then this style will give [?,Einstein,4-6,6-9].
Compression of ranges is disabled by the [nocompress] package option.
-o Sort numeric citations with prefix and/or suffix characters so different
- prefixes are grouped together, and suffixes form sub-lists for the same
- number; so you could get [18a-18c,19] or [A48,Q1,Q3-Q5].
+o Sort citations into ascending order (this is the default, but may also
+ be declared with the package option [sort]). The [nosort] package option
+ turns off sorting. Sortable citations must fit one of these forms:
+ 1. <number>
+ 2. <optional-char><number><optional-char>
+ 3. <number><separator-char><number>
+ Forms 1 and 2 are really the same, and they mix well, but form 3 is
+ separate and if used simultaneously with form 1 the citations become,
+ ummm, mixed. Non-sortable forms (those not listed) are printed before
+ all sortable forms. Here <number> means a positive integer (natural
+ number) less than some limit (different for each form), <optional-char>
+ is a single printable character (or nothing), and <separator-char> is also
+ a single printable character.
+
+o Sorting of citations with prefix and/or suffix characters is done so so
+ different prefixes are grouped separately, and suffixes form sub-lists
+ for the same number. Compression knows about suffixes, so you can get
+ lists like [18a-18c,19] or [A2,Q1,Q3-Q5].
o Allow, but discourage, line breaks within the group of citations (after
dashes, and after punctuation). Penalties are \citepunctpenalty and
@@ -544,7 +582,7 @@ o All breaks can be forbidden with the [nobreak] package option. They can
be adjusted independently by setting the parameters \citeprepenalty,
\citemidpenalty, and \citepunctpenalty. Use \mathchardef to change these
penalty values! E.g., \mathchardef\citeprepenalty=9999 (Yes, that is
- obscure but I don't want to pretend they are counters.)
+ obscure but I don't want to use up counters or to pretend they are counters.)
o With package option [superscript] (or [super] for short), display citation
numbers as superscripts (unless they have optional notes, causing them to
@@ -559,17 +597,18 @@ o With package option [superscript] (or [super] for short), display citation
with the [nomove] package option (only relevant with [superscript]).
-> The punctuation characters that will migrate before the superscript are
- listed in the macro \CiteMoveChars, which you can redefine. The default is
- .,;:. Perhaps ! and ? should too, but they weren't listed in the APS style
- manual I looked at, and I agree with that choice because they put too
- much visual separation between the cite and what it applies to. Feel free
- to redefine \CiteMoveChars. Quotes were listed as coming before the
- cite notation, but they should be typed before the \cite command in any
- case because both on-line and superscript cites come after the quotation.
- This gives one difficulty --- punctuation following quotes won't migrate
- inside the quotation: e.g., "``Transition State Theory''\cite{Eyring}."
- gives "``Transition State Theory''.$^8$", but you may want the period inside
- the quotes, thus: ``Transition State Theory.''$^8$.
+ listed in the macro \CiteMoveChars, which you can redefine. The default
+ set of characters is ".,;:"; Perhaps ! and ? should be included too, but
+ they weren't listed in the APS style manual I looked at, and I agree with
+ that design choice because they put too much visual separation between the
+ cite and what it applies to. Feel free to redefine \CiteMoveChars. Quotes
+ were listed as coming before the cite notation, but they should be typed
+ before the \cite command in any case because both on-line and superscript
+ cites come after what is quoted (when citing a quotation). This gives one
+ difficulty -- punctuation following quotes won't migrate inside the
+ quotation: e.g., "``Transition State Theory''\cite{Eyring}." gives out
+ ``Transition State Theory''.$^8$, but you may want the period inside the
+ quotes, thus: ``Transition State Theory.''$^8$.
-> Doubling of periods (.., ?., !.) is checked for and suppressed. The spacing
after the citation is set according to the final punctuation mark moved.
@@ -577,7 +616,7 @@ o With package option [superscript] (or [super] for short), display citation
or directly after \@ : Both of "N.A.S.A. \cite{space}." and "et al.\@
\cite{many}." will give doubled periods. These can be fixed as follows:
"N.S.A\@. \cite{space}." and "et al.\ \cite{many}.". The NSA example
- gives the wrong spacing when there is no citation. Sorry. Use \ after
+ gives the wrong spacing when there is no citation. Sorry. Use "\ " after
abbreviations like et al. to get the right spacing within a sentence whether
or not a citation follows.
@@ -681,8 +720,6 @@ These were chosen so as to not waste registers.) Alternatively, the
commands \citemid, \citedash, and \citepunct can be redefined to use
different penalty parameters, or none at all.
-\@extra@b@citeb is a hook for other style files to further specify
-citations; for example, to number by chapter (see chapterbib.sty).
@@ -713,10 +750,13 @@ citations; for example, to number by chapter (see chapterbib.sty).
% option and \CiteMoveChars; multibib hooks.
% 4.01 \bf -> \bfseries
% 4.02 Bury undouble action in a separate macro to avoid extra \fi error.
-% 5.0 hyperref and backref compatability! Penalty parameters and [nobreak].
+% 5.0 Hyperref and backref compatability! Penalty parameters and [nobreak].
% Letter prefix and suffix sorting. Stop suppressing multiple warnings.
% 5.1 Fix a missing "b@" (disappearing named cites), fix nosort
-% 5.2 more robust treatment of non-numbers
+% 5.2 More robust treatment of non-numbers
+% 5.3 Handle sort/compress of compound citation numbers (number by chapter)
+% such as 3.18 or 5-3. Note that these compounds cannot have prefix or
+% suffix letters (not enough bits in the maximum TeX number).
%
% TODO: other sorting, like dictionary or roman numeral
% TODO: create special "final punct" that could be ", and " and likewise
@@ -725,4 +765,4 @@ citations; for example, to number by chapter (see chapterbib.sty).
% Send problem reports to asnd@triumf.ca
Test file integrity: ASCII 32-57, 58-126: !"#$%&'()*+,-./0123456789
-:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
+:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/cite/drftcite.sty b/Master/texmf-dist/tex/latex/cite/drftcite.sty
index bc20deac0a3..21b557efbd5 100644
--- a/Master/texmf-dist/tex/latex/cite/drftcite.sty
+++ b/Master/texmf-dist/tex/latex/cite/drftcite.sty
@@ -1,27 +1,17 @@
% D R F T C I T E . S T Y
%
-% version 3.91 (Dec 2007)
+% version 3.5 (Jan 1995)
%
-% Print the tags instead of the numbers for \cite. This is meant as a
-% companion to cite.sty and overcite.sty, when used without bibtex,
-% and is not fully general.
+% Print the tags instead of the numbers for \cite.
+% See also CITE.STY and OVERCITE.STY.
%
-% Copyright (C) 1989,1991-1997,2001,2007 by Donald Arseneau
+% Copyright (C) 1989,1991-1995 by Donald Arseneau
% These macros may be freely transmitted, reproduced, or modified
% provided that this notice is left intact.
%
% Instructions are below, after \endinput.
% ........................
%
-% First, ensure that some catcodes have the expected values
-\edef\citenum{% to restore funny codes
- \catcode\string`\string ` \the\catcode\string`\`
- \catcode\string`\string ' \the\catcode\string`\'
- \catcode\string`\string = \the\catcode\string`\=
- \catcode\string`\string _ \the\catcode\string`\_
- \catcode\string`\string : \the\catcode\string`\:}
-\catcode\string`\`12 \catcode`\'12 \catcode`\=12 \catcode`\_8 \catcode`\:12
-
% Handle formatting hooks:
% \citeform,\citeleft,\citeright,\citemid,\citepunct
%
@@ -48,14 +38,32 @@
% Do not repeat warnings. [verbose] reverses
\let\oc@verbo\relax
-% Use \citen to give citation name without the other formatting.
+% \citen gives the citation tag in the text and writes the aux file entry.
+% Use \citen to give citation name without the other formatting; e.g.,
+% "See also ref.~\citen{junk}" gives "See also ref. junk".
%
\edef\citen{\noexpand\protect \expandafter\noexpand\csname citen \endcsname}
\@namedef{citen }#1{%
-\begingroup
-\@docite{#1}% do everything
-\endgroup}
+\edef\@tempa{\@ignspaftercomma,#1, \@end, }% ignore spaces in parameter list.
+\edef\@tempa{\expandafter\@ignendcommas\@tempa\@end}%
+\if@filesw \immediate\write \@auxout {\string\citation {\@tempa}}\fi
+\def\@citea{}%
+\@for \@citeb:=\@tempa\do {\@citea
+ \@ifundefined {b@\@citeb\@extra@b@citeb}%
+ {{\bf \@citeverb{\@citeb}?}%% issue warning only for first mis-use:
+ \@dftc@ifund {DCN@\@citeb\@extra@b@citeb}{% delete to warn always
+ \@warning {Citation `\@citeb' on page \thepage\space undefined}%
+ }{}% delete to warn always
+ }% else, defined
+ {\@dftc@hbox{\@citeverb{\@citeb}}}%
+ \let\@citea\citepunct\@advancecitecount
+ }}
+
+% for ignoring spaces in the input:
+\def\@ignspaftercomma#1, {\ifx\@end#1\@empty\else
+ #1,\expandafter\@ignspaftercomma\fi}
+\def\@ignendcommas,#1,\@end{#1}
% Make \cite robust.
%
@@ -69,103 +77,32 @@
\def\@citex[#1]#2{\@cite{\citen{#2}}{#1}}%
% Replacement for \@cite which defines the formatting normally done
-% around the citation list. Minor changes can be done by changing
-% \citeleft, \citemid, and \citeright; but in other cases it might
-% be necessary to redefine the whole macro.
+% around the citation list. Adjust the spacing before the citation:
+% if no space or if there is extra space due to some punctuation, then
+% change to one inter-word space. The way to change this is by changing
+% \citeleft, \citemid, and \citeright; but in extreme cases it might be
+% necessary to redefine the whole macro.
%
-\def\@cite#1#2{\leavevmode \cite@adjust
- \citeleft{#1\if@tempswa \@safe@activesfalse\citemid{#2}\fi
- \spacefactor\@m % punctuation in note doesn't affect outside
- }\citeright}
-
-% Put a penalty before the citation, and adjust the spacing: if no space
-% already or if there is extra space due to some punctuation, then change
-% to one inter-word space.
-%
-\@ifundefined{cite@adjust}{\def\cite@adjust{\begingroup
+\def\@cite#1#2{\leavevmode
\@tempskipa\lastskip \edef\@tempa{\the\@tempskipa}\unskip
- \ifnum\lastpenalty=\z@ \penalty\@highpenalty \fi
\ifx\@tempa\@zero@skip \spacefactor1001 \fi % if no space before, set flag
\ifnum\spacefactor>\@m \ \else \hskip\@tempskipa \fi
- \endgroup}}{}
-
+ \citeleft{#1\if@tempswa \citemid #2\fi}\citeright
+ \spacefactor\@m % punctuation in note doesn't affect outside
+}
\edef\@zero@skip{\the\z@skip}
-
-% \nocite: This is changed to ignore *ALL* spaces and be robust. The
-% parameter list, with spaces removed, is `returned' in \@no@sparg, which
-% is used by \citen.
-%
-\edef\nocite{\noexpand\protect\expandafter\noexpand\csname nocite \endcsname}
-
-\@namedef{nocite }#1{\@bsphack \begingroup
- \let\@dftc@hbox\@gobble \let\citepunct\@empty
- \@docite{#1}\endgroup\@esphack}
-
-% \@docite: Does most of the work for both \cite and \nocite.
-%
-\def\@docite#1{\begingroup\let\protect\string% normalize active chars
- \xdef\@no@sparg{\expandafter\@ignsp#1 \: }% and remove ALL spaces
- \if@filesw \immediate\write\@auxout {\string\citation{\@no@sparg}}\fi
- \endgroup
- \let\@citea\@empty % no punctuation preceding first
- \gdef\dftc@prenum{-1}%
- \@for \@citeb:=\@no@sparg\do{%
- \ifnum\dftc@cnum{\@citeb}<\z@ % undefined
- \dftc@vdef{b@\@citeb\@extra@b@citeb}{\dftc@tag{-1}?}%
- \G@refundefinedtrue \dftc@warn
- \else % defined (0 or num)
- \dftc@checksort
- \fi
- \@advancecitecount
- \@citea \@dftc@hbox{\@dftc@nums\@citeverb{\@citeb}}%
- \let\@citea\citepunct
- }}
-
-\def\dftc@warn{\@warning{Citation `\@citeb' on page \thepage\space undefined}}
-
-% for ignoring *ALL* spaces in the input. This presumes there are no
-% \outer tokens and no \if-\fi constructs in the parameter. Spaces inside
-% braces are retained.
-%
-\def\@ignsp#1 {\ifx\:#1\@empty\else #1\expandafter\@ignsp\fi}
-
%
% Give the citation tag as the label (even if another label is specified)
%
\def\@lbibitem[#1]#2{\global\@HighCite\z@
- \item[\@biblabel{%
- \ifnum\dftc@cnum{#2}>\z@ % cited
- \DC@llap{$^{\dftc@cnum{#2}}$\ \ }%
- \ifnum\dftc@cnum{#2}=\number 0#1\relax \else
- \@warning {Bib item `#2' is in wrong order}%
- \fi
- \else % never cited
- \@warning {Reference `#2' was never cited}%
- \fi
- \@citeverb{#2}}\hfill]%
- \if@filesw {\let\protect\string
- \immediate\write\@auxout{\string\bibcite{#2}{#1}}}\fi
- \ignorespaces}
+ \item[\@biblabel{\@ifundefined{DCN@#2\@extra@b@citeb}{\@warning
+ {Reference `#2' on page \thepage\space was never cited}}{}%
+ \DC@llap{$^{\@nameuse{DCN@#2\@extra@b@citeb}}$\ \ }%%o
+ \@citeverb{#2}}\hfil]\if@filesw{\def\protect##1{\string ##1\space}%
+ \immediate\write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
\def\@bibitem#1{\refstepcounter{\@listctr}\@lbibitem[\the\value{\@listctr}]{#1}}
-\def\@testdef #1#2#3{%
- \def\reserved@a{#3}\protected@edef\@tempa{\csname #1@#2\endcsname}%
- \ifx \@tempa\reserved@a \else \@tempswatrue \fi}
-
-% Citations are tagged with their order of first-citation by prefacing
-% \dftc@tag{<number>} to their definition. If reference "foo" is number
-% 11 in the bibliography, and is first-cited 7th in the text, then
-% \b@foo will be redefined from "11" to "\dftc@tag{7}11" when foo is
-% first cited. A (pretend) tag number of 0 is used to indicate an uncited
-% reference, and -1 indicates that "foo" was not defined by the bibliography
-% (also when LaTeX isn't run enough times).
-%
-\def\dftc@cnum#1{\expandafter\expandafter\expandafter \dftc@cnumx
- \csname b@#1\@extra@b@citeb\endcsname \dftc@tag 0\:}
-\def\dftc@cnumx#1\dftc@tag#2#3\:{\ifx\relax#1-1\else#2\fi}
-
-%
% make the special characters in the citation tag printable
%
\def\@citeverb#1{%
@@ -174,9 +111,7 @@
\expandafter \string\csname b@#1\endcsname}% % \@gobble, in that order.
}}%
-\long\def\@gobblethree#1#2#3{}
-
-\let\dftc@tag\@gobble
+\def\@gobblethree#1#2#3{}
% \@extra@b@citeb is a hook for other style files to further specify
% citations; for example, to number by chapter.
@@ -184,72 +119,41 @@
\@ifundefined{@extra@b@citeb}{\def\@extra@b@citeb{}}{}
-% count the citations as they appear in the text
-%
-\def\@advancecitecount{\begingroup
- \ifcase\dftc@cnum\@citeb % not cited yet
- \global\advance\@HighCite\@ne
- \toks@\expandafter\expandafter\expandafter
- {\csname b@\@citeb\@extra@b@citeb\endcsname}%
- \expandafter\xdef\csname b@\@citeb\@extra@b@citeb\endcsname{%
- \noexpand\dftc@tag{\the\@HighCite}\the\toks@}%
- \fi\endgroup}
-
-
%------------------------------------
% Handle optional variations:
-\newcount\@HighCite \global\@HighCite\z@
-\let\@dftc@hbox\hbox
-\let\@dftc@nums\@empty
-\def\dftc@vdef{\global\@namedef}
-\let\DC@llap=\llap
-\let\dftc@checksort\@empty
-
\def\nocitecount{%
- \let\DC@llap=\@gobble
- \let\@dftc@nums\@empty
- \let\@advancecitecount\@empty
- \let\dftc@checksort\@empty}
+ \def\@advancecitecount{\global\@namedef{DCN@\@citeb\@extra@b@citeb}{}}%
+ \let\DC@llap\@gobble}
+\nocitecount % in case what follows gets removed
+\newcount\@HighCite \global\@HighCite\z@
+\let\@dftc@ifund\@ifundefined
+\let\@dftc@hbox\hbox
\@ifundefined{DeclareOption}{}%
-{ \DeclareOption{nocitecount}{\nocitecount}
- \DeclareOption{verbose}{\let\dftc@vdef\@gobbletwo}
- \DeclareOption{tt}{\def\citeform{\texttt}}
+{ \DeclareOption{nocitecount}{\endinput}
+ \toks@={\def\@dftc@ifund#1#2#3{#2}}
+ \DeclareOption{verbose}{\the\toks@}
+ \DeclareOption{tt}{\def\citeform{\tt}}
\DeclareOption{nospace}{\def\citepunct{,\penalty\z@}}
\DeclareOption{space}{\def\citepunct{,\ }}
\DeclareOption{breakcites}{\let\@dftc@hbox\relax}
- \DeclareOption{shownumbers}{\let\@dftc@nums\relax}
- \DeclareOption{manualsort}{\let\dftc@checksort\relax}
- \ProvidesPackage{drftcite}[2007/12/11 \space v 3.91]
+ \ProvidesPackage{drftcite}[1995/01/23 \space v 3.5]
\ProcessOptions }
+% The rest deals only with counting, and can be removed if counting is never
+% desired.
-\ifx\@dftc@nums\relax
-\def\@dftc@nums{\leavevmode\raise1.4ex\rlap{\the\scriptfont\z@
- \csname b@\@citeb\@extra@b@citeb\endcsname\
- (\dftc@cnum\@citeb)}}%
-\fi
-
-\ifx\@advancecitecount\@empty \nocitecount \endinput \fi
-
+\let\DC@llap=\llap
+%
+% count the citations as they appear in the text
+%
+\def\@advancecitecount{\@ifundefined {DCN@\@citeb\@extra@b@citeb}%
+{\global\advance\@HighCite\@ne
+\expandafter\xdef\csname DCN@\@citeb\@extra@b@citeb\endcsname{\the\@HighCite}}%
+{}}
%
-% Check if cites in a \cite{a,b,c} are increasing.
-%
-\ifx\dftc@checksort\relax
-\def\dftc@checksort{%
- \edef\dftc@enum{\number0\csname b@\@citeb\@extra@b@citeb\endcsname}%
- \ifnum \z@<\dftc@enum\relax % is numeric
- \ifnum\dftc@prenum<\dftc@enum\relax
- \else
- \@warning {Citation `\@citeb' number \dftc@enum\space
- cited on page \thepage\space is given out of order}%
- \fi
- \global\let\dftc@prenum\dftc@enum%
- \fi}
-\fi
-
% The remainder handles (counting over) input files skipped by \includeonly.
% It adds code to LaTeX's \include to re-read the .aux file checking the
% \citation commands.
@@ -280,13 +184,14 @@
% D R F T C I T E . S T Y
%
-% version 3.91 (Dec 2007)
+% version 3.5 (Jan 1995)
%
% This package makes LaTeX use the identifying label instead of the number
% for citations, as if the bibliography had entries like \bibitem[name]{name}
% but LaTeX writes the proper citation number to the aux file for later runs.
-% This package is meant for draft copies documents using numeric citations,
-% particularly those that will use cite.sty or overcite.sty but not bibtex.
+% Spaces before the \cite command are ignored, and an ordinary interword
+% space is used. This package is particularly useful for draft (draught)
+% versions of documents.
%
% The \citen command is provided, as in cite.sty, to print just the citation
% or list of citations without the brackets and other formatting.
@@ -295,29 +200,30 @@
% for bibliography items that were never cited in the text.
%
% This package also keeps track of the order of first-citations in the text
-% for easy sorting (in lieu of BibTeX). The cite-order is displayed in the
-% bibliography along with the tags.
+% for easy sorting (in lieu of BibTeX). To omit this counting...
+% LaTeX 2.09: declare \nocitecount before the first \cite; or, for
+% a more permanent removal, comment-out the lines ending with %%o
+% below, and omit everything following the line that begins with %%o.
+% LaTeX2e: specify \usepackage[nocitecount]{drftcite}, or perform the
+% editing described above.
%
-% Both the cite-order number and the bibliography numbers can be displayed
-% as superscripts with the citations; use option [shownumbers].
-%
% The characters <>|_{}\ are not present in the cm roman fonts, so if you use
% them in identifiers, they will have to be typeset in typewriter style.
-% To do this, give package option [tt], or redefine \citeform as {\tt}.
+% To do this,...
+% LaTeX 2.09: insert \renewcommand\citeform{\tt} in your preamble
+% LaTeX2e: specify \usepackage[tt]{drftcite}
%
% `Citation...undefined' warnings are only given once per undefined
% citation name. In the text, missing numbers are represented with a
-% bold `name?'. To restore multiple warnings, use option [verbose].
+% bold `name?'. To restore multiple warnings...
+% LaTex 2.09: edit this file, removing the lines with the comments:
+% "delete to warn always"
+% LaTeX2e: specify \usepackage[verbose]{drftcite}
%
-% Options for \usepackage are:
+% Other options for \usepackage are:
% [space] - Separate printed names with comma-space (Default).
% [nospace] - Print just a comma (not comma-space) after each name.
% [breakcites] - Allow each printed name to be broken (hyphenated).
-% [verbose] - Give warning every time an undefined citation is used.
-% [tt] - Use tt font for citation tags
-% [shownumbers] - show superscript: bib-number (cite-order) with the cite tags
-% [manualsort] - Issue warnings when \cite tags are out of numeric order.
-% [nocitecount] - Disable all numbering/sorting functions.
%
% There are several commands that you may redefine (using \renewcommand)
% to change the formatting of citation lists:
@@ -349,10 +255,8 @@
% names; better chapterbib support.
% Version 3.5 (1995): Add tests before removing space + options from cite.sty.
% change \@citeverb to not eat hash space.
-% Version 3.9 (2001): Change a whole lot...and not thoroughly checked.
-% Version 3.91 (2007): Use \hfill and \texttt; update email.
%
-% Send problem reports to asnd@triumf.ca
+% Send problem reports to asnd@Reg.triumf.ca
%
% Test integrity of file:
% brackets: round, square, curly, angle: () [] {} <>
diff --git a/Master/texmf-dist/tex/latex/cite/overcite.sty b/Master/texmf-dist/tex/latex/cite/overcite.sty
index ccec9ccdde4..565ac4cd3aa 100644
--- a/Master/texmf-dist/tex/latex/cite/overcite.sty
+++ b/Master/texmf-dist/tex/latex/cite/overcite.sty
@@ -1,21 +1,422 @@
% O V E R C I T E . S T Y
%
-% version 4.0 (May 2003)
+% version 3.8 (Apr 1999)
%
% Compressed, sorted lists of superscript numerical citations.
+% see also CITE.STY and DRFTCITE.STY
%
-% Copyright (C) 2003 by Donald Arseneau
+% Copyright (C) 1989-1999 by Donald Arseneau
% These macros may be freely transmitted, reproduced, or modified
% provided that this notice is left intact.
%
-% This package is provided for compatibility with the original
-% overcite.sty. All it does is invoke cite.sty with the option
-% [superscript].
-%
-% It would be a shame to lose this pun.
-%
+% Instructions follow \endinput.
% ------------------------------------
- \ProvidesPackage{overcite}[2003/05/27 \space v 4.0]
- \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{cite}}
+% First, ensure that some catcodes have the expected values
+\edef\citenum{% to restore funny codes
+ \catcode\string`\string ` \the\catcode\string`\`
+ \catcode\string`\string ' \the\catcode\string`\'
+ \catcode\string`\string = \the\catcode\string`\=
+ \catcode\string`\string _ \the\catcode\string`\_
+ \catcode\string`\string : \the\catcode\string`\:}
+\catcode\string`\` 12
+\catcode`\' 12
+\catcode`\= 12
+\catcode`\_ 8
+\catcode`\: 12
+
+% Handle optional variations:
+% [ verbose, nospace, space, ref, nosort, nomove, noadjust],
+% \citeform,\citeleft,\citeright,\citemid,\citepunct,\citedash
+%
+% Set defaults:
+
+% [ on the left. Option [ref] does: [Ref. 12, note]
+\@ifundefined{citeleft}{\let\citeleft=[}{}
+
+% ] on the right:
+\@ifundefined{citeright}{\let\citeright=]}{}
+
+% , (comma space) before note
+\@ifundefined{citemid}{\def\citemid{,\penalty\@medpenalty\ }}{}
+
+% , (comma thin-space) between entries; [nospace] eliminates the space
+\@ifundefined{citepunct}{
+ \def\citepunct{,\penalty\@m\hskip.13emplus.1emminus.1em}%
+ }{}
+
+% -- (endash) designating range of numbers:
+% (using \hbox avoids easy \exhyphenpenalty breaks)
+\@ifundefined{citedash}{\def\citedash{\hbox{--}\penalty\@m }}{}
+
+% Each number left as-is:
+\@ifundefined{citeform}{\def\citeform{}}{}
+
+% Do not repeat warnings. [verbose] reverses
+\let\oc@verbo\relax
+
+% Default is to move punctuation:
+\def\oc@movep#1{\futurelet\@tempb\@citey}
+\let\@citey\oc@movep % Temporary
+
+\@ifundefined{DeclareOption}{}%
+{ \toks@={\def\oc@verbo#1#2#3#4{}}
+ \DeclareOption{verbose}{\the\toks@}
+ \DeclareOption{nospace}{\def\citepunct{,\penalty\@m}}
+ \DeclareOption{space}{\def\citepunct{,\penalty\@highpenalty\ }}
+ \DeclareOption{ref}{\def\citeleft{[Ref.\penalty\@M\ }}
+ \DeclareOption{nosort}{\def\@addto@cite@list
+ {\edef\@cite@list{\@cite@list \@celt{\@B@citeB}}}}
+ \DeclareOption{sort}{\let\@cite@list\relax}% default!
+ \DeclareOption{nomove}{\def\oc@movep{\@tempa}}% Don't move punctuation
+ \DeclareOption{move}{\let\oc@movep\@citey}% default definition
+ \DeclareOption{noadjust}{\let\cite@adjust\@empty}% Don't change spaces
+ \DeclareOption{adjust}{\let\cite@adjust\relax}% adjust space before [ ]
+ \ProvidesPackage{overcite}[1999/04/23 \space v 3.8]
\ProcessOptions
- \RequirePackage[superscript]{cite}
+}
+
+%----------------------
+% \citen uses \nocite to ignore spaces after commas, and write the aux file
+% \citation. \citen then loops over the citation tags, using \@make@cite@list
+% to make a sorted list of numbers. Finally, \citen executes \@citelist to
+% compress ranges of numbers and print the list. \citen can be used by itself
+% to give citation numbers without the brackets and other formatting; e.g.,
+% "See also ref.~\citen{junk}."
+%
+\edef\citen{\noexpand\protect \expandafter\noexpand\csname citen \endcsname}
+
+\@namedef{citen }#1{%
+\begingroup
+\let\@safe@activesfalse\@empty
+\@nocite{#1}% ignores spaces, writes to .aux file, returns #1 in \@no@sparg
+\@tempcntb\m@ne % \@tempcntb tracks highest number
+\let\@h@ld\relax % nothing held from list yet
+\let\@citea\@empty % no punctuation preceding first
+\let\@celt\delimiter % an unexpandable, but identifiable, token
+\def\@cite@list{}% % empty list to start
+\@for \@citeb:=\@no@sparg\do{\@make@cite@list}% make a sorted list of numbers
+% After sorted citelist is made, execute it to compress citation ranges.
+\@tempcnta\m@ne % no previous number
+\let\@celt\@compress@cite \@cite@list % output number list with compression
+\@h@ld % output anything held over
+\endgroup}
+
+% For each citation, check if it is defined and if it is a number.
+% if a number: insert it in the sorted \@cite@list
+% otherwise: output it immediately.
+%
+\def\@make@cite@list{%
+ \expandafter\let \expandafter\@B@citeB
+ \csname b@\@citeb\@extra@b@citeb \endcsname
+ \ifx\@B@citeB\relax % undefined: output ? and warning
+ \@citea {\bf{?}}\let\@citea\citepunct \G@refundefinedtrue
+ \@warning {Citation `\@citeb' on page \thepage\space undefined}%
+ \oc@verbo \global\@namedef{b@\@citeb\@extra@b@citeb}{?}%
+ \else % defined % remove previous line to repeat warnings
+ \ifcat _\ifnum\z@<0\@B@citeB _\else A\fi % a positive number, put in list
+ \@addto@cite@list
+ \else % citation is not a number, output immediately
+ \@citea \citeform{\@B@citeB}%
+ \let\@citea\citepunct
+ \fi\fi}
+
+% Regular definition for adding entry to cite list, with sorting
+
+\@ifundefined{@addto@cite@list}{% sort option either declared or defaulted
+ \def\@addto@cite@list{\@tempcnta\@B@citeB \relax
+ \ifnum \@tempcnta>\@tempcntb % new highest, add to end (efficiently)
+ \edef\@cite@list{\@cite@list \@celt{\@B@citeB}}%
+ \@tempcntb\@tempcnta
+ \else % arbitrary number: insert appropriately
+ \edef\@cite@list{\expandafter\@sort@celt \@cite@list \@gobble @}%
+ \fi}
+%
+% \@sort@celt inserts number (\@tempcnta) into list of \@celt{num} (#1{#2})
+% \@celt must not be expandable; list should end with two vanishing tokens.
+%
+ \def\@sort@celt#1#2{\ifx \@celt #1% parameters are \@celt {num}
+ \ifnum #2<\@tempcnta % number goes later in list
+ \@celt{#2}%
+ \expandafter\expandafter\expandafter\@sort@celt % continue
+ \else % number goes here
+ \@celt{\number\@tempcnta}\@celt{#2}% stop comparing
+ \fi\fi}
+}% end sort option definitions
+{}% nosort definition is done in options processing
+
+% Check if each number follows previous and can be put in a range
+%
+\def\@compress@cite#1{% % This is executed for each number
+ \advance\@tempcnta\@ne % Now \@tempcnta is one more than the previous number
+ \ifnum #1=\@tempcnta % Number follows previous--hold on to it
+ \ifx\@h@ld\relax % first pair of successives
+ \edef\@h@ld{\@citea \noexpand\citeform{#1}}%
+ \else % compressible list of successives
+ \def\@h@ld{\citedash \citeform{#1}}%
+ \fi
+ \else % non-successor -- dump what's held and do this one
+ \@h@ld \@citea \citeform{#1}\let\@h@ld\relax
+ \fi \@tempcnta#1\let\@citea\citepunct
+}
+
+% Make \cite robust and choose superscript or normal
+%
+\edef\cite{\noexpand\protect\expandafter\noexpand\csname cite \endcsname}
+
+\@namedef{cite }{\@ifnextchar[{\@tempswatrue\@citex}{\@tempswafalse\@citew}}
+
+% \cite command has optional note, so do on line.
+%
+\def\@citex[#1]#2{\leavevmode
+ \cite@adjust
+ \citeleft{\citen{#2}\citemid{#1}%
+ \spacefactor\@m % punctuation in note doesn't affect outside
+ }\citeright}
+
+% Put a penalty before the citation, and adjust the spacing: if no space
+% already or if there is extra space due to some punctuation, then change
+% to one inter-word space.
+%
+\@ifundefined{cite@adjust}{\def\cite@adjust{%
+ \@tempskipa\lastskip \edef\@tempa{\the\@tempskipa}\unskip
+ \ifnum\lastpenalty=\z@ \penalty\@highpenalty \fi
+ \ifx\@tempa\@zero@skip \spacefactor1001 \fi % if no space before, set flag
+ \ifnum\spacefactor>\@m \ \else \hskip\@tempskipa \fi}}{}
+
+% No note, so superscript, but check for punctuation first.
+%
+\def\@citew#1{\begingroup \leavevmode \unskip
+ \def\@tempa{\@tempcnta\spacefactor
+ \/% this allows the last word to be hyphenated, and it looks better.
+ \@cite{\citen{#1}}\spacefactor\@tempcnta\endgroup}%
+ \oc@movep\relax}% check for following punctuation (depending on options)
+
+% Move trailing punctuation before the citation:
+%
+\def\@citey{\let\@tempc\oc@movep
+ % Watch for double periods and suppress them
+ \ifx\@tempb.\ifnum\spacefactor<3000 .\fi
+ % Move other punctuation
+ \else\ifx\@tempb,,%
+ \else\ifx\@tempb::% add other punctuation as necessary,
+ \else\ifx\@tempb;;% with balancing \fi s
+ \else\let\@tempc\@tempa
+ \fi\fi\fi\fi
+ \@tempc}%
+%
+% Replacement for \@cite which defines the formatting normally done
+% around the citation list. This uses superscripts with no brackets.
+% HOWEVER, trailing punctuation has already been moved over. The
+% format for cites with note is given by \@citex. Redefine \@cite and/
+% or \@citex to get different appearance. I don't use \textsuperscript
+% because it is defined badly in compatibility mode.
+
+\def\@cite#1{\mbox{$\m@th^{\hbox{\@ove@rcfont#1}}$}}
+
+\@ifundefined{selectfont}{% original LaTeX 2.09
+ \def\@ove@rcfont{\the\scriptfont\z@ \def\bf{\the\scriptfont\bffam}}
+ }{% NFSS
+ \@ifundefined{fontsize}{% \fontsize undefined: strange NFSS
+ \def\@ove@rcfont{\the\scriptfont\z@}\let\bf\relax % hope this works
+ }{% `normal' NFSS LaTeX2e, including compatibility mode
+ \def\@ove@rcfont{% not needed: \csname S@\f@size\endcsname
+ \fontsize\sf@size\baselineskip\selectfont}
+ }}
+
+\edef\@zero@skip{\the\z@skip}
+
+% \nocite: This is changed to ignore *ALL* spaces and be robust. The
+% parameter list, with spaces removed, is `returned' in \@no@sparg, which
+% is used by \citen.
+%
+\edef\nocite{\noexpand\protect\expandafter\noexpand\csname nocite \endcsname}
+
+\@namedef{nocite }#1{\@bsphack \@nocite{#1}%
+ \@for \@citeb:=\@no@sparg\do{\@ifundefined{b@\@citeb\@extra@b@citeb}%
+ {\G@refundefinedtrue\@warning{Citation `\@citeb' undefined}%
+ \oc@verbo \global\@namedef{b@\@citeb\@extra@b@citeb}{?}}{}}%
+ \@esphack}
+
+\def\@nocite#1{\xdef\@no@sparg{\@ignsp#1 \! }% remove *ALL* spaces
+ \if@filesw \immediate\write\@auxout {\string\citation {\@no@sparg}}\fi}
+
+% for ignoring *ALL* spaces in the input. This presumes there are no
+% \outer tokens and no \if-\fi constructs in the parameter. Spaces inside
+% braces are retained.
+%
+\def\@ignsp#1 {\ifx\!#1\@empty\else #1\expandafter\@ignsp\fi}
+
+\let\nocitecount\relax % in case \nocitecount was used for drftcite
+
+\@ifundefined{@extra@b@citeb}{\def\@extra@b@citeb{}}{}
+% in case no fancy bib package (chapterbib) defines this
+
+\@ifundefined{G@refundefinedtrue}{\let\G@refundefinedtrue\relax}{}
+
+\citenum % execute restore-catcodes
+
+% Aliases:
+\let\citenum\citen
+\let\citeonline\citen
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+ OVERCITE.STY
+
+Modify LaTeX's normal citation mechanism to:
+
+o Display citations as superscript numbers, with a comma and a small space
+ between each number, and with three or more consecutive numbers compressed
+ into a range like 3-7.
+
+o By default, sort citation numbers into ascending order; print non-numbers
+ before numbers. All numbers should be greater than zero. (The [nosort]
+ package option turns off sorting.)
+
+o If an optional note is given, typeset the whole list of citations at regular
+ size as if cite.sty was in effect. (See cite.sty).
+
+o Use THE SAME INPUT FORMAT as for ordinary citations; this style will ignore
+ spaces before the citation, and move trailing punctuation to before the
+ citation. For example, "...information \cite{source};" ignores the space
+ before \cite and puts the semicolon before the number, just as if you typed
+ "...information;$^{12}$".
+
+o The punctuation that will migrate before the superscript is .,;:. Perhaps
+ ! and ? should too, but they weren't listed in the APS style manual I looked
+ at. Quotes were listed, but they should never have to migrate because both
+ on-line and superscript versions put quotes before the citation. This gives
+ one difficulty --- punctuation following quotes won't migrate inside the
+ quotation. For example, "``Transition State Theory''\cite{Eyring}." gives
+ "``Transition State Theory''.$^8$", but you may want the period inside the
+ quotes, thus: ``Transition State Theory.''$^8$.
+
+o Doubling of periods (.., ?., !.) is checked for and suppressed. The spacing
+ after the citation is set according to the final punctuation mark moved.
+ There is a problem with double periods after a capitalized abbreviation
+ or directly after \@ : Both of "N.A.S.A. \cite{space}." and "et al.\@
+ \cite{many}." will give doubled periods. These can be fixed as follows:
+ "N.A.S.A\@. \cite{space}." and "et al.\ \cite{many}.". These work properly
+ for both cite.sty and overcite.sty, but the NASA example gives the wrong
+ spacing when there is no citation. Sorry. Use \ after abbreviations like
+ et al. to get the right spacing within a sentence whether or not a citation
+ follows.
+
+o All the special handling of punctuation can be disabled by specifying the
+ [nomove] option.
+
+o Define \citen to get just the numbers without the brackets or superscript
+ and extra formatting. Aliases are \citenum and \citeonline for easy
+ conversion to other citation packages.
+
+o `Citation...undefined' warnings are only given once per undefined citation
+ tag. In the text, missing numbers are represented with a bold `?' at the
+ first occurrence, and with a normal `?' thenceforth. The package option
+ [verbose] restores the usual repeated warnings.
+
+o Make \nocite, \cite, and \citen all ignore spaces in the input tags.
+
+Although each \cite command sorts its numbers, better compression into
+ranges can usually be achieved by carefully selecting the order of the
+\bibitem entries or the order of initial citations when using BibTeX.
+Having the entries pre-sorted will also save processing time, especially
+for long lists of numbers.
+
+Customization:
+~~~~~~~~~~~~~~
+Under LaTeX2e, there are six options for \usepackage{overcite}:
+
+ [verbose] causes warnings for undefined citations to be repeated each time
+ they are used.
+ [ref] uses the format `[Ref.~12, optional note]' when \cite[]{} appears.
+ [nospace] eliminates the spaces after commas in the number list.
+ [space] uses a full inter-word space with no penalty after the commas
+ [nosort] prevents sorting of the numbers (default is to sort, and a
+ [sort] option is provided for completeness).
+ [nomove] prevents moving the superscript cite after punctuation.
+ [noadjust] disables `smart' handling of space before a cite with note.
+
+There are several commands that you may redefine to change the formatting
+of citation lists:
+
+command function default
+---------- ----------------------- ----------------------------
+\citeform reformats each number nothing
+\citepunct printed between numbers comma + penalty + thin space
+\citeleft left delimiter of list [
+\citeright right delimeter of list ]
+\citemid printed before note comma + space
+\citedash used in a compressed range endash + penalty
+
+The left/mid/right commands only affect the formatting of citations with
+optional notes: \cite[xxx]{yyy}. You may use \renewcommand to change any
+of these. Remember, these commands are extensions made by this package;
+they are not regular LaTeX. Some examples of changes:
+
+1: \renewcommand\citeform[1]{\romannumeral 0#1}} % roman numerals ^{i,vi}
+2: \renewcommand\citeform[1]{(#1)} % parenthesized numbers ^{(1)-(5)}
+3: \renewcommand\citeform{\thechapter.} % by chapter: ^{2.18-2.21}
+4: \renewcommand\citepunct{,} % no space and no breaks at commas
+5: \renewcommand\citemid{; } % semicolon before optional note
+6: \renewcommand\citeleft{(} % parentheses around list with note
+ \renewcommand\citeright{)} % parentheses around list with note
+
+The appearance of the whole citation list is governed by \@cite, (for no
+note) and \@citex (when a note is given). For more extensive changes to the
+formatting, redefine \@cite and/or \@citex. For example, to get brackets
+around the list of superscript numbers you can do:
+
+ \def\@cite#1{\mbox{$\m@th^{\hbox{\@ove@rcfont[#1]}}$}}
+or
+ \def\@cite#1{\textsuperscript{[#1]}}
+
+after \makeatletter.
+
+Related Note: overcite.sty does not affect the numbering format of
+the bibliography; the "[12]" style is still the default. To get
+superscripts in the bibliography (at any time) you can include
+
+ \renewcommand\@biblabel[1]{$^{#1}$}
+
+in your personal style file, or include
+
+ \makeatletter \renewcommand\@biblabel[1]{$^{#1}$} \makeatother
+
+directly in your document. If this does not work, your LaTeX and/or
+document style are very outdated.
+
+\@extra@b@citeb is a hook for other style files to further specify
+citations; for example, to number by chapter (see chapterbib.sty).
+
+See also cite.sty for enhanced [5-9] type citations, and drftcite.sty
+for draft mode citations.
+
+% Version 1991: Ignore spaces after commas in the parameter list. Move most of
+% \citen into \@cmpresscites for speed. Give the proper \spacefactor afterwards.
+% Version 1992: make \citepunct hold the punctuation between numbers (for ease
+% of changing). Add \/ to allow hyphenation of previous word, and look better
+% in italics.
+% 1992a: Make it work with NFSS. (Thank you C. Hamlin and Rainer Schoepf)
+%
+% Version 3.0 (1992): Rewrite, including sorting. Make entries like "4th"
+% be treated properly as text.
+% 3.1: Bug fixes (and Joerg-Martin Schwarz also convinced me to use \ifcat)
+% 3.2: NFSS support was wrong--added \reset@font. Suppress repetitions of
+% warnings. Include \@extra@b@citeb hook.
+% 3.3: Handle LaTeX2e options. Introduce various customization hooks.
+% 3.4: Heuristics to avoid removing \hspace glue before on-line \cite.
+% Make \nocite ignore spaces in list, simplify. Aliases for \citen.
+% Compatability with amsmath (which defines \over).
+% 3.5: Replace \reset@font with \selectfont so italics are preserved
+% Include \G@refundefinedtrue. Fix cite-with-note bug (Lars Engebretsen).
+% 3.6: Add nosort option.
+% 3.7: Add nomove option; catcode preservation and global \@no@sparg for
+% french.sty; warnings in \nocite.
+% 3.8: \citedash hook, fix token look-ahead (Heiko Selber), noadjust, babel.
+%
+% Send problem reports to asnd@Reg.triumf.ca
+
+Test file integrity: ASCII 32-57, 58-126: !"#$%&'()*+,-./0123456789
+:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~