summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/cite/overcite.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/cite/overcite.sty')
-rw-r--r--Master/texmf-dist/tex/latex/cite/overcite.sty423
1 files changed, 11 insertions, 412 deletions
diff --git a/Master/texmf-dist/tex/latex/cite/overcite.sty b/Master/texmf-dist/tex/latex/cite/overcite.sty
index 565ac4cd3aa..ccec9ccdde4 100644
--- a/Master/texmf-dist/tex/latex/cite/overcite.sty
+++ b/Master/texmf-dist/tex/latex/cite/overcite.sty
@@ -1,422 +1,21 @@
% O V E R C I T E . S T Y
%
-% version 3.8 (Apr 1999)
+% version 4.0 (May 2003)
%
% Compressed, sorted lists of superscript numerical citations.
-% see also CITE.STY and DRFTCITE.STY
%
-% Copyright (C) 1989-1999 by Donald Arseneau
+% Copyright (C) 2003 by Donald Arseneau
% These macros may be freely transmitted, reproduced, or modified
% provided that this notice is left intact.
%
-% Instructions follow \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 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
-}
-
-%----------------------
-% \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.
+% This package is provided for compatibility with the original
+% overcite.sty. All it does is invoke cite.sty with the option
+% [superscript].
%
-\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.
+% It would be a shame to lose this pun.
%
-\@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{|}~
+% ------------------------------------
+ \ProvidesPackage{overcite}[2003/05/27 \space v 4.0]
+ \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{cite}}
+ \ProcessOptions
+ \RequirePackage[superscript]{cite}