played a little with settings for headstyle - causes strange numbers - check!!
[cluster_expansion_thesis.git] / Bibliography / elsart-num.bst
blob9c3e432ae27448a4efdc5a7b70652b41477fcaf3
1 %%
2 %% This is file `elsart-num.bst',
3 %% generated with the docstrip utility.
4 %%
5 %% The original source files were:
6 %%
7 %% merlin.mbs  (with options: `,seq-no,nm-init,ed-au,dt-end,yr-par,yrp-x,jttl-rm,thtit-a,vnum-sp,volp-blk,jdt-p,pp-last,jnm-x,btit-rm,bt-rm,pub-date,pub-xpar,pre-edn,url,url-nl,edpar,blk-com,in-col,pp,ed,abr,ednx,ord,jabr,and-xcom,xand,em-x,nfss')
8 %% After docstrip generation some manual changes were made (SP)
10 %SP 2001/01/23
11 % Changed the pages output for inproceedings
12 %SP 2001/07/25
13 % Add the leading space in format.vol.num.pages only if there is a volume
15 %% ----------------------------------------
16 %% *** Numerical reference style for elsart ***
17 %% $Id: elsart-num.bst,v 1.1 2004/03/18 15:18:53 iowen Exp $
18 %% 
19 %% Copyright 1994-1999 Patrick W Daly
20  % ===============================================================
21  % IMPORTANT NOTICE:
22  % This bibliographic style (bst) file has been generated from one or
23  % more master bibliographic style (mbs) files, listed above.
24  %
25  % This generated file can be redistributed and/or modified under the terms
26  % of the LaTeX Project Public License Distributed from CTAN
27  % archives in directory macros/latex/base/lppl.txt; either
28  % version 1 of the License, or any later version.
29  % ===============================================================
30  % Name and version information of the main mbs file:
31  % \ProvidesFile{merlin.mbs}[1999/03/18 3.88 (PWD)]
32  %   For use with BibTeX version 0.99a or later
33  %-------------------------------------------------------------------
34  % This bibliography style file is intended for texts in ENGLISH
35  % This is a numerical citation style, and as such is standard LaTeX.
36  % It requires no extra package to interface to the main text.
37  % The form of the \bibitem entries is
38  %   \bibitem{key}...
39  % Usage of \cite is as follows:
40  %   \cite{key} ==>>          [#]
41  %   \cite[chap. 2]{key} ==>> [#, chap. 2]
42  % where # is a number determined by the ordering in the reference list.
43  % The order in the reference list is that by which the works were originally
44  %   cited in the text, or that in the database.
45  %---------------------------------------------------------------------
47 ENTRY
48   { address
49     author
50     booktitle
51     chapter
52     edition
53     editor
54     howpublished
55     institution
56     journal
57     key
58     month
59     note
60     number
61     organization
62     pages
63     publisher
64     school
65     series
66     title
67     type
68     url
69     volume
70     year
71   }
72   {}
73   { label }
75 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
77 FUNCTION {init.state.consts}
78 { #0 'before.all :=
79   #1 'mid.sentence :=
80   #2 'after.sentence :=
81   #3 'after.block :=
84 STRINGS { s t }
86 FUNCTION {output.nonnull}
87 { 's :=
88   output.state mid.sentence =
89     { ", " * write$ }
90     { output.state after.block =
91         { add.period$ write$
92           newline$
93           "\newblock " write$
94         }
95         { output.state before.all =
96             'write$
97             { add.period$ " " * write$ }
98           if$
99         }
100       if$
101       mid.sentence 'output.state :=
102     }
103   if$
104   s
107 FUNCTION {output}
108 { duplicate$ empty$
109     'pop$
110     'output.nonnull
111   if$
114 FUNCTION {output.check}
115 { 't :=
116   duplicate$ empty$
117     { pop$ "empty " t * " in " * cite$ * warning$ }
118     'output.nonnull
119   if$
122 FUNCTION {fin.entry}
123 { add.period$
124   write$
125   newline$
128 FUNCTION {new.block}
129 { output.state before.all =
130     'skip$
131     { after.block 'output.state := }
132   if$
135 FUNCTION {new.sentence}
136 { output.state after.block =
137     'skip$
138     { output.state before.all =
139         'skip$
140         { after.sentence 'output.state := }
141       if$
142     }
143   if$
146 %SP 2003/07/25
147 % No longer used
148 FUNCTION {add.blank}
149 {  " " * before.all 'output.state :=
152 FUNCTION {date.block}
154   add.blank
157 FUNCTION {not}
158 {   { #0 }
159     { #1 }
160   if$
163 FUNCTION {and}
164 {   'skip$
165     { pop$ #0 }
166   if$
169 FUNCTION {or}
170 {   { pop$ #1 }
171     'skip$
172   if$
175 FUNCTION {new.block.checka}
176 { empty$
177     'skip$
178     'new.block
179   if$
182 FUNCTION {new.block.checkb}
183 { empty$
184   swap$ empty$
185   and
186     'skip$
187     'new.block
188   if$
191 FUNCTION {new.sentence.checka}
192 { empty$
193     'skip$
194     'new.sentence
195   if$
198 FUNCTION {new.sentence.checkb}
199 { empty$
200   swap$ empty$
201   and
202     'skip$
203     'new.sentence
204   if$
207 FUNCTION {field.or.null}
208 { duplicate$ empty$
209     { pop$ "" }
210     'skip$
211   if$
214 FUNCTION {emphasize}
215 { skip$ }
217 FUNCTION {capitalize}
218 { "u" change.case$ "t" change.case$ }
220 FUNCTION {space.word}
221 { " " swap$ * " " * }
223  % Here are the language-specific definitions for explicit words.
224  % Each function has a name bbl.xxx where xxx is the English word.
225  % The language selected here is ENGLISH
226 FUNCTION {bbl.and}
227 { "and"}
229 FUNCTION {bbl.etal}
230 { "et~al." }
232 FUNCTION {bbl.editors}
233 { "Eds." }
235 FUNCTION {bbl.editor}
236 { "Ed." }
238 FUNCTION {bbl.edby}
239 { "edited by" }
241 FUNCTION {bbl.edition}
242 { "Edition" }
244 FUNCTION {bbl.volume}
245 { "Vol." }
247 FUNCTION {bbl.of}
248 { "of" }
250 FUNCTION {bbl.number}
251 { "no." }
253 FUNCTION {bbl.nr}
254 { "no." }
256 FUNCTION {bbl.in}
257 { "in" }
259 FUNCTION {bbl.pages}
260 { "pp." }
262 FUNCTION {bbl.page}
263 { "p." }
265 FUNCTION {bbl.chapter}
266 { "Ch." }
268 FUNCTION {bbl.techrep}
269 { "Tech. Rep." }
271 FUNCTION {bbl.mthesis}
272 { "Master's thesis" }
274 FUNCTION {bbl.phdthesis}
275 { "Ph.D. thesis" }
277 FUNCTION {bbl.first}
278 { "1st" }
280 FUNCTION {bbl.second}
281 { "2nd" }
283 FUNCTION {bbl.third}
284 { "3rd" }
286 FUNCTION {bbl.fourth}
287 { "4th" }
289 FUNCTION {bbl.fifth}
290 { "5th" }
292 FUNCTION {bbl.st}
293 { "st" }
295 FUNCTION {bbl.nd}
296 { "nd" }
298 FUNCTION {bbl.rd}
299 { "rd" }
301 FUNCTION {bbl.th}
302 { "th" }
304 MACRO {jan} {"Jan."}
306 MACRO {feb} {"Feb."}
308 MACRO {mar} {"Mar."}
310 MACRO {apr} {"Apr."}
312 MACRO {may} {"May"}
314 MACRO {jun} {"Jun."}
316 MACRO {jul} {"Jul."}
318 MACRO {aug} {"Aug."}
320 MACRO {sep} {"Sep."}
322 MACRO {oct} {"Oct."}
324 MACRO {nov} {"Nov."}
326 MACRO {dec} {"Dec."}
328 FUNCTION {eng.ord}
329 { duplicate$ "1" swap$ *
330   #-2 #1 substring$ "1" =
331      { bbl.th * }
332      { duplicate$ #-1 #1 substring$
333        duplicate$ "1" =
334          { pop$ bbl.st * }
335          { duplicate$ "2" =
336              { pop$ bbl.nd * }
337              { "3" =
338                  { bbl.rd * }
339                  { bbl.th * }
340                if$
341              }
342            if$
343           }
344        if$
345      }
346    if$
349 MACRO {acmcs} {"ACM Comput. Surv."}
351 MACRO {acta} {"Acta Inf."}
353 MACRO {cacm} {"Commun. ACM"}
355 MACRO {ibmjrd} {"IBM J. Res. Dev."}
357 MACRO {ibmsj} {"IBM Syst.~J."}
359 MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
361 MACRO {ieeetc} {"IEEE Trans. Comput."}
363 MACRO {ieeetcad}
364  {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
366 MACRO {ipl} {"Inf. Process. Lett."}
368 MACRO {jacm} {"J.~ACM"}
370 MACRO {jcss} {"J.~Comput. Syst. Sci."}
372 MACRO {scp} {"Sci. Comput. Programming"}
374 MACRO {sicomp} {"SIAM J. Comput."}
376 MACRO {tocs} {"ACM Trans. Comput. Syst."}
378 MACRO {tods} {"ACM Trans. Database Syst."}
380 MACRO {tog} {"ACM Trans. Gr."}
382 MACRO {toms} {"ACM Trans. Math. Softw."}
384 MACRO {toois} {"ACM Trans. Office Inf. Syst."}
386 MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
388 MACRO {tcs} {"Theoretical Comput. Sci."}
390 FUNCTION {write.url}
391 { url empty$
392     { skip$ }
393     { "\newline\urlprefix\url{" url * "}" * write$ newline$ }
394   if$
398 INTEGERS { nameptr namesleft numnames }
400 FUNCTION {format.names}
401 { 's :=
402   #1 'nameptr :=
403   s num.names$ 'numnames :=
404   numnames 'namesleft :=
405     { namesleft #0 > }
406     { s nameptr
407       "{f.~}{vv~}{ll}{, jj}" format.name$
408     't :=
409       nameptr #1 >
410         {
411           namesleft #1 >
412             { ", " * t * }
413             {
414               "," *
415               s nameptr "{ll}" format.name$ duplicate$ "others" =
416                 { 't := }
417                 { pop$ }
418               if$
419               t "others" =
420                 {
421                   " " * bbl.etal *
422                 }
423                 { " " * t * }
424               if$
425             }
426           if$
427         }
428         't
429       if$
430       nameptr #1 + 'nameptr :=
431       namesleft #1 - 'namesleft :=
432     }
433   while$
435 FUNCTION {format.names.ed}
436 { format.names }
437 FUNCTION {format.authors}
438 { author empty$
439     { "" }
440     { author format.names }
441   if$
444 FUNCTION {format.editors}
445 { editor empty$
446     { "" }
447     { editor format.names
448       editor num.names$ #1 >
449         { " (" * bbl.editors * ")" * }
450         { " (" * bbl.editor * ")" * }
451       if$
452     }
453   if$
456 FUNCTION {format.in.editors}
457 { editor empty$
458     { "" }
459     { editor format.names.ed
460       editor num.names$ #1 >
461         { " (" * bbl.editors * ")" * }
462         { " (" * bbl.editor * ")" * }
463       if$
464     }
465   if$
468 FUNCTION {format.note}
470  note empty$
471     { "" }
472     { note #1 #1 substring$
473       duplicate$ "{" =
474         'skip$
475         { output.state mid.sentence =
476           { "l" }
477           { "u" }
478         if$
479         change.case$
480         }
481       if$
482       note #2 global.max$ substring$ *
483     }
484   if$
487 FUNCTION {format.title}
488 { title empty$
489     { "" }
490     { title "t" change.case$
491     }
492   if$
495 FUNCTION {output.bibitem}
496 { newline$
497   "\bibitem{" write$
498   cite$ write$
499   "}" write$
500   newline$
501   ""
502   before.all 'output.state :=
505 FUNCTION {n.dashify}
507   't :=
508   ""
509     { t empty$ not }
510     { t #1 #1 substring$ "-" =
511         { t #1 #2 substring$ "--" = not
512             { "--" *
513               t #2 global.max$ substring$ 't :=
514             }
515             {   { t #1 #1 substring$ "-" = }
516                 { "-" *
517                   t #2 global.max$ substring$ 't :=
518                 }
519               while$
520             }
521           if$
522         }
523         { t #1 #1 substring$ *
524           t #2 global.max$ substring$ 't :=
525         }
526       if$
527     }
528   while$
531 FUNCTION {word.in}
532 { bbl.in
533   ":" *
534   " " * }
536 FUNCTION {format.date}
537 { year empty$
538     { month empty$
539         { "" }
540         { "there's a month but no year in " cite$ * warning$
541           month
542         }
543       if$
544     }
545     { month empty$
546         'year
547         { month " " * year * }
548       if$
549     }
550   if$
551   duplicate$ empty$
552     'skip$
553     {
554       before.all 'output.state :=
555     " (" swap$ * ")" *
556     }
557   if$
560 FUNCTION{format.year}
561 { year duplicate$ empty$
562     { "empty year in " cite$ * warning$ pop$ "" }
563     { "(" swap$ * ")" * }
564   if$
567 FUNCTION {format.btitle}
568 { title
571 FUNCTION {tie.or.space.connect}
572 { duplicate$ text.length$ #3 <
573     { "~" }
574     { " " }
575   if$
576   swap$ * *
579 FUNCTION {either.or.check}
580 { empty$
581     'pop$
582     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
583   if$
586 FUNCTION {format.bvolume}
587 { volume empty$
588     { "" }
589     { bbl.volume volume tie.or.space.connect
590       series empty$
591         'skip$
592         { bbl.of space.word * series emphasize * }
593       if$
594       "volume and number" number either.or.check
595     }
596   if$
599 FUNCTION {format.number.series}
600 { volume empty$
601     { number empty$
602         { series field.or.null }
603         { output.state mid.sentence =
604             { bbl.number }
605             { bbl.number capitalize }
606           if$
607           number tie.or.space.connect
608           series empty$
609             { "there's a number but no series in " cite$ * warning$ }
610             { bbl.in space.word * series * }
611           if$
612         }
613       if$
614     }
615     { "" }
616   if$
619 FUNCTION {is.num}
620 { chr.to.int$
621   duplicate$ "0" chr.to.int$ < not
622   swap$ "9" chr.to.int$ > not and
625 FUNCTION {extract.num}
626 { duplicate$ 't :=
627   "" 's :=
628   { t empty$ not }
629   { t #1 #1 substring$
630     t #2 global.max$ substring$ 't :=
631     duplicate$ is.num
632       { s swap$ * 's := }
633       { pop$ "" 't := }
634     if$
635   }
636   while$
637   s empty$
638     'skip$
639     { pop$ s }
640   if$
643 FUNCTION {convert.edition}
644 { edition extract.num "l" change.case$ 's :=
645   s "first" = s "1" = or
646     { bbl.first 't := }
647     { s "second" = s "2" = or
648         { bbl.second 't := }
649         { s "third" = s "3" = or
650             { bbl.third 't := }
651             { s "fourth" = s "4" = or
652                 { bbl.fourth 't := }
653                 { s "fifth" = s "5" = or
654                     { bbl.fifth 't := }
655                     { s #1 #1 substring$ is.num
656                         { s eng.ord 't := }
657                         { edition 't := }
658                       if$
659                     }
660                   if$
661                 }
662               if$
663             }
664           if$
665         }
666       if$
667     }
668   if$
669   t
672 FUNCTION {format.edition}
673 { edition empty$
674     { "" }
675     { output.state mid.sentence =
676         { convert.edition "l" change.case$ " " * bbl.edition * }
677         { convert.edition "t" change.case$ " " * bbl.edition * }
678       if$
679     }
680   if$
683 INTEGERS { multiresult }
685 FUNCTION {multi.page.check}
686 { 't :=
687   #0 'multiresult :=
688     { multiresult not
689       t empty$ not
690       and
691     }
692     { t #1 #1 substring$
693       duplicate$ "-" =
694       swap$ duplicate$ "," =
695       swap$ "+" =
696       or or
697         { #1 'multiresult := }
698         { t #2 global.max$ substring$ 't := }
699       if$
700     }
701   while$
702   multiresult
705 FUNCTION {format.pages}
706 { pages empty$
707     { "" }
708     { pages multi.page.check
709         { bbl.pages pages n.dashify tie.or.space.connect }
710         { bbl.page pages tie.or.space.connect }
711       if$
712     }
713   if$
716 FUNCTION {format.journal.pages}
717 { pages empty$
718     'skip$
719     { duplicate$ empty$
720         { pop$ format.pages }
721         {
722           " " *
723           format.year * " " *
724           pages n.dashify *
725         }
726       if$
727     }
728   if$
731 %SP 2001/01/23
732 % Only used in articles
733 FUNCTION {format.vol.num.pages}
735 %SP 2001/01/23
736 % Add the leading space only if there is a volume
737   % volume field.or.null
738   " "
739   volume empty$
740     { pop$ "" }
741     { volume * }
742   if$
743   number empty$
744     'skip$
745     {
746       "~(" number * ")" * *
747       volume empty$
748         { "there's a number but no volume in " cite$ * warning$ }
749         'skip$
750       if$
751     }
752   if$
755 FUNCTION {format.chapter.pages}
756 { chapter empty$
757     { "" }
758     { type empty$
759         { bbl.chapter }
760         { type "l" change.case$ }
761       if$
762       chapter tie.or.space.connect
763     }
764   if$
767 FUNCTION {format.in.ed.booktitle}
768 { booktitle empty$
769     { "" }
770     { editor empty$
771         { word.in booktitle * }
772         { word.in format.in.editors * ", " *
773           booktitle * }
774       if$
775     }
776   if$
779 FUNCTION {empty.misc.check}
780 { author empty$ title empty$ howpublished empty$
781   month empty$ year empty$ note empty$
782   and and and and and
783     { "all relevant fields are empty in " cite$ * warning$ }
784     'skip$
785   if$
788 FUNCTION {format.thesis.type}
789 { type empty$
790     'skip$
791     { pop$
792       type "t" change.case$
793     }
794   if$
797 FUNCTION {format.tr.number}
798 { type empty$
799     { bbl.techrep }
800     'type
801   if$
802   number empty$
803     { "t" change.case$ }
804     { number tie.or.space.connect }
805   if$
808 FUNCTION {format.article.crossref}
810   key empty$
811     { journal empty$
812         { "need key or journal for " cite$ * " to crossref " * crossref *
813           warning$
814           ""
815         }
816         { word.in journal emphasize * }
817       if$
818     }
819     { word.in key * " " *}
820   if$
821   " \cite{" * crossref * "}" *
824 FUNCTION {format.crossref.editor}
825 { editor #1 "{vv~}{ll}" format.name$
826   editor num.names$ duplicate$
827   #2 >
828     { pop$
829       " " * bbl.etal *
830     }
831     { #2 <
832         'skip$
833         { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
834             {
835               " " * bbl.etal *
836             }
837             { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$
838               * }
839           if$
840         }
841       if$
842     }
843   if$
846 FUNCTION {format.book.crossref}
847 { volume empty$
848     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
849       word.in
850     }
851     { bbl.volume volume tie.or.space.connect
852       bbl.of space.word *
853     }
854   if$
855   editor empty$
856   editor field.or.null author field.or.null =
857   or
858     { key empty$
859         { series empty$
860             { "need editor, key, or series for " cite$ * " to crossref " *
861               crossref * warning$
862               "" *
863             }
864             { series emphasize * }
865           if$
866         }
867         { key * }
868       if$
869     }
870     { format.crossref.editor * }
871   if$
872   " \cite{" * crossref * "}" *
875 FUNCTION {format.incoll.inproc.crossref}
877   editor empty$
878   editor field.or.null author field.or.null =
879   or
880     { key empty$
881         { booktitle empty$
882             { "need editor, key, or booktitle for " cite$ * " to crossref " *
883               crossref * warning$
884               ""
885             }
886             { word.in booktitle * }
887           if$
888         }
889         { word.in key * " " *}
890       if$
891     }
892     { word.in format.crossref.editor * " " *}
893   if$
894   " \cite{" * crossref * "}" *
897 FUNCTION {format.org.or.pub}
898 { 't :=
899   ""
900   year empty$
901     { "empty year in " cite$ * warning$ }
902     'skip$
903   if$
904   address empty$ t empty$ and
905   year empty$ and
906     'skip$
907     {
908       t empty$
909         { address empty$
910           'skip$
911           { address * }
912           if$
913         }
914         { t *
915           address empty$
916             'skip$
917             { ", " * address * }
918           if$
919         }
920       if$
921       year empty$
922         'skip$
923         { t empty$ address empty$ and
924             'skip$
925             { ", " * }
926           if$
927           year *
928         }
929       if$
930     }
931   if$
934 FUNCTION {format.publisher.address}
935 { publisher empty$
936     { "empty publisher in " cite$ * warning$
937       ""
938     }
939     { publisher }
940   if$
941   format.org.or.pub
944 FUNCTION {format.organization.address}
945 { organization empty$
946     { "" }
947     { organization }
948   if$
949   format.org.or.pub
952 FUNCTION {article}
953 { output.bibitem
954   format.authors "author" output.check
955   format.title "title" output.check
956   crossref missing$
957     { journal
958       "journal" output.check
959 %SP 2001/01/23
960 % Add the space in format.vol.num.pages
961       % add.blank
962           before.all 'output.state :=
963       format.vol.num.pages output
964     }
965     { format.article.crossref output.nonnull
966       format.pages output
967     }
968   if$
969   format.journal.pages
970   format.note output
971   fin.entry
972   write.url
975 FUNCTION {book}
976 { output.bibitem
977   author empty$
978     { format.editors "author and editor" output.check
979     }
980     { format.authors output.nonnull
981       crossref missing$
982         { "author and editor" editor either.or.check }
983         'skip$
984       if$
985     }
986   if$
987   format.btitle "title" output.check
988   crossref missing$
989     { format.edition output
990       format.bvolume output
991       format.number.series output
992       format.publisher.address output
993     }
994     {
995       format.book.crossref output.nonnull
996     }
997   if$
998   format.note output
999   fin.entry
1000   write.url
1003 FUNCTION {booklet}
1004 { output.bibitem
1005   format.authors output
1006   format.title "title" output.check
1007   howpublished output
1008   address output
1009   format.note output
1010   format.date output
1011   fin.entry
1012   write.url
1015 FUNCTION {inbook}
1016 { output.bibitem
1017   author empty$
1018     { format.editors "author and editor" output.check
1019     }
1020     { format.authors output.nonnull
1021       crossref missing$
1022         { "author and editor" editor either.or.check }
1023         'skip$
1024       if$
1025     }
1026   if$
1027   format.btitle "title" output.check
1028   crossref missing$
1029     {
1030       format.edition output
1031       format.bvolume output
1032       format.number.series output
1033       format.publisher.address output
1034       format.chapter.pages "chapter and pages" output.check
1035     }
1036     {
1037       format.chapter.pages "chapter and pages" output.check
1038       format.book.crossref output.nonnull
1039     }
1040   if$
1041   format.pages "pages" output.check
1042   format.note output
1043   fin.entry
1044   write.url
1047 FUNCTION {incollection}
1048 { output.bibitem
1049   format.authors "author" output.check
1050   format.title "title" output.check
1051   crossref missing$
1052     { format.in.ed.booktitle "booktitle" output.check
1053       format.edition output
1054       format.bvolume output
1055       format.number.series output
1056       format.publisher.address output
1057       format.chapter.pages output
1058     }
1059     { format.incoll.inproc.crossref output.nonnull
1060       format.chapter.pages output
1061     }
1062   if$
1063   format.pages "pages" output.check
1064   format.note output
1065   fin.entry
1066   write.url
1069 FUNCTION {inproceedings}
1070 { output.bibitem
1071   format.authors "author" output.check
1072   format.title "title" output.check
1073   crossref missing$
1074     { format.in.ed.booktitle "booktitle" output.check
1075       format.edition output
1076       format.bvolume output
1077       format.number.series output
1078       publisher empty$
1079         { format.organization.address output }
1080         { organization output
1081           format.publisher.address output
1082         }
1083       if$
1084 %SP 2001/01/23
1085 %      format.pages output
1086     }
1087     { format.incoll.inproc.crossref output.nonnull
1088 %SP 2001/01/23
1089 %      format.pages output
1090     }
1091   if$
1092 %SP 2001/01/23
1093   format.pages "pages" output.check
1094   format.note output
1095   fin.entry
1096   write.url
1099 FUNCTION {conference} { inproceedings }
1101 FUNCTION {manual}
1102 { output.bibitem
1103   author empty$
1104     { organization empty$
1105         'skip$
1106         { organization output.nonnull
1107           address output
1108         }
1109       if$
1110     }
1111     { format.authors output.nonnull }
1112   if$
1113   format.btitle "title" output.check
1114   author empty$
1115     { organization empty$
1116     {
1117           address output
1118         }
1119         'skip$
1120       if$
1121     }
1122     {
1123       organization output
1124       address output
1125     }
1126   if$
1127   format.edition output
1128   format.note output
1129   format.date output
1130   fin.entry
1131   write.url
1134 FUNCTION {mastersthesis}
1135 { output.bibitem
1136   format.authors "author" output.check
1137   format.title "title" output.check
1138   bbl.mthesis format.thesis.type output.nonnull
1139   school "school" output.check
1140   address output
1141   format.note output
1142   format.date "year" output.check
1143   fin.entry
1144   write.url
1147 FUNCTION {misc}
1148 { output.bibitem
1149   format.authors output
1150   format.title output
1151   howpublished output
1152   format.note output
1153   format.date output
1154   fin.entry
1155   write.url
1156   empty.misc.check
1159 FUNCTION {phdthesis}
1160 { output.bibitem
1161   format.authors "author" output.check
1162   format.title "title" output.check
1163   bbl.phdthesis format.thesis.type output.nonnull
1164   school "school" output.check
1165   address output
1166   format.note output
1167   format.date "year" output.check
1168   fin.entry
1169   write.url
1172 FUNCTION {proceedings}
1173 { output.bibitem
1174   editor empty$
1175     { organization output }
1176     { format.editors output.nonnull }
1177   if$
1178   format.btitle "title" output.check
1179   format.bvolume output
1180   format.number.series output
1181   editor empty$
1182     { publisher empty$
1183         'skip$
1184         {
1185           format.publisher.address output
1186         }
1187       if$
1188     }
1189     { publisher empty$
1190         {
1191           format.organization.address output }
1192         {
1193           organization output
1194           format.publisher.address output
1195         }
1196       if$
1197      }
1198   if$
1199   format.note output
1200 %  format.date "year" output.check
1201   fin.entry
1202   write.url
1205 FUNCTION {techreport}
1206 { output.bibitem
1207   format.authors "author" output.check
1208   format.title "title" output.check
1209   format.tr.number output.nonnull
1210   institution "institution" output.check
1211   address output
1212   format.note output
1213   format.date "year" output.check
1214   fin.entry
1215   write.url
1218 FUNCTION {unpublished}
1219 { output.bibitem
1220   format.authors "author" output.check
1221   format.title "title" output.check
1222   format.note "note" output.check
1223   format.date output
1224   fin.entry
1225   write.url
1228 FUNCTION {default.type} { misc }
1230 READ
1232 STRINGS { longest.label }
1234 INTEGERS { number.label longest.label.width }
1236 FUNCTION {initialize.longest.label}
1237 { "" 'longest.label :=
1238   #1 'number.label :=
1239   #0 'longest.label.width :=
1242 FUNCTION {longest.label.pass}
1243 { number.label int.to.str$ 'label :=
1244   number.label #1 + 'number.label :=
1245   label width$ longest.label.width >
1246     { label 'longest.label :=
1247       label width$ 'longest.label.width :=
1248     }
1249     'skip$
1250   if$
1253 EXECUTE {initialize.longest.label}
1255 ITERATE {longest.label.pass}
1257 FUNCTION {begin.bib}
1258 { preamble$ empty$
1259     'skip$
1260     { preamble$ write$ newline$ }
1261   if$
1262   "\begin{thebibliography}{"  longest.label  * "}" *
1263   write$ newline$
1264   "\expandafter\ifx\csname url\endcsname\relax"
1265   write$ newline$
1266   "  \def\url#1{\texttt{#1}}\fi"
1267   write$ newline$
1268   "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi"
1269   write$ newline$
1272 EXECUTE {begin.bib}
1274 EXECUTE {init.state.consts}
1276 ITERATE {call.type$}
1278 FUNCTION {end.bib}
1279 { newline$
1280   "\end{thebibliography}" write$ newline$
1283 EXECUTE {end.bib}
1284 %% End of customized bst file
1286 %% End of file `elsart-num.bst'.