comparison paper/ipsjunsrt.bst @ 0:7ee2c99e00db

add file
author Yutaka_Kinjyo
date Sat, 12 Mar 2011 05:09:28 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:7ee2c99e00db
1 % ipsjunsrt.bst 28-Oct-10 by Hiroshi Nakashima (ver 3.00)
2 % ipsjunsrt.bst 15-Jun-07 by Hiroshi Nakashima (ver 2.12)
3 % ipsjunsrt.bst 30-Jan-02 by Hiroshi Nakashima (ver 2.00)
4 % ipsjunsrt.bst 28-Dec-93 by Hiroshi Nakashima (ver 1.00)
5 % jssst.bst tomura@etl.go.jp (Satoru Tomura)
6 % BibTeX standard bibliography style `jplain'
7 % version 0.10 for JBibTeX versions 0.10 or later, JLaTeX version 2.09.
8 % by Shouichi Matsui, matsui@denken.junet
9
10 ENTRY
11 { address
12 author
13 booktitle
14 chapter
15 doi % 3.00(1)
16 edition
17 editor
18 howpublished
19 institution
20 journal
21 key
22 month
23 note
24 number
25 organization
26 pages
27 publisher
28 refdate % 3.00(1)
29 school
30 series
31 title
32 type
33 url % 3.00(1)
34 volume
35 year
36 yomi
37 }
38 {}
39 { label }
40
41 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
42
43 INTEGERS { before.year }
44
45 FUNCTION {init.state.consts}
46 { #0 'before.all :=
47 #1 'mid.sentence :=
48 #2 'after.sentence :=
49 #3 'after.block :=
50 #4 'before.year := % 1.00(1)
51 }
52
53 STRINGS { s t }
54
55 FUNCTION {is.kanji}
56 { is.kanji.str$ } % 1.00(2), 2.00(1)
57
58 FUNCTION {is.kanji.title} % 3.00(1)
59 { title is.kanji.str$ }
60
61 FUNCTION {output.nonnull}
62 { 's :=
63 output.state mid.sentence =
64 { duplicate$ is.kanji % 2.00(2)
65 { "," * write$ }
66 { ", " * write$ }
67 if$
68 }
69 { output.state after.block =
70 { add.period$ write$
71 newline$
72 "\newblock " write$
73 }
74 { output.state before.all =
75 'write$
76 { output.state before.year = % 1.00(1)
77 { " " * write$ }
78 { add.period$ " " * write$ }
79 if$
80 }
81 if$
82 }
83 if$
84 mid.sentence 'output.state :=
85 }
86 if$
87 s
88 }
89
90 FUNCTION {output}
91 { duplicate$ empty$
92 'pop$
93 'output.nonnull
94 if$
95 }
96
97 FUNCTION {required.argument}
98 { 't :=
99 empty$
100 {"Missing required argument " t * " in " * cite$ * warning$}
101 'skip$
102 if$
103 }
104
105 FUNCTION {required.exclusive.or.argument}
106 { 't :=
107 empty$
108 { 's :=
109 empty$
110 { t " or " * s * " is missing in " * cite$ * warning$}
111 'skip$
112 if$
113 }
114 { 's :=
115 empty$
116 'skip$
117 { "You can use only one of " t * " and " * s * " in " * cite$ * warning$}
118 if$
119 }
120 if$
121 }
122
123 FUNCTION {required.and.or.argument}
124 { 't := empty$
125 { 's := empty$
126 { "there's no " t * " and/or " * s * cite$ * warning$ }
127 'skip$
128 if$
129 }
130 { pop$ pop$ }
131 if$
132 }
133
134 FUNCTION {optional.series.volume.number.argument}
135 { series empty$
136 { volume empty$
137 { number empty$
138 'skip$
139 { "there's a number but no series in " cite$ * warning$ }
140 if$
141 }
142 { number empty$
143 { "there's a volume but no series in " cite$ * warning$ }
144 { "you can use only one of volume and number in " cite$ * warning$}
145 if$
146 }
147 if$
148 }
149 { volume empty$
150 { number empty$
151 { "there's a series but neither volume nor number in " cite$ * warning$ }
152 'skip$
153 if$
154 }
155 { number empty$
156 'skip$
157 { "you can use only one of volume and number in " cite$ * warning$ }
158 if$
159 }
160 if$
161 }
162 if$
163 }
164
165 FUNCTION {output.bibitem}
166 { newline$
167 "\bibitem{" write$
168 cite$ write$
169 "}" write$
170 newline$
171 before.all 'output.state :=
172 }
173
174 FUNCTION {fin.entry}
175 { add.period$
176 write$
177 newline$
178 }
179
180 FUNCTION {new.block}
181 { output.state before.all =
182 'skip$
183 { after.block 'output.state := }
184 if$
185 }
186
187 FUNCTION {new.sentence}
188 { output.state after.block =
189 'skip$
190 { output.state before.all =
191 'skip$
192 { after.sentence 'output.state := }
193 if$
194 }
195 if$
196 }
197
198 FUNCTION {not}
199 { { #0 }
200 { #1 }
201 if$
202 }
203
204 FUNCTION {and}
205 { 'skip$
206 { pop$ #0 }
207 if$
208 }
209
210 FUNCTION {or}
211 { { pop$ #1 }
212 'skip$
213 if$
214 }
215
216 FUNCTION {new.block.checka}
217 { empty$
218 'skip$
219 'new.block
220 if$
221 }
222
223 FUNCTION {new.block.checkb}
224 { empty$
225 swap$ empty$
226 and
227 'skip$
228 'new.block
229 if$
230 }
231
232 FUNCTION {new.sentence.checka}
233 { empty$
234 'skip$
235 'new.sentence
236 if$
237 }
238
239 FUNCTION {new.sentence.checkb}
240 { empty$
241 swap$ empty$
242 and
243 'skip$
244 'new.sentence
245 if$
246 }
247
248 FUNCTION {field.or.null}
249 { duplicate$ empty$
250 { pop$ "" }
251 'skip$
252 if$
253 }
254
255 FUNCTION {emphasize}
256 { duplicate$ empty$
257 { pop$ "" }
258 { duplicate$ is.kanji
259 'skip$ % 1.00(3)
260 { "{\em " swap$ * "}" * } % 2.00(3)
261 if$
262 }
263 if$
264 }
265
266 INTEGERS { nameptr namesleft numnames }
267
268 FUNCTION {format.names} % 1.00(4), 2.00(4)
269 { 's :=
270 #1 'nameptr :=
271 s num.names$ 'numnames :=
272 numnames 'namesleft :=
273 { namesleft #0 > }
274 { s nameptr "{ff}{ll}" format.name$ duplicate$ is.kanji
275 { duplicate$ text.length$ #6 >
276 { 't := }
277 { pop$ s nameptr "{ff} {ll}" format.name$ 't := }
278 if$
279 }
280 { pop$ s nameptr "{vv }{ll}{, jj}{, f.}" format.name$ 't := }
281 if$
282 nameptr #1 >
283 { namesleft #1 >
284 { s is.kanji
285 { "," }
286 { ", " }
287 if$
288 * t * }
289 { t "others" =
290 { s is.kanji
291 {"ほか" * }
292 {" et al." * }
293 if$
294 }
295 { s is.kanji
296 {"," * t * } % put "," here for Kanji (H.N.)
297 {" and " * t * }
298 if$
299 }
300 if$
301 }
302 if$
303 }
304 't
305 if$
306 nameptr #1 + 'nameptr :=
307 namesleft #1 - 'namesleft :=
308 }
309 while$
310 }
311
312 FUNCTION {format.authors}
313 { author empty$
314 { "" }
315 { author format.names }
316 if$
317 }
318
319 FUNCTION {add.colon} % 2.00(5)
320 { duplicate$ is.kanji
321 { "\:" * } % 2.12(1)
322 { ": " * }
323 if$
324 }
325
326 FUNCTION {format.editors.inparen} % 2.00(6)
327 { editor empty$
328 { "" }
329 { editor format.names
330 editor num.names$ #1 >
331 { editor is.kanji
332 {",編" * } {", eds." *} if$
333 }
334 { editor is.kanji
335 {",編" *} {", ed." *} if$
336 }
337 if$
338 }
339 if$
340 }
341
342 FUNCTION {format.editors}
343 { editor empty$
344 { "" }
345 { editor format.names
346 editor num.names$ #1 >
347 { editor is.kanji
348 {"(編)" * } {"(eds.)" *} if$ % 2.00(7)
349 }
350 { editor is.kanji
351 {"(編)" *} {"(ed.)" *} if$ % 2.00(7)
352 }
353 if$
354 }
355 if$
356 }
357
358 FUNCTION {n.dashify}
359 { 't :=
360 ""
361 { t empty$ not }
362 { t #1 #1 substring$ "-" =
363 { t #1 #2 substring$ "--" = not
364 { "--" *
365 t #2 global.max$ substring$ 't :=
366 }
367 { { t #1 #1 substring$ "-" = }
368 { "-" *
369 t #2 global.max$ substring$ 't :=
370 }
371 while$
372 }
373 if$
374 }
375 { t #1 #1 substring$ *
376 t #2 global.max$ substring$ 't :=
377 }
378 if$
379 }
380 while$
381 }
382
383 FUNCTION {format.date}
384 { before.year 'output.state := % 1.00(1)
385 year empty$
386 { month empty$
387 { "" }
388 { "there's a month but no year in " cite$ * warning$
389 "" % 1.00(5)
390 }
391 if$
392 }
393 { "(" year ")" * * } % 1.00(5)
394 if$
395 }
396
397 FUNCTION {format.ref.date} % 3.00(1)>>
398 { before.year 'output.state :=
399 is.kanji.title
400 { "\refdatej{" refdate "}" * *}
401 { "\refdatee{" refdate "}" * *}
402 if$
403 } % 3.00(1)<<
404
405 FUNCTION {tie.or.space.connect}
406 { duplicate$ text.length$ #3 <
407 { "~" }
408 { "\ " } % 1.00(6)
409 if$
410 swap$ * *
411 }
412
413 FUNCTION {output.volume}
414 {
415 volume empty$
416 'skip$
417 { "Vol.~" volume * output}
418 if$
419
420 }
421
422 FUNCTION {output.number}
423 {
424 number empty$
425 'skip$
426 { "No.~" number * output}
427 if$
428 }
429
430 FUNCTION {output.series.volume.number}
431 { series empty$
432 { output.volume
433 output.number }
434 { series is.kanji
435 volume empty$
436 number empty$
437 or
438 and
439 { series " " * volume * number * output}
440 { series output
441 output.volume
442 output.number}
443 if$
444 }
445 if$
446 }
447
448 FUNCTION {format.edition}
449 { edition empty$
450 { "" }
451 { output.state mid.sentence =
452 { edition "l" change.case$ " edition" * }
453 { edition "t" change.case$ " edition" * }
454 if$
455 }
456 if$
457 }
458
459 INTEGERS { multiresult }
460
461 FUNCTION {multi.page.check}
462 { 't :=
463 #0 'multiresult :=
464 { multiresult not
465 t empty$ not
466 and
467 }
468 { t #1 #1 substring$
469 duplicate$ "-" =
470 swap$ duplicate$ "," =
471 swap$ "+" =
472 or or
473 { #1 'multiresult := }
474 { t #2 global.max$ substring$ 't := }
475 if$
476 }
477 while$
478 multiresult
479 }
480
481 FUNCTION {format.online} % 3.00(1)>>
482 { is.kanji.title
483 { "(オンライン)" * }
484 { duplicate$ empty$
485 { "(online)" * }
486 { " (online)" * }
487 if$
488 }
489 if$
490 } % 3.00(1)<<
491
492 FUNCTION {format.url} % 3.00(1)>>
493 { is.kanji.title
494 { "\urlj{" url "}" * * }
495 { "\urle{" url "}" * * }
496 if$
497 } % 3.00(1)<<
498
499 FUNCTION {format.pages} % 1.00(7)
500 { pages empty$
501 { "" }
502 { pages multi.page.check
503 { "pp." pages n.dashify tie.or.space.connect }
504 { "p." pages tie.or.space.connect }
505 if$
506 }
507 if$
508 }
509
510 FUNCTION {format.doi.url} % 3.00(1)>>
511 { doi empty$
512 { url empty$
513 'skip$
514 { format.online output.nonnull
515 format.url
516 }
517 if$
518 }
519 { format.online output.nonnull
520 "\doi{" doi "}" * *
521 }
522 if$ % 3.00(1)<<
523 }
524
525 FUNCTION {format.pages.output} % 3.00(1)>>
526 { format.pages
527 format.doi.url output % 3.00(1)<<
528 }
529
530 FUNCTION {format.vol.num.pages} % 1.00(8)
531 { volume empty$
532 { ""}
533 { " Vol.~" volume * }
534 if$
535 number empty$
536 'skip$
537 { volume empty$
538 { "there's a number but no volume in " cite$ * warning$ }
539 { "," *}
540 if$
541 " No.~" number * *
542 }
543 if$
544 pages empty$
545 'skip$
546 { duplicate$ empty$
547 { pop$ format.pages }
548 { ", " * format.pages * }
549 if$
550 }
551 if$
552 format.doi.url % 3.00(1)
553 }
554
555 FUNCTION {format.chapter.pages}
556 { chapter empty$
557 'format.pages
558 { type empty$
559 { "chapter" chapter tie.or.space.connect }
560 { type is.kanji
561 { chapter type tie.or.space.connect }
562 { type "l" change.case$ chapter tie.or.space.connect }
563 if$
564 }
565 if$
566 pages empty$
567 'skip$
568 { ", " * format.pages * }
569 if$
570 }
571 if$
572 format.doi.url % 3.00(1)
573 }
574
575 FUNCTION {format.in.ed.booktitle}
576 { booktitle empty$
577 { "" }
578 { booktitle emphasize
579 editor empty$
580 'skip$
581 { booktitle is.kanji
582 { "(" * format.editors.inparen * ")" *} % 2.00(6,7)
583 { " (" * format.editors.inparen * ")" *} % 1.00(9), 2.00(6)
584 if$
585 }
586 if$
587 }
588 if$
589 }
590
591 FUNCTION {empty.misc.check}
592 { author empty$ title empty$ howpublished empty$
593 month empty$ year empty$ note empty$
594 and and and and and
595 key empty$ not and
596 { "all relevant fields are empty in " cite$ * warning$ }
597 'skip$
598 if$
599 }
600
601 FUNCTION {format.thesis.type}
602 { type empty$
603 'skip$
604 { pop$
605 type "t" change.case$
606 }
607 if$
608 }
609
610 FUNCTION {format.tr.number}
611 { type empty$
612 { title empty$
613 { "Technical Report" }
614 { title is.kanji
615 { "技術報告" }
616 { "Technical Report" }
617 if$
618 }
619 if$
620 }
621 {type}
622 if$
623 number empty$
624 { "t" change.case$ }
625 { " " number * * }
626 if$
627 }
628
629 FUNCTION {format.article.crossref} % 2.00(8)
630 { key empty$
631 { journal empty$
632 { "need key or journal for " cite$ * " to crossref " * crossref *
633 warning$
634 ""
635 }
636 { journal emphasize } % 1.00(10)
637 if$
638 }
639 { "In " key * }
640 if$
641 " \cite{" * crossref * "}" *
642 }
643
644 FUNCTION {format.crossref.editor} % 1.00(11)
645 { editor #1
646 editor is.kanji { "{ff}" } { "{vv }{ll}" } if$
647 format.name$
648 editor num.names$ duplicate$
649 #2 >
650 { editor is.kanji
651 {pop$ "ほか" *} {pop$ " et al." * } if$
652 }
653 { #2 <
654 'skip$
655 { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
656 { editor is.kanji
657 {"ほか" *} {" et al." * } if$
658 }
659 { editor is.kanji
660 {"・" * editor #2 "{ff}" format.name$ * }
661 {" and " * editor #2 "{vv }{ll}" format.name$ * }
662 if$
663 }
664 if$
665 }
666 if$
667 }
668 if$
669 }
670
671 FUNCTION {format.book.crossref} % 2.00(8)
672 { editor empty$
673 editor field.or.null author field.or.null =
674 or
675 { key empty$
676 { series empty$
677 { "need editor, key, or series for " cite$ * " to crossref " *
678 crossref * warning$
679 ""
680 }
681 { series emphasize } % 1.00(10)
682 if$
683 }
684 { "In " key * }
685 if$
686 }
687 { format.crossref.editor }
688 if$
689 " \cite{" * crossref * "}" *
690 volume empty$
691 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ }
692 { duplicate$ is.kanji { "," } { ", "} if$ *
693 "Vol." * volume tie.or.space.connect
694 }
695 if$
696 }
697
698 FUNCTION {format.incoll.inproc.crossref} % 2.00(8)
699 { editor empty$
700 editor field.or.null author field.or.null =
701 or
702 { key empty$
703 { booktitle empty$
704 { "need editor, key, or booktitle for " cite$ * " to crossref " *
705 crossref * warning$
706 ""
707 }
708 { booktitle emphasize } % 1.00(10)
709 if$
710 }
711 { "In " key * }
712 if$
713 }
714 { format.crossref.editor }
715 if$
716 " \cite{" * crossref * "}" *
717 }
718
719 FUNCTION {article}
720 {
721 %%%%
722 author "author" required.argument
723 title "title" required.argument
724 journal "journal" required.argument
725 year "year" required.argument
726 %%%% jssst
727 volume "volume"
728 number "number"
729 required.and.or.argument
730 pages "pages" required.argument
731 %%%%
732 output.bibitem
733 format.authors add.colon % 2.00(5)
734 title output
735 crossref missing$
736 { journal emphasize output
737 format.vol.num.pages output % 1.00(12)
738 format.date output
739 }
740 { format.article.crossref output.nonnull
741 format.pages.output % 3.00(1)
742 }
743 if$
744 new.block
745 note output
746 fin.entry
747 }
748
749 FUNCTION {book}
750 {
751 %%%%
752 author "author"
753 editor "editor"
754 required.exclusive.or.argument
755 title "title" required.argument
756 publisher "publisher" required.argument
757 year "year" required.argument
758 optional.series.volume.number.argument
759 %%%%
760 output.bibitem
761 author empty$
762 { format.editors}
763 { format.authors}
764 if$
765 add.colon % 2.00(5)
766 title emphasize output
767 crossref missing$
768 { output.series.volume.number
769 publisher output
770 address output
771 }
772 { new.block
773 format.book.crossref output.nonnull
774 }
775 if$
776 format.edition output
777 format.date output
778 new.block
779 note output
780 fin.entry
781 }
782
783 FUNCTION {booklet}
784 {
785 %%%%
786 title "title" required.argument
787 %%%% jssst
788 author "author" required.argument
789 %%%%
790 output.bibitem
791 format.authors add.colon % 2.00(5)
792 title output
793 howpublished output
794 address output
795 format.date output
796 new.block
797 note output
798 fin.entry
799 }
800
801 FUNCTION {inbook}
802 {
803 %%%%
804 author "author"
805 editor "editor"
806 required.exclusive.or.argument
807 title "title" required.argument
808 chapter "chapter"
809 pages "pages"
810 required.and.or.argument
811 publisher "publisher" required.argument
812 year "year" required.argument
813
814 optional.series.volume.number.argument
815 %%%%
816 output.bibitem
817 author empty$
818 { format.editors}
819 { format.authors}
820 if$
821 add.colon % 2.00(5)
822 title emphasize output
823 crossref missing$
824 { output.series.volume.number
825 format.chapter.pages output
826 publisher output
827 }
828 { format.chapter.pages output
829 new.block
830 format.book.crossref output.nonnull
831 }
832 if$
833 format.edition output
834 format.date output % 1.00(13)
835 new.block
836 note output
837 fin.entry
838 }
839
840 FUNCTION {incollection}
841 {
842 %%%%
843 author "author" required.argument
844 title "title" required.argument
845 booktitle "booktitle" required.argument
846 publisher "publisher" required.argument
847 year "year" required.argument
848
849 optional.series.volume.number.argument
850 %%%%
851 output.bibitem
852 format.authors add.colon % 2.00(5)
853 title output
854 crossref missing$
855 { format.in.ed.booktitle output
856 output.series.volume.number
857 publisher output
858 address output
859 format.edition output
860 format.chapter.pages output % 1.00(13)
861 format.date output
862 }
863 { format.incoll.inproc.crossref output.nonnull
864 format.chapter.pages output
865 }
866 if$
867 new.block
868 note output
869 fin.entry
870 }
871
872 FUNCTION {inproceedings}
873 {
874 %%%%
875 author "author" required.argument
876 title "title" required.argument
877 year "year" required.argument
878
879 optional.series.volume.number.argument
880 %%%%
881 output.bibitem
882 format.authors add.colon % 2.00(5)
883 title output
884 crossref missing$
885 { format.in.ed.booktitle output
886 booktitle "booktitle" required.argument
887 output.series.volume.number
888 address output
889 organization output
890 publisher output
891 format.pages.output % 3.00(1)
892 format.date output % 1.00(13)
893 }
894 { format.incoll.inproc.crossref output.nonnull
895 format.pages.output % 3.00(1)
896 }
897 if$
898 new.block
899 note output
900 fin.entry
901 }
902
903 FUNCTION {conference} { inproceedings }
904
905 FUNCTION {manual}
906 {
907 %%%%
908 title "title" required.argument
909 %%%% jssst
910 author "author"
911 organization "organazaion"
912 required.exclusive.or.argument
913 %%%%
914 output.bibitem
915 author empty$
916 { organization}
917 { format.authors}
918 if$
919 add.colon % 2.00(5)
920 title emphasize output
921 author empty$
922 'skip$
923 { organization output }
924 if$
925 address output
926 format.edition output
927 format.date output
928 new.block
929 note output
930 fin.entry
931 }
932
933 FUNCTION {mastersthesis}
934 {
935 %%%%
936 author "author" required.argument
937 title "title" required.argument
938 school "school" required.argument
939 year "year" required.argument
940 %%%%
941 output.bibitem
942 format.authors add.colon % 2.00(5)
943 title output
944 author empty$
945 { "Master's thesis" }
946 { author is.kanji
947 { "修士論文" }
948 { "Master's thesis" }
949 if$
950 }
951 if$
952 format.thesis.type output.nonnull
953 school output
954 address output
955 format.date output
956 new.block
957 note output
958 fin.entry
959 }
960
961 FUNCTION {misc}
962 {
963 %%%%
964 %%%% jssst
965 author "author" required.argument
966 title "title" required.argument
967 %%%%
968 output.bibitem
969 format.authors add.colon % 2.00(5)
970 title output
971 howpublished output
972 format.date output
973 new.block
974 note output
975 fin.entry
976 empty.misc.check
977 }
978
979 FUNCTION {phdthesis}
980 {
981 %%%%
982 author "author" required.argument
983 title "title" required.argument
984 school "school" required.argument
985 year "year" required.argument
986 %%%%
987 output.bibitem
988 format.authors add.colon % 2.00(5)
989 title output % 2.00(9)
990 author empty$
991 { "PhD Thesis" }
992 { author is.kanji
993 { "博士論文" }
994 { "PhD Thesis" }
995 if$
996 }
997 if$
998 format.thesis.type output.nonnull
999 school output
1000 address output
1001 format.date output
1002 new.block
1003 note output
1004 fin.entry
1005 }
1006
1007 FUNCTION {proceedings}
1008 {
1009 %%%%
1010 title "title" required.argument
1011 year "year" required.argument
1012
1013 optional.series.volume.number.argument
1014 %%%% jssst
1015 editor "editor"
1016 organization "organization"
1017 required.exclusive.or.argument
1018 %%%%
1019 output.bibitem
1020 editor empty$
1021 { organization }
1022 { format.editors }
1023 if$
1024 add.colon % 2.00(5)
1025 title emphasize output
1026 output.series.volume.number
1027 address output
1028 editor empty$
1029 'skip$
1030 { organization output }
1031 if$
1032 publisher output
1033 format.date output
1034 new.block
1035 note output
1036 fin.entry
1037 }
1038
1039 FUNCTION {techreport}
1040 {
1041 %%%%
1042 author "author" required.argument
1043 title "title" required.argument
1044 institution "institution" required.argument
1045 year "year" required.argument
1046 %%%%
1047 output.bibitem
1048 format.authors add.colon % 2.00(5)
1049 title output
1050 format.tr.number output.nonnull
1051 institution output
1052 address output
1053 format.date output
1054 new.block
1055 note output
1056 fin.entry
1057 }
1058
1059 FUNCTION {unpublished}
1060 {
1061 %%%%
1062 author "author" required.argument
1063 title "title" required.argument
1064 note "note" required.argument
1065 %%%%
1066 output.bibitem
1067 format.authors add.colon % 2.00(5)
1068 title output
1069 format.date output
1070 new.block
1071 note output
1072 fin.entry
1073 }
1074
1075 FUNCTION {webpage} % 3.00(1)>>
1076 {
1077 %%%%
1078 author "author" required.argument
1079 title "title" required.argument
1080 url "url" required.argument
1081 refdate "refdate" required.argument
1082 %%%%
1083 output.bibitem
1084 format.authors add.colon
1085 title output
1086 organization format.doi.url output
1087 format.ref.date output
1088 new.block
1089 note output
1090 fin.entry
1091 } % 3.00(1)<<
1092
1093 FUNCTION {default.type} { misc }
1094
1095 MACRO {jan} {"January"}
1096
1097 MACRO {feb} {"February"}
1098
1099 MACRO {mar} {"March"}
1100
1101 MACRO {apr} {"April"}
1102
1103 MACRO {may} {"May"}
1104
1105 MACRO {jun} {"June"}
1106
1107 MACRO {jul} {"July"}
1108
1109 MACRO {aug} {"August"}
1110
1111 MACRO {sep} {"September"}
1112
1113 MACRO {oct} {"October"}
1114
1115 MACRO {nov} {"November"}
1116
1117 MACRO {dec} {"December"}
1118
1119 MACRO {acmcs} {"ACM Computing Surveys"}
1120
1121 MACRO {acta} {"Acta Informatica"}
1122
1123 MACRO {cacm} {"Communications of the ACM"}
1124
1125 MACRO {ibmjrd} {"IBM Journal of Research and Development"}
1126
1127 MACRO {ibmsj} {"IBM Systems Journal"}
1128
1129 MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
1130
1131 MACRO {ieeetc} {"IEEE Transactions on Computers"}
1132
1133 MACRO {ieeetcad}
1134 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
1135
1136 MACRO {ipl} {"Information Processing Letters"}
1137
1138 MACRO {jacm} {"Journal of the ACM"}
1139
1140 MACRO {jcss} {"Journal of Computer and System Sciences"}
1141
1142 MACRO {scp} {"Science of Computer Programming"}
1143
1144 MACRO {sicomp} {"SIAM Journal on Computing"}
1145
1146 MACRO {tocs} {"ACM Transactions on Computer Systems"}
1147
1148 MACRO {tods} {"ACM Transactions on Database Systems"}
1149
1150 MACRO {tog} {"ACM Transactions on Graphics"}
1151
1152 MACRO {toms} {"ACM Transactions on Mathematical Software"}
1153
1154 MACRO {toois} {"ACM Transactions on Office Information Systems"}
1155
1156 MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
1157
1158 MACRO {tcs} {"Theoretical Computer Science"}
1159
1160 READ
1161
1162 STRINGS { longest.label }
1163
1164 INTEGERS { number.label longest.label.width }
1165
1166 FUNCTION {initialize.longest.label}
1167 { "" 'longest.label :=
1168 #1 'number.label :=
1169 #0 'longest.label.width :=
1170 }
1171
1172 FUNCTION {longest.label.pass}
1173 { number.label int.to.str$ 'label :=
1174 number.label #1 + 'number.label :=
1175 label width$ longest.label.width >
1176 { label 'longest.label :=
1177 label width$ 'longest.label.width :=
1178 }
1179 'skip$
1180 if$
1181 }
1182
1183 EXECUTE {initialize.longest.label}
1184
1185 ITERATE {longest.label.pass}
1186
1187 FUNCTION {begin.bib}
1188 { preamble$ empty$
1189 'skip$
1190 { preamble$ write$ newline$ }
1191 if$
1192 "\begin{thebibliography}{" longest.label * "}" * write$ newline$
1193 }
1194
1195 EXECUTE {begin.bib}
1196
1197 EXECUTE {init.state.consts}
1198
1199 ITERATE {call.type$}
1200
1201 FUNCTION {end.bib}
1202 { newline$
1203 "\end{thebibliography}" write$ newline$
1204 }
1205
1206 EXECUTE {end.bib}
1207
1208