0
|
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
|