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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 24 - (show annotations) (download)
Sat Oct 8 06:15:00 2016 UTC (8 years ago) by dashley
File size: 28256 byte(s)
Initial commit.
1 %$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