ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/fennellDissertation/ndthesis.bst
Revision: 2957
Committed: Fri Jul 21 22:18:24 2006 UTC (17 years, 11 months ago) by chrisfen
File size: 25463 byte(s)
Log Message:
bunch of changes

File Contents

# Content
1 %%
2 %% This is file `nddiss2e.bst',
3 %% generated with the docstrip utility.
4 %%
5 %% The original source files were:
6 %%
7 %% merlin.mbs (with options: `,nm-init,yr-par,volp-sp,blk-tit,jabr,and-xcom,etal-it')
8 %% ----------------------------------------
9 %% *** Bibliography style for dissertations at Notre Dame ***
10 %%
11 %-------------------------------------------------------------------
12 % The original source file contains the following version information:
13 % \ProvidesFile{merlin.mbs}[1996/12/16 3.82 (PWD)]
14 %
15 % NOTICE:
16 % This file may be used for non-profit purposes.
17 % It may not be distributed in exchange for money,
18 % other than distribution costs.
19 %
20 % The author provides it `as is' and does not guarantee it in any way.
21 %
22 % Copyright (C) 1994, 1995, 1996 Patrick W. Daly
23 %-------------------------------------------------------------------
24 % For use with BibTeX version 0.99a or later
25 %-------------------------------------------------------------------
26 % This bibliography style file is intended for texts in ENGLISH
27 % This is a numerical citation style, and as such is standard LaTeX.
28 % It requires no extra package to interface to the main text.
29 % The form of the \bibitem entries is
30 % \bibitem{key}...
31 % Usage of \cite is as follows:
32 % \cite{key} ==>> [#]
33 % \cite[chap. 2]{key} ==>> [#, chap. 2]
34 % where # is a number determined by the ordering in the reference list.
35 % The order in the reference list is alphabetical by authors.
36 %---------------------------------------------------------------------
37
38 ENTRY
39 { address
40 author
41 booktitle
42 chapter
43 edition
44 editor
45 howpublished
46 institution
47 journal
48 key
49 month
50 note
51 number
52 organization
53 pages
54 publisher
55 school
56 series
57 title
58 type
59 volume
60 year
61 }
62 {}
63 { label }
64
65 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
66
67 FUNCTION {init.state.consts}
68 { #0 'before.all :=
69 #1 'mid.sentence :=
70 #2 'after.sentence :=
71 #3 'after.block :=
72 }
73
74 STRINGS { s t }
75
76 FUNCTION {output.nonnull}
77 { 's :=
78 output.state mid.sentence =
79 { ", " * write$ }
80 { output.state after.block =
81 { add.period$ write$
82 newline$
83 "\newblock " write$
84 }
85 { output.state before.all =
86 'write$
87 { add.period$ " " * write$ }
88 if$
89 }
90 if$
91 mid.sentence 'output.state :=
92 }
93 if$
94 s
95 }
96
97 FUNCTION {output}
98 { duplicate$ empty$
99 'pop$
100 'output.nonnull
101 if$
102 }
103
104 FUNCTION {output.check}
105 { 't :=
106 duplicate$ empty$
107 { pop$ "empty " t * " in " * cite$ * warning$ }
108 'output.nonnull
109 if$
110 }
111
112 FUNCTION {fin.entry}
113 { add.period$
114 write$
115 newline$
116 }
117
118 FUNCTION {new.block}
119 { output.state before.all =
120 'skip$
121 { after.block 'output.state := }
122 if$
123 }
124
125 FUNCTION {new.sentence}
126 { output.state after.block =
127 'skip$
128 { output.state before.all =
129 'skip$
130 { after.sentence 'output.state := }
131 if$
132 }
133 if$
134 }
135
136 FUNCTION {add.blank}
137 { " " * before.all 'output.state :=
138 }
139
140 FUNCTION {date.block}
141 {
142 skip$
143 }
144
145 FUNCTION {not}
146 { { #0 }
147 { #1 }
148 if$
149 }
150
151 FUNCTION {and}
152 { 'skip$
153 { pop$ #0 }
154 if$
155 }
156
157 FUNCTION {or}
158 { { pop$ #1 }
159 'skip$
160 if$
161 }
162
163 FUNCTION {non.stop}
164 { duplicate$
165 "}" * add.period$
166 #-1 #1 substring$ "." =
167 }
168
169 FUNCTION {new.block.checka}
170 { empty$
171 'skip$
172 'new.block
173 if$
174 }
175
176 FUNCTION {new.block.checkb}
177 { empty$
178 swap$ empty$
179 and
180 'skip$
181 'new.block
182 if$
183 }
184
185 FUNCTION {new.sentence.checka}
186 { empty$
187 'skip$
188 'new.sentence
189 if$
190 }
191
192 FUNCTION {new.sentence.checkb}
193 { empty$
194 swap$ empty$
195 and
196 'skip$
197 'new.sentence
198 if$
199 }
200
201 FUNCTION {field.or.null}
202 { duplicate$ empty$
203 { pop$ "" }
204 'skip$
205 if$
206 }
207
208 FUNCTION {emphasize}
209 { duplicate$ empty$
210 { pop$ "" }
211 { "{\em " swap$ * "\/}" * }
212 if$
213 }
214
215 FUNCTION {capitalize}
216 { "u" change.case$ "t" change.case$ }
217
218 FUNCTION {space.word}
219 { " " swap$ * " " * }
220
221 % Here are the language-specific definitions for explicit words.
222 % Each function has a name bbl.xxx where xxx is the English word.
223 % The language selected here is ENGLISH
224 FUNCTION {bbl.and}
225 { "and"}
226
227 FUNCTION {bbl.editors}
228 { "editors" }
229
230 FUNCTION {bbl.editor}
231 { "editor" }
232
233 FUNCTION {bbl.edby}
234 { "edited by" }
235
236 FUNCTION {bbl.edition}
237 { "edition" }
238
239 FUNCTION {bbl.volume}
240 { "volume" }
241
242 FUNCTION {bbl.of}
243 { "of" }
244
245 FUNCTION {bbl.number}
246 { "number" }
247
248 FUNCTION {bbl.nr}
249 { "no." }
250
251 FUNCTION {bbl.in}
252 { "in" }
253
254 FUNCTION {bbl.pages}
255 { "pages" }
256
257 FUNCTION {bbl.page}
258 { "page" }
259
260 FUNCTION {bbl.chapter}
261 { "chapter" }
262
263 FUNCTION {bbl.techrep}
264 { "Technical Report" }
265
266 FUNCTION {bbl.mthesis}
267 { "Master's thesis" }
268
269 FUNCTION {bbl.phdthesis}
270 { "Ph.D. thesis" }
271
272 FUNCTION {bbl.first}
273 { "First" }
274
275 FUNCTION {bbl.second}
276 { "Second" }
277
278 FUNCTION {bbl.third}
279 { "Third" }
280
281 FUNCTION {bbl.fourth}
282 { "Fourth" }
283
284 FUNCTION {bbl.fifth}
285 { "Fifth" }
286
287 FUNCTION {bbl.st}
288 { "st" }
289
290 FUNCTION {bbl.nd}
291 { "nd" }
292
293 FUNCTION {bbl.rd}
294 { "rd" }
295
296 FUNCTION {bbl.th}
297 { "th" }
298
299 MACRO {jan} {"January"}
300
301 MACRO {feb} {"February"}
302
303 MACRO {mar} {"March"}
304
305 MACRO {apr} {"April"}
306
307 MACRO {may} {"May"}
308
309 MACRO {jun} {"June"}
310
311 MACRO {jul} {"July"}
312
313 MACRO {aug} {"August"}
314
315 MACRO {sep} {"September"}
316
317 MACRO {oct} {"October"}
318
319 MACRO {nov} {"November"}
320
321 MACRO {dec} {"December"}
322
323 FUNCTION {eng.ord}
324 { duplicate$ "1" swap$ *
325 #-2 #1 substring$ "1" =
326 { bbl.th * }
327 { duplicate$ #-1 #1 substring$
328 duplicate$ "1" =
329 { pop$ bbl.st * }
330 { duplicate$ "2" =
331 { pop$ bbl.nd * }
332 { "3" =
333 { bbl.rd * }
334 { bbl.th * }
335 if$
336 }
337 if$
338 }
339 if$
340 }
341 if$
342 }
343
344 MACRO {acmcs} {"ACM Comput. Surv."}
345
346 MACRO {acta} {"Acta Inf."}
347
348 MACRO {cacm} {"Commun. ACM"}
349
350 MACRO {ibmjrd} {"IBM J. Res. Dev."}
351
352 MACRO {ibmsj} {"IBM Syst.~J."}
353
354 MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
355
356 MACRO {ieeetc} {"IEEE Trans. Comput."}
357
358 MACRO {ieeetcad}
359 {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
360
361 MACRO {ipl} {"Inf. Process. Lett."}
362
363 MACRO {jacm} {"J.~ACM"}
364
365 MACRO {jcss} {"J.~Comput. Syst. Sci."}
366
367 MACRO {scp} {"Sci. Comput. Programming"}
368
369 MACRO {sicomp} {"SIAM J. Comput."}
370
371 MACRO {tocs} {"ACM Trans. Comput. Syst."}
372
373 MACRO {tods} {"ACM Trans. Database Syst."}
374
375 MACRO {tog} {"ACM Trans. Gr."}
376
377 MACRO {toms} {"ACM Trans. Math. Softw."}
378
379 MACRO {toois} {"ACM Trans. Office Inf. Syst."}
380
381 MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
382
383 MACRO {tcs} {"Theoretical Comput. Sci."}
384
385 INTEGERS { nameptr namesleft numnames }
386
387 FUNCTION {format.names}
388 { 's :=
389 #1 'nameptr :=
390 s num.names$ 'numnames :=
391 numnames 'namesleft :=
392 { namesleft #0 > }
393 { s nameptr
394 "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
395 nameptr #1 >
396 {
397 namesleft #1 >
398 { ", " * t * }
399 {
400 t "others" =
401 { " " * "et~al." emphasize * }
402 { bbl.and space.word * t * }
403 if$
404 }
405 if$
406 }
407 't
408 if$
409 nameptr #1 + 'nameptr :=
410 namesleft #1 - 'namesleft :=
411 }
412 while$
413 }
414
415 FUNCTION {format.names.ed}
416 { 's :=
417 #1 'nameptr :=
418 s num.names$ 'numnames :=
419 numnames 'namesleft :=
420 { namesleft #0 > }
421 { s nameptr
422 "{f.~}{vv~}{ll}{, jj}"
423 format.name$ 't :=
424 nameptr #1 >
425 {
426 namesleft #1 >
427 { ", " * t * }
428 {
429 t "others" =
430 { " " * "et~al." emphasize * }
431 { bbl.and space.word * t * }
432 if$
433 }
434 if$
435 }
436 't
437 if$
438 nameptr #1 + 'nameptr :=
439 namesleft #1 - 'namesleft :=
440 }
441 while$
442 }
443
444 FUNCTION {format.authors}
445 { author empty$
446 { "" }
447 {
448 author format.names
449 }
450 if$
451 }
452
453 FUNCTION {format.editors}
454 { editor empty$
455 { "" }
456 {
457 editor format.names
458 editor num.names$ #1 >
459 { ", " * bbl.editors * }
460 { ", " * bbl.editor * }
461 if$
462 }
463 if$
464 }
465
466 FUNCTION {format.in.editors}
467 { editor empty$
468 { "" }
469 { editor format.names.ed
470 editor num.names$ #1 >
471 { ", " * bbl.editors * }
472 { ", " * bbl.editor * }
473 if$
474 }
475 if$
476 }
477
478 FUNCTION {format.title}
479 { title empty$
480 { "" }
481 { title "t" change.case$
482 }
483 if$
484 }
485
486 FUNCTION {output.bibitem}
487 { newline$
488 "\bibitem{" write$
489 cite$ write$
490 "}" write$
491 newline$
492 ""
493 before.all 'output.state :=
494 }
495
496 FUNCTION {n.dashify}
497 { 't :=
498 ""
499 { t empty$ not }
500 { t #1 #1 substring$ "-" =
501 { t #1 #2 substring$ "--" = not
502 { "--" *
503 t #2 global.max$ substring$ 't :=
504 }
505 { { t #1 #1 substring$ "-" = }
506 { "-" *
507 t #2 global.max$ substring$ 't :=
508 }
509 while$
510 }
511 if$
512 }
513 { t #1 #1 substring$ *
514 t #2 global.max$ substring$ 't :=
515 }
516 if$
517 }
518 while$
519 }
520
521 FUNCTION {word.in}
522 { bbl.in capitalize
523 " " * }
524
525 FUNCTION {format.date}
526 { year empty$
527 { month empty$
528 { "" }
529 { "there's a month but no year in " cite$ * warning$
530 month
531 }
532 if$
533 }
534 { month empty$
535 'year
536 { month " " * year * }
537 if$
538 }
539 if$
540 duplicate$ empty$
541 'skip$
542 {
543 before.all 'output.state :=
544 " (" swap$ * ")" *
545 }
546 if$
547 }
548
549 FUNCTION {format.btitle}
550 { title emphasize
551 }
552
553 FUNCTION {tie.or.space.connect}
554 { duplicate$ text.length$ #3 <
555 { "~" }
556 { " " }
557 if$
558 swap$ * *
559 }
560
561 FUNCTION {either.or.check}
562 { empty$
563 'pop$
564 { "can't use both " swap$ * " fields in " * cite$ * warning$ }
565 if$
566 }
567
568 FUNCTION {format.bvolume}
569 { volume empty$
570 { "" }
571 { bbl.volume volume tie.or.space.connect
572 series empty$
573 'skip$
574 { bbl.of space.word * series emphasize * }
575 if$
576 "volume and number" number either.or.check
577 }
578 if$
579 }
580
581 FUNCTION {format.number.series}
582 { volume empty$
583 { number empty$
584 { series field.or.null }
585 { output.state mid.sentence =
586 { bbl.number }
587 { bbl.number capitalize }
588 if$
589 number tie.or.space.connect
590 series empty$
591 { "there's a number but no series in " cite$ * warning$ }
592 { bbl.in space.word * series * }
593 if$
594 }
595 if$
596 }
597 { "" }
598 if$
599 }
600
601 FUNCTION {is.num}
602 { chr.to.int$
603 duplicate$ "0" chr.to.int$ < not
604 swap$ "9" chr.to.int$ > not and
605 }
606
607 FUNCTION {extract.num}
608 { duplicate$ 't :=
609 "" 's :=
610 { t empty$ not }
611 { t #1 #1 substring$
612 t #2 global.max$ substring$ 't :=
613 duplicate$ is.num
614 { s swap$ * 's := }
615 { pop$ "" 't := }
616 if$
617 }
618 while$
619 s empty$
620 'skip$
621 { pop$ s }
622 if$
623 }
624
625 FUNCTION {convert.edition}
626 { edition extract.num "l" change.case$ 's :=
627 s "first" = s "1" = or
628 { bbl.first 't := }
629 { s "second" = s "2" = or
630 { bbl.second 't := }
631 { s "third" = s "3" = or
632 { bbl.third 't := }
633 { s "fourth" = s "4" = or
634 { bbl.fourth 't := }
635 { s "fifth" = s "5" = or
636 { bbl.fifth 't := }
637 { s #1 #1 substring$ is.num
638 { s eng.ord 't := }
639 { edition 't := }
640 if$
641 }
642 if$
643 }
644 if$
645 }
646 if$
647 }
648 if$
649 }
650 if$
651 t
652 }
653
654 FUNCTION {format.edition}
655 { edition empty$
656 { "" }
657 { output.state mid.sentence =
658 { convert.edition "l" change.case$ " " * bbl.edition * }
659 { convert.edition "t" change.case$ " " * bbl.edition * }
660 if$
661 }
662 if$
663 }
664
665 INTEGERS { multiresult }
666
667 FUNCTION {multi.page.check}
668 { 't :=
669 #0 'multiresult :=
670 { multiresult not
671 t empty$ not
672 and
673 }
674 { t #1 #1 substring$
675 duplicate$ "-" =
676 swap$ duplicate$ "," =
677 swap$ "+" =
678 or or
679 { #1 'multiresult := }
680 { t #2 global.max$ substring$ 't := }
681 if$
682 }
683 while$
684 multiresult
685 }
686
687 FUNCTION {format.pages}
688 { pages empty$
689 { "" }
690 { pages multi.page.check
691 { bbl.pages pages n.dashify tie.or.space.connect }
692 { bbl.page pages tie.or.space.connect }
693 if$
694 }
695 if$
696 }
697
698 %FUNCTION {first.page}
699 %{ 't :=
700 % ""
701 % { t empty$ not t #1 #1 substring$ "-" = not and }
702 % { t #1 #1 substring$ *
703 % t #2 global.max$ substring$ 't :=
704 % }
705 % while$
706 %}
707
708 %FUNCTION {format.journal.pages}
709 %{
710 % pages empty$
711 % 'skip$
712 % { duplicate$ empty$
713 % { pop$ format.pages }
714 % { ", " * pages first.page * }
715 % if$
716 % }
717 % if$
718 %}
719
720 FUNCTION {format.journal.pages}
721 {
722 pages empty$
723 'skip$
724 { duplicate$ empty$
725 { pop$ format.pages }
726 { ": " * pages n.dashify * }
727 if$
728 }
729 if$
730 }
731
732 FUNCTION {format.vol.num.pages}
733 { volume field.or.null
734 number empty$
735 'skip$
736 {
737 "(" number * ")" * *
738 volume empty$
739 { "there's a number but no volume in " cite$ * warning$ }
740 'skip$
741 if$
742 }
743 if$
744 format.journal.pages
745 }
746
747 FUNCTION {format.chapter.pages}
748 { chapter empty$
749 'format.pages
750 { type empty$
751 { bbl.chapter }
752 { type "l" change.case$ }
753 if$
754 chapter tie.or.space.connect
755 pages empty$
756 'skip$
757 { ", " * format.pages * }
758 if$
759 }
760 if$
761 }
762
763 FUNCTION {format.in.ed.booktitle}
764 { booktitle empty$
765 { "" }
766 { editor empty$
767 { word.in booktitle emphasize * }
768 { word.in format.in.editors * ", " *
769 booktitle emphasize * }
770 if$
771 }
772 if$
773 }
774
775 FUNCTION {empty.misc.check}
776 { author empty$ title empty$ howpublished empty$
777 month empty$ year empty$ note empty$
778 and and and and and
779 key empty$ not and
780 { "all relevant fields are empty in " cite$ * warning$ }
781 'skip$
782 if$
783 }
784
785 FUNCTION {format.thesis.type}
786 { type empty$
787 'skip$
788 { pop$
789 type "t" change.case$
790 }
791 if$
792 }
793
794 FUNCTION {format.tr.number}
795 { type empty$
796 { bbl.techrep }
797 'type
798 if$
799 number empty$
800 { "t" change.case$ }
801 { number tie.or.space.connect }
802 if$
803 }
804
805 FUNCTION {format.article.crossref}
806 {
807 key empty$
808 { journal empty$
809 { "need key or journal for " cite$ * " to crossref " * crossref *
810 warning$
811 ""
812 }
813 { word.in journal emphasize * }
814 if$
815 }
816 { word.in key * " " *}
817 if$
818 " \cite{" * crossref * "}" *
819 }
820
821 FUNCTION {format.crossref.editor}
822 { editor #1 "{vv~}{ll}" format.name$
823 editor num.names$ duplicate$
824 #2 >
825 { pop$ " " * "et~al." emphasize * }
826 { #2 <
827 'skip$
828 { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
829 { " " * "et~al." emphasize * }
830 { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$ * }
831 if$
832 }
833 if$
834 }
835 if$
836 }
837
838 FUNCTION {format.book.crossref}
839 { volume empty$
840 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
841 word.in
842 }
843 { bbl.volume capitalize
844 volume tie.or.space.connect
845 bbl.of space.word *
846 }
847 if$
848 editor empty$
849 editor field.or.null author field.or.null =
850 or
851 { key empty$
852 { series empty$
853 { "need editor, key, or series for " cite$ * " to crossref " *
854 crossref * warning$
855 "" *
856 }
857 { series emphasize * }
858 if$
859 }
860 { key * }
861 if$
862 }
863 { format.crossref.editor * }
864 if$
865 " \cite{" * crossref * "}" *
866 }
867
868 FUNCTION {format.incoll.inproc.crossref}
869 {
870 editor empty$
871 editor field.or.null author field.or.null =
872 or
873 { key empty$
874 { booktitle empty$
875 { "need editor, key, or booktitle for " cite$ * " to crossref " *
876 crossref * warning$
877 ""
878 }
879 { word.in booktitle emphasize * }
880 if$
881 }
882 { word.in key * " " *}
883 if$
884 }
885 { word.in format.crossref.editor * " " *}
886 if$
887 " \cite{" * crossref * "}" *
888 }
889
890 FUNCTION {format.publisher}
891 { publisher empty$
892 { "empty publisher in " cite$ * warning$ }
893 'skip$
894 if$
895 ""
896 address empty$ publisher empty$ and
897 'skip$
898 {
899 publisher empty$
900 { address empty$
901 'skip$
902 { address * }
903 if$
904 }
905 { publisher *
906 address empty$
907 'skip$
908 { ", " * address * }
909 if$
910 }
911 if$
912 }
913 if$
914 output
915 }
916
917 FUNCTION {article}
918 { output.bibitem
919 format.authors "author" output.check
920 format.title "title" output.check
921 new.sentence
922 crossref missing$
923 { journal
924 emphasize
925 "journal" output.check
926 format.vol.num.pages output
927 format.date "year" output.check
928 }
929 { format.article.crossref output.nonnull
930 format.pages output
931 }
932 if$
933 note output
934 fin.entry
935 }
936
937 FUNCTION {book}
938 { output.bibitem
939 author empty$
940 { format.editors "author and editor" output.check
941 }
942 { format.authors output.nonnull
943 crossref missing$
944 { "author and editor" editor either.or.check }
945 'skip$
946 if$
947 }
948 if$
949 format.btitle "title" output.check
950 crossref missing$
951 { format.bvolume output
952 new.sentence
953 format.number.series output
954 format.publisher
955 }
956 {
957 new.sentence
958 format.book.crossref output.nonnull
959 }
960 if$
961 format.edition output
962 format.date "year" output.check
963 note output
964 fin.entry
965 }
966
967 FUNCTION {booklet}
968 { output.bibitem
969 format.authors output
970 format.title "title" output.check
971 new.sentence
972 howpublished output
973 address output
974 format.date output
975 note output
976 fin.entry
977 }
978
979 FUNCTION {inbook}
980 { output.bibitem
981 author empty$
982 { format.editors "author and editor" output.check
983 }
984 { format.authors output.nonnull
985 crossref missing$
986 { "author and editor" editor either.or.check }
987 'skip$
988 if$
989 }
990 if$
991 format.btitle "title" output.check
992 crossref missing$
993 {
994 format.bvolume output
995 format.chapter.pages "chapter and pages" output.check
996 new.sentence
997 format.number.series output
998 format.publisher
999 }
1000 {
1001 format.chapter.pages "chapter and pages" output.check
1002 new.sentence
1003 format.book.crossref output.nonnull
1004 }
1005 if$
1006 format.edition output
1007 format.date "year" output.check
1008 note output
1009 fin.entry
1010 }
1011
1012 FUNCTION {incollection}
1013 { output.bibitem
1014 format.authors "author" output.check
1015 format.title "title" output.check
1016 new.sentence
1017 crossref missing$
1018 { format.in.ed.booktitle "booktitle" output.check
1019 format.bvolume output
1020 format.number.series output
1021 format.chapter.pages output
1022 format.publisher
1023 format.edition output
1024 format.date "year" output.check
1025 }
1026 { format.incoll.inproc.crossref output.nonnull
1027 format.chapter.pages output
1028 }
1029 if$
1030 note output
1031 fin.entry
1032 }
1033
1034 FUNCTION {inproceedings}
1035 { output.bibitem
1036 format.authors "author" output.check
1037 format.title "title" output.check
1038 new.sentence
1039 crossref missing$
1040 { format.in.ed.booktitle "booktitle" output.check
1041 format.bvolume output
1042 format.number.series output
1043 format.pages output
1044 publisher empty$
1045 { organization output
1046 address output
1047 }
1048 { organization output
1049 format.publisher
1050 }
1051 if$
1052 format.date "year" output.check
1053 }
1054 { format.incoll.inproc.crossref output.nonnull
1055 format.pages output
1056 }
1057 if$
1058 note output
1059 fin.entry
1060 }
1061
1062 FUNCTION {conference} { inproceedings }
1063
1064 FUNCTION {manual}
1065 { output.bibitem
1066 author empty$
1067 { organization empty$
1068 'skip$
1069 { organization output.nonnull
1070 address output
1071 }
1072 if$
1073 }
1074 { format.authors output.nonnull }
1075 if$
1076 format.btitle "title" output.check
1077 new.sentence
1078 author empty$
1079 { organization empty$
1080 {
1081 address output
1082 }
1083 'skip$
1084 if$
1085 }
1086 {
1087 organization output
1088 address output
1089 }
1090 if$
1091 format.edition output
1092 format.date output
1093 note output
1094 fin.entry
1095 }
1096
1097 FUNCTION {mastersthesis}
1098 { output.bibitem
1099 format.authors "author" output.check
1100 format.btitle "title" output.check
1101 new.sentence
1102 bbl.mthesis format.thesis.type output.nonnull
1103 school "school" output.check
1104 address output
1105 format.date "year" output.check
1106 note output
1107 fin.entry
1108 }
1109
1110 FUNCTION {misc}
1111 { output.bibitem
1112 format.authors output
1113 format.title output
1114 new.sentence
1115 howpublished output
1116 format.date output
1117 note output
1118 fin.entry
1119 empty.misc.check
1120 }
1121
1122 FUNCTION {phdthesis}
1123 { output.bibitem
1124 format.authors "author" output.check
1125 format.btitle "title" output.check
1126 new.sentence
1127 bbl.phdthesis format.thesis.type output.nonnull
1128 school "school" output.check
1129 address output
1130 format.date "year" output.check
1131 note output
1132 fin.entry
1133 }
1134
1135 FUNCTION {proceedings}
1136 { output.bibitem
1137 editor empty$
1138 { organization output }
1139 { format.editors output.nonnull }
1140 if$
1141 format.btitle "title" output.check
1142 format.bvolume output
1143 format.number.series output
1144 address empty$
1145 { editor empty$
1146 { publisher new.sentence.checka }
1147 { organization publisher new.sentence.checkb
1148 organization output
1149 }
1150 if$
1151 publisher output
1152 format.date "year" output.check
1153 }
1154 { address output.nonnull
1155 format.date "year" output.check
1156 editor empty$
1157 'skip$
1158 { organization output }
1159 if$
1160 publisher output
1161 }
1162 if$
1163 note output
1164 fin.entry
1165 }
1166
1167 FUNCTION {techreport}
1168 { output.bibitem
1169 format.authors "author" output.check
1170 format.title "title" output.check
1171 new.sentence
1172 format.tr.number output.nonnull
1173 institution "institution" output.check
1174 address output
1175 format.date "year" output.check
1176 note output
1177 fin.entry
1178 }
1179
1180 FUNCTION {unpublished}
1181 { output.bibitem
1182 format.authors "author" output.check
1183 format.title "title" output.check
1184 new.sentence
1185 note "note" output.check
1186 fin.entry
1187 }
1188
1189 FUNCTION {default.type} { misc }
1190
1191 %READ
1192
1193 FUNCTION {sortify}
1194 { purify$
1195 "l" change.case$
1196 }
1197
1198 INTEGERS { len }
1199
1200 FUNCTION {chop.word}
1201 { 's :=
1202 'len :=
1203 s #1 len substring$ =
1204 { s len #1 + global.max$ substring$ }
1205 's
1206 if$
1207 }
1208
1209 FUNCTION {sort.format.names}
1210 { 's :=
1211 #1 'nameptr :=
1212 ""
1213 s num.names$ 'numnames :=
1214 numnames 'namesleft :=
1215 { namesleft #0 > }
1216 { s nameptr
1217 "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}"
1218 format.name$ 't :=
1219 nameptr #1 >
1220 {
1221 " " *
1222 namesleft #1 = t "others" = and
1223 { "aaaaa" * }
1224 { t sortify * }
1225 if$
1226 }
1227 { t sortify * }
1228 if$
1229 nameptr #1 + 'nameptr :=
1230 namesleft #1 - 'namesleft :=
1231 }
1232 while$
1233 }
1234
1235 FUNCTION {sort.format.title}
1236 { 't :=
1237 "A " #2
1238 "An " #3
1239 "The " #4 t chop.word
1240 chop.word
1241 chop.word
1242 sortify
1243 #1 global.max$ substring$
1244 }
1245
1246 FUNCTION {author.sort}
1247 { author empty$
1248 { key empty$
1249 { "to sort, need author or key in " cite$ * warning$
1250 ""
1251 }
1252 { key sortify }
1253 if$
1254 }
1255 { author sort.format.names }
1256 if$
1257 }
1258
1259 FUNCTION {author.editor.sort}
1260 { author empty$
1261 { editor empty$
1262 { key empty$
1263 { "to sort, need author, editor, or key in " cite$ * warning$
1264 ""
1265 }
1266 { key sortify }
1267 if$
1268 }
1269 { editor sort.format.names }
1270 if$
1271 }
1272 { author sort.format.names }
1273 if$
1274 }
1275
1276 FUNCTION {author.organization.sort}
1277 { author empty$
1278 { organization empty$
1279 { key empty$
1280 { "to sort, need author, organization, or key in " cite$ * warning$
1281 ""
1282 }
1283 { key sortify }
1284 if$
1285 }
1286 { "The " #4 organization chop.word sortify }
1287 if$
1288 }
1289 { author sort.format.names }
1290 if$
1291 }
1292
1293 FUNCTION {editor.organization.sort}
1294 { editor empty$
1295 { organization empty$
1296 { key empty$
1297 { "to sort, need editor, organization, or key in " cite$ * warning$
1298 ""
1299 }
1300 { key sortify }
1301 if$
1302 }
1303 { "The " #4 organization chop.word sortify }
1304 if$
1305 }
1306 { editor sort.format.names }
1307 if$
1308 }
1309
1310 FUNCTION {presort}
1311 { type$ "book" =
1312 type$ "inbook" =
1313 or
1314 'author.editor.sort
1315 { type$ "proceedings" =
1316 'editor.organization.sort
1317 { type$ "manual" =
1318 'author.organization.sort
1319 'author.sort
1320 if$
1321 }
1322 if$
1323 }
1324 if$
1325 " "
1326 *
1327 year field.or.null sortify
1328 *
1329 " "
1330 *
1331 title field.or.null
1332 sort.format.title
1333 *
1334 #1 entry.max$ substring$
1335 'sort.key$ :=
1336 }
1337
1338 %%ITERATE {presort}
1339
1340 %SORT
1341
1342 READ
1343
1344 STRINGS { longest.label }
1345
1346 INTEGERS { number.label longest.label.width }
1347
1348 FUNCTION {initialize.longest.label}
1349 { "" 'longest.label :=
1350 #1 'number.label :=
1351 #0 'longest.label.width :=
1352 }
1353
1354 FUNCTION {longest.label.pass}
1355 { number.label int.to.str$ 'label :=
1356 number.label #1 + 'number.label :=
1357 label width$ longest.label.width >
1358 { label 'longest.label :=
1359 label width$ 'longest.label.width :=
1360 }
1361 'skip$
1362 if$
1363 }
1364
1365 EXECUTE {initialize.longest.label}
1366
1367 ITERATE {longest.label.pass}
1368
1369 FUNCTION {begin.bib}
1370 { preamble$ empty$
1371 'skip$
1372 { preamble$ write$ newline$ }
1373 if$
1374 "\begin{thebibliography}{" longest.label * "}" *
1375 write$ newline$
1376 }
1377
1378 EXECUTE {begin.bib}
1379
1380 EXECUTE {init.state.consts}
1381
1382 ITERATE {call.type$}
1383
1384 FUNCTION {end.bib}
1385 { newline$
1386 "\end{thebibliography}" write$ newline$
1387 }
1388
1389 EXECUTE {end.bib}
1390 %% End of customized bst file
1391 %%
1392 %% End of file `nddiss2e.bst'.