2 %% This is file `asa.bst',
3 %% generated with the docstrip utility.
5 %% The original source files were:
7 %% merlin.mbs (with options: `,ay,nat,nm-rev,ed-rev,nmdash,dt-beg,yr-par,note-yr,tit-qq,atit-u,thtit-a,vnum-x,volp-com,pp-last,add-pub,pre-pub,edpar,edby,edbyx,blk-com,pp,ed,abr,ednx,ord,em-it,nfss')
8 %% ----------------------------------------
9 %% *** BibTeX Style for ASA Journals ***
10 %% (Brett Presnell, 24 August 1998)
12 %-------------------------------------------------------------------
13 % The original source file contains the following version information:
14 % \ProvidesFile{merlin.mbs}[1998/02/25 3.85a (PWD)]
17 % This file may be used for non-profit purposes.
18 % It may not be distributed in exchange for money,
19 % other than distribution costs.
21 % The author provides it `as is' and does not guarantee it in any way.
23 % Copyright (C) 1994-98 Patrick W. Daly
24 %-------------------------------------------------------------------
25 % For use with BibTeX version 0.99a or later
26 %-------------------------------------------------------------------
27 % This bibliography style file is intended for texts in ENGLISH
28 % This is an author-year citation style bibliography. As such, it is
29 % non-standard LaTeX, and requires a special package file to function properly.
30 % Such a package is natbib.sty by Patrick W. Daly
31 % The form of the \bibitem entries is
32 % \bibitem[Jones et al.(1990)]{key}...
33 % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
34 % The essential feature is that the label (the part in brackets) consists
35 % of the author names, as they should appear in the citation, with the year
36 % in parentheses following. There must be no space before the opening
38 % With natbib v5.3, a full list of authors may also follow the year.
39 % In natbib.sty, it is possible to define the type of enclosures that is
40 % really wanted (brackets or parentheses), but in either case, there must
41 % be parentheses in the label.
42 % The \cite command functions as follows:
43 % \citet{key} ==>> Jones et al. (1990)
44 % \citet*{key} ==>> Jones, Baker, and Smith (1990)
45 % \citep{key} ==>> (Jones et al., 1990)
46 % \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
47 % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
48 % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
49 % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
50 % \citeauthor{key} ==>> Jones et al.
51 % \citeauthor*{key} ==>> Jones, Baker, and Smith
52 % \citeyear{key} ==>> 1990
53 %---------------------------------------------------------------------
80 { label extra.label sort.label short.list }
82 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
84 FUNCTION {init.state.consts}
93 FUNCTION {output.nonnull}
95 output.state mid.sentence =
97 { output.state after.block =
102 { output.state before.all =
104 { add.period$ " " * write$ }
108 mid.sentence 'output.state :=
121 FUNCTION {output.check}
124 { pop$ "empty " t * " in " * cite$ * warning$ }
136 { output.state before.all =
138 { after.block 'output.state := }
142 FUNCTION {new.sentence}
143 { output.state after.block =
145 { output.state before.all =
147 { after.sentence 'output.state := }
154 { " " * before.all 'output.state :=
157 FUNCTION {date.block}
183 #-1 #1 substring$ "." =
186 FUNCTION {new.block.checkb}
195 FUNCTION {field.or.null}
205 { "\textit{" swap$ * "}" * }
209 FUNCTION {capitalize}
210 { "u" change.case$ "t" change.case$ }
212 FUNCTION {space.word}
213 { " " swap$ * " " * }
215 % Here are the language-specific definitions for explicit words.
216 % Each function has a name bbl.xxx where xxx is the English word.
217 % The language selected here is ENGLISH
221 FUNCTION {bbl.editors}
224 FUNCTION {bbl.editor}
230 FUNCTION {bbl.edition}
233 FUNCTION {bbl.volume}
239 FUNCTION {bbl.number}
254 FUNCTION {bbl.chapter}
257 FUNCTION {bbl.techrep}
260 FUNCTION {bbl.mthesis}
261 { "Master's thesis" }
263 FUNCTION {bbl.phdthesis}
269 FUNCTION {bbl.second}
275 FUNCTION {bbl.fourth}
318 { duplicate$ "1" swap$ *
319 #-2 #1 substring$ "1" =
321 { duplicate$ #-1 #1 substring$
338 MACRO {acmcs} {"ACM Computing Surveys"}
340 MACRO {acta} {"Acta Informatica"}
342 MACRO {cacm} {"Communications of the ACM"}
344 MACRO {ibmjrd} {"IBM Journal of Research and Development"}
346 MACRO {ibmsj} {"IBM Systems Journal"}
348 MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
350 MACRO {ieeetc} {"IEEE Transactions on Computers"}
353 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
355 MACRO {ipl} {"Information Processing Letters"}
357 MACRO {jacm} {"Journal of the ACM"}
359 MACRO {jcss} {"Journal of Computer and System Sciences"}
361 MACRO {scp} {"Science of Computer Programming"}
363 MACRO {sicomp} {"SIAM Journal on Computing"}
365 MACRO {tocs} {"ACM Transactions on Computer Systems"}
367 MACRO {tods} {"ACM Transactions on Database Systems"}
369 MACRO {tog} {"ACM Transactions on Graphics"}
371 MACRO {toms} {"ACM Transactions on Mathematical Software"}
373 MACRO {toois} {"ACM Transactions on Office Information Systems"}
375 MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
377 MACRO {tcs} {"Theoretical Computer Science"}
379 INTEGERS { nameptr namesleft numnames }
381 FUNCTION {format.names}
384 s num.names$ 'numnames :=
385 numnames 'namesleft :=
388 "{vv~}{ll}{, jj}{, f.}" format.name$
399 s nameptr "{ll}" format.name$ duplicate$ "others" =
407 { bbl.and space.word * t * }
414 nameptr #1 + 'nameptr :=
415 namesleft #1 - 'namesleft :=
419 FUNCTION {format.names.ed}
421 FUNCTION {format.key}
423 { key field.or.null }
428 FUNCTION {format.authors}
431 { author format.names }
435 FUNCTION {format.editors}
438 { editor format.names
439 editor num.names$ #1 >
440 { " (" * bbl.editors * ")" * }
441 { " (" * bbl.editor * ")" * }
447 FUNCTION {format.in.editors}
450 { editor format.names.ed
455 FUNCTION {format.note}
458 { note #1 #1 substring$
461 { output.state mid.sentence =
468 note #2 global.max$ substring$ *
473 FUNCTION {format.title}
486 FUNCTION {end.quote.title}
489 { before.all 'output.state := }
493 FUNCTION {format.full.names}
496 s num.names$ 'numnames :=
497 numnames 'namesleft :=
500 "{vv~}{ll}" format.name$
511 s nameptr "{ll}" format.name$ duplicate$ "others" =
519 { bbl.and space.word * t * }
526 nameptr #1 + 'nameptr :=
527 namesleft #1 - 'namesleft :=
532 FUNCTION {author.editor.key.full}
536 { cite$ #1 #3 substring$ }
540 { editor format.full.names }
543 { author format.full.names }
547 FUNCTION {author.key.full}
550 { cite$ #1 #3 substring$ }
554 { author format.full.names }
558 FUNCTION {editor.key.full}
561 { cite$ #1 #3 substring$ }
565 { editor format.full.names }
569 FUNCTION {make.full.names}
573 'author.editor.key.full
574 { type$ "proceedings" =
582 FUNCTION {output.bibitem}
586 ")" make.full.names duplicate$ short.list =
595 before.all 'output.state :=
603 { t #1 #1 substring$ "-" =
604 { t #1 #2 substring$ "--" = not
606 t #2 global.max$ substring$ 't :=
608 { { t #1 #1 substring$ "-" = }
610 t #2 global.max$ substring$ 't :=
616 { t #1 #1 substring$ *
617 t #2 global.max$ substring$ 't :=
628 FUNCTION {format.date}
629 { year duplicate$ empty$
630 { "empty year in " cite$ * "; set to ????" * warning$
635 before.all 'output.state :=
639 FUNCTION {format.btitle}
643 FUNCTION {tie.or.space.connect}
644 { duplicate$ text.length$ #3 <
651 FUNCTION {either.or.check}
654 { "can't use both " swap$ * " fields in " * cite$ * warning$ }
658 FUNCTION {format.bvolume}
661 { bbl.volume volume tie.or.space.connect
664 { bbl.of space.word * series emphasize * }
666 "volume and number" number either.or.check
671 FUNCTION {format.number.series}
674 { series field.or.null }
675 { output.state mid.sentence =
677 { bbl.number capitalize }
679 number tie.or.space.connect
681 { "there's a number but no series in " cite$ * warning$ }
682 { bbl.in space.word * series * }
693 duplicate$ "0" chr.to.int$ < not
694 swap$ "9" chr.to.int$ > not and
697 FUNCTION {extract.num}
702 t #2 global.max$ substring$ 't :=
715 FUNCTION {convert.edition}
716 { edition extract.num "l" change.case$ 's :=
717 s "first" = s "1" = or
719 { s "second" = s "2" = or
721 { s "third" = s "3" = or
723 { s "fourth" = s "4" = or
725 { s "fifth" = s "5" = or
727 { s #1 #1 substring$ is.num
744 FUNCTION {format.edition}
747 { output.state mid.sentence =
748 { convert.edition "l" change.case$ " " * bbl.edition * }
749 { convert.edition "t" change.case$ " " * bbl.edition * }
755 INTEGERS { multiresult }
757 FUNCTION {multi.page.check}
766 swap$ duplicate$ "," =
769 { #1 'multiresult := }
770 { t #2 global.max$ substring$ 't := }
777 FUNCTION {format.pages}
780 { pages multi.page.check
781 { bbl.pages pages n.dashify tie.or.space.connect }
782 { bbl.page pages tie.or.space.connect }
788 FUNCTION {format.journal.pages}
792 { pop$ format.pages }
802 FUNCTION {format.vol.num.pages}
803 { volume field.or.null
806 FUNCTION {format.chapter.pages}
811 { type "l" change.case$ }
813 chapter tie.or.space.connect
818 FUNCTION {format.in.ed.booktitle}
822 { word.in booktitle emphasize * }
823 { word.in booktitle emphasize *
825 editor num.names$ #1 >
837 FUNCTION {format.thesis.type}
841 type "t" change.case$
846 FUNCTION {format.tr.number}
853 { number tie.or.space.connect }
857 FUNCTION {format.article.crossref}
860 " \cite{" * crossref * "}" *
863 FUNCTION {format.book.crossref}
865 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
868 { bbl.volume volume tie.or.space.connect
872 " \cite{" * crossref * "}" *
875 FUNCTION {format.incoll.inproc.crossref}
878 " \cite{" * crossref * "}" *
881 FUNCTION {format.publisher}
883 { "empty publisher in " cite$ * warning$ }
887 address empty$ publisher empty$ and
910 FUNCTION {name.or.dash}
924 format.authors "author" output.check
925 author format.key output
927 format.date "year" output.check
929 format.title "title" output.check
934 "journal" output.check
935 format.vol.num.pages output
937 { format.article.crossref output.nonnull
949 { format.editors "author and editor" output.check
950 editor format.key output
953 { format.authors output.nonnull
956 { "author and editor" editor either.or.check }
961 format.date "year" output.check
963 format.btitle "title" output.check
965 { format.bvolume output
966 format.number.series output
970 format.book.crossref output.nonnull
973 format.edition output
980 format.authors output
981 author format.key output
983 format.date "year" output.check
985 format.title "title" output.check
996 { format.editors "author and editor" output.check
997 editor format.key output
1000 { format.authors output.nonnull
1003 { "author and editor" editor either.or.check }
1008 format.date "year" output.check
1010 format.btitle "title" output.check
1014 format.bvolume output
1015 format.chapter.pages "chapter and pages" output.check
1016 format.number.series output
1019 format.chapter.pages "chapter and pages" output.check
1020 format.book.crossref output.nonnull
1023 format.edition output
1024 format.pages "pages" output.check
1029 FUNCTION {incollection}
1031 format.authors "author" output.check
1032 author format.key output
1034 format.date "year" output.check
1036 format.title "title" output.check
1039 { format.in.ed.booktitle "booktitle" output.check
1041 format.bvolume output
1042 format.number.series output
1043 format.chapter.pages output
1044 format.edition output
1046 { format.incoll.inproc.crossref output.nonnull
1047 format.chapter.pages output
1050 format.pages "pages" output.check
1055 FUNCTION {inproceedings}
1057 format.authors "author" output.check
1058 author format.key output
1060 format.date "year" output.check
1062 format.title "title" output.check
1065 { format.in.ed.booktitle "booktitle" output.check
1067 { organization output
1070 { organization output
1074 format.bvolume output
1075 format.number.series output
1078 { format.incoll.inproc.crossref output.nonnull
1086 FUNCTION {conference} { inproceedings }
1090 format.authors output
1091 author format.key output
1093 format.date "year" output.check
1095 format.btitle "title" output.check
1098 format.edition output
1103 FUNCTION {mastersthesis}
1105 format.authors "author" output.check
1106 author format.key output
1108 format.date "year" output.check
1110 format.title "title" output.check
1112 bbl.mthesis format.thesis.type output.nonnull
1113 school "school" output.check
1121 format.authors output
1122 author format.key output
1124 format.date "year" output.check
1133 FUNCTION {phdthesis}
1135 format.authors "author" output.check
1136 author format.key output
1138 format.date "year" output.check
1140 format.title "title" output.check
1142 bbl.phdthesis format.thesis.type output.nonnull
1143 school "school" output.check
1149 FUNCTION {proceedings}
1151 format.editors output
1152 editor format.key output
1154 format.date "year" output.check
1156 format.btitle "title" output.check
1157 format.bvolume output
1158 format.number.series output
1166 FUNCTION {techreport}
1168 format.authors "author" output.check
1169 author format.key output
1171 format.date "year" output.check
1173 format.title "title" output.check
1175 format.tr.number output.nonnull
1176 institution "institution" output.check
1182 FUNCTION {unpublished}
1184 format.authors "author" output.check
1185 author format.key output
1187 format.date "year" output.check
1189 format.title "title" output.check
1191 format.note "note" output.check
1195 FUNCTION {default.type} { misc }
1206 FUNCTION {chop.word}
1209 s #1 len substring$ =
1210 { s len #1 + global.max$ substring$ }
1215 FUNCTION {format.lab.names}
1217 s #1 "{vv~}{ll}" format.name$
1218 s num.names$ duplicate$
1225 { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
1229 { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
1238 FUNCTION {author.key.label}
1241 { cite$ #1 #3 substring$ }
1245 { author format.lab.names }
1249 FUNCTION {author.editor.key.label}
1253 { cite$ #1 #3 substring$ }
1257 { editor format.lab.names }
1260 { author format.lab.names }
1264 FUNCTION {editor.key.label}
1267 { cite$ #1 #3 substring$ }
1271 { editor format.lab.names }
1275 FUNCTION {calc.short.authors}
1279 'author.editor.key.label
1280 { type$ "proceedings" =
1289 FUNCTION {calc.label}
1290 { calc.short.authors
1294 year duplicate$ empty$
1302 FUNCTION {sort.format.names}
1306 s num.names$ 'numnames :=
1307 numnames 'namesleft :=
1310 "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}"
1315 namesleft #1 = t "others" = and
1322 nameptr #1 + 'nameptr :=
1323 namesleft #1 - 'namesleft :=
1328 FUNCTION {sort.format.title}
1332 "The " #4 t chop.word
1336 #1 global.max$ substring$
1339 FUNCTION {author.sort}
1342 { "to sort, need author or key in " cite$ * warning$
1348 { author sort.format.names }
1352 FUNCTION {author.editor.sort}
1356 { "to sort, need author, editor, or key in " cite$ * warning$
1362 { editor sort.format.names }
1365 { author sort.format.names }
1369 FUNCTION {editor.sort}
1372 { "to sort, need editor or key in " cite$ * warning$
1378 { editor sort.format.names }
1391 { type$ "proceedings" =
1397 #1 entry.max$ substring$
1406 #1 entry.max$ substring$
1414 STRINGS { last.label next.extra }
1416 INTEGERS { last.extra.num number.label }
1418 FUNCTION {initialize.extra.label.stuff}
1419 { #0 int.to.chr$ 'last.label :=
1421 #0 'last.extra.num :=
1425 FUNCTION {forward.pass}
1426 { last.label label =
1427 { last.extra.num #1 + 'last.extra.num :=
1428 last.extra.num int.to.chr$ 'extra.label :=
1430 { "a" chr.to.int$ 'last.extra.num :=
1432 label 'last.label :=
1435 number.label #1 + 'number.label :=
1438 FUNCTION {reverse.pass}
1440 { "a" 'extra.label := }
1443 extra.label 'next.extra :=
1447 { "{\natexlab{" swap$ * "}}" * }
1450 label extra.label * 'label :=
1453 EXECUTE {initialize.extra.label.stuff}
1455 ITERATE {forward.pass}
1457 REVERSE {reverse.pass}
1459 FUNCTION {bib.sort.order}
1463 year field.or.null sortify
1470 #1 entry.max$ substring$
1474 ITERATE {bib.sort.order}
1478 FUNCTION {begin.bib}
1481 { preamble$ write$ newline$ }
1483 "\begin{thebibliography}{" number.label int.to.str$ * "}" *
1485 "\newcommand{\enquote}[1]{``#1''}"
1487 "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi"
1493 EXECUTE {init.state.consts}
1495 ITERATE {call.type$}
1499 "\end{thebibliography}" write$ newline$
1503 %% End of customized bst file
1505 %% End of file `asa.bst'.