summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/bibtex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-08-31 22:45:45 +0000
committerKarl Berry <karl@freefriends.org>2013-08-31 22:45:45 +0000
commit3327dfbc00f9422625c9a574826755a56a9cbee5 (patch)
tree9c374a829933d190cee9d576fb1c43cabbc495de /Master/texmf-dist/bibtex
parent1483696754d202b1c75304be8bd6004c4349cd09 (diff)
datatool (31aug13)
git-svn-id: svn://tug.org/texlive/trunk@31551 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/bibtex')
-rw-r--r--Master/texmf-dist/bibtex/bst/datatool/databib.bst1257
1 files changed, 1257 insertions, 0 deletions
diff --git a/Master/texmf-dist/bibtex/bst/datatool/databib.bst b/Master/texmf-dist/bibtex/bst/datatool/databib.bst
new file mode 100644
index 00000000000..cb63be2b675
--- /dev/null
+++ b/Master/texmf-dist/bibtex/bst/datatool/databib.bst
@@ -0,0 +1,1257 @@
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ isbn
+ doi
+ pubmed
+ url
+ abstract
+ file
+ eprints
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state before.all =
+ {
+ "%" * write$
+ newline$
+ }
+ { newline$
+ %add.period$ " " * write$
+ }
+ if$
+ % if$
+ % mid.sentence 'output.state :=
+ % }
+ %if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ {
+ output.nonnull
+ }
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ "\DTLnewbibrow" write$
+ newline$
+ "\DTLnewbibitem {CiteKey}{" write$
+ cite$ write$
+ "}%" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ "%" *
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+'skip$
+{ after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {group}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{" swap$ * "}" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{
+ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ {
+ %s nameptr "{vv,}{ll,}{jj,}{ff}" format.name$ 't :=
+ "{" *
+ s nameptr "{vv}" format.name$ 't :=
+ t * "}" *
+ "{" *
+ s nameptr "{ll}" format.name$ 't :=
+ t * "}{" *
+ s nameptr "{jj}" format.name$ 't :=
+ t * "}" *
+ "{" *
+ s nameptr "{ff}" format.name$ 't :=
+ t * "}" *
+ s nameptr "" format.name$ 't :=
+ namesleft #1 >
+ { "," * }
+ { }
+ if$
+ nameptr #1 >
+{
+ t *
+}
+'t
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ "}" *
+}
+
+FUNCTION {format.authors}
+{
+ author empty$
+ { "" }
+ { author
+ "\DTLnewbibitem {Author}{" write$
+ format.names }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { editor
+ "\DTLnewbibitem {Editor}{" write$
+ format.names
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ {
+ "\DTLnewbibitem {Title}"
+ title "t" change.case$ group *
+ }
+ if$
+}
+
+FUNCTION {format.howpublished}
+{ howpublished empty$
+ { "" }
+ {
+ howpublished
+ "\DTLnewbibitem {HowPublished}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.organization}
+{ organization empty$
+ { "" }
+ {
+ organization
+ "\DTLnewbibitem {Organization}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.institution}
+{ institution empty$
+ { "" }
+ {
+ institution
+ "\DTLnewbibitem {Institution}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.key}
+{ key empty$
+ { "" }
+ {
+ key
+ "\DTLnewbibitem {Key}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.note}
+{ note empty$
+ { "" }
+ {
+ note
+ "\DTLnewbibitem {Note}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.isbn}
+{ isbn empty$
+ { "" }
+ {
+ isbn
+ "\DTLnewbibitem {ISBN}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.doi}
+{ doi empty$
+ { "" }
+ {
+ doi
+ "\DTLnewbibitem {DOI}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.pubmed}
+{ pubmed empty$
+ { "" }
+ {
+ pubmed
+ "\DTLnewbibitem {PubMed}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.abstract}
+{ abstract empty$
+ { "" }
+ {
+ abstract
+ "\DTLnewbibitem {Abstract}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.url}
+{ url empty$
+ { "" }
+ {
+ url
+ "\DTLnewbibitem {Url}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.file}
+{ file empty$
+ { "" }
+ {
+ file
+ "\DTLnewbibitem {File}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.eprints}
+{ eprints empty$
+ { "" }
+ {
+ eprints
+ "\DTLnewbibitem {Eprints}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.address}
+{ address empty$
+ { "" }
+ {
+ address
+ "\DTLnewbibitem {Address}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.school}
+{ school empty$
+ { "" }
+ {
+ school
+ "\DTLnewbibitem {School}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.publisher}
+{ publisher empty$
+ { "" }
+ {
+ publisher
+ "\DTLnewbibitem {Publisher}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+{ t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+{ "-" *
+ t #2 global.max$ substring$ 't :=
+}
+ while$
+ }
+ if$
+}
+{ t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+}
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+{ "" }
+{ "there's a month but no year in " cite$ * warning$
+ "\DTLnewbibitem {Month}" *
+ month group
+}
+ if$
+ }
+ { month empty$
+{ }
+{ "\DTLnewbibitem {Month}{" * month * "}" * }
+ if$
+ "\DTLnewbibitem {Year}{" * year * "}"
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+{ title
+ "\DTLnewbibitem {Title}{" swap$ *
+ "}" *
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ {
+ "\DTLnewbibitem {Volume}{" volume * "}" *
+ series empty$
+'skip$
+{
+ "\DTLnewbibitem {Series}" * series group *
+ }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+{
+ %series field.or.null group
+ series empty$
+ { "" }
+ { "\DTLnewbibitem {Series}" * series group }
+ if$
+ }
+{
+ "\DTLnewbibitem {Number}" number group *
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { "\DTLnewbibitem {Series}{" * series * "}" * }
+ if$
+}
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ {
+ "\DTLnewbibitem {Edition}"
+ edition "l" change.case$ group *
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+{ #1 'multiresult := }
+{ t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+{ "\DTLnewbibitem {Pages}" pages n.dashify
+ group * }
+{ "\DTLnewbibitem {Pages}" pages
+ group *}
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{
+ volume empty$
+ { "" }
+ {
+ "\DTLnewbibitem {Volume}{" volume * "}" *
+ }
+ if$
+ number empty$
+ 'skip$
+ { "\DTLnewbibitem {Number}{" number * "}\relax " * *
+ volume empty$
+{ "there's a number but no volume in " cite$ * warning$ }
+'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+{ pop$ format.pages }
+{ "\DTLnewbibitem {Pages}" * pages n.dashify group * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+{ "\DTLnewbibitem {Type}{chapter}" }
+{ "\DTLnewbibitem {Type}" type "l" change.case$ group *}
+ if$
+ "\DTLnewbibitem {Chapter}{" * chapter * "}" *
+ pages empty$
+'skip$
+{ format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ {
+ "\DTLnewbibitem {BookTitle}" booktitle group *
+ editor empty$
+ {}
+ {
+ "\DTLnewbibitem {Editor}{" *
+ editor format.names *
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ "\DTLnewbibitem {Type}" swap$ group *
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{
+ type empty$
+ { "\techreportname " }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ "\DTLnewbibitem {Type}" swap$ group *}
+ { "\DTLnewbibitem {Type}" swap$ group *
+ "\DTLnewbibitem {Number}" *
+ number group * }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+{ "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+}
+{
+ "\DTLnewbibitem {Journal}" journal group *
+ }
+ if$
+ }
+ {
+ ""
+ }
+ if$
+ "\DTLnewbibitem {CrossRef}{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ format.editors
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ }
+ {
+ "\DTLnewbibitem {Volume}"
+ volume group *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+{ series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ {
+ "\DTLnewbibitem {Series}{" * series *
+ "}" *
+ }
+ if$
+}
+{ ""
+ }
+ if$
+ }
+ {
+ format.crossref.editor *
+ }
+ if$
+ "\DTLnewbibitem {CrossRef}{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+{ booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "\DTLnewbibitem {BookTitle}{" booktitle * "}" * }
+ if$
+}
+{ "" }
+ if$
+ }
+ {
+ "\DTLnewbibitem {Editor}{" *
+ editor format.names
+ }
+ if$
+ "\DTLnewbibitem {CrossRef}{" * crossref * "}" *
+}
+
+FUNCTION {article}
+{ output.bibitem
+ "\DTLnewbibitem {EntryType}{article}%" write$
+ newline$
+ format.authors "author"
+ output.check
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ {
+ "\DTLnewbibitem {Journal}" *
+ journal group "journal" output.check
+ format.vol.num.pages output
+ format.date "year" output.check
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ format.key output
+ format.note output
+ format.isbn output
+ format.doi output
+ format.pubmed output
+ format.url output
+ format.abstract output
+ format.file output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ "\DTLnewbibitem {EntryType}{book}%" write$
+ newline$
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+{ "author and editor" editor either.or.check
+ }
+'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ %new.sentence
+ format.publisher "publisher" output.check
+ format.address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ format.key output
+ format.note output
+ format.isbn output
+ format.doi output
+ format.pubmed output
+ format.url output
+ format.abstract output
+ format.file output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ "\DTLnewbibitem {EntryType}{booklet}%" write$
+ newline$
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ format.howpublished output
+ format.address output
+ format.date output
+ new.block
+ format.key output
+ format.note output
+ format.isbn output
+ format.doi output
+ format.pubmed output
+ format.url output
+ format.abstract output
+ format.file output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ "\DTLnewbibitem {EntryType}{inbook}%" write$
+ newline$
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+{ "author and editor" editor either.or.check }
+'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.number.series output
+ new.sentence
+ format.publisher "publisher" output.check
+ format.address output
+ }
+ { format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ format.key output
+ format.note output
+ format.isbn output
+ format.doi output
+ format.pubmed output
+ format.url output
+ format.abstract output
+ format.file output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ "\DTLnewbibitem {EntryType}{incollection}%" write$
+ newline$
+ format.authors "author" output.check
+ format.title "title" output.check
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ new.sentence
+ format.publisher "publisher" output.check
+ format.address output
+ format.edition output
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ format.key output
+ format.note output
+ format.isbn output
+ format.doi output
+ format.pubmed output
+ format.url output
+ format.abstract output
+ format.file output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ "\DTLnewbibitem {EntryType}{inproceedings}%" write$
+ newline$
+ format.authors "author" output.check
+ format.title "title" output.check
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ address empty$
+{ %organization publisher new.sentence.checkb
+ format.organization write$
+ format.publisher output
+}
+{ format.address write$
+ new.sentence
+ format.organization output
+ format.publisher output
+}
+ if$
+ format.date "year" output.check
+ }
+ {
+ format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ format.key output
+ format.note output
+ format.isbn output
+ format.doi output
+ format.pubmed output
+ format.url output
+ format.abstract output
+ format.file output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ "\DTLnewbibitem {EntryType}{manual}%" write$
+ newline$
+ author empty$
+ { organization empty$
+'skip$
+{ format.organization output
+ format.address output
+}
+ if$
+ }
+ { format.authors output }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+{ address new.block.checka
+ address output
+}
+'skip$
+ if$
+ }
+ { %organization address new.block.checkb
+ format.organization output
+ format.address output
+ }
+ if$
+ format.edition output
+ format.date output
+ new.block
+ format.key output
+ format.note output
+ format.isbn output
+ format.doi output
+ format.pubmed output
+ format.url output
+ format.abstract output
+ format.file output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ "\DTLnewbibitem {EntryType}{mastersthesis}%" write$
+ newline$
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "\DTLnewbibitem {Type}{\mscthesisname }"
+ format.thesis.type output.nonnull
+ format.school "school" output.check
+ format.address output
+ format.date "year" output.check
+ new.block
+ format.key output
+ format.note output
+ format.isbn output
+ format.doi output
+ format.pubmed output
+ format.url output
+ format.abstract output
+ format.file output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ "\DTLnewbibitem {EntryType}{misc}%" write$
+ newline$
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ %howpublished new.block.checka
+ format.howpublished output
+ format.date output
+ new.block
+ format.key output
+ format.note output
+ format.isbn output
+ format.doi output
+ format.pubmed output
+ format.url output
+ format.abstract output
+ format.file output
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ "\DTLnewbibitem {EntryType}{phdthesis}%" write$
+ newline$
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "\DTLnewbibitem {Type}{\phdthesisname }"
+ format.thesis.type output.nonnull
+ format.school "school" output.check
+ format.address output
+ format.date "year" output.check
+ new.block
+ format.key output
+ format.note output
+ format.isbn output
+ format.doi output
+ format.pubmed output
+ format.url output
+ format.abstract output
+ format.file output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ "\DTLnewbibitem {EntryType}{proceedings}%" write$
+ newline$
+ editor empty$
+ { format.organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+{ publisher new.sentence.checka }
+{ organization publisher new.sentence.checkb
+ format.organization output
+}
+ if$
+ format.publisher output
+ format.date "year" output.check
+ }
+ { format.address output
+ format.date "year" output.check
+ new.sentence
+ editor empty$
+'skip$
+{ format.organization output }
+ if$
+ format.publisher output
+ }
+ if$
+ new.block
+ format.key output
+ format.note output
+ format.isbn output
+ format.doi output
+ format.pubmed output
+ format.url output
+ format.abstract output
+ format.file output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ "\DTLnewbibitem {EntryType}{techreport}%" write$
+ newline$
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ format.institution "institution" output.check
+ format.address output
+ format.date "year" output.check
+ new.block
+ format.key output
+ format.note output
+ format.isbn output
+ format.doi output
+ format.pubmed output
+ format.url output
+ format.abstract output
+ format.file output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ "\DTLnewbibitem {EntryType}{unpublished}%" write$
+ newline$
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.key output
+ format.note output
+ format.isbn output
+ format.doi output
+ format.pubmed output
+ format.url output
+ format.abstract output
+ format.file output
+ format.date output
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"\DTLmonthname{01}"}
+
+MACRO {feb} {"\DTLmonthname{02}"}
+
+MACRO {mar} {"\DTLmonthname{03}"}
+
+MACRO {apr} {"\DTLmonthname{04}"}
+
+MACRO {may} {"\DTLmonthname{05}"}
+
+MACRO {jun} {"\DTLmonthname{06}"}
+
+MACRO {jul} {"\DTLmonthname{07}"}
+
+MACRO {aug} {"\DTLmonthname{08}"}
+
+MACRO {sep} {"\DTLmonthname{09}"}
+
+MACRO {oct} {"\DTLmonthname{10}"}
+
+MACRO {nov} {"\DTLmonthname{11}"}
+
+MACRO {dec} {"\DTLmonthname{12}"}
+
+MACRO {acmcs} {"\DTLacmcs "}
+
+MACRO {acta} {"\DTLacta "}
+
+MACRO {cacm} {"\DTLcacm "}
+
+MACRO {ibmjrd} {"\DTLibmjrd "}
+
+MACRO {ibmsj} {"\DTLibmsj "}
+
+MACRO {ieeese} {"\DTLieeese "}
+
+MACRO {ieeetc} {"\DTLieeetc "}
+
+MACRO {ieeetcad} {"\DTLieeetcad "}
+
+MACRO {ipl} {"\DTLipl "}
+
+MACRO {jacm} {"\DTLjacm "}
+
+MACRO {jcss} {"\DTLjcss "}
+
+MACRO {scp} {"\DTLscp "}
+
+MACRO {sicomp} {"\DTLsicomp "}
+
+MACRO {tocs} {"\DTLtocs "}
+
+MACRO {tods} {"\DTLtods "}
+
+MACRO {tog} {"\DTLtog "}
+
+MACRO {toms} {"\DTLtoms "}
+
+MACRO {toois} {"\DTLtoois "}
+
+MACRO {toplas} {"\DTLtoplas "}
+
+MACRO {tcs} {"\DTLtcs "}
+
+READ
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{
+}
+
+EXECUTE {end.bib}