]> AND Private Git Repository - kahina_paper1.git/blob - model2-names.bst
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
new
[kahina_paper1.git] / model2-names.bst
1 %%\r
2 %% This is file `model2-names.bst'  (Version 2.0),\r
3 %% \r
4 %% Copyright 2009-2013 Elsevier Ltd\r
5 %% \r
6 %% This file is part of the 'Elsarticle Bundle'.\r
7 %% ---------------------------------------------\r
8 %% \r
9 %% It may be distributed under the conditions of the LaTeX Project Public\r
10 %% License, either version 1.2 of this license or (at your option) any\r
11 %% later version.  The latest version of this license is in\r
12 %%    http://www.latex-project.org/lppl.txt\r
13 %% and version 1.2 or later is part of all distributions of LaTeX\r
14 %% version 1999/12/01 or later.\r
15 %%\r
16 %% $Id: model2-names.bst 217 2013-03-13 11:50:49Z rishi $\r
17 %%\r
18 %% $URL: http://lenova.river-valley.com/svn/elsbst/trunk/New-Model-2/model2-names.bst $\r
19 %% \r
20 \r
21 ENTRY\r
22   { address\r
23     archive\r
24     author\r
25     booktitle\r
26     chapter\r
27     collaboration\r
28     edition\r
29     editor\r
30     howpublished\r
31     institution\r
32     journal\r
33     key\r
34     month\r
35     note\r
36     number\r
37     organization\r
38     pages\r
39     publisher\r
40     school\r
41     series\r
42     title\r
43     type\r
44     volume\r
45     year\r
46     url\r
47     doi\r
48     eprint\r
49     pubmed\r
50   }\r
51   {}\r
52   { label extra.label sort.label short.list }\r
53 \r
54 INTEGERS { output.state before.all mid.sentence after.sentence after.block }\r
55 \r
56 STRINGS { urlprefix doiprefix eprintprefix pubmedprefix }\r
57 \r
58 FUNCTION {init.web.variables}\r
59 {\r
60  "\URLprefix "     'urlprefix :=\r
61  "\DOIprefix"      'doiprefix :=\r
62  "\ArXivprefix  "   'eprintprefix :=\r
63  "\Pubmedprefix "  'pubmedprefix :=\r
64 }\r
65 \r
66 FUNCTION {init.state.consts}\r
67 { #0 'before.all :=\r
68   #1 'mid.sentence :=\r
69   #2 'after.sentence :=\r
70   #3 'after.block :=\r
71 }\r
72 STRINGS { s t}\r
73 FUNCTION {output.comma}\r
74 { ", " * write$}\r
75    \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             { ", " * 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.commanull}\r
97 { 's :=\r
98   output.state mid.sentence =\r
99     { ", " * write$ }\r
100     { output.state after.block =\r
101         { ", " * write$\r
102           newline$\r
103           "\newblock " write$\r
104         }\r
105         { output.state before.all =\r
106             'write$\r
107             { add.period$ " " * write$ }\r
108           if$\r
109         }\r
110       if$\r
111       mid.sentence 'output.state :=\r
112     }\r
113   if$\r
114   s\r
115 }\r
116 FUNCTION {output}\r
117 { duplicate$ empty$\r
118     'pop$\r
119     'output.nonnull\r
120   if$\r
121 }\r
122 FUNCTION {output.check}\r
123 { 't :=\r
124   duplicate$ empty$\r
125     { pop$ "empty " t * " in " * cite$ * warning$ }\r
126     'output.nonnull\r
127   if$\r
128 }\r
129 FUNCTION {output.book.check}\r
130 { 't :=\r
131   duplicate$ empty$\r
132     { pop$ "empty " t * " in " * cite$ * warning$ }\r
133     'output.nonnull\r
134   if$\r
135 }\r
136 FUNCTION {fin.entry}\r
137 { add.period$\r
138   write$\r
139   newline$\r
140 }\r
141 \r
142 FUNCTION {new.block}\r
143 { output.state before.all =\r
144     'skip$\r
145     { after.block 'output.state := }\r
146   if$\r
147 }\r
148 FUNCTION {new.sentence}\r
149 { output.state after.block =\r
150     'skip$\r
151     { output.state before.all =\r
152         'skip$\r
153         { after.sentence 'output.state := }\r
154       if$\r
155     }\r
156   if$\r
157 }\r
158 FUNCTION {add.blank}\r
159 {  " " * before.all 'output.state :=\r
160 }\r
161 \r
162 FUNCTION {date.block}\r
163 {\r
164   new.block\r
165 }\r
166 \r
167 FUNCTION {not}\r
168 {   { #0 }\r
169     { #1 }\r
170   if$\r
171 }\r
172 FUNCTION {and}\r
173 {   'skip$\r
174     { pop$ #0 }\r
175   if$\r
176 }\r
177 FUNCTION {or}\r
178 {   { pop$ #1 }\r
179     'skip$\r
180   if$\r
181 }\r
182 FUNCTION {new.block.checkb}\r
183 { empty$\r
184   swap$ empty$\r
185   and\r
186     'skip$\r
187     'new.block\r
188   if$\r
189 }\r
190 FUNCTION {field.or.null}\r
191 { duplicate$ empty$\r
192     { pop$ "" }\r
193     'skip$\r
194   if$\r
195 }\r
196 FUNCTION {emphasize}\r
197 { duplicate$ empty$\r
198     { pop$ "" }\r
199     { "\textit{" swap$ * "}" * }\r
200   if$\r
201 }\r
202 FUNCTION {tie.or.space.prefix}\r
203 { duplicate$ text.length$ #3 <\r
204     { "~" }\r
205     { " " }\r
206   if$\r
207   swap$\r
208 }\r
209 \r
210 FUNCTION {capitalize}\r
211 { "u" change.case$ "t" change.case$ }\r
212 \r
213 FUNCTION {space.word}\r
214 { " " swap$ * " " * }\r
215  % Here are the language-specific definitions for explicit words.\r
216  % Each function has a name bbl.xxx where xxx is the English word.\r
217  % The language selected here is ENGLISH\r
218 FUNCTION {bbl.and}\r
219 { "and"}\r
220 \r
221 FUNCTION {bbl.etal}\r
222 { "et~al." }\r
223 \r
224 FUNCTION {bbl.editors}\r
225 { "Eds." }\r
226 \r
227 FUNCTION {bbl.editor}\r
228 { "Ed." }\r
229 \r
230 FUNCTION {bbl.edby}\r
231 { "edited by" }\r
232 \r
233 FUNCTION {bbl.edition}\r
234 { "ed." }\r
235 \r
236 FUNCTION {bbl.volume}\r
237 { "volume" }\r
238 \r
239 FUNCTION {bbl.of}\r
240 { "of" }\r
241 \r
242 FUNCTION {bbl.number}\r
243 { "number" }\r
244 \r
245 FUNCTION {bbl.nr}\r
246 { "no." }\r
247 \r
248 FUNCTION {bbl.in}\r
249 { "in" }\r
250 \r
251 FUNCTION {bbl.pages}\r
252 { "pp." }\r
253 \r
254 FUNCTION {bbl.page}\r
255 { "p." }\r
256 \r
257 FUNCTION {bbl.chapter}\r
258 { "chapter" }\r
259 \r
260 FUNCTION {bbl.techrep}\r
261 { "Technical Report" }\r
262 \r
263 FUNCTION {bbl.mthesis}\r
264 { "Master's thesis" }\r
265 \r
266 FUNCTION {bbl.phdthesis}\r
267 { "Ph.D. thesis" }\r
268 \r
269 MACRO {jan} {"January"}\r
270 \r
271 MACRO {feb} {"February"}\r
272 \r
273 MACRO {mar} {"March"}\r
274 \r
275 MACRO {apr} {"April"}\r
276 \r
277 MACRO {may} {"May"}\r
278 \r
279 MACRO {jun} {"June"}\r
280 \r
281 MACRO {jul} {"July"}\r
282 \r
283 MACRO {aug} {"August"}\r
284 \r
285 MACRO {sep} {"September"}\r
286 \r
287 MACRO {oct} {"October"}\r
288 \r
289 MACRO {nov} {"November"}\r
290 \r
291 MACRO {dec} {"December"}\r
292 \r
293 MACRO {acmcs} {"ACM Comput. Surv."}\r
294 \r
295 MACRO {acta} {"Acta Inf."}\r
296 \r
297 MACRO {cacm} {"Commun. ACM"}\r
298 \r
299 MACRO {ibmjrd} {"IBM J. Res. Dev."}\r
300 \r
301 MACRO {ibmsj} {"IBM Syst.~J."}\r
302 \r
303 MACRO {ieeese} {"IEEE Trans. Software Eng."}\r
304 \r
305 MACRO {ieeetc} {"IEEE Trans. Comput."}\r
306 \r
307 MACRO {ieeetcad}\r
308  {"IEEE Trans. Comput. Aid. Des."}\r
309 \r
310 MACRO {ipl} {"Inf. Process. Lett."}\r
311 \r
312 MACRO {jacm} {"J.~ACM"}\r
313 \r
314 MACRO {jcss} {"J.~Comput. Syst. Sci."}\r
315 \r
316 MACRO {scp} {"Sci. Comput. Program."}\r
317 \r
318 MACRO {sicomp} {"SIAM J. Comput."}\r
319 \r
320 MACRO {tocs} {"ACM Trans. Comput. Syst."}\r
321 \r
322 MACRO {tods} {"ACM Trans. Database Syst."}\r
323 \r
324 MACRO {tog} {"ACM Trans. Graphic."}\r
325 \r
326 MACRO {toms} {"ACM Trans. Math. Software"}\r
327 \r
328 MACRO {toois} {"ACM Trans. Office Inf. Syst."}\r
329 \r
330 MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}\r
331 \r
332 MACRO {tcs} {"Theor. Comput. Sci."}\r
333 \r
334 %% Begin - Added on March 13, 2013\r
335 \r
336 MACRO {aj} {"Astron. J."} \r
337 MACRO {actaa} {"Acta Astron."}\r
338 MACRO {araa} {"Annu. Rev. Astron. Astrophys."}\r
339 MACRO {apj}  {"Astrophys. J."}\r
340 MACRO {apjl} {"Astrophys. J. Lett."}\r
341 MACRO {apjs} {"Astrophys. J. Suppl. S"}\r
342 MACRO {ao} {"Appl. Optics"}\r
343 MACRO {apss} {"Astrophys. Space Sci."}\r
344 MACRO {aap} {"Astronom. Astrophys."}\r
345 MACRO {aapr} {"Astron. Astrophys Rev"}\r
346 MACRO {aaps} {"Astron. Astrophys. Sup."}\r
347 MACRO {azh} {"Astron. Zh+"}\r
348 MACRO {caa} {"Chinese Astron. Astr."}\r
349 MACRO {icarus} {"Icarus"}\r
350 MACRO {jcap} {"J. Cosmol. Astropart. Phys."}\r
351 MACRO {jrasc} {"J. Roy. Astron. Soc. Can."}\r
352 MACRO {memras} {"Memoirs of the RAS"}\r
353 MACRO {mnras} {"Mon. Not. R. Astron. Soc."}\r
354 MACRO {na} {"New Astron."}\r
355 MACRO {nar} {"New Astron. Rev."}\r
356 MACRO {pra} {"Phys. Rev. A"}\r
357 MACRO {prb} {"Phys. Rev. B"}\r
358 MACRO {prc} {"Phys. Rev. C"}\r
359 MACRO {prd} {"Phys. Rev. D"}\r
360 MACRO {pre} {"Phys. Rev. E"}\r
361 MACRO {prl} {"Phys. Rev. Lett"}\r
362 MACRO {pasa} {"Publ. Astron. Soc. Aust."}\r
363 MACRO {pasp} {"Publ. Astron. Soc. Pac."}\r
364 MACRO {pasj} {"Publ. Astron. Soc. Jpn."}\r
365 MACRO {rmxaa} {"Rev. Mex. Astron. Astr."}\r
366 MACRO {rjras} {"Q. J. Roy. Astron. Soc."}\r
367 MACRO {skytel} {"Sky Telescope"}\r
368 MACRO {solphys} {"Sol. Phys."}\r
369 MACRO {sovast} {"Sov. Astron."}\r
370 MACRO {ssr} {"Space Sci. Rev."}\r
371 MACRO {zap} {"Zeitschrift fuer Astrophysik"}\r
372 MACRO {nat} {"Nature"}\r
373 MACRO {iaucirc} {"IAU Cirulars"}\r
374 MACRO {gca} {"Geochim. Cosmochim. Ac."}\r
375 MACRO {grl} {"Geophys. Res. Lett."}\r
376 MACRO {jcp} {"J. Chem. Phys."}\r
377 MACRO {jgr} {"J. Geophys. Res."}\r
378 MACRO {jqsrt} {"J. Quant. Spectrosc. RA"}\r
379 MACRO {nphysa} {"Nucl. Phys. A"}\r
380 MACRO {physrep} {"Phys. Rep."}\r
381 MACRO {physscr} {"Phys. Scrip."}\r
382 MACRO {planss} {"Planet. Space Sci."}\r
383 MACRO {baas} {"Bull. Aust. Acoust. Soc"}\r
384 MACRO {aplett} {"Astrophys. Lett."}\r
385 MACRO {procspie} {"Proc. SPIE"}\r
386 MACRO {cjaa} {"Chinese J. Astron. Ast."}\r
387 MACRO {fcp} {"Fundam. Cosm. Phys."}\r
388 MACRO {memsai} {"Mem. Soc. Astron. Ital."}\r
389 MACRO {bain} {"Bull. Astron. Inst. Neth., Suppl. Ser."}\r
390 \r
391 %% End - Added on March 13, 2013\r
392 \r
393 \r
394 FUNCTION {bibinfo.check}\r
395 { swap$\r
396   duplicate$ missing$\r
397     {\r
398       pop$ pop$\r
399       ""\r
400     }\r
401     { duplicate$ empty$\r
402         {\r
403           swap$ pop$\r
404         }\r
405         { swap$\r
406           "\bibinfo{" swap$ * "}{" * swap$ * "}" *\r
407         }\r
408       if$\r
409     }\r
410   if$\r
411 }\r
412 FUNCTION {bibinfo.warn}\r
413 { swap$\r
414   duplicate$ missing$\r
415     {\r
416       swap$ "missing " swap$ * " in " * cite$ * warning$ pop$\r
417       ""\r
418     }\r
419     { duplicate$ empty$\r
420         {\r
421           swap$ "empty " swap$ * " in " * cite$ * warning$\r
422         }\r
423         { swap$\r
424           pop$\r
425         }\r
426       if$\r
427     }\r
428   if$\r
429 }\r
430 \r
431 STRINGS  { bibinfo}\r
432 \r
433 INTEGERS { nameptr namesleft numnames }\r
434 \r
435 FUNCTION {format.names}\r
436 { 'bibinfo :=\r
437   duplicate$ empty$ 'skip$ {\r
438   's :=\r
439   "" 't :=\r
440   #1 'nameptr :=\r
441   s num.names$ 'numnames :=\r
442   numnames 'namesleft :=\r
443     { namesleft #0 > }\r
444     { s nameptr\r
445       "{vv~}{ll}{, jj}{, f{.}.}"\r
446       format.name$\r
447       bibinfo bibinfo.check\r
448       't :=\r
449       nameptr #1 >\r
450         {\r
451           namesleft #1 >\r
452             { ", " * t * }\r
453             {\r
454               "," *\r
455               s nameptr "{ll}" format.name$ duplicate$ "others" =\r
456                 { 't := }\r
457                 { pop$ }\r
458               if$\r
459               t "others" =\r
460                 {\r
461                   " " * bbl.etal *\r
462                 }\r
463                 { " " * t * }\r
464               if$\r
465             }\r
466           if$\r
467         }\r
468         't\r
469       if$\r
470       nameptr #1 + 'nameptr :=\r
471       namesleft #1 - 'namesleft :=\r
472     }\r
473   while$\r
474   } if$\r
475 }\r
476 FUNCTION {format.names.ed}\r
477 {\r
478   format.names\r
479 }\r
480 FUNCTION {format.key}\r
481 { empty$\r
482     { key field.or.null }\r
483     { "" }\r
484   if$\r
485 }\r
486 \r
487 FUNCTION {format.authors}\r
488 { author "author" format.names\r
489     duplicate$ empty$ 'skip$\r
490     { collaboration "collaboration" bibinfo.check\r
491       duplicate$ empty$ 'skip$\r
492         { " (" swap$ * ")" * }\r
493       if$\r
494       *\r
495     }\r
496   if$\r
497 }\r
498 \r
499 FUNCTION {get.bbl.editor}\r
500 { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }\r
501 \r
502 FUNCTION {format.editors}\r
503 { editor "editor" format.names duplicate$ empty$ 'skip$\r
504     {\r
505       " " *\r
506       get.bbl.editor\r
507       capitalize\r
508    "(" swap$ * ")" *\r
509       *\r
510     }\r
511   if$\r
512 }\r
513 FUNCTION {format.note}\r
514 {\r
515  note empty$\r
516     { "" }\r
517     { note #1 #1 substring$\r
518       duplicate$ "{" =\r
519         'skip$\r
520         { output.state mid.sentence =\r
521           { "l" }\r
522           { "u" }\r
523         if$\r
524         change.case$\r
525         }\r
526       if$\r
527       note #2 global.max$ substring$ * "note" bibinfo.check\r
528     }\r
529   if$\r
530 }\r
531 \r
532 FUNCTION {format.title}\r
533 { title\r
534   duplicate$ empty$ 'skip$\r
535     { "t" change.case$ }\r
536   if$\r
537   "title" bibinfo.check\r
538 }\r
539 FUNCTION {format.full.names}\r
540 {'s :=\r
541  "" 't :=\r
542   #1 'nameptr :=\r
543   s num.names$ 'numnames :=\r
544   numnames 'namesleft :=\r
545     { namesleft #0 > }\r
546     { s nameptr\r
547       "{vv~}{ll}" format.name$\r
548       't :=\r
549       nameptr #1 >\r
550         {\r
551           namesleft #1 >\r
552             { ", " * t * }\r
553             {\r
554               s nameptr "{ll}" format.name$ duplicate$ "others" =\r
555                 { 't := }\r
556                 { pop$ }\r
557               if$\r
558               t "others" =\r
559                 {\r
560                   " " * bbl.etal *\r
561                 }\r
562                 {\r
563                   bbl.and\r
564                   space.word * t *\r
565                 }\r
566               if$\r
567             }\r
568           if$\r
569         }\r
570         't\r
571       if$\r
572       nameptr #1 + 'nameptr :=\r
573       namesleft #1 - 'namesleft :=\r
574     }\r
575   while$\r
576 }\r
577 \r
578 FUNCTION {author.editor.key.full}\r
579 { author empty$\r
580     { editor empty$\r
581         { key empty$\r
582             { cite$ #1 #3 substring$ }\r
583             'key\r
584           if$\r
585         }\r
586         { editor format.full.names }\r
587       if$\r
588     }\r
589     { author format.full.names }\r
590   if$\r
591 }\r
592 \r
593 FUNCTION {author.key.full}\r
594 { author empty$\r
595     { key empty$\r
596          { cite$ #1 #3 substring$ }\r
597           'key\r
598       if$\r
599     }\r
600     { author format.full.names }\r
601   if$\r
602 }\r
603 \r
604 FUNCTION {editor.key.full}\r
605 { editor empty$\r
606     { key empty$\r
607          { cite$ #1 #3 substring$ }\r
608           'key\r
609       if$\r
610     }\r
611     { editor format.full.names }\r
612   if$\r
613 }\r
614 \r
615 FUNCTION {make.full.names}\r
616 { type$ "book" =\r
617   type$ "inbook" =\r
618   or\r
619     'author.editor.key.full\r
620     { type$ "proceedings" =\r
621         'editor.key.full\r
622         'author.key.full\r
623       if$\r
624     }\r
625   if$\r
626 }\r
627 \r
628 FUNCTION {output.bibitem}\r
629 { newline$\r
630   "\bibitem[{" write$\r
631   label write$\r
632   ")" make.full.names duplicate$ short.list =\r
633      { pop$ }\r
634      { * }\r
635    if$\r
636   "}]{" * write$\r
637   cite$ write$\r
638   "}" write$\r
639   newline$\r
640   ""\r
641   before.all 'output.state :=\r
642 }\r
643 \r
644 FUNCTION {n.dashify}\r
645 {\r
646   't :=\r
647   ""\r
648     { t empty$ not }\r
649     { t #1 #1 substring$ "-" =\r
650         { t #1 #2 substring$ "--" = not\r
651             { "--" *\r
652               t #2 global.max$ substring$ 't :=\r
653             }\r
654             {   { t #1 #1 substring$ "-" = }\r
655                 { "-" *\r
656                   t #2 global.max$ substring$ 't :=\r
657                 }\r
658               while$\r
659             }\r
660           if$\r
661         }\r
662         { t #1 #1 substring$ *\r
663           t #2 global.max$ substring$ 't :=\r
664         }\r
665       if$\r
666     }\r
667   while$\r
668 }\r
669 \r
670 FUNCTION {word.in}\r
671 { bbl.in %capitalize\r
672   ":" *\r
673   " " * }\r
674 \r
675 FUNCTION {format.date}\r
676 { year "year" bibinfo.check duplicate$ empty$\r
677     {\r
678     }\r
679     'skip$\r
680   if$\r
681   extra.label *\r
682   before.all 'output.state :=\r
683   ", " swap$ *\r
684 }\r
685 FUNCTION {format.btitle}\r
686 { title "title" bibinfo.check\r
687   duplicate$ empty$ 'skip$\r
688     {\r
689     }\r
690   if$\r
691 }\r
692 FUNCTION {either.or.check}\r
693 { empty$\r
694     'pop$\r
695     { "can't use both " swap$ * " fields in " * cite$ * warning$ }\r
696   if$\r
697 }\r
698 FUNCTION {format.bvolume}\r
699 { volume empty$\r
700     { "" }\r
701     { bbl.volume volume tie.or.space.prefix\r
702       "volume" bibinfo.check * *\r
703       series "series" bibinfo.check\r
704       duplicate$ empty$ 'pop$\r
705         { swap$ bbl.of space.word * swap$\r
706           emphasize * }\r
707       if$\r
708       "volume and number" number either.or.check\r
709     }\r
710   if$\r
711 }\r
712 FUNCTION {format.number.series}\r
713 { volume empty$\r
714     { number empty$\r
715         { series field.or.null }\r
716         { series empty$\r
717             { number "number" bibinfo.check }\r
718         { output.state mid.sentence =\r
719             { bbl.number }\r
720             { bbl.number capitalize }\r
721           if$\r
722           number tie.or.space.prefix "number" bibinfo.check * *\r
723           bbl.in space.word *\r
724           series "series" bibinfo.check *\r
725         }\r
726       if$\r
727     }\r
728       if$\r
729     }\r
730     { "" }\r
731   if$\r
732 }\r
733 \r
734 FUNCTION {format.edition}\r
735 { edition duplicate$ empty$ 'skip$\r
736     {\r
737       output.state mid.sentence =\r
738         { "l" }\r
739         { "t" }\r
740       if$ change.case$\r
741       "edition" bibinfo.check\r
742       " " * bbl.edition *\r
743     }\r
744   if$\r
745 }\r
746 INTEGERS { multiresult }\r
747 FUNCTION {multi.page.check}\r
748 { 't :=\r
749   #0 'multiresult :=\r
750     { multiresult not\r
751       t empty$ not\r
752       and\r
753     }\r
754     { t #1 #1 substring$\r
755       duplicate$ "-" =\r
756       swap$ duplicate$ "," =\r
757       swap$ "+" =\r
758       or or\r
759         { #1 'multiresult := }\r
760         { t #2 global.max$ substring$ 't := }\r
761       if$\r
762     }\r
763   while$\r
764   multiresult\r
765 }\r
766 %FUNCTION {format.pages}\r
767 %{ pages duplicate$ empty$ 'skip$\r
768 %    { duplicate$ multi.page.check\r
769 %        {\r
770 %          n.dashify\r
771 %        }\r
772 %        {\r
773 %        }\r
774 %      if$\r
775 %      "pages" bibinfo.check\r
776 %    }\r
777 %  if$\r
778 %}\r
779 \r
780 FUNCTION {format.pages}\r
781 { pages duplicate$ empty$ 'skip$\r
782     { duplicate$ multi.page.check\r
783         {\r
784           bbl.pages swap$\r
785           n.dashify\r
786         }\r
787         {\r
788           bbl.page swap$\r
789         }\r
790       if$\r
791       tie.or.space.prefix\r
792       "pages" bibinfo.check\r
793       * *\r
794     }\r
795   if$\r
796 }\r
797 \r
798 FUNCTION {format.journal.pages}\r
799 { pages duplicate$ empty$ 'pop$\r
800     { swap$ duplicate$ empty$\r
801         { pop$ pop$ format.pages }\r
802         {\r
803           ", " *\r
804           swap$\r
805           n.dashify\r
806           "pages" bibinfo.check\r
807           *\r
808         }\r
809       if$\r
810     }\r
811   if$\r
812 }\r
813 FUNCTION {format.vol.num.pages}\r
814 { volume field.or.null\r
815   duplicate$ empty$ 'skip$\r
816     {\r
817       "volume" bibinfo.check\r
818     }\r
819   if$\r
820 }\r
821 \r
822 FUNCTION {format.chapter.pages}\r
823 { chapter empty$\r
824     { "" }\r
825     { type empty$\r
826         { bbl.chapter }\r
827         { type "l" change.case$\r
828           "type" bibinfo.check\r
829         }\r
830       if$\r
831       chapter tie.or.space.prefix\r
832       "chapter" bibinfo.check\r
833       * *\r
834     }\r
835   if$\r
836 }\r
837 \r
838 FUNCTION {format.booktitle}\r
839 {\r
840   booktitle "booktitle" bibinfo.check\r
841 }\r
842 FUNCTION {format.in.ed.booktitle}\r
843 { format.booktitle duplicate$ empty$ 'skip$\r
844     {\r
845       editor "editor" format.names.ed duplicate$ empty$ 'pop$\r
846         {\r
847           " " *\r
848           get.bbl.editor\r
849           capitalize\r
850           "(" swap$ * "), " *\r
851           * swap$\r
852           * }\r
853       if$\r
854       word.in swap$ *\r
855     }\r
856   if$\r
857 }\r
858 FUNCTION {format.thesis.type}\r
859 { type duplicate$ empty$\r
860     'pop$\r
861     { swap$ pop$\r
862       "t" change.case$ "type" bibinfo.check\r
863     }\r
864   if$\r
865 }\r
866 FUNCTION {format.tr.number}\r
867 { number "number" bibinfo.check\r
868   type duplicate$ empty$\r
869     { pop$ bbl.techrep }\r
870     'skip$\r
871   if$\r
872   "type" bibinfo.check\r
873   swap$ duplicate$ empty$\r
874     { pop$ "t" change.case$ }\r
875     { tie.or.space.prefix * * }\r
876   if$\r
877 }\r
878 FUNCTION {format.article.crossref}\r
879 {\r
880   word.in\r
881   " \cite{" * crossref * "}" *\r
882 }\r
883 FUNCTION {format.book.crossref}\r
884 { volume duplicate$ empty$\r
885     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$\r
886       pop$ word.in\r
887     }\r
888     { bbl.volume\r
889       capitalize\r
890       swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *\r
891     }\r
892   if$\r
893   " \cite{" * crossref * "}" *\r
894 }\r
895 FUNCTION {format.incoll.inproc.crossref}\r
896 {\r
897   word.in\r
898   " \cite{" * crossref * "}" *\r
899 }\r
900 FUNCTION {format.org.or.pub}\r
901 { 't :=\r
902   ""\r
903   address empty$ t empty$ and\r
904     'skip$\r
905     {\r
906       t empty$\r
907         { address "address" bibinfo.check *\r
908         }\r
909         { t *\r
910           address empty$\r
911             'skip$\r
912             { ", " * address "address" bibinfo.check * }\r
913           if$\r
914         }\r
915       if$\r
916     }\r
917   if$\r
918 }\r
919 FUNCTION {format.publisher.address}\r
920 { publisher "publisher" bibinfo.check format.org.or.pub\r
921 }\r
922 \r
923 FUNCTION {format.organization.address}\r
924 { organization "organization" bibinfo.check format.org.or.pub\r
925 }\r
926 \r
927 FUNCTION {print.url}\r
928  {url duplicate$ empty$\r
929    { pop$ "" }\r
930    { new.sentence\r
931      urlprefix "\url{" * swap$  * "}" *\r
932    }\r
933    if$\r
934  }\r
935 \r
936 FUNCTION {print.doi}\r
937  {doi duplicate$ empty$\r
938    { pop$ "" }\r
939    { new.sentence\r
940      doiprefix "\doi{" * swap$  * "}" *\r
941    }\r
942    if$\r
943  }\r
944 \r
945 FUNCTION {print.eprint}\r
946  {eprint duplicate$ empty$\r
947    { pop$ "" }\r
948    { new.sentence\r
949      duplicate$ "\href{http://arxiv.org/abs/" swap$ * "}{\tt arXiv:" * swap$ * "}" *   }\r
950    if$\r
951  }\r
952 \r
953 FUNCTION {print.pubmed}\r
954  {pubmed duplicate$ empty$\r
955    { pop$ "" }\r
956    { new.sentence\r
957      pubmedprefix "\Pubmed{" * swap$  * "}" *\r
958    }\r
959    if$\r
960  }\r
961 \r
962 FUNCTION {webpage}\r
963 { "%Type = Webpage" write$\r
964   output.bibitem\r
965   format.authors "author" output.check\r
966   author format.key output\r
967   author empty$\r
968   {\r
969     format.title "title" output.check\r
970     new.block\r
971     format.date "year" output.check\r
972     date.block\r
973   }\r
974   {\r
975     format.date "year" output.check\r
976     date.block\r
977     format.title "title" output.check\r
978     new.block\r
979 }\r
980   if$\r
981   print.url output\r
982   fin.entry\r
983 }\r
984 \r
985 \r
986 FUNCTION {article}\r
987 { "%Type = Article" write$\r
988   output.bibitem\r
989   format.authors "author" output.check\r
990   author format.key output\r
991   format.date "year" output.check\r
992   date.block\r
993   format.title "title" output.check\r
994   new.block\r
995   crossref missing$\r
996     {\r
997       journal\r
998       "journal" bibinfo.check\r
999       "journal" output.check\r
1000       add.blank\r
1001       format.vol.num.pages output\r
1002     }\r
1003     { format.article.crossref output.nonnull\r
1004     }\r
1005   if$\r
1006   format.journal.pages\r
1007   new.block\r
1008   print.url output\r
1009   print.doi output\r
1010   print.eprint output\r
1011   print.pubmed output\r
1012   format.note output\r
1013   fin.entry\r
1014 }\r
1015 \r
1016 FUNCTION {book}\r
1017 { "%Type = Book" write$\r
1018   output.bibitem\r
1019   author empty$\r
1020     { format.editors "author and editor" output.check\r
1021       editor format.key output\r
1022     }\r
1023     { format.authors output.nonnull\r
1024       crossref missing$\r
1025         { "author and editor" editor either.or.check }\r
1026         'skip$\r
1027       if$\r
1028     }\r
1029   if$\r
1030   format.date "year" output.check\r
1031   date.block\r
1032   format.btitle "title" output.check\r
1033   crossref missing$\r
1034     { format.bvolume output\r
1035       new.block\r
1036       format.number.series output\r
1037       format.edition output\r
1038       new.sentence\r
1039       format.publisher.address output\r
1040     }\r
1041     {\r
1042       new.block\r
1043       format.book.crossref output.nonnull\r
1044     }\r
1045   if$\r
1046   new.block\r
1047   print.url output\r
1048   print.doi output\r
1049   print.eprint output\r
1050   print.pubmed output\r
1051   format.note output\r
1052   fin.entry\r
1053 }\r
1054 \r
1055 FUNCTION {booklet}\r
1056 { "%Type = Booklet" write$\r
1057   output.bibitem\r
1058   format.authors output\r
1059   author format.key output\r
1060   format.date "year" output.check\r
1061   date.block\r
1062   format.title "title" output.check\r
1063   new.block\r
1064   howpublished "howpublished" bibinfo.check output\r
1065   address "address" bibinfo.check output\r
1066   new.block\r
1067   print.url output\r
1068   print.doi output\r
1069   print.eprint output\r
1070   print.pubmed output\r
1071   format.note output\r
1072   fin.entry\r
1073 }\r
1074 \r
1075 FUNCTION {inbook}\r
1076 { "%Type = Inbook" write$\r
1077   output.bibitem\r
1078   author empty$\r
1079     { format.editors "author and editor" output.check\r
1080       editor format.key output\r
1081     }\r
1082     { format.authors output.nonnull\r
1083       crossref missing$\r
1084         { "author and editor" editor either.or.check }\r
1085         'skip$\r
1086       if$\r
1087     }\r
1088   if$\r
1089   format.date "year" output.check\r
1090   date.block\r
1091   format.btitle "title" output.check\r
1092   format.edition output\r
1093   crossref missing$\r
1094     {\r
1095       format.publisher.address output\r
1096       format.bvolume output\r
1097       format.chapter.pages "chapter and pages" output.check\r
1098       new.block\r
1099       format.number.series output\r
1100       new.sentence\r
1101     }\r
1102     {\r
1103       format.chapter.pages "chapter and pages" output.check\r
1104       new.block\r
1105       format.book.crossref output.nonnull\r
1106     }\r
1107   if$\r
1108   format.pages "pages" output.check\r
1109   new.block\r
1110   print.url output\r
1111   print.doi output\r
1112   print.eprint output\r
1113   print.pubmed output\r
1114   format.note output\r
1115   fin.entry\r
1116 }\r
1117 \r
1118 FUNCTION {incollection}\r
1119 { "%Type = Incollection" write$\r
1120   output.bibitem\r
1121   format.authors "author" output.check\r
1122   author format.key output\r
1123   format.date "year" output.check\r
1124   date.block\r
1125   format.title "title" output.book.check\r
1126   new.sentence\r
1127   crossref missing$\r
1128     { format.in.ed.booktitle "booktitle" output.book.check\r
1129       format.edition output\r
1130       format.publisher.address output\r
1131       format.bvolume output\r
1132       format.number.series output\r
1133       format.chapter.pages output\r
1134       new.sentence\r
1135     }\r
1136     { format.incoll.inproc.crossref output.nonnull\r
1137       format.chapter.pages output\r
1138     }\r
1139   if$\r
1140   format.pages "pages" output.check\r
1141   new.block\r
1142   print.url output\r
1143   print.doi output\r
1144   print.eprint output\r
1145   print.pubmed output\r
1146   format.note output\r
1147   fin.entry\r
1148 }\r
1149 \r
1150 FUNCTION {inproceedings}\r
1151 { "%Type = Inproceedings" write$\r
1152   output.bibitem\r
1153   format.authors "author" output.check\r
1154   author format.key output\r
1155   format.date "year" output.check\r
1156   date.block\r
1157   format.title "title" output.book.check\r
1158   new.sentence\r
1159   crossref missing$\r
1160     { format.in.ed.booktitle "booktitle" output.check\r
1161       new.sentence\r
1162       publisher empty$\r
1163         { format.organization.address output }\r
1164         { organization "organization" bibinfo.check output\r
1165           format.publisher.address output\r
1166         }\r
1167       if$\r
1168 %      format.bvolume output\r
1169 %      format.number.series output\r
1170 %      format.pages output\r
1171     }\r
1172     { format.incoll.inproc.crossref output.nonnull\r
1173       format.pages output\r
1174     }\r
1175   if$\r
1176   format.pages "pages" output.check\r
1177   new.block\r
1178   print.url output\r
1179   print.doi output\r
1180   print.eprint output\r
1181   print.pubmed output\r
1182   format.note output\r
1183   fin.entry\r
1184 }\r
1185 \r
1186 FUNCTION {conference} { inproceedings }\r
1187 \r
1188 FUNCTION {manual}\r
1189 { "%Type = Manual" write$\r
1190   output.bibitem\r
1191   format.authors output\r
1192   author format.key output\r
1193   format.date "year" output.check\r
1194   date.block\r
1195   format.btitle "title" output.check\r
1196   format.edition output\r
1197   organization address new.block.checkb\r
1198   organization "organization" bibinfo.check output\r
1199   address "address" bibinfo.check output\r
1200   new.block\r
1201   print.url output\r
1202   print.doi output\r
1203   print.eprint output\r
1204   print.pubmed output\r
1205   format.note output\r
1206   fin.entry\r
1207 }\r
1208 \r
1209 FUNCTION {mastersthesis}\r
1210 { "%Type = Masterthesis" write$\r
1211   output.bibitem\r
1212   format.authors "author" output.check\r
1213   author format.key output\r
1214   format.date "year" output.check\r
1215   date.block\r
1216   format.btitle\r
1217   "title" output.check\r
1218   new.block\r
1219   bbl.mthesis format.thesis.type output.nonnull\r
1220   school "school" bibinfo.warn output\r
1221   address "address" bibinfo.check output\r
1222   new.block\r
1223   print.url output\r
1224   print.doi output\r
1225   print.eprint output\r
1226   print.pubmed output\r
1227   format.note output\r
1228   fin.entry\r
1229 }\r
1230 \r
1231 FUNCTION {misc}\r
1232 { "%Type = Misc" write$\r
1233   output.bibitem\r
1234   format.authors output\r
1235   author format.key output\r
1236   format.date "year" output.check\r
1237   date.block\r
1238   format.title output\r
1239   new.block\r
1240   howpublished "howpublished" bibinfo.check output\r
1241   new.block\r
1242   print.url output\r
1243   print.doi output\r
1244   print.eprint output\r
1245   print.pubmed output\r
1246   format.note output\r
1247   fin.entry\r
1248 }\r
1249 \r
1250 FUNCTION {phdthesis}\r
1251 { "%Type = Phdthesis" write$\r
1252   output.bibitem\r
1253   format.authors "author" output.check\r
1254   author format.key output\r
1255   format.date "year" output.check\r
1256   date.block\r
1257   format.btitle\r
1258   "title" output.check\r
1259   new.block\r
1260   bbl.phdthesis format.thesis.type output.nonnull\r
1261   school "school" bibinfo.warn output\r
1262   address "address" bibinfo.check output\r
1263   new.block\r
1264   print.url output\r
1265   print.doi output\r
1266   print.eprint output\r
1267   print.pubmed output\r
1268   format.note output\r
1269   fin.entry\r
1270 }\r
1271 \r
1272 FUNCTION {proceedings}\r
1273 { "%Type = Proceedings" write$\r
1274   output.bibitem\r
1275   format.editors output\r
1276   editor format.key output\r
1277   format.date "year" output.check\r
1278   date.block\r
1279   format.btitle "title" output.check\r
1280   format.bvolume output\r
1281   format.number.series output\r
1282   new.sentence\r
1283   publisher empty$\r
1284     { format.organization.address output }\r
1285     { organization "organization" bibinfo.check output\r
1286       format.publisher.address output\r
1287     }\r
1288   if$\r
1289   new.block\r
1290   print.url output\r
1291   print.doi output\r
1292   print.eprint output\r
1293   print.pubmed output\r
1294   format.note output\r
1295   fin.entry\r
1296 }\r
1297 \r
1298 FUNCTION {techreport}\r
1299 { "%Type = Techreport" write$\r
1300   output.bibitem\r
1301   format.authors "author" output.check\r
1302   author format.key output\r
1303   format.date "year" output.check\r
1304   date.block\r
1305   format.btitle\r
1306   "title" output.check\r
1307   new.block\r
1308   format.tr.number output.nonnull\r
1309   institution "institution" bibinfo.warn output\r
1310   address "address" bibinfo.check output\r
1311   new.block\r
1312   print.url output\r
1313   print.doi output\r
1314   print.eprint output\r
1315   print.pubmed output\r
1316   format.note output\r
1317   fin.entry\r
1318 }\r
1319 \r
1320 FUNCTION {unpublished}\r
1321 { "%Type = Unpublished" write$\r
1322   output.bibitem\r
1323   format.authors "author" output.check\r
1324   author format.key output\r
1325   format.date "year" output.check\r
1326   date.block\r
1327   format.title "title" output.check\r
1328   new.block\r
1329   print.url output\r
1330   print.doi output\r
1331   print.eprint output\r
1332   print.pubmed output\r
1333   format.note "note" output.check\r
1334   fin.entry\r
1335 }\r
1336 \r
1337 FUNCTION {default.type} { misc }\r
1338 READ\r
1339 FUNCTION {sortify}\r
1340 { purify$\r
1341   "l" change.case$\r
1342 }\r
1343 INTEGERS { len }\r
1344 FUNCTION {chop.word}\r
1345 { 's :=\r
1346   'len :=\r
1347   s #1 len substring$ =\r
1348     { s len #1 + global.max$ substring$ }\r
1349     's\r
1350   if$\r
1351 }\r
1352 FUNCTION {format.lab.names}\r
1353 { 's :=\r
1354   "" 't :=\r
1355   s #1 "{vv~}{ll}" format.name$\r
1356   s num.names$ duplicate$\r
1357   #2 >\r
1358     { pop$\r
1359       " " * bbl.etal *\r
1360     }\r
1361     { #2 <\r
1362         'skip$\r
1363         { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =\r
1364             {\r
1365               " " * bbl.etal *\r
1366             }\r
1367             { bbl.and space.word * s #2 "{vv~}{ll}" format.name$\r
1368               * }\r
1369           if$\r
1370         }\r
1371       if$\r
1372     }\r
1373   if$\r
1374 }\r
1375 \r
1376 FUNCTION {author.key.label}\r
1377 { author empty$\r
1378     { key empty$\r
1379         { cite$ #1 #3 substring$ }\r
1380         'key\r
1381       if$\r
1382     }\r
1383     { author format.lab.names }\r
1384   if$\r
1385 }\r
1386 \r
1387 FUNCTION {author.editor.key.label}\r
1388 { author empty$\r
1389     { editor empty$\r
1390         { key empty$\r
1391             { cite$ #1 #3 substring$ }\r
1392             'key\r
1393           if$\r
1394         }\r
1395         { editor format.lab.names }\r
1396       if$\r
1397     }\r
1398     { author format.lab.names }\r
1399   if$\r
1400 }\r
1401 \r
1402 FUNCTION {editor.key.label}\r
1403 { editor empty$\r
1404     { key empty$\r
1405         { cite$ #1 #3 substring$ }\r
1406         'key\r
1407       if$\r
1408     }\r
1409     { editor format.lab.names }\r
1410   if$\r
1411 }\r
1412 \r
1413 FUNCTION {calc.short.authors}\r
1414 { type$ "book" =\r
1415   type$ "inbook" =\r
1416   or\r
1417     'author.editor.key.label\r
1418     { type$ "proceedings" =\r
1419         'editor.key.label\r
1420         'author.key.label\r
1421       if$\r
1422     }\r
1423   if$\r
1424   'short.list :=\r
1425 }\r
1426 \r
1427 FUNCTION {calc.label}\r
1428 { calc.short.authors\r
1429   short.list\r
1430   "("\r
1431   *\r
1432   year duplicate$ empty$\r
1433   short.list key field.or.null = or\r
1434      { pop$ "" }\r
1435      'skip$\r
1436   if$\r
1437   *\r
1438   'label :=\r
1439 }\r
1440 \r
1441 FUNCTION {sort.format.names}\r
1442 { 's :=\r
1443   #1 'nameptr :=\r
1444   ""\r
1445   s num.names$ 'numnames :=\r
1446   numnames 'namesleft :=\r
1447     { namesleft #0 > }\r
1448     { s nameptr\r
1449       "{ll{ }}{  f{ }}{  jj{ }}"\r
1450       format.name$ 't :=\r
1451       nameptr #1 >\r
1452         {\r
1453           "   "  *\r
1454           namesleft #1 = t "others" = and\r
1455             { "zzzzz" * }\r
1456             { t sortify * }\r
1457           if$\r
1458         }\r
1459         { t sortify * }\r
1460       if$\r
1461       nameptr #1 + 'nameptr :=\r
1462       namesleft #1 - 'namesleft :=\r
1463     }\r
1464   while$\r
1465 }\r
1466 \r
1467 FUNCTION {sort.format.title}\r
1468 { 't :=\r
1469   "A " #2\r
1470     "An " #3\r
1471       "The " #4 t chop.word\r
1472     chop.word\r
1473   chop.word\r
1474   sortify\r
1475   #1 global.max$ substring$\r
1476 }\r
1477 FUNCTION {author.sort}\r
1478 { author empty$\r
1479     { key empty$\r
1480         { "to sort, need author or key in " cite$ * warning$\r
1481           ""\r
1482         }\r
1483         { key sortify }\r
1484       if$\r
1485     }\r
1486     { author sort.format.names }\r
1487   if$\r
1488 }\r
1489 FUNCTION {author.editor.sort}\r
1490 { author empty$\r
1491     { editor empty$\r
1492         { key empty$\r
1493             { "to sort, need author, editor, or key in " cite$ * warning$\r
1494               ""\r
1495             }\r
1496             { key sortify }\r
1497           if$\r
1498         }\r
1499         { editor sort.format.names }\r
1500       if$\r
1501     }\r
1502     { author sort.format.names }\r
1503   if$\r
1504 }\r
1505 FUNCTION {editor.sort}\r
1506 { editor empty$\r
1507     { key empty$\r
1508         { "to sort, need editor or key in " cite$ * warning$\r
1509           ""\r
1510         }\r
1511         { key sortify }\r
1512       if$\r
1513     }\r
1514     { editor sort.format.names }\r
1515   if$\r
1516 }\r
1517 FUNCTION {presort}\r
1518 { calc.label\r
1519   label sortify\r
1520   "    "\r
1521   *\r
1522   type$ "book" =\r
1523   type$ "inbook" =\r
1524   or\r
1525     'author.editor.sort\r
1526     { type$ "proceedings" =\r
1527         'editor.sort\r
1528         'author.sort\r
1529       if$\r
1530     }\r
1531   if$\r
1532   #1 entry.max$ substring$\r
1533   'sort.label :=\r
1534   sort.label\r
1535   *\r
1536   "    "\r
1537   *\r
1538   title field.or.null\r
1539   sort.format.title\r
1540   *\r
1541   #1 entry.max$ substring$\r
1542   'sort.key$ :=\r
1543 }\r
1544 \r
1545 ITERATE {presort}\r
1546 SORT\r
1547 STRINGS { last.label next.extra }\r
1548 INTEGERS { last.extra.num number.label }\r
1549 FUNCTION {initialize.extra.label.stuff}\r
1550 { #0 int.to.chr$ 'last.label :=\r
1551   "" 'next.extra :=\r
1552   #0 'last.extra.num :=\r
1553   #0 'number.label :=\r
1554 }\r
1555 FUNCTION {forward.pass}\r
1556 { last.label label =\r
1557     { last.extra.num #1 + 'last.extra.num :=\r
1558       last.extra.num int.to.chr$ 'extra.label :=\r
1559     }\r
1560     { "a" chr.to.int$ 'last.extra.num :=\r
1561       "" 'extra.label :=\r
1562       label 'last.label :=\r
1563     }\r
1564   if$\r
1565   number.label #1 + 'number.label :=\r
1566 }\r
1567 FUNCTION {reverse.pass}\r
1568 { next.extra "b" =\r
1569     { "a" 'extra.label := }\r
1570     'skip$\r
1571   if$\r
1572   extra.label 'next.extra :=\r
1573   extra.label\r
1574   duplicate$ empty$\r
1575     'skip$\r
1576 %    { "{\natexlab{" swap$ * "}}" * }\r
1577     { "" swap$ * "" * }\r
1578   if$\r
1579   'extra.label :=\r
1580   label extra.label * 'label :=\r
1581 }\r
1582 EXECUTE {initialize.extra.label.stuff}\r
1583 ITERATE {forward.pass}\r
1584 REVERSE {reverse.pass}\r
1585 FUNCTION {bib.sort.order}\r
1586 { sort.label\r
1587   "    "\r
1588   *\r
1589   year field.or.null sortify\r
1590   *\r
1591   "    "\r
1592   *\r
1593   title field.or.null\r
1594   sort.format.title\r
1595   *\r
1596   #1 entry.max$ substring$\r
1597   'sort.key$ :=\r
1598 }\r
1599 ITERATE {bib.sort.order}\r
1600 SORT\r
1601 FUNCTION {begin.bib}\r
1602 { preamble$ empty$\r
1603     'skip$\r
1604     { preamble$ write$ newline$ }\r
1605   if$\r
1606   "\begin{thebibliography}{" number.label int.to.str$ * "}" *\r
1607   write$ newline$\r
1608   "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi"\r
1609   write$ newline$\r
1610   "\providecommand{\url}[1]{\texttt{#1}}"\r
1611   write$ newline$\r
1612   "\providecommand{\href}[2]{#2}"\r
1613   write$ newline$\r
1614   "\providecommand{\path}[1]{#1}"\r
1615   write$ newline$\r
1616   "\providecommand{\DOIprefix}{doi:}"\r
1617   write$ newline$\r
1618   "\providecommand{\ArXivprefix}{arXiv:}"\r
1619   write$ newline$\r
1620   "\providecommand{\URLprefix}{URL: }"\r
1621   write$ newline$\r
1622   "\providecommand{\Pubmedprefix}{pmid:}"\r
1623   write$ newline$\r
1624   "\providecommand{\doi}[1]{\href{http://dx.doi.org/#1}{\path{#1}}}"\r
1625   write$ newline$\r
1626   "\providecommand{\Pubmed}[1]{\href{pmid:#1}{\path{#1}}}"\r
1627   write$ newline$\r
1628   "\providecommand{\bibinfo}[2]{#2}"\r
1629   write$ newline$\r
1630         "\ifx\xfnm\relax \def\xfnm[#1]{\unskip,\space#1}\fi"\r
1631   write$ newline$\r
1632 }\r
1633 EXECUTE {begin.bib}\r
1634 EXECUTE {init.state.consts}\r
1635 EXECUTE {init.web.variables} \r
1636 ITERATE {call.type$}\r
1637 FUNCTION {end.bib}\r
1638 { newline$\r
1639   "\end{thebibliography}" write$ newline$\r
1640 }\r
1641 EXECUTE {end.bib}\r
1642 %% End of customized bst file\r
1643 %%\r
1644 %% End of file `model2-names.bst'.\r
1645 %%\r
1646 %% Change log:\r
1647 %% -----------\r
1648 %% 22.04.2011\r
1649 %%\r
1650 %% 10.08.2012\r
1651 %%   a. doi, url, eprint, pmid added\r
1652 %%   b. Bibtype `webpage' defined\r
1653 %%\r
1654 %% 30.08.2012\r
1655 %%   a. collaboration added.\r
1656 %%\r