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