diff options
Diffstat (limited to 'Master/texmf-dist/doc/bibtex/gost/gost2008e.goodbst')
-rw-r--r-- | Master/texmf-dist/doc/bibtex/gost/gost2008e.goodbst | 1807 |
1 files changed, 1807 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/bibtex/gost/gost2008e.goodbst b/Master/texmf-dist/doc/bibtex/gost/gost2008e.goodbst new file mode 100644 index 00000000000..539e455e5ff --- /dev/null +++ b/Master/texmf-dist/doc/bibtex/gost/gost2008e.goodbst @@ -0,0 +1,1807 @@ +%% +%% This is file `gost2008e.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,modern,eprint') +%% +%% This file 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 this 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 file has the LPPL maintenance status "maintained". +%% Maintained by Igor A. Kotelnikov. +%% Current version: 2012.02.02 +%% +%% Please, send bug report via e-mail: +%% kia999 at mail dot ru <Igor Kotelnikov> +%% or +%% polyama at yahoo dot edu <Maksym Polyakov> +%% + + +%% +%% This bibstyle attempts to format bibliography according to +%% GOST 7.0.5-2008 for bibliographic reference. + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + totalpages + language + booklanguage + url + urldate + isbn + doi + archive + eprinttype + eprintclass + eprint + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block +after.dblslash after.slash after.column after.semicolumn } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.dblslash := + #5 'after.slash := + #6 'after.column := + #7 'after.semicolumn := +} + +STRINGS { s t } + +STRINGS { curlanguage } + +FUNCTION {change.language} +{ booklanguage empty$ + { "" } + { booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } + if$ +} + +FUNCTION {output.nonnull} +{ + swap$ + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + " \BibDash " write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.dblslash = + { "~//" * change.language * " " * write$ } + { output.state after.slash = + { "~/ " * write$ } + { output.state after.column = + { ": " * write$ } + { output.state after.semicolumn = + { "; " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.dblslash} +{ output.state before.all = + 'skip$ + { after.dblslash 'output.state := } + if$ +} + +FUNCTION {new.slash} +{ output.state before.all = + 'skip$ + { after.slash 'output.state := } + if$ +} + +FUNCTION {new.column} +{ output.state before.all = + 'skip$ + { after.column 'output.state := } + if$ +} + +FUNCTION {new.semicolumn} +{ output.state before.all = + 'skip$ + { after.semicolumn '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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +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$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed. by "} + { curlanguage "ukrainian" = + {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.\ }"} + { curlanguage "russian" = + {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.\ }"} + { curlanguage "german" = + { "ed. " } + {"language is not defined: " language "edited by" * * warning$ "edited by"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + { "Compiler "} + { curlanguage "german" = + { "Hrsg. " } + { curlanguage "ukrainian" = + {"{\cyr\CYRU\cyrk\cyrl.\ }"} + { curlanguage "russian" = + {"{\cyr\CYRS\cyro\cyrs\cyrt.\ }"} + {"language is not defined: " language "compiler" * * warning$ "compiler"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{\cyr\cyrv\cyri\cyrd.}"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz\cyrd.}"} + { curlanguage "german" = + {" {aus.}" } %%%% { "Aufl." } ?? + { curlanguage "italian" = + {"edizione"} + { curlanguage "french" = + {"\'{e}dition"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Volume"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "\CYRT\cyro\cyrm" } + { curlanguage "german" = + {"{Band}"} %%%% { "Volumen" } + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$} +if$} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRT."} + { curlanguage "german" = + {"{Bd.}"} %%%% { "Vol." } + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$} +if$} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"\CYRV\cyri\cyrp\cyru\cyrs\cyrk"} + { curlanguage "russian" = + {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} + { curlanguage "german" = + {"{Heft}"} %%%% { "Ausgabe" } + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"\CYRV\cyri\cyrp."} + { curlanguage "russian" = + {"\CYRV\cyrery\cyrp."} + { curlanguage "german" = + {"{H.}"} %%% { "Aus." }?? + {"language is not defined: " language * warning$ "Iss"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "german" = + { "von" } + { curlanguage "ukrainian" = + { "{\cyr\cyrii\cyrz}" } + { curlanguage "russian" = + { "{\cyr\cyri\cyrz}" } + {"language is not defined: " language "of" * * warning$ "of"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.etal} % { "\bblof{}" } +{ curlanguage "english" = + {"et~al."} + { curlanguage "german" = + { "u.~a." } + { curlanguage "ukrainian" = + {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} + { curlanguage "russian" = + {"{\cyr\cyri~\cyrd\cyrr.}"} + {"language is not defined: " language "at al" * * warning$ "at al."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "\CYRN\cyro\cyrm\cyre\cyrr" } + { curlanguage "german" = + {"{Heft}"} %%% { "Anzahl" } + {"language is not defined: " language "Number" * * warning$ "Number"} + if$} + if$} +if$} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + { curlanguage "german" = + {"{Heft}"} %%% { "anzahl" }??? + {"language is not defined: " language "number" * * warning$ "number"} + if$} + if$} +if$} + +FUNCTION {bbl.nr} % { "\bblno{}" } +{ curlanguage "english" = + {"no."} + { curlanguage "italian" = + { "no" } + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{\cyr\textnumero}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{\cyr\textnumero}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "No." * * warning$ "No."} + if$} + if$} +if$} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = curlanguage "german" = or + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{\cyr\cyrv}" } + {"language is not defined: " language "in" * * warning$ "in"} + if$} +if$} + +FUNCTION {bbl.iin} % { "\bblIn{}" } +{ curlanguage "english" = curlanguage "german" = or + {"In"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "\CYRV" } + {"language is not defined: " language "In" * * warning$ "In"} + if$} +if$} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} %%% {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrs.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "pp." * * warning$ "pp."} + if$} + if$} +if$} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrs.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} %%%% { "Pp." } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\CYRS.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$} +if$} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\CYRS.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed: "} + { curlanguage "ukrainian" = + { "\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyre\cyrn\cyrn\cyrya:" } + { curlanguage "russian" = + { "{\cyrd\cyra\cyrt\cyra\ \cyro\cyrb\cyrr\cyra\cyrshch\cyre\cyrn\cyri\cyrya: }" } + { curlanguage "german" = + { "{online; abgerufen: }" } + { "language is not defined: " language * warning$ "online; accessed: " } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techrep} % rename to bbl.techreport +{ curlanguage "english" = + { "Tech.~Rep." } + { curlanguage "german" = + { "Tech.~Bericht" } + { curlanguage "russian" = + { "{\cyr\CYRT\cyre\cyrh.\ \cyrd\cyro\cyrk\cyrl\cyra\cyrd}" } + { "language is not defined: " language * warning$ "Tech.~Rep." } + if$} + if$} +if$} + +FUNCTION {bbl.mthesis} +{ curlanguage "english" = + { "Master's thesis" } + { curlanguage "german" = + { "Diss.~Mag." } + { curlanguage "russian" = + { "{\cyr\CYRK\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri" + "\cyro\cyrn\cyrn\cyra\cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyra\ " * + "\cyrm\cyra\cyrg\cyri\cyrs\cyrt\cyrr\cyra}" * } + { "language is not defined: " language * warning$ "Master's thesis" } + if$} + if$} +if$} + +FUNCTION {bbl.phdthesis} +{ curlanguage "english" = + { "Ph.\,D. thesis" } + { curlanguage "german" = + { "Diss.~Ph.\,D." } + { curlanguage "russian" = + { "{\cyr\CYRD\cyri\cyrs\cyrs\ldots\ \cyrk\cyra\cyrn\cyrd\cyri" + "\cyrd\cyra\cyrt\cyra\ \cyrn\cyra\cyru\cyrk}" * } + { "language is not defined: " language * warning$ "Ph.\,D. thesis" } + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} %%% rename this to dscthesis +{ curlanguage "english" = + { "Dr.\,Sci. dissertation" } + { curlanguage "german" = + { "Diss.~Dr." } + { curlanguage "russian" = + { "{\cyr\CYRD\cyri\cyrs\cyrs\ldots\ \cyrd\cyro\cyrk\cyrt\cyro" + "\cyrr\cyra\ \cyrn\cyra\cyru\cyrk}" * } + { "language is not defined: " language * warning$ "In" } + if$} + if$} +if$} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{~jj}{~f.}" format.name$ 't := + nameptr #1 > + { nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.rev} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.}{~vv}{~ll}{, jj}" format.name$ 't := + nameptr #1 > + { nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize} + if$ +} + +FUNCTION {format.bookauthors} +{ bookauthor empty$ + { "" } + { bookauthor format.names} + if$ +} + +FUNCTION {format.authors.after} +{ author empty$ + { "" } + { author format.names.rev} + if$ +} + +FUNCTION {format.bookauthors.after} +{ bookauthor empty$ + { "" } + { bookauthor format.names.rev} + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby editor format.names.rev * + } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr compiler format.names.rev * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". " quote$ "--- " month * * * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher.date} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output + format.date output +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + language empty$ + {"english" 'curlanguage :=} + {language 'curlanguage :=} + if$ + "\selectlanguageifdefined{" write$ + curlanguage write$ + "}" write$ newline$ + "" + before.all 'output.state := +} + +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 {word.in} +{ bbl.iin + " " * } + +FUNCTION {format.btitle} +{ title +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {tie.connect} + {"~" + swap$ * * + } + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ + bbl.nnr } + { + %new.dblslash + new.sentence + series + bbl.nr + tie.or.space.connect} + if$ + number tie.or.space.connect + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + + +FUNCTION {convert.edition} +{ edition +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 + { bbl.ppages pages n.dashify tie.connect } + { bbl.ppage pages tie.connect } + if$ + } + if$ +} + +FUNCTION {format.pages.page} +{ pages empty$ + { totalpages empty$ + { "" } + { totalpages bbl.pages tie.connect } + if$} + { format.pages} + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + ", no." number tie.or.space.connect * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ": " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.or.space.connect } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { bbl.nr number tie.or.space.connect } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +FUNCTION {bookauthor.before} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #4 < + {format.bookauthors output + new.sentence} + 'skip$ + if$} + if$ +} + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {author num.names$ #3 > + {format.authors.after output + new.semicolumn } + 'skip$ + if$} + if$ +} + +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #3 > + {format.bookauthors.after output + new.semicolumn } + 'skip$ + if$} + if$ +} + +FUNCTION {editor.organization.after} +{ + compiler empty$ + {} + { format.compiler.after output + new.semicolumn + } + if$ + editor empty$ + {} + { format.editors.after output + new.semicolumn + } + if$ + organization empty$ + {} + {organization output + new.semicolumn + } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + "URL: \BibUrl{" url * "}" * + urldate empty$ + { "" } + { " (" bbl.urldate * urldate * ")" * } + if$ * + } + if$ +} + +FUNCTION {format.annote} +{ annote empty$ + { "" } +{ after.sentence 'output.state := + "\BibAnnote{" annote add.period$ * "}" * +} + if$ +} + +FUNCTION {format.isbn} +{ + isbn empty$ + { "" } + { "ISBN:~\href{http://isbndb.com/search-all.html?kw=" isbn * + "}{" * isbn * "}" * + } + if$ +} + +FUNCTION {add.doi} +{ +% duplicate$ empty$ +% 'skip$ +% { doi empty$ +% 'skip$ +% { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } +% if$ +% } +% if$ +} + + +%FUNCTION {format.eprint} +%{ eprint empty$ +% { "" } +% { eprintclass empty$ +% { " \href{http://arxiv.org/abs/" eprint * "}" * "{" * eprint * "}" * } +% { eprinttype empty$ +% { " \href{http://arxiv.org/abs/" eprint * "}" * +% "{" * eprintclass * "/" * eprint * "}" * +% } +% { " \href{http://arxiv.org/abs/" eprint * "}" * +% "{" * eprinttype * ":" * eprintclass * "/" * eprint * "}" * +% } +% if$} +% if$} +%if$} +%FUNCTION {format.eprint} +%{ eprint empty$ +% { "" } +% { eprinttype empty$ +% { "" } +% { eprinttype "~: " *} +% if$ +% eprintclass empty$ +% { } +% { eprintclass * "/" *} +% if$ +% eprint * +% } +% if$ +%} +%FUNCTION {format.eprint} +%{ eprint empty$ +% { "" } +% { eprinttype empty$ +% { "" } +% { eprinttype "~: " *} +% if$ +% eprintclass empty$ +% { } +% { eprintclass * "/" *} +% if$ +% eprint * +% } +% if$ +% url empty$ +% { } +% { "\href{" url * "}{" * swap$ * "}" *} +% if$ +%} + +FUNCTION {format.eprint} +{ eprint empty$ + { "" } + { eprinttype empty$ + { "" } + { eprinttype "~: " *} + if$ + eprintclass empty$ + { } + { eprintclass * "/" *} + if$ + url empty$ + { eprint * } + { "\href{" * url * "}{" * eprint * "}" *} + if$ + } + if$ +} + +FUNCTION {output.eprint.url} +{ + eprint empty$ + { format.url output } + { format.eprint output } + if$ +} + +FUNCTION {article} +{ + output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date output + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence +% format.eprint output % new in v.2 +% new.block % new in v.2 +% format.url output + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi "title" output.check + new.slash + author.after + editor.organization.after + new.sentence + format.number.series output + new.block + format.edition output + new.block + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence +% format.eprint output % new in v.2 +% new.block % new in v.2 +% format.url output + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date output + new.block + note output + new.sentence + format.eprint output % new in v.2 + new.block % new in v.2 + format.url output + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi "title" output.check + new.slash + author.after + new.dblslash + bookauthor.before + booktitle "booktitle" output.check + new.slash + bookauthor.after + editor.organization.after + new.block + format.edition output + new.block + format.number.series output + new.sentence + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + format.eprint output % new in v.2 + new.block % new in v.2 + format.url output + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher.date + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + format.eprint output % new in v.2 + new.block % new in v.2 + format.url output + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + new.block + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + new.column + publisher output + format.date "year" output.check + } + if$ + new.block + format.pages.page output + new.block + note output + new.sentence + format.eprint output % new in v.2 + new.block % new in v.2 + format.url output + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + 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 + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + new.sentence + format.eprint output % new in v.2 + new.block % new in v.2 + format.url output + format.annote output + fin.entry +} + +FUNCTION {mastersthesis} +{ + output.bibitem + format.authors "author" output.check + new.block + format.btitle add.doi "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + new.block + format.eprint output % new in v.2 + new.block % new in v.2 + format.url output + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + note output + new.sentence + format.eprint output % new in v.2 + new.block % new in v.2 + format.url output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.slash + school "school" output.check + new.block + output.address.publisher.date + new.block + format.pages.page output + note output + new.sentence + format.eprint output % new in v.2 + new.block % new in v.2 + format.url output + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ + output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.slash + school "school" output.check + new.block + output.address.publisher.date + new.block + format.pages.page output + note output + new.sentence + format.eprint output % new in v.2 + new.block % new in v.2 + format.url output + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + publisher output + } + if$ + new.block + note output + new.sentence + format.eprint output % new in v.2 + new.block % new in v.2 + format.url output + format.annote output + fin.entry +} + +FUNCTION {techreport} +{ + output.bibitem + author.before + new.sentence + format.title add.doi "title" output.check + new.column + format.tr.number output.nonnull + new.slash + author.after + editor.organization.after + new.block + address output + new.column + institution "institution" output.check + format.date "year" output.check + new.block + note output + new.sentence + format.eprint output % new in v.2 + new.block % new in v.2 + format.url output + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.block + note "note" output.check + new.sentence + format.eprint output % new in v.2 + new.block % new in v.2 + format.url output + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + format.eprint output % new in v.2 + new.block % new in v.2 + format.url output + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\bbljan{}"} +MACRO {feb} {"\bblfeb{}"} +MACRO {mar} {"\bblmar{}"} +MACRO {apr} {"\bblapr{}"} +MACRO {may} {"\bblmay{}"} +MACRO {jun} {"\bbljun{}"} +MACRO {jul} {"\bbljul{}"} +MACRO {aug} {"\bblaug{}"} +MACRO {sep} {"\bblsep{}"} +MACRO {oct} {"\bbloct{}"} +MACRO {nov} {"\bblnov{}"} +MACRO {dec} {"\bbldec{}"} + + +MACRO {aa}{"Astron. \& Astrophys."} +MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} +MACRO {aj} {"Astron. J."} +MACRO {aph} {"Acta Phys."} +MACRO {advp} {"Adv. Phys."} +MACRO {ajp} {"Amer. J. Phys."} +MACRO {ajm} {"Amer. J. Math."} +MACRO {amsci} {"Amer. Sci."} +MACRO {anofd} {"Ann. Fluid Dyn."} +MACRO {am} {"Ann. Math."} +MACRO {ap} {"Ann. Phys. (NY)"} +MACRO {adp} {"Ann. Phys. (Leipzig)"} +MACRO {ao} {"Appl. Opt."} +MACRO {apl} {"Appl. Phys. Lett."} +MACRO {app} {"Astroparticle Phys."} +MACRO {apj} {"Astrophys. J."} +MACRO {apjsup} {"Astrophys. J. Suppl."} +MACRO {apss} {"Astrophys. Space Sci."} +MACRO {araa} {"Ann. Rev. Astron. Astrophys."} +MACRO {baas} {"Bull. Amer. Astron. Soc."} +MACRO {baps} {"Bull. Amer. Phys. Soc."} +MACRO {cmp} {"Comm. Math. Phys."} +MACRO {cpam} {"Commun. Pure Appl. Math."} +MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"} +MACRO {cpc} {"Comp. Phys. Comm."} +MACRO {cqg} {"Class. Quant. Grav."} +MACRO {cra} {"C. R. Acad. Sci. A"} +MACRO {fed} {"Fusion Eng. \& Design"} +MACRO {ft} {"Fusion Tech."} +MACRO {grg} {"Gen. Relativ. Gravit."} +MACRO {ieeens} {"IEEE Trans. Nucl. Sci."} +MACRO {ieeeps} {"IEEE Trans. Plasma Sci."} +MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"} +MACRO {ip} {"Infrared Phys."} +MACRO {irp} {"Infrared Phys."} +MACRO {jap} {"J. Appl. Phys."} +MACRO {jasa} {"J. Acoust. Soc. America"} +MACRO {jcp} {"J. Comp. Phys."} +MACRO {jchp} {"J. Chem. Phys."} +MACRO {jetp} {"Sov. Phys.--JETP"} +MACRO {jfe} {"J. Fusion Energy"} +MACRO {jfm} {"J. Fluid Mech."} +MACRO {jmp} {"J. Math. Phys."} +MACRO {jne} {"J. Nucl. Energy"} +MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."} +MACRO {jnm} {"J. Nucl. Mat."} +MACRO {jpc} {"J. Phys. Chem."} +MACRO {jpp} {"J. Plasma Phys."} +MACRO {jpsj} {"J. Phys. Soc. Japan"} +MACRO {jsi} {"J. Sci. Instrum."} +MACRO {jvst} {"J. Vac. Sci. \& Tech."} +MACRO {nat} {"Nature"} +MACRO {nature} {"Nature"} +MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"} +MACRO {nf} {"Nucl. Fusion"} +MACRO {nim} {"Nucl. Inst. \& Meth."} +MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."} +MACRO {np} {"Nucl. Phys."} +MACRO {npb} {"Nucl. Phys. B"} +MACRO {nt/f} {"Nucl. Tech./Fusion"} +MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"} +MACRO {inc} {"Nuovo Cimento"} +MACRO {nc} {"Nuovo Cimento"} +MACRO {pf} {"Phys. Fluids"} +MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."} +MACRO {pfb} {"Phys. Fluids B: Plasma Phys."} +MACRO {pl} {"Phys. Lett."} +MACRO {pla} {"Phys. Lett. A"} +MACRO {plb} {"Phys. Lett. B"} +MACRO {prep} {"Phys. Rep."} +MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"} +MACRO {pp} {"Phys. Plasmas"} +MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"} +MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"} +MACRO {prl} {"Phys. Rev. Lett."} +MACRO {pr} {"Phys. Rev."} +MACRO {physrev} {"Phys. Rev."} +MACRO {pra} {"Phys. Rev. A"} +MACRO {prb} {"Phys. Rev. B"} +MACRO {prc} {"Phys. Rev. C"} +MACRO {prd} {"Phys. Rev. D"} +MACRO {pre} {"Phys. Rev. E"} +MACRO {ps} {"Phys. Scripta"} +MACRO {procrsl} {"Proc. Roy. Soc. London"} +MACRO {rmp} {"Rev. Mod. Phys."} +MACRO {rsi} {"Rev. Sci. Inst."} +MACRO {science} {"Science"} +MACRO {sciam} {"Sci. Am."} +MACRO {sam} {"Stud. Appl. Math."} +MACRO {sjpp} {"Sov. J. Plasma Phys."} +MACRO {spd} {"Sov. Phys.--Doklady"} +MACRO {sptp} {"Sov. Phys.--Tech. Phys."} +MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {st} {"Sky and Telesc."} + +MACRO {appopt} {"Appl. Opt."} +MACRO {bell} {"Bell Syst. Tech. J."} +MACRO {ell} {"Electron. Lett."} +MACRO {jasp} {"J. Appl. Spectr."} +MACRO {jqe} {"IEEE J. Quantum Electron."} +MACRO {jlwt} {"J. Lightwave Technol."} +MACRO {jmo} {"J. Mod. Opt."} +MACRO {josa} {"J. Opt. Soc. America"} +MACRO {josaa} {"J. Opt. Soc. Amer.~A"} +MACRO {josab} {"J. Opt. Soc. Amer.~B"} +MACRO {jdp} {"J. Phys. (Paris)"} +MACRO {oc} {"Opt. Commun."} +MACRO {ol} {"Opt. Lett."} +MACRO {os} {"Opt. Spectrosc."} +MACRO {phtl} {"IEEE Photon. Technol. Lett."} +MACRO {pspie} {"Proc. Soc. Photo-Opt. Instrum. Eng."} +MACRO {sjot} {"Sov. J. Opt. Technol."} +MACRO {sjqe} {"Sov. J. Quantum Electron."} +MACRO {sleb} {"Sov. Phys.--Leb. Inst. Rep."} +MACRO {stph} {"Sov. Phys.--Techn. Phys."} +MACRO {stphl} {"Sov. Techn. Phys. Lett."} +MACRO {vr} {"Vision Res."} +MACRO {zph} {"Z. f. Physik"} +MACRO {zphb} {"Z. f. Physik~B"} +MACRO {zphd} {"Z. f. Physik~D"} +MACRO {sse} {"Solid-State Electron."} +MACRO {pss} {"Phys. Sol. State"} +MACRO {sst} {"Semicond. Sci. Tech."} +MACRO {nl} {"Nano Lett."} + +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} +{ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\def\selectlanguageifdefined#1{" write$ newline$ + "\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\providecommand*{\href}[2]{{\small #2}}" write$ newline$ + "\providecommand*{\url}[1]{{\small #1}}" write$ newline$ + "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ + "\providecommand{\BibAnnote}[1]{}" write$ newline$ + "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ + "\providecommand*{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ + "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em\fi\cyrdash\hskip.2em\ignorespaces}" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +%% +%% End of file `gost2008e.bst'. |