| <html><head> |
| <meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8"> |
| </head> |
| |
| <body lang="en-GB"> |
| % |
| |
| <p align="right"><em>%A printer friendly PDF version of this page is |
| available <ahref="index.pdf"><a href="abbrv.pdf">abbrv.pdf (36Kb)</a></em></p> |
| |
| <h1>BibTeX standard bibliography style `abbrv'</h1> |
| <dl> |
| <dt style="color: #0000B2; background-color: #C0C0C0">% version 0.99a for |
| BibTeX versions 0.99a or later, LaTeX version 2.09.</dt> |
| <dt style="color: #0000B2; background-color: #C0C0C0">% Copyright (C) 1985, |
| all rights reserved.</dt> |
| <dt style="color: #0000B2; background-color: #C0C0C0">% Copying of this |
| file is authorized only if either</dt> |
| <dt style="color: #0000B2; background-color: #C0C0C0">% (1) you make |
| absolutely no changes to your copy, including name, or</dt> |
| <dt style="color: #0000B2; background-color: #C0C0C0">% (2) if you do make |
| changes, you name it something other than</dt> |
| <dt style="color: #0000B2; background-color: #C0C0C0">% btxbst.doc, |
| plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.</dt> |
| <dt style="color: #0000B2; background-color: #C0C0C0">% This restriction |
| helps ensure that all standard styles are identical.</dt> |
| <dt style="color: #0000B2; background-color: #C0C0C0"><span |
| style="color: #0000B2">% The file btxbst.doc has the documentation for this |
| style.</span></dt> |
| <dt><br> |
| </dt> |
| <dt>ENTRY</dt> |
| <dt>{ address</dt> |
| <dt>author</dt> |
| <dt>booktitle</dt> |
| <dt>chapter</dt> |
| <dt>edition</dt> |
| <dt>editor</dt> |
| <dt>howpublished</dt> |
| <dt>institution</dt> |
| <dt>journal</dt> |
| <dt>key</dt> |
| <dt>month</dt> |
| <dt>note</dt> |
| <dt>number</dt> |
| <dt>organization</dt> |
| <dt>pages</dt> |
| <dt>publisher</dt> |
| <dt>school</dt> |
| <dt>series</dt> |
| <dt>title</dt> |
| <dt>type</dt> |
| <dt>volume</dt> |
| <dt>year</dt> |
| <dt>}</dt> |
| <dt>{}</dt> |
| <dt>{ label }</dt> |
| <dt><br> |
| </dt> |
| <dt>INTEGERS { output.state before.all mid.sentence after.sentence |
| after.block }</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {init.state.consts}</dt> |
| <dt>{ #0 'before.all :=</dt> |
| <dt>#1 'mid.sentence :=</dt> |
| <dt>#2 'after.sentence :=</dt> |
| <dt>#3 'after.block :=</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>STRINGS { s t }</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {output.nonnull}</dt> |
| <dt>{ 's :=</dt> |
| <dt>output.state mid.sentence =</dt> |
| <dt>{ ", " * write$ }</dt> |
| <dt>{ output.state after.block =</dt> |
| <dt>{ add.period$ write$</dt> |
| <dt>newline$</dt> |
| <dt>"\newblock " write$</dt> |
| <dt>}</dt> |
| <dt>{ output.state before.all =</dt> |
| <dt>'write$</dt> |
| <dt>{ add.period$ " " * write$ }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>mid.sentence 'output.state :=</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>s</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {output}</dt> |
| <dt>{ duplicate$ empty$</dt> |
| <dt>'pop$</dt> |
| <dt>'output.nonnull</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {output.check}</dt> |
| <dt>{ 't :=</dt> |
| <dt>duplicate$ empty$</dt> |
| <dt>{ pop$ "empty " t * " in " * cite$ * warning$ }</dt> |
| <dt>'output.nonnull</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {output.bibitem}</dt> |
| <dt>{ newline$</dt> |
| <dt>"\bibitem{" write$</dt> |
| <dt>cite$ write$</dt> |
| <dt>"}" write$</dt> |
| <dt>newline$</dt> |
| <dt>""</dt> |
| <dt>before.all 'output.state :=</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {fin.entry}</dt> |
| <dt>{ add.period$</dt> |
| <dt>write$</dt> |
| <dt>newline$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {new.block}</dt> |
| <dt>{ output.state before.all =</dt> |
| <dt>'skip$</dt> |
| <dt>{ after.block 'output.state := }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {new.sentence}</dt> |
| <dt>{ output.state after.block =</dt> |
| <dt>'skip$</dt> |
| <dt>{ output.state before.all =</dt> |
| <dt>'skip$</dt> |
| <dt>{ after.sentence 'output.state := }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {not}</dt> |
| <dt>{ { #0 }</dt> |
| <dt>{ #1 }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {and}</dt> |
| <dt>{ 'skip$</dt> |
| <dt>{ pop$ #0 }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {or}</dt> |
| <dt>{ { pop$ #1 }</dt> |
| <dt>'skip$</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {new.block.checka}</dt> |
| <dt>{ empty$</dt> |
| <dt>'skip$</dt> |
| <dt>'new.block</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {new.block.checkb}</dt> |
| <dt>{ empty$</dt> |
| <dt>swap$ empty$</dt> |
| <dt>and</dt> |
| <dt>'skip$</dt> |
| <dt>'new.block</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {new.sentence.checka}</dt> |
| <dt>{ empty$</dt> |
| <dt>'skip$</dt> |
| <dt>'new.sentence</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {new.sentence.checkb}</dt> |
| <dt>{ empty$</dt> |
| <dt>swap$ empty$</dt> |
| <dt>and</dt> |
| <dt>'skip$</dt> |
| <dt>'new.sentence</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {field.or.null}</dt> |
| <dt>{ duplicate$ empty$</dt> |
| <dt>{ pop$ "" }</dt> |
| <dt>'skip$</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {emphasize}</dt> |
| <dt>{ duplicate$ empty$</dt> |
| <dt>{ pop$ "" }</dt> |
| <dt>{ "{\em " swap$ * "}" * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>INTEGERS { nameptr namesleft numnames }</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.names}</dt> |
| <dt>{ 's :=</dt> |
| <dt>#1 'nameptr :=</dt> |
| <dt>s num.names$ 'numnames :=</dt> |
| <dt>numnames 'namesleft :=</dt> |
| <dt>{ namesleft #0 > }</dt> |
| <dt>{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=</dt> |
| <dt>nameptr #1 ></dt> |
| <dt>{ namesleft #1 ></dt> |
| <dt>{ ", " * t * }</dt> |
| <dt>{ numnames #2 ></dt> |
| <dt>{ "," * }</dt> |
| <dt>'skip$</dt> |
| <dt>if$</dt> |
| <dt>t "others" =</dt> |
| <dt>{ " et~al." * }</dt> |
| <dt>{ " and " * t * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>'t</dt> |
| <dt>if$</dt> |
| <dt>nameptr #1 + 'nameptr :=</dt> |
| <dt>namesleft #1 - 'namesleft :=</dt> |
| <dt>}</dt> |
| <dt>while$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.authors}</dt> |
| <dt>{ author empty$</dt> |
| <dt>{ "" }</dt> |
| <dt>{ author format.names }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.editors}</dt> |
| <dt>{ editor empty$</dt> |
| <dt>{ "" }</dt> |
| <dt>{ editor format.names</dt> |
| <dt>editor num.names$ #1 ></dt> |
| <dt>{ ", editors" * }</dt> |
| <dt>{ ", editor" * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.title}</dt> |
| <dt>{ title empty$</dt> |
| <dt>{ "" }</dt> |
| <dt>{ title "t" change.case$ }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {n.dashify}</dt> |
| <dt>{ 't :=</dt> |
| <dt>""</dt> |
| <dt>{ t empty$ not }</dt> |
| <dt>{ t #1 #1 substring$ "-" =</dt> |
| <dt>{ t #1 #2 substring$ "--" = not</dt> |
| <dt>{ "--" *</dt> |
| <dt>t #2 global.max$ substring$ 't :=</dt> |
| <dt>}</dt> |
| <dt>{ { t #1 #1 substring$ "-" = }</dt> |
| <dt>{ "-" *</dt> |
| <dt>t #2 global.max$ substring$ 't :=</dt> |
| <dt>}</dt> |
| <dt>while$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ t #1 #1 substring$ *</dt> |
| <dt>t #2 global.max$ substring$ 't :=</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>while$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.date}</dt> |
| <dt>{ year empty$</dt> |
| <dt>{ month empty$</dt> |
| <dt>{ "" }</dt> |
| <dt>{ "there's a month but no year in " cite$ * warning$</dt> |
| <dt>month</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ month empty$</dt> |
| <dt>'year</dt> |
| <dt>{ month " " * year * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.btitle}</dt> |
| <dt>{ title emphasize</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {tie.or.space.connect}</dt> |
| <dt>{ duplicate$ text.length$ #3 <</dt> |
| <dt>{ "~" }</dt> |
| <dt>{ " " }</dt> |
| <dt>if$</dt> |
| <dt>swap$ * *</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {either.or.check}</dt> |
| <dt>{ empty$</dt> |
| <dt>'pop$</dt> |
| <dt>{ "can't use both " swap$ * " fields in " * cite$ * warning$ }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.bvolume}</dt> |
| <dt>{ volume empty$</dt> |
| <dt>{ "" }</dt> |
| <dt>{ "volume" volume tie.or.space.connect</dt> |
| <dt>series empty$</dt> |
| <dt>'skip$</dt> |
| <dt>{ " of " * series emphasize * }</dt> |
| <dt>if$</dt> |
| <dt>"volume and number" number either.or.check</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.number.series}</dt> |
| <dt>{ volume empty$</dt> |
| <dt>{ number empty$</dt> |
| <dt>{ series field.or.null }</dt> |
| <dt>{ output.state mid.sentence =</dt> |
| <dt>{ "number" }</dt> |
| <dt>{ "Number" }</dt> |
| <dt>if$</dt> |
| <dt>number tie.or.space.connect</dt> |
| <dt>series empty$</dt> |
| <dt>{ "there's a number but no series in " cite$ * warning$ }</dt> |
| <dt>{ " in " * series * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ "" }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.edition}</dt> |
| <dt>{ edition empty$</dt> |
| <dt>{ "" }</dt> |
| <dt>{ output.state mid.sentence =</dt> |
| <dt>{ edition "l" change.case$ " edition" * }</dt> |
| <dt>{ edition "t" change.case$ " edition" * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>INTEGERS { multiresult }</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {multi.page.check}</dt> |
| <dt>{ 't :=</dt> |
| <dt>#0 'multiresult :=</dt> |
| <dt>{ multiresult not</dt> |
| <dt>t empty$ not</dt> |
| <dt>and</dt> |
| <dt>}</dt> |
| <dt>{ t #1 #1 substring$</dt> |
| <dt>duplicate$ "-" =</dt> |
| <dt>swap$ duplicate$ "," =</dt> |
| <dt>swap$ "+" =</dt> |
| <dt>or or</dt> |
| <dt>{ #1 'multiresult := }</dt> |
| <dt>{ t #2 global.max$ substring$ 't := }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>while$</dt> |
| <dt>multiresult</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.pages}</dt> |
| <dt>{ pages empty$</dt> |
| <dt>{ "" }</dt> |
| <dt>{ pages multi.page.check</dt> |
| <dt>{ "pages" pages n.dashify tie.or.space.connect }</dt> |
| <dt>{ "page" pages tie.or.space.connect }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.vol.num.pages}</dt> |
| <dt>{ volume field.or.null</dt> |
| <dt>number empty$</dt> |
| <dt>'skip$</dt> |
| <dt>{ "(" number * ")" * *</dt> |
| <dt>volume empty$</dt> |
| <dt>{ "there's a number but no volume in " cite$ * warning$ }</dt> |
| <dt>'skip$</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>pages empty$</dt> |
| <dt>'skip$</dt> |
| <dt>{ duplicate$ empty$</dt> |
| <dt>{ pop$ format.pages }</dt> |
| <dt>{ ":" * pages n.dashify * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.chapter.pages}</dt> |
| <dt>{ chapter empty$</dt> |
| <dt>'format.pages</dt> |
| <dt>{ type empty$</dt> |
| <dt>{ "chapter" }</dt> |
| <dt>{ type "l" change.case$ }</dt> |
| <dt>if$</dt> |
| <dt>chapter tie.or.space.connect</dt> |
| <dt>pages empty$</dt> |
| <dt>'skip$</dt> |
| <dt>{ ", " * format.pages * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.in.ed.booktitle}</dt> |
| <dt>{ booktitle empty$</dt> |
| <dt>{ "" }</dt> |
| <dt>{ editor empty$</dt> |
| <dt>{ "In " booktitle emphasize * }</dt> |
| <dt>{ "In " format.editors * ", " * booktitle emphasize * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {empty.misc.check}</dt> |
| <dt>{ author empty$ title empty$ howpublished empty$</dt> |
| <dt>month empty$ year empty$ note empty$</dt> |
| <dt>and and and and and</dt> |
| <dt>key empty$ not and</dt> |
| <dt>{ "all relevant fields are empty in " cite$ * warning$ }</dt> |
| <dt>'skip$</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.thesis.type}</dt> |
| <dt>{ type empty$</dt> |
| <dt>'skip$</dt> |
| <dt>{ pop$</dt> |
| <dt>type "t" change.case$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.tr.number}</dt> |
| <dt>{ type empty$</dt> |
| <dt>{ "Technical Report" }</dt> |
| <dt>'type</dt> |
| <dt>if$</dt> |
| <dt>number empty$</dt> |
| <dt>{ "t" change.case$ }</dt> |
| <dt>{ number tie.or.space.connect }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.article.crossref}</dt> |
| <dt>{ key empty$</dt> |
| <dt>{ journal empty$</dt> |
| <dt>{ "need key or journal for " cite$ * " to crossref " * crossref *</dt> |
| <dt>warning$</dt> |
| <dt>""</dt> |
| <dt>}</dt> |
| <dt>{ "In {\em " journal * "\/}" * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ "In " key * }</dt> |
| <dt>if$</dt> |
| <dt>" \cite{" * crossref * "}" *</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.crossref.editor}</dt> |
| <dt>{ editor #1 "{vv~}{ll}" format.name$</dt> |
| <dt>editor num.names$ duplicate$</dt> |
| <dt>#2 ></dt> |
| <dt>{ pop$ " et~al." * }</dt> |
| <dt>{ #2 <</dt> |
| <dt>'skip$</dt> |
| <dt>{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =</dt> |
| <dt>{ " et~al." * }</dt> |
| <dt>{ " and " * editor #2 "{vv~}{ll}" format.name$ * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.book.crossref}</dt> |
| <dt>{ volume empty$</dt> |
| <dt>{ "empty volume in " cite$ * "'s crossref of " * crossref * |
| warning$</dt> |
| <dt>"In "</dt> |
| <dt>}</dt> |
| <dt>{ "Volume" volume tie.or.space.connect</dt> |
| <dt>" of " *</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>editor empty$</dt> |
| <dt>editor field.or.null author field.or.null =</dt> |
| <dt>or</dt> |
| <dt>{ key empty$</dt> |
| <dt>{ series empty$</dt> |
| <dt>{ "need editor, key, or series for " cite$ * " to crossref " *</dt> |
| <dt>crossref * warning$</dt> |
| <dt>"" *</dt> |
| <dt>}</dt> |
| <dt>{ "{\em " * series * "\/}" * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ key * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ format.crossref.editor * }</dt> |
| <dt>if$</dt> |
| <dt>" \cite{" * crossref * "}" *</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {format.incoll.inproc.crossref}</dt> |
| <dt>{ editor empty$</dt> |
| <dt>editor field.or.null author field.or.null =</dt> |
| <dt>or</dt> |
| <dt>{ key empty$</dt> |
| <dt>{ booktitle empty$</dt> |
| <dt>{ "need editor, key, or booktitle for " cite$ * " to crossref " *</dt> |
| <dt>crossref * warning$</dt> |
| <dt>""</dt> |
| <dt>}</dt> |
| <dt>{ "In {\em " booktitle * "\/}" * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ "In " key * }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ "In " format.crossref.editor * }</dt> |
| <dt>if$</dt> |
| <dt>" \cite{" * crossref * "}" *</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {article}</dt> |
| <dt>{ output.bibitem</dt> |
| <dt>format.authors "author" output.check</dt> |
| <dt>new.block</dt> |
| <dt>format.title "title" output.check</dt> |
| <dt>new.block</dt> |
| <dt>crossref missing$</dt> |
| <dt>{ journal emphasize "journal" output.check</dt> |
| <dt>format.vol.num.pages output</dt> |
| <dt>format.date "year" output.check</dt> |
| <dt>}</dt> |
| <dt>{ format.article.crossref output.nonnull</dt> |
| <dt>format.pages output</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>new.block</dt> |
| <dt>note output</dt> |
| <dt>fin.entry</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {book}</dt> |
| <dt>{ output.bibitem</dt> |
| <dt>author empty$</dt> |
| <dt>{ format.editors "author and editor" output.check }</dt> |
| <dt>{ format.authors output.nonnull</dt> |
| <dt>crossref missing$</dt> |
| <dt>{ "author and editor" editor either.or.check }</dt> |
| <dt>'skip$</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>new.block</dt> |
| <dt>format.btitle "title" output.check</dt> |
| <dt>crossref missing$</dt> |
| <dt>{ format.bvolume output</dt> |
| <dt>new.block</dt> |
| <dt>format.number.series output</dt> |
| <dt>new.sentence</dt> |
| <dt>publisher "publisher" output.check</dt> |
| <dt>address output</dt> |
| <dt>}</dt> |
| <dt>{ new.block</dt> |
| <dt>format.book.crossref output.nonnull</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>format.edition output</dt> |
| <dt>format.date "year" output.check</dt> |
| <dt>new.block</dt> |
| <dt>note output</dt> |
| <dt>fin.entry</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {booklet}</dt> |
| <dt>{ output.bibitem</dt> |
| <dt>format.authors output</dt> |
| <dt>new.block</dt> |
| <dt>format.title "title" output.check</dt> |
| <dt>howpublished address new.block.checkb</dt> |
| <dt>howpublished output</dt> |
| <dt>address output</dt> |
| <dt>format.date output</dt> |
| <dt>new.block</dt> |
| <dt>note output</dt> |
| <dt>fin.entry</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {inbook}</dt> |
| <dt>{ output.bibitem</dt> |
| <dt>author empty$</dt> |
| <dt>{ format.editors "author and editor" output.check }</dt> |
| <dt>{ format.authors output.nonnull</dt> |
| <dt>crossref missing$</dt> |
| <dt>{ "author and editor" editor either.or.check }</dt> |
| <dt>'skip$</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>new.block</dt> |
| <dt>format.btitle "title" output.check</dt> |
| <dt>crossref missing$</dt> |
| <dt>{ format.bvolume output</dt> |
| <dt>format.chapter.pages "chapter and pages" output.check</dt> |
| <dt>new.block</dt> |
| <dt>format.number.series output</dt> |
| <dt>new.sentence</dt> |
| <dt>publisher "publisher" output.check</dt> |
| <dt>address output</dt> |
| <dt>}</dt> |
| <dt>{ format.chapter.pages "chapter and pages" output.check</dt> |
| <dt>new.block</dt> |
| <dt>format.book.crossref output.nonnull</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>format.edition output</dt> |
| <dt>format.date "year" output.check</dt> |
| <dt>new.block</dt> |
| <dt>note output</dt> |
| <dt>fin.entry</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {incollection}</dt> |
| <dt>{ output.bibitem</dt> |
| <dt>format.authors "author" output.check</dt> |
| <dt>new.block</dt> |
| <dt>format.title "title" output.check</dt> |
| <dt>new.block</dt> |
| <dt>crossref missing$</dt> |
| <dt>{ format.in.ed.booktitle "booktitle" output.check</dt> |
| <dt>format.bvolume output</dt> |
| <dt>format.number.series output</dt> |
| <dt>format.chapter.pages output</dt> |
| <dt>new.sentence</dt> |
| <dt>publisher "publisher" output.check</dt> |
| <dt>address output</dt> |
| <dt>format.edition output</dt> |
| <dt>format.date "year" output.check</dt> |
| <dt>}</dt> |
| <dt>{ format.incoll.inproc.crossref output.nonnull</dt> |
| <dt>format.chapter.pages output</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>new.block</dt> |
| <dt>note output</dt> |
| <dt>fin.entry</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {inproceedings}</dt> |
| <dt>{ output.bibitem</dt> |
| <dt>format.authors "author" output.check</dt> |
| <dt>new.block</dt> |
| <dt>format.title "title" output.check</dt> |
| <dt>new.block</dt> |
| <dt>crossref missing$</dt> |
| <dt>{ format.in.ed.booktitle "booktitle" output.check</dt> |
| <dt>format.bvolume output</dt> |
| <dt>format.number.series output</dt> |
| <dt>format.pages output</dt> |
| <dt>address empty$</dt> |
| <dt>{ organization publisher new.sentence.checkb</dt> |
| <dt>organization output</dt> |
| <dt>publisher output</dt> |
| <dt>format.date "year" output.check</dt> |
| <dt>}</dt> |
| <dt>{ address output.nonnull</dt> |
| <dt>format.date "year" output.check</dt> |
| <dt>new.sentence</dt> |
| <dt>organization output</dt> |
| <dt>publisher output</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ format.incoll.inproc.crossref output.nonnull</dt> |
| <dt>format.pages output</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>new.block</dt> |
| <dt>note output</dt> |
| <dt>fin.entry</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {conference} { inproceedings }</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {manual}</dt> |
| <dt>{ output.bibitem</dt> |
| <dt>author empty$</dt> |
| <dt>{ organization empty$</dt> |
| <dt>'skip$</dt> |
| <dt>{ organization output.nonnull</dt> |
| <dt>address output</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ format.authors output.nonnull }</dt> |
| <dt>if$</dt> |
| <dt>new.block</dt> |
| <dt>format.btitle "title" output.check</dt> |
| <dt>author empty$</dt> |
| <dt>{ organization empty$</dt> |
| <dt>{ address new.block.checka</dt> |
| <dt>address output</dt> |
| <dt>}</dt> |
| <dt>'skip$</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ organization address new.block.checkb</dt> |
| <dt>organization output</dt> |
| <dt>address output</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>format.edition output</dt> |
| <dt>format.date output</dt> |
| <dt>new.block</dt> |
| <dt>note output</dt> |
| <dt>fin.entry</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {mastersthesis}</dt> |
| <dt>{ output.bibitem</dt> |
| <dt>format.authors "author" output.check</dt> |
| <dt>new.block</dt> |
| <dt>format.title "title" output.check</dt> |
| <dt>new.block</dt> |
| <dt>"Master's thesis" format.thesis.type output.nonnull</dt> |
| <dt>school "school" output.check</dt> |
| <dt>address output</dt> |
| <dt>format.date "year" output.check</dt> |
| <dt>new.block</dt> |
| <dt>note output</dt> |
| <dt>fin.entry</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {misc}</dt> |
| <dt>{ output.bibitem</dt> |
| <dt>format.authors output</dt> |
| <dt>title howpublished new.block.checkb</dt> |
| <dt>format.title output</dt> |
| <dt>howpublished new.block.checka</dt> |
| <dt>howpublished output</dt> |
| <dt>format.date output</dt> |
| <dt>new.block</dt> |
| <dt>note output</dt> |
| <dt>fin.entry</dt> |
| <dt>empty.misc.check</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {phdthesis}</dt> |
| <dt>{ output.bibitem</dt> |
| <dt>format.authors "author" output.check</dt> |
| <dt>new.block</dt> |
| <dt>format.btitle "title" output.check</dt> |
| <dt>new.block</dt> |
| <dt>"PhD thesis" format.thesis.type output.nonnull</dt> |
| <dt>school "school" output.check</dt> |
| <dt>address output</dt> |
| <dt>format.date "year" output.check</dt> |
| <dt>new.block</dt> |
| <dt>note output</dt> |
| <dt>fin.entry</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {proceedings}</dt> |
| <dt>{ output.bibitem</dt> |
| <dt>editor empty$</dt> |
| <dt>{ organization output }</dt> |
| <dt>{ format.editors output.nonnull }</dt> |
| <dt>if$</dt> |
| <dt>new.block</dt> |
| <dt>format.btitle "title" output.check</dt> |
| <dt>format.bvolume output</dt> |
| <dt>format.number.series output</dt> |
| <dt>address empty$</dt> |
| <dt>{ editor empty$</dt> |
| <dt>{ publisher new.sentence.checka }</dt> |
| <dt>{ organization publisher new.sentence.checkb</dt> |
| <dt>organization output</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>publisher output</dt> |
| <dt>format.date "year" output.check</dt> |
| <dt>}</dt> |
| <dt>{ address output.nonnull</dt> |
| <dt>format.date "year" output.check</dt> |
| <dt>new.sentence</dt> |
| <dt>editor empty$</dt> |
| <dt>'skip$</dt> |
| <dt>{ organization output }</dt> |
| <dt>if$</dt> |
| <dt>publisher output</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>new.block</dt> |
| <dt>note output</dt> |
| <dt>fin.entry</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {techreport}</dt> |
| <dt>{ output.bibitem</dt> |
| <dt>format.authors "author" output.check</dt> |
| <dt>new.block</dt> |
| <dt>format.title "title" output.check</dt> |
| <dt>new.block</dt> |
| <dt>format.tr.number output.nonnull</dt> |
| <dt>institution "institution" output.check</dt> |
| <dt>address output</dt> |
| <dt>format.date "year" output.check</dt> |
| <dt>new.block</dt> |
| <dt>note output</dt> |
| <dt>fin.entry</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {unpublished}</dt> |
| <dt>{ output.bibitem</dt> |
| <dt>format.authors "author" output.check</dt> |
| <dt>new.block</dt> |
| <dt>format.title "title" output.check</dt> |
| <dt>new.block</dt> |
| <dt>note "note" output.check</dt> |
| <dt>format.date output</dt> |
| <dt>fin.entry</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {default.type} { misc }</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {jan} {"Jan."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {feb} {"Feb."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {mar} {"Mar."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {apr} {"Apr."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {may} {"May"}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {jun} {"June"}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {jul} {"July"}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {aug} {"Aug."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {sep} {"Sept."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {oct} {"Oct."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {nov} {"Nov."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {dec} {"Dec."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {acmcs} {"ACM Comput. Surv."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {acta} {"Acta Inf."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {cacm} {"Commun. ACM"}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {ibmjrd} {"IBM J. Res. Dev."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {ibmsj} {"IBM Syst.~J."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {ieeese} {"IEEE Trans. Softw. Eng."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {ieeetc} {"IEEE Trans. Comput."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {ieeetcad}</dt> |
| <dt>{"IEEE Trans. Comput.-Aided Design Integrated Circuits"}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {ipl} {"Inf. Process. Lett."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {jacm} {"J.~ACM"}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {jcss} {"J.~Comput. Syst. Sci."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {scp} {"Sci. Comput. Programming"}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {sicomp} {"SIAM J. Comput."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {tocs} {"ACM Trans. Comput. Syst."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {tods} {"ACM Trans. Database Syst."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {tog} {"ACM Trans. Gr."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {toms} {"ACM Trans. Math. Softw."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {toois} {"ACM Trans. Office Inf. Syst."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}</dt> |
| <dt><br> |
| </dt> |
| <dt>MACRO {tcs} {"Theoretical Comput. Sci."}</dt> |
| <dt><br> |
| </dt> |
| <dt>READ</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {sortify}</dt> |
| <dt>{ purify$</dt> |
| <dt>"l" change.case$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>INTEGERS { len }</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {chop.word}</dt> |
| <dt>{ 's :=</dt> |
| <dt>'len :=</dt> |
| <dt>s #1 len substring$ =</dt> |
| <dt>{ s len #1 + global.max$ substring$ }</dt> |
| <dt>'s</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {sort.format.names}</dt> |
| <dt>{ 's :=</dt> |
| <dt>#1 'nameptr :=</dt> |
| <dt>""</dt> |
| <dt>s num.names$ 'numnames :=</dt> |
| <dt>numnames 'namesleft :=</dt> |
| <dt>{ namesleft #0 > }</dt> |
| <dt>{ nameptr #1 ></dt> |
| <dt>{ " " * }</dt> |
| <dt>'skip$</dt> |
| <dt>if$</dt> |
| <dt>s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=</dt> |
| <dt>nameptr numnames = t "others" = and</dt> |
| <dt>{ "et al" * }</dt> |
| <dt>{ t sortify * }</dt> |
| <dt>if$</dt> |
| <dt>nameptr #1 + 'nameptr :=</dt> |
| <dt>namesleft #1 - 'namesleft :=</dt> |
| <dt>}</dt> |
| <dt>while$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {sort.format.title}</dt> |
| <dt>{ 't :=</dt> |
| <dt>"A " #2</dt> |
| <dt>"An " #3</dt> |
| <dt>"The " #4 t chop.word</dt> |
| <dt>chop.word</dt> |
| <dt>chop.word</dt> |
| <dt>sortify</dt> |
| <dt>#1 global.max$ substring$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {author.sort}</dt> |
| <dt>{ author empty$</dt> |
| <dt>{ key empty$</dt> |
| <dt>{ "to sort, need author or key in " cite$ * warning$</dt> |
| <dt>""</dt> |
| <dt>}</dt> |
| <dt>{ key sortify }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ author sort.format.names }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {author.editor.sort}</dt> |
| <dt>{ author empty$</dt> |
| <dt>{ editor empty$</dt> |
| <dt>{ key empty$</dt> |
| <dt>{ "to sort, need author, editor, or key in " cite$ * warning$</dt> |
| <dt>""</dt> |
| <dt>}</dt> |
| <dt>{ key sortify }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ editor sort.format.names }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ author sort.format.names }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {author.organization.sort}</dt> |
| <dt>{ author empty$</dt> |
| <dt>{ organization empty$</dt> |
| <dt>{ key empty$</dt> |
| <dt>{ "to sort, need author, organization, or key in " cite$ * warning$</dt> |
| <dt>""</dt> |
| <dt>}</dt> |
| <dt>{ key sortify }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ "The " #4 organization chop.word sortify }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ author sort.format.names }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {editor.organization.sort}</dt> |
| <dt>{ editor empty$</dt> |
| <dt>{ organization empty$</dt> |
| <dt>{ key empty$</dt> |
| <dt>{ "to sort, need editor, organization, or key in " cite$ * warning$</dt> |
| <dt>""</dt> |
| <dt>}</dt> |
| <dt>{ key sortify }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ "The " #4 organization chop.word sortify }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>{ editor sort.format.names }</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {presort}</dt> |
| <dt>{ type$ "book" =</dt> |
| <dt>type$ "inbook" =</dt> |
| <dt>or</dt> |
| <dt>'author.editor.sort</dt> |
| <dt>{ type$ "proceedings" =</dt> |
| <dt>'editor.organization.sort</dt> |
| <dt>{ type$ "manual" =</dt> |
| <dt>'author.organization.sort</dt> |
| <dt>'author.sort</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt>if$</dt> |
| <dt>" "</dt> |
| <dt>*</dt> |
| <dt>year field.or.null sortify</dt> |
| <dt>*</dt> |
| <dt>" "</dt> |
| <dt>*</dt> |
| <dt>title field.or.null</dt> |
| <dt>sort.format.title</dt> |
| <dt>*</dt> |
| <dt>#1 entry.max$ substring$</dt> |
| <dt>'sort.key$ :=</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>ITERATE {presort}</dt> |
| <dt><br> |
| </dt> |
| <dt>SORT</dt> |
| <dt><br> |
| </dt> |
| <dt>STRINGS { longest.label }</dt> |
| <dt><br> |
| </dt> |
| <dt>INTEGERS { number.label longest.label.width }</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {initialize.longest.label}</dt> |
| <dt>{ "" 'longest.label :=</dt> |
| <dt>#1 'number.label :=</dt> |
| <dt>#0 'longest.label.width :=</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {longest.label.pass}</dt> |
| <dt>{ number.label int.to.str$ 'label :=</dt> |
| <dt>number.label #1 + 'number.label :=</dt> |
| <dt>label width$ longest.label.width ></dt> |
| <dt>{ label 'longest.label :=</dt> |
| <dt>label width$ 'longest.label.width :=</dt> |
| <dt>}</dt> |
| <dt>'skip$</dt> |
| <dt>if$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>EXECUTE {initialize.longest.label}</dt> |
| <dt><br> |
| </dt> |
| <dt>ITERATE {longest.label.pass}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {begin.bib}</dt> |
| <dt>{ preamble$ empty$</dt> |
| <dt>'skip$</dt> |
| <dt>{ preamble$ write$ newline$ }</dt> |
| <dt>if$</dt> |
| <dt>"\begin{thebibliography}{" longest.label * "}" * write$ newline$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>EXECUTE {begin.bib}</dt> |
| <dt><br> |
| </dt> |
| <dt>EXECUTE {init.state.consts}</dt> |
| <dt><br> |
| </dt> |
| <dt>ITERATE {call.type$}</dt> |
| <dt><br> |
| </dt> |
| <dt>FUNCTION {end.bib}</dt> |
| <dt>{ newline$</dt> |
| <dt>"\end{thebibliography}" write$ newline$</dt> |
| <dt>}</dt> |
| <dt><br> |
| </dt> |
| <dt>EXECUTE {end.bib}</dt> |
| </dl> |
| </body> |
| </html> |
| </html> |
| |