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