diff options
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/latex/natbib/natbib.drv | 6 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/natbib/natbib.dtx | 964 |
2 files changed, 412 insertions, 558 deletions
diff --git a/Master/texmf-dist/source/latex/natbib/natbib.drv b/Master/texmf-dist/source/latex/natbib/natbib.drv index 5a5cb763596..4335ba4af70 100644 --- a/Master/texmf-dist/source/latex/natbib/natbib.drv +++ b/Master/texmf-dist/source/latex/natbib/natbib.drv @@ -11,15 +11,15 @@ %% %% Make changes to it as needed. (Never change the file natbib.dtx!) %% ============================================ -%% Copyright 1993-2006 Patrick W Daly +%% Copyright 1993-2007 Patrick W Daly %% Max-Planck-Institut f\"ur Sonnensystemforschung %% Max-Planck-Str. 2 %% D-37191 Katlenburg-Lindau %% Germany -%% E-mail: daly@linmpi.mpg.de +%% E-mail: daly@mps.mpg.de \NeedsTeXFormat{LaTeX2e} \ProvidesFile{natbib.drv} - [2006/09/06 7.4a (PWD)] + [2007/02/05 8.0 (PWD)] \documentclass{ltxdoc} %\documentclass[twoside]{ltxdoc} %\documentclass[a4paper]{ltxdoc} diff --git a/Master/texmf-dist/source/latex/natbib/natbib.dtx b/Master/texmf-dist/source/latex/natbib/natbib.dtx index 8f7e52578de..c4112cc378b 100644 --- a/Master/texmf-dist/source/latex/natbib/natbib.dtx +++ b/Master/texmf-dist/source/latex/natbib/natbib.dtx @@ -5,12 +5,12 @@ {NATBIB.DTX} %======================================================================== %</dtx> -%% Copyright 1993-2006 Patrick W Daly +%% Copyright 1993-2007 Patrick W Daly %% Max-Planck-Institut f\"ur Sonnensystemforschung %% Max-Planck-Str. 2 %% D-37191 Katlenburg-Lindau %% Germany -%% E-mail: daly@linmpi.mpg.de +%% E-mail: daly@mps.mpg.de % % This program can be redistributed and/or modified under the terms % of the LaTeX Project Public License Distributed from CTAN @@ -32,28 +32,15 @@ % package - to produce a package .sty file % notes - to produce a reference sheet for natbib usage % driver - to produce a driver file to print the documentation -% 209 - (with package) for style file that runs under LaTeX 2.09 -% subpack - (with package) for coding included in other packages % all - (with package) to include all author-year systems % else individually with: % apalike, newapa, chicago, harvard, authordate, astron -% agu - (with package,subpack) for inclusion in aguplus package -% egs- (with package,subpack) for inclusion in egs package -% nopreonly - allows \citestyle and \bibpunct to be used anywhere %-------------------------------------------------------------------------- -%<*!subpack> -%<package&209>\def\ProvidesPackage#1#2] -%<package&209> {\typeout{Style option `#1'#2]}} % % *** Identify the package file:- -%<package&!209>\NeedsTeXFormat{LaTeX2e}[1995/06/01] +%<package>\NeedsTeXFormat{LaTeX2e}[1995/06/01] % (Need LaTeX2e release 3 for option definition with single #) %<package>\ProvidesPackage{natbib} -%</!subpack> -% -% *** Provide command to dislay module version -%<package&subpack>\def\ModuleVersion#1[#2]{} -%<package&subpack> \ModuleVersion{natbib} % % *** Provide command to identify reference sheet (notes) %<notes>\NeedsTeXFormat{LaTeX2e} @@ -68,7 +55,7 @@ % *** The DATE, VERSION, and other INFO %\fi %\ProvidesFile{natbib} - [2006/09/06 7.4a (PWD)] + [2007/02/05 8.0 (PWD)] % \changes{4.0}{1993 Aug 19}{First documented release} % \changes{4.1}{1993 Oct 4}{Simplification of \cs{@citeapalk}} % \changes{4.1a}{1993 Oct 14}{Add \texttt{rev} option for reversed comments @@ -179,9 +166,15 @@ % \changes{7.2}{2006 Jan 12}{Add compatibility with \texttt{citeref} package} % \changes{7.3}{2006 Mar 22}{Revise and update the manual documentation} % \changes{7.4}{2006 Aug 18}{Add \cs{NAT@nmfmt} to names in \cs{NAT@test}} -% \changes{7.4a}{2006 Sep 06}{Fix bug with compress option and hyperref with dvips} -% -% \CheckSum{2423} +% \changes{7.4a}{2006 Sep 6}{Fix bug with compress option and hyperref with dvips} +% \changes{7.5}{2007 Feb 2}{Add \cs{citenum} to print (non-superscripted) number} +% \changes{7.5}{2007 Feb 2}{Superscripted braces raised in textual citation too} +% \changes{7.5}{2007 Feb 2}{Change notes for textual numerical citations to be outside} +% \changes{8.0}{2007 Feb 2}{Allow changes in cite style, for chapterbib; remove \texttt{nopreonly} option} +% \changes{8.0}{2007 Feb 5}{Remove 2.09 support} +% \changes{8.0}{2007 Feb 5}{Remove subpackage option (and agu, egs options)} +% +% \CheckSum{2376} % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z @@ -407,7 +400,7 @@ End of documentation driver file. % \DoNotIndex{\@celt,\@cite@list,\@citea,\@citeb,\@compress@cite} % \DoNotIndex{\@bsphack,\@esphack,\@h@ld,\@make@cite@list,\@ne} % \DoNotIndex{\@sort@celt,\@tempcnta,\@tempcntb,\delimiter,\endgroup} -% \DoNotIndex{\ifcat,\m@ne,\number} +% \DoNotIndex{\ifcat,\m@ne,\number,\kern} % \DoNotIndex{\@markboth,\@mkboth,\nobreak,\SK@,\SK@@citex} % \DoNotIndex{\SK@@label,\SK@@ref,SK@def,\SK@lbibitem,\bbl@redefine} % \DoNotIndex{\@safe@activesfalse,\@save@activestrue,\active@prefix} @@ -506,7 +499,7 @@ with those for \texttt{harvard}, \texttt{apalike}, \texttt{chicago}, % citations along with numerical citations. Standard \LaTeX\ permits only % numerical, whereas all extensions for author--year prior to the release of % \thestyle{} in 1993 were limited to just that. Since they normally added new -% commands (as does \thestyle{} too), documents written with them could only be +% commands (as \thestyle{} does too), documents written with them could only be % used with numerical citations after extensive editing. % % The \thestyle{} package has changed that; switching from author--year to @@ -516,7 +509,7 @@ with those for \texttt{harvard}, \texttt{apalike}, \texttt{chicago}, % choice by most of the \LaTeX\ community, mainly because of its flexibility % and configurability. % -% Like all packages, it is loaded the document preamble, with possible options, +% Like all packages, it is loaded in the document preamble, with possible options, % with, e.g.\ % \begin{quote} % |\usepackage[sectionbib,square]{natbib}| @@ -779,14 +772,22 @@ results are different. % \DescribeMacro{\citealt} % \DescribeMacro{\citealp} % \DescribeMacro{\citetext} +% \DescribeMacro{\citenum} % \iffalse %<*notes> \head{Suppressed parentheses} % \fi As an alternative form of citation, |\citealt| is the same as |\citet| but \emph{without parentheses}. Similarly, |\citealp| is |\citep| without -parentheses. Multiple references, notes, and the starred variants -also exist. +parentheses. + +The |\citenum| command prints the citation number, without parentheses, even +in author--year mode, and without raising it in superscript mode. This is +intended to be able to refer to citation numbers without superscripting them. + +% Multiple references, notes, and the starred variants +% also exist for these, except for |\citenum|. +% \begin{quote} \begin{tabular}{l@{\quad$\Rightarrow$\quad}l} |\citealt{jon90}| & Jones et al.\ 1990\\ @@ -795,6 +796,7 @@ also exist. |\citealp*{jon90}| & Jones, Baker, and Williams, 1990\\ |\citealp{jon90,jam91}| & Jones et al., 1990; James et al., 1991\\ |\citealp[pg.~32]{jon90}| & Jones et al., 1990, pg.~32\\ + |\citenum{jon90}| & 11\\ |\citetext{priv.\ comm.}| & (priv.\ comm.) \end{tabular} \end{quote} @@ -803,8 +805,7 @@ allows arbitrary text to be placed in the current citation parentheses. This may be used in combination with |\citealp|. % For example, % \begin{verbatim} -% \citetext{see \citealp{jon90}, -% or even better \citealp{jam91}} +% \citetext{see \citealp{jon90}, or even better \citealp{jam91}} % \end{verbatim} % to produce (see Jones et al., 1990, or even better James et al., 1991). % @@ -851,8 +852,8 @@ extra commands % % \medskip\noindent % \textbf{Note:} all |\cite..| commands have the same -% syntax, allowing multiple citations and up to two notes (there is, however, -% no starred |\citeyear| variant). It does not really make much sense to add +% syntax, allowing multiple citations and up to two notes (there are, however, +% no starred |\citeyear| or |\citenum| variants). It does not really make much sense to add % notes to |\citeyear| and |\citeauthor|, especially with multiple citations; % however, this can be done, there will be no error message, but the results % are sometimes strange. For example, in numerical mode, the notes are fully @@ -1027,152 +1028,169 @@ hyperlinks. % % \subsection{Selecting Citation Punctuation}\label{sec:bibpunct} % -% \DescribeMacro{\bibpunct} +% \DescribeMacro{\setcitestyle} % The above examples have been printed with the default citation style. % It is possible to change this, as well as to select numerical or -% author--year mode, by means of the |\bibpunct| command, which takes -% one optional and 6 mandatory arguments. The mandatory ones are: +% author--year mode, by means of the |\setcitestyle| command, which takes as argument +% a comma-separated list of keywords. (This command is new to version~8.) % \iffalse %<*notes> \head{Selecting citation style and punctuation} -Use the command |\bibpunct| with one optional and 6 mandatory arguments: +Use the command |\setcitestyle| with a list of comma-separated +keywords (without spaces) as argument. % \fi -\begin{enumerate} -\item the opening bracket symbol, default = ( -\item the closing bracket symbol, default = ) -\item the punctuation between multiple citations, default = ; -\item the letter `n' for numerical style, or `s' for numerical superscript - style, any other letter for - author--year, default = author--year; -% note, it is not necessary to -% specify which author--year interface is being used, for all will be -% recognized; -\item the punctuation that comes between the author names and the year -% (parenthetical case only), default = , -\item the punctuation that comes between years or numbers when common author - lists are suppressed (default = ,); -% if both authors and years are -% common, the citation is printed as `1994a,b', but if a space -% is wanted between the extra letters, then include the space -% in the argument, as |{,~}|. -% -% For numerical mode, |\citet{jon90,jon91}| produces -% `Jones et al.\ [21, 22]' with this punctuation between the numbers. -% A space is automatically included for numbers, but not for -% superscripts. -% -\end{enumerate} - -The optional argument is the character preceding a post-note, default is a -comma plus space. In redefining this character, one must include a space if -one is wanted. +\begin{quote} + Citation mode: |authoryear| or |numbers| or |super|\\ + Braces: |round| or |square| or |open={|\emph{char}|},close={|\emph{char}|}|\\ + Between citations: |semicolon| or |comma| or |citesep={|\emph{char}|}|\\ + Between author and year: |aysep={|\emph{char}|}|\\ + Between years with common author: |yysep={|\emph{char}|}|\\ + Text before post-note: |notesep={|\emph{text}|}| +\end{quote} +Defaults are |authoryear|, |round|, |comma|, |aysep={;}|, |yysep={,}|, +|notesep={, }| -% The |\bibpunct| command must be issued in the preamble, that is, -% before |\begin{document}|. -% -Example~1, |\bibpunct{[}{]}{,}{a}{}{;}| changes the output of +Example~1, |\setcitestyle{square,aysep={},yysep={;}}| changes the author--year +output of \begin{quote} |\citep{jon90,jon91,jam92}| \end{quote} into [Jones et al. 1990; 1991, James et al. 1992]. -Example~2, |\bibpunct[; ]{(}{)}{,}{a}{}{;}| changes the output of +Example~2, |\setcitestyle{notesep={; },round,aysep={},yysep={;}}| changes the output of \begin{quote} |\citep[and references therein]{jon90}| \end{quote} into (Jones et al. 1990; and references therein). +% \medskip\noindent +% \textbf{Note}: +% \begin{itemize} +% \item parameters not specified remain unchanged; +% \item the order of the keywords is unimportant; +% \item the punctuation between author and year applies only to author--year +% citations, not numerical; +% \item the |yysep| punctuation comes between years when multiple citations +% have the same, non-repeated authors; a space is always inserted +% as well; if the years too are same, the citation is printed as `2007a,b', +% without a space; to include a space, add it with |yysep={,~}|; +% \item for numerical citations with common authors, e.g, +% |\citet{jon90,jon91}| produces `Jones et al.\ [21, 22]' with the +% punctuation between the numbers; a space is automatically included for +% numbers, but not for superscripts. +% \item a single character does not really need to be in |{ }|, +% other than a comma; |yysep=;| is acceptable; +% \end{itemize} +% +% \DescribeMacro{\bibpunct} +% The older command for setting the citation style is |\bibpunct| which +% takes one optional and 6 mandatory arguments: +% \begin{enumerate} +% \item the opening bracket symbol, default = ( +% \item the closing bracket symbol, default = ) +% \item the punctuation between multiple citations, default = ; +% \item the letter `n' for numerical style, or `s' for numerical superscript +% style, any other letter for +% author--year, default = author--year; +% \item the punctuation that comes between the author names and the year +% \item the punctuation that comes between years or numbers when common author +% lists are suppressed (default = ,); +% \end{enumerate} +% +% The optional argument is the character preceding a post-note, default is a +% comma plus space. In redefining this character, one must include a space if +% one is wanted. +% +% The above |\setcitestyle| examples can be achieved with +% \begin{quote} +% |\bibpunct{[}{]}{,}{a}{}{;}| and\\ +% |\bibpunct[,~]{(}{)}{,}{a}{}{;}|. +% \end{quote} +% % \iffalse %</notes> % \fi % +% \subsection{Predefining a citation style}\label{sec:predef} +% % \DescribeMacro{\bibstyle@xxx} -% Usually the citation style is determined by the journal -% for which one is writing, and is as much a part of the bibliography style -% as everything else. The \thestyle{} package allows -% punctuation definitions to be directly coupled to the -% |\bibliographystyle| command that must always be present when \btx{} is -% used. It is this command that selects the \texttt{.bst} file; by adding such -% a coupling to \thestyle{} for every \texttt{.bst} file that one might -% want to use, it is not necessary to add |\bibpunct| explicitly in the -% document itself, unless of course one wishes to override the preset -% values. -% -% Such a coupling is achieved by defining a command |\bibstyle@|{\em bst}, -% where {\em bst\/} stands for the name of the \texttt{.bst} file. For example, -% the American Geophysical Union (AGU) demands in its publications that -% citations be made with square brackets and separated by semi-colons. I -% have an \texttt{agu.bst} file to accomplish most of the formatting, but such -% punctuations are not included in it. Instead, \thestyle{} has the +% \DescribeMacro{\citestyle} +% +% If a particular set of citation punctuations is commonly used, it is possible +% to store it in the local \thestyle\texttt{.cfg} and to recall it with +% |\citestyle{|\emph{name}|}|. The +% definition is done by creating a command |\bibstyle@|\emph{name}, which sets +% the desired citation style. +% +% For example, the American Geophysical Union (AGU) demands in its publications +% that citations be made with square brackets and separated by semi-colons. +% There is an \texttt{agu.bst} file to accomplish most of the formatting, but +% such punctuations are not included in it. Instead, \thestyle{} has the % definition % \begin{quote} % |\newcommand{\bibstyle@agu}{\bibpunct{[}{]}{;}{a}{,}{,~}}| % \end{quote} +% which allows this set to be selected with the command +% \begin{quote} +% |\citestyle{agu}| +% \end{quote} % -% These style defining commands may contain more than just |\bibpunct|. +% There is an additional feature to such predefined styles: \thestyle\ attempts +% to execute |\citestyle| at the beginning of the document +% with the name of the bibliography style, as given by +% the |\bibliographystyle| command (and stored in the \texttt{.aux} file). +% This means that a citation style can be +% directly associated with a \texttt{.bst} file. Such implicit styles are +% immediately overwritten by any explicit style specifications, such as package +% options or |\setcitestyle|, |\bibpunct|, |\citestyle| commands. +% +% Predefined citation styles are contained within the \thestyle\ code for the +% following bibliography styles: +% \begin{description} +% \item[\texttt{plain}] etc. (the 4 base styles): square braces, numerical, commas +% \item[\texttt{plainnat}] etc.: square braces, author--year, commas +% \item[\texttt{agu}] (American Geophysical Union): square, author--year, semi-colon +% \item[\texttt{egu}] (European Geosciences Union): round, author--year, semi-colon +% \item[\texttt{agms, dcu, kluwer}] (Harvard set): round, author--year +% \item[\texttt{cospar}] (Committe on Space Research): slashes, numerical, comma +% \item[\texttt{nature}] (Journal \textsl{Nature}): superscripts +% \end{description} +% There are others but they are mainly for my personal convenience. The above +% represent most of the major variations and can be used as required. The +% automatic association with other bibliography styles can only be achieved by +% putting the definitions into the local \thestyle\texttt{.cfg}. +% +% Note that the predefinitions for |plain| and |plainnat| specify square +% braces, thus changing the normal \thestyle\ default of round parentheses. +% +% The style defining commands may contain more than just |\bibpunct| +% or |\setcitestyle|. % Some numerical citation scheme require even more changes. For example, -% the journal \textsl{Nature} not only uses superscripted numbers for +% \textsl{Nature} not only uses superscripted numbers for % citations, it also prints the numbers in the list of references without % the normal square brackets. To % accommodate this, \thestyle{} contains the style definition % \begin{quote}\begin{verbatim} % \newcommand{\bibstyle@nature}% % {\bibpunct{}{}{,}{s}{}{\textsuperscript{,}}% -% \gdef\NAT@biblabelnum##1{##1.}} +% \renewcommand\bibnumfmt[1]{##1.}} % \end{verbatim} % \end{quote} -% The redefined |\NAT@biblabelnum| command specifies how the reference numbers +% The redefined |\bibnumfmt| command specifies how the reference numbers % are to be formatted in the list of references itself. -% The redefinition must be made with |\gdef|, not |\def| or -% |\renewcommand|. -% -% The selected punctuation style and other redefinitions will not be in -% effect on the first \LaTeX{} run, for they are stored to the auxiliary -% file for the subsequent run. -% -% The user may add more such definitions of his own, to accommodate those -% journals and \texttt{.bst} files that he has. He should put them into a file -% named \thestyle\texttt{.cfg}, which is read in if it exists, -% adding any local configurations. Thus such configurations can survive -% future updates of the package. -% -% \medskip -% \noindent\textbf{Note:} -% any explicit call to |\bibpunct| has priority over the -% predefined citation styles. -% -% \DescribeMacro{\citestyle} -% A preprogrammed citation style is normally invoked by the command -% |\bibliographystyle|, as described above. However, it may be that one wants -% to apply a certain citation style to another bibliography style. This may be -% done with |\citestyle|, given \emph{before} |\begin{document}|. For example, -% to use the \texttt{plainnat} bibliography style (for the list of references) -% with the \textsl{Nature} style of citations (superscripts), -% \begin{quote} -% |\documentclass{article}|\\ -% |\usepackage{|\thestyle|}|\\ -% |. . . . .|\\ -% |\citestyle{nature}|\\ -% |\begin{document}|\\ -% |\bibliographystyle{plainnat}|\\ -% |. . . . .| -% \end{quote} -% -% \noindent -% \textbf{Note:} all changes to the citation -% style, including punctuation, must be made before |\begin{document}|, -% which freezes the citation style. % % \subsection{Priority of Style Commands}\label{sec:priority} % The citation style (punctuation and mode) can be selected by means of the -% |\bibpunct|, |\citestyle|, and predefined |\bibstyle@|\textit{bst} -% commands. They can also be selected by package options +% |\setcitestyle|, |\bibpunct|, |\citestyle| commands or via +% |\bibliographystyle{|\textit{bst}|}| with a predefined |\bibstyle@|\textit{bst}. +% They can also be selected by package options % (Section~\ref{sec:opts}). What happens if there are several conflicting % selections? % -% The lowest priority is assigned to the predefined |\bibstyle@|\textit{bst} -% commands, since they are implicit and not obvious to the user. The +% The lowest priority is assigned to the |\bibliographystyle| +% command, since this is implicit and not transparent to the user. The % package options have the next priority. Finally, any selection by +% |\setcitestyle|, % |\bibpunct| and/or |\citestyle| overrides those of the other methods. % % \subsection{Other Formatting Options} @@ -1305,8 +1323,8 @@ entries will no longer be made. % \DescribeMacro{\NAT@idxtxt} % The form of the index entries is set by the internal |\NAT@idxtxt|, which % can be redefined by hackers if wanted (in the \thestyle\texttt{.cfg} file -% please). By default, it prints the short author list plus date in the -% current parenthesis style. +% please). By default, it prints the short author list plus date or number in the +% current parenthesis style and citation mode. % % The \thestyle\ package can also be used with the \texttt{index} package of % David~M. Jones. The order in which the packages are loaded is not @@ -1334,10 +1352,11 @@ entries will no longer be made. % The compatibility is of a mutual nature: both packages contain % coding that interact with that of the other. % -% There is a special option \texttt{nonamebreak} that can be used with the -% \texttt{hyperref} package; it keeps all the author names in a citation on one -% line, something that avoids certain problems with pdf\TeX. This is otherwise -% not recommended, since many overfull lines result. +% There is a special option to the \texttt{hyperref} package: \texttt{breaklinks} +% which allows the link text to be split over to the next +% line, avoiding many overfull line messages. By default, the link text is +% restricted to be on one line. For numerical citations, this may be desirable, +% but for author--year ones with long link texts, it is not. % % \subsection{Multiple Bibliographies in One Document}\label{sec:chapbib} % @@ -1347,9 +1366,7 @@ entries will no longer be made. % \fi The \thestyle\ package is compatible with the \texttt{chapterbib} package -% of Donald Arseneau and Niel Kempson,\relax -% \footnote{I have used version 1.5 from 1995/10/09; cannot guarantee -% earlier versions.} +% of Donald Arseneau and Niel Kempson, which makes it possible to have several bibliographies in one document. % The usual application is to have bibliographies in each chapter of a book, % especially if they have been written by different authors. @@ -1409,17 +1426,14 @@ Every |\include|d file must contain its own |\bibliography| command where the bibliography is to appear. The database files listed as arguments to this command can be different in each file, of course. However, what is not so obvious, is that each file must also -contain a |\bibliographystyle| command, \emph{preferably with the same -style argument}. -% If different bibliography styles are specified for -% different files, then the preprogrammed citation style (punctuation and -% citation mode) will be that of the first bibliography style given. The -% preprogrammed citation styles can only be changed in the preamble (see -% Section~\ref{sec:priority}), something that guarantees a uniform style -% for the entire document.\relax -% \footnote{It would be relatively easy to allow changes in style anywhere -% in the document, but this strikes me as bad policy. However, it is -% provided for with the \texttt{docstrip} option \texttt{nopreonly}.} +contain a |\bibliographystyle| command, with possibly differing arguments. + +As of version~8.0, the citation style, including mode (author--year or +numerical) may also differ between chapters. The |\setcitestyle| command +% as well as |\bibpunct| and |\citestyle| +can be issued at any point in the document, in particular in different +chapters. +%(And this is the only time it would make sense to do so.) % % \iffalse %</notes> @@ -1519,13 +1533,11 @@ given before the first citation. % \item giving options \texttt{numbers} or \texttt{super} to the % |\usepackage| command; % -% \item issuing |\bibpunct| with the 4th mandatory argument set to \texttt{n} -% or \texttt{s}; +% \item issuing |\setcitestyle{numbers}|; % % \item issuing |\citestyle| with the name of a predefined numerical -% bibliography style. +% bibliography style (like \texttt{plain} and use it with \texttt{plainnat}). % \end{enumerate} -% The methods are listed in order of increasing priority. % % The \thestyle{} package will automatically switch to numerical mode if % any one of the |\bibitem| entries fails to conform to the possible @@ -1549,9 +1561,9 @@ given before the first citation. % It is possible to add a local configuration file % \thestyle\texttt{.cfg}, which is read in, if it exists, at % the end of the package. It may thus contain coding to supecede that in -% the package, although its main purpose is to allow the user to add his +% the package, although its main purpose is to allow the user to add his or her % own |\bibstyle@|\textit{bst} definitions to couple citation punctuation -% with local bibliography styles. +% with local bibliography styles or for use with |\citestyle|. % % \iffalse %<*notes> @@ -1579,9 +1591,11 @@ is read in after the main package file. \item[\ttfamily square] for square brackets; \item[\ttfamily curly] for curly braces; \item[\ttfamily angle] for angle brackets; -\item[\ttfamily colon] (default) to separate multiple citations with - colons; -\item[\ttfamily comma] to use commas as separaters; +\item[\ttfamily semicolon] (default) to separate multiple citations with + semi-colons; +\item[\ttfamily colon] the same as \texttt{semicolon}, an earlier mistake in + terminology; +\item[\ttfamily comma] to use commas as separators; \item[\ttfamily authoryear] (default) for author--year citations; \item[\ttfamily numbers] for numerical citations; \item[\ttfamily super] for superscripted numerical citations, as in @@ -1603,37 +1617,17 @@ is read in after the main package file. one line; causes overfull hboxes but helps with some \texttt{hyperref} problems. \end{description} +% The options \texttt{curly} and \texttt{angle} are not really serious; I only +% added them because that completes the normal list of bracket types. The only +% other citation possibilities I know have really encountered are solidus, e.g. /21/, +% or something like (Ref. 21). These must be set with |\setcitestyle{open={/},close={/}}|. % \iffalse %</notes> % \fi % -% If any of the formatting options are selected, the predefined citation -% styles in the commands |\bibstyle@|\textit{bst} will be no longer be -% effective. If either |\bibpunct| or |\citestyle| is given in the preamble, -% the above punctuation options will no longer hold. -% -% \iffalse -% \section{As Module to Journal-Specific Styles} -% Although \thestyle{} is meant to be an all-purpose bibliographic style -% \emph{package}, it may also be incorporated as a module to other -% packages for specific journals. In this case, many of the general features may -% be left off. This is allowed for with \texttt{docstrip} options that not -% only leave off certain codelines, but also include extra ones. So far, -% options exist for -% \begin{description} -% \item[\ttfamily subpack] produces a basic version with author--year only, -% fixed citation punctuation, no |\bibpunct| nor |\citestyle| nor -% predefined styles; -% \item[\ttfamily subpack,egs] for journals of the \textsl{European Geophysical -% Society}, in particular \textsl{Nonlinear Processes in Geophysics}; -% \item[\ttfamily subpack,agu] for \textsl{American Geophysical Union} journals. -% \end{description} -% The \texttt{subpack} option must always be used with \texttt{package}. -% -% Previous options \texttt{jgr} and \texttt{grl} have become obsolete due -% to revisions in these journals; they have been replaced by the more -% general \texttt{agu} option. -% \fi +% The package options are overwritten by any explicit |\setcitestyle|, |\bibpunct|, +% or |\citestyle| commands. And both these commands and the package options +% turn off the automatic setting with |\bibliographystyle|, if effective. % % \section{Reference Sheet} % @@ -1648,7 +1642,7 @@ is read in after the main package file. %^^A The following is a summary that goes into the .sty file %^^A It is not printed in the documentation, since the Reference Sheet exists % \iffalse -%<*package&!subpack> +%<*package> % This package reimplements the LaTeX \cite command to be used for various % citation styles, both author-year and numerical. It accepts BibTeX % output intended for many other packages, and therefore acts as a @@ -1709,6 +1703,7 @@ is read in after the main package file. % \citeyear{key} ==>> 1990 % \citeyearpar{key} ==>> (1990) % \citetext{priv. comm.} ==>> (priv. comm.) + % \citenum{key} ==>> 11 [non-superscripted] % Note: full author lists depends on whether the bib style supports them; % if not, the abbreviated list is printed even when full requested. % @@ -1717,17 +1712,18 @@ is read in after the main package file. % \Citep{dRob98} ==>> (Della Robbia, 1998) % \Citeauthor{dRob98} ==>> Della Robbia % -%<*!209> % % Citation aliasing is achieved with % \defcitealias{key}{text} % \citetalias{key} ==>> text % \citepalias{key} ==>> (text) -%</!209> % - % Defining the citation style of a given bib style: -%<!nopreonly> % Use \bibpunct (in the preamble only) with 6 mandatory arguments: -%<nopreonly> % Use \bibpunct (anywhere in the text) with 6 mandatory arguments: + % Defining the citation mode and punctual (citation style) + % \setcitestyle{<comma-separated list of keywords, same + % as the package options>} + % Example: \setcitestyle{square,semicolon} + % Alternatively: + % Use \bibpunct with 6 mandatory arguments: % 1. opening bracket for citation % 2. closing bracket % 3. citation separator (for multiple citations in one \cite) @@ -1745,12 +1741,10 @@ is read in after the main package file. % Then the \bibliographystyle{newbib} will cause \bibstyle@newbib to % be called on THE NEXT LATEX RUN (via the aux file). % -%<!nopreonly> % Such preprogrammed definitions may be invoked in the text (preamble only) -%<nopreonly> % Such preprogrammed definitions may be invoked anywhere in the text + % Such preprogrammed definitions may be invoked anywhere in the text % by calling \citestyle{newbib}. This is only useful if the style specified % differs from that in \bibliographystyle. % -%<*!209> % With \citeindextrue and \citeindexfalse, one can control whether the % \cite commands make an automatic entry of the citation in the .idx % indexing file. For this, \makeindex must also be given in the preamble. @@ -1760,7 +1754,8 @@ is read in after the main package file. % square - square brackets are used [option] % curly - curly braces are used {option} % angle - angle brackets are used <option> - % colon - multiple citations separated by colon (default) + % semicolon - multiple citations separated by semi-colon (default) + % colon - same as semicolon, an earlier confusion % comma - separated by comma % authoryear - selects author-year citations (default) % numbers- selects numerical citations @@ -1773,11 +1768,10 @@ is read in after the main package file. % Punctuation so selected dominates over any predefined ones. % Package options are called as, e.g. % \usepackage[square,comma]{natbib} -%</!209> % LaTeX the source file natbib.dtx to obtain more details -%<!209> % or the file natnotes.tex for a brief reference sheet. + % or the file natnotes.tex for a brief reference sheet. %----------------------------------------------------------- -%</package&!subpack> +%</package> % \fi % % \section{Options with \texttt{docstrip}} @@ -1804,47 +1798,14 @@ is read in after the main package file. % % \end{description} % -% \iffalse % Remove the subpack and journal stuff from documentation -% This package file is intended to act as a module for other class files -% written for specific journals, in which case the flexible -% |\bibstyle@|{\em bst\/} commands are not wanted. Punctuation and -% other style features are to be rigidly fixed. These journal options are -% \begin{description} -% \item[\ttfamily agu] for journals of the \textsl{American Geophysical -% Union}; -% -% \item[\ttfamily egs] for journals of the \textsl{European Geophysical -% Society}, in particular \textsl{Nonlinear Processes in Geophysics}. -% -% \end{description} -% \fi -% % The remaining options are: % \begin{description} % \item[\ttfamily package] to produce a \texttt{.sty} package file with most % comments removed; % -% \item[\ttfamily 209] (obsolete) to generate a \LaTeX~2.09 version of the package; -% this is no longer supported and will likely not work properly; -% -% \iffalse -% \item[\ttfamily subpack] (together with \texttt{package}) for coding that -% is to be included inside a larger package; even more comments are -% removed, as well as \LaTeXe{} option handling and identification; -% produces a basic \thestyle\ package for author--year only, fixed -% citation style (punctuation); -% \fi -% % \item[\ttfamily notes] extracts a summary of usage to be used as a % reference sheet; the resulting file is to be \LaTeX{}ed; % -% \item[\ttfamily nopreonly] allows |\citestyle| and |\bibpunct| to be -% called anywhere in the text; this is considered possibly useful -% with the \texttt{chapterbib} package where different chapters might -% have different bibliography and citation styles; is only provided -% in case I change my mind about this feature, but for now I -% refuse to implement it; -% % \item[\ttfamily driver] to produce a driver \texttt{.drv} file that will % print out the documentation when \LaTeX'd. This file can be modified % to produce various alternatives (page size, fonts, manual only, or with @@ -1853,7 +1814,7 @@ is read in after the main package file. % % \end{description} % The source file \texttt{\filename.dtx} is itself a driver file and can -% be processed directly by \LaTeXe. +% be processed directly by \LaTeX. % % % \section{Other Author--Year Solutions} @@ -2020,14 +1981,6 @@ is read in after the main package file. % are indicators to \texttt{docstrip} that this coding belongs to the package % file. % -% The \texttt{docstrip} option |<subpack>| should only be called if the -% coding is to be included as part of another package, in which case the -% announcement text and \LaTeXe{} options are suppressed. -% -% An alternative version of this coding is provided for running as a -% style file under \LaTeX~2.09. Code lines belonging to this are -% indicated with guard |<209>|; those for LaTeXe{} only with |<!209>|. -% % With \LaTeX\ release from \texttt{1995/12/01}, |\cite| is made robust, % something that I have adopted as well. % @@ -2045,7 +1998,6 @@ is read in after the main package file. % already include it; it is superfluous and can lead to contradictions. % \begin{macrocode} %<*package> -%<*!209&!subpack> \@ifclassloaded{agu2001}{\PackageError{natbib} {The agu2001 class already includes natbib coding,\MessageBreak so you should not add it explicitly} @@ -2076,7 +2028,6 @@ is read in after the main package file. {Type <Return> for now, but then later remove\MessageBreak the command \protect\usepackage{natbib} from the document} \endinput}{} -%</!209&!subpack> % \end{macrocode} % % \subsection{Selecting Citation Punctuation and Other Modifications} @@ -2089,14 +2040,15 @@ is read in after the main package file. % user can easily find them to add his own. Some comments remain in the % stripped version too. % \begin{macrocode} -%<*!subpack> % Define citation punctuation for some author-year styles % One may add and delete at this point -%<!209> % Or put additions into local configuration file natbib.cfg + % Or put additions into local configuration file natbib.cfg \newcommand\bibstyle@chicago{\bibpunct{(}{)}{;}{a}{,}{,}} \newcommand\bibstyle@named{\bibpunct{[}{]}{;}{a}{,}{,}} \newcommand\bibstyle@agu{\bibpunct{[}{]}{;}{a}{,}{,~}}%Amer. Geophys. Union -\newcommand\bibstyle@egs{\bibpunct{(}{)}{;}{a}{,}{,}}%Eur. Geophys. Soc. +\newcommand\bibstyle@copernicus{\bibpunct{(}{)}{;}{a}{,}{,}}%Copernicus Publications +\let\bibstyle@egu=\bibstyle@copernicus +\let\bibstyle@egs=\bibstyle@copernicus %<*all|harvard> \newcommand\bibstyle@agsm{\bibpunct{(}{)}{,}{a}{}{,}\gdef\harvardand{\&}} \newcommand\bibstyle@kluwer{\bibpunct{(}{)}{,}{a}{}{,}\gdef\harvardand{\&}} @@ -2115,14 +2067,6 @@ is read in after the main package file. \newcommand\bibstyle@pass{\bibpunct{(}{)}{;}{a}{,}{,}}%Planet. & Space Sci \newcommand\bibstyle@anngeo{\bibpunct{(}{)}{;}{a}{,}{,}}%Annales Geophysicae \newcommand\bibstyle@nlinproc{\bibpunct{(}{)}{;}{a}{,}{,}}%Nonlin.Proc.Geophys. -%</!subpack> -%<agu>\newcommand\NAT@open{[} \newcommand\NAT@close{]} -%<agu>\newcommand\NAT@sep{;} \newcommand\NAT@cmt{, } -%<agu>\newcommand\NAT@aysep{,} \newcommand\NAT@yrsep{,~} -%<agu|egs>\def\NAT@sort{0}\def\NAT@cmprs{0} -%<egs>\newcommand\NAT@open{(} \newcommand\NAT@close{)} -%<egs>\newcommand\NAT@sep{;} \newcommand\NAT@cmt{, } -%<egs>\newcommand\NAT@aysep{,} \newcommand\NAT@yrsep{,} % \end{macrocode} % % \changes{6.5}{1997 Jan 30}{Fix \texttt{esa} style for new note system} @@ -2132,14 +2076,13 @@ is read in after the main package file. % be redefined in many cases. These redefinitions must be made with the % |\gdef| (global definition) command. % \begin{macrocode} -%<*!subpack> % Define citation punctuation for some numerical styles \newcommand\bibstyle@cospar{\bibpunct{/}{/}{,}{n}{}{}% - \gdef\NAT@biblabelnum##1{##1.}} + \gdef\bibnumfmt##1{##1.}} \newcommand\bibstyle@esa{\bibpunct{(Ref.~}{)}{,}{n}{}{}% - \gdef\NAT@biblabelnum##1{##1.\hspace{1em}}} + \gdef\bibnumfmt##1{##1.\hspace{1em}}} \newcommand\bibstyle@nature{\bibpunct{}{}{,}{s}{}{\textsuperscript{,}}% - \gdef\NAT@biblabelnum##1{##1.}} + \gdef\bibnumfmt##1{##1.}} % \end{macrocode} % % Finally, the standard \LaTeX{} (numerical) citation styles are included @@ -2157,7 +2100,7 @@ is read in after the main package file. % \end{macrocode} % \end{macro} % -% \subsection{\LaTeXe{} Options} +% \subsection{Package Options} % \begin{macro}{\ifNAT@numbers} % \changes{5.5}{1995 Mar 21}{Add flag for switching between cite styles} % \begin{macro}{\ifNAT@super} @@ -2169,7 +2112,6 @@ is read in after the main package file. % \begin{macrocode} \newif\ifNAT@numbers \NAT@numbersfalse \newif\ifNAT@super \NAT@superfalse -%</!subpack> % \end{macrocode} % \end{macro}\end{macro} % @@ -2183,7 +2125,8 @@ is read in after the main package file. % \changes{6.4}{1996 Sep 13}{Add option \texttt{sort}} % \changes{6.7}{1997 Jul 14}{Add option \texttt{longnamesfirst}} % \changes{6.8c}{1998 Jul 14}{Add option \texttt{nonamebreak}} -% For \LaTeXe, we can define some options to be used with the |\usepackage| +% \changes{8.0}{2007 Feb 6}{Add option \texttt{semicolon}, same as \texttt{colon}} +% We can define some options to be used with the |\usepackage| % command that loads the \thestyle{} package. These are an additional means % of specifying the citation punctuation and scheme. % @@ -2191,14 +2134,13 @@ is read in after the main package file. % behaviour is entirely under my control. Relying on the standard classes % can lead to trouble. % \begin{macrocode} -%<*!subpack&!209> \DeclareOption{numbers}{\NAT@numberstrue \ExecuteOptions{square,comma,nobibstyle}} \DeclareOption{super}{\NAT@supertrue\NAT@numberstrue \renewcommand\NAT@open{}\renewcommand\NAT@close{} \ExecuteOptions{nobibstyle}} \DeclareOption{authoryear}{\NAT@numbersfalse - \ExecuteOptions{round,colon,bibstyle}} + \ExecuteOptions{round,semicolon,bibstyle}} \DeclareOption{round}{% \renewcommand\NAT@open{(} \renewcommand\NAT@close{)} \ExecuteOptions{nobibstyle}} @@ -2213,8 +2155,9 @@ is read in after the main package file. \ExecuteOptions{nobibstyle}} \DeclareOption{comma}{\renewcommand\NAT@sep{,} \ExecuteOptions{nobibstyle}} -\DeclareOption{colon}{\renewcommand\NAT@sep{;} +\DeclareOption{semicolon}{\renewcommand\NAT@sep{;} \ExecuteOptions{nobibstyle}} +\DeclareOption{colon}{\ExecuteOptions{semicolon}} \DeclareOption{nobibstyle}{\let\bibstyle=\@gobble} \DeclareOption{bibstyle}{\let\bibstyle=\@citestyle} \newif\ifNAT@openbib \NAT@openbibfalse @@ -2234,7 +2177,6 @@ is read in after the main package file. \newif\ifNAT@longnames\NAT@longnamesfalse \DeclareOption{longnamesfirst}{\NAT@longnamestrue} \DeclareOption{nonamebreak}{\def\NAT@nmfmt#1{\mbox{\NAT@up#1}}} -%</!subpack&!209> \def\NAT@nmfmt#1{{\NAT@up#1}} % \end{macrocode} % Before version~6.0, the punctuation options had the lowest priority, @@ -2287,7 +2229,6 @@ is read in after the main package file. % |\ExecuteOptions| so that options may make use of it; the option % \texttt{nobibstyle} turns it off, for example. % \begin{macrocode} -%<*!subpack> \renewcommand\bibstyle[1]{\@ifundefined{bibstyle@#1}{\relax} {\csname bibstyle@#1\endcsname}} % \end{macrocode} @@ -2302,19 +2243,10 @@ is read in after the main package file. % produces error messages. To avoid this, |\bibstyle| is reset to its % normal, do-nothing, definition after |\begin{document}|. % -% \LaTeXe{} provides a better way of adding commands to |\document|, -% which is then exploited here. Paradoxically, the problem with re-reading -% the auxiliary file does not seem to arise for this version. -% -% (|\NAT@set@cites| must also be executed at the start of the document; for -% \LaTeXe, this is added later when the macro is defined.) +% (|\NAT@set@cites| must also be executed at the start of the document; +% this is added later when the macro is defined.) % \begin{macrocode} -%<*209> -\let\ori@document=\document -\renewcommand\document{\ori@document\global\let\bibstyle=\@gobble - \NAT@set@cites} -%</209> -%<!209>\AtBeginDocument{\global\let\bibstyle=\@gobble} +\AtBeginDocument{\global\let\bibstyle=\@gobble} % \end{macrocode} % \end{macro} % @@ -2333,7 +2265,6 @@ is read in after the main package file. % \begin{macrocode} \let\@citestyle\bibstyle \newcommand\citestyle[1]{\@citestyle{#1}\let\bibstyle\@gobble} -%<!209&!nopreonly>\@onlypreamble{\citestyle}\@onlypreamble{\@citestyle} % \end{macrocode} % \end{macro} % @@ -2360,35 +2291,103 @@ is read in after the main package file. % somewhat confused, since the fourth argument is now |#5|. % % \begin{macrocode} -%<!209>\newcommand\bibpunct[7][, ]% -%<209>\newcommand\bibpunct{\@ifnextchar[{\@bibpunct}{\@bibpunct[, ]}} -%<209>\def\@bibpunct[#1]#2#3#4#5#6#7% +\newcommand\bibpunct[7][, ]% {\gdef\NAT@open{#2}\gdef\NAT@close{#3}\gdef - \NAT@sep{#4}\global\NAT@numbersfalse\ifx #5n\global\NAT@numberstrue + \NAT@sep{#4}\global\NAT@numbersfalse + \ifx #5n\global\NAT@numberstrue\global\NAT@superfalse \else - \ifx #5s\global\NAT@numberstrue\global\NAT@supertrue + \ifx #5s\global\NAT@numberstrue\global\NAT@supertrue \fi\fi \gdef\NAT@aysep{#6}\gdef\NAT@yrsep{#7}% \gdef\NAT@cmt{#1}% - \global\let\bibstyle\@gobble -%<nopreonly> \NAT@set@cites + \NAT@@setcites } -%<*!nopreonly> -%<!209>\@onlypreamble{\bibpunct} -%<209>\def\do{\noexpand\do\noexpand} -%<209>\edef\@preamblecmds{\@preamblecmds \do\bibpunct \do\citestyle} -%</!nopreonly> -%</!subpack> % \end{macrocode} % The command turns off |\bibstyle| so that the predefined % |\bibstyle@|\textit{bst} commands no longer work. Thus |\bibpunct| has % priority over the predefined styles. % \end{macro} % +% \begin{macro}{\setcitestyle} +% \changes{8.0}{2007 Feb 2}{Add macro} +% A new command for setting the various parameters is added in version~8.0. +% This complements |\bibpunct| but will not replace it since it only sets +% selected parameters, while |\bibpunct| sets all at once, and is thus more +% appropriate for complete setting. This is better for changing just some +% parameters. +% +% The argument is a comma-separated list of keywords, many identical to the +% corresponding package options. However, others take an argument, as +% |yysep={;}| where the curly braces are unnecessary for a single character +% (except for a comma!) but they do not hurt. Spaces must not appear between +% entries, or they will be interpreted as part of the keyword. +% +% \begin{macrocode} +\newcommand\setcitestyle[1]{ + \@for\@tempa:=#1\do + {\def\@tempb{round}\ifx\@tempa\@tempb + \renewcommand\NAT@open{(}\renewcommand\NAT@close{)}\fi + \def\@tempb{square}\ifx\@tempa\@tempb + \renewcommand\NAT@open{[}\renewcommand\NAT@close{]}\fi + \def\@tempb{angle}\ifx\@tempa\@tempb + \renewcommand\NAT@open{$<$}\renewcommand\NAT@close{$>$}\fi + \def\@tempb{curly}\ifx\@tempa\@tempb + \renewcommand\NAT@open{\{}\renewcommand\NAT@close{\}}\fi + \def\@tempb{semicolon}\ifx\@tempa\@tempb + \renewcommand\NAT@sep{;}\fi + \def\@tempb{colon}\ifx\@tempa\@tempb + \renewcommand\NAT@sep{;}\fi + \def\@tempb{comma}\ifx\@tempa\@tempb + \renewcommand\NAT@sep{,}\fi + \def\@tempb{authoryear}\ifx\@tempa\@tempb + \NAT@numbersfalse\fi + \def\@tempb{numbers}\ifx\@tempa\@tempb + \NAT@numberstrue\NAT@superfalse\fi + \def\@tempb{super}\ifx\@tempa\@tempb + \NAT@numberstrue\NAT@supertrue\fi + \expandafter\NAT@find@eq\@tempa=\relax\@nil + \if\@tempc\relax\else + \expandafter\NAT@rem@eq\@tempc + \def\@tempb{open}\ifx\@tempa\@tempb + \xdef\NAT@open{\@tempc}\fi + \def\@tempb{close}\ifx\@tempa\@tempb + \xdef\NAT@close{\@tempc}\fi + \def\@tempb{aysep}\ifx\@tempa\@tempb + \xdef\NAT@aysep{\@tempc}\fi + \def\@tempb{yysep}\ifx\@tempa\@tempb + \xdef\NAT@yrsep{\@tempc}\fi + \def\@tempb{notesep}\ifx\@tempa\@tempb + \xdef\NAT@cmt{\@tempc}\fi + \def\@tempb{citesep}\ifx\@tempa\@tempb + \xdef\NAT@sep{\@tempc}\fi + \fi + }% + \NAT@@setcites +} + \def\NAT@find@eq#1=#2\@nil{\def\@tempa{#1}\def\@tempc{#2}} + \def\NAT@rem@eq#1={\def\@tempc{#1}} +% \end{macrocode} +% +% After the parameters are set, it is still necessary to issue |\NAT@set@cites| +% to get things right for author--year or numerical mode. This is issued +% at the end of the preamble, and not in the preamble. But if |\setcitestyle| is +% given after the preamble, we need it right away. So issue instead |\NAT@@setcites| +% which in the preamble only deactivates |\bibstyle|, but later becomes +% |\NAT@set@cites|. +% +% The idea is that if |\setcitestyle| is used in the preamble, it is global and +% the values should be not changed by the bibliography style definitions. But if +% issued in the text, as part of \texttt{chapterbib} processing, then automatic +% style changes with different |.bst| files per chapter could be useful. +% \begin{macrocode} + \def\NAT@@setcites{\global\let\bibstyle\@gobble} +\AtBeginDocument{\let\NAT@@setcites\NAT@set@cites} +% \end{macrocode} +% \end{macro} +% % \subsection{Setting the Defaults} -% For \LaTeXe, the defaults (punctuation and scheme type) are set with the -% |\ExecuteOptions| command. For \LaTeX~2.09, the default scheme is -% author--year, and punctuation can only be set with |\bibpunct|. +% The defaults (punctuation and scheme type) are set with the +% |\ExecuteOptions| command. % % \begin{macro}{\NAT@open} % \changes{5.5}{1995 May 14}{Renamed from \cs{@citebegin}} @@ -2412,8 +2411,8 @@ is read in after the main package file. % including any possible space. % Define their default values. % \begin{macrocode} -%<!agu&!egs>\newcommand\NAT@open{(} \newcommand\NAT@close{)} -%<!agu&!egs>\newcommand\NAT@sep{;} +\newcommand\NAT@open{(} \newcommand\NAT@close{)} +\newcommand\NAT@sep{;} % \end{macrocode} % \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro} % \changes{6.0}{1995 Sep 19}{Remove \cs{ExecuteOptions} since default @@ -2423,12 +2422,10 @@ is read in after the main package file. % is not necessary since all the appropriate parameters are set to these % values anyway. (One could consider removing \texttt{bibstyle}.) % \begin{macrocode} -%<*!subpack&!209> %\ExecuteOptions{authoryear} \ProcessOptions -%</!subpack&!209> -%<!agu&!egs>\newcommand\NAT@aysep{,} \newcommand\NAT@yrsep{,} -%<!agu&!egs>\newcommand\NAT@cmt{, } +\newcommand\NAT@aysep{,} \newcommand\NAT@yrsep{,} +\newcommand\NAT@cmt{, } % \end{macrocode} % % \subsection{Internal Citing Macros} @@ -2491,9 +2488,12 @@ is read in after the main package file. % which is used with |\citealt|, |\citealp|, |\citeyear|, and |\citeauthor| % (both numerical and author--year modes). % -% The superscript citation prints only the following, not the preceding, -% note, and then only if it is present. % \changes{7.2}{2006 Jan 12}{Allow braces around superscripted citation} +% \changes{7.5}{2007 Feb 2}{Superscripted citation prints both notes} +% \changes{7.5}{2007 Feb 2}{Superscripted braces are elevated with \cs{citet} too} +% The superscript citation before version 7.5 prints only the following note; +% with 7.5, this is changed to print both, but as part of the revised treatment +% of notes with textual numerical citations. % % Use the construction |\if*#2*| to test for empty note argument. Previously % used |\relax| in place of |*| but then it turned out that if the text began @@ -2502,22 +2502,17 @@ is read in after the main package file. % with an asterix will give trouble. % % \begin{macrocode} -%<subpack>\renewcommand\@cite% -%<!subpack>\newcommand\NAT@cite% +\newcommand\NAT@cite% [3]{\ifNAT@swa\NAT@@open\if*#2*\else#2\ \fi #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close\else#1\fi\endgroup} -%<*!subpack> \newcommand\NAT@citenum% [3]{\ifNAT@swa\NAT@@open\if*#2*\else#2\ \fi #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close\else#1\fi\endgroup} \newcommand\NAT@citesuper[3]{\ifNAT@swa +\if*#2*\else#2\ \fi \unskip\kern\p@\textsuperscript{\NAT@@open#1\NAT@@close}% - \if*#3*\else\ (#3)\fi\else #1\fi\endgroup} -%<!209>\providecommand -%<209>\@ifundefined{textsuperscript}{\newcommand - \textsuperscript[1]{\mbox{$^{\mbox{\scriptsize#1}}$}} -%<209>}{} -%</!subpack> + \if*#3*\else\ #3\fi\else #1\fi\endgroup} +\providecommand\textsuperscript[1]{\mbox{$^{\mbox{\scriptsize#1}}$}} % \end{macrocode} % \end{macro}\end{macro}\end{macro}\end{macro} % @@ -2546,9 +2541,12 @@ is read in after the main package file. % second argument, the list of citation keys. These keys have to be decoded % into the actual label text contained in |\b@|\emph{key} (a number or % author--year), and put together as the argument of |\@cite|. +% % For a textual citation (|\ifNAT@swa| \meta{false}), the authors are printed % and then the number in parentheses. For multiple citations (silly thing) each % number is in separate parentheses preceded by authors. +% As of version 7.5, notes with textual (numerical) citations are outside the +% parentheses, so they are really part of the main text. % % The temporary command |\@citeb| takes on the value of each of the keys in % turn; |\@citea| is the separator between multiple citations, initially @@ -2569,7 +2567,7 @@ is read in after the main package file. % standard \LaTeX\ too. % % The number |\NAT@ctype| controls whether author (1), year (2), or number (0) -% is output by this macro. A value of 4 produces the cite alias. +% is output by this macro. A value of 3 produces the cite alias. % % For compatibility with the \texttt{chapterbib} package of Donald Arseneau, % add |\@extra@b@citeb| to the cite key; this contains the number of the @@ -2584,32 +2582,29 @@ is read in after the main package file. % The command |\@cprwrite| is defined in the \texttt{citeref} package. % \changes{7.2}{2006 Jan 12}{Add \texttt{citeref} support} % \begin{macrocode} -%<209>\let\@firstofone\@iden -%<!209>\providecommand\@firstofone[1]{#1} -%<*!subpack> +\providecommand\@firstofone[1]{#1} \newcommand\NAT@citexnum{} \def\NAT@citexnum[#1][#2]#3{% -%<!209> \NAT@sort@cites{#3}% + \NAT@sort@cites{#3}% \let\@citea\@empty \@cite{\def\NAT@num{-1}\let\NAT@last@yr\relax\let\NAT@nm\@empty -%<!209> \@for\@citeb:=\NAT@cite@list\do -%<209> \@for\@citeb:=#3\do + \ifNAT@swa\else + \ifnum\NAT@ctype=0\if*#1*\else + #1\ \fi\fi\fi + \@for\@citeb:=\NAT@cite@list\do {\edef\@citeb{\expandafter\@firstofone\@citeb}% \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}% \@ifundefined{@cprwrite}{}{\expandafter\@cprwrite\@citeb=}\fi \@ifundefined{b@\@citeb\@extra@b@citeb}{% -%<209> {\reset@font\bf ?}\@warning -%<!209> {\reset@font\bfseries?} -%<!209> \NAT@citeundefined\PackageWarning{natbib}% + {\reset@font\bfseries?} + \NAT@citeundefined\PackageWarning{natbib}% {Citation `\@citeb' on page \thepage \space undefined}}% {\let\NAT@last@num\NAT@num\let\NAT@last@nm\NAT@nm \NAT@parse{\@citeb}% -%<*!subpack&!209> \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{% \let\NAT@name=\NAT@all@names \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}% \fi -%</!subpack&!209> \ifNAT@full\let\NAT@nm\NAT@all@names\else \let\NAT@nm\NAT@name\fi % \end{macrocode} @@ -2637,9 +2632,8 @@ is read in after the main package file. \ifnum\NAT@ctype>1\relax\@citea \hyper@natlinkstart{\@citeb\@extra@b@citeb}% \ifnum\NAT@ctype=2\relax\NAT@test{\NAT@ctype}% -%<!209> \else\NAT@alias + \else\NAT@alias \fi\hyper@natlinkend\else -%<*!209> \ifnum\NAT@cmprs>0 \begingroup\catcode`\_=8 \ifcat _\ifnum\z@<0\NAT@num _\else A\fi @@ -2664,24 +2658,24 @@ is read in after the main package file. \let\NAT@last@yr\relax \fi \else -%</!209> \@citea \mbox{\hyper@natlinkstart{\@citeb\@extra@b@citeb}% {\citenumfont{\NAT@num}}\hyper@natlinkend}% -%<!209> \fi + \fi \fi \def\@citea{\NAT@sep\penalty\@m\NAT@space}% % \end{macrocode} +% \changes{7.5}{2007 Feb 2}{Textual numerical cites print notes outside brackets} % For textual citations, test what the output is to be (number, year, % author) and also test for comments. % \begin{macrocode} \else \ifcase\NAT@ctype\relax \ifx\NAT@last@nm\NAT@nm \NAT@yrsep\penalty\@m\NAT@space\else - \@citea \NAT@test{1}\ \NAT@@open - \if*#1*\else#1\ \fi\fi \NAT@mbox{% + \@citea \NAT@test{1}\ \NAT@mbox{\NAT@@open}% + \fi \NAT@mbox{% \hyper@natlinkstart{\@citeb\@extra@b@citeb}% {\citenumfont{\NAT@num}}\hyper@natlinkend}% - \def\@citea{\NAT@@close\NAT@sep\penalty\@m\ }% + \def\@citea{\NAT@mbox{\NAT@@close\NAT@sep\penalty\@m\ }}% \or\@citea \hyper@natlinkstart{\@citeb\@extra@b@citeb}% \NAT@test{\NAT@ctype}\hyper@natlinkend @@ -2690,18 +2684,18 @@ is read in after the main package file. \hyper@natlinkstart{\@citeb\@extra@b@citeb}% \NAT@test{\NAT@ctype}\hyper@natlinkend \def\@citea{\NAT@sep\penalty\@m\ }% -%<*!209> \or\@citea \hyper@natlinkstart{\@citeb\@extra@b@citeb}% \NAT@alias\hyper@natlinkend \def\@citea{\NAT@sep\penalty\@m\ }% -%</!209> \fi \fi }}% -%<!209> \ifnum\NAT@cmprs>0\relax\NAT@last@yr\fi - \ifNAT@swa\else\ifnum\NAT@ctype=0\if*#2*\else - \NAT@cmt#2\fi \NAT@@close\fi\fi}{#1}{#2}} + \ifnum\NAT@cmprs>0\relax\NAT@last@yr\fi + \ifNAT@swa\else\NAT@mbox{\NAT@@close}% + \ifnum\NAT@ctype=0\if*#2*\else + \NAT@cmt#2\fi + \fi\fi}{#1}{#2}} % \end{macrocode} % \end{macro} % @@ -2714,20 +2708,15 @@ is read in after the main package file. % its argument being 1 or 2. % \begin{macrocode} \newcommand\NAT@test[1]{\ifnum#1=1 \ifx\NAT@nmfmt{\NAT@nm}\NAT@noname -%<209> {\reset@font\bf(author?)}\@warning -%<!209> {\reset@font\bfseries(author?)}\PackageWarning{natbib} + {\reset@font\bfseries(author?)}\PackageWarning{natbib} {Author undefined for citation`\@citeb' -%<209> ^^J -%<!209> \MessageBreak + \MessageBreak on page \thepage}\else \NAT@nm \fi \else \if\relax\NAT@date\relax -%<209> {\reset@font\bf(author?)}\@warning -%<!209> {\reset@font\bfseries(year?)}\PackageWarning{natbib} + {\reset@font\bfseries(year?)}\PackageWarning{natbib} {Year undefined for citation`\@citeb' -%<209> ^^J -%<!209> \MessageBreak + \MessageBreak on page \thepage}\else \NAT@date \fi \fi} -%</!subpack> % \end{macrocode} % \end{macro} % @@ -2780,31 +2769,26 @@ is read in after the main package file. % The command |\@cprwrite| is defined in the \texttt{citeref} package. % \changes{7.2}{2006 Jan 12}{Add \texttt{citeref} support} % \begin{macrocode} -%<subpack>\def\@citex% -%<!subpack>\newcommand\NAT@citex{} -%<!subpack>\def\NAT@citex% +\newcommand\NAT@citex{} +\def\NAT@citex% [#1][#2]#3{% -%<!209> \NAT@sort@cites{#3}% + \NAT@sort@cites{#3}% \let\@citea\@empty \@cite{\let\NAT@nm\@empty\let\NAT@year\@empty -%<!209> \@for\@citeb:=\NAT@cite@list\do -%<209> \@for\@citeb:=#3\do + \@for\@citeb:=\NAT@cite@list\do {\edef\@citeb{\expandafter\@firstofone\@citeb}% \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}% \@ifundefined{@cprwrite}{}{\expandafter\@cprwrite\@citeb=}\fi \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea% -%<209> {\reset@font\bf ?}\@warning -%<!209> {\reset@font\bfseries ?}\NAT@citeundefined -%<!209> \PackageWarning{natbib}% + {\reset@font\bfseries ?}\NAT@citeundefined + \PackageWarning{natbib}% {Citation `\@citeb' on page \thepage \space undefined}\def\NAT@date{}}% {\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year \NAT@parse{\@citeb}% -%<*!subpack&!209> \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{% \let\NAT@name=\NAT@all@names \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}% \fi -%</!subpack&!209> \ifNAT@full\let\NAT@nm\NAT@all@names\else \let\NAT@nm\NAT@name\fi % \end{macrocode} @@ -2855,13 +2839,11 @@ is read in after the main package file. \else \ifx\NAT@last@nm\NAT@nm\NAT@yrsep \ifx\NAT@last@yr\NAT@year -%<*!209> \def\NAT@temp{{?}}% \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}% {Multiple citation on page \thepage: same authors and year\MessageBreak without distinguishing extra letter,\MessageBreak appears as question mark}\fi -%</!209> \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab \hyper@natlinkend \else\unskip\ @@ -2878,10 +2860,8 @@ is read in after the main package file. \NAT@nmfmt{\NAT@nm}\hyper@natlinkend \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}% \NAT@date\hyper@natlinkend -%<*!209> \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}% \NAT@alias\hyper@natlinkend -%</!209> \fi \def\@citea{\NAT@sep\ }% % \end{macrocode} % Begin textual citation. Do same checks for repeated names and years. @@ -2897,13 +2877,11 @@ is read in after the main package file. \else \ifx\NAT@last@nm\NAT@nm\NAT@yrsep \ifx\NAT@last@yr\NAT@year -%<*!209> \def\NAT@temp{{?}}% \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}% {Multiple citation on page \thepage: same authors and year\MessageBreak without distinguishing extra letter,\MessageBreak appears as question mark}\fi -%</!209> \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab \hyper@natlinkend \else\unskip\ @@ -2920,10 +2898,8 @@ is read in after the main package file. \NAT@nmfmt{\NAT@nm}\hyper@natlinkend \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}% \NAT@date\hyper@natlinkend -%<*!209> \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}% \NAT@alias\hyper@natlinkend -%</!209> \fi \if\relax\NAT@date\relax\def\@citea{\NAT@sep\ }% \else\def\@citea{\NAT@@close\NAT@sep\ }\fi \fi @@ -2950,14 +2926,12 @@ is read in after the main package file. % \begin{macro}{\NAT@alias} % \changes{6.9}{1999 Jan 22}{Add macro} % When |\NAT@ctype| is 3, the citation alias previously defined with -% |\defcitealias| is printed as the citation. This is a \LaTeXe\ feature only. +% |\defcitealias| is printed as the citation. % \begin{macrocode} -%<*!209> \newcommand\NAT@alias{\@ifundefined{al@\@citeb\@extra@b@citeb}{% {\reset@font\bfseries(alias?)}\PackageWarning{natbib} {Alias undefined for citation `\@citeb' \MessageBreak on page \thepage}}{\@nameuse{al@\@citeb\@extra@b@citeb}}} -%</!209> % \end{macrocode} % \end{macro} % @@ -2989,12 +2963,10 @@ is read in after the main package file. % argument. It then defines the |\bv@| flags so that these citations do not % appear as `virginal'. % \begin{macrocode} -%<*!subpack&!209> \newcommand\shortcites[1]{% \@bsphack\@for\@citeb:=#1\do {\edef\@citeb{\expandafter\@firstofone\@citeb}% \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}\@esphack} -%</!subpack&!209> % \end{macrocode} % \end{macro} % @@ -3018,23 +2990,23 @@ is read in after the main package file. % users to redefine it themselves in the preamble using the standard % name. (They could redefine the |\NAT@biblabel|s but Arseneau figures % they should be able use the standard name too.) -% The undefining is achieved by setting it to |\@empty|, not |\relax| -% so that the user may still use |\renewcommand|. If the definition has -% already been changed from the standard one, then leave it. % % And to simplify things for people who do not know about |\makeatletter|, % define |\NAT@biblabelnum| in terms of |\bibnumfmt|. One can still % redefine |\@biblabel| or even |\NAT@biblabelnum| if one wishes. % +% As of version~8.0, with support for different citation modes in different +% chapters using |chapterbib|, do it by providing a standard |\@biblabel| +% (in case the class does not have it, or has redefined it) +% and letting |\bibnumfmt| be that definition at document begin, unless +% the user has already gone and defined |\bibnumfmt| himself. +% % \begin{macrocode} -%<subpack>\renewcommand\@biblabel[1]{\hfill} -%<*!subpack> \newcommand\NAT@biblabel[1]{\hfill} \newcommand\NAT@biblabelnum[1]{\bibnumfmt{#1}} -\newcommand\bibnumfmt[1]{[#1]} -\def\@tempa#1{[#1]} -\ifx\@tempa\@biblabel\let\@biblabel\@empty\fi -%</!subpack> +\let\bibnumfmt\@empty +\providecommand\@biblabel[1]{[#1]} +\AtBeginDocument{\ifx\bibnumfmt\@empty\let\bibnumfmt\@biblabel\fi} % \end{macrocode} % \end{macro}\end{macro}\end{macro}\end{macro} % @@ -3052,6 +3024,7 @@ is read in after the main package file. % \changes{6.2}{1996 Mar 05}{Add \cs{bibsep} for linespacing between % references} % \changes{6.5}{1997 Jan 10}{Set \cs{bibsep} to 0 for EGS} +% \changes{8.0}{2007 Feb 5}{Remove EGS, AGU stuff} % The macro |\@bibsetup| is called by |\thebibliography| and contains any % coding for formatting the list of references that may be different for % numerical and author--year schemes. For numerical citations, the @@ -3060,26 +3033,17 @@ is read in after the main package file. % author--year, there are no labels, so |\labelwidth| is zero, all lines % after the first are indented by 1~em. % -% Since |\thebibliography| is not included in the \textsl{AGU} package, -% this macro is left off here too. % \begin{macrocode} -%<*!agu> -%<*!egs> -%<*!subpack> \newcommand\NAT@bibsetnum[1]{\settowidth\labelwidth{\@biblabel{#1}}% \setlength{\leftmargin}{\labelwidth}\addtolength{\leftmargin}{\labelsep}% \setlength{\itemsep}{\bibsep}\setlength{\parsep}{\z@}% -%<*!209> \ifNAT@openbib \addtolength{\leftmargin}{\bibindent}% \setlength{\itemindent}{-\bibindent}% \setlength{\listparindent}{\itemindent}% \setlength{\parsep}{0pt}% \fi -%</!209> } -%</!subpack> -%</!egs> \newlength{\bibhang} \setlength{\bibhang}{1em} % \end{macrocode} @@ -3092,14 +3056,11 @@ is read in after the main package file. % % \begin{macrocode} \newlength{\bibsep} -%<!egs>{\@listi \global\bibsep\itemsep \global\advance\bibsep by\parsep} -%<egs>\setlength{\bibsep}{\z@} + {\@listi \global\bibsep\itemsep \global\advance\bibsep by\parsep} -%<subpack>\newcommand\@bibsetup% -%<!subpack>\newcommand\NAT@bibsetup% +\newcommand\NAT@bibsetup% [1]{\setlength{\leftmargin}{\bibhang}\setlength{\itemindent}{-\leftmargin}% \setlength{\itemsep}{\bibsep}\setlength{\parsep}{\z@}} -%</!agu> % \end{macrocode} % \end{macro}\end{macro}\end{macro} % @@ -3113,6 +3074,8 @@ is read in after the main package file. % \changes{6.6}{1997 Jun 4}{Define \cs{NAT@mbox} for superscripts} % \changes{6.8}{1997 Dec 1}{Allow user redefinition of \cs{@biblabel}} % \changes{6.8a}{1998 May 14}{\cs{@biblabel} redefined only for numericals} +% \changes{7.5}{2007 Feb 2}{Saving user definitions of \cs{@biblabel} done differently} +% \changes{7.5}{2007 Feb 2}{\cs{NAT@idxtxt} defaults to appropriate style in numerical mode} % The four internal macros that have different definitions depending on the % citation style have been defined with different names; now set the macros % to be executed to that set that is actually wanted. This is determined by @@ -3124,7 +3087,6 @@ is read in after the main package file. % extra labels (the letters added to the dates); these are to be suppressed % for numerical citations. % \begin{macrocode} -%<*!subpack> \newcommand\NAT@set@cites{\ifNAT@numbers \ifNAT@super \let\@cite\NAT@citesuper \def\NAT@mbox##1{\unskip\nobreak\hspace{1\p@}\textsuperscript{##1}}% @@ -3133,18 +3095,20 @@ is read in after the main package file. \let\NAT@mbox=\mbox \let\@cite\NAT@citenum \def\NAT@space{ }\fi \let\@citex\NAT@citexnum - \ifx\@biblabel\@empty\let\@biblabel\NAT@biblabelnum\fi + \let\@biblabel\NAT@biblabelnum \let\@bibsetup\NAT@bibsetnum + \renewcommand\NAT@idxtxt{\NAT@name\ \NAT@open\NAT@num\NAT@close}% \def\natexlab##1{}% \else \let\@cite\NAT@cite \let\@citex\NAT@citex \let\@biblabel\NAT@biblabel \let\@bibsetup\NAT@bibsetup + \let\NAT@space\relax + \renewcommand\NAT@idxtxt{\NAT@name\ \NAT@open\NAT@date\NAT@close}% \def\natexlab##1{##1}% \fi} -%<!209>\AtBeginDocument{\NAT@set@cites} -%</!subpack> +\AtBeginDocument{\NAT@set@cites} % \end{macrocode} % \end{macro} % @@ -3183,7 +3147,6 @@ is read in after the main package file. % tests if |\SK@def| exists (suggestion by David Carlisle).\label{SKdef} % % \begin{macrocode} -%<*!209> \AtBeginDocument{\ifx\SK@def\@undefined\else \ifx\SK@cite\@empty\else \SK@def\@citex[#1][#2]#3{\SK@\SK@@ref{#3}\SK@@citex[#1][#2]{#3}}\fi @@ -3199,11 +3162,8 @@ is read in after the main package file. % was turned off in earlier versions. As of 7.2, remove this constraint, and % make the first and last numbers in the compressed range into links. % \begin{macrocode} -%<*!subpack> % \AtBeginDocument{\@ifpackageloaded{hyperref}{% % \ifnum\NAT@sort=2\def\NAT@sort{1}\fi}{}} -%</!subpack> -%</!209> % \end{macrocode} % % \subsection{The Citations} @@ -3252,8 +3212,7 @@ is read in after the main package file. % \begin{macrocode} \newif\ifNAT@full\NAT@fullfalse \newif\ifNAT@swa -%<209>\newcommand\citet -%<!209>\DeclareRobustCommand\citet +\DeclareRobustCommand\citet {\begingroup\NAT@swafalse\def\NAT@ctype{0}\NAT@partrue \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}} \newcommand\NAT@citetp{\@ifnextchar[{\NAT@@citetp}{\NAT@@citetp[]}} @@ -3281,8 +3240,7 @@ is read in after the main package file. % its coding to be the standard, being fully equivalent in functionality % to the older syntax |\cite|\oarg{pre}\oarg{post}\marg{key}. % \begin{macrocode} -%<209>\newcommand\citep -%<!209>\DeclareRobustCommand\citep +\DeclareRobustCommand\citep {\begingroup\NAT@swatrue\def\NAT@ctype{0}\NAT@partrue \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}} % \end{macrocode} @@ -3304,14 +3262,13 @@ is read in after the main package file. % with and without notes, so that it emulates the standard \LaTeX\ usage. In % author--year mode, this flag depends on presence or absence of notes. % \begin{macrocode} -%<209>\renewcommand\cite -%<!209>\DeclareRobustCommand\cite +\DeclareRobustCommand\cite {\begingroup\def\NAT@ctype{0}\NAT@partrue\NAT@swatrue \@ifstar{\NAT@fulltrue\NAT@cites}{\NAT@fullfalse\NAT@cites}} \newcommand\NAT@cites{\@ifnextchar [{\NAT@@citetp}{% -%<!subpack> \ifNAT@numbers\else + \ifNAT@numbers\else \NAT@swafalse -%<!subpack> \fi + \fi \NAT@@citetp[]}} % \end{macrocode} % \end{macro} @@ -3342,17 +3299,31 @@ is read in after the main package file. % |\NAT@citenum| are identical, but kept anyway just in case a difference % should be added later. % \begin{macrocode} -%<209>\newcommand\citealt -%<!209>\DeclareRobustCommand\citealt +\DeclareRobustCommand\citealt {\begingroup\NAT@swafalse\def\NAT@ctype{0}\NAT@parfalse \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}} -%<209>\newcommand\citealp -%<!209>\DeclareRobustCommand\citealp +\DeclareRobustCommand\citealp {\begingroup\NAT@swatrue\def\NAT@ctype{0}\NAT@parfalse \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}} % \end{macrocode} % \end{macro}\end{macro} % +% \begin{macro}{\citenum} +% \changes{7.5}{2007 Feb 2}{Add macro to print citation number number} +% With version~7.5, |\citenum| is a new feature: it prints the citation number +% just like |\citealp| but without authors, and without raising it in superscript +% mode. This was requested by Antony Stone who +% wants to be able to refer to a reference number without having it raised. +% +% It should also work in author--year mode, but would be silly. +% +% \begin{macrocode} +\DeclareRobustCommand\citenum + {\begingroup\NAT@swatrue\def\NAT@ctype{0}\NAT@parfalse\let\textsuperscript\ + \NAT@citexnum[][]} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\citeauthor} % \changes{5.0}{1994 May 18}{Add means to cite authors only.} % \changes{5.2}{1994 Aug 25}{Enclose \cs{@citenm} in braces.} @@ -3365,8 +3336,7 @@ is read in after the main package file. % |\citeauthor| and |\citeauthor*|; for historical reasons, keep % |\citefullauthor|. % \begin{macrocode} -%<209>\newcommand\citeauthor -%<!209>\DeclareRobustCommand\citeauthor +\DeclareRobustCommand\citeauthor {\begingroup\NAT@swafalse\def\NAT@ctype{1}\NAT@parfalse \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}} % \end{macrocode} @@ -3389,30 +3359,23 @@ is read in after the main package file. % Provide other variations too for completeness. If I do not, someone will % eventually ask for it, so do it now. % \begin{macrocode} -%<209>\newcommand\Citet -%<!209>\DeclareRobustCommand\Citet +\DeclareRobustCommand\Citet {\begingroup\NAT@swafalse\def\NAT@ctype{0}\NAT@partrue \let\NAT@up\NAT@Up \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}} -%<209>\newcommand\Citep -%<!209>\DeclareRobustCommand\Citep +\DeclareRobustCommand\Citep {\begingroup\NAT@swatrue\def\NAT@ctype{0}\NAT@partrue \let\NAT@up\NAT@Up \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}} -%<*!subpack> -%<209>\newcommand\Citealt -%<!209>\DeclareRobustCommand\Citealt +\DeclareRobustCommand\Citealt {\begingroup\NAT@swafalse\def\NAT@ctype{0}\NAT@parfalse \let\NAT@up\NAT@Up \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}} -%<209>\newcommand\Citealp -%<!209>\DeclareRobustCommand\Citealp +\DeclareRobustCommand\Citealp {\begingroup\NAT@swatrue\def\NAT@ctype{0}\NAT@parfalse \let\NAT@up\NAT@Up \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}} -%</!subpack> -%<209>\newcommand\Citeauthor -%<!209>\DeclareRobustCommand\Citeauthor +\DeclareRobustCommand\Citeauthor {\begingroup\NAT@swafalse\def\NAT@ctype{1}\NAT@parfalse \let\NAT@up\NAT@Up \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}} @@ -3429,8 +3392,7 @@ is read in after the main package file. % \changes{6.8}{1998 Feb 19}{Place inside a group} % Similarly for the year only. % \begin{macrocode} -%<209>\newcommand\citeyear -%<!209>\DeclareRobustCommand\citeyear +\DeclareRobustCommand\citeyear {\begingroup\NAT@swafalse\def\NAT@ctype{2}\NAT@parfalse\NAT@citetp} % \end{macrocode} % \end{macro} @@ -3440,8 +3402,7 @@ is read in after the main package file. % \changes{6.8}{1998 Feb 19}{Place inside a group} % I have often been asked for a version of |\citeyear| in parentheses. % \begin{macrocode} -%<209>\newcommand\citeyearpar -%<!209>\DeclareRobustCommand\citeyearpar +\DeclareRobustCommand\citeyearpar {\begingroup\NAT@swatrue\def\NAT@ctype{2}\NAT@partrue\NAT@citetp} % \end{macrocode} % \end{macro} @@ -3471,8 +3432,7 @@ is read in after the main package file. % This is now defined in terms of the starred version of |\citeauthor|. It is % really only kept for compatibility reasons. % \begin{macrocode} -%<209>\newcommand\citefullauthor -%<!209>\DeclareRobustCommand\citefullauthor +\DeclareRobustCommand\citefullauthor {\citeauthor*} % \end{macrocode} % \end{macro} @@ -3487,12 +3447,11 @@ is read in after the main package file. % in place of [Alpher, Bethe, Gamow, 1980]. The alias is defined with % |\defcitealias| and used with |\citetalias| and |\citepalias|. % This is controlled with -% |\NAT@ctype| set to 3. This feature only exists for \LaTeXe. +% |\NAT@ctype| set to 3. % % The advantage over simply typing in the alias name is that hyperlinks and % indexing can be achieved. % \begin{macrocode} -%<*!209> \newcommand\defcitealias[2]{% \@ifundefined{al@#1\@extra@b@citeb}{} {\PackageWarning{natbib}{Overwriting existing alias for citation #1}} @@ -3501,7 +3460,6 @@ is read in after the main package file. \NAT@swafalse\def\NAT@ctype{3}\NAT@parfalse\NAT@citetp} \DeclareRobustCommand\citepalias{\begingroup \NAT@swatrue\def\NAT@ctype{3}\NAT@partrue\NAT@citetp} -%</!209> % \end{macrocode} % \end{macro}\end{macro}\end{macro} % @@ -3520,8 +3478,7 @@ is read in after the main package file. \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi \if*\@citeb\else \@ifundefined{b@\@citeb\@extra@b@citeb}{% -%<209> \@warning -%<!209> \NAT@citeundefined \PackageWarning{natbib}% + \NAT@citeundefined \PackageWarning{natbib}% {Citation `\@citeb' undefined}}{}\fi}% \@esphack} % \end{macrocode} @@ -3562,47 +3519,14 @@ is read in after the main package file. % makes the individual assignments. % \begin{macrocode} \newcommand\NAT@parse[1]{{% -%<*209> - \@ifundefined{documentclass} - {\let\prm=\relax\let\psf=\relax\let\ptt=\relax\let\pbf=\relax - \let\psl=\relax\let\psc=\relax\let\pit=\relax\let\pem=\relax - \let\prmfamily=\relax\let\psffamily=\relax\let\pttfamily=\relax - \let\pbfseries=\relax\let\pslshape=\relax\let\pscshape=\relax - \let\pitshape=\relax\let\pmdseries=\relax\let\pupshape=\relax - \let\pc=\relax \let\pd=\relax \let\pb=\relax} - {\let\protect=\@unexpandable@protect\let~\relax}% -%</209> -%<!209> \let\protect=\@unexpandable@protect\let~\relax -%<!209> \let\active@prefix=\@gobble + \let\protect=\@unexpandable@protect\let~\relax + \let\active@prefix=\@gobble \xdef\NAT@temp{\csname b@#1\@extra@b@citeb\endcsname}}% \expandafter\NAT@split\NAT@temp \expandafter\NAT@parse@date\NAT@date??????@@% -%<!subpack&!209> \ifciteindex\NAT@index\fi + \ifciteindex\NAT@index\fi } % \end{macrocode} -% Some further notes on the above: for 2.09 it is necessary to turn off all the -% protected font commands |\prm| etc.\ when the label text is expanded into -% |\NAT@temp|, for otherwise there will be problems with the New Font -% Selection Scheme (NFSS); the protected sub-accent commands (protected -% versions of |\c|, |\d|, and |\b|) also cause troubles on expansion. -% Admittedly, this is not a good solution, for the list of problem commands -% might be much longer, but for the meantime, this will have to do. -% -% For \LaTeXe, at least after the official release of -% \texttt{1994/06/01}, commands are made robust in a totally different -% manner, no longer by adding a \texttt{p} in front, but by adding a space -% afterwards. This means the commands in the auxiliary files look like the -% protected version once again, and not raw commands. They are infinitely -% protected. The above problem is easily overcome by making |\protect| -% equal to |\@unexpandable@protect|. A definitive list of commands to -% protect is no longer necessary. (Initially I used |\noexpand|, but -% that only worked for font commands, not accents. Reading the documentation -% in \texttt{ltdefns.dtx} indicated that this is the better redefinition -% of |\protect|.) -% -% This trick is also applied to the 2.09 version for when it is running -% in the compatibility mode of \LaTeXe. This is needed for the -% journal-specific coding, more than for the normal package. % % The |\active@prefix| command appearing in \texttt{babel} causes problems % at this point, so deactivate it. @@ -3670,7 +3594,6 @@ is read in after the main package file. % information is contained in |\NAT@idxtxt| which a user may redefine if % needed. % \begin{macrocode} -%<*!subpack&!209> \newcommand\NAT@index{} \let\NAT@makeindex=\makeindex \renewcommand\makeindex{\NAT@makeindex @@ -3722,7 +3645,6 @@ is read in after the main package file. \AtBeginDocument{% \@ifpackageloaded{index}{\let\NAT@index=\NAT@index@alt}{}} -%</!subpack&!209> % \end{macrocode} % \end{macro}\end{macro} % @@ -3851,7 +3773,7 @@ is read in after the main package file. % \begin{macrocode} \renewcommand\bibitem{% \@ifnextchar[{\@lbibitem}{% -%<!subpack> \global\NAT@stdbsttrue + \global\NAT@stdbsttrue \stepcounter{NAT@ctr}\@lbibitem[\arabic{NAT@ctr}]}} % \end{macrocode} % Write the label with |\item| in the bibliography listing with the current @@ -3900,12 +3822,10 @@ is read in after the main package file. % on page~\pageref{SKdef}. % % \begin{macrocode} -%<*!209> \ifx\SK@lbibitem\@undefined\else \let\SK@lbibitem\@lbibitem \def\@lbibitem[#1]#2{% \SK@lbibitem[#1]{#2}\SK@\SK@@label{#2}\ignorespaces}\fi -%</!209> % \end{macrocode} % \end{macro}\end{macro} % @@ -3916,17 +3836,12 @@ is read in after the main package file. % the numerical ones cannot work in author--year mode. Do this by inserting % |\NAT@numberstrue| in the auxiliary file. % \begin{macrocode} -%<*!subpack> \newif\ifNAT@stdbst \NAT@stdbstfalse -%<209>\let\NAT@enddoc=\enddocument -%<209>\def\enddocument -%<!209>\AtEndDocument +\AtEndDocument {\ifNAT@stdbst\if@filesw\immediate\write\@auxout{\string \global\string\NAT@numberstrue}\fi\fi -%<209>\NAT@enddoc } -%</!subpack> % \end{macrocode} % \end{macro} % @@ -3947,7 +3862,6 @@ is read in after the main package file. % \thestyle\ and explicitly refers to citations instead of just % `references'.) % \begin{macrocode} -%<*!209> \providecommand\bibcite{} \renewcommand\bibcite[2]{\@ifundefined{b@#1\@extra@binfo}\relax {\NAT@citemultiple @@ -3960,8 +3874,6 @@ is read in after the main package file. \PackageWarningNoLine{natbib}{Citation(s) may have changed.\MessageBreak Rerun to get citations correct}\fi\fi} -%</!209> -%<209>\renewcommand\bibcite[2]{\global\@namedef{b@#1\@extra@binfo}{#2}} % \end{macrocode} % \end{macro} % @@ -3982,7 +3894,7 @@ is read in after the main package file. %<*all|apalike|authordate> \newcommand\NAT@apalk{} \def\NAT@apalk#1, #2, #3\@nil#4{\if\relax#2\relax -%<!subpack> \global\NAT@stdbsttrue + \global\NAT@stdbsttrue \NAT@wrout{#1}{}{}{}{#4}\else \stepcounter{NAT@ctr}% \NAT@wrout{\arabic {NAT@ctr}}{#2}{#1}{}{#4}\fi} @@ -4066,9 +3978,7 @@ is read in after the main package file. % % \begin{macrocode} %<*harvard|all> -%<!209>\newcommand\harvarditem[4][]% -%<209>\def\harvarditem{\@ifnextchar[{\@harvarditem}{\@harvarditem[]}} -%<209>\def\@harvarditem[#1]#2#3#4% +\newcommand\harvarditem[4][]% {\if\relax#1\relax\bibitem[#2(#3)]{#4}\else \bibitem[#1(#3)#2]{#4}\fi } % \end{macrocode} @@ -4103,8 +4013,7 @@ is read in after the main package file. \newcommand\harvardright{\NAT@close} \newcommand\harvardyearleft{\NAT@open} \newcommand\harvardyearright{\NAT@close} -%<!209>\AtBeginDocument{\providecommand{\harvardand}{and}} -%<209>\def\harvardand{and} +\AtBeginDocument{\providecommand{\harvardand}{and}} \newcommand\harvardurl[1]{\textbf{URL:} \textit{#1}} %</harvard|all> % \end{macrocode} @@ -4137,9 +4046,7 @@ is read in after the main package file. % The packages of the KOMA scripts make use of |\bib@heading| which functions % much like |\bibsection|. If it is defined, let |\bibsection| be equal to it. % \begin{macrocode} -%<*!agu&!egs> -%<!209>\providecommand\bibsection{} -%<209>\def\bibsection{} +\providecommand\bibsection{} \@ifundefined{chapter}% {\renewcommand\bibsection{\section*{\refname \@mkboth{\MakeUppercase{\refname}}{\MakeUppercase{\refname}}}}} @@ -4148,18 +4055,11 @@ is read in after the main package file. \@mkboth{\MakeUppercase{\bibname}}{\MakeUppercase{\bibname}}}}} {\renewcommand\bibsection{\section*{\bibname \ifx\@mkboth\@gobbletwo\else\markright{\MakeUppercase{\bibname}}\fi}}}} -%<*!subpack> -%<*!209> \@ifclassloaded{amsart}% {\renewcommand\bibsection{\section*{\refname}}}{} \@ifclassloaded{amsbook}% {\renewcommand\bibsection{\chapter*{\bibname}}}{} -%</!209> \@ifundefined{bib@heading}{}{\let\bibsection\bib@heading} -%</!subpack> -%</!agu&!egs> -%<egs>\def\bibsection{\if@draft\newpage\fi -%<egs> \noappendix\section*{\refname}} % \end{macrocode} % \end{macro} % @@ -4203,19 +4103,15 @@ is read in after the main package file. % |\@listctr| is set by |\usecounter|.) % \begin{macrocode} \newcounter{NAT@ctr} -%<*!agu> \renewenvironment{thebibliography}[1]{% \bibsection\parindent \z@\bibpreamble\bibfont\list {\@biblabel{\arabic{NAT@ctr}}}{\@bibsetup{#1}% \setcounter{NAT@ctr}{0}}% -%<*!209&!subpack> \ifNAT@openbib \renewcommand\newblock{\par} \else \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% \fi -%</!209&!subpack> -%<209|subpack> \def\newblock{\hskip .11em plus.33em minus.07em}% \sloppy\clubpenalty4000\widowpenalty4000 \sfcode`\.=1000\relax % \end{macrocode} @@ -4228,18 +4124,11 @@ is read in after the main package file. %<newapa|chicago|all> \let\citeN\cite \let\shortcite\cite %<harvard|all> \let\citeasnoun\cite }{\def\@noitemerr{% -%<209> \@warning -%<!209> \PackageWarning{natbib} + \PackageWarning{natbib} {Empty `thebibliography' environment}}% \endlist\vskip-\lastskip} -%<!egs>\let\bibfont\relax -%<egs>\let\bibfont\small + \let\bibfont\relax \let\bibpreamble\relax -%</!agu> -%<*agu> -\let\aguthebib=\thebibliography -\def\thebibliography#1{\noappendix\aguthebib{#1}} -%</agu> % \end{macrocode} % \end{environment} % @@ -4257,16 +4146,9 @@ is read in after the main package file. % classes that are used in place of \texttt{article}, \texttt{report}, and % \texttt{book}. % \begin{macrocode} -%<*!209> \providecommand\reset@font{\relax} \providecommand\bibname{Bibliography} \providecommand\refname{References} -%</!209> -%<*209> -\@ifundefined{reset@font}{\let\reset@font=\relax}{} -%<!agu&!egs>\@ifundefined{bibname}{\newcommand\bibname{Bibliography}}{} -\@ifundefined{refname}{\newcommand\refname{References}}{} -%</209> % \end{macrocode} % \end{macro}\end{macro}\end{macro} % @@ -4278,7 +4160,6 @@ is read in after the main package file. % retain the old name for the new coding. I had already decided to go for % an independent coding, which does exactly the same thing. % \begin{macrocode} -%<*!209> \newcommand\NAT@citeundefined{\gdef \NAT@undefined {% \PackageWarningNoLine{natbib}{There were undefined citations}}} \let \NAT@undefined \relax @@ -4293,7 +4174,6 @@ is read in after the main package file. \PackageWarningNoLine{natbib}{There were multiply defined citations}}} \let \NAT@multiple \relax \AtEndDocument{\NAT@undefined\NAT@multiple} -%</!209> % \end{macrocode} % \end{macro} % @@ -4309,8 +4189,7 @@ is read in after the main package file. % command in future, the headings will not function, but at least there % will be no crash. (Also needed for very old versions of \LaTeX~2.09.) % \begin{macrocode} -%<209>\@ifundefined{@mkboth}{\newcommand\@markboth[2]{}}{} -%<!209>\providecommand\@mkboth[2]{} +\providecommand\@mkboth[2]{} % \end{macrocode} % \end{macro} % @@ -4319,8 +4198,7 @@ is read in after the main package file. % The |\MakeUppercase| command replaces |\uppercase| in \LaTeXe\ of % June~1995. Provide it for earlier versions. % \begin{macrocode} -%<209>\let\MakeUppercase\uppercase -%<!209>\providecommand\MakeUppercase{\uppercase} +\providecommand\MakeUppercase{\uppercase} % \end{macrocode} % \end{macro} % @@ -4334,8 +4212,7 @@ is read in after the main package file. % and redefines things like |\@citex|, which we do not want to have happen. % The necessary redefinitions are already included in \thestyle. % \begin{macrocode} -%<209>\@ifundefined{@extra@b@citeb}{\def\@extra@b@citeb{}}{} -%<!209>\providecommand{\@extra@b@citeb}{} +\providecommand{\@extra@b@citeb}{} \gdef\@extra@binfo{} % \end{macrocode} % \end{macro}\end{macro} @@ -4366,20 +4243,11 @@ is read in after the main package file. % The |\hyper@natlinkbreak| to designed to break links between the names and % date, avoiding some possible problems when links go over a page. % \begin{macrocode} -%<*!209> \providecommand\hyper@natanchorstart[1]{} \providecommand\hyper@natanchorend{} \providecommand\hyper@natlinkstart[1]{} \providecommand\hyper@natlinkend{} \providecommand\hyper@natlinkbreak[2]{#1} -%</!209> -%<*209> -\@ifundefined{hyper@natanchorstart}{\def\hyper@natanchorstart#1{}}{} -\@ifundefined{hyper@natanchorend}{\def\hyper@natanchorend{}}{} -\@ifundefined{hyper@natlinkstart}{\def\hyper@natlinkstart#1{}}{} -\@ifundefined{hyper@natlinkend}{\def\hyper@natlinkend{}}{} -\@ifundefined{hyper@natlinkbreak}{\def\hyper@natlinkbreak#1#2{#1}}{} -%</209> % \end{macrocode} % \end{macro}\end{macro}\end{macro}\end{macro}\end{macro} % @@ -4433,23 +4301,14 @@ is read in after the main package file. % without \thestyle. They will work with the \texttt{german} package, but then % the keys with active characters will not. Oh boy! % -% With the journal coding (\texttt{subpack}), things are slightly different. -% For them it is |\@citex| that is defined directly, not |\NAT@citex|, so -% I have to restore that definition which \texttt{babel} has already -% altered and stored in |\org@@citex|. -% % \begin{macrocode} -%<*!209> -%<*!subpack> \@ifundefined{bbl@redefine}{}{% \bbl@redefine\nocite#1{% \@safe@activestrue\org@nocite{#1}\@safe@activesfalse}% \bbl@redefine\@lbibitem[#1]#2{% \@safe@activestrue\org@@lbibitem[#1]{#2}\@safe@activesfalse}% } -%</!subpack> \AtBeginDocument{\@ifundefined{bbl@redefine}{}{% -%<subpack>\let\@citex\org@@citex \bbl@redefine\@citex[#1][#2]#3{% \@safe@activestrue\org@@citex[#1][#2]{#3}\@safe@activesfalse}% \bbl@redefine\NAT@testdef#1#2{% @@ -4458,7 +4317,6 @@ is read in after the main package file. \bbl@redefine\@lbibitem[#1]#2{% \@safe@activestrue\org@@lbibitem[#1]{#2}\@safe@activesfalse}}{}% }} -%</!209> % \end{macrocode} % % \subsection{Sorting and Compression of Numbers} @@ -4499,7 +4357,6 @@ is read in after the main package file. % end to the main list. Finally, the trailing comma is removed with % |\NAT@xcom|. % \begin{macrocode} -%<*!209> \ifnum\NAT@sort>0 \newcommand\NAT@sort@cites[1]{% \@tempcntb\m@ne @@ -4573,7 +4430,6 @@ is read in after the main package file. \def\NAT@xcom#1,@@{#1} \else \newcommand\NAT@sort@cites[1]{\edef\NAT@cite@list{#1}}\fi -%</!209> % \end{macrocode} % \end{macro} % @@ -4584,10 +4440,8 @@ is read in after the main package file. % or any other modifications to the coding, read in % configuration file \texttt{natbib.cfg} if it exists. % \begin{macrocode} -%<*!subpack&!209> \InputIfFileExists{natbib.cfg} {\typeout{Local config file natbib.cfg used}}{} -%</!subpack&!209> %</package> % \end{macrocode} % |