diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/cite/overcite.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/cite/overcite.sty | 423 |
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} |