/[dtapublic]/sf_code/esrgpubs/acm0010/paper/esub2acm.bst
ViewVC logotype

Annotation of /sf_code/esrgpubs/acm0010/paper/esub2acm.bst

Parent Directory Parent Directory | Revision Log Revision Log


Revision 24 - (hide annotations) (download)
Sat Oct 8 06:15:00 2016 UTC (7 years, 8 months ago) by dashley
File size: 28256 byte(s)
Initial commit.
1 dashley 24 %$Header: /cvsroot/esrg/sfesrg/esrgpubs/acm0010/paper/esub2acm.bst,v 1.1 2001/09/25 21:44:55 dtashley Exp $
2     %%
3     %%--------------------------------------------------------------
4     %% This file is the ESUB2ACM.BST file, downloaded from the
5     %% ACM's web site in 10/2000, to allow preparation of a
6     %% rational approximation paper and other papers for ACM
7     %% journals.
8     %%
9     %% This file is placed under a version control system
10     %% (Microsoft Visual Source Safe 6.0) at Dave Ashley's home.
11     %% All changes to this file will be accompanied by
12     %% comments automatically inserted in the change history at the
13     %% end of the file.
14     %%--------------------------------------------------------------
15     %%
16     %% THIS FILE IS ESUB2ACM.BST V1.1 (11/11/96)
17     %%
18     %% THE masterthesis AND phdthesis FUNCTIONS HAVE BEEN FIXED.
19     %%
20     %% This is file `esub2acm.bst', BASED ON 'ACMTRANS.BST' which
21     %% was originally generated on <1995/8/22>
22     %% with the docstrip utility (2.2i).
23     %%
24     %% esub2acm.bst (V1.1) should be used with esub2acm.sty (V1.0)
25     %%
26     %% Both of these files (and others) can be downloaded from
27     %% ACM's FTP site at: ftp.acm.org in the directory:
28     %% /pubs/submitting_accepted_articles/latex/
29     %%
30     %% The original source files were:
31     %%
32     %% acmtrans.dtx
33     %%
34     %% IMPORTANT NOTICE:
35     %% You are not allowed to distribute this file.
36     %% For distribution of the original source see
37     %% the copyright notice in the file acmtrans.dtx .
38     %%
39     ENTRY
40     { address
41     author
42     booktitle
43     chapter
44     edition
45     editor
46     howpublished
47     institution
48     journal
49     key
50     month
51     note
52     number
53     organization
54     pages
55     publisher
56     pub-year
57     pub-month
58     pub-address
59     school
60     series
61     title
62     type
63     volume
64     year
65     }
66     {}
67     { label.year extra.label sort.year sort.label }
68     INTEGERS {
69     output.state
70     before.all
71     mid.sentence
72     after.sentence
73     after.block
74     }
75     FUNCTION {init.state.consts}
76     { #0 'before.all :=
77     #1 'mid.sentence :=
78     #2 'after.sentence :=
79     #3 'after.block :=
80     }
81     STRINGS { s t u }
82     FUNCTION {output.nonnull}
83     { 's :=
84     output.state mid.sentence =
85     { ", " * write$ }
86     { output.state after.block =
87     { add.period$ write$
88     newline$
89     "\newblock " write$
90     }
91     { output.state before.all =
92     'write$
93     { add.period$ " " * write$ }
94     if$
95     }
96     if$
97     mid.sentence 'output.state :=
98     }
99     if$
100     s
101     }
102     FUNCTION {output.nonnull.colon}
103     { 's :=
104     output.state mid.sentence =
105     { ": " * write$ }
106     { output.state after.block =
107     { add.period$ write$
108     newline$
109     "\newblock " write$
110     }
111     { output.state before.all =
112     'write$
113     { add.period$ " " * write$ }
114     if$
115     }
116     if$
117     mid.sentence 'output.state :=
118     }
119     if$
120     s
121     }
122     FUNCTION {output}
123     { duplicate$ empty$
124     'pop$
125     'output.nonnull
126     if$
127     }
128     FUNCTION {output.colon}
129     { duplicate$ empty$
130     'pop$
131     'output.nonnull.colon
132     if$
133     }
134     FUNCTION {output.check}
135     { 't :=
136     duplicate$ empty$
137     { pop$ "empty " t * " in " * cite$ * warning$ }
138     'output.nonnull
139     if$
140     }
141     FUNCTION {output.check.colon}
142     { 't :=
143     duplicate$ empty$
144     { pop$ "empty " t * " in " * cite$ * warning$ }
145     'output.nonnull.colon
146     if$
147     }
148     FUNCTION {new.block}
149     { output.state before.all =
150     'skip$
151     { after.block 'output.state := }
152     if$
153     }
154     FUNCTION {new.sentence}
155     {
156     output.state after.block =
157     'skip$
158     { output.state before.all =
159     'skip$
160     { after.sentence 'output.state := }
161     if$
162     }
163     if$
164     }
165     FUNCTION {output.year.check}
166     { year empty$
167     { "empty year in " cite$ * warning$ }
168     { add.period$ write$
169     " \bibyear{" year * extra.label * "}" *
170     mid.sentence 'output.state :=
171     }
172     if$
173     }
174     FUNCTION {fin.entry}
175     { add.period$
176     write$
177     newline$
178     }
179     FUNCTION {not}
180     { { #0 }
181     { #1 }
182     if$
183     }
184     FUNCTION {and}
185     { 'skip$
186     { pop$ #0 }
187     if$
188     }
189     FUNCTION {or}
190     { { pop$ #1 }
191     'skip$
192     if$
193     }
194     FUNCTION {new.block.checka}
195     { empty$
196     'skip$
197     'new.block
198     if$
199     }
200     FUNCTION {new.block.checkb}
201     { empty$
202     swap$ empty$
203     and
204     'skip$
205     'new.block
206     if$
207     }
208     FUNCTION {new.sentence.checka}
209     { empty$
210     'skip$
211     'new.sentence
212     if$
213     }
214     FUNCTION {new.sentence.checkb}
215     { empty$
216     swap$ empty$
217     and
218     'skip$
219     'new.sentence
220     if$
221     }
222     FUNCTION {field.or.null}
223     { duplicate$ empty$
224     { pop$ "" }
225     'skip$
226     if$
227     }
228     FUNCTION {parenthesize}
229     { duplicate$ empty$
230     { pop$ "" }
231     { " (" swap$ * ")" * }
232     if$
233     }
234     FUNCTION {emphasize}
235     { duplicate$ empty$
236     { pop$ "" }
237     { "\bibemph{" swap$ * "}" * }
238     if$
239     }
240     FUNCTION {emphasize.ic}
241     { duplicate$ empty$
242     { pop$ "" }
243     { "\bibemphic{" swap$ * "}" * }
244     if$
245     }
246     FUNCTION {emphasize.comma}
247     { duplicate$ empty$
248     { pop$ "" }
249     { emphasize "," * }
250     if$
251     }
252     FUNCTION {smallcaps}
253     { duplicate$ empty$
254     { pop$ "" }
255     { "\bibsc{" swap$ * "}" * }
256     if$
257     }
258     INTEGERS { nameptr namesleft numnames }
259     FUNCTION {format.names}
260     { 's :=
261     #1 'nameptr := % nameptr = 1;
262     s num.names$ 'numnames := % numnames = num.name$(s);
263     numnames 'namesleft :=
264     { namesleft #0 > }
265     {
266     s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't :=
267     nameptr #1 >
268     { namesleft #1 >
269     { ", " * t * }
270     { numnames #2 >
271     { "," * }
272     'skip$
273     if$
274     t "others" =
275     { " et~al." * }
276     { " and " * t * } % from Chicago Manual of Style
277     if$
278     }
279     if$
280     }
281     't
282     if$
283     nameptr #1 + 'nameptr := % nameptr += 1;
284     namesleft #1 - 'namesleft := % namesleft =- 1;
285     }
286     while$
287     smallcaps
288     }
289     FUNCTION {my.full.label}
290     { 's :=
291     #1 'nameptr := % nameptr = 1;
292     s num.names$ 'numnames := % numnames = num.name$(s);
293     numnames 'namesleft :=
294     { namesleft #0 > }
295     { s nameptr "{vv~}{ll}" format.name$ 't := % get the next name
296     nameptr #1 >
297     { namesleft #1 >
298     { ", " * t * }
299     { numnames #2 >
300     { "," * }
301     'skip$
302     if$
303     t "others" =
304     { " et~al." * }
305     { " and " * t * } % from Chicago Manual of Style
306     if$
307     }
308     if$
309     }
310     't
311     if$
312     nameptr #1 + 'nameptr := % nameptr += 1;
313     namesleft #1 - 'namesleft := % namesleft =- 1;
314     }
315     while$
316     }
317     FUNCTION {format.names.fml}
318     { 's :=
319     #1 'nameptr := % nameptr = 1;
320     s num.names$ 'numnames := % numnames = num.name$(s);
321     numnames 'namesleft :=
322     { namesleft #0 > }
323     { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
324     nameptr #1 >
325     { namesleft #1 >
326     { ", " * t * }
327     { numnames #2 >
328     { "," * }
329     'skip$
330     if$
331     t "others" =
332     { " et~al." * }
333     { " and " * t * }
334     if$
335     }
336     if$
337     }
338     't
339     if$
340     nameptr #1 + 'nameptr := % nameptr += 1;
341     namesleft #1 - 'namesleft := % namesleft =- 1;
342     }
343     while$
344     smallcaps
345     }
346     FUNCTION {format.authors}
347     { author empty$
348     { "" }
349     { author format.names }
350     if$
351     }
352     FUNCTION {format.key}
353     { empty$
354     { key field.or.null }
355     { "" }
356     if$
357     }
358     FUNCTION {format.editors.fml}
359     { editor empty$
360     { "" }
361     { editor format.names.fml
362     editor num.names$ #1 >
363     { " Eds." * }
364     { " Ed." * }
365     if$
366     }
367     if$
368     }
369     FUNCTION {format.editors}
370     { editor empty$
371     { "" }
372     { editor format.names
373     editor num.names$ #1 >
374     { " Eds." * }
375     { " Ed." * }
376     if$
377     }
378     if$
379     }
380     FUNCTION {format.title}
381     { title empty$
382     { "" }
383     { title "t" change.case$ }
384     if$
385     }
386     FUNCTION {n.dashify}
387     { 't :=
388     ""
389     { t empty$ not }
390     { t #1 #1 substring$ "-" =
391     { t #1 #2 substring$ "--" = not
392     { "--" *
393     t #2 global.max$ substring$ 't :=
394     }
395     { { t #1 #1 substring$ "-" = }
396     { "-" *
397     t #2 global.max$ substring$ 't :=
398     }
399     while$
400     }
401     if$
402     }
403     { t #1 #1 substring$ *
404     t #2 global.max$ substring$ 't :=
405     }
406     if$
407     }
408     while$
409     }
410     FUNCTION {format.btitle}
411     { edition empty$
412     { title emphasize }
413     { title empty$
414     { title emphasize }
415     { volume empty$ % gnp - check for volume, then don't need period
416     { title emphasize.ic edition " ed." * parenthesize * "." * }
417     { title emphasize.ic edition " ed." * parenthesize * }
418     if$
419     }
420     if$
421     }
422     if$
423     }
424     FUNCTION {format.emphasize.booktitle}
425     { edition empty$
426     { booktitle emphasize.ic }
427     { booktitle empty$
428     { booktitle emphasize }
429     { volume empty$ % gnp - extra period an error if book has a volume
430     { booktitle emphasize.ic edition " ed." * parenthesize * "." *}
431     { booktitle emphasize.ic edition " ed." * parenthesize * }
432     if$
433     }
434     if$
435     }
436     if$
437     }
438     FUNCTION {tie.or.space.connect}
439     { duplicate$ text.length$ #3 <
440     { "~" }
441     { " " }
442     if$
443     swap$ * *
444     }
445     FUNCTION {either.or.check}
446     { empty$
447     'pop$
448     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
449     if$
450     }
451     FUNCTION {format.bvolume}
452     { volume empty$
453     { "" }
454     { "Volume" volume tie.or.space.connect % gnp - changed to mixed case
455     series empty$
456     'skip$
457     { " of " * series emphasize * }
458     if$
459     "volume and number" number either.or.check
460     }
461     if$
462     }
463     FUNCTION {format.number.series}
464     { volume empty$
465     { number empty$
466     { series field.or.null }
467     { "Number" number tie.or.space.connect
468     series empty$
469     { "there's a number but no series in " cite$ * warning$ }
470     { " in " * series * }
471     if$
472     }
473     if$
474     }
475     { "" }
476     if$
477     }
478     INTEGERS { multiresult }
479     FUNCTION {multi.page.check}
480     { 't :=
481     #0 'multiresult :=
482     { multiresult not
483     t empty$ not
484     and
485     }
486     { t #1 #1 substring$
487     duplicate$ "-" =
488     swap$ duplicate$ "," =
489     swap$ "+" =
490     or or
491     { #1 'multiresult := }
492     { t #2 global.max$ substring$ 't := }
493     if$
494     }
495     while$
496     multiresult
497     }
498     FUNCTION {format.pages}
499     { pages empty$
500     { "" }
501     {
502     "pp.\ " pages n.dashify tie.or.space.connect
503     }
504     if$
505     }
506     FUNCTION {format.jour.vol}
507     { journal empty$
508     { "no journal in " cite$ * warning$
509     "" }
510     { journal emphasize.ic }
511     if$
512     number empty$
513     { volume empty$
514     { "no number and no volume in " cite$ * warning$
515     "" * }
516     { "~" * volume emphasize * }
517     if$
518     }
519     { volume empty$
520     {"no volume for " cite$ * warning$
521     "~" * number * }
522     { "~" *
523     volume emphasize.comma
524     "~" * number * * }
525     if$
526     month empty$
527     'skip$
528     {month parenthesize *}
529     if$
530     }
531     if$
532     pages empty$
533     {"page numbers missing in " cite$ * warning$
534     "" * } % gnp - place a null string on the stack for output
535     { duplicate$ empty$
536     { pop$ format.pages }
537     { ", " * pages n.dashify * } % gnp - removed pp. for articles
538     if$
539     }
540     if$
541     }
542     FUNCTION {format.chapter.pages}
543     { chapter empty$
544     'format.pages
545     { type empty$
546     { "Chapter" } % gnp - changed to mixed case
547     { type "t" change.case$ }
548     if$
549     chapter tie.or.space.connect
550     pages empty$
551     {"page numbers missing in " cite$ * warning$}%gnp - added check
552     { ", " * format.pages * }
553     if$
554     }
555     if$
556     }
557     FUNCTION {format.in.ed.booktitle}
558     { booktitle empty$
559     { "" }
560     { editor empty$
561     { "In " format.emphasize.booktitle * }
562     { "In " format.editors.fml * ", " * format.emphasize.booktitle * }
563     if$
564     }
565     if$
566     }
567     FUNCTION {format.thesis.title}
568     { title empty$
569     'skip$
570     { { "" }
571     title "t" change.case$
572     }
573     if$
574     }
575     FUNCTION {format.tr.number}
576     { type empty$
577     { "Technical Report" }
578     'type
579     if$
580     number empty$
581     { "t" change.case$ }
582     { number tie.or.space.connect }
583     if$
584     }
585     FUNCTION {format.lab.names}
586     { 's :=
587     s num.names$ 'numnames :=
588     numnames #2 > % change number to number of others allowed before
589     % forcing "et al".
590     { s #1 "{vv~}{ll}" format.name$ " et~al." * }
591     {
592     numnames #1 - 'namesleft :=
593     #2 'nameptr :=
594     s #1 "{vv~}{ll}" format.name$
595     { namesleft #0 > }
596     { nameptr numnames =
597     { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
598     { " et~al." * }
599     { " and " * s nameptr "{vv~}{ll}" format.name$ * }
600     if$
601     }
602     { ", " * s nameptr "{vv~}{ll}" format.name$ * }
603     if$
604     nameptr #1 + 'nameptr :=
605     namesleft #1 - 'namesleft :=
606     }
607     while$
608     }
609     if$
610     }
611     FUNCTION {author.key.label}
612     { author empty$
613     { key empty$
614     { "no key, author in " cite$ * warning$
615     cite$ #1 #3 substring$ }
616     'key
617     if$
618     }
619     { author format.lab.names }
620     if$
621     }
622     FUNCTION {editor.key.label}
623     { editor empty$
624     { key empty$
625     { "no key, editor in " cite$ * warning$
626     cite$ #1 #3 substring$ }
627     'key
628     if$
629     }
630     { editor format.lab.names }
631     if$
632     }
633     FUNCTION {author.key.org.label}
634     { author empty$
635     { organization empty$
636     { key empty$
637     { "no key, author or organization in " cite$ * warning$
638     cite$ #1 #3 substring$ }
639     'key
640     if$
641     }
642     'organization
643     if$
644     }
645     { author format.lab.names }
646     if$
647     }
648     FUNCTION {editor.key.org.label}
649     { editor empty$
650     { organization empty$
651     { key empty$
652     { "no key, editor or organization in " cite$ * warning$
653     cite$ #1 #3 substring$ }
654     'key
655     if$
656     }
657     'organization
658     if$
659     }
660     { editor format.lab.names }
661     if$
662     }
663     FUNCTION {author.editor.key.label}
664     { author empty$
665     { editor empty$
666     { key empty$
667     { "no key, author, or editor in " cite$ * warning$
668     cite$ #1 #3 substring$ }
669     'key
670     if$
671     }
672     { editor format.lab.names }
673     if$
674     }
675     { author format.lab.names }
676     if$
677     }
678     FUNCTION {calc.label}
679     { type$ "book" =
680     type$ "inbook" =
681     or
682     'author.editor.key.label
683     { type$ "proceedings" =
684     'editor.key.org.label
685     { type$ "manual" =
686     'author.key.org.label
687     'author.key.label
688     if$
689     }
690     if$
691     }
692     if$
693     author empty$ % generate the full label citation information.
694     { editor empty$
695     { organization empty$
696     { "no author, editor, or organization in " cite$ * warning$
697     "??" }
698     'organization
699     if$
700     }
701     { editor my.full.label }
702     if$
703     }
704     { author my.full.label }
705     if$
706     "}{" * swap$ * "}{" *
707     year field.or.null purify$ #-1 #4 substring$
708     'label.year :=
709     }
710     FUNCTION {output.bibitem}
711     { newline$
712     "\bibitem[\protect\citeauthoryear{" write$
713     calc.label write$
714     sort.year write$
715     "}]{" write$
716     cite$ write$
717     "}" write$
718     newline$
719     ""
720     before.all 'output.state :=
721     }
722     FUNCTION {article}
723     {
724     output.bibitem
725     format.authors "author" output.check
726     author format.key output % added
727     output.year.check % added
728     new.block
729     format.title "title" output.check
730     new.block
731     format.jour.vol output
732     new.block
733     note output
734     fin.entry
735     }
736     FUNCTION {book}
737     { output.bibitem
738     author empty$
739     { format.editors "author and editor" output.check }
740     { format.authors
741     output.nonnull
742     crossref missing$
743     { "author and editor" editor either.or.check }
744     'skip$
745     if$
746     }
747     if$
748     output.year.check % added
749     new.block
750     format.btitle "title" output.check
751     format.bvolume output
752     new.block
753     format.number.series output
754     new.sentence
755     publisher "publisher" output.check
756     address output
757     new.block
758     note output
759     fin.entry
760     }
761     FUNCTION {booklet}
762     { output.bibitem
763     format.authors output
764     author format.key output % added
765     output.year.check % added
766     new.block
767     format.title "title" output.check
768     new.block
769     howpublished output
770     address output
771     new.block
772     note output
773     fin.entry
774     }
775     FUNCTION {inbook}
776     { output.bibitem
777     author empty$
778     { format.editors "author and editor" output.check
779     }
780     { format.authors output.nonnull
781     crossref missing$
782     { "author and editor" editor either.or.check }
783     'skip$
784     if$
785     }
786     if$
787     output.year.check % added
788     new.block
789     format.btitle "title" output.check
790     format.bvolume output
791     format.chapter.pages "chapter and pages" output.check
792     new.block
793     format.number.series output
794     new.sentence
795     publisher "publisher" output.check.colon
796     address output
797     new.block
798     note output
799     fin.entry
800     }
801     FUNCTION {incollection}
802     { output.bibitem
803     format.authors "author" output.check
804     author format.key output % added
805     output.year.check % added
806     new.block
807     format.title "title" output.check
808     new.block
809     format.in.ed.booktitle "booktitle" output.check
810     format.bvolume output
811     format.number.series output
812     format.chapter.pages output % gnp - was special.output.nonnull
813     new.sentence
814     address output
815     publisher "publisher" output.check.colon
816     new.block
817     note output
818     fin.entry
819     }
820     FUNCTION {format.date}
821     { year empty$
822     { month empty$
823     { "" }
824     { "there's a month but no year in " cite$ * warning$
825     month
826     }
827     if$
828     }
829     { month empty$
830     'year
831     { month " " * year * }
832     if$
833     }
834     if$
835     }
836     FUNCTION {format.proc.loc.date}
837     {
838     address field.or.null
839     format.date
840     duplicate$ empty$
841     'pop$
842     { swap$
843     duplicate$ empty$
844     'pop$
845     { ", " * swap$ * }
846     if$
847     }
848     if$
849     parenthesize
850     *
851     }
852     FUNCTION {inproceedings}
853     {
854     output.bibitem
855     format.authors "author" output.check
856     author format.key output % added
857     output.year.check % added
858     new.block
859     format.title "title" output.check
860     new.block
861     format.in.ed.booktitle "booktitle" output.check
862     format.bvolume output
863     format.number.series output
864     format.proc.loc.date %output
865     format.pages output
866     new.sentence
867     organization output
868     publisher output.colon
869     new.block
870     note output
871     fin.entry
872     }
873     FUNCTION {conference} { inproceedings }
874     FUNCTION {manual}
875     { output.bibitem
876     author empty$
877     { editor empty$
878     { organization "organization" output.check
879     organization format.key output } % if all else fails, use key
880     { format.editors "author and editor" output.check }
881     if$
882     }
883     { format.authors output.nonnull }
884     if$
885     output.year.check % added
886     new.block
887     format.btitle "title" output.check
888     organization address new.block.checkb
889     address output
890     organization "organization" output.check.colon
891     new.block
892     note output
893     fin.entry
894     }
895     FUNCTION {mastersthesis}
896     { output.bibitem
897     format.authors "author" output.check
898     author format.key output % added
899     output.year.check % added
900     new.block
901     format.title "title" output.check
902     new.block
903     %
904     % original which caused problems: "Master's thesis" format.thesis.title output.nonnull
905     % The following is its replacement (Gerry Murray 10/29/96)
906     %
907     "Master's thesis" format.title output.check % added by GM 10/29/96
908     school "school" output.check
909     address output
910     new.block
911     note output
912     fin.entry
913     }
914     FUNCTION {misc}
915     { output.bibitem
916     format.authors output
917     author format.key output % added
918     output.year.check % added
919     title howpublished new.block.checkb
920     format.title output
921     new.block
922     howpublished output
923     new.block
924     note output
925     fin.entry
926     }
927     FUNCTION {phdthesis}
928     { output.bibitem
929     format.authors "author" output.check
930     author format.key output % added
931     output.year.check % added
932     new.block
933     format.btitle "title" output.check
934     new.block
935     % original which caused problems: format.thesis.title "Ph.\ D. thesis" output.nonnull
936     %
937     % Below is its replacment (Gerry Murray 10/29/96)
938     %
939     "Ph.\ D. thesis" format.title output.check % added by GM 10/29/96
940     school "school" output.check
941     address output
942     new.block
943     note output
944     fin.entry
945     }
946     FUNCTION {proceedings}
947     { output.bibitem
948     editor empty$
949     { organization output
950     organization format.key output } % gnp - changed from
951     { format.editors output.nonnull } % author format.key
952     if$
953     output.year.check % added (newapa)
954     new.block
955     format.btitle "title" output.check
956     format.bvolume output
957     format.number.series output
958     format.proc.loc.date % output
959     new.sentence
960     organization output
961     publisher output.colon
962     new.block
963     note output
964     fin.entry
965     }
966     FUNCTION {techreport}
967     { output.bibitem
968     format.authors "author" output.check
969     author format.key output % added
970     output.year.check % added
971     new.block
972     format.title "title" output.check
973     new.block
974     format.tr.number
975     month empty$
976     'skip$
977     { month parenthesize * }
978     if$
979     output.nonnull
980     institution "institution" output.check
981     address output
982     new.block
983     note output
984     fin.entry
985     }
986     FUNCTION {unpublished}
987     { output.bibitem
988     format.authors "author" output.check
989     author format.key output % added
990     output.year.check % added
991     new.block
992     format.title "title" output.check
993     new.block
994     note "note" output.check
995     fin.entry
996     }
997     FUNCTION {default.type} { misc }
998     MACRO {jan} {"Jan."}
999     MACRO {feb} {"Feb."}
1000     MACRO {mar} {"March"}
1001     MACRO {apr} {"April"}
1002     MACRO {may} {"May"}
1003     MACRO {jun} {"June"}
1004     MACRO {jul} {"July"}
1005     MACRO {aug} {"Aug."}
1006     MACRO {sep} {"Sept."}
1007     MACRO {oct} {"Oct."}
1008     MACRO {nov} {"Nov."}
1009     MACRO {dec} {"Dec."}
1010     MACRO {acmcs} {"ACM Computing Surveys"}
1011     MACRO {acta} {"Acta Informatica"}
1012     MACRO {ai} {"Artificial Intelligence"}
1013     MACRO {cacm} {"Commun. ACM"}
1014     MACRO {ibmjrd} {"IBM Journal of Research and Development"}
1015     MACRO {ibmsj} {"IBM Systems Journal"}
1016     MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
1017     MACRO {ieeetc} {"IEEE Transactions on Computers"}
1018     MACRO {ieeetcad}
1019     {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
1020     MACRO {ipl} {"Inf. Process. Lett."}
1021     MACRO {ic} {"Inf. Comput."}
1022     MACRO {jacm} {"Journal of the ACM"}
1023     MACRO {jcss} {"J. Comput. Syst. Sci."}
1024     MACRO {scp} {"Science of Computer Programming"}
1025     MACRO {sicomp} {"SIAM Journal on Computing"}
1026     MACRO {tocs} {"ACM Transactions on Computer Systems"}
1027     MACRO {tods} {"ACM Transactions on Database Systems"}
1028     MACRO {tog} {"ACM Transactions on Graphics"}
1029     MACRO {toms} {"ACM Transactions on Mathematical Software"}
1030     MACRO {toois} {"ACM Transactions on Office Information Systems"}
1031     MACRO {toplas} {"ACM Trans. on Programm. Lang. Syst."}
1032     MACRO {tcs} {"Theor. Comp. Sci."}
1033     READ
1034     FUNCTION {sortify}
1035     { purify$
1036     "l" change.case$
1037     }
1038     INTEGERS { len }
1039     FUNCTION {chop.word}
1040     { 's :=
1041     'len :=
1042     s #1 len substring$ =
1043     { s len #1 + global.max$ substring$ }
1044     's
1045     if$
1046     }
1047     FUNCTION {sort.format.names}
1048     { 's :=
1049     #1 'nameptr :=
1050     ""
1051     s num.names$ 'numnames :=
1052     numnames 'namesleft :=
1053     { namesleft #0 > }
1054     { nameptr #1 >
1055     { " " * }
1056     'skip$
1057     if$
1058     s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
1059     nameptr numnames = t "others" = and
1060     { " et~al" * }
1061     { t sortify * }
1062     if$
1063     nameptr #1 + 'nameptr :=
1064     namesleft #1 - 'namesleft :=
1065     }
1066     while$
1067     }
1068     FUNCTION {sort.format.title}
1069     { 't :=
1070     "A " #2
1071     "An " #3
1072     "The " #4 t chop.word
1073     chop.word
1074     chop.word
1075     sortify
1076     #1 global.max$ substring$
1077     }
1078     FUNCTION {author.sort}
1079     { author empty$
1080     { key empty$
1081     { "to sort, need author or key in " cite$ * warning$
1082     "" }
1083     { key sortify }
1084     if$
1085     }
1086     { author sort.format.names }
1087     if$
1088     }
1089     FUNCTION {editor.sort}
1090     { editor empty$
1091     { key empty$
1092     { "to sort, need editor or key in " cite$ * warning$
1093     ""
1094     }
1095     { key sortify }
1096     if$
1097     }
1098     { editor sort.format.names }
1099     if$
1100     }
1101     FUNCTION {author.editor.sort}
1102     {
1103     author empty$
1104     { "missing author in " cite$ * warning$
1105     editor empty$
1106     { key empty$
1107     { "to sort, need author, editor, or key in "
1108     cite$ * warning$
1109     ""
1110     }
1111     {
1112     key sortify
1113     }
1114     if$
1115     }
1116     {
1117     editor sort.format.names
1118     }
1119     if$
1120     }
1121     {
1122     author sort.format.names
1123     }
1124     if$
1125     }
1126     FUNCTION {author.organization.sort}
1127     { author empty$
1128     { organization empty$
1129     { key empty$
1130     { "to sort, need author, organization, or key in "
1131     cite$ * warning$
1132     ""
1133     }
1134     { key sortify }
1135     if$
1136     }
1137     { organization sortify }
1138     if$
1139     }
1140     { author sort.format.names }
1141     if$
1142     }
1143     FUNCTION {editor.organization.sort}
1144     { editor empty$
1145     { organization empty$
1146     { key empty$
1147     { "to sort, need editor, organization, or key in "
1148     cite$ * warning$
1149     ""
1150     }
1151     { key sortify }
1152     if$
1153     }
1154     { organization sortify }
1155     if$
1156     }
1157     { editor sort.format.names }
1158     if$
1159     }
1160     FUNCTION {presort}
1161     { calc.label sortify % recalculate bibitem label
1162     year field.or.null purify$ #-1 #4 substring$ * % add year
1163     " "
1164     *
1165     type$ "book" =
1166     type$ "inbook" =
1167     or
1168     'author.editor.sort
1169     { type$ "proceedings" =
1170     'editor.organization.sort
1171     { type$ "manual" =
1172     'author.organization.sort
1173     'author.sort
1174     if$
1175     }
1176     if$
1177     }
1178     if$
1179     #1 entry.max$ substring$ % added for newapa
1180     'sort.label := % added for newapa
1181     sort.label % added for newapa
1182     *
1183     " "
1184     *
1185     title field.or.null
1186     sort.format.title
1187     *
1188     #1 entry.max$ substring$
1189     'sort.key$ :=
1190     }
1191     ITERATE {presort}
1192     SORT % by label, year, author/editor, title
1193     STRINGS { last.label next.extra }
1194     INTEGERS { last.extra.num }
1195     FUNCTION {init.extra.label.stuff}
1196     { #0 int.to.chr$ 'last.label :=
1197     "" 'next.extra :=
1198     #0 'last.extra.num :=
1199     }
1200     FUNCTION {forward.pass}
1201     { last.label
1202     calc.label year field.or.null purify$ #-1 #4 substring$ * % add year
1203     #1 entry.max$ substring$ = % are they equal?
1204     { last.extra.num #1 + 'last.extra.num :=
1205     last.extra.num int.to.chr$ 'extra.label :=
1206     }
1207     { "a" chr.to.int$ 'last.extra.num :=
1208     "" 'extra.label :=
1209     calc.label
1210     year field.or.null purify$ #-1 #4 substring$ * % add year
1211     #1 entry.max$ substring$ 'last.label := % assign to last.label
1212     }
1213     if$
1214     }
1215     FUNCTION {reverse.pass}
1216     { next.extra "b" =
1217     { "a" 'extra.label := }
1218     'skip$
1219     if$
1220     label.year extra.label * 'sort.year :=
1221     extra.label 'next.extra :=
1222     }
1223     EXECUTE {init.extra.label.stuff}
1224     ITERATE {forward.pass}
1225     REVERSE {reverse.pass}
1226     FUNCTION {bib.sort.order}
1227     { sort.label
1228     " "
1229     *
1230     year field.or.null sortify
1231     *
1232     " "
1233     *
1234     title field.or.null
1235     sort.format.title
1236     *
1237     #1 entry.max$ substring$
1238     'sort.key$ :=
1239     }
1240     ITERATE {bib.sort.order}
1241     SORT % by sort.label, year, title --- giving final bib. order.
1242     FUNCTION {begin.bib}
1243     { preamble$ empty$
1244     'skip$
1245     { preamble$ write$ newline$ }
1246     if$
1247     "\begin{thebibliography}{}" write$ newline$
1248     }
1249     EXECUTE {begin.bib}
1250     EXECUTE {init.state.consts}
1251     ITERATE {call.type$}
1252     FUNCTION {end.bib}
1253     { newline$
1254     "\end{thebibliography}" write$ newline$
1255     }
1256     EXECUTE {end.bib}
1257     %%
1258     %% End of file `esub2acm.bst'.
1259     %% Mods and additional header information by Gerry Murray Dec. 27 1996
1260    
1261     %$History: esub2acm.bst $
1262     %
1263     % ***************** Version 3 *****************
1264     % User: Dashley1 Date: 10/17/00 Time: 8:43p
1265     % Updated in $/ACM Rational Approximation Paper And Algorithms/LaTeX Paper And Graphics
1266     % Comments added to explain that file under VC and that a change history
1267     % is at the end of file.
1268     %
1269     % ***************** Version 2 *****************
1270     % User: Dashley1 Date: 10/17/00 Time: 8:37p
1271     % Updated in $/ACM Rational Approximation Paper And Algorithms/LaTeX Paper And Graphics
1272     % VC info added.
1273     %
1274     %End of file ESUB2ACM.BST
1275    
1276    

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25