]> AND Private Git Repository - rce2015.git/blob - wileyj.bst
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Suite corrections expés
[rce2015.git] / wileyj.bst
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
4 %%\r
5 %% The original source files were:\r
6 %%\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
10 %% \r
11 %% Copyright 1994-2005 Patrick W Daly\r
12  % ===============================================================\r
13  % IMPORTANT NOTICE:\r
14  % This bibliographic style (bst) file has been generated from one or\r
15  % more master bibliographic style (mbs) files, listed above.\r
16  %\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
30  %   \bibitem{key}...\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
38 \r
39 ENTRY\r
40   { address\r
41     author\r
42     booktitle\r
43     chapter\r
44     doi\r
45     edition\r
46     editor\r
47     eid\r
48     howpublished\r
49     institution\r
50     journal\r
51     key\r
52     month\r
53     note\r
54     number\r
55     organization\r
56     pages\r
57     publisher\r
58     school\r
59     series\r
60     title\r
61     type\r
62     url\r
63     volume\r
64     year\r
65   }\r
66   {}\r
67   { label }\r
68 INTEGERS { output.state before.all mid.sentence after.sentence after.block }\r
69 FUNCTION {init.state.consts}\r
70 { #0 'before.all :=\r
71   #1 'mid.sentence :=\r
72   #2 'after.sentence :=\r
73   #3 'after.block :=\r
74 }\r
75 STRINGS { s t}\r
76 FUNCTION {output.nonnull}\r
77 { 's :=\r
78   output.state mid.sentence =\r
79     { ", " * write$ }\r
80     { output.state after.block =\r
81         { add.period$ write$\r
82           newline$\r
83           "\newblock " write$\r
84         }\r
85         { output.state before.all =\r
86             'write$\r
87             { add.period$ " " * write$ }\r
88           if$\r
89         }\r
90       if$\r
91       mid.sentence 'output.state :=\r
92     }\r
93   if$\r
94   s\r
95 }\r
96 FUNCTION {output}\r
97 { duplicate$ empty$\r
98     'pop$\r
99     'output.nonnull\r
100   if$\r
101 }\r
102 FUNCTION {output.check}\r
103 { 't :=\r
104   duplicate$ empty$\r
105     { pop$ "empty " t * " in " * cite$ * warning$ }\r
106     'output.nonnull\r
107   if$\r
108 }\r
109 FUNCTION {fin.entry}\r
110 { add.period$\r
111   write$\r
112   newline$\r
113 }\r
114 \r
115 FUNCTION {new.block}\r
116 { output.state before.all =\r
117     'skip$\r
118     { after.block 'output.state := }\r
119   if$\r
120 }\r
121 FUNCTION {new.sentence}\r
122 { output.state after.block =\r
123     'skip$\r
124     { output.state before.all =\r
125         'skip$\r
126         { after.sentence 'output.state := }\r
127       if$\r
128     }\r
129   if$\r
130 }\r
131 FUNCTION {add.blank}\r
132 {  " " * before.all 'output.state :=\r
133 }\r
134 \r
135 %AS\r
136 FUNCTION {add.fullstop}\r
137 { duplicate$ empty$\r
138     'skip$\r
139     { "." * add.blank }\r
140   if$\r
141 }\r
142 \r
143 FUNCTION {date.block}\r
144 {\r
145   ";" *\r
146   add.blank\r
147 }\r
148 \r
149 FUNCTION {not}\r
150 {   { #0 }\r
151     { #1 }\r
152   if$\r
153 }\r
154 FUNCTION {and}\r
155 {   'skip$\r
156     { pop$ #0 }\r
157   if$\r
158 }\r
159 FUNCTION {or}\r
160 {   { pop$ #1 }\r
161     'skip$\r
162   if$\r
163 }\r
164 STRINGS {z}\r
165 FUNCTION {remove.dots}\r
166 { 'z :=\r
167   ""\r
168   { z empty$ not }\r
169   { z #1 #1 substring$\r
170     z #2 global.max$ substring$ 'z :=\r
171     duplicate$ "." = 'pop$\r
172       { * }\r
173     if$\r
174   }\r
175   while$\r
176 }\r
177 FUNCTION {new.block.checka}\r
178 { empty$\r
179     'skip$\r
180     'new.block\r
181   if$\r
182 }\r
183 FUNCTION {new.block.checkb}\r
184 { empty$\r
185   swap$ empty$\r
186   and\r
187     'skip$\r
188     'new.block\r
189   if$\r
190 }\r
191 FUNCTION {new.sentence.checka}\r
192 { empty$\r
193     'skip$\r
194     'new.sentence\r
195   if$\r
196 }\r
197 FUNCTION {new.sentence.checkb}\r
198 { empty$\r
199   swap$ empty$\r
200   and\r
201     'skip$\r
202     'new.sentence\r
203   if$\r
204 }\r
205 FUNCTION {field.or.null}\r
206 { duplicate$ empty$\r
207     { pop$ "" }\r
208     'skip$\r
209   if$\r
210 }\r
211 FUNCTION {emphasize}\r
212 { duplicate$ empty$\r
213     { pop$ "" }\r
214     { "\emph{" swap$ * "}" * }\r
215   if$\r
216 }\r
217 FUNCTION {bolden}\r
218 { duplicate$ empty$\r
219     { pop$ "" }\r
220     { "\textbf{" swap$ * "}" * }\r
221   if$\r
222 }\r
223 FUNCTION {tie.or.space.prefix}\r
224 { duplicate$ text.length$ #3 <\r
225     { "~" }\r
226     { " " }\r
227   if$\r
228   swap$\r
229 }\r
230 \r
231 FUNCTION {capitalize}\r
232 { "u" change.case$ "t" change.case$ }\r
233 \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
239 FUNCTION {bbl.and}\r
240 { "\protect\BIBand{}"}\r
241 \r
242 FUNCTION {bbl.etal}\r
243 { "et~al." }\r
244 \r
245 FUNCTION {bbl.editors}\r
246 { " (eds.)" }\r
247 \r
248 FUNCTION {bbl.editor}\r
249 { " (ed.)" }\r
250 \r
251 FUNCTION {bbl.edby}\r
252 { "edited by" }\r
253 \r
254 FUNCTION {bbl.edition}\r
255 { "edn." }\r
256 \r
257 FUNCTION {bbl.volume}\r
258 { "vol." }\r
259 \r
260 FUNCTION {bbl.of}\r
261 { "of" }\r
262 \r
263 FUNCTION {bbl.number}\r
264 { "no." }\r
265 \r
266 FUNCTION {bbl.nr}\r
267 { "no." }\r
268 \r
269 FUNCTION {bbl.in}\r
270 { "in" }\r
271 \r
272 FUNCTION {bbl.pages}\r
273 { "" }\r
274 \r
275 FUNCTION {bbl.page}\r
276 { "" }\r
277 \r
278 FUNCTION {bbl.chapter}\r
279 { "chap." }\r
280 \r
281 FUNCTION {bbl.techrep}\r
282 { "Technical {R}eport" }\r
283 \r
284 FUNCTION {bbl.mthesis}\r
285 { "Master's {T}hesis" }\r
286 \r
287 FUNCTION {bbl.phdthesis}\r
288 { "Ph{D} {T}hesis" }\r
289 \r
290 MACRO {jan} {"Jan."}\r
291 \r
292 MACRO {feb} {"Feb."}\r
293 \r
294 MACRO {mar} {"Mar."}\r
295 \r
296 MACRO {apr} {"Apr."}\r
297 \r
298 MACRO {may} {"May"}\r
299 \r
300 MACRO {jun} {"Jun."}\r
301 \r
302 MACRO {jul} {"Jul."}\r
303 \r
304 MACRO {aug} {"Aug."}\r
305 \r
306 MACRO {sep} {"Sep."}\r
307 \r
308 MACRO {oct} {"Oct."}\r
309 \r
310 MACRO {nov} {"Nov."}\r
311 \r
312 MACRO {dec} {"Dec."}\r
313 \r
314 MACRO {acmcs} {"ACM Computing Surveys"}\r
315 \r
316 MACRO {acta} {"Acta Informatica"}\r
317 \r
318 MACRO {cacm} {"Communications of the ACM"}\r
319 \r
320 MACRO {ibmjrd} {"IBM Journal of Research and Development"}\r
321 \r
322 MACRO {ibmsj} {"IBM Systems Journal"}\r
323 \r
324 MACRO {ieeese} {"IEEE Transactions on Software Engineering"}\r
325 \r
326 MACRO {ieeetc} {"IEEE Transactions on Computers"}\r
327 \r
328 MACRO {ieeetcad}\r
329  {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}\r
330 \r
331 MACRO {ipl} {"Information Processing Letters"}\r
332 \r
333 MACRO {jacm} {"Journal of the ACM"}\r
334 \r
335 MACRO {jcss} {"Journal of Computer and System Sciences"}\r
336 \r
337 MACRO {scp} {"Science of Computer Programming"}\r
338 \r
339 MACRO {sicomp} {"SIAM Journal on Computing"}\r
340 \r
341 MACRO {tocs} {"ACM Transactions on Computer Systems"}\r
342 \r
343 MACRO {tods} {"ACM Transactions on Database Systems"}\r
344 \r
345 MACRO {tog} {"ACM Transactions on Graphics"}\r
346 \r
347 MACRO {toms} {"ACM Transactions on Mathematical Software"}\r
348 \r
349 MACRO {toois} {"ACM Transactions on Office Information Systems"}\r
350 \r
351 MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}\r
352 \r
353 MACRO {tcs} {"Theoretical Computer Science"}\r
354 FUNCTION {bibinfo.check}\r
355 { swap$\r
356   duplicate$ missing$\r
357     {\r
358       pop$ pop$\r
359       ""\r
360     }\r
361     { duplicate$ empty$\r
362         {\r
363           swap$ pop$\r
364         }\r
365         { swap$\r
366           pop$\r
367         }\r
368       if$\r
369     }\r
370   if$\r
371 }\r
372 FUNCTION {bibinfo.warn}\r
373 { swap$\r
374   duplicate$ missing$\r
375     {\r
376       swap$ "missing " swap$ * " in " * cite$ * warning$ pop$\r
377       ""\r
378     }\r
379     { duplicate$ empty$\r
380         {\r
381           swap$ "empty " swap$ * " in " * cite$ * warning$\r
382         }\r
383         { swap$\r
384           pop$\r
385         }\r
386       if$\r
387     }\r
388   if$\r
389 }\r
390 STRINGS  { bibinfo}\r
391 INTEGERS { nameptr namesleft numnames }\r
392 \r
393 FUNCTION {format.names}\r
394 { 'bibinfo :=\r
395   duplicate$ empty$ 'skip$ {\r
396   's :=\r
397   "" 't :=\r
398   #1 'nameptr :=\r
399   s num.names$ 'numnames :=\r
400   numnames 'namesleft :=\r
401     { namesleft #0 > }\r
402     { s nameptr\r
403       "{vv~}{ll}{ f{}}{ jj}"\r
404       format.name$\r
405       remove.dots\r
406       bibinfo bibinfo.check\r
407       't :=\r
408       nameptr #1 >\r
409         {\r
410           nameptr #0\r
411           #10 +\r
412           #1 + =\r
413           numnames #0\r
414           #10 +\r
415           > and\r
416             { "others" 't :=\r
417               #1 'namesleft := }\r
418             'skip$\r
419           if$\r
420           namesleft #1 >\r
421             { ", " * t * }\r
422             {\r
423               s nameptr "{ll}" format.name$ duplicate$ "others" =\r
424                 { 't := }\r
425                 { pop$ }\r
426               if$\r
427               "," *\r
428               t "others" =\r
429                 {\r
430                   " " * bbl.etal emphasize *\r
431                 }\r
432                 { " " * t * }\r
433               if$\r
434             }\r
435           if$\r
436         }\r
437         't\r
438       if$\r
439       nameptr #1 + 'nameptr :=\r
440       namesleft #1 - 'namesleft :=\r
441     }\r
442   while$\r
443   } if$\r
444 }\r
445 FUNCTION {format.names.ed}\r
446 {\r
447   format.names\r
448 }\r
449 FUNCTION {format.authors}\r
450 { author "author" format.names\r
451 }\r
452 FUNCTION {get.bbl.editor}\r
453 { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }\r
454 \r
455 FUNCTION {format.editors}\r
456 { editor "editor" format.names duplicate$ empty$ 'skip$\r
457     {\r
458       " " *\r
459       get.bbl.editor\r
460    "(" swap$ * ")" *\r
461       *\r
462     }\r
463   if$\r
464 }\r
465 \r
466 FUNCTION {format.doi}\r
467 { doi "doi" bibinfo.check\r
468   duplicate$ empty$ 'skip$\r
469     {\r
470       "\doi{" swap$ * "}" *\r
471     }\r
472   if$\r
473 }\r
474 FUNCTION {format.note}\r
475 {\r
476   url empty$\r
477     'skip$\r
478     { "\urlprefix\url{" url * "}" * output }\r
479   if$\r
480  note empty$\r
481     { "" }\r
482     { note #1 #1 substring$\r
483       duplicate$ "{" =\r
484         'skip$\r
485         { output.state mid.sentence =\r
486           { "l" }\r
487           { "u" }\r
488         if$\r
489         change.case$\r
490         }\r
491       if$\r
492       note #2 global.max$ substring$ * "note" bibinfo.check\r
493     }\r
494   if$\r
495 }\r
496 \r
497 FUNCTION {format.title}\r
498 { title\r
499   duplicate$ empty$ 'skip$\r
500     { "t" change.case$ }\r
501   if$\r
502   "title" bibinfo.check\r
503 }\r
504 FUNCTION {output.bibitem}\r
505 { newline$\r
506   "\bibitem{" write$\r
507   cite$ write$\r
508   "}" write$\r
509   newline$\r
510   ""\r
511   before.all 'output.state :=\r
512 }\r
513 \r
514 FUNCTION {if.digit}\r
515 { duplicate$ "0" =\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
525 }\r
526 FUNCTION {n.separate}\r
527 { 't :=\r
528   ""\r
529   #0 'numnames :=\r
530   { t empty$ not }\r
531   { t #-1 #1 substring$ if.digit\r
532       { numnames #1 + 'numnames := }\r
533       { #0 'numnames := }\r
534     if$\r
535     t #-1 #1 substring$ swap$ *\r
536     t #-2 global.max$ substring$ 't :=\r
537     numnames #5 =\r
538       { duplicate$ #1 #2 substring$ swap$\r
539         #3 global.max$ substring$\r
540         "\," swap$ * *\r
541       }\r
542       'skip$\r
543     if$\r
544   }\r
545   while$\r
546 }\r
547 FUNCTION {n.dashify}\r
548 {\r
549   n.separate\r
550   't :=\r
551   ""\r
552     { t empty$ not }\r
553     { t #1 #1 substring$ "-" =\r
554         { t #1 #2 substring$ "--" = not\r
555             { "--" *\r
556               t #2 global.max$ substring$ 't :=\r
557             }\r
558             {   { t #1 #1 substring$ "-" = }\r
559                 { "-" *\r
560                   t #2 global.max$ substring$ 't :=\r
561                 }\r
562               while$\r
563             }\r
564           if$\r
565         }\r
566         { t #1 #1 substring$ *\r
567           t #2 global.max$ substring$ 't :=\r
568         }\r
569       if$\r
570     }\r
571   while$\r
572 }\r
573 \r
574 FUNCTION {word.in}\r
575 { "" }\r
576 \r
577 FUNCTION {format.date}\r
578 {\r
579   month "month" bibinfo.check\r
580   duplicate$ empty$\r
581   year  "year"  bibinfo.check duplicate$ empty$\r
582     { swap$ 'skip$\r
583         { "there's a month but no year in " cite$ * warning$ }\r
584       if$\r
585       *\r
586     }\r
587     { swap$ 'skip$\r
588         {\r
589           swap$\r
590           " " * swap$\r
591         }\r
592       if$\r
593       *\r
594       remove.dots\r
595     }\r
596   if$\r
597   duplicate$ empty$\r
598     'skip$\r
599     {\r
600       before.all 'output.state :=\r
601     %AS", " swap$ *\r
602     " " swap$ *\r
603     }\r
604   if$\r
605 }\r
606 FUNCTION {format.btitle}\r
607 { title "title" bibinfo.check\r
608   duplicate$ empty$ 'skip$\r
609     {\r
610       emphasize\r
611     }\r
612   if$\r
613 }\r
614 FUNCTION {either.or.check}\r
615 { empty$\r
616     'pop$\r
617     { "can't use both " swap$ * " fields in " * cite$ * warning$ }\r
618   if$\r
619 }\r
620 FUNCTION {format.bvolume}\r
621 { volume empty$\r
622     { "" }\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
628       if$\r
629       "volume and number" number either.or.check\r
630     }\r
631   if$\r
632 }\r
633 FUNCTION {format.number.series}\r
634 { volume empty$\r
635     { number empty$\r
636         { series field.or.null }\r
637         { series empty$\r
638             { number "number" bibinfo.check }\r
639             { output.state mid.sentence =\r
640                 { bbl.number }\r
641                 { bbl.number capitalize }\r
642               if$\r
643               number tie.or.space.prefix "number" bibinfo.check * *\r
644               bbl.in space.word *\r
645               series "series" bibinfo.check *\r
646             }\r
647           if$\r
648         }\r
649       if$\r
650     }\r
651     { "" }\r
652   if$\r
653 }\r
654 \r
655 FUNCTION {format.edition}\r
656 { edition duplicate$ empty$ 'skip$\r
657     {\r
658       output.state mid.sentence =\r
659         { "l" }\r
660         { "t" }\r
661       if$ change.case$\r
662       "edition" bibinfo.check\r
663       " " * bbl.edition *\r
664     }\r
665   if$\r
666 }\r
667 INTEGERS { multiresult }\r
668 FUNCTION {multi.page.check}\r
669 { 't :=\r
670   #0 'multiresult :=\r
671     { multiresult not\r
672       t empty$ not\r
673       and\r
674     }\r
675     { t #1 #1 substring$\r
676       duplicate$ "-" =\r
677       swap$ duplicate$ "," =\r
678       swap$ "+" =\r
679       or or\r
680         { #1 'multiresult := }\r
681         { t #2 global.max$ substring$ 't := }\r
682       if$\r
683     }\r
684   while$\r
685   multiresult\r
686 }\r
687 FUNCTION {format.pages}\r
688 { pages duplicate$ empty$ 'skip$\r
689     { duplicate$ multi.page.check\r
690         {\r
691           n.dashify\r
692         }\r
693         {\r
694         }\r
695       if$\r
696       "pages" bibinfo.check\r
697     }\r
698   if$\r
699 }\r
700 %AS\r
701 FUNCTION {format.book.pages}\r
702 { pages duplicate$ empty$ 'pop$\r
703     { swap$ duplicate$ empty$\r
704         { pop$ pop$ format.pages }\r
705         { \r
706           "; " *\r
707           swap$\r
708           n.dashify\r
709           "pages" bibinfo.check\r
710           *\r
711         }\r
712       if$\r
713     }\r
714   if$\r
715 }\r
716 FUNCTION {format.journal.pages}\r
717 { pages duplicate$ empty$ 'pop$\r
718     { swap$ duplicate$ empty$\r
719         { pop$ pop$ format.pages }\r
720         {\r
721           ":" *\r
722           swap$\r
723           n.dashify\r
724           "pages" bibinfo.check\r
725           *\r
726         }\r
727       if$\r
728     }\r
729   if$\r
730 }\r
731 FUNCTION {format.journal.eid}\r
732 { eid "eid" bibinfo.check\r
733   duplicate$ empty$ 'pop$\r
734     { swap$ duplicate$ empty$ 'skip$\r
735       {\r
736           ":" *\r
737       }\r
738       if$\r
739       swap$ *\r
740     }\r
741   if$\r
742 }\r
743 FUNCTION {format.vol.num.pages}\r
744 { volume field.or.null\r
745   duplicate$ empty$ 'skip$\r
746     {\r
747       "volume" bibinfo.check\r
748     }\r
749   if$\r
750   bolden\r
751   number "number" bibinfo.check duplicate$ empty$ 'skip$\r
752     {\r
753       swap$ duplicate$ empty$\r
754         { "there's a number but no volume in " cite$ * warning$ }\r
755         'skip$\r
756       if$\r
757       swap$\r
758       "(" swap$ * ")" *\r
759     }\r
760   if$ *\r
761 }\r
762 \r
763 FUNCTION {format.chapter.pages}\r
764 { chapter empty$\r
765     { "" }\r
766     { type empty$\r
767         { bbl.chapter }\r
768         { type "l" change.case$\r
769           "type" bibinfo.check\r
770         }\r
771       if$\r
772       chapter tie.or.space.prefix\r
773       "chapter" bibinfo.check\r
774       * *\r
775     }\r
776   if$\r
777 }\r
778 \r
779 FUNCTION {format.booktitle}\r
780 {\r
781   booktitle "booktitle" bibinfo.check\r
782   emphasize\r
783 }\r
784 FUNCTION {format.in.ed.booktitle}\r
785 { format.booktitle duplicate$ empty$ 'skip$\r
786     {\r
787       format.bvolume duplicate$ empty$ 'pop$\r
788         { ", " swap$ * * }\r
789       if$\r
790       editor "editor" format.names.ed duplicate$ empty$ 'pop$\r
791         {\r
792           get.bbl.editor\r
793           %" " * swap$ *\r
794           * swap$ \r
795           "," *\r
796           " " * swap$\r
797           * }\r
798       if$\r
799       word.in swap$ *\r
800     }\r
801   if$\r
802 }\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
808     'skip$\r
809   if$\r
810 }\r
811 FUNCTION {format.thesis.type}\r
812 { type duplicate$ empty$\r
813     'pop$\r
814     { swap$ pop$\r
815       "t" change.case$ "type" bibinfo.check\r
816     }\r
817   if$\r
818 }\r
819 FUNCTION {format.tr.number}\r
820 { number "number" bibinfo.check\r
821   type duplicate$ empty$\r
822     { pop$ bbl.techrep }\r
823     'skip$\r
824   if$\r
825   "type" bibinfo.check\r
826   swap$ duplicate$ empty$\r
827     { pop$ "t" change.case$ }\r
828     { tie.or.space.prefix * * }\r
829   if$\r
830 }\r
831 FUNCTION {format.article.crossref}\r
832 {\r
833   key duplicate$ empty$\r
834     { pop$\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
838       if$\r
839     }\r
840     { word.in swap$ * " " *}\r
841   if$\r
842   " \cite{" * crossref * "}" *\r
843 }\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
848   #2 >\r
849     { pop$\r
850       "editor" bibinfo.check\r
851       " " * bbl.etal\r
852       emphasize\r
853       *\r
854     }\r
855     { #2 <\r
856         'skip$\r
857         { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =\r
858             {\r
859               "editor" bibinfo.check\r
860               " " * bbl.etal\r
861               emphasize\r
862               *\r
863             }\r
864             {\r
865              bbl.and space.word\r
866               * editor #2 "{vv~}{ll}" format.name$\r
867               "editor" bibinfo.check\r
868               *\r
869             }\r
870           if$\r
871         }\r
872       if$\r
873     }\r
874   if$\r
875 }\r
876 FUNCTION {format.book.crossref}\r
877 { volume duplicate$ empty$\r
878     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$\r
879       pop$ word.in\r
880     }\r
881     { bbl.volume\r
882       capitalize\r
883       swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *\r
884     }\r
885   if$\r
886   editor empty$\r
887   editor field.or.null author field.or.null =\r
888   or\r
889     { key empty$\r
890         { series empty$\r
891             { "need editor, key, or series for " cite$ * " to crossref " *\r
892               crossref * warning$\r
893               "" *\r
894             }\r
895             { series emphasize * }\r
896           if$\r
897         }\r
898         { key * }\r
899       if$\r
900     }\r
901     { format.crossref.editor * }\r
902   if$\r
903   " \cite{" * crossref * "}" *\r
904 }\r
905 FUNCTION {format.incoll.inproc.crossref}\r
906 {\r
907   editor empty$\r
908   editor field.or.null author field.or.null =\r
909   or\r
910     { key empty$\r
911         { format.booktitle duplicate$ empty$\r
912             { "need editor, key, or booktitle for " cite$ * " to crossref " *\r
913               crossref * warning$\r
914             }\r
915             { word.in swap$ * }\r
916           if$\r
917         }\r
918         { word.in key * " " *}\r
919       if$\r
920     }\r
921     { word.in format.crossref.editor * " " *}\r
922   if$\r
923   " \cite{" * crossref * "}" *\r
924 }\r
925 FUNCTION {format.org.or.pub}\r
926 { 't :=\r
927   ""\r
928   year empty$\r
929     { "empty year in " cite$ * warning$ }\r
930     'skip$\r
931   if$\r
932   address empty$ t empty$ and\r
933   year empty$ and\r
934     'skip$\r
935     {\r
936       t empty$\r
937         { address "address" bibinfo.check *\r
938         }\r
939         { t *\r
940           address empty$\r
941             'skip$\r
942             { ": " * address "address" bibinfo.check * }\r
943           if$\r
944         }\r
945       if$\r
946       year empty$\r
947         'skip$\r
948         { t empty$ address empty$ and\r
949             'skip$\r
950             { ", " * }\r
951           if$\r
952           year "year" bibinfo.check\r
953           *\r
954         }\r
955       if$\r
956     }\r
957   if$\r
958 }\r
959 FUNCTION {format.publisher.address}\r
960 { publisher "publisher" bibinfo.warn format.org.or.pub\r
961 }\r
962 \r
963 FUNCTION {format.organization.address}\r
964 { organization "organization" bibinfo.check format.org.or.pub\r
965 }\r
966 \r
967 FUNCTION {article}\r
968 { output.bibitem\r
969   format.authors "author" output.check\r
970   add.fullstop\r
971   format.title "title" output.check\r
972   new.sentence\r
973   crossref missing$\r
974     {\r
975       journal\r
976       "journal" bibinfo.check\r
977       emphasize\r
978       "journal" output.check\r
979       add.blank\r
980       format.date "year" output.check\r
981       date.block\r
982       format.vol.num.pages output\r
983     }\r
984     { format.article.crossref output.nonnull\r
985     }\r
986   if$\r
987   eid empty$\r
988     { format.journal.pages }\r
989     { format.journal.eid }\r
990   if$\r
991   format.doi output\r
992   new.sentence\r
993   format.note output\r
994   fin.entry\r
995 }\r
996 FUNCTION {book}\r
997 { output.bibitem\r
998   author empty$\r
999     { format.editors "author and editor" output.check\r
1000       add.fullstop\r
1001     }\r
1002     { format.authors output.nonnull\r
1003       add.fullstop\r
1004       crossref missing$\r
1005         { "author and editor" editor either.or.check }\r
1006         'skip$\r
1007       if$\r
1008     }\r
1009   if$\r
1010   format.btitle "title" output.check\r
1011   crossref missing$\r
1012     { format.bvolume output\r
1013   new.sentence\r
1014       format.edition output\r
1015       format.number.series output\r
1016       format.publisher.address output\r
1017     }\r
1018     {\r
1019   new.sentence\r
1020       format.book.crossref output.nonnull\r
1021       format.date "year" output.check\r
1022       }\r
1023   if$\r
1024   format.doi output\r
1025   new.sentence\r
1026   format.note output\r
1027   fin.entry\r
1028 }\r
1029 FUNCTION {booklet}\r
1030 { output.bibitem\r
1031   format.authors output\r
1032   add.fullstop\r
1033   format.title "title" output.check\r
1034   new.sentence\r
1035   howpublished "howpublished" bibinfo.check output\r
1036   address "address" bibinfo.check output\r
1037   format.date output\r
1038   format.doi output\r
1039   new.sentence\r
1040   format.note output\r
1041   fin.entry\r
1042 }\r
1043 \r
1044 FUNCTION {inbook}\r
1045 { output.bibitem\r
1046   author empty$\r
1047     { format.editors "author and editor" output.check\r
1048       add.fullstop\r
1049     }\r
1050     { format.authors output.nonnull\r
1051       add.fullstop\r
1052       crossref missing$\r
1053         { "author and editor" editor either.or.check }\r
1054         'skip$\r
1055       if$\r
1056     }\r
1057   if$\r
1058   format.btitle "title" output.check\r
1059   crossref missing$\r
1060     {\r
1061       format.bvolume output\r
1062       format.chapter.pages "chapter and pages" output.check\r
1063   new.sentence\r
1064       format.edition output\r
1065       format.number.series output\r
1066       format.publisher.address output\r
1067     }\r
1068     {\r
1069       format.chapter.pages "chapter and pages" output.check\r
1070   new.sentence\r
1071       format.book.crossref output.nonnull\r
1072     }\r
1073   if$\r
1074   format.book.pages %AS"pages" output.check\r
1075   format.doi output\r
1076   new.sentence\r
1077   format.note output\r
1078   fin.entry\r
1079 }\r
1080 \r
1081 FUNCTION {incollection}\r
1082 { output.bibitem\r
1083   format.authors "author" output.check\r
1084   add.fullstop\r
1085   format.title "title" output.check\r
1086   new.sentence\r
1087   crossref missing$\r
1088     { format.in.ed.booktitle "booktitle" output.check\r
1089     add.fullstop\r
1090       format.edition output\r
1091       format.chapter.pages output\r
1092       format.number.series output\r
1093       format.publisher.address output\r
1094     }\r
1095     { format.incoll.inproc.crossref output.nonnull\r
1096       format.chapter.pages output\r
1097     }\r
1098   if$\r
1099   format.book.pages %AS"pages" output.check\r
1100   format.doi output\r
1101   new.sentence\r
1102   format.note output\r
1103   fin.entry\r
1104 }\r
1105 FUNCTION {inproceedings}\r
1106 { output.bibitem\r
1107   format.authors "author" output.check\r
1108   add.fullstop\r
1109   format.title "title" output.check\r
1110   new.sentence\r
1111   crossref missing$\r
1112     { format.in.ed.booktitle "booktitle" output.check\r
1113       format.number.series output\r
1114       publisher empty$\r
1115         { format.organization.address output }\r
1116         { organization "organization" bibinfo.check output\r
1117           format.publisher.address output\r
1118         }\r
1119       if$\r
1120     }\r
1121     { format.incoll.inproc.crossref output.nonnull\r
1122     }\r
1123   if$\r
1124   format.book.pages %AS"pages" output.check\r
1125   format.doi output\r
1126   new.sentence\r
1127   format.note output\r
1128   fin.entry\r
1129 }\r
1130 FUNCTION {conference} { inproceedings }\r
1131 FUNCTION {manual}\r
1132 { output.bibitem\r
1133   author empty$\r
1134     { organization "organization" bibinfo.check\r
1135       duplicate$ empty$ 'pop$\r
1136         { output\r
1137           address "address" bibinfo.check output\r
1138         }\r
1139       if$\r
1140     }\r
1141     { format.authors output.nonnull }\r
1142   if$\r
1143   add.fullstop\r
1144   format.btitle "title" output.check\r
1145   new.sentence\r
1146   author empty$\r
1147     { organization empty$\r
1148         {\r
1149           address "address" bibinfo.check output\r
1150         }\r
1151         'skip$\r
1152       if$\r
1153     }\r
1154     {\r
1155       organization "organization" bibinfo.check output\r
1156       address "address" bibinfo.check output\r
1157     }\r
1158   if$\r
1159   format.edition output\r
1160   format.date output\r
1161   format.doi output\r
1162   new.sentence\r
1163   format.note output\r
1164   fin.entry\r
1165 }\r
1166 \r
1167 FUNCTION {mastersthesis}\r
1168 { output.bibitem\r
1169   format.authors "author" output.check\r
1170   add.fullstop\r
1171   format.title\r
1172   "title" output.check\r
1173   new.sentence\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
1178   format.doi output\r
1179   new.sentence\r
1180   format.note output\r
1181   fin.entry\r
1182 }\r
1183 \r
1184 FUNCTION {misc}\r
1185 { output.bibitem\r
1186   format.authors output\r
1187   add.fullstop\r
1188   format.title output\r
1189   new.sentence\r
1190   howpublished "howpublished" bibinfo.check output\r
1191   format.date output\r
1192   format.doi output\r
1193   new.sentence\r
1194   format.note output\r
1195   fin.entry\r
1196   empty.misc.check\r
1197 }\r
1198 FUNCTION {phdthesis}\r
1199 { output.bibitem\r
1200   format.authors "author" output.check\r
1201   add.fullstop\r
1202   format.title\r
1203   "title" output.check\r
1204   new.sentence\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
1209   format.doi output\r
1210   new.sentence\r
1211   format.note output\r
1212   fin.entry\r
1213 }\r
1214 \r
1215 FUNCTION {proceedings}\r
1216 { output.bibitem\r
1217   editor empty$\r
1218     { organization "organization" bibinfo.check output\r
1219     }\r
1220     { format.editors output.nonnull }\r
1221   if$\r
1222   add.fullstop\r
1223   format.btitle "title" output.check\r
1224   format.bvolume output\r
1225   editor empty$\r
1226     { publisher empty$\r
1227         'skip$\r
1228         {\r
1229           format.number.series output\r
1230           format.publisher.address output\r
1231         }\r
1232       if$\r
1233     }\r
1234     { publisher empty$\r
1235         {\r
1236           format.organization.address output }\r
1237         {\r
1238           organization "organization" bibinfo.check output\r
1239           format.publisher.address output\r
1240         }\r
1241       if$\r
1242      }\r
1243   if$\r
1244   format.doi output\r
1245   new.sentence\r
1246   format.note output\r
1247   fin.entry\r
1248 }\r
1249 \r
1250 FUNCTION {techreport}\r
1251 { output.bibitem\r
1252   format.authors "author" output.check\r
1253   add.fullstop\r
1254   format.title\r
1255   "title" output.check\r
1256   new.sentence\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
1261   format.doi output\r
1262   new.sentence\r
1263   format.note output\r
1264   fin.entry\r
1265 }\r
1266 \r
1267 FUNCTION {unpublished}\r
1268 { output.bibitem\r
1269   format.authors "author" output.check\r
1270   add.fullstop\r
1271   format.title "title" output.check\r
1272   format.date output\r
1273   format.doi output\r
1274   new.sentence\r
1275   format.note "note" output.check\r
1276   fin.entry\r
1277 }\r
1278 \r
1279 FUNCTION {default.type} { misc }\r
1280 READ\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
1287 }\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
1294     }\r
1295     'skip$\r
1296   if$\r
1297 }\r
1298 EXECUTE {initialize.longest.label}\r
1299 ITERATE {longest.label.pass}\r
1300 FUNCTION {begin.bib}\r
1301 { preamble$ empty$\r
1302     'skip$\r
1303     { preamble$ write$ newline$ }\r
1304   if$\r
1305   "\begin{thebibliography}{"  longest.label  * "}" *\r
1306   write$ newline$\r
1307   "\providecommand{\url}[1]{\texttt{#1}}"\r
1308   write$ newline$\r
1309   "\providecommand{\urlprefix}{URL }"\r
1310   write$ newline$\r
1311   "\expandafter\ifx\csname urlstyle\endcsname\relax"\r
1312   write$ newline$\r
1313   "  \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"\r
1314   write$ newline$\r
1315   "  \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"\r
1316   write$ newline$\r
1317 }\r
1318 EXECUTE {begin.bib}\r
1319 EXECUTE {init.state.consts}\r
1320 ITERATE {call.type$}\r
1321 FUNCTION {end.bib}\r
1322 { newline$\r
1323   "\end{thebibliography}" write$ newline$\r
1324 }\r
1325 EXECUTE {end.bib}\r
1326 %% End of customized bst file\r
1327 %%\r
1328 %% End of file `wileyj.bst'.\r