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