diff options
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/ksfh_nat/ksfh_nat.bst')
-rw-r--r-- | Master/texmf-dist/bibtex/bst/ksfh_nat/ksfh_nat.bst | 1271 |
1 files changed, 1271 insertions, 0 deletions
diff --git a/Master/texmf-dist/bibtex/bst/ksfh_nat/ksfh_nat.bst b/Master/texmf-dist/bibtex/bst/ksfh_nat/ksfh_nat.bst new file mode 100644 index 00000000000..f668fa9c22c --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/ksfh_nat/ksfh_nat.bst @@ -0,0 +1,1271 @@ +%%% +%%% This ksfh_nat.bst file is for proper format +%%% for KSFH Munich standard. +%%% +% Copyright 2011, Matthias Bilger +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Matthias Bilger, +% <matthias@bilger.info> +% +% Version 1.0 2011/09/25 +% +%%% + +%% Types of entries currently allowed in a BibTeX file: +%% +%% ARTICLE -- An article from a journal or magazine. +%% +%% BOOK -- A book with an explicit publisher. +%% +%% INBOOK -- A part of a book, +%% which may be a chapter (or section or whatever) and/or a range of pages. +%% +%% INCOLLECTION -- A part of a book having its own title. +%% +%% MISC -- Use this type when nothing else fits. +%% + + +ENTRY + { + abstract + address + author + booktitle + edition + editor + howpublished + note + number + pages + publisher + title + year + } + {} + { label extra.label sort.label short.list } +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 mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output.nonnull.nostate} +{ 's := + output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + 'write$ + 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$ +} +INTEGERS { nameptr namesleft numnames posothers showetal myint } + +FUNCTION {format.full.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames #4 > + { + s nameptr + "{vv~}{ll}" format.name$ + " u.a." * + } + { + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { " / " * t * } + { t "others" = + { " u.a. " * } + { " / " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } + if$ +} + +FUNCTION {create.bibitem.names } +{ + type$ "misc" = + { author format.full.names } + 'skip$ + if$ + + type$ "article" = + { author format.full.names } + 'skip$ + if$ + + type$ "book" = + { author format.full.names } + 'skip$ + if$ + + type$ "incollection" = + { author format.full.names } + 'skip$ + if$ + +} + +FUNCTION {format.bibitem.first.name} +{ #1 'nameptr := + nameptr + "{vv~}{ll}" format.name$ + author num.names$ #1 > + { " u.a." * } + 'skip$ + if$ +} + +FUNCTION {create.bibitem.first.name} +{ + type$ "misc" = + { author format.bibitem.first.name } + 'skip$ + if$ + + type$ "article" = + { author format.bibitem.first.name } + 'skip$ + if$ + + type$ "book" = + { author format.bibitem.first.name } + 'skip$ + if$ + + type$ "incollection" = + { author format.bibitem.first.name } + 'skip$ + if$ +} + +FUNCTION {create.bibitem.year} +{ + year + "(" swap$ * ")" * +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + create.bibitem.first.name + write$ + create.bibitem.year + write$ + create.bibitem.names + write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} +FUNCTION {add.colon} +{ duplicate$ empty$ + 'skip$ + { ":" * add.blank } + if$ +} +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} +FUNCTION {italize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} +FUNCTION {scaps} +{ duplicate$ empty$ + { pop$ "" } + { "\textsc{" swap$ * "}" * } + if$ +} +FUNCTION {anglequote} +{ duplicate$ empty$ + { pop$ "" } + { "<<" swap$ * ">>" * } + if$ +} +FUNCTION {singlequote} +{ duplicate$ empty$ + { pop$ "" } + { "'{}" swap$ * "'{}" * } + if$ +} +FUNCTION {doublequote} +{ duplicate$ empty$ + { pop$ "" } + { "``{}" swap$ * "''{}" * } + if$ +} +FUNCTION {format.names.author} +{ + 's := + + #1 'nameptr := + s num.names$ 'numnames := + + numnames 'namesleft := + #0 'posothers := + { namesleft #0 > } + { s nameptr "{ll{ }}{, ff{ }}{ vv }" format.name$ 't := + t "others" = + { nameptr 'posothers := } + 'skip$ + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + + #0 'showetal := + + numnames #8 > + { #1 'numnames := + #1 'showetal := + } + { numnames #8 = + { posothers #0 > + { #1 'showetal := + #1 'numnames := + } + 'skip$ + if$ + } + { posothers #0 > + { #1 'showetal := + #1 'numnames - + } + 'skip$ + if$ + } + if$ + } + if$ + + #1 'nameptr := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll{ }}{, ff{ }}{ vv }" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { " / " * t * } + { showetal #0 > + { " / " * t * } + { " / " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + + showetal #0 > + { " u.a." * } + 'skip$ + if$ +} + +FUNCTION {format.names.editor} +{ + 's := + + #1 'nameptr := + s num.names$ 'numnames := + + numnames 'namesleft := + #0 'posothers := + { namesleft #0 > } + { s nameptr "{ll{ }}{, ff{ }}{vv}" format.name$ 't := + t "others" = + { nameptr 'posothers := } + 'skip$ + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + + #0 'showetal := + + numnames #8 > + { #1 'numnames := + #1 'showetal := + } + { numnames #8 = + { posothers #0 > + { #1 'showetal := + #1 'numnames := + } + 'skip$ + if$ + } + { posothers #0 > + { #1 'showetal := + #1 'numnames - + } + 'skip$ + if$ + } + if$ + } + if$ + + #1 'nameptr := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll{ }}{, ff{ }}{vv}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { " / " * t * } + { showetal #0 > + { ", " * t * } + { " / " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + + showetal #0 > + { " u.a." * } + 'skip$ + if$ +} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.title.short} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + #1 #3 substring$ +} +FUNCTION {format.misc.author} +{ author + duplicate$ empty$ 'skip$ + { format.names.author } + if$ + "author" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.misc.year} +{ year + "year" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.misc.title} +{ title + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.misc.howpublished} +{ howpublished + "howpublished" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.misc.note} +{ note + "note" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {misc} +{ output.bibitem + author empty$ + 'skip$ + { format.misc.author + output.nonnull.nostate + } + if$ + new.block + year empty$ + 'skip$ + { " (" + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate format.misc.year + output.nonnull.nostate + "):" + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate } + if$ + new.block + title empty$ + 'skip$ + { format.misc.title + output.nonnull.nostate + newline$ "\newline " + output.nonnull.nostate + } + if$ + new.block + howpublished empty$ + 'skip$ + { format.misc.howpublished + output.nonnull.nostate + } + if$ + new.block + note empty$ + 'skip$ + { ", " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate format.misc.note + output.nonnull.nostate + } + if$ + new.block + fin.entry +} +FUNCTION {format.article.author} +{ author + duplicate$ empty$ 'skip$ + { format.names.author } + if$ + "author" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.article.year} +{ year + "year" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.article.title} +{ title + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.article.booktitle} +{ booktitle + "booktitle" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.article.number} +{ number + "number" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.article.pages} +{ pages + "pages" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {article} +{ output.bibitem + author empty$ + 'skip$ + { format.article.author + output.nonnull.nostate + } + if$ + new.block + year empty$ + 'skip$ + { "(" + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate format.article.year + output.nonnull.nostate + "): " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate } + if$ + new.block + title empty$ + 'skip$ + { format.article.title + output.nonnull.nostate + } + if$ + new.block + booktitle empty$ + 'skip$ + { "In: " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate format.article.booktitle + output.nonnull.nostate + } + if$ + new.block + number empty$ + 'skip$ + { ", " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate format.article.number + output.nonnull.nostate + ": " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate } + if$ + new.block + pages empty$ + 'skip$ + { format.article.pages + output.nonnull.nostate + } + if$ + new.block + fin.entry +} +FUNCTION {format.book.author} +{ author + duplicate$ empty$ 'skip$ + { format.names.author } + if$ + "author" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.book.year} +{ year + "year" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.book.title} +{ title + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + italize + } + if$ +} +FUNCTION {format.book.address} +{ address + "address" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.book.publisher} +{ publisher + "publisher" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.book.edition} +{ edition + "edition" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.book.pages} +{ pages + "pages" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {book} +{ output.bibitem + author empty$ + 'skip$ + { format.book.author + output.nonnull.nostate + " " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate } + if$ + new.block + year empty$ + 'skip$ + { " (" + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate format.book.year + output.nonnull.nostate + "): " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate } + if$ + new.block + title empty$ + 'skip$ + { format.book.title + output.nonnull.nostate + ". " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate } + if$ + new.block + address empty$ + 'skip$ + { format.book.address + output.nonnull.nostate + } + if$ + new.block + publisher empty$ + 'skip$ + { ", " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate format.book.publisher + output.nonnull.nostate + } + if$ + new.block + edition empty$ + 'skip$ + { ", " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate format.book.edition + output.nonnull.nostate + " Auflage" + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate } + if$ + new.block + pages empty$ + 'skip$ + { ": " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate format.book.pages + output.nonnull.nostate + } + if$ + new.block + fin.entry +} +FUNCTION {format.incollection.author} +{ author + duplicate$ empty$ 'skip$ + { format.names.author } + if$ + "author" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.incollection.year} +{ year + "year" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.incollection.title} +{ title + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.incollection.editor} +{ editor + duplicate$ empty$ 'skip$ + { format.names.editor } + if$ + "editor" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.incollection.booktitle} +{ booktitle + "booktitle" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.incollection.address} +{ address + "address" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.incollection.publisher} +{ publisher + "publisher" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {format.incollection.pages} +{ pages + "pages" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {incollection} +{ output.bibitem + author empty$ + 'skip$ + { format.incollection.author + output.nonnull.nostate + " " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate } + if$ + new.block + year empty$ + 'skip$ + { " (" + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate format.incollection.year + output.nonnull.nostate + "): " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate } + if$ + new.block + title empty$ + 'skip$ + { format.incollection.title + output.nonnull.nostate + ". " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate } + if$ + new.block + editor empty$ + 'skip$ + { "In: " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate format.incollection.editor + output.nonnull.nostate + " (Hg.), " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate } + if$ + new.block + booktitle empty$ + 'skip$ + { format.incollection.booktitle + output.nonnull.nostate + "." + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate } + if$ + new.block + address empty$ + 'skip$ + { " " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate format.incollection.address + output.nonnull.nostate + } + if$ + new.block + publisher empty$ + 'skip$ + { format.incollection.publisher + output.nonnull.nostate + } + if$ + new.block + pages empty$ + 'skip$ + { ": " + duplicate$ empty$ 'skip$ + { + } + if$ +output.nonnull.nostate format.incollection.pages + output.nonnull.nostate + } + if$ + new.block + fin.entry +} +READ +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} +FUNCTION {author.year.label} +{ author empty$ + { year empty$ + { cite$ #1 #3 substring$ } + {year format.title.short } + if$ + } + { author format.lab.names } + if$ +} +FUNCTION {calc.label} +{ type$ "misc" = + 'author.year.label + 'skip$ + if$ + type$ "book" = + 'author.year.label + 'skip$ + if$ + type$ "incollection" = + 'author.year.label + 'skip$ + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "u.a." *} + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.year.sort} +{ author empty$ + { year empty$ + { "to sort, need author, oryear in " cite$ * warning$ + "" +} + {year format.title.short sortify } if$ + } + { author sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "misc" = + 'author.year.sort + 'skip$ + if$ + type$ "book" = + 'author.year.sort + 'skip$ + if$ + type$ "incollection" = + 'author.year.sort + 'skip$ + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.label next.extra } + +INTEGERS { longest.label.width last.extra.num number.label } + +FUNCTION { initialize.longest.label } +{ "" 'longest.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * write$ newline$ + "\providecommand{\natexlab}[1]{#1}" write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +}EXECUTE {end.bib}
\ No newline at end of file |