1 %% This is file `wileyj.bst',
\r
2 %% Created by Sunrise Setting Ltd, Torquay, UK, www.sunrise-setting.co.uk
\r
3 %% Version 1.00, 21 September 2007
\r
5 %% The original source files were:
\r
7 %% merlin.mbs (with options: `seq-no,nm-rvx,ed-rev,jnrlst,nmlm,x10,x0,m10,m0,dt-jnl,yr-com,yrp-semi,thtit-a,trnum-it,vol-bf,pgsep-s,pp-last,num-xser,numser,ser-vol,ser-ed,jnm-x,bkpg-x,pub-date,pub-xpar,pre-edn,doi,edpar,edby,edbyx,blk-tit,blknt,in-x,ppx,ed,abr,mth-bare,xedn,varand,and-xcom,xand,etal-xc,etal-it,url,url-nt,nfss,')
\r
8 %% ----------------------------------------
\r
9 %% *** wileyj.bst ***
\r
11 %% Copyright 1994-2005 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}[2005/10/17 4.14 (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 a numerical citation style, and as such is standard LaTeX.
\r
28 % It requires no extra package to interface to the main text.
\r
29 % The form of the \bibitem entries is
\r
31 % Usage of \cite is as follows:
\r
32 % \cite{key} ==>> [#]
\r
33 % \cite[chap. 2]{key} ==>> [#, chap. 2]
\r
34 % where # is a number determined by the ordering in the reference list.
\r
35 % The order in the reference list is that by which the works were originally
\r
36 % cited in the text, or that in the database.
\r
37 %---------------------------------------------------------------------
\r
68 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
\r
69 FUNCTION {init.state.consts}
\r
72 #2 'after.sentence :=
\r
76 FUNCTION {output.nonnull}
\r
78 output.state mid.sentence =
\r
80 { output.state after.block =
\r
81 { add.period$ write$
\r
85 { output.state before.all =
\r
87 { add.period$ " " * write$ }
\r
91 mid.sentence 'output.state :=
\r
102 FUNCTION {output.check}
\r
105 { pop$ "empty " t * " in " * cite$ * warning$ }
\r
109 FUNCTION {fin.entry}
\r
115 FUNCTION {new.block}
\r
116 { output.state before.all =
\r
118 { after.block 'output.state := }
\r
121 FUNCTION {new.sentence}
\r
122 { output.state after.block =
\r
124 { output.state before.all =
\r
126 { after.sentence 'output.state := }
\r
131 FUNCTION {add.blank}
\r
132 { " " * before.all 'output.state :=
\r
136 FUNCTION {add.fullstop}
\r
137 { duplicate$ empty$
\r
139 { "." * add.blank }
\r
143 FUNCTION {date.block}
\r
165 FUNCTION {remove.dots}
\r
169 { z #1 #1 substring$
\r
170 z #2 global.max$ substring$ 'z :=
\r
171 duplicate$ "." = 'pop$
\r
177 FUNCTION {new.block.checka}
\r
183 FUNCTION {new.block.checkb}
\r
191 FUNCTION {new.sentence.checka}
\r
197 FUNCTION {new.sentence.checkb}
\r
205 FUNCTION {field.or.null}
\r
206 { duplicate$ empty$
\r
211 FUNCTION {emphasize}
\r
212 { duplicate$ empty$
\r
214 { "\emph{" swap$ * "}" * }
\r
218 { duplicate$ empty$
\r
220 { "\textbf{" swap$ * "}" * }
\r
223 FUNCTION {tie.or.space.prefix}
\r
224 { 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
240 { "\protect\BIBand{}"}
\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.chapter}
\r
281 FUNCTION {bbl.techrep}
\r
282 { "Technical {R}eport" }
\r
284 FUNCTION {bbl.mthesis}
\r
285 { "Master's {T}hesis" }
\r
287 FUNCTION {bbl.phdthesis}
\r
288 { "Ph{D} {T}hesis" }
\r
290 MACRO {jan} {"Jan."}
\r
292 MACRO {feb} {"Feb."}
\r
294 MACRO {mar} {"Mar."}
\r
296 MACRO {apr} {"Apr."}
\r
298 MACRO {may} {"May"}
\r
300 MACRO {jun} {"Jun."}
\r
302 MACRO {jul} {"Jul."}
\r
304 MACRO {aug} {"Aug."}
\r
306 MACRO {sep} {"Sep."}
\r
308 MACRO {oct} {"Oct."}
\r
310 MACRO {nov} {"Nov."}
\r
312 MACRO {dec} {"Dec."}
\r
314 MACRO {acmcs} {"ACM Computing Surveys"}
\r
316 MACRO {acta} {"Acta Informatica"}
\r
318 MACRO {cacm} {"Communications of the ACM"}
\r
320 MACRO {ibmjrd} {"IBM Journal of Research and Development"}
\r
322 MACRO {ibmsj} {"IBM Systems Journal"}
\r
324 MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
\r
326 MACRO {ieeetc} {"IEEE Transactions on Computers"}
\r
329 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
\r
331 MACRO {ipl} {"Information Processing Letters"}
\r
333 MACRO {jacm} {"Journal of the ACM"}
\r
335 MACRO {jcss} {"Journal of Computer and System Sciences"}
\r
337 MACRO {scp} {"Science of Computer Programming"}
\r
339 MACRO {sicomp} {"SIAM Journal on Computing"}
\r
341 MACRO {tocs} {"ACM Transactions on Computer Systems"}
\r
343 MACRO {tods} {"ACM Transactions on Database Systems"}
\r
345 MACRO {tog} {"ACM Transactions on Graphics"}
\r
347 MACRO {toms} {"ACM Transactions on Mathematical Software"}
\r
349 MACRO {toois} {"ACM Transactions on Office Information Systems"}
\r
351 MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
\r
353 MACRO {tcs} {"Theoretical Computer Science"}
\r
354 FUNCTION {bibinfo.check}
\r
356 duplicate$ missing$
\r
361 { duplicate$ empty$
\r
372 FUNCTION {bibinfo.warn}
\r
374 duplicate$ missing$
\r
376 swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
\r
379 { duplicate$ empty$
\r
381 swap$ "empty " swap$ * " in " * cite$ * warning$
\r
391 INTEGERS { nameptr namesleft numnames }
\r
393 FUNCTION {format.names}
\r
395 duplicate$ empty$ 'skip$ {
\r
399 s num.names$ 'numnames :=
\r
400 numnames 'namesleft :=
\r
403 "{vv~}{ll}{ f{}}{ jj}"
\r
406 bibinfo bibinfo.check
\r
423 s nameptr "{ll}" format.name$ duplicate$ "others" =
\r
430 " " * bbl.etal emphasize *
\r
439 nameptr #1 + 'nameptr :=
\r
440 namesleft #1 - 'namesleft :=
\r
445 FUNCTION {format.names.ed}
\r
449 FUNCTION {format.authors}
\r
450 { author "author" format.names
\r
452 FUNCTION {get.bbl.editor}
\r
453 { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
\r
455 FUNCTION {format.editors}
\r
456 { editor "editor" format.names duplicate$ empty$ 'skip$
\r
466 FUNCTION {format.doi}
\r
467 { doi "doi" bibinfo.check
\r
468 duplicate$ empty$ 'skip$
\r
470 "\doi{" swap$ * "}" *
\r
474 FUNCTION {format.note}
\r
478 { "\urlprefix\url{" url * "}" * output }
\r
482 { note #1 #1 substring$
\r
485 { output.state mid.sentence =
\r
492 note #2 global.max$ substring$ * "note" bibinfo.check
\r
497 FUNCTION {format.title}
\r
499 duplicate$ empty$ 'skip$
\r
500 { "t" change.case$ }
\r
502 "title" bibinfo.check
\r
504 FUNCTION {output.bibitem}
\r
511 before.all 'output.state :=
\r
514 FUNCTION {if.digit}
\r
516 swap$ duplicate$ "1" =
\r
517 swap$ duplicate$ "2" =
\r
518 swap$ duplicate$ "3" =
\r
519 swap$ duplicate$ "4" =
\r
520 swap$ duplicate$ "5" =
\r
521 swap$ duplicate$ "6" =
\r
522 swap$ duplicate$ "7" =
\r
523 swap$ duplicate$ "8" =
\r
524 swap$ "9" = or or or or or or or or or
\r
526 FUNCTION {n.separate}
\r
531 { t #-1 #1 substring$ if.digit
\r
532 { numnames #1 + 'numnames := }
\r
533 { #0 'numnames := }
\r
535 t #-1 #1 substring$ swap$ *
\r
536 t #-2 global.max$ substring$ 't :=
\r
538 { duplicate$ #1 #2 substring$ swap$
\r
539 #3 global.max$ substring$
\r
547 FUNCTION {n.dashify}
\r
553 { t #1 #1 substring$ "-" =
\r
554 { t #1 #2 substring$ "--" = not
\r
556 t #2 global.max$ substring$ 't :=
\r
558 { { t #1 #1 substring$ "-" = }
\r
560 t #2 global.max$ substring$ 't :=
\r
566 { t #1 #1 substring$ *
\r
567 t #2 global.max$ substring$ 't :=
\r
577 FUNCTION {format.date}
\r
579 month "month" bibinfo.check
\r
581 year "year" bibinfo.check duplicate$ empty$
\r
583 { "there's a month but no year in " cite$ * warning$ }
\r
600 before.all 'output.state :=
\r
606 FUNCTION {format.btitle}
\r
607 { title "title" bibinfo.check
\r
608 duplicate$ empty$ 'skip$
\r
614 FUNCTION {either.or.check}
\r
617 { "can't use both " swap$ * " fields in " * cite$ * warning$ }
\r
620 FUNCTION {format.bvolume}
\r
623 { bbl.volume volume tie.or.space.prefix
\r
624 "volume" bibinfo.check * *
\r
625 series "series" bibinfo.check
\r
626 duplicate$ empty$ 'pop$
\r
627 { emphasize ", " * swap$ * }
\r
629 "volume and number" number either.or.check
\r
633 FUNCTION {format.number.series}
\r
636 { series field.or.null }
\r
638 { number "number" bibinfo.check }
\r
639 { output.state mid.sentence =
\r
641 { bbl.number capitalize }
\r
643 number tie.or.space.prefix "number" bibinfo.check * *
\r
644 bbl.in space.word *
\r
645 series "series" bibinfo.check *
\r
655 FUNCTION {format.edition}
\r
656 { edition duplicate$ empty$ 'skip$
\r
658 output.state mid.sentence =
\r
662 "edition" bibinfo.check
\r
663 " " * bbl.edition *
\r
667 INTEGERS { multiresult }
\r
668 FUNCTION {multi.page.check}
\r
675 { t #1 #1 substring$
\r
677 swap$ duplicate$ "," =
\r
680 { #1 'multiresult := }
\r
681 { t #2 global.max$ substring$ 't := }
\r
687 FUNCTION {format.pages}
\r
688 { pages duplicate$ empty$ 'skip$
\r
689 { duplicate$ multi.page.check
\r
696 "pages" bibinfo.check
\r
701 FUNCTION {format.book.pages}
\r
702 { pages duplicate$ empty$ 'pop$
\r
703 { swap$ duplicate$ empty$
\r
704 { pop$ pop$ format.pages }
\r
709 "pages" bibinfo.check
\r
716 FUNCTION {format.journal.pages}
\r
717 { pages duplicate$ empty$ 'pop$
\r
718 { swap$ duplicate$ empty$
\r
719 { pop$ pop$ format.pages }
\r
724 "pages" bibinfo.check
\r
731 FUNCTION {format.journal.eid}
\r
732 { eid "eid" bibinfo.check
\r
733 duplicate$ empty$ 'pop$
\r
734 { swap$ duplicate$ empty$ 'skip$
\r
743 FUNCTION {format.vol.num.pages}
\r
744 { volume field.or.null
\r
745 duplicate$ empty$ 'skip$
\r
747 "volume" bibinfo.check
\r
751 number "number" bibinfo.check duplicate$ empty$ 'skip$
\r
753 swap$ duplicate$ empty$
\r
754 { "there's a number but no volume in " cite$ * warning$ }
\r
763 FUNCTION {format.chapter.pages}
\r
768 { type "l" change.case$
\r
769 "type" bibinfo.check
\r
772 chapter tie.or.space.prefix
\r
773 "chapter" bibinfo.check
\r
779 FUNCTION {format.booktitle}
\r
781 booktitle "booktitle" bibinfo.check
\r
784 FUNCTION {format.in.ed.booktitle}
\r
785 { format.booktitle duplicate$ empty$ 'skip$
\r
787 format.bvolume duplicate$ empty$ 'pop$
\r
790 editor "editor" format.names.ed duplicate$ empty$ 'pop$
\r
803 FUNCTION {empty.misc.check}
\r
804 { author empty$ title empty$ howpublished empty$
\r
805 month empty$ year empty$ note empty$
\r
806 and and and and and
\r
807 { "all relevant fields are empty in " cite$ * warning$ }
\r
811 FUNCTION {format.thesis.type}
\r
812 { type duplicate$ empty$
\r
815 "t" change.case$ "type" bibinfo.check
\r
819 FUNCTION {format.tr.number}
\r
820 { number "number" bibinfo.check
\r
821 type duplicate$ empty$
\r
822 { pop$ bbl.techrep }
\r
825 "type" bibinfo.check
\r
826 swap$ duplicate$ empty$
\r
827 { pop$ "t" change.case$ }
\r
828 { tie.or.space.prefix * * }
\r
831 FUNCTION {format.article.crossref}
\r
833 key duplicate$ empty$
\r
835 journal duplicate$ empty$
\r
836 { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
\r
837 { "journal" bibinfo.check emphasize word.in swap$ * }
\r
840 { word.in swap$ * " " *}
\r
842 " \cite{" * crossref * "}" *
\r
844 FUNCTION {format.crossref.editor}
\r
845 { editor #1 "{vv~}{ll}" format.name$
\r
846 "editor" bibinfo.check
\r
847 editor num.names$ duplicate$
\r
850 "editor" bibinfo.check
\r
857 { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
\r
859 "editor" bibinfo.check
\r
866 * editor #2 "{vv~}{ll}" format.name$
\r
867 "editor" bibinfo.check
\r
876 FUNCTION {format.book.crossref}
\r
877 { volume duplicate$ empty$
\r
878 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
\r
883 swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
\r
887 editor field.or.null author field.or.null =
\r
891 { "need editor, key, or series for " cite$ * " to crossref " *
\r
892 crossref * warning$
\r
895 { series emphasize * }
\r
901 { format.crossref.editor * }
\r
903 " \cite{" * crossref * "}" *
\r
905 FUNCTION {format.incoll.inproc.crossref}
\r
908 editor field.or.null author field.or.null =
\r
911 { format.booktitle duplicate$ empty$
\r
912 { "need editor, key, or booktitle for " cite$ * " to crossref " *
\r
913 crossref * warning$
\r
915 { word.in swap$ * }
\r
918 { word.in key * " " *}
\r
921 { word.in format.crossref.editor * " " *}
\r
923 " \cite{" * crossref * "}" *
\r
925 FUNCTION {format.org.or.pub}
\r
929 { "empty year in " cite$ * warning$ }
\r
932 address empty$ t empty$ and
\r
937 { address "address" bibinfo.check *
\r
942 { ": " * address "address" bibinfo.check * }
\r
948 { t empty$ address empty$ and
\r
952 year "year" bibinfo.check
\r
959 FUNCTION {format.publisher.address}
\r
960 { publisher "publisher" bibinfo.warn format.org.or.pub
\r
963 FUNCTION {format.organization.address}
\r
964 { organization "organization" bibinfo.check format.org.or.pub
\r
969 format.authors "author" output.check
\r
971 format.title "title" output.check
\r
976 "journal" bibinfo.check
\r
978 "journal" output.check
\r
980 format.date "year" output.check
\r
982 format.vol.num.pages output
\r
984 { format.article.crossref output.nonnull
\r
988 { format.journal.pages }
\r
989 { format.journal.eid }
\r
999 { format.editors "author and editor" output.check
\r
1002 { format.authors output.nonnull
\r
1005 { "author and editor" editor either.or.check }
\r
1010 format.btitle "title" output.check
\r
1012 { format.bvolume output
\r
1014 format.edition output
\r
1015 format.number.series output
\r
1016 format.publisher.address output
\r
1020 format.book.crossref output.nonnull
\r
1021 format.date "year" output.check
\r
1026 format.note output
\r
1029 FUNCTION {booklet}
\r
1031 format.authors output
\r
1033 format.title "title" output.check
\r
1035 howpublished "howpublished" bibinfo.check output
\r
1036 address "address" bibinfo.check output
\r
1037 format.date output
\r
1040 format.note output
\r
1047 { format.editors "author and editor" output.check
\r
1050 { format.authors output.nonnull
\r
1053 { "author and editor" editor either.or.check }
\r
1058 format.btitle "title" output.check
\r
1061 format.bvolume output
\r
1062 format.chapter.pages "chapter and pages" output.check
\r
1064 format.edition output
\r
1065 format.number.series output
\r
1066 format.publisher.address output
\r
1069 format.chapter.pages "chapter and pages" output.check
\r
1071 format.book.crossref output.nonnull
\r
1074 format.book.pages %AS"pages" output.check
\r
1077 format.note output
\r
1081 FUNCTION {incollection}
\r
1083 format.authors "author" output.check
\r
1085 format.title "title" output.check
\r
1088 { format.in.ed.booktitle "booktitle" output.check
\r
1090 format.edition output
\r
1091 format.chapter.pages output
\r
1092 format.number.series output
\r
1093 format.publisher.address output
\r
1095 { format.incoll.inproc.crossref output.nonnull
\r
1096 format.chapter.pages output
\r
1099 format.book.pages %AS"pages" output.check
\r
1102 format.note output
\r
1105 FUNCTION {inproceedings}
\r
1107 format.authors "author" output.check
\r
1109 format.title "title" output.check
\r
1112 { format.in.ed.booktitle "booktitle" output.check
\r
1113 format.number.series output
\r
1115 { format.organization.address output }
\r
1116 { organization "organization" bibinfo.check output
\r
1117 format.publisher.address output
\r
1121 { format.incoll.inproc.crossref output.nonnull
\r
1124 format.book.pages %AS"pages" output.check
\r
1127 format.note output
\r
1130 FUNCTION {conference} { inproceedings }
\r
1134 { organization "organization" bibinfo.check
\r
1135 duplicate$ empty$ 'pop$
\r
1137 address "address" bibinfo.check output
\r
1141 { format.authors output.nonnull }
\r
1144 format.btitle "title" output.check
\r
1147 { organization empty$
\r
1149 address "address" bibinfo.check output
\r
1155 organization "organization" bibinfo.check output
\r
1156 address "address" bibinfo.check output
\r
1159 format.edition output
\r
1160 format.date output
\r
1163 format.note output
\r
1167 FUNCTION {mastersthesis}
\r
1169 format.authors "author" output.check
\r
1172 "title" output.check
\r
1174 bbl.mthesis format.thesis.type output.nonnull
\r
1175 school "school" bibinfo.warn output
\r
1176 address "address" bibinfo.check output
\r
1177 format.date "year" output.check
\r
1180 format.note output
\r
1186 format.authors output
\r
1188 format.title output
\r
1190 howpublished "howpublished" bibinfo.check output
\r
1191 format.date output
\r
1194 format.note output
\r
1198 FUNCTION {phdthesis}
\r
1200 format.authors "author" output.check
\r
1203 "title" output.check
\r
1205 bbl.phdthesis format.thesis.type output.nonnull
\r
1206 school "school" bibinfo.warn output
\r
1207 address "address" bibinfo.check output
\r
1208 format.date "year" output.check
\r
1211 format.note output
\r
1215 FUNCTION {proceedings}
\r
1218 { organization "organization" bibinfo.check output
\r
1220 { format.editors output.nonnull }
\r
1223 format.btitle "title" output.check
\r
1224 format.bvolume output
\r
1226 { publisher empty$
\r
1229 format.number.series output
\r
1230 format.publisher.address output
\r
1234 { publisher empty$
\r
1236 format.organization.address output }
\r
1238 organization "organization" bibinfo.check output
\r
1239 format.publisher.address output
\r
1246 format.note output
\r
1250 FUNCTION {techreport}
\r
1252 format.authors "author" output.check
\r
1255 "title" output.check
\r
1257 format.tr.number emphasize output.nonnull
\r
1258 institution "institution" bibinfo.warn output
\r
1259 address "address" bibinfo.check output
\r
1260 format.date "year" output.check
\r
1263 format.note output
\r
1267 FUNCTION {unpublished}
\r
1269 format.authors "author" output.check
\r
1271 format.title "title" output.check
\r
1272 format.date output
\r
1275 format.note "note" output.check
\r
1279 FUNCTION {default.type} { misc }
\r
1281 STRINGS { longest.label }
\r
1282 INTEGERS { number.label longest.label.width }
\r
1283 FUNCTION {initialize.longest.label}
\r
1284 { "" 'longest.label :=
\r
1285 #1 'number.label :=
\r
1286 #0 'longest.label.width :=
\r
1288 FUNCTION {longest.label.pass}
\r
1289 { number.label int.to.str$ 'label :=
\r
1290 number.label #1 + 'number.label :=
\r
1291 label width$ longest.label.width >
\r
1292 { label 'longest.label :=
\r
1293 label width$ 'longest.label.width :=
\r
1298 EXECUTE {initialize.longest.label}
\r
1299 ITERATE {longest.label.pass}
\r
1300 FUNCTION {begin.bib}
\r
1301 { preamble$ empty$
\r
1303 { preamble$ write$ newline$ }
\r
1305 "\begin{thebibliography}{" longest.label * "}" *
\r
1307 "\providecommand{\url}[1]{\texttt{#1}}"
\r
1309 "\providecommand{\urlprefix}{URL }"
\r
1311 "\expandafter\ifx\csname urlstyle\endcsname\relax"
\r
1313 " \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
\r
1315 " \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
\r
1318 EXECUTE {begin.bib}
\r
1319 EXECUTE {init.state.consts}
\r
1320 ITERATE {call.type$}
\r
1321 FUNCTION {end.bib}
\r
1323 "\end{thebibliography}" write$ newline$
\r
1326 %% End of customized bst file
\r
1328 %% End of file `wileyj.bst'.
\r