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