templates/colm2025/natbib.sty
templates/colm2025/natbib.styBrowse 56 files
18,019 tokens
45,154 bytes
Token encoding: o200k_base
Snapshot 24fd22b
← Back to SKILL.md
1%%2%% This is file `natbib.sty',3%% generated with the docstrip utility.4%%5%% The original source files were:6%%7%% natbib.dtx (with options: `package,all')8%% =============================================9%% IMPORTANT NOTICE:10%% 11%% This program can be redistributed and/or modified under the terms12%% of the LaTeX Project Public License Distributed from CTAN13%% archives in directory macros/latex/base/lppl.txt; either14%% version 1 of the License, or any later version.15%% 16%% This is a generated file.17%% It may not be distributed without the original source file natbib.dtx.18%% 19%% Full documentation can be obtained by LaTeXing that original file.20%% Only a few abbreviated comments remain here to describe the usage.21%% =============================================22%% Copyright 1993-2009 Patrick W Daly23%% Max-Planck-Institut f\"ur Sonnensystemforschung24%% Max-Planck-Str. 225%% D-37191 Katlenburg-Lindau26%% Germany27%% E-mail: daly@mps.mpg.de28\NeedsTeXFormat{LaTeX2e}[1995/06/01]29\ProvidesPackage{natbib}30 [2009/07/16 8.31 (PWD, AO)]31 32 % This package reimplements the LaTeX \cite command to be used for various33 % citation styles, both author-year and numerical. It accepts BibTeX34 % output intended for many other packages, and therefore acts as a35 % general, all-purpose citation-style interface.36 %37 % With standard numerical .bst files, only numerical citations are38 % possible. With an author-year .bst file, both numerical and39 % author-year citations are possible.40 %41 % If author-year citations are selected, \bibitem must have one of the42 % following forms:43 % \bibitem[Jones et al.(1990)]{key}...44 % \bibitem[Jones et al.(1990)Jones, Baker, and Williams]{key}...45 % \bibitem[Jones et al., 1990]{key}...46 % \bibitem[\protect\citeauthoryear{Jones, Baker, and Williams}{Jones47 % et al.}{1990}]{key}...48 % \bibitem[\protect\citeauthoryear{Jones et al.}{1990}]{key}...49 % \bibitem[\protect\astroncite{Jones et al.}{1990}]{key}...50 % \bibitem[\protect\citename{Jones et al., }1990]{key}...51 % \harvarditem[Jones et al.]{Jones, Baker, and Williams}{1990}{key}...52 %53 % This is either to be made up manually, or to be generated by an54 % appropriate .bst file with BibTeX.55 % Author-year mode || Numerical mode56 % Then, \citet{key} ==>> Jones et al. (1990) || Jones et al. [21]57 % \citep{key} ==>> (Jones et al., 1990) || [21]58 % Multiple citations as normal:59 % \citep{key1,key2} ==>> (Jones et al., 1990; Smith, 1989) || [21,24]60 % or (Jones et al., 1990, 1991) || [21,24]61 % or (Jones et al., 1990a,b) || [21,24]62 % \cite{key} is the equivalent of \citet{key} in author-year mode63 % and of \citep{key} in numerical mode64 % Full author lists may be forced with \citet* or \citep*, e.g.65 % \citep*{key} ==>> (Jones, Baker, and Williams, 1990)66 % Optional notes as:67 % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)68 % \citep[e.g.,][]{key} ==>> (e.g., Jones et al., 1990)69 % \citep[see][pg. 34]{key}==>> (see Jones et al., 1990, pg. 34)70 % (Note: in standard LaTeX, only one note is allowed, after the ref.71 % Here, one note is like the standard, two make pre- and post-notes.)72 % \citealt{key} ==>> Jones et al. 199073 % \citealt*{key} ==>> Jones, Baker, and Williams 199074 % \citealp{key} ==>> Jones et al., 199075 % \citealp*{key} ==>> Jones, Baker, and Williams, 199076 % Additional citation possibilities (both author-year and numerical modes)77 % \citeauthor{key} ==>> Jones et al.78 % \citeauthor*{key} ==>> Jones, Baker, and Williams79 % \citeyear{key} ==>> 199080 % \citeyearpar{key} ==>> (1990)81 % \citetext{priv. comm.} ==>> (priv. comm.)82 % \citenum{key} ==>> 11 [non-superscripted]83 % Note: full author lists depends on whether the bib style supports them;84 % if not, the abbreviated list is printed even when full requested.85 %86 % For names like della Robbia at the start of a sentence, use87 % \Citet{dRob98} ==>> Della Robbia (1998)88 % \Citep{dRob98} ==>> (Della Robbia, 1998)89 % \Citeauthor{dRob98} ==>> Della Robbia90 %91 %92 % Citation aliasing is achieved with93 % \defcitealias{key}{text}94 % \citetalias{key} ==>> text95 % \citepalias{key} ==>> (text)96 %97 % Defining the citation mode and punctual (citation style)98 % \setcitestyle{<comma-separated list of keywords, same99 % as the package options>}100 % Example: \setcitestyle{square,semicolon}101 % Alternatively:102 % Use \bibpunct with 6 mandatory arguments:103 % 1. opening bracket for citation104 % 2. closing bracket105 % 3. citation separator (for multiple citations in one \cite)106 % 4. the letter n for numerical styles, s for superscripts107 % else anything for author-year108 % 5. punctuation between authors and date109 % 6. punctuation between years (or numbers) when common authors missing110 % One optional argument is the character coming before post-notes. It111 % appears in square braces before all other arguments. May be left off.112 % Example (and default) \bibpunct[, ]{(}{)}{;}{a}{,}{,}113 %114 % To make this automatic for a given bib style, named newbib, say, make115 % a local configuration file, natbib.cfg, with the definition116 % \newcommand{\bibstyle@newbib}{\bibpunct...}117 % Then the \bibliographystyle{newbib} will cause \bibstyle@newbib to118 % be called on THE NEXT LATEX RUN (via the aux file).119 %120 % Such preprogrammed definitions may be invoked anywhere in the text121 % by calling \citestyle{newbib}. This is only useful if the style specified122 % differs from that in \bibliographystyle.123 %124 % With \citeindextrue and \citeindexfalse, one can control whether the125 % \cite commands make an automatic entry of the citation in the .idx126 % indexing file. For this, \makeindex must also be given in the preamble.127 %128 % Package Options: (for selecting punctuation)129 % round - round parentheses are used (default)130 % square - square brackets are used [option]131 % curly - curly braces are used {option}132 % angle - angle brackets are used <option>133 % semicolon - multiple citations separated by semi-colon (default)134 % colon - same as semicolon, an earlier confusion135 % comma - separated by comma136 % authoryear - selects author-year citations (default)137 % numbers- selects numerical citations138 % super - numerical citations as superscripts139 % sort - sorts multiple citations according to order in ref. list140 % sort&compress - like sort, but also compresses numerical citations141 % compress - compresses without sorting142 % longnamesfirst - makes first citation full author list143 % sectionbib - puts bibliography in a \section* instead of \chapter*144 % merge - allows the citation key to have a * prefix,145 % signifying to merge its reference with that of the previous citation.146 % elide - if references are merged, repeated portions of later ones may be removed.147 % mcite - recognizes and ignores the * prefix for merging.148 % Punctuation so selected dominates over any predefined ones.149 % Package options are called as, e.g.150 % \usepackage[square,comma]{natbib}151 % LaTeX the source file natbib.dtx to obtain more details152 % or the file natnotes.tex for a brief reference sheet.153 %-----------------------------------------------------------154\providecommand\@ifxundefined[1]{%155 \ifx#1\@undefined\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi156}%157\providecommand\@ifnum[1]{%158 \ifnum#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi159}%160\providecommand\@ifx[1]{%161 \ifx#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi162}%163\providecommand\appdef[2]{%164 \toks@\expandafter{#1}\@temptokena{#2}%165 \edef#1{\the\toks@\the\@temptokena}%166}%167\@ifclassloaded{agu2001}{\PackageError{natbib}168 {The agu2001 class already includes natbib coding,\MessageBreak169 so you should not add it explicitly}170 {Type <Return> for now, but then later remove\MessageBreak171 the command \protect\usepackage{natbib} from the document}172 \endinput}{}173\@ifclassloaded{agutex}{\PackageError{natbib}174 {The AGUTeX class already includes natbib coding,\MessageBreak175 so you should not add it explicitly}176 {Type <Return> for now, but then later remove\MessageBreak177 the command \protect\usepackage{natbib} from the document}178 \endinput}{}179\@ifclassloaded{aguplus}{\PackageError{natbib}180 {The aguplus class already includes natbib coding,\MessageBreak181 so you should not add it explicitly}182 {Type <Return> for now, but then later remove\MessageBreak183 the command \protect\usepackage{natbib} from the document}184 \endinput}{}185\@ifclassloaded{nlinproc}{\PackageError{natbib}186 {The nlinproc class already includes natbib coding,\MessageBreak187 so you should not add it explicitly}188 {Type <Return> for now, but then later remove\MessageBreak189 the command \protect\usepackage{natbib} from the document}190 \endinput}{}191\@ifclassloaded{egs}{\PackageError{natbib}192 {The egs class already includes natbib coding,\MessageBreak193 so you should not add it explicitly}194 {Type <Return> for now, but then later remove\MessageBreak195 the command \protect\usepackage{natbib} from the document}196 \endinput}{}197\@ifclassloaded{egu}{\PackageError{natbib}198 {The egu class already includes natbib coding,\MessageBreak199 so you should not add it explicitly}200 {Type <Return> for now, but then later remove\MessageBreak201 the command \protect\usepackage{natbib} from the document}202 \endinput}{}203 % Define citation punctuation for some author-year styles204 % One may add and delete at this point205 % Or put additions into local configuration file natbib.cfg206\newcommand\bibstyle@chicago{\bibpunct{(}{)}{;}{a}{,}{,}}207\newcommand\bibstyle@named{\bibpunct{[}{]}{;}{a}{,}{,}}208\newcommand\bibstyle@agu{\bibpunct{[}{]}{;}{a}{,}{,~}}%Amer. Geophys. Union209\newcommand\bibstyle@copernicus{\bibpunct{(}{)}{;}{a}{,}{,}}%Copernicus Publications210\let\bibstyle@egu=\bibstyle@copernicus211\let\bibstyle@egs=\bibstyle@copernicus212\newcommand\bibstyle@agsm{\bibpunct{(}{)}{,}{a}{}{,}\gdef\harvardand{\&}}213\newcommand\bibstyle@kluwer{\bibpunct{(}{)}{,}{a}{}{,}\gdef\harvardand{\&}}214\newcommand\bibstyle@dcu{\bibpunct{(}{)}{;}{a}{;}{,}\gdef\harvardand{and}}215\newcommand\bibstyle@aa{\bibpunct{(}{)}{;}{a}{}{,}} %Astronomy & Astrophysics216\newcommand\bibstyle@pass{\bibpunct{(}{)}{;}{a}{,}{,}}%Planet. & Space Sci217\newcommand\bibstyle@anngeo{\bibpunct{(}{)}{;}{a}{,}{,}}%Annales Geophysicae218\newcommand\bibstyle@nlinproc{\bibpunct{(}{)}{;}{a}{,}{,}}%Nonlin.Proc.Geophys.219 % Define citation punctuation for some numerical styles220\newcommand\bibstyle@cospar{\bibpunct{/}{/}{,}{n}{}{}%221 \gdef\bibnumfmt##1{##1.}}222\newcommand\bibstyle@esa{\bibpunct{(Ref.~}{)}{,}{n}{}{}%223 \gdef\bibnumfmt##1{##1.\hspace{1em}}}224\newcommand\bibstyle@nature{\bibpunct{}{}{,}{s}{}{\textsuperscript{,}}%225 \gdef\bibnumfmt##1{##1.}}226 % The standard LaTeX styles227\newcommand\bibstyle@plain{\bibpunct{[}{]}{,}{n}{}{,}}228\let\bibstyle@alpha=\bibstyle@plain229\let\bibstyle@abbrv=\bibstyle@plain230\let\bibstyle@unsrt=\bibstyle@plain231 % The author-year modifications of the standard styles232\newcommand\bibstyle@plainnat{\bibpunct{[}{]}{,}{a}{,}{,}}233\let\bibstyle@abbrvnat=\bibstyle@plainnat234\let\bibstyle@unsrtnat=\bibstyle@plainnat235\newif\ifNAT@numbers \NAT@numbersfalse236\newif\ifNAT@super \NAT@superfalse237\let\NAT@merge\z@238\DeclareOption{numbers}{\NAT@numberstrue239 \ExecuteOptions{square,comma,nobibstyle}}240\DeclareOption{super}{\NAT@supertrue\NAT@numberstrue241 \renewcommand\NAT@open{}\renewcommand\NAT@close{}242 \ExecuteOptions{nobibstyle}}243\DeclareOption{authoryear}{\NAT@numbersfalse244 \ExecuteOptions{round,semicolon,bibstyle}}245\DeclareOption{round}{%246 \renewcommand\NAT@open{(} \renewcommand\NAT@close{)}247 \ExecuteOptions{nobibstyle}}248\DeclareOption{square}{%249 \renewcommand\NAT@open{[} \renewcommand\NAT@close{]}250 \ExecuteOptions{nobibstyle}}251\DeclareOption{angle}{%252 \renewcommand\NAT@open{$<$} \renewcommand\NAT@close{$>$}253 \ExecuteOptions{nobibstyle}}254\DeclareOption{curly}{%255 \renewcommand\NAT@open{\{} \renewcommand\NAT@close{\}}256 \ExecuteOptions{nobibstyle}}257\DeclareOption{comma}{\renewcommand\NAT@sep{,}258 \ExecuteOptions{nobibstyle}}259\DeclareOption{semicolon}{\renewcommand\NAT@sep{;}260 \ExecuteOptions{nobibstyle}}261\DeclareOption{colon}{\ExecuteOptions{semicolon}}262\DeclareOption{nobibstyle}{\let\bibstyle=\@gobble}263\DeclareOption{bibstyle}{\let\bibstyle=\@citestyle}264\newif\ifNAT@openbib \NAT@openbibfalse265\DeclareOption{openbib}{\NAT@openbibtrue}266\DeclareOption{sectionbib}{\def\NAT@sectionbib{on}}267\def\NAT@sort{\z@}268\def\NAT@cmprs{\z@}269\DeclareOption{sort}{\def\NAT@sort{\@ne}}270\DeclareOption{compress}{\def\NAT@cmprs{\@ne}}271\DeclareOption{sort&compress}{\def\NAT@sort{\@ne}\def\NAT@cmprs{\@ne}}272\DeclareOption{mcite}{\let\NAT@merge\@ne}273\DeclareOption{merge}{\@ifnum{\NAT@merge<\tw@}{\let\NAT@merge\tw@}{}}274\DeclareOption{elide}{\@ifnum{\NAT@merge<\thr@@}{\let\NAT@merge\thr@@}{}}275\@ifpackageloaded{cite}{\PackageWarningNoLine{natbib}276 {The `cite' package should not be used\MessageBreak277 with natbib. Use option `sort' instead}\ExecuteOptions{sort}}{}278\@ifpackageloaded{mcite}{\PackageWarningNoLine{natbib}279 {The `mcite' package should not be used\MessageBreak280 with natbib. Use option `merge' instead}\ExecuteOptions{merge}}{}281\@ifpackageloaded{citeref}{\PackageError{natbib}282 {The `citeref' package must be loaded after natbib}%283 {Move \protect\usepackage{citeref} to after \string\usepackage{natbib}}}{}284\newif\ifNAT@longnames\NAT@longnamesfalse285\DeclareOption{longnamesfirst}{\NAT@longnamestrue}286\DeclareOption{nonamebreak}{\def\NAT@nmfmt#1{\mbox{\NAT@up#1}}}287\def\NAT@nmfmt#1{{\NAT@up#1}}288\renewcommand\bibstyle[1]{\csname bibstyle@#1\endcsname}289\AtBeginDocument{\global\let\bibstyle=\@gobble}290\let\@citestyle\bibstyle291\newcommand\citestyle[1]{\@citestyle{#1}\let\bibstyle\@gobble}292\newcommand\bibpunct[7][, ]%293 {\gdef\NAT@open{#2}\gdef\NAT@close{#3}\gdef294 \NAT@sep{#4}\global\NAT@numbersfalse295 \ifx #5n\global\NAT@numberstrue\global\NAT@superfalse296 \else297 \ifx #5s\global\NAT@numberstrue\global\NAT@supertrue298 \fi\fi299 \gdef\NAT@aysep{#6}\gdef\NAT@yrsep{#7}%300 \gdef\NAT@cmt{#1}%301 \NAT@@setcites302 }303\newcommand\setcitestyle[1]{304 \@for\@tempa:=#1\do305 {\def\@tempb{round}\ifx\@tempa\@tempb306 \renewcommand\NAT@open{(}\renewcommand\NAT@close{)}\fi307 \def\@tempb{square}\ifx\@tempa\@tempb308 \renewcommand\NAT@open{[}\renewcommand\NAT@close{]}\fi309 \def\@tempb{angle}\ifx\@tempa\@tempb310 \renewcommand\NAT@open{$<$}\renewcommand\NAT@close{$>$}\fi311 \def\@tempb{curly}\ifx\@tempa\@tempb312 \renewcommand\NAT@open{\{}\renewcommand\NAT@close{\}}\fi313 \def\@tempb{semicolon}\ifx\@tempa\@tempb314 \renewcommand\NAT@sep{;}\fi315 \def\@tempb{colon}\ifx\@tempa\@tempb316 \renewcommand\NAT@sep{;}\fi317 \def\@tempb{comma}\ifx\@tempa\@tempb318 \renewcommand\NAT@sep{,}\fi319 \def\@tempb{authoryear}\ifx\@tempa\@tempb320 \NAT@numbersfalse\fi321 \def\@tempb{numbers}\ifx\@tempa\@tempb322 \NAT@numberstrue\NAT@superfalse\fi323 \def\@tempb{super}\ifx\@tempa\@tempb324 \NAT@numberstrue\NAT@supertrue\fi325 \expandafter\NAT@find@eq\@tempa=\relax\@nil326 \if\@tempc\relax\else327 \expandafter\NAT@rem@eq\@tempc328 \def\@tempb{open}\ifx\@tempa\@tempb329 \xdef\NAT@open{\@tempc}\fi330 \def\@tempb{close}\ifx\@tempa\@tempb331 \xdef\NAT@close{\@tempc}\fi332 \def\@tempb{aysep}\ifx\@tempa\@tempb333 \xdef\NAT@aysep{\@tempc}\fi334 \def\@tempb{yysep}\ifx\@tempa\@tempb335 \xdef\NAT@yrsep{\@tempc}\fi336 \def\@tempb{notesep}\ifx\@tempa\@tempb337 \xdef\NAT@cmt{\@tempc}\fi338 \def\@tempb{citesep}\ifx\@tempa\@tempb339 \xdef\NAT@sep{\@tempc}\fi340 \fi341 }%342 \NAT@@setcites343}344 \def\NAT@find@eq#1=#2\@nil{\def\@tempa{#1}\def\@tempc{#2}}345 \def\NAT@rem@eq#1={\def\@tempc{#1}}346 \def\NAT@@setcites{\global\let\bibstyle\@gobble}347\AtBeginDocument{\let\NAT@@setcites\NAT@set@cites}348\newcommand\NAT@open{(} \newcommand\NAT@close{)}349\newcommand\NAT@sep{;}350\ProcessOptions351\newcommand\NAT@aysep{,} \newcommand\NAT@yrsep{,}352\newcommand\NAT@cmt{, }353\newcommand\NAT@cite%354 [3]{\ifNAT@swa\NAT@@open\if*#2*\else#2\NAT@spacechar\fi355 #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close\else#1\fi\endgroup}356\newcommand\NAT@citenum%357 [3]{\ifNAT@swa\NAT@@open\if*#2*\else#2\NAT@spacechar\fi358 #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close\else#1\fi\endgroup}359\newcommand\NAT@citesuper[3]{\ifNAT@swa360\if*#2*\else#2\NAT@spacechar\fi361\unskip\kern\p@\textsuperscript{\NAT@@open#1\NAT@@close}%362 \if*#3*\else\NAT@spacechar#3\fi\else #1\fi\endgroup}363\providecommand\textsuperscript[1]{\mbox{$^{\mbox{\scriptsize#1}}$}}364\begingroup \catcode`\_=8365\gdef\NAT@ifcat@num#1{%366 \ifcat_\ifnum\z@<0#1_\else A\fi367 \expandafter\@firstoftwo368 \else369 \expandafter\@secondoftwo370 \fi371}%372\endgroup373\providecommand\@firstofone[1]{#1}374\newcommand\NAT@citexnum{}375\def\NAT@citexnum[#1][#2]#3{%376 \NAT@reset@parser377 \NAT@sort@cites{#3}%378 \NAT@reset@citea379 \@cite{\def\NAT@num{-1}\let\NAT@last@yr\relax\let\NAT@nm\@empty380 \@for\@citeb:=\NAT@cite@list\do381 {\@safe@activestrue382 \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%383 \@safe@activesfalse384 \@ifundefined{b@\@citeb\@extra@b@citeb}{%385 {\reset@font\bfseries?}386 \NAT@citeundefined\PackageWarning{natbib}%387 {Citation `\@citeb' on page \thepage \space undefined}}%388 {\let\NAT@last@num\NAT@num\let\NAT@last@nm\NAT@nm389 \NAT@parse{\@citeb}%390 \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%391 \let\NAT@name=\NAT@all@names392 \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%393 \fi394 \ifNAT@full\let\NAT@nm\NAT@all@names\else395 \let\NAT@nm\NAT@name\fi396 \ifNAT@swa397 \@ifnum{\NAT@ctype>\@ne}{%398 \@citea399 \NAT@hyper@{\@ifnum{\NAT@ctype=\tw@}{\NAT@test{\NAT@ctype}}{\NAT@alias}}%400 }{%401 \@ifnum{\NAT@cmprs>\z@}{%402 \NAT@ifcat@num\NAT@num403 {\let\NAT@nm=\NAT@num}%404 {\def\NAT@nm{-2}}%405 \NAT@ifcat@num\NAT@last@num406 {\@tempcnta=\NAT@last@num\relax}%407 {\@tempcnta\m@ne}%408 \@ifnum{\NAT@nm=\@tempcnta}{%409 \@ifnum{\NAT@merge>\@ne}{}{\NAT@last@yr@mbox}%410 }{%411 \advance\@tempcnta by\@ne412 \@ifnum{\NAT@nm=\@tempcnta}{%413 \ifx\NAT@last@yr\relax414 \def@NAT@last@yr{\@citea}%415 \else416 \def@NAT@last@yr{--\NAT@penalty}%417 \fi418 }{%419 \NAT@last@yr@mbox420 }%421 }%422 }{%423 \@tempswatrue424 \@ifnum{\NAT@merge>\@ne}{\@ifnum{\NAT@last@num=\NAT@num\relax}{\@tempswafalse}{}}{}%425 \if@tempswa\NAT@citea@mbox\fi426 }%427 }%428 \NAT@def@citea429 \else430 \ifcase\NAT@ctype431 \ifx\NAT@last@nm\NAT@nm \NAT@yrsep\NAT@penalty\NAT@space\else432 \@citea \NAT@test{\@ne}\NAT@spacechar\NAT@mbox{\NAT@super@kern\NAT@@open}%433 \fi434 \if*#1*\else#1\NAT@spacechar\fi435 \NAT@mbox{\NAT@hyper@{{\citenumfont{\NAT@num}}}}%436 \NAT@def@citea@box437 \or438 \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}%439 \or440 \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}%441 \or442 \NAT@hyper@citea@space\NAT@alias443 \fi444 \fi445 }%446 }%447 \@ifnum{\NAT@cmprs>\z@}{\NAT@last@yr}{}%448 \ifNAT@swa\else449 \@ifnum{\NAT@ctype=\z@}{%450 \if*#2*\else\NAT@cmt#2\fi451 }{}%452 \NAT@mbox{\NAT@@close}%453 \fi454 }{#1}{#2}%455}%456\def\NAT@citea@mbox{%457 \@citea\mbox{\NAT@hyper@{{\citenumfont{\NAT@num}}}}%458}%459\def\NAT@hyper@#1{%460 \hyper@natlinkstart{\@citeb\@extra@b@citeb}#1\hyper@natlinkend461}%462\def\NAT@hyper@citea#1{%463 \@citea464 \NAT@hyper@{#1}%465 \NAT@def@citea466}%467\def\NAT@hyper@citea@space#1{%468 \@citea469 \NAT@hyper@{#1}%470 \NAT@def@citea@space471}%472\def\def@NAT@last@yr#1{%473 \protected@edef\NAT@last@yr{%474 #1%475 \noexpand\mbox{%476 \noexpand\hyper@natlinkstart{\@citeb\@extra@b@citeb}%477 {\noexpand\citenumfont{\NAT@num}}%478 \noexpand\hyper@natlinkend479 }%480 }%481}%482\def\NAT@last@yr@mbox{%483 \NAT@last@yr\let\NAT@last@yr\relax484 \NAT@citea@mbox485}%486\newcommand\NAT@test[1]{%487 \@ifnum{#1=\@ne}{%488 \ifx\NAT@nm\NAT@noname489 \begingroup\reset@font\bfseries(author?)\endgroup490 \PackageWarning{natbib}{%491 Author undefined for citation`\@citeb' \MessageBreak on page \thepage%492 }%493 \else \NAT@nm494 \fi495 }{%496 \if\relax\NAT@date\relax497 \begingroup\reset@font\bfseries(year?)\endgroup498 \PackageWarning{natbib}{%499 Year undefined for citation`\@citeb' \MessageBreak on page \thepage%500 }%501 \else \NAT@date502 \fi503 }%504}%505\let\citenumfont=\@empty506\newcommand\NAT@citex{}507\def\NAT@citex%508 [#1][#2]#3{%509 \NAT@reset@parser510 \NAT@sort@cites{#3}%511 \NAT@reset@citea512 \@cite{\let\NAT@nm\@empty\let\NAT@year\@empty513 \@for\@citeb:=\NAT@cite@list\do514 {\@safe@activestrue515 \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%516 \@safe@activesfalse517 \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea%518 {\reset@font\bfseries ?}\NAT@citeundefined519 \PackageWarning{natbib}%520 {Citation `\@citeb' on page \thepage \space undefined}\def\NAT@date{}}%521 {\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year522 \NAT@parse{\@citeb}%523 \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%524 \let\NAT@name=\NAT@all@names525 \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%526 \fi527 \ifNAT@full\let\NAT@nm\NAT@all@names\else528 \let\NAT@nm\NAT@name\fi529 \ifNAT@swa\ifcase\NAT@ctype530 \if\relax\NAT@date\relax531 \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}\NAT@date}%532 \else533 \ifx\NAT@last@nm\NAT@nm\NAT@yrsep534 \ifx\NAT@last@yr\NAT@year535 \def\NAT@temp{{?}}%536 \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}%537 {Multiple citation on page \thepage: same authors and538 year\MessageBreak without distinguishing extra539 letter,\MessageBreak appears as question mark}\fi540 \NAT@hyper@{\NAT@exlab}%541 \else\unskip\NAT@spacechar542 \NAT@hyper@{\NAT@date}%543 \fi544 \else545 \@citea\NAT@hyper@{%546 \NAT@nmfmt{\NAT@nm}%547 \hyper@natlinkbreak{%548 \NAT@aysep\NAT@spacechar}{\@citeb\@extra@b@citeb549 }%550 \NAT@date551 }%552 \fi553 \fi554 \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}%555 \or\@citea\NAT@hyper@{\NAT@date}%556 \or\@citea\NAT@hyper@{\NAT@alias}%557 \fi \NAT@def@citea558 \else559 \ifcase\NAT@ctype560 \if\relax\NAT@date\relax561 \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}%562 \else563 \ifx\NAT@last@nm\NAT@nm\NAT@yrsep564 \ifx\NAT@last@yr\NAT@year565 \def\NAT@temp{{?}}%566 \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}%567 {Multiple citation on page \thepage: same authors and568 year\MessageBreak without distinguishing extra569 letter,\MessageBreak appears as question mark}\fi570 \NAT@hyper@{\NAT@exlab}%571 \else572 \unskip\NAT@spacechar573 \NAT@hyper@{\NAT@date}%574 \fi575 \else576 \@citea\NAT@hyper@{%577 \NAT@nmfmt{\NAT@nm}%578 \hyper@natlinkbreak{\NAT@spacechar\NAT@@open\if*#1*\else#1\NAT@spacechar\fi}%579 {\@citeb\@extra@b@citeb}%580 \NAT@date581 }%582 \fi583 \fi584 \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}%585 \or\@citea\NAT@hyper@{\NAT@date}%586 \or\@citea\NAT@hyper@{\NAT@alias}%587 \fi588 \if\relax\NAT@date\relax589 \NAT@def@citea590 \else591 \NAT@def@citea@close592 \fi593 \fi594 }}\ifNAT@swa\else\if*#2*\else\NAT@cmt#2\fi595 \if\relax\NAT@date\relax\else\NAT@@close\fi\fi}{#1}{#2}}596\def\NAT@spacechar{\ }%597\def\NAT@separator{\NAT@sep\NAT@penalty}%598\def\NAT@reset@citea{\c@NAT@ctr\@ne\let\@citea\@empty}%599\def\NAT@def@citea{\def\@citea{\NAT@separator\NAT@space}}%600\def\NAT@def@citea@space{\def\@citea{\NAT@separator\NAT@spacechar}}%601\def\NAT@def@citea@close{\def\@citea{\NAT@@close\NAT@separator\NAT@space}}%602\def\NAT@def@citea@box{\def\@citea{\NAT@mbox{\NAT@@close}\NAT@separator\NAT@spacechar}}%603\newif\ifNAT@par \NAT@partrue604\newcommand\NAT@@open{\ifNAT@par\NAT@open\fi}605\newcommand\NAT@@close{\ifNAT@par\NAT@close\fi}606\newcommand\NAT@alias{\@ifundefined{al@\@citeb\@extra@b@citeb}{%607 {\reset@font\bfseries(alias?)}\PackageWarning{natbib}608 {Alias undefined for citation `\@citeb'609 \MessageBreak on page \thepage}}{\@nameuse{al@\@citeb\@extra@b@citeb}}}610\let\NAT@up\relax611\newcommand\NAT@Up[1]{{\let\protect\@unexpandable@protect\let~\relax612 \expandafter\NAT@deftemp#1}\expandafter\NAT@UP\NAT@temp}613\newcommand\NAT@deftemp[1]{\xdef\NAT@temp{#1}}614\newcommand\NAT@UP[1]{\let\@tempa\NAT@UP\ifcat a#1\MakeUppercase{#1}%615 \let\@tempa\relax\else#1\fi\@tempa}616\newcommand\shortcites[1]{%617 \@bsphack\@for\@citeb:=#1\do618 {\@safe@activestrue619 \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%620 \@safe@activesfalse621 \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}\@esphack}622\newcommand\NAT@biblabel[1]{\hfill}623\newcommand\NAT@biblabelnum[1]{\bibnumfmt{#1}}624\let\bibnumfmt\@empty625\providecommand\@biblabel[1]{[#1]}626\AtBeginDocument{\ifx\bibnumfmt\@empty\let\bibnumfmt\@biblabel\fi}627\newcommand\NAT@bibsetnum[1]{\settowidth\labelwidth{\@biblabel{#1}}%628 \setlength{\leftmargin}{\labelwidth}\addtolength{\leftmargin}{\labelsep}%629 \setlength{\itemsep}{\bibsep}\setlength{\parsep}{\z@}%630 \ifNAT@openbib631 \addtolength{\leftmargin}{\bibindent}%632 \setlength{\itemindent}{-\bibindent}%633 \setlength{\listparindent}{\itemindent}%634 \setlength{\parsep}{0pt}%635 \fi636}637\newlength{\bibhang}638\setlength{\bibhang}{1em}639\newlength{\bibsep}640 {\@listi \global\bibsep\itemsep \global\advance\bibsep by\parsep}641 642\newcommand\NAT@bibsetup%643 [1]{\setlength{\leftmargin}{\bibhang}\setlength{\itemindent}{-\leftmargin}%644 \setlength{\itemsep}{\bibsep}\setlength{\parsep}{\z@}}645\newcommand\NAT@set@cites{%646 \ifNAT@numbers647 \ifNAT@super \let\@cite\NAT@citesuper648 \def\NAT@mbox##1{\unskip\nobreak\textsuperscript{##1}}%649 \let\citeyearpar=\citeyear650 \let\NAT@space\relax651 \def\NAT@super@kern{\kern\p@}%652 \else653 \let\NAT@mbox=\mbox654 \let\@cite\NAT@citenum655 \let\NAT@space\NAT@spacechar656 \let\NAT@super@kern\relax657 \fi658 \let\@citex\NAT@citexnum659 \let\@biblabel\NAT@biblabelnum660 \let\@bibsetup\NAT@bibsetnum661 \renewcommand\NAT@idxtxt{\NAT@name\NAT@spacechar\NAT@open\NAT@num\NAT@close}%662 \def\natexlab##1{}%663 \def\NAT@penalty{\penalty\@m}%664 \else665 \let\@cite\NAT@cite666 \let\@citex\NAT@citex667 \let\@biblabel\NAT@biblabel668 \let\@bibsetup\NAT@bibsetup669 \let\NAT@space\NAT@spacechar670 \let\NAT@penalty\@empty671 \renewcommand\NAT@idxtxt{\NAT@name\NAT@spacechar\NAT@open\NAT@date\NAT@close}%672 \def\natexlab##1{##1}%673 \fi}674\AtBeginDocument{\NAT@set@cites}675\AtBeginDocument{\ifx\SK@def\@undefined\else676\ifx\SK@cite\@empty\else677 \SK@def\@citex[#1][#2]#3{\SK@\SK@@ref{#3}\SK@@citex[#1][#2]{#3}}\fi678\ifx\SK@citeauthor\@undefined\def\HAR@checkdef{}\else679 \let\citeauthor\SK@citeauthor680 \let\citefullauthor\SK@citefullauthor681 \let\citeyear\SK@citeyear\fi682\fi}683\newif\ifNAT@full\NAT@fullfalse684\newif\ifNAT@swa685\DeclareRobustCommand\citet686 {\begingroup\NAT@swafalse\let\NAT@ctype\z@\NAT@partrue687 \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}688\newcommand\NAT@citetp{\@ifnextchar[{\NAT@@citetp}{\NAT@@citetp[]}}689\newcommand\NAT@@citetp{}690\def\NAT@@citetp[#1]{\@ifnextchar[{\@citex[#1]}{\@citex[][#1]}}691\DeclareRobustCommand\citep692 {\begingroup\NAT@swatrue\let\NAT@ctype\z@\NAT@partrue693 \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}694\DeclareRobustCommand\cite695 {\begingroup\let\NAT@ctype\z@\NAT@partrue\NAT@swatrue696 \@ifstar{\NAT@fulltrue\NAT@cites}{\NAT@fullfalse\NAT@cites}}697\newcommand\NAT@cites{\@ifnextchar [{\NAT@@citetp}{%698 \ifNAT@numbers\else699 \NAT@swafalse700 \fi701 \NAT@@citetp[]}}702\DeclareRobustCommand\citealt703 {\begingroup\NAT@swafalse\let\NAT@ctype\z@\NAT@parfalse704 \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}705\DeclareRobustCommand\citealp706 {\begingroup\NAT@swatrue\let\NAT@ctype\z@\NAT@parfalse707 \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}708\DeclareRobustCommand\citenum709 {\begingroup710 \NAT@swatrue\let\NAT@ctype\z@\NAT@parfalse\let\textsuperscript\NAT@spacechar711 \NAT@citexnum[][]}712\DeclareRobustCommand\citeauthor713 {\begingroup\NAT@swafalse\let\NAT@ctype\@ne\NAT@parfalse714 \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}715\DeclareRobustCommand\Citet716 {\begingroup\NAT@swafalse\let\NAT@ctype\z@\NAT@partrue717 \let\NAT@up\NAT@Up718 \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}719\DeclareRobustCommand\Citep720 {\begingroup\NAT@swatrue\let\NAT@ctype\z@\NAT@partrue721 \let\NAT@up\NAT@Up722 \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}723\DeclareRobustCommand\Citealt724 {\begingroup\NAT@swafalse\let\NAT@ctype\z@\NAT@parfalse725 \let\NAT@up\NAT@Up726 \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}727\DeclareRobustCommand\Citealp728 {\begingroup\NAT@swatrue\let\NAT@ctype\z@\NAT@parfalse729 \let\NAT@up\NAT@Up730 \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}731\DeclareRobustCommand\Citeauthor732 {\begingroup\NAT@swafalse\let\NAT@ctype\@ne\NAT@parfalse733 \let\NAT@up\NAT@Up734 \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}735\DeclareRobustCommand\citeyear736 {\begingroup\NAT@swafalse\let\NAT@ctype\tw@\NAT@parfalse\NAT@citetp}737\DeclareRobustCommand\citeyearpar738 {\begingroup\NAT@swatrue\let\NAT@ctype\tw@\NAT@partrue\NAT@citetp}739\newcommand\citetext[1]{\NAT@open#1\NAT@close}740\DeclareRobustCommand\citefullauthor741 {\citeauthor*}742\newcommand\defcitealias[2]{%743 \@ifundefined{al@#1\@extra@b@citeb}{}744 {\PackageWarning{natbib}{Overwriting existing alias for citation #1}}745 \@namedef{al@#1\@extra@b@citeb}{#2}}746\DeclareRobustCommand\citetalias{\begingroup747 \NAT@swafalse\let\NAT@ctype\thr@@\NAT@parfalse\NAT@citetp}748\DeclareRobustCommand\citepalias{\begingroup749 \NAT@swatrue\let\NAT@ctype\thr@@\NAT@partrue\NAT@citetp}750\renewcommand\nocite[1]{\@bsphack751 \@for\@citeb:=#1\do{%752 \@safe@activestrue753 \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%754 \@safe@activesfalse755 \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi756 \if*\@citeb\else757 \@ifundefined{b@\@citeb\@extra@b@citeb}{%758 \NAT@citeundefined \PackageWarning{natbib}%759 {Citation `\@citeb' undefined}}{}\fi}%760 \@esphack}761\newcommand\NAT@parse[1]{%762 \begingroup763 \let\protect=\@unexpandable@protect764 \let~\relax765 \let\active@prefix=\@gobble766 \edef\NAT@temp{\csname b@#1\@extra@b@citeb\endcsname}%767 \aftergroup\NAT@split768 \expandafter769 \endgroup770 \NAT@temp{}{}{}{}{}@@%771 \expandafter\NAT@parse@date\NAT@date??????@@%772 \ifciteindex\NAT@index\fi773}%774\def\NAT@split#1#2#3#4#5@@{%775 \gdef\NAT@num{#1}\gdef\NAT@name{#3}\gdef\NAT@date{#2}%776 \gdef\NAT@all@names{#4}%777 \ifx\NAT@num\@empty\gdef\NAT@num{0}\fi778 \ifx\NAT@noname\NAT@all@names \gdef\NAT@all@names{#3}\fi779}%780\def\NAT@reset@parser{%781 \global\let\NAT@num\@empty782 \global\let\NAT@name\@empty783 \global\let\NAT@date\@empty784 \global\let\NAT@all@names\@empty785}%786\newcommand\NAT@parse@date{}787\def\NAT@parse@date#1#2#3#4#5#6@@{%788 \ifnum\the\catcode`#1=11\def\NAT@year{}\def\NAT@exlab{#1}\else789 \ifnum\the\catcode`#2=11\def\NAT@year{#1}\def\NAT@exlab{#2}\else790 \ifnum\the\catcode`#3=11\def\NAT@year{#1#2}\def\NAT@exlab{#3}\else791 \ifnum\the\catcode`#4=11\def\NAT@year{#1#2#3}\def\NAT@exlab{#4}\else792 \def\NAT@year{#1#2#3#4}\def\NAT@exlab{{#5}}\fi\fi\fi\fi}793\newcommand\NAT@index{}794\let\NAT@makeindex=\makeindex795\renewcommand\makeindex{\NAT@makeindex796 \renewcommand\NAT@index{\@bsphack\begingroup797 \def~{\string~}\@wrindex{\NAT@idxtxt}}}798\newcommand\NAT@idxtxt{\NAT@name\NAT@spacechar\NAT@open\NAT@date\NAT@close}799\@ifxundefined\@indexfile{}{\let\NAT@makeindex\relax\makeindex}800\newif\ifciteindex \citeindexfalse801\newcommand\citeindextype{default}802\newcommand\NAT@index@alt{{\let\protect=\noexpand\let~\relax803 \xdef\NAT@temp{\NAT@idxtxt}}\expandafter\NAT@exp\NAT@temp\@nil}804\newcommand\NAT@exp{}805\def\NAT@exp#1\@nil{\index[\citeindextype]{#1}}806 807\AtBeginDocument{%808\@ifpackageloaded{index}{\let\NAT@index=\NAT@index@alt}{}}809\newcommand\NAT@ifcmd{\futurelet\NAT@temp\NAT@ifxcmd}810\newcommand\NAT@ifxcmd{\ifx\NAT@temp\relax\else\expandafter\NAT@bare\fi}811\def\NAT@bare#1(#2)#3(@)#4\@nil#5{%812 \if @#2813 \expandafter\NAT@apalk#1, , \@nil{#5}%814 \else815 \NAT@wrout{\the\c@NAT@ctr}{#2}{#1}{#3}{#5}%816\fi817}818\newcommand\NAT@wrout[5]{%819\if@filesw820 {\let\protect\noexpand\let~\relax821 \immediate822 \write\@auxout{\string\bibcite{#5}{{#1}{#2}{{#3}}{{#4}}}}}\fi823\ignorespaces}824\def\NAT@noname{{}}825\renewcommand\bibitem{\@ifnextchar[{\@lbibitem}{\@lbibitem[]}}%826\let\NAT@bibitem@first@sw\@secondoftwo827\def\@lbibitem[#1]#2{%828 \if\relax\@extra@b@citeb\relax\else829 \@ifundefined{br@#2\@extra@b@citeb}{}{%830 \@namedef{br@#2}{\@nameuse{br@#2\@extra@b@citeb}}%831 }%832 \fi833 \@ifundefined{b@#2\@extra@b@citeb}{%834 \def\NAT@num{}%835 }{%836 \NAT@parse{#2}%837 }%838 \def\NAT@tmp{#1}%839 \expandafter\let\expandafter\bibitemOpen\csname NAT@b@open@#2\endcsname840 \expandafter\let\expandafter\bibitemShut\csname NAT@b@shut@#2\endcsname841 \@ifnum{\NAT@merge>\@ne}{%842 \NAT@bibitem@first@sw{%843 \@firstoftwo844 }{%845 \@ifundefined{NAT@b*@#2}{%846 \@firstoftwo847 }{%848 \expandafter\def\expandafter\NAT@num\expandafter{\the\c@NAT@ctr}%849 \@secondoftwo850 }%851 }%852 }{%853 \@firstoftwo854 }%855 {%856 \global\advance\c@NAT@ctr\@ne857 \@ifx{\NAT@tmp\@empty}{\@firstoftwo}{%858 \@secondoftwo859 }%860 {%861 \expandafter\def\expandafter\NAT@num\expandafter{\the\c@NAT@ctr}%862 \global\NAT@stdbsttrue863 }{}%864 \bibitem@fin865 \item[\hfil\NAT@anchor{#2}{\NAT@num}]%866 \global\let\NAT@bibitem@first@sw\@secondoftwo867 \NAT@bibitem@init868 }%869 {%870 \NAT@anchor{#2}{}%871 \NAT@bibitem@cont872 \bibitem@fin873 }%874 \@ifx{\NAT@tmp\@empty}{%875 \NAT@wrout{\the\c@NAT@ctr}{}{}{}{#2}%876 }{%877 \expandafter\NAT@ifcmd\NAT@tmp(@)(@)\@nil{#2}%878 }%879}%880\def\bibitem@fin{%881 \@ifxundefined\@bibstop{}{\csname bibitem@\@bibstop\endcsname}%882}%883\def\NAT@bibitem@init{%884 \let\@bibstop\@undefined885}%886\def\NAT@bibitem@cont{%887 \let\bibitem@Stop\bibitemStop888 \let\bibitem@NoStop\bibitemContinue889}%890\def\BibitemOpen{%891 \bibitemOpen892}%893\def\BibitemShut#1{%894 \bibitemShut895 \def\@bibstop{#1}%896 \let\bibitem@Stop\bibitemStop897 \let\bibitem@NoStop\bibitemNoStop898}%899\def\bibitemStop{}%900\def\bibitemNoStop{.\spacefactor\@mmm\space}%901\def\bibitemContinue{\spacefactor\@mmm\space}%902\mathchardef\@mmm=3000 %903\providecommand{\bibAnnote}[3]{%904 \BibitemShut{#1}%905 \def\@tempa{#3}\@ifx{\@tempa\@empty}{}{%906 \begin{quotation}\noindent907 \textsc{Key:}\ #2\\\textsc{Annotation:}\ \@tempa908 \end{quotation}%909 }%910}%911\providecommand{\bibAnnoteFile}[2]{%912 \IfFileExists{#2}{%913 \bibAnnote{#1}{#2}{\input{#2}}%914 }{%915 \bibAnnote{#1}{#2}{}%916 }%917}%918\let\bibitemOpen\relax919\let\bibitemShut\relax920\def\bibfield{\@ifnum{\NAT@merge>\tw@}{\@bibfield}{\@secondoftwo}}%921\def\@bibfield#1#2{%922 \begingroup923 \let\Doi\@gobble924 \let\bibinfo\relax925 \let\restore@protect\@empty926 \protected@edef\@tempa{#2}%927 \aftergroup\def\aftergroup\@tempa928 \expandafter\endgroup\expandafter{\@tempa}%929 \expandafter\@ifx\expandafter{\csname @bib#1\endcsname\@tempa}{%930 \expandafter\let\expandafter\@tempa\csname @bib@X#1\endcsname931 }{%932 \expandafter\let\csname @bib#1\endcsname\@tempa933 \expandafter\let\expandafter\@tempa\csname @bib@Y#1\endcsname934 }%935 \@ifx{\@tempa\relax}{\let\@tempa\@firstofone}{}%936 \@tempa{#2}%937}%938\def\bibinfo#1{%939 \expandafter\let\expandafter\@tempa\csname bibinfo@X@#1\endcsname940 \@ifx{\@tempa\relax}{\@firstofone}{\@tempa}%941}%942\def\@bib@Xauthor#1{\let\@bib@Xjournal\@gobble}%943\def\@bib@Xjournal#1{\begingroup\let\bibinfo@X@journal\@bib@Z@journal#1\endgroup}%944\def\@bibibid@#1{\textit{ibid}.}%945\appdef\NAT@bibitem@init{%946 \let\@bibauthor \@empty947 \let\@bibjournal \@empty948 \let\@bib@Z@journal\@bibibid@949}%950\ifx\SK@lbibitem\@undefined\else951 \let\SK@lbibitem\@lbibitem952 \def\@lbibitem[#1]#2{%953 \SK@lbibitem[#1]{#2}\SK@\SK@@label{#2}\ignorespaces}\fi954\newif\ifNAT@stdbst \NAT@stdbstfalse955 956\AtEndDocument{%957 \ifNAT@stdbst\if@filesw958 \immediate\write\@auxout{%959 \string\providecommand\string\NAT@force@numbers{}%960 \string\NAT@force@numbers961 }%962 \fi\fi963 }964\newcommand\NAT@force@numbers{%965 \ifNAT@numbers\else966 \PackageError{natbib}{Bibliography not compatible with author-year967 citations.\MessageBreak968 Press <return> to continue in numerical citation style}969 {Check the bibliography entries for non-compliant syntax,\MessageBreak970 or select author-year BibTeX style, e.g. plainnat}%971 \global\NAT@numberstrue\fi}972 973\providecommand\bibcite{}974\renewcommand\bibcite[2]{%975 \@ifundefined{b@#1\@extra@binfo}{\relax}{%976 \NAT@citemultiple977 \PackageWarningNoLine{natbib}{Citation `#1' multiply defined}%978 }%979 \global\@namedef{b@#1\@extra@binfo}{#2}%980}%981\AtEndDocument{\NAT@swatrue\let\bibcite\NAT@testdef}982\newcommand\NAT@testdef[2]{%983 \def\NAT@temp{#2}%984 \expandafter \ifx \csname b@#1\@extra@binfo\endcsname\NAT@temp985 \else986 \ifNAT@swa \NAT@swafalse987 \PackageWarningNoLine{natbib}{%988 Citation(s) may have changed.\MessageBreak989 Rerun to get citations correct%990 }%991 \fi992 \fi993}%994\newcommand\NAT@apalk{}995\def\NAT@apalk#1, #2, #3\@nil#4{%996 \if\relax#2\relax997 \global\NAT@stdbsttrue998 \NAT@wrout{#1}{}{}{}{#4}%999 \else1000 \NAT@wrout{\the\c@NAT@ctr}{#2}{#1}{}{#4}%1001 \fi1002}%1003\newcommand\citeauthoryear{}1004\def\citeauthoryear#1#2#3(@)(@)\@nil#4{%1005 \if\relax#3\relax1006 \NAT@wrout{\the\c@NAT@ctr}{#2}{#1}{}{#4}%1007 \else1008 \NAT@wrout{\the\c@NAT@ctr}{#3}{#2}{#1}{#4}%1009 \fi1010}%1011\newcommand\citestarts{\NAT@open}%1012\newcommand\citeends{\NAT@close}%1013\newcommand\betweenauthors{and}%1014\newcommand\astroncite{}1015\def\astroncite#1#2(@)(@)\@nil#3{%1016 \NAT@wrout{\the\c@NAT@ctr}{#2}{#1}{}{#3}%1017}%1018\newcommand\citename{}1019\def\citename#1#2(@)(@)\@nil#3{\expandafter\NAT@apalk#1#2, \@nil{#3}}1020\newcommand\harvarditem[4][]{%1021 \if\relax#1\relax1022 \bibitem[#2(#3)]{#4}%1023 \else1024 \bibitem[#1(#3)#2]{#4}%1025 \fi1026}%1027\newcommand\harvardleft{\NAT@open}1028\newcommand\harvardright{\NAT@close}1029\newcommand\harvardyearleft{\NAT@open}1030\newcommand\harvardyearright{\NAT@close}1031\AtBeginDocument{\providecommand{\harvardand}{and}}1032\newcommand\harvardurl[1]{\textbf{URL:} \textit{#1}}1033\providecommand\bibsection{}1034\@ifundefined{chapter}{%1035 \renewcommand\bibsection{%1036 \section*{\refname\@mkboth{\MakeUppercase{\refname}}{\MakeUppercase{\refname}}}%1037 }%1038}{%1039 \@ifxundefined\NAT@sectionbib{%1040 \renewcommand\bibsection{%1041 \chapter*{\bibname\@mkboth{\MakeUppercase{\bibname}}{\MakeUppercase{\bibname}}}%1042 }%1043 }{%1044 \renewcommand\bibsection{%1045 \section*{\bibname\ifx\@mkboth\@gobbletwo\else\markright{\MakeUppercase{\bibname}}\fi}%1046 }%1047 }%1048}%1049\@ifclassloaded{amsart}{\renewcommand\bibsection{\section*{\refname}}}{}%1050\@ifclassloaded{amsbook}{\renewcommand\bibsection{\chapter*{\bibname}}}{}%1051\@ifxundefined\bib@heading{}{\let\bibsection\bib@heading}%1052\newcounter{NAT@ctr}1053\renewenvironment{thebibliography}[1]{%1054 \bibsection1055 \parindent\z@1056 \bibpreamble1057 \bibfont1058 \list{\@biblabel{\the\c@NAT@ctr}}{\@bibsetup{#1}\global\c@NAT@ctr\z@}%1059 \ifNAT@openbib1060 \renewcommand\newblock{\par}%1061 \else1062 \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%1063 \fi1064 \sloppy\clubpenalty4000\widowpenalty40001065 \sfcode`\.\@m1066 \let\NAT@bibitem@first@sw\@firstoftwo1067 \let\citeN\cite \let\shortcite\cite1068 \let\citeasnoun\cite1069}{%1070 \bibitem@fin1071 \bibpostamble1072 \def\@noitemerr{%1073 \PackageWarning{natbib}{Empty `thebibliography' environment}%1074 }%1075 \endlist1076 \bibcleanup1077}%1078\let\bibfont\@empty1079\let\bibpreamble\@empty1080\let\bibpostamble\@empty1081\def\bibcleanup{\vskip-\lastskip}%1082\providecommand\reset@font{\relax}1083\providecommand\bibname{Bibliography}1084\providecommand\refname{References}1085\newcommand\NAT@citeundefined{\gdef \NAT@undefined {%1086 \PackageWarningNoLine{natbib}{There were undefined citations}}}1087\let \NAT@undefined \relax1088\newcommand\NAT@citemultiple{\gdef \NAT@multiple {%1089 \PackageWarningNoLine{natbib}{There were multiply defined citations}}}1090\let \NAT@multiple \relax1091\AtEndDocument{\NAT@undefined\NAT@multiple}1092\providecommand\@mkboth[2]{}1093\providecommand\MakeUppercase{\uppercase}1094\providecommand{\@extra@b@citeb}{}1095\gdef\@extra@binfo{}1096\def\NAT@anchor#1#2{%1097 \hyper@natanchorstart{#1\@extra@b@citeb}%1098 \def\@tempa{#2}\@ifx{\@tempa\@empty}{}{\@biblabel{#2}}%1099 \hyper@natanchorend1100}%1101\providecommand\hyper@natanchorstart[1]{}%1102\providecommand\hyper@natanchorend{}%1103\providecommand\hyper@natlinkstart[1]{}%1104\providecommand\hyper@natlinkend{}%1105\providecommand\hyper@natlinkbreak[2]{#1}%1106\AtBeginDocument{%1107 \@ifpackageloaded{babel}{%1108 \let\org@@citex\@citex}{}}1109\providecommand\@safe@activestrue{}%1110\providecommand\@safe@activesfalse{}%1111 1112\newcommand\NAT@sort@cites[1]{%1113 \let\NAT@cite@list\@empty1114 \@for\@citeb:=#1\do{\expandafter\NAT@star@cite\@citeb\@@}%1115 \if@filesw1116 \expandafter\immediate\expandafter\write\expandafter\@auxout1117 \expandafter{\expandafter\string\expandafter\citation\expandafter{\NAT@cite@list}}%1118 \fi1119 \@ifnum{\NAT@sort>\z@}{%1120 \expandafter\NAT@sort@cites@\expandafter{\NAT@cite@list}%1121 }{}%1122}%1123\def\NAT@star@cite{%1124 \let\NAT@star@sw\@secondoftwo1125 \@ifnum{\NAT@merge>\z@}{%1126 \@ifnextchar*{%1127 \let\NAT@star@sw\@firstoftwo1128 \NAT@star@cite@star1129 }{%1130 \NAT@star@cite@nostar1131 }%1132 }{%1133 \NAT@star@cite@noextension1134 }%1135}%1136\def\NAT@star@cite@star*{%1137 \NAT@star@cite@nostar1138}%1139\def\NAT@star@cite@nostar{%1140 \let\nat@keyopt@open\@empty1141 \let\nat@keyopt@shut\@empty1142 \@ifnextchar[{\NAT@star@cite@pre}{\NAT@star@cite@pre[]}%1143}%1144\def\NAT@star@cite@pre[#1]{%1145 \def\nat@keyopt@open{#1}%1146 \@ifnextchar[{\NAT@star@cite@post}{\NAT@star@cite@post[]}%1147}%1148\def\NAT@star@cite@post[#1]#2\@@{%1149 \def\nat@keyopt@shut{#1}%1150 \NAT@star@sw{\expandafter\global\expandafter\let\csname NAT@b*@#2\endcsname\@empty}{}%1151 \NAT@cite@list@append{#2}%1152}%1153\def\NAT@star@cite@noextension#1\@@{%1154 \let\nat@keyopt@open\@empty1155 \let\nat@keyopt@shut\@empty1156 \NAT@cite@list@append{#1}%1157}%1158\def\NAT@cite@list@append#1{%1159 \edef\@citeb{\@firstofone#1\@empty}%1160 \if@filesw\@ifxundefined\@cprwrite{}{\expandafter\@cprwrite\@citeb=}\fi1161 \if\relax\nat@keyopt@open\relax\else1162 \global\expandafter\let\csname NAT@b@open@\@citeb\endcsname\nat@keyopt@open1163 \fi1164 \if\relax\nat@keyopt@shut\relax\else1165 \global\expandafter\let\csname NAT@b@shut@\@citeb\endcsname\nat@keyopt@shut1166 \fi1167 \toks@\expandafter{\NAT@cite@list}%1168 \ifx\NAT@cite@list\@empty1169 \@temptokena\expandafter{\@citeb}%1170 \else1171 \@temptokena\expandafter{\expandafter,\@citeb}%1172 \fi1173 \edef\NAT@cite@list{\the\toks@\the\@temptokena}%1174}%1175\newcommand\NAT@sort@cites@[1]{%1176 \count@\z@1177 \@tempcntb\m@ne1178 \let\@celt\delimiter1179 \def\NAT@num@list{}%1180 \let\NAT@cite@list\@empty1181 \let\NAT@nonsort@list\@empty1182 \@for \@citeb:=#1\do{\NAT@make@cite@list}%1183 \ifx\NAT@nonsort@list\@empty\else1184 \protected@edef\NAT@cite@list{\NAT@cite@list\NAT@nonsort@list}%1185 \fi1186 \ifx\NAT@cite@list\@empty\else1187 \protected@edef\NAT@cite@list{\expandafter\NAT@xcom\NAT@cite@list @@}%1188 \fi1189}%1190\def\NAT@make@cite@list{%1191 \advance\count@\@ne1192 \@safe@activestrue1193 \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%1194 \@safe@activesfalse1195 \@ifundefined{b@\@citeb\@extra@b@citeb}%1196 {\def\NAT@num{A}}%1197 {\NAT@parse{\@citeb}}%1198 \NAT@ifcat@num\NAT@num1199 {\@tempcnta\NAT@num \relax1200 \@ifnum{\@tempcnta<\@tempcntb}{%1201 \let\NAT@@cite@list=\NAT@cite@list1202 \let\NAT@cite@list\@empty1203 \begingroup\let\@celt=\NAT@celt\NAT@num@list\endgroup1204 \protected@edef\NAT@num@list{%1205 \expandafter\NAT@num@celt \NAT@num@list \@gobble @%1206 }%1207 }{%1208 \protected@edef\NAT@num@list{\NAT@num@list \@celt{\NAT@num}}%1209 \protected@edef\NAT@cite@list{\NAT@cite@list\@citeb,}%1210 \@tempcntb\@tempcnta1211 }%1212 }%1213 {\protected@edef\NAT@nonsort@list{\NAT@nonsort@list\@citeb,}}%1214}%1215\def\NAT@celt#1{%1216 \@ifnum{#1>\@tempcnta}{%1217 \xdef\NAT@cite@list{\NAT@cite@list\@citeb,\NAT@@cite@list}%1218 \let\@celt\@gobble1219 }{%1220 \expandafter\def@NAT@cite@lists\NAT@@cite@list\@@1221 }%1222}%1223\def\NAT@num@celt#1#2{%1224 \ifx#1\@celt1225 \@ifnum{#2>\@tempcnta}{%1226 \@celt{\number\@tempcnta}%1227 \@celt{#2}%1228 }{%1229 \@celt{#2}%1230 \expandafter\NAT@num@celt1231 }%1232 \fi1233}%1234\def\def@NAT@cite@lists#1,#2\@@{%1235 \xdef\NAT@cite@list{\NAT@cite@list#1,}%1236 \xdef\NAT@@cite@list{#2}%1237}%1238\def\NAT@nextc#1,#2@@{#1,}1239\def\NAT@restc#1,#2{#2}1240\def\NAT@xcom#1,@@{#1}1241\InputIfFileExists{natbib.cfg}1242 {\typeout{Local config file natbib.cfg used}}{}1243%% 1244%% <<<<< End of generated file <<<<<<1245%%1246%% End of file `natbib.sty'.1247