Untitled diff
134 removals
Words removed | 261 |
Total words | 3100 |
Words removed (%) | 8.42 |
1344 lines
130 additions
Words added | 368 |
Total words | 3207 |
Words added (%) | 11.47 |
1340 lines
%% ----------------------------------------------------------------
%% File: `plainnat.bst'
%% uos.bst
%% A modification of `plain.bst' for use with natbib package
%% ----------------------------------------------------------------
%% File: `uos.bst'
%% A modification of `plainnat.bst' for use with natbib package
%%
%%
%% Copyright 1993-1999 Patrick W Daly
%% Copyright 1993-2007 Patrick W Daly
%% Max-Planck-Institut f\"ur Aeronomie
%% Max-Planck-Institut f\"ur Sonnensystemforschung
%% Max-Planck-Str. 2
%% Max-Planck-Str. 2
%% D-37191 Katlenburg-Lindau
%% D-37191 Katlenburg-Lindau
%% Germany
%% Germany
%% E-mail: daly@linmpi.mpg.de
%% E-mail: daly@mps.mpg.de
%%
%%
%% This program can be redistributed and/or modified under the terms
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN
%% of the LaTeX Project Public License Distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt; either
%% archives in directory macros/latex/base/lppl.txt; either
%% version 1 of the License, or any later version.
%% version 1 of the License, or any later version.
%%
%%
%% Includes field URL for Internet addresses
% Version and source file information:
%%
% \ProvidesFile{natbst.mbs}[2007/11/26 1.93 (PWD)]
%
% BibTeX `plainnat' family
% version 0.99b for BibTeX versions 0.99a or later,
% for LaTeX versions 2.09 and 2e.
%
% For use with the `natbib.sty' package; emulates the corresponding
% member of the `plain' family, but with author-year citations.
%
% With version 6.0 of `natbib.sty', it may also be used for numerical
% citations, while retaining the commands \citeauthor, \citefullauthor,
% and \citeyear to print the corresponding information.
%
% For version 7.0 of `natbib.sty', the KEY field replaces missing
% authors/editors, and the date is left blank in \bibitem.
%
% Includes field EID for the sequence/citation number of electronic journals
% which is used instead of page numbers.
%
% Includes fields ISBN and ISSN.
%
% Includes field URL for Internet addresses.
%
% Includes field DOI for Digital Object Idenfifiers.
%
% Works best with the url.sty package of Donald Arseneau.
%
% Works with identical authors and year are further sorted by
% citation key, to preserve any natural sequence.
%
ENTRY
ENTRY
{ address
{ address
author
author
booktitle
booktitle
chapter
chapter
doi
eid
edition
edition
editor
editor
howpublished
howpublished
institution
institution
isbn
isbn
issn
issn
journal
journal
key
key
month
month
note
note
number
number
organization
organization
pages
pages
publisher
publisher
school
school
series
series
title
title
type
type
url
url
volume
volume
year
year
}
}
{}
{}
{ label extra.label sort.label short.list }
{ label extra.label sort.label short.list }
INTEGERS { output.state before.all mid.sentence after.sentence after.block }
INTEGERS { output.state before.all mid.sentence after.sentence after.block }
FUNCTION {init.state.consts}
FUNCTION {init.state.consts}
{ #0 'before.all :=
{ #0 'before.all :=
#1 'mid.sentence :=
#1 'mid.sentence :=
#2 'after.sentence :=
#2 'after.sentence :=
#3 'after.block :=
#3 'after.block :=
}
}
STRINGS { s t }
STRINGS { s t }
FUNCTION {output.nonnull}
FUNCTION {output.nonnull}
{ 's :=
{ 's :=
output.state mid.sentence =
output.state mid.sentence =
{ ", " * write$ }
{ ", " * write$ }
{ output.state after.block =
{ output.state after.block =
{ add.period$ write$
{ add.period$ write$
newline$
newline$
"\newblock " write$
"\newblock " write$
}
}
{ output.state before.all =
{ output.state before.all =
'write$
'write$
{ add.period$ " " * write$ }
{ add.period$ " " * write$ }
if$
if$
}
}
if$
if$
mid.sentence 'output.state :=
mid.sentence 'output.state :=
}
}
if$
if$
s
s
}
}
FUNCTION {output}
FUNCTION {output}
{ duplicate$ empty$
{ duplicate$ empty$
'pop$
'pop$
'output.nonnull
'output.nonnull
if$
if$
}
}
FUNCTION {output.check}
FUNCTION {output.check}
{ 't :=
{ 't :=
duplicate$ empty$
duplicate$ empty$
{ pop$ "empty " t * " in " * cite$ * warning$ }
{ pop$ "empty " t * " in " * cite$ * warning$ }
'output.nonnull
'output.nonnull
if$
if$
}
}
FUNCTION {fin.entry}
FUNCTION {fin.entry}
{ add.period$
{ add.period$
write$
write$
newline$
newline$
}
}
FUNCTION {new.block}
FUNCTION {new.block}
{ output.state before.all =
{ output.state before.all =
'skip$
'skip$
{ after.block 'output.state := }
{ after.block 'output.state := }
if$
if$
}
}
FUNCTION {new.sentence}
FUNCTION {new.sentence}
{ output.state after.block =
{ output.state after.block =
'skip$
'skip$
{ output.state before.all =
{ output.state before.all =
'skip$
'skip$
{ after.sentence 'output.state := }
{ after.sentence 'output.state := }
if$
if$
}
}
if$
if$
}
}
FUNCTION {not}
FUNCTION {not}
{ { #0 }
{ { #0 }
{ #1 }
{ #1 }
if$
if$
}
}
FUNCTION {and}
FUNCTION {and}
{ 'skip$
{ 'skip$
{ pop$ #0 }
{ pop$ #0 }
if$
if$
}
}
FUNCTION {or}
FUNCTION {or}
{ { pop$ #1 }
{ { pop$ #1 }
'skip$
'skip$
if$
if$
}
}
FUNCTION {new.block.checka}
FUNCTION {new.block.checka}
{ empty$
{ empty$
'skip$
'skip$
'new.block
'new.block
if$
if$
}
}
FUNCTION {new.block.checkb}
FUNCTION {new.block.checkb}
{ empty$
{ empty$
swap$ empty$
swap$ empty$
and
and
'skip$
'skip$
'new.block
'new.block
if$
if$
}
}
FUNCTION {new.sentence.checka}
FUNCTION {new.sentence.checka}
{ empty$
{ empty$
'skip$
'skip$
'new.sentence
'new.sentence
if$
if$
}
}
FUNCTION {new.sentence.checkb}
FUNCTION {new.sentence.checkb}
{ empty$
{ empty$
swap$ empty$
swap$ empty$
and
and
'skip$
'skip$
'new.sentence
'new.sentence
if$
if$
}
}
FUNCTION {field.or.null}
FUNCTION {field.or.null}
{ duplicate$ empty$
{ duplicate$ empty$
{ pop$ "" }
{ pop$ "" }
'skip$
'skip$
if$
if$
}
}
FUNCTION {emphasize}
FUNCTION {emphasize}
{ duplicate$ empty$
{ duplicate$ empty$
{ pop$ "" }
{ pop$ "" }
{ "{\em " swap$ * "}" * }
{ "\emph{" swap$ * "}" * }
if$
if$
}
}
INTEGERS { nameptr namesleft numnames }
INTEGERS { nameptr namesleft numnames }
FUNCTION {format.names}
FUNCTION {format.names}
{ 's :=
{ 's :=
#1 'nameptr :=
#1 'nameptr :=
s num.names$ 'numnames :=
s num.names$ 'numnames :=
numnames 'namesleft :=
numnames 'namesleft :=
{ namesleft #0 > }
{ namesleft #0 > }
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
nameptr #1 >
{ namesleft #1 >
{ namesleft #1 >
{ ", " * t * }
{ ", " * t * }
{ numnames #2 >
{ numnames #2 >
{ "," * }
{ "," * }
'skip$
'skip$
if$
if$
t "others" =
t "others" =
{ " et~al." * }
{ " et~al." * }
{ " and " * t * }
{ " and " * t * }
if$
if$
}
}
if$
if$
}
}
't
't
if$
if$
nameptr #1 + 'nameptr :=
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
namesleft #1 - 'namesleft :=
}
}
while$
while$
}
}
FUNCTION {format.key}
FUNCTION {format.key}
{ empty$
{ empty$
{ key field.or.null }
{ key field.or.null }
{ "" }
{ "" }
if$
if$
}
}
FUNCTION {format.authors}
FUNCTION {format.authors}
{ author empty$
{ author empty$
{ "" }
{ "" }
{ author format.names }
{ author format.names }
if$
if$
}
}
FUNCTION {format.editors}
FUNCTION {format.editors}
{ editor empty$
{ editor empty$
{ "" }
{ "" }
{ editor format.names
{ editor format.names
editor num.names$ #1 >
editor num.names$ #1 >
{ ", editors" * }
{ ", editors" * }
{ ", editor" * }
{ ", editor" * }
if$
if$
}
}
if$
if$
}
}
FUNCTION {format.isbn}
FUNCTION {format.isbn}
{ isbn empty$
{ isbn empty$
{ "" }
{ "" }
{ new.block "ISBN " isbn * }
{ new.block "ISBN " isbn * }
if$
if$
}
}
FUNCTION {format.issn}
FUNCTION {format.issn}
{ issn empty$
{ issn empty$
{ "" }
{ "" }
{ new.block "ISSN " issn * }
{ new.block "ISSN " issn * }
if$
if$
}
}
FUNCTION {format.url}
FUNCTION {format.url}
{ ""
{ url empty$
{ "" }
{ new.block "URL \url{" url * "}" * }
if$
}
FUNCTION {format.doi}
{ doi empty$
{ "" }
{ new.block "\doi{" doi * "}" * }
if$
}
}
FUNCTION {format.title}
FUNCTION {format.title}
{ title empty$
{ title empty$
{ "" }
{ "" }
{ url empty$
{ title "t" change.case$ }
{ title "t" change.case$ }
if$
{ "\href{" url * "}{" * title "t" change.case$ * "}" * }
if$
}
if$
}
}
FUNCTION {format.full.names}
FUNCTION {format.full.names}
{'s :=
{'s :=
#1 'nameptr :=
#1 'nameptr :=
s num.names$ 'numnames :=
s num.names$ 'numnames :=
numnames 'namesleft :=
numnames 'namesleft :=
{ namesleft #0 > }
{ namesleft #0 > }
{ s nameptr
{ s nameptr
"{vv~}{ll}" format.name$ 't :=
"{vv~}{ll}" format.name$ 't :=
nameptr #1 >
nameptr #1 >
{
{
namesleft #1 >
namesleft #1 >
{ ", " * t * }
{ ", " * t * }
{
{
numnames #2 >
numnames #2 >
{ "," * }
{ "," * }
'skip$
'skip$
if$
if$
t "others" =
t "others" =
{ " et~al." * }
{ " et~al." * }
{ " and " * t * }
{ " and " * t * }
if$
if$
}
}
if$
if$
}
}
't
't
if$
if$
nameptr #1 + 'nameptr :=
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
namesleft #1 - 'namesleft :=
}
}
while$
while$
}
}
FUNCTION {author.editor.full}
FUNCTION {author.editor.full}
{ author empty$
{ author empty$
{ editor empty$
{ editor empty$
{ "" }
{ "" }
{ editor format.full.names }
{ editor format.full.names }
if$
if$
}
}
{ author format.full.names }
{ author format.full.names }
if$
if$
}
}
FUNCTION {author.full}
FUNCTION {author.full}
{ author empty$
{ author empty$
{ "" }
{ "" }
{ author format.full.names }
{ author format.full.names }
if$
if$
}
}
FUNCTION {editor.full}
FUNCTION {editor.full}
{ editor empty$
{ editor empty$
{ "" }
{ "" }
{ editor format.full.names }
{ editor format.full.names }
if$
if$
}
}
FUNCTION {make.full.names}
FUNCTION {make.full.names}
{ type$ "book" =
{ type$ "book" =
type$ "inbook" =
type$ "inbook" =
or
or
'author.editor.full
'author.editor.full
{ type$ "proceedings" =
{ type$ "proceedings" =
'editor.full
'editor.full
'author.full
'author.full
if$
if$
}
}
if$
if$
}
}
FUNCTION {output.bibitem}
FUNCTION {output.bibitem}
{ newline$
{ newline$
"\bibitem[" write$
"\bibitem[" write$
label write$
label write$
")" make.full.names duplicate$ short.list =
")" make.full.names duplicate$ short.list =
{ pop$ }
{ pop$ }
{ * }
{ * }
if$
if$
"]{" * write$
"]{" * write$
cite$ write$
cite$ write$
"}" write$
"}" write$
newline$
newline$
""
""
before.all 'output.state :=
before.all 'output.state :=
}
}
FUNCTION {n.dashify}
FUNCTION {n.dashify}
{ 't :=
{ 't :=
""
""
{ t empty$ not }
{ t empty$ not }
{ t #1 #1 substring$ "-" =
{ t #1 #1 substring$ "-" =
{ t #1 #2 substring$ "--" = not
{ t #1 #2 substring$ "--" = not
{ "--" *
{ "--" *
t #2 global.max$ substring$ 't :=
t #2 global.max$ substring$ 't :=
}
}
{ { t #1 #1 substring$ "-" = }
{ { t #1 #1 substring$ "-" = }
{ "-" *
{ "-" *
t #2 global.max$ substring$ 't :=
t #2 global.max$ substring$ 't :=
}
}
while$
while$
}
}
if$
if$
}
}
{ t #1 #1 substring$ *
{ t #1 #1 substring$ *
t #2 global.max$ substring$ 't :=
t #2 global.max$ substring$ 't :=
}
}
if$
if$
}
}
while$
while$
}
}
FUNCTION {format.date}
FUNCTION {format.date}
{ year duplicate$ empty$
{ year duplicate$ empty$
{ "empty year in " cite$ * warning$
{ "empty year in " cite$ * warning$
pop$ "" }
pop$ "" }
'skip$
'skip$
if$
if$
month empty$
month empty$
'skip$
'skip$
{ month
{ month
" " * swap$ *
" " * swap$ *
}
}
if$
if$
extra.label *
extra.label *
}
}
FUNCTION {format.btitle}
FUNCTION {format.btitle}
{ title emphasize
{ title emphasize
}
}
FUNCTION {tie.or.space.connect}
FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
{ duplicate$ text.length$ #3 <
{ "~" }
{ "~" }
{ " " }
{ " " }
if$
if$
swap$ * *
swap$ * *
}
}
FUNCTION {either.or.check}
FUNCTION {either.or.check}
{ empty$
{ empty$
'pop$
'pop$
{ "can't use both " swap$ * " fields in " * cite$ * warning$ }
{ "can't use both " swap$ * " fields in " * cite$ * warning$ }
if$
if$
}
}
FUNCTION {format.bvolume}
FUNCTION {format.bvolume}
{ volume empty$
{ volume empty$
{ "" }
{ "" }
{ "volume" volume tie.or.space.connect
{ "volume" volume tie.or.space.connect
series empty$
series empty$
'skip$
'skip$
{ " of " * series emphasize * }
{ " of " * series emphasize * }
if$
if$
"volume and number" number either.or.check
"volume and number" number either.or.check
}
}
if$
if$
}
}
FUNCTION {format.number.series}
FUNCTION {format.number.series}
{ volume empty$
{ volume empty$
{ number empty$
{ number empty$
{ series field.or.null }
{ series field.or.null }
{ output.state mid.sentence =
{ output.state mid.sentence =
{ "number" }
{ "number" }
{ "Number" }
{ "Number" }
if$
if$
number tie.or.space.connect
number tie.or.space.connect
series empty$
series empty$
{ "there's a number but no series in " cite$ * warning$ }
{ "there's a number but no series in " cite$ * warning$ }
{ " in " * series * }
{ " in " * series * }
if$
if$
}
}
if$
if$
}
}
{ "" }
{ "" }
if$
if$
}
}
FUNCTION {format.edition}
FUNCTION {format.edition}
{ edition empty$
{ edition empty$
{ "" }
{ "" }
{ output.state mid.sentence =
{ output.state mid.sentence =
{ edition "l" change.case$ " edition" * }
{ edition "l" change.case$ " edition" * }
{ edition "t" change.case$ " edition" * }
{ edition "t" change.case$ " edition" * }
if$
if$
}
}
if$
if$
}
}
INTEGERS { multiresult }
INTEGERS { multiresult }
FUNCTION {multi.page.check}
FUNCTION {multi.page.check}
{ 't :=
{ 't :=
#0 'multiresult :=
#0 'multiresult :=
{ multiresult not
{ multiresult not
t empty$ not
t empty$ not
and
and
}
}
{ t #1 #1 substring$
{ t #1 #1 substring$
duplicate$ "-" =
duplicate$ "-" =
swap$ duplicate$ "," =
swap$ duplicate$ "," =
swap$ "+" =
swap$ "+" =
or or
or or
{ #1 'multiresult := }
{ #1 'multiresult := }
{ t #2 global.max$ substring$ 't := }
{ t #2 global.max$ substring$ 't := }
if$
if$
}
}
while$
while$
multiresult
multiresult
}
}
FUNCTION {format.pages}
FUNCTION {format.pages}
{ pages empty$
{ pages empty$
{ "" }
{ "" }
{ pages multi.page.check
{ pages multi.page.check
{ "pages" pages n.dashify tie.or.space.connect }
{ "pages" pages n.dashify tie.or.space.connect }
{ "page" pages tie.or.space.connect }
{ "page" pages tie.or.space.connect }
if$
if$
}
}
if$
if$
}
}
FUNCTION {format.eid}
{ eid empty$
{ "" }
{ "art." eid tie.or.space.connect }
if$
}
FUNCTION {format.vol.num.pages}
FUNCTION {format.vol.num.pages}
{ volume field.or.null
{ volume field.or.null
number empty$
number empty$
'skip$
'skip$
{ "\penalty0 (" number * ")" * *
{ "\penalty0 (" number * ")" * *
volume empty$
volume empty$
{ "there's a number but no volume in " cite$ * warning$ }
{ "there's a number but no volume in " cite$ * warning$ }
'skip$
'skip$
if$
if$
}
}
if$
if$
pages empty$
pages empty$
'skip$
'skip$
{ duplicate$ empty$
{ duplicate$ empty$
{ pop$ format.pages }
{ pop$ format.pages }
{ ":\penalty0 " * pages n.dashify * }
{ ":\penalty0 " * pages n.dashify * }
if$
if$
}
}
if$
if$
}
}
FUNCTION {format.vol.num.eid}
{ volume field.or.null
number empty$
'skip$
{ "\penalty0 (" number * ")" * *
volume empty$
{ "there's a number but no volume in " cite$ * warning$ }
'skip$
if$
}
if$
eid empty$
'skip$
{ duplicate$ empty$
{ pop$ format.eid }
{ ":\penalty0 " * eid * }
if$
}
if$
}
FUNCTION {format.chapter.pages}
FUNCTION {format.chapter.pages}
{ chapter empty$
{ chapter empty$
'format.pages
'format.pages
{ type empty$
{ type empty$
{ "chapter" }
{ "chapter" }
{ type "l" change.case$ }
{ type "l" change.case$ }
if$
if$
chapter tie.or.space.connect
chapter tie.or.space.connect
pages empty$
pages empty$
'skip$
'skip$
{ ", " * format.pages * }
{ ", " * format.pages * }
if$
if$
}
}
if$
if$
}
}
FUNCTION {format.in.ed.booktitle}
FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
{ booktitle empty$
{ "" }
{ "" }
{ editor empty$
{ editor empty$
{ "In " booktitle emphasize * }
{ "In " booktitle emphasize * }
{ "In " format.editors * ", " * booktitle emphasize * }
{ "In " format.editors * ", " * booktitle emphasize * }
if$
if$
}
}
if$
if$
}
}
FUNCTION {empty.misc.check}
FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
{ author empty$ title empty$ howpublished empty$
month empty$ year empty$ note empty$
month empty$ year empty$ note empty$
and and and and and
and and and and and
key empty$ not and
key empty$ not and
{ "all relevant fields are empty in " cite$ * warning$ }
{ "all relevant fields are empty in " cite$ * warning$ }
'skip$
'skip$
if$
if$
}
}
FUNCTION {format.thesis.type}
FUNCTION {format.thesis.type}
{ type empty$
{ type empty$
'skip$
'skip$
{ pop$
{ pop$
type "t" change.case$
type "t" change.case$
}
}
if$
if$
}
}
FUNCTION {format.tr.number}
FUNCTION {format.tr.number}
{ type empty$
{ type empty$
{ "Technical Report" }
{ "Technical Report" }
'type
'type
if$
if$
number empty$
number empty$
{ "t" change.case$ }
{ "t" change.case$ }
{ number tie.or.space.connect }
{ number tie.or.space.connect }
if$
if$
}
}
FUNCTION {format.article.crossref}
FUNCTION {format.article.crossref}
{ key empty$
{ key empty$
{ journal empty$
{ journal empty$
{ "need key or journal for " cite$ * " to crossref " * crossref *
{ "need key or journal for " cite$ * " to crossref " * crossref *
warning$
warning$
""
""
}
}
{ "In {\em " journal * "\/}" * }
{ "In \emph{" journal * "}" * }
if$
if$
}
}
{ "In " key * }
{ "In " }
if$
if$
" \citep{" * crossref * "}" *
" \citet{" * crossref * "}" *
}
}
FUNCTION {format.book.crossref}
FUNCTION {format.book.crossref}
{ volume empty$
{ volume empty$
{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
"In "
"In "
}
}
{ "Volume" volume tie.or.space.connect
{ "Volume" volume tie.or.space.connect
" of " *
" of " *
}
}
if$
if$
editor empty$
editor empty$
editor field.or.null author field.or.null =
editor field.or.null author field.or.null =
or
or
{ key empty$
{ key empty$
{ series empty$
{ series empty$
{ "need editor, key, or series for " cite$ * " to crossref " *
{ "need editor, key, or series for " cite$ * " to crossref " *
crossref * warning$
crossref * warning$
"" *
"" *
}
}
{ "{\em " * series * "\/}" * }
{ "\emph{" * series * "}" * }
if$
if$
}
}
{ key * }
'skip$
if$
if$
}
}
'skip$
'skip$
if$
if$
", \citet{" * crossref * "}" *
" \citet{" * crossref * "}" *
}
}
FUNCTION {format.incoll.inproc.crossref}
FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
{ editor empty$
editor field.or.null author field.or.null =
editor field.or.null author field.or.null =
or
or
{ key empty$
{ key empty$
{ booktitle empty$
{ booktitle empty$
{ "need editor, key, or booktitle for " cite$ * " to crossref " *
{ "need editor, key, or booktitle for " cite$ * " to crossref " *
crossref * warning$
crossref * warning$
""
""
}
}
{ "In {\em " booktitle * "\/}" * }
{ "In \emph{" booktitle * "}" * }
if$
if$
}
}
{ "In " key * }
{ "In " }
if$
if$
}
}
{ "In " }
{ "In " }
if$
if$
" \citet{" * crossref * "}" *
" \citet{" * crossref * "}" *
}
}
FUNCTION {article}
FUNCTION {article}
{ output.bibitem
{ output.bibitem
format.authors "author" output.check
format.authors "author" output.check
author format.key output
author format.key output
new.block
new.block
format.title "title" output.check
format.title "title" output.check
new.block
new.block
crossref missing$
crossref missing$
{ journal emphasize "journal" output.check
{ journal emphasize "journal" output.check
format.vol.num.pages output
eid empty$
{ format.vol.num.pages output }
{ format.vol.num.eid output }
if$
format.date "year" output.check
format.date "year" output.check
}
}
{ format.article.crossref output.nonnull
{ format.article.crossref output.nonnull
format.pages output
eid empty$
{ format.pages output }
{ format.eid output }
if$
}
}
if$
if$
format.issn output
format.issn output
format.doi output
format.url output
format.url output
new.block
new.block
note output
note output
fin.entry
fin.entry
}
}
FUNCTION {book}
FUNCTION {book}
{ output.bibitem
{ output.bibitem
author empty$
author empty$
{ format.editors "author and editor" output.check
{ format.editors "author and editor" output.check
editor format.key output
editor format.key output
}
}
{ format.authors output.nonnull
{ format.authors output.nonnull
crossref missing$
crossref missing$
{ "author and editor" editor either.or.check }
{ "author and editor" editor either.or.check }
'skip$
'skip$
if$
if$
}
}
if$
if$
new.block
new.block
format.btitle "title" output.check
format.btitle "title" output.check
crossref missing$
crossref missing$
{ format.bvolume output
{ format.bvolume output
new.block
new.block
format.number.series output
format.number.series output
new.sentence
new.sentence
publisher "publisher" output.check
publisher "publisher" output.check
address output
address output
}
}
{ new.block
{ new.block
format.book.crossref output.nonnull
format.book.crossref output.nonnull
}
}
if$
if$
format.edition output
format.edition output
format.date "year" output.check
format.date "year" output.check
format.isbn output
format.isbn output
format.doi output
format.url output
format.url output
new.block
new.block
note output
note output
fin.entry
fin.entry
}
}
FUNCTION {booklet}
FUNCTION {booklet}
{ output.bibitem
{ output.bibitem
format.authors output
format.authors output
author format.key output
author format.key output
new.block
new.block
format.title "title" output.check
format.title "title" output.check
howpublished address new.block.checkb
howpublished address new.block.checkb
howpublished output
howpublished output
address output
address output
format.date output
format.date output
format.isbn output
format.isbn output
format.doi output
format.url output
format.url output
new.block
new.block
note output
note output
fin.entry
fin.entry
}
}
FUNCTION {inbook}
FUNCTION {inbook}
{ output.bibitem
{ output.bibitem
author empty$
author empty$
{ format.editors "author and editor" output.check
{ format.editors "author and editor" output.check
editor format.key output
editor format.key output
}
}
{ format.authors output.nonnull
{ format.authors output.nonnull
crossref missing$
crossref missing$
{ "author and editor" editor either.or.check }
{ "author and editor" editor either.or.check }
'skip$
'skip$
if$
if$
}
}
if$
if$
new.block
new.block
format.btitle "title" output.check
format.btitle "title" output.check
crossref missing$
crossref missing$
{ format.bvolume output
{ format.bvolume output
format.chapter.pages "chapter and pages" output.check
format.chapter.pages "chapter and pages" output.check
new.block
new.block
format.number.series output
format.number.series output
new.sentence
new.sentence
publisher "publisher" output.check
publisher "publisher" output.check
address output
address output
}
}
{ format.chapter.pages "chapter and pages" output.check
{ format.chapter.pages "chapter and pages" output.check
new.block
new.block
format.book.crossref output.nonnull
format.book.crossref output.nonnull
}
}
if$
if$
format.edition output
format.edition output
format.date "year" output.check
format.date "year" output.check
format.isbn output
format.isbn output
format.doi output
format.url output
format.url output
new.block
new.block
note output
note output
fin.entry
fin.entry
}
}
FUNCTION {incollection}
FUNCTION {incollection}
{ output.bibitem
{ output.bibitem
format.authors "author" output.check
format.authors "author" output.check
author format.key output
author format.key output
new.block
new.block
format.title "title" output.check
format.title "title" output.check
new.block
new.block
crossref missing$
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
{ format.in.ed.booktitle "booktitle" output.check
format.bvolume output
format.bvolume output
format.number.series output
format.number.series output
format.chapter.pages output
format.chapter.pages output
new.sentence
new.sentence
publisher "publisher" output.check
publisher "publisher" output.check
address output
address output
format.edition output
format.edition output
format.date "year" output.check
format.date "year" output.check
}
}
{ format.incoll.inproc.crossref output.nonnull
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
format.chapter.pages output
}
}
if$
if$
format.isbn output
format.isbn output
format.doi output
format.url output
format.url output
new.block
new.block
note output
note output
fin.entry
fin.entry
}
}
FUNCTION {inproceedings}
FUNCTION {inproceedings}
{ output.bibitem
{ output.bibitem
format.authors "author" output.check
format.authors "author" output.check
author format.key output
author format.key output
new.block
new.block
format.title "title" output.check
format.title "title" output.check
new.block
new.block
crossref missing$
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
{ format.in.ed.booktitle "booktitle" output.check
format.bvolume output
format.bvolume output
format.number.series output
format.number.series output
format.pages output
format.pages output
address empty$
address empty$
{ organization publisher new.sentence.checkb
{ organization publisher new.sentence.checkb
organization output
organization output
publisher output
publisher output
format.date "year" output.check
format.date "year" output.check
}
}
{ address output.nonnull
{ address output.nonnull
format.date "year" output.check
format.date "year" output.check
new.sentence
new.sentence
organization output
organization output
publisher output
publisher output
}
}
if$
if$
}
}
{ format.incoll.inproc.crossref output.nonnull
{ format.incoll.inproc.crossref output.nonnull
format.pages output
format.pages output
}
}
if$
if$
format.isbn output
format.isbn output
format.doi output
format.url output
format.url output
new.block
new.block
note output
note output
fin.entry
fin.entry
}
}
FUNCTION {conference} { inproceedings }
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
FUNCTION {manual}
{ output.bibitem
{ output.bibitem
format.authors output
format.authors output
author format.key output
author format.key output
new.block
new.block
format.btitle "title" output.check
format.btitle "title" output.check
organization address new.block.checkb
organization address new.block.checkb
organization output
organization output
address output
address output
format.edition output
format.edition output
format.date output
format.date output
format.url output
format.url output
new.block
new.block
note output
note output
fin.entry
fin.entry
}
}
FUNCTION {mastersthesis}
FUNCTION {mastersthesis}
{ output.bibitem
{ output.bibitem
format.authors "author" output.check
format.authors "author" output.check
author format.key output
author format.key output
new.block
new.block
format.title "title" output.check
format.title "title" output.check
new.block
new.block
"Master's thesis" format.thesis.type output.nonnull
"Master's thesis" format.thesis.type output.nonnull
school "school" output.check
school "school" output.check
address output
address output
format.date "year" output.check
format.date "year" output.check
format.url output
format.url output
new.block
new.block
note output
note output
fin.entry
fin.entry
}
}
FUNCTION {misc}
FUNCTION {misc}
{ output.bibitem
{ output.bibitem
format.authors output
format.authors output
author format.key output
author format.key output
title howpublished new.block.checkb
title howpublished new.block.checkb
format.title output
format.title output
howpublished new.block.checka
howpublished new.block.checka
howpublished output
howpublished output
format.date output
format.date output
format.issn output
format.issn output
format.url output
format.url output
new.block
new.block
note output
note output
fin.entry
fin.entry
empty.misc.check
empty.misc.check
}
}
FUNCTION {phdthesis}
FUNCTION {phdthesis}
{ output.bibitem
{ output.bibitem
format.authors "author" output.check
format.authors "author" output.check
author format.key output
author format.key output
new.block
new.block
format.btitle "title" output.check
format.btitle "title" output.check
new.block
new.block
"PhD thesis" format.thesis.type output.nonnull
"PhD thesis" format.thesis.type output.nonnull
school "school" output.check
school "school" output.check
address output
address output
format.date "year" output.check
format.date "year" output.check
format.url output
format.url output
new.block
new.block
note output
note output
fin.entry
fin.entry
}
}
FUNCTION {proceedings}
FUNCTION {proceedings}
{ output.bibitem
{ output.bibitem
format.editors output
format.editors output
editor format.key output
editor format.key output
new.block
new.block
format.btitle "title" output.check
format.btitle "title" output.check
format.bvolume output
format.bvolume output
format.number.series output
format.number.series output
address output
address output
format.date "year" output.check
format.date "year" output.check
new.sentence
new.sentence
organization output
organization output
publisher output
publisher output
format.isbn output
format.isbn output
format.doi output
format.url output
format.url output
new.block
new.block
note output
note output
fin.entry
fin.entry
}
}
FUNCTION {techreport}
FUNCTION {techreport}
{ output.bibitem
{ output.bibitem
format.authors "author" output.check
format.authors "author" output.check
author format.key output
author format.key output
new.block
new.block
format.title "title" output.check
format.title "title" output.check
new.block
new.block
format.tr.number output.nonnull
format.tr.number output.nonnull
institution "institution" output.check
institution "institution" output.check
address output
address output
format.date "year" output.check
format.date "year" output.check
format.url output
format.url output
new.block
new.block
note output
note output
fin.entry
fin.entry
}
}
FUNCTION {unpublished}
FUNCTION {unpublished}
{ output.bibitem
{ output.bibitem
format.authors "author" output.check
format.authors "author" output.check
author format.key output
author format.key output
new.block
new.block
format.title "title" output.check
format.title "title" output.check
format.url output
new.block
new.block
note "note" output.check
note "note" output.check
format.date output
format.date output
format.url output
fin.entry
fin.entry
}
}
FUNCTION {default.type} { misc }
FUNCTION {default.type} { misc }
MACRO {jan} {"January"}
MACRO {jan} {"January"}
MACRO {feb} {"February"}
MACRO {feb} {"February"}
MACRO {mar} {"March"}
MACRO {mar} {"March"}
MACRO {apr} {"April"}
MACRO {apr} {"April"}
MACRO {may} {"May"}
MACRO {may} {"May"}
MACRO {jun} {"June"}
MACRO {jun} {"June"}
MACRO {jul} {"July"}
MACRO {jul} {"July"}
MACRO {aug} {"August"}
MACRO {aug} {"August"}
MACRO {sep} {"September"}
MACRO {sep} {"September"}
MACRO {oct} {"October"}
MACRO {oct} {"October"}
MACRO {nov} {"November"}
MACRO {nov} {"November"}
MACRO {dec} {"December"}
MACRO {dec} {"December"}
MACRO {acmcs} {"ACM Computing Surveys"}
MACRO {acmcs} {"ACM Computing Surveys"}
MACRO {acta} {"Acta Informatica"}
MACRO {acta} {"Acta Informatica"}
MACRO {cacm} {"Communications of the ACM"}
MACRO {cacm} {"Communications of the ACM"}
MACRO {ibmjrd} {"IBM Journal of Research and Development"}
MACRO {ibmjrd} {"IBM Journal of Research and Development"}
MACRO {ibmsj} {"IBM Systems Journal"}
MACRO {ibmsj} {"IBM Systems Journal"}
MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
MACRO {ieeetc} {"IEEE Transactions on Computers"}
MACRO {ieeetc} {"IEEE Transactions on Computers"}
MACRO {ieeetcad}
MACRO {ieeetcad}
{"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
{"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
MACRO {ipl} {"Information Processing Letters"}
MACRO {ipl} {"Information Processing Letters"}
MACRO {jacm} {"Journal of the ACM"}
MACRO {jacm} {"Journal of the ACM"}
MACRO {jcss} {"Journal of Computer and System Sciences"}
MACRO {jcss} {"Journal of Computer and System Sciences"}
MACRO {scp} {"Science of Computer Programming"}
MACRO {scp} {"Science of Computer Programming"}
MACRO {sicomp} {"SIAM Journal on Computing"}
MACRO {sicomp} {"SIAM Journal on Computing"}
MACRO {tocs} {"ACM Transactions on Computer Systems"}
MACRO {tocs} {"ACM Transactions on Computer Systems"}
MACRO {tods} {"ACM Transactions on Database Systems"}
MACRO {tods} {"ACM Transactions on Database Systems"}
MACRO {tog} {"ACM Transactions on Graphics"}
MACRO {tog} {"ACM Transactions on Graphics"}
MACRO {toms} {"ACM Transactions on Mathematical Software"}
MACRO {toms} {"ACM Transactions on Mathematical Software"}
MACRO {toois} {"ACM Transactions on Office Information Systems"}
MACRO {toois} {"ACM Transactions on Office Information Systems"}