2 %% This is file `pattern1.bst',
\r
3 %% generated with the docstrip utility.
\r
5 %% The original source files were:
\r
7 %% merlin.mbs (with options: `ay,nat,nm-rev,jnrlst,keyxyr,dt-beg,yr-par,yrpp-xsp,note-yr,tit-qq,vol-bf,volp-com,jwdpg,pp-last,num-xser,numser,ser-vol,ser-ed,pub-par,pre-edn,isbn,doi,edpar,blk-com,pp,ed,abr,ednx,ord,jabr,and-xcom,etal-it,url,url-nt,nfss,')
\r
8 %% ----------------------------------------
\r
9 %% *** ws books n journals ***
\r
11 %% Copyright 1994-2003 Patrick W Daly
\r
12 % ===============================================================
\r
14 % This bibliographic style (bst) file has been generated from one or
\r
15 % more master bibliographic style (mbs) files, listed above.
\r
17 % This generated file can be redistributed and/or modified under the terms
\r
18 % of the LaTeX Project Public License Distributed from CTAN
\r
19 % archives in directory macros/latex/base/lppl.txt; either
\r
20 % version 1 of the License, or any later version.
\r
21 % ===============================================================
\r
22 % Name and version information of the main mbs file:
\r
23 % \ProvidesFile{merlin.mbs}[2003/09/8 4.12 (PWD, AO, DPC)]
\r
24 % For use with BibTeX version 0.99a or later
\r
25 %-------------------------------------------------------------------
\r
26 % This bibliography style file is intended for texts in ENGLISH
\r
27 % This is an author-year citation style bibliography. As such, it is
\r
28 % non-standard LaTeX, and requires a special package file to function properly.
\r
29 % Such a package is wsnatbib.sty
\r
30 % The form of the \bibitem entries is
\r
31 % \bibitem[Jones et al.(1990)]{key}...
\r
32 % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
\r
33 % The essential feature is that the label (the part in brackets) consists
\r
34 % of the author names, as they should appear in the citation, with the year
\r
35 % in parentheses following. There must be no space before the opening
\r
37 % With natbib v5.3, a full list of authors may also follow the year.
\r
38 % In natbib.sty, it is possible to define the type of enclosures that is
\r
39 % really wanted (brackets or parentheses), but in either case, there must
\r
40 % be parentheses in the label.
\r
41 % The \cite command functions as follows:
\r
42 % \citet{key} ==>> Jones et al. (1990)
\r
43 % \citet*{key} ==>> Jones, Baker, and Smith (1990)
\r
44 % \citep{key} ==>> (Jones et al., 1990)
\r
45 % \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
\r
46 % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
\r
47 % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
\r
48 % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
\r
49 % \citeauthor{key} ==>> Jones et al.
\r
50 % \citeauthor*{key} ==>> Jones, Baker, and Smith
\r
51 % \citeyear{key} ==>> 1990
\r
52 %---------------------------------------------------------------------
\r
83 { label extra.label sort.label short.list }
\r
84 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
\r
85 FUNCTION {init.state.consts}
\r
88 #2 'after.sentence :=
\r
91 FUNCTION {disp.msg.screen} { #1 }
\r
96 "World Scientific's Bibliography Style File for IJBC"
\r
98 "version 1.0 (2005/03/26), Sorted"
\r
100 "for support: Rajesh, rajesh@wspc.com.sg"
\r
107 FUNCTION {output.nonnull}
\r
109 output.state mid.sentence =
\r
111 { output.state after.block =
\r
112 { add.period$ write$
\r
114 "\newblock " write$
\r
116 { output.state before.all =
\r
118 { add.period$ " " * write$ }
\r
122 mid.sentence 'output.state :=
\r
128 { duplicate$ empty$
\r
133 FUNCTION {output.check}
\r
136 { pop$ "empty " t * " in " * cite$ * warning$ }
\r
140 FUNCTION {fin.entry}
\r
145 FUNCTION {new.block}
\r
146 { output.state before.all =
\r
148 { after.block 'output.state := }
\r
151 FUNCTION {new.sentence}
\r
152 { output.state after.block =
\r
154 { output.state before.all =
\r
156 { after.sentence 'output.state := }
\r
161 FUNCTION {add.blank}
\r
162 { " " * before.all 'output.state :=
\r
164 FUNCTION {no.blank.or.punct}
\r
165 { "\hspace{0pt}" * before.all 'output.state :=
\r
167 FUNCTION {date.block}
\r
186 FUNCTION {non.stop}
\r
189 #-1 #1 substring$ "." =
\r
191 FUNCTION {new.block.checkb}
\r
199 FUNCTION {field.or.null}
\r
200 { duplicate$ empty$
\r
205 FUNCTION {emphasize}
\r
206 { duplicate$ empty$
\r
208 { "\emph{" swap$ * "}" * }
\r
212 { duplicate$ empty$
\r
214 { "\textbf{" swap$ * "}" * }
\r
217 FUNCTION {tie.or.space.prefix}
\r
218 { duplicate$ text.length$ #3 <
\r
224 FUNCTION {tie.r.space.prefix}
\r
225 { duplicate$ text.length$ #3 <
\r
231 FUNCTION {capitalize}
\r
232 { "u" change.case$ "t" change.case$ }
\r
234 FUNCTION {space.word}
\r
235 { " " swap$ * " " * }
\r
236 % Here are the language-specific definitions for explicit words.
\r
237 % Each function has a name bbl.xxx where xxx is the English word.
\r
238 % The language selected here is ENGLISH
\r
242 FUNCTION {bbl.etal}
\r
245 FUNCTION {bbl.editors}
\r
248 FUNCTION {bbl.editor}
\r
251 FUNCTION {bbl.edby}
\r
254 FUNCTION {bbl.edition}
\r
257 FUNCTION {bbl.volume}
\r
263 FUNCTION {bbl.number}
\r
272 FUNCTION {bbl.pages}
\r
275 FUNCTION {bbl.page}
\r
278 FUNCTION {bbl.jpages}
\r
281 FUNCTION {bbl.jpage}
\r
284 FUNCTION {bbl.chapter}
\r
287 FUNCTION {bbl.techrep}
\r
290 FUNCTION {bbl.mthesis}
\r
291 { "Master's thesis" }
\r
293 FUNCTION {bbl.phdthesis}
\r
296 FUNCTION {bbl.first}
\r
299 FUNCTION {bbl.second}
\r
302 FUNCTION {bbl.third}
\r
305 FUNCTION {bbl.fourth}
\r
308 FUNCTION {bbl.fifth}
\r
323 MACRO {jan} {"Jan."}
\r
325 MACRO {feb} {"Feb."}
\r
327 MACRO {mar} {"Mar."}
\r
329 MACRO {apr} {"Apr."}
\r
331 MACRO {may} {"May"}
\r
333 MACRO {jun} {"Jun."}
\r
335 MACRO {jul} {"Jul."}
\r
337 MACRO {aug} {"Aug."}
\r
339 MACRO {sep} {"Sep."}
\r
341 MACRO {oct} {"Oct."}
\r
343 MACRO {nov} {"Nov."}
\r
345 MACRO {dec} {"Dec."}
\r
348 { duplicate$ "1" swap$ *
\r
349 #-2 #1 substring$ "1" =
\r
351 { duplicate$ #-1 #1 substring$
\r
368 MACRO {acmcs} {"ACM Comput. Surv."}
\r
370 MACRO {acta} {"Acta Inf."}
\r
372 MACRO {cacm} {"Commun. ACM"}
\r
374 MACRO {ibmjrd} {"IBM J. Res. Dev."}
\r
376 MACRO {ibmsj} {"IBM Syst.~J."}
\r
378 MACRO {ieeese} {"IEEE Trans. Software Eng."}
\r
380 MACRO {ieeetc} {"IEEE Trans. Comput."}
\r
383 {"IEEE Trans. Comput. Aid. Des."}
\r
385 MACRO {ipl} {"Inf. Process. Lett."}
\r
387 MACRO {jacm} {"J.~ACM"}
\r
389 MACRO {jcss} {"J.~Comput. Syst. Sci."}
\r
391 MACRO {scp} {"Sci. Comput. Program."}
\r
393 MACRO {sicomp} {"SIAM J. Comput."}
\r
395 MACRO {tocs} {"ACM Trans. Comput. Syst."}
\r
397 MACRO {tods} {"ACM Trans. Database Syst."}
\r
399 MACRO {tog} {"ACM Trans. Graphic."}
\r
401 MACRO {toms} {"ACM Trans. Math. Software"}
\r
403 MACRO {toois} {"ACM Trans. Office Inf. Syst."}
\r
405 MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
\r
407 MACRO {tcs} {"Theor. Comput. Sci."}
\r
409 FUNCTION {bibinfo.check}
\r
411 duplicate$ missing$
\r
416 { duplicate$ empty$
\r
427 FUNCTION {bibinfo.warn}
\r
429 duplicate$ missing$
\r
431 swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
\r
434 { duplicate$ empty$
\r
436 swap$ "empty " swap$ * " in " * cite$ * warning$
\r
446 INTEGERS { nameptr namesleft numnames }
\r
448 FUNCTION {format.names}
\r
450 duplicate$ empty$ 'skip$ {
\r
454 s num.names$ 'numnames :=
\r
455 numnames 'namesleft :=
\r
458 "{vv~}{ll}{, f.}{, jj}"
\r
460 bibinfo bibinfo.check
\r
467 s nameptr "{ll}" format.name$ duplicate$ "others" =
\r
473 " " * bbl.etal emphasize *
\r
485 nameptr #1 + 'nameptr :=
\r
486 namesleft #1 - 'namesleft :=
\r
491 FUNCTION {format.names.ed}
\r
493 duplicate$ empty$ 'skip$ {
\r
497 s num.names$ 'numnames :=
\r
498 numnames 'namesleft :=
\r
501 "{vv~}{ll}{, f.}{, jj}"
\r
503 bibinfo bibinfo.check
\r
510 s nameptr "{ll}" format.name$ duplicate$ "others" =
\r
516 " " * bbl.etal emphasize *
\r
528 nameptr #1 + 'nameptr :=
\r
529 namesleft #1 - 'namesleft :=
\r
534 FUNCTION {format.key}
\r
536 { key field.or.null }
\r
541 FUNCTION {format.authors}
\r
542 { author "author" format.names
\r
544 FUNCTION {get.bbl.editor}
\r
545 { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
\r
547 FUNCTION {format.editors}
\r
548 { editor "editor" format.names duplicate$ empty$ 'skip$
\r
557 FUNCTION {format.isbn}
\r
558 { isbn "isbn" bibinfo.check
\r
559 duplicate$ empty$ 'skip$
\r
566 FUNCTION {format.doi}
\r
567 { doi "doi" bibinfo.check
\r
568 duplicate$ empty$ 'skip$
\r
570 "\doi{" swap$ * "}" *
\r
574 FUNCTION {format.note}
\r
578 { "\urlprefix\url{" url * "}" * output }
\r
582 { note #1 #1 substring$
\r
585 { output.state mid.sentence =
\r
592 note #2 global.max$ substring$ * "note" bibinfo.check
\r
597 FUNCTION {format.title}
\r
599 duplicate$ empty$ 'skip$
\r
600 { "t" change.case$ }
\r
602 "title" bibinfo.check
\r
603 duplicate$ empty$ 'skip$
\r
605 "\enquote{" swap$ *
\r
613 FUNCTION {end.quote.title}
\r
616 { before.all 'output.state := }
\r
619 FUNCTION {format.full.names}
\r
623 s num.names$ 'numnames :=
\r
624 numnames 'namesleft :=
\r
627 "{vv~}{ll}" format.name$
\r
634 s nameptr "{ll}" format.name$ duplicate$ "others" =
\r
640 " " * bbl.etal emphasize *
\r
652 nameptr #1 + 'nameptr :=
\r
653 namesleft #1 - 'namesleft :=
\r
658 FUNCTION {author.editor.key.full}
\r
662 { cite$ #1 #3 substring$ }
\r
666 { editor format.full.names }
\r
669 { author format.full.names }
\r
673 FUNCTION {author.key.full}
\r
676 { cite$ #1 #3 substring$ }
\r
680 { author format.full.names }
\r
684 FUNCTION {editor.key.full}
\r
687 { cite$ #1 #3 substring$ }
\r
691 { editor format.full.names }
\r
695 FUNCTION {make.full.names}
\r
699 'author.editor.key.full
\r
700 { type$ "proceedings" =
\r
708 FUNCTION {output.bibitem}
\r
710 "\bibitem[{" write$
\r
712 ")" make.full.names duplicate$ short.list =
\r
721 before.all 'output.state :=
\r
724 FUNCTION {n.dashify}
\r
729 { t #1 #1 substring$ "-" =
\r
730 { t #1 #2 substring$ "--" = not
\r
732 t #2 global.max$ substring$ 't :=
\r
734 { { t #1 #1 substring$ "-" = }
\r
736 t #2 global.max$ substring$ 't :=
\r
742 { t #1 #1 substring$ *
\r
743 t #2 global.max$ substring$ 't :=
\r
754 FUNCTION {format.date}
\r
755 { year "year" bibinfo.check duplicate$ empty$
\r
757 "empty year in " cite$ * "; set to ????" * warning$
\r
763 before.all 'output.state :=
\r
766 FUNCTION {format.btitle}
\r
767 { title "title" bibinfo.check
\r
768 duplicate$ empty$ 'skip$
\r
774 FUNCTION {either.or.check}
\r
777 { "can't use both " swap$ * " fields in " * cite$ * warning$ }
\r
780 FUNCTION {format.bvolume}
\r
785 {", " * series * "Vol.~" volume *}
\r
790 FUNCTION {format.number.series}
\r
793 { series field.or.null }
\r
795 { number "number" bibinfo.check }
\r
796 { output.state mid.sentence =
\r
798 { bbl.number capitalize }
\r
800 number tie.or.space.prefix "number" bibinfo.check * *
\r
801 bbl.in space.word *
\r
802 series "series" bibinfo.check *
\r
813 duplicate$ "0" chr.to.int$ < not
\r
814 swap$ "9" chr.to.int$ > not and
\r
817 FUNCTION {extract.num}
\r
821 { t #1 #1 substring$
\r
822 t #2 global.max$ substring$ 't :=
\r
824 { s swap$ * 's := }
\r
835 FUNCTION {convert.edition}
\r
836 { extract.num "l" change.case$ 's :=
\r
837 s "first" = s "1" = or
\r
838 { bbl.first 't := }
\r
839 { s "second" = s "2" = or
\r
840 { bbl.second 't := }
\r
841 { s "third" = s "3" = or
\r
842 { bbl.third 't := }
\r
843 { s "fourth" = s "4" = or
\r
844 { bbl.fourth 't := }
\r
845 { s "fifth" = s "5" = or
\r
846 { bbl.fifth 't := }
\r
847 { s #1 #1 substring$ is.num
\r
848 { s eng.ord 't := }
\r
864 FUNCTION {format.edition}
\r
865 { edition duplicate$ empty$ 'skip$
\r
868 output.state mid.sentence =
\r
872 "edition" bibinfo.check
\r
873 " " * bbl.edition *
\r
877 INTEGERS { multiresult }
\r
878 FUNCTION {multi.page.check}
\r
885 { t #1 #1 substring$
\r
887 swap$ duplicate$ "," =
\r
890 { #1 'multiresult := }
\r
891 { t #2 global.max$ substring$ 't := }
\r
897 FUNCTION {format.pages}
\r
898 { pages duplicate$ empty$ 'skip$
\r
899 { duplicate$ multi.page.check
\r
908 tie.or.space.prefix
\r
909 "pages" bibinfo.check
\r
914 FUNCTION {format.journal.pages}
\r
915 { pages duplicate$ empty$ 'pop$
\r
916 { swap$ duplicate$ empty$
\r
917 { pop$ pop$ format.pages }
\r
922 pages multi.page.check
\r
926 swap$ tie.or.space.prefix
\r
927 "pages" bibinfo.check
\r
935 FUNCTION {format.journal.eid}
\r
936 { eid "eid" bibinfo.check
\r
937 duplicate$ empty$ 'pop$
\r
938 { swap$ duplicate$ empty$ 'skip$
\r
947 FUNCTION {format.vol.num.pages}
\r
948 { volume field.or.null
\r
949 duplicate$ empty$ 'skip$
\r
951 "volume" bibinfo.check
\r
957 FUNCTION {format.chapter.pages}
\r
962 { type "l" change.case$
\r
963 "type" bibinfo.check
\r
966 "``" chapter tie.r.space.prefix * ",''" *
\r
967 "chapter" bibinfo.check
\r
973 FUNCTION {format.booktitle}
\r
975 booktitle "booktitle" bibinfo.check
\r
978 FUNCTION {format.in.ed.booktitle}
\r
979 { format.booktitle duplicate$ empty$ 'skip$
\r
981 editor "editor" format.names.ed duplicate$ empty$ 'pop$
\r
994 FUNCTION {format.thesis.type}
\r
995 { type duplicate$ empty$
\r
998 "t" change.case$ "type" bibinfo.check
\r
1002 FUNCTION {format.tr.number}
\r
1003 { number "number" bibinfo.check
\r
1004 type duplicate$ empty$
\r
1005 { pop$ bbl.techrep }
\r
1008 "type" bibinfo.check
\r
1009 swap$ duplicate$ empty$
\r
1010 { pop$ "t" change.case$ }
\r
1011 { tie.or.space.prefix * * }
\r
1014 FUNCTION {format.article.crossref}
\r
1017 " \cite{" * crossref * "}" *
\r
1019 FUNCTION {format.book.crossref}
\r
1020 { volume duplicate$ empty$
\r
1021 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
\r
1025 swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
\r
1028 " \cite{" * crossref * "}" *
\r
1030 FUNCTION {format.incoll.inproc.crossref}
\r
1033 " \cite{" * crossref * "}" *
\r
1035 FUNCTION {format.org.or.pub}
\r
1038 address empty$ t empty$ and
\r
1043 { address "address" bibinfo.check *
\r
1048 { ", " * address "address" bibinfo.check * }
\r
1056 FUNCTION {format.publisher.address}
\r
1057 { publisher "publisher" bibinfo.warn format.org.or.pub
\r
1060 FUNCTION {format.organization.address}
\r
1061 { organization "organization" bibinfo.check format.org.or.pub
\r
1064 FUNCTION {article}
\r
1066 format.authors "author" output.check
\r
1067 author format.key output
\r
1068 format.date "year" output.check
\r
1072 format.title "title" output.check
\r
1077 "journal" bibinfo.check
\r
1079 "journal" output.check
\r
1081 format.vol.num.pages output
\r
1083 { format.article.crossref output.nonnull
\r
1087 { format.journal.pages }
\r
1088 { format.journal.eid }
\r
1091 format.note output
\r
1097 { format.editors "author and editor" output.check
\r
1098 editor format.key output
\r
1100 { format.authors output.nonnull
\r
1102 { "author and editor" editor either.or.check }
\r
1107 format.date "year" output.check
\r
1111 format.btitle "title" output.check
\r
1113 { format.bvolume output
\r
1114 format.edition output
\r
1115 format.number.series output
\r
1116 format.publisher.address output
\r
1119 format.book.crossref output.nonnull
\r
1122 format.isbn output
\r
1124 format.note output
\r
1127 FUNCTION {booklet}
\r
1129 format.authors output
\r
1130 author format.key output
\r
1131 format.date "year" output.check
\r
1135 format.title "title" output.check
\r
1137 howpublished "howpublished" bibinfo.check output
\r
1138 address "address" bibinfo.check output
\r
1139 format.isbn output
\r
1141 format.note output
\r
1147 { format.editors "author and editor" output.check
\r
1148 editor format.key output
\r
1150 { format.authors output.nonnull
\r
1153 format.date "year" output.check
\r
1157 format.chapter.pages "chapter and pages" output.check
\r
1159 format.btitle "title" output.check
\r
1162 format.edition output
\r
1163 format.number.series output
\r
1164 format.bvolume output
\r
1165 format.publisher.address output
\r
1168 format.chapter.pages "chapter and pages" output.check
\r
1170 format.book.crossref output.nonnull
\r
1174 { format.isbn output }
\r
1177 format.pages "pages" output.check
\r
1179 format.note output
\r
1183 FUNCTION {incollection}
\r
1185 format.authors "author" output.check
\r
1186 author format.key output
\r
1187 format.date "year" output.check
\r
1191 format.title "title" output.check
\r
1194 { format.in.ed.booktitle "booktitle" output.check
\r
1195 format.edition output
\r
1196 format.chapter.pages output
\r
1197 format.number.series output
\r
1198 format.publisher.address output
\r
1199 format.isbn output
\r
1201 { format.incoll.inproc.crossref output.nonnull
\r
1202 format.chapter.pages output
\r
1205 format.pages "pages" output.check
\r
1207 format.note output
\r
1210 FUNCTION {inproceedings}
\r
1212 format.authors "author" output.check
\r
1213 author format.key output
\r
1214 format.date "year" output.check
\r
1218 format.title "title" output.check
\r
1221 { format.in.ed.booktitle "booktitle" output.check
\r
1222 format.number.series output
\r
1224 { format.organization.address output }
\r
1225 { organization "organization" bibinfo.check output
\r
1226 format.publisher.address output
\r
1229 format.isbn output
\r
1231 { format.incoll.inproc.crossref output.nonnull
\r
1234 format.pages "pages" output.check
\r
1236 format.note output
\r
1239 FUNCTION {conference} { inproceedings }
\r
1242 format.authors output
\r
1243 author format.key output
\r
1244 format.date "year" output.check
\r
1248 format.btitle "title" output.check
\r
1249 organization "organization" bibinfo.check output
\r
1250 address "address" bibinfo.check output
\r
1251 format.edition output
\r
1253 format.note output
\r
1257 FUNCTION {mastersthesis}
\r
1259 format.authors "author" output.check
\r
1260 author format.key output
\r
1261 format.date "year" output.check
\r
1265 format.title "title" output.check
\r
1267 bbl.mthesis format.thesis.type output.nonnull
\r
1268 school "school" bibinfo.warn output
\r
1269 address "address" bibinfo.check output
\r
1271 format.note output
\r
1277 format.authors output
\r
1278 author format.key output
\r
1279 format.date "year" output.check
\r
1283 format.title output
\r
1285 howpublished "howpublished" bibinfo.check output
\r
1287 format.note output
\r
1290 FUNCTION {phdthesis}
\r
1292 format.authors "author" output.check
\r
1293 author format.key output
\r
1294 format.date "year" output.check
\r
1298 format.title "title" output.check
\r
1300 bbl.phdthesis format.thesis.type output.nonnull
\r
1301 school "school" bibinfo.warn output
\r
1302 address "address" bibinfo.check output
\r
1304 format.note output
\r
1308 FUNCTION {proceedings}
\r
1310 format.editors output
\r
1311 editor format.key output
\r
1312 format.date "year" output.check
\r
1316 format.btitle "title" output.check
\r
1317 format.bvolume output
\r
1318 format.number.series output
\r
1320 { format.organization.address output }
\r
1321 { organization "organization" bibinfo.check output
\r
1322 format.publisher.address output
\r
1325 format.isbn output
\r
1327 format.note output
\r
1331 FUNCTION {techreport}
\r
1333 format.authors "author" output.check
\r
1334 author format.key output
\r
1335 format.date "year" output.check
\r
1340 "title" output.check
\r
1342 format.tr.number output.nonnull
\r
1343 institution "institution" bibinfo.warn output
\r
1344 address "address" bibinfo.check output
\r
1346 format.note output
\r
1350 FUNCTION {unpublished}
\r
1352 format.authors "author" output.check
\r
1353 author format.key output
\r
1354 format.date "year" output.check
\r
1358 format.title "title" output.check
\r
1361 format.note "note" output.check
\r
1365 FUNCTION {default.type} { misc }
\r
1367 EXECUTE {type.msg}
\r
1368 FUNCTION {sortify}
\r
1373 FUNCTION {chop.word}
\r
1376 s #1 len substring$ =
\r
1377 { s len #1 + global.max$ substring$ }
\r
1381 FUNCTION {format.lab.names}
\r
1384 s #1 "{vv~}{ll}" format.name$
\r
1385 s num.names$ duplicate$
\r
1388 " " * bbl.etal emphasize *
\r
1392 { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
\r
1394 " " * bbl.etal emphasize *
\r
1396 { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
\r
1405 FUNCTION {author.key.label}
\r
1408 { cite$ #1 #3 substring$ }
\r
1412 { author format.lab.names }
\r
1416 FUNCTION {author.editor.key.label}
\r
1420 { cite$ #1 #3 substring$ }
\r
1424 { editor format.lab.names }
\r
1427 { author format.lab.names }
\r
1431 FUNCTION {editor.key.label}
\r
1434 { cite$ #1 #3 substring$ }
\r
1438 { editor format.lab.names }
\r
1442 FUNCTION {calc.short.authors}
\r
1446 'author.editor.key.label
\r
1447 { type$ "proceedings" =
\r
1456 FUNCTION {calc.label}
\r
1457 { calc.short.authors
\r
1461 year duplicate$ empty$
\r
1462 short.list key field.or.null = or
\r
1470 FUNCTION {sort.format.names}
\r
1474 s num.names$ 'numnames :=
\r
1475 numnames 'namesleft :=
\r
1476 { namesleft #0 > }
\r
1478 "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}"
\r
1479 format.name$ 't :=
\r
1483 namesleft #1 = t "others" = and
\r
1490 nameptr #1 + 'nameptr :=
\r
1491 namesleft #1 - 'namesleft :=
\r
1496 FUNCTION {sort.format.title}
\r
1500 "The " #4 t chop.word
\r
1504 #1 global.max$ substring$
\r
1506 FUNCTION {author.sort}
\r
1509 { "to sort, need author or key in " cite$ * warning$
\r
1515 { author sort.format.names }
\r
1518 FUNCTION {author.editor.sort}
\r
1522 { "to sort, need author, editor, or key in " cite$ * warning$
\r
1528 { editor sort.format.names }
\r
1531 { author sort.format.names }
\r
1534 FUNCTION {editor.sort}
\r
1537 { "to sort, need editor or key in " cite$ * warning$
\r
1543 { editor sort.format.names }
\r
1546 FUNCTION {presort}
\r
1554 'author.editor.sort
\r
1555 { type$ "proceedings" =
\r
1561 #1 entry.max$ substring$
\r
1567 title field.or.null
\r
1570 #1 entry.max$ substring$
\r
1576 STRINGS { last.label next.extra }
\r
1577 INTEGERS { last.extra.num number.label }
\r
1578 FUNCTION {initialize.extra.label.stuff}
\r
1579 { #0 int.to.chr$ 'last.label :=
\r
1581 #0 'last.extra.num :=
\r
1582 #0 'number.label :=
\r
1584 FUNCTION {forward.pass}
\r
1585 { last.label label =
\r
1586 { last.extra.num #1 + 'last.extra.num :=
\r
1587 last.extra.num int.to.chr$ 'extra.label :=
\r
1589 { "a" chr.to.int$ 'last.extra.num :=
\r
1590 "" 'extra.label :=
\r
1591 label 'last.label :=
\r
1594 number.label #1 + 'number.label :=
\r
1596 FUNCTION {reverse.pass}
\r
1597 { next.extra "b" =
\r
1598 { "a" 'extra.label := }
\r
1601 extra.label 'next.extra :=
\r
1605 { "{\natexlab{" swap$ * "}}" * }
\r
1608 label extra.label * 'label :=
\r
1610 EXECUTE {initialize.extra.label.stuff}
\r
1611 ITERATE {forward.pass}
\r
1612 REVERSE {reverse.pass}
\r
1613 FUNCTION {bib.sort.order}
\r
1617 year field.or.null sortify
\r
1621 title field.or.null
\r
1624 #1 entry.max$ substring$
\r
1627 ITERATE {bib.sort.order}
\r
1629 FUNCTION {begin.bib}
\r
1630 { preamble$ empty$
\r
1632 { preamble$ write$ newline$ }
\r
1634 "\begin{thebibliography}{" number.label int.to.str$ * "}" *
\r
1636 "\newcommand{\enquote}[1]{``#1''}"
\r
1638 "\providecommand{\natexlab}[1]{#1}"
\r
1640 "\providecommand{\url}[1]{\texttt{#1}}"
\r
1642 "\providecommand{\urlprefix}{URL }"
\r
1644 "\expandafter\ifx\csname urlstyle\endcsname\relax"
\r
1646 " \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
\r
1648 " \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
\r
1651 EXECUTE {begin.bib}
\r
1652 EXECUTE {init.state.consts}
\r
1653 ITERATE {call.type$}
\r
1654 FUNCTION {end.bib}
\r
1656 "\end{thebibliography}" write$ newline$
\r
1659 %% End of customized bst file
\r
1661 %% End of file `ws-ijbc.bst'.
\r