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