diff options
author | Karl Berry <karl@freefriends.org> | 2012-02-20 23:32:35 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-02-20 23:32:35 +0000 |
commit | 64d51a198451e71c53362aa54fd87e2c35f33618 (patch) | |
tree | 7e7019e090b8ca018747a91968d8f80121649df3 /Master/texmf-dist/bibtex | |
parent | 707eb60645045d854a58c5cda9a8316879ff0db7 (diff) |
gost (20feb12)
git-svn-id: svn://tug.org/texlive/trunk@25450 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/bibtex')
25 files changed, 36073 insertions, 11628 deletions
diff --git a/Master/texmf-dist/bibtex/bst/gost/gost2003.bst b/Master/texmf-dist/bibtex/bst/gost/gost2003.bst new file mode 100644 index 00000000000..08cd81d091f --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/gost2003.bst @@ -0,0 +1,1935 @@ +%% +%% This is file `gost2003.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,strict,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 com <Maksym Polyakov> +%% + + + +%% +%% This bibstyle attempts to format bibliography according to +%% GOST 7.80-2000 for bibliographic records. + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + 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$ + " " quote$ "--- " * * 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} +{ duplicate$ empty$ + { pop$ "" } + { "[" swap$ * "]" * } + if$ +} + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" 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 "edby" * * warning$ "Ed.\ 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 "cmplr" * * 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 "vvolume" * * 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 "vvol" * * 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 "iissue" * * 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.}"} + {"language is not defined: " language "iiss" * * 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 "et~al" * * warning$ "et~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 "nnumber" * * 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 "nr" * * 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 "nnr" * * 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 "iin" * * 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 "pages" * * warning$ "p."} + 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 "page" * * 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 "ppages" * * warning$ "P."} + 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 "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyrn\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 "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } + { "language is not defined: " language "techrep" * * warning$ "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 "mthesis" * * 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}" * } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ 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 "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyrm.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{\cyr\cyrb.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { curlanguage "ukrainian" = + { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "\cyrr\cyru\cyrk." } + { curlanguage "ukrainian" = + { "\cyrr\cyru\cyrk." } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{\cyr\cyri\cyrs\cyrp\cyro\cyrl\cyrn.}" } + { curlanguage "ukrainian" = + { "{\cyr\cyrv\cyri\cyrk\cyro\cyrn\cyra\cyrv\cyre\cyrc\cyrsftsn}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +if$} + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ + #1 "{vv~}{ll}{~jj}{,~f.}" format.name$ +} + + +FUNCTION {format.names.rev} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + %"{f.}{~vv}{~ll}{, jj}" format.name$ 't := + "{ff}{~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 enclose.square.brackets * } + { ", " * 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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author 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} +{ + address empty$ + { + bbl.nnoaddress + publisher empty$ + { "~: " * bbl.nopublisher * enclose.square.brackets } + { enclose.square.brackets "~: " * publisher * } + if$ + } + { + address output + new.column + publisher empty$ + { bbl.nopublisher enclose.square.brackets } + { publisher } + if$ + } + if$ + output +} + + + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem" write$ + cite$ bracify write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * 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$ + { numpages empty$ + { "" } + { numpages 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$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {format.authors.after output + new.semicolumn } + if$ +} + +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} +{ duplicate$ empty$ + 'skip$ + { medium empty$ + { " " * bbl.medium enclose.square.brackets * } + { " " * medium enclose.square.brackets * } +%% { bbl.medium enclose.square.brackets * } +%% { medium enclose.square.brackets * } + if$ + } + 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 add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + 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 + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 := +} + +EXECUTE {initialize.longest.label} + +FUNCTION {forward.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$ +} + +ITERATE {forward.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$ + 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 `gost2003.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost2003s.bst b/Master/texmf-dist/bibtex/bst/gost/gost2003s.bst new file mode 100644 index 00000000000..b744c47b4dc --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/gost2003s.bst @@ -0,0 +1,2059 @@ +%% +%% This is file `gost2003s.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,strict,eprint,sort') +%% +%% 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 com <Maksym Polyakov> +%% + + + +%% +%% This bibstyle attempts to format bibliography according to +%% GOST 7.80-2000 for bibliographic records. + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + 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$ + " " quote$ "--- " * * 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$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} +{ duplicate$ empty$ + { pop$ "" } + { "[" swap$ * "]" * } + if$ +} + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" 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 "edby" * * warning$ "Ed.\ 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 "cmplr" * * 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 "vvolume" * * 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 "vvol" * * 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 "iissue" * * 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.}"} + {"language is not defined: " language "iiss" * * 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 "et~al" * * warning$ "et~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 "nnumber" * * 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 "nr" * * 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 "nnr" * * 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 "iin" * * 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 "pages" * * warning$ "p."} + 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 "page" * * 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 "ppages" * * warning$ "P."} + 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 "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyrn\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 "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } + { "language is not defined: " language "techrep" * * warning$ "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 "mthesis" * * 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}" * } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ 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 "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyrm.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{\cyr\cyrb.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { curlanguage "ukrainian" = + { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "\cyrr\cyru\cyrk." } + { curlanguage "ukrainian" = + { "\cyrr\cyru\cyrk." } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{\cyr\cyri\cyrs\cyrp\cyro\cyrl\cyrn.}" } + { curlanguage "ukrainian" = + { "{\cyr\cyrv\cyri\cyrk\cyro\cyrn\cyra\cyrv\cyre\cyrc\cyrsftsn}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +if$} + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ + #1 "{vv~}{ll}{~jj}{,~f.}" format.name$ +} + + +FUNCTION {format.names.rev} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + %"{f.}{~vv}{~ll}{, jj}" format.name$ 't := + "{ff}{~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 enclose.square.brackets * } + { ", " * 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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author 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} +{ + address empty$ + { + bbl.nnoaddress + publisher empty$ + { "~: " * bbl.nopublisher * enclose.square.brackets } + { enclose.square.brackets "~: " * publisher * } + if$ + } + { + address output + new.column + publisher empty$ + { bbl.nopublisher enclose.square.brackets } + { publisher } + if$ + } + if$ + output +} + + + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem" write$ + cite$ bracify write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * 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$ + { numpages empty$ + { "" } + { numpages 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$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {format.authors.after output + new.semicolumn } + if$ +} + +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} +{ duplicate$ empty$ + 'skip$ + { medium empty$ + { " " * bbl.medium enclose.square.brackets * } + { " " * medium enclose.square.brackets * } +%% { bbl.medium enclose.square.brackets * } +%% { medium enclose.square.brackets * } + if$ + } + 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 add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + 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 + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 + + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +%% ===================================== +%% This version from old Gost package +%%<*!natbib> +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 + { "et al" * } + %{ bbl.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +%%</!natbib> +%% This version from plainnat.bst +%% It ignores second and subsequent authors but include year. +%%<*natbib> +%%</natbib> +%% ===================================== + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word % Removes "The " if any + chop.word % Removes "An " if any + chop.word % Removes "A " if any + sortify + #1 global.max$ substring$ +} + +%% ===================================== +%% This version from old gost package. +%% +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} +%% This version from plainnat.bst +%% ===================================== + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {presort}%#1 +{ + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + + +ITERATE {presort} + +SORT + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +EXECUTE {initialize.longest.label} + +FUNCTION {forward.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$ +} + +ITERATE {forward.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$ + 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 `gost2003s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost2008.bst b/Master/texmf-dist/bibtex/bst/gost/gost2008.bst new file mode 100644 index 00000000000..41eaf17552d --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/gost2008.bst @@ -0,0 +1,1946 @@ +%% +%% This is file `gost2008.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 com <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 + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" 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 "edby" * * warning$ "Ed.\ 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 "cmplr" * * 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 "vvolume" * * 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 "vvol" * * 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 "iissue" * * 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.}"} + {"language is not defined: " language "iiss" * * 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 "et~al" * * warning$ "et~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 "nnumber" * * 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 "nr" * * 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 "nnr" * * 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 "iin" * * 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 "pages" * * warning$ "p."} + 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 "page" * * 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 "ppages" * * warning$ "P."} + 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 "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyrn\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 "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } + { "language is not defined: " language "techrep" * * warning$ "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 "mthesis" * * 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}" * } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ 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 "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyrm.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{\cyr\cyrb.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { curlanguage "ukrainian" = + { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "\cyrr\cyru\cyrk." } + { curlanguage "ukrainian" = + { "\cyrr\cyru\cyrk." } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{\cyr\cyri\cyrs\cyrp\cyro\cyrl\cyrn.}" } + { curlanguage "ukrainian" = + { "{\cyr\cyrv\cyri\cyrk\cyro\cyrn\cyra\cyrv\cyre\cyrc\cyrsftsn}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +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 := + "{ff}{~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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author 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 ". \BibDash " month * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output +} + + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem" write$ + cite$ bracify write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * 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$ + { numpages empty$ + { "" } + { numpages 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$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +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$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} { } + + + +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 add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + 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 + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 := +} + +EXECUTE {initialize.longest.label} + +FUNCTION {forward.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$ +} + +ITERATE {forward.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" write$ newline$ + "\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 `gost2008.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost2008l.bst b/Master/texmf-dist/bibtex/bst/gost/gost2008l.bst new file mode 100644 index 00000000000..2437f2f7f48 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/gost2008l.bst @@ -0,0 +1,1934 @@ +%% +%% This is file `gost2008l.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,modern,eprint,long') +%% +%% 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 com <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 + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" 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 "edby" * * warning$ "Ed.\ 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 "cmplr" * * 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 "vvolume" * * 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 "vvol" * * 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 "iissue" * * 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.}"} + {"language is not defined: " language "iiss" * * 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 "et~al" * * warning$ "et~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 "nnumber" * * 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 "nr" * * 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 "nnr" * * 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 "iin" * * 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 "pages" * * warning$ "p."} + 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 "page" * * 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 "ppages" * * warning$ "P."} + 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 "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyrn\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 "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } + { "language is not defined: " language "techrep" * * warning$ "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 "mthesis" * * 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}" * } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ 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 "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyrm.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{\cyr\cyrb.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { curlanguage "ukrainian" = + { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "\cyrr\cyru\cyrk." } + { curlanguage "ukrainian" = + { "\cyrr\cyru\cyrk." } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{\cyr\cyri\cyrs\cyrp\cyro\cyrl\cyrn.}" } + { curlanguage "ukrainian" = + { "{\cyr\cyrv\cyri\cyrk\cyro\cyrn\cyra\cyrv\cyre\cyrc\cyrsftsn}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +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 := + "{ff}{~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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author 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 ". \BibDash " month * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output +} + + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem" write$ + cite$ bracify write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * 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$ + { numpages empty$ + { "" } + { numpages 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$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + { format.authors output + new.sentence + } + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +FUNCTION {author.after} { } + +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} { } + + + +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 add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + 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 + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 := +} + +EXECUTE {initialize.longest.label} + +FUNCTION {forward.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$ +} + +ITERATE {forward.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" write$ newline$ + "\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 `gost2008l.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost2008ls.bst b/Master/texmf-dist/bibtex/bst/gost/gost2008ls.bst new file mode 100644 index 00000000000..315cd40ea95 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/gost2008ls.bst @@ -0,0 +1,2058 @@ +%% +%% This is file `gost2008ls.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,modern,eprint,long,sort') +%% +%% 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 com <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 + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + 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$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" 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 "edby" * * warning$ "Ed.\ 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 "cmplr" * * 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 "vvolume" * * 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 "vvol" * * 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 "iissue" * * 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.}"} + {"language is not defined: " language "iiss" * * 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 "et~al" * * warning$ "et~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 "nnumber" * * 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 "nr" * * 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 "nnr" * * 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 "iin" * * 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 "pages" * * warning$ "p."} + 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 "page" * * 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 "ppages" * * warning$ "P."} + 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 "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyrn\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 "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } + { "language is not defined: " language "techrep" * * warning$ "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 "mthesis" * * 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}" * } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ 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 "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyrm.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{\cyr\cyrb.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { curlanguage "ukrainian" = + { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "\cyrr\cyru\cyrk." } + { curlanguage "ukrainian" = + { "\cyrr\cyru\cyrk." } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{\cyr\cyri\cyrs\cyrp\cyro\cyrl\cyrn.}" } + { curlanguage "ukrainian" = + { "{\cyr\cyrv\cyri\cyrk\cyro\cyrn\cyra\cyrv\cyre\cyrc\cyrsftsn}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +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 := + "{ff}{~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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author 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 ". \BibDash " month * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output +} + + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem" write$ + cite$ bracify write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * 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$ + { numpages empty$ + { "" } + { numpages 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$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + { format.authors output + new.sentence + } + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +FUNCTION {author.after} { } + +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} { } + + + +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 add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + 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 + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 + + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +%% ===================================== +%% This version from old Gost package +%%<*!natbib> +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 + { "et al" * } + %{ bbl.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +%%</!natbib> +%% This version from plainnat.bst +%% It ignores second and subsequent authors but include year. +%%<*natbib> +%%</natbib> +%% ===================================== + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word % Removes "The " if any + chop.word % Removes "An " if any + chop.word % Removes "A " if any + sortify + #1 global.max$ substring$ +} + +%% ===================================== +%% This version from old gost package. +%% +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} +%% This version from plainnat.bst +%% ===================================== + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {presort}%#1 +{ + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + + +ITERATE {presort} + +SORT + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +EXECUTE {initialize.longest.label} + +FUNCTION {forward.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$ +} + +ITERATE {forward.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" write$ newline$ + "\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 `gost2008ls.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost2008n.bst b/Master/texmf-dist/bibtex/bst/gost/gost2008n.bst new file mode 100644 index 00000000000..bad578f1a16 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/gost2008n.bst @@ -0,0 +1,2287 @@ +%% +%% This is file `gost2008n.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,modern,natbib,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 com <Maksym Polyakov> +%% + + + +%% +%% This bibstyle attempts to format bibliography according to +%% GOST 7.0.5-2008 for bibliographic reference. +%%------------------------------------------------------------------- +%% This is an author-year citation style bibliography. +%% It requires a special package file to function properly +%% such as natbib.sty by Patrick W. Daly. +%% The form of the \bibitem entries is +%% \bibitem[Jones et al.(1990)]{key}... +%% \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... +%% where the label part (in brackets) consists of the author names, +%% as they should appear in the citation, with the year in parentheses following. +%% There must be no space before the opening parenthesis! +%% A full list of authors may also follow the year. +%% In natbib.sty, it is possible to define the type of enclosures that is +%% really wanted (brackets or parentheses), but in either case, there must +%% be parentheses in the label. +%% The \cite command functions as follows: +%% \citet{key} => Jones et al. (1990) +%% \citet*{key} => Jones, Baker, and Smith (1990) +%% \citep{key} => (Jones et al., 1990) +%% \citep*{key} => (Jones, Baker, and Smith, 1990) +%% \citep[chap. 2]{key} => (Jones et al., 1990, chap. 2) +%% \citep[e.g.][]{key} => (e.g. Jones et al., 1990) +%% \citep[e.g.][p. 32]{key} => (e.g. Jones et al., p. 32) +%% \citeauthor{key} => Jones et al. +%% \citeauthor*{key} => Jones, Baker, and Smith +%% \citeyear{key} => 1990 +%%--------------------------------------------------------------------- + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + eprint + } + {} + { label extra.label sort.label short.list } + +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$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" 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 "edby" * * warning$ "Ed.\ 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 "cmplr" * * 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 "vvolume" * * 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 "vvol" * * 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 "iissue" * * 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.}"} + {"language is not defined: " language "iiss" * * 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 "et~al" * * warning$ "et~al."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.and} % { "\bbland{}" } +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"{\cyrii}"} + { curlanguage "russian" = + {"{\cyri}"} + {"language is not defined: " language "and" * * warning$ "and"} + 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 "nnumber" * * 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 "nr" * * 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 "nnr" * * 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 "iin" * * 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 "pages" * * warning$ "p."} + 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 "page" * * 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 "ppages" * * warning$ "P."} + 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 "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyrn\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 "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } + { "language is not defined: " language "techrep" * * warning$ "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 "mthesis" * * 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}" * } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ 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 "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyrm.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{\cyr\cyrb.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { curlanguage "ukrainian" = + { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "\cyrr\cyru\cyrk." } + { curlanguage "ukrainian" = + { "\cyrr\cyru\cyrk." } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{\cyr\cyri\cyrs\cyrp\cyro\cyrl\cyrn.}" } + { curlanguage "ukrainian" = + { "{\cyr\cyrv\cyri\cyrk\cyro\cyrn\cyra\cyrv\cyre\cyrc\cyrsftsn}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +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.lab.names} +{ 's := + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + %{ pop$ " et~al." * } + { pop$ " " bbl.etal * * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + %{ " et~al." * } + { " " bbl.etal * * } + %{ " and " * s #2 "{vv~}{ll}" format.name$ * } + { " " bbl.and " " * * * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.names.rev} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + %"{f.}{~vv}{~ll}{, jj}" format.name$ 't := + "{ff}{~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.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize} + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + %'key %% causes lost of year + { "{}" key * } %% Bug in bibtex8 ?? + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + + +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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author 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 ". \BibDash " month * * } + if$ + } + if$ + extra.label * % new in v.1.2 +} + +FUNCTION {output.address.publisher} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output +} + + +FUNCTION {format.full.names} +{'s := + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + curlanguage "english" = + and + { "," * } + 'skip$ + if$ + t "others" = + %t "~others" = + %or + %{ " et~al." * } + { " " bbl.etal * * } + %{ " and " * t * } + { " " bbl.and " " * * * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "]{" * write$ + cite$ write$ + "}" write$ + language empty$ + { "english" 'curlanguage := } + {language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * write$ + newline$ + "" + before.all 'output.state := +} +%% author.key.label +%% year parenthesify * +%% "; lbl:" label * * +%% "; mfn:" make.full.names * * + +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$ + { numpages empty$ + { "" } + { numpages 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$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +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$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} { } + + + +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 + author format.key output + format.title add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + author format.key output + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + author format.key output + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + author format.key output + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + author format.key output + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + editor format.key output + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + author format.key output + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + author format.key output + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + author format.key output + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.block + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + title format.key output + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + title format.key output + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 + + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + + +INTEGERS { seq.num } + +FUNCTION {init.seq} +{ #0 'seq.num :=} + +EXECUTE {init.seq} + +FUNCTION {int.to.fix} +{ "000000000" swap$ int.to.str$ * + #-1 #10 substring$ +} + +FUNCTION {presort}%#3 +{ + calc.label % computes label + label sortify % initiates sort.label + " " + * + seq.num #1 + 'seq.num := % advance seq.num + seq.num int.to.fix % prepend seq.num with 0s + 'sort.label := % set sort.label to seq.num + sort.label * % append seq.num to label + #1 entry.max$ substring$ % cut if too long + 'sort.key$ := % set sort.key$ +} + +ITERATE {presort} + +SORT + + +STRINGS { longest.label last.label next.extra } + +INTEGERS { number.label longest.label.width last.extra.num } + +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 := +} + +EXECUTE {initialize.longest.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 := +} + +ITERATE {forward.pass} + +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 := +} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label 'sort.key$ := +} + +ITERATE {bib.sort.order} + +SORT + +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" write$ newline$ + "\cyrdash\hskip.2em\ignorespaces}" write$ newline$ + "\providecommand{\natexlab}[1]{#1}" 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 `gost2008n.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost2008ns.bst b/Master/texmf-dist/bibtex/bst/gost/gost2008ns.bst new file mode 100644 index 00000000000..c62d17b6d25 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/gost2008ns.bst @@ -0,0 +1,2421 @@ +%% +%% This is file `gost2008ns.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,modern,natbib,eprint,sort') +%% +%% 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 com <Maksym Polyakov> +%% + + + +%% +%% This bibstyle attempts to format bibliography according to +%% GOST 7.0.5-2008 for bibliographic reference. +%%------------------------------------------------------------------- +%% This is an author-year citation style bibliography. +%% It requires a special package file to function properly +%% such as natbib.sty by Patrick W. Daly. +%% The form of the \bibitem entries is +%% \bibitem[Jones et al.(1990)]{key}... +%% \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... +%% where the label part (in brackets) consists of the author names, +%% as they should appear in the citation, with the year in parentheses following. +%% There must be no space before the opening parenthesis! +%% A full list of authors may also follow the year. +%% In natbib.sty, it is possible to define the type of enclosures that is +%% really wanted (brackets or parentheses), but in either case, there must +%% be parentheses in the label. +%% The \cite command functions as follows: +%% \citet{key} => Jones et al. (1990) +%% \citet*{key} => Jones, Baker, and Smith (1990) +%% \citep{key} => (Jones et al., 1990) +%% \citep*{key} => (Jones, Baker, and Smith, 1990) +%% \citep[chap. 2]{key} => (Jones et al., 1990, chap. 2) +%% \citep[e.g.][]{key} => (e.g. Jones et al., 1990) +%% \citep[e.g.][p. 32]{key} => (e.g. Jones et al., p. 32) +%% \citeauthor{key} => Jones et al. +%% \citeauthor*{key} => Jones, Baker, and Smith +%% \citeyear{key} => 1990 +%%--------------------------------------------------------------------- + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + eprint + } + {} + { label extra.label sort.label short.list } + +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$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" 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 "edby" * * warning$ "Ed.\ 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 "cmplr" * * 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 "vvolume" * * 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 "vvol" * * 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 "iissue" * * 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.}"} + {"language is not defined: " language "iiss" * * 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 "et~al" * * warning$ "et~al."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.and} % { "\bbland{}" } +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"{\cyrii}"} + { curlanguage "russian" = + {"{\cyri}"} + {"language is not defined: " language "and" * * warning$ "and"} + 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 "nnumber" * * 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 "nr" * * 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 "nnr" * * 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 "iin" * * 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 "pages" * * warning$ "p."} + 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 "page" * * 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 "ppages" * * warning$ "P."} + 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 "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyrn\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 "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } + { "language is not defined: " language "techrep" * * warning$ "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 "mthesis" * * 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}" * } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ 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 "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyrm.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{\cyr\cyrb.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { curlanguage "ukrainian" = + { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "\cyrr\cyru\cyrk." } + { curlanguage "ukrainian" = + { "\cyrr\cyru\cyrk." } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{\cyr\cyri\cyrs\cyrp\cyro\cyrl\cyrn.}" } + { curlanguage "ukrainian" = + { "{\cyr\cyrv\cyri\cyrk\cyro\cyrn\cyra\cyrv\cyre\cyrc\cyrsftsn}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +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.lab.names} +{ 's := + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + %{ pop$ " et~al." * } + { pop$ " " bbl.etal * * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + %{ " et~al." * } + { " " bbl.etal * * } + %{ " and " * s #2 "{vv~}{ll}" format.name$ * } + { " " bbl.and " " * * * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.names.rev} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + %"{f.}{~vv}{~ll}{, jj}" format.name$ 't := + "{ff}{~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.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize} + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + %'key %% causes lost of year + { "{}" key * } %% Bug in bibtex8 ?? + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + + +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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author 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 ". \BibDash " month * * } + if$ + } + if$ + extra.label * % new in v.1.2 +} + +FUNCTION {output.address.publisher} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output +} + + +FUNCTION {format.full.names} +{'s := + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + curlanguage "english" = + and + { "," * } + 'skip$ + if$ + t "others" = + %t "~others" = + %or + %{ " et~al." * } + { " " bbl.etal * * } + %{ " and " * t * } + { " " bbl.and " " * * * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "]{" * write$ + cite$ write$ + "}" write$ + language empty$ + { "english" 'curlanguage := } + {language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * write$ + newline$ + "" + before.all 'output.state := +} +%% author.key.label +%% year parenthesify * +%% "; lbl:" label * * +%% "; mfn:" make.full.names * * + +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$ + { numpages empty$ + { "" } + { numpages 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$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +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$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} { } + + + +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 + author format.key output + format.title add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + author format.key output + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + author format.key output + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + author format.key output + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + author format.key output + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + editor format.key output + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + author format.key output + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + author format.key output + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + author format.key output + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.block + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + title format.key output + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + title format.key output + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 + + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +%% ===================================== +%% This version from old Gost package +%%<*!natbib> +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 + { "et al" * } + %{ bbl.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +%%</!natbib> +%% This version from plainnat.bst +%% It ignores second and subsequent authors but include year. +%%<*natbib> +%%</natbib> +%% ===================================== + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word % Removes "The " if any + chop.word % Removes "An " if any + chop.word % Removes "A " if any + sortify + #1 global.max$ substring$ +} + +%% ===================================== +%% This version from old gost package. +%% +%% This version from plainnat.bst +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +%% ===================================== + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort}%#2 +{ calc.label + label sortify + %author.title.sort + " " + * + % ========= plainnat.bst ========= + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + %cite$ + title field.or.null sort.format.title + * + #1 entry.max$ substring$ + 'sort.label := + sort.label * + % ================================ + #1 entry.max$ substring$ + 'sort.key$ := +} + + +ITERATE {presort} + +SORT + + +STRINGS { longest.label last.label next.extra } + +INTEGERS { number.label longest.label.width last.extra.num } + +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 := +} + +EXECUTE {initialize.longest.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 := +} + +ITERATE {forward.pass} + +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 := +} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label 'sort.key$ := +} + +ITERATE {bib.sort.order} + +SORT + +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" write$ newline$ + "\cyrdash\hskip.2em\ignorespaces}" write$ newline$ + "\providecommand{\natexlab}[1]{#1}" 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 `gost2008ns.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost2008s.bst b/Master/texmf-dist/bibtex/bst/gost/gost2008s.bst new file mode 100644 index 00000000000..b1f47417561 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/gost2008s.bst @@ -0,0 +1,2070 @@ +%% +%% This is file `gost2008s.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,modern,eprint,sort') +%% +%% 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 com <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 + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + 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$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" 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 "edby" * * warning$ "Ed.\ 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 "cmplr" * * 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 "vvolume" * * 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 "vvol" * * 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 "iissue" * * 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.}"} + {"language is not defined: " language "iiss" * * 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 "et~al" * * warning$ "et~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 "nnumber" * * 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 "nr" * * 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 "nnr" * * 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 "iin" * * 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 "pages" * * warning$ "p."} + 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 "page" * * 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 "ppages" * * warning$ "P."} + 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 "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyrn\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 "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } + { "language is not defined: " language "techrep" * * warning$ "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 "mthesis" * * 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}" * } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ 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 "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyrm.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{\cyr\cyrb.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { curlanguage "ukrainian" = + { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "\cyrr\cyru\cyrk." } + { curlanguage "ukrainian" = + { "\cyrr\cyru\cyrk." } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{\cyr\cyri\cyrs\cyrp\cyro\cyrl\cyrn.}" } + { curlanguage "ukrainian" = + { "{\cyr\cyrv\cyri\cyrk\cyro\cyrn\cyra\cyrv\cyre\cyrc\cyrsftsn}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +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 := + "{ff}{~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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author 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 ". \BibDash " month * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output +} + + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem" write$ + cite$ bracify write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * 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$ + { numpages empty$ + { "" } + { numpages 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$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +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$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} { } + + + +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 add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + 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 + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 + + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +%% ===================================== +%% This version from old Gost package +%%<*!natbib> +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 + { "et al" * } + %{ bbl.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +%%</!natbib> +%% This version from plainnat.bst +%% It ignores second and subsequent authors but include year. +%%<*natbib> +%%</natbib> +%% ===================================== + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word % Removes "The " if any + chop.word % Removes "An " if any + chop.word % Removes "A " if any + sortify + #1 global.max$ substring$ +} + +%% ===================================== +%% This version from old gost package. +%% +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} +%% This version from plainnat.bst +%% ===================================== + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {presort}%#1 +{ + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + + +ITERATE {presort} + +SORT + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +EXECUTE {initialize.longest.label} + +FUNCTION {forward.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$ +} + +ITERATE {forward.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" write$ newline$ + "\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 `gost2008s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost705s.bst b/Master/texmf-dist/bibtex/bst/gost/gost705s.bst deleted file mode 100644 index 8e19d2f53ab..00000000000 --- a/Master/texmf-dist/bibtex/bst/gost/gost705s.bst +++ /dev/null @@ -1,1672 +0,0 @@ -%% -%% This is file `gost705s.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% gost.dtx (with options: `gost705s') -%% -%% Copyright 2012 Igor A. Kotelnikov. -%% Version 2012.01.21 -%% -%% Copyright 1996-2005 Maksym Polyakov. -%% Version 2005.08.12 -%% -%% 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. -%% -%% Please, send bug reports via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% polyama at yahoo dot edu <Maksym Polyakov> -%% -%% 2012.01.15 Added German, French, Italian languages, @online entry. -%% -%% 2005.08.12 Bug fix (long annote) -%% -%% 2003.06.06 contributions by Konstantin Vorontsov: -%% New ENTRY "annote" added to output annotations. -%% New commands BibUrl, BibAnnote added for customize urls and annotations. -%% -%% 2003.08.10 -%% New command BibEmph added to customize emphasizing. -%% -%% 2003.10.07 -%% Some bug fixes in names and date formatting. -%% -%% 2003.10.07 -%% Bug fix in INPROCEEDINGS. -%% -%% -%% This bibliography style attempts -%% to format bibliography according to -%% GOST 7.0.5-2008 -%% -%% For the Ukrainian|Russian bibliographic entries -%% you need to create field -%% language = {ukrainian|russian}. -%% Default language is English. -%% Field numpages for books must contain number of pages. -%% Optional field url will format url (using hyperref, if loaded). -%% -%% See examples in gost71.pdf, gost780.pdf and gost705.pdf -%% -%% -%% -%% Requires 8-bit bibtex with switch -B and csf file supporting cyrillic. -%% bibtex8 -B -c <encoding>.csf <your_document> -%% - -ENTRY - { address - annote - author - booktitle - bookauthor - chapter - edition - editor - compiler - howpublished - institution - journal - key - month - note - number - organization - pages - numpages - publisher - school - series - title - type - volume - year - language - booklanguage - url - urldate - } - {} - { 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} -%%%{ 's := -{ 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$ -%%% 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 {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.\ }"} - {"language is not defined: " language "edited by" * * warning$ "edited by"} - if$} - if$} - if$ -} - -FUNCTION {bbl.cmplr} -{ curlanguage "english" = - {"Compiler "} - { curlanguage "ukrainian" = - {"{\cyr\CYRU\cyrk\cyrl.\ }"} - { curlanguage "russian" = - {"{\cyr\CYRS\cyro\cyrs\cyrt.\ }"} - {"language is not defined: " language "compiler" * * warning$ "compiler"} - 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.}" } - { 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" = - {"{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" = - {"{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" = - {"{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" = - {"{Aus.}"} - {"language is not defined: " language * warning$ "Iss"} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.of} % { "\bblof{}" } -{ curlanguage "english" = - {"of"} - { curlanguage "ukrainian" = - {"{\cyr\cyrii\cyrz}"} - { curlanguage "russian" = - {"{\cyr\cyri\cyrz}"} - {"language is not defined: " language "of" * * warning$ "of"} - if$} - if$} - if$ -} - -FUNCTION {bbl.etal} % { "\bblof{}" } -{ curlanguage "english" = - {"et~al."} - { 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$ -} - -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } -{ curlanguage "english" = - {"Number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"\CYRN\cyro\cyrm\cyre\cyrr"} - { curlanguage "german" = - {"{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" = - {"{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" = - {"{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" = - {"{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 - {"pp."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\cyrs.}"} - { curlanguage "german" = - {"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."} - {"language is not defined: " language "p." * * warning$ "p."} - if$} - if$} - if$ -} - -FUNCTION {bbl.ppages}% { "\bblPp." } -{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or - {"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} { "Tech. Rep." } -FUNCTION {bbl.mthesis} { "Master's thesis" } -FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } - -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$ - { numpages empty$ - { "" } - { numpages 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 {article} -{ output.bibitem - author.before - format.title "title" output.check - new.slash - author.after - new.dblslash - journal emphasize "journal" output.check - 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.url output - format.annote output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - 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.url output - format.annote output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - author.before - new.sentence - format.title "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.url output - format.annote output - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - author.before - new.sentence - format.title "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.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.url output - format.annote output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle "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.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.url output - format.annote output - fin.entry -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - new.sentence - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - author.before - new.sentence - format.title "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.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.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.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 {acmcs} {"ACM Computing Surveys"} - -MACRO {acta} {"Acta Informatica"} - -MACRO {cacm} {"Communications of the ACM"} - -MACRO {ibmjrd} {"IBM Journal of Research and Development"} - -MACRO {ibmsj} {"IBM Systems Journal"} - -MACRO {ieeese} {"IEEE Transactions on Software Engineering"} - -MACRO {ieeetc} {"IEEE Transactions on Computers"} - -MACRO {ieeetcad} - {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} - -MACRO {ipl} {"Information Processing Letters"} - -MACRO {jacm} {"Journal of the ACM"} - -MACRO {jcss} {"Journal of Computer and System Sciences"} - -MACRO {scp} {"Science of Computer Programming"} - -MACRO {sicomp} {"SIAM Journal on Computing"} - -MACRO {tocs} {"ACM Transactions on Computer Systems"} - -MACRO {tods} {"ACM Transactions on Database Systems"} - -MACRO {tog} {"ACM Transactions on Graphics"} - -MACRO {toms} {"ACM Transactions on Mathematical Software"} - -MACRO {toois} {"ACM Transactions on Office Information Systems"} - -MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} - -MACRO {tcs} {"Theoretical Computer Science"} - -READ - - -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 {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 - { "et al" * } - { 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.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { - author num.names$ #4 < - {author sort.format.names } - {title sort.format.title} - if$ - } - if$ -} - -FUNCTION {author.title.sort} -{ author empty$ - { title empty$ - { key empty$ - { "to sort, need author, title, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { title sort.format.title } - if$ - } - { - author num.names$ #4 < - {author sort.format.names } - {title sort.format.title} - if$ - } - if$ -} - -FUNCTION {presort} -{ - author.title.sort - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} - -ITERATE {presort} - -SORT - - -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*{\url}[1]{{\small #1}}" write$ newline$ - "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ - "\providecommand{\BibAnnote}[1]{}" write$ newline$ - "\providecommand*{\BibEmph}[1]{\emph{#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 `gost705s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost705u.bst b/Master/texmf-dist/bibtex/bst/gost/gost705u.bst deleted file mode 100644 index 00cdcaaedfa..00000000000 --- a/Master/texmf-dist/bibtex/bst/gost/gost705u.bst +++ /dev/null @@ -1,1560 +0,0 @@ -%% -%% This is file `gost705u.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% gost.dtx (with options: `gost705u') -%% -%% Copyright 2012 Igor A. Kotelnikov. -%% Version 2012.01.21 -%% -%% Copyright 1996-2005 Maksym Polyakov. -%% Version 2005.08.12 -%% -%% 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. -%% -%% Please, send bug reports via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% polyama at yahoo dot edu <Maksym Polyakov> -%% -%% 2012.01.15 Added German, French, Italian languages, @online entry. -%% -%% 2005.08.12 Bug fix (long annote) -%% -%% 2003.06.06 contributions by Konstantin Vorontsov: -%% New ENTRY "annote" added to output annotations. -%% New commands BibUrl, BibAnnote added for customize urls and annotations. -%% -%% 2003.08.10 -%% New command BibEmph added to customize emphasizing. -%% -%% 2003.10.07 -%% Some bug fixes in names and date formatting. -%% -%% 2003.10.07 -%% Bug fix in INPROCEEDINGS. -%% -%% -%% This bibliography style attempts -%% to format bibliography according to -%% GOST 7.0.5-2008 -%% -%% For the Ukrainian|Russian bibliographic entries -%% you need to create field -%% language = {ukrainian|russian}. -%% Default language is English. -%% Field numpages for books must contain number of pages. -%% Optional field url will format url (using hyperref, if loaded). -%% -%% See examples in gost71.pdf, gost780.pdf and gost705.pdf -%% -%% -%% -%% Requires 8-bit bibtex with switch -B and csf file supporting cyrillic. -%% bibtex8 -B -c <encoding>.csf <your_document> -%% - -ENTRY - { address - annote - author - booktitle - bookauthor - chapter - edition - editor - compiler - howpublished - institution - journal - key - month - note - number - organization - pages - numpages - publisher - school - series - title - type - volume - year - language - booklanguage - url - urldate - } - {} - { 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} -%%%{ 's := -{ 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$ -%%% 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 {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.\ }"} - {"language is not defined: " language "edited by" * * warning$ "edited by"} - if$} - if$} - if$ -} - -FUNCTION {bbl.cmplr} -{ curlanguage "english" = - {"Compiler "} - { curlanguage "ukrainian" = - {"{\cyr\CYRU\cyrk\cyrl.\ }"} - { curlanguage "russian" = - {"{\cyr\CYRS\cyro\cyrs\cyrt.\ }"} - {"language is not defined: " language "compiler" * * warning$ "compiler"} - 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.}" } - { 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" = - {"{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" = - {"{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" = - {"{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" = - {"{Aus.}"} - {"language is not defined: " language * warning$ "Iss"} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.of} % { "\bblof{}" } -{ curlanguage "english" = - {"of"} - { curlanguage "ukrainian" = - {"{\cyr\cyrii\cyrz}"} - { curlanguage "russian" = - {"{\cyr\cyri\cyrz}"} - {"language is not defined: " language "of" * * warning$ "of"} - if$} - if$} - if$ -} - -FUNCTION {bbl.etal} % { "\bblof{}" } -{ curlanguage "english" = - {"et~al."} - { 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$ -} - -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } -{ curlanguage "english" = - {"Number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"\CYRN\cyro\cyrm\cyre\cyrr"} - { curlanguage "german" = - {"{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" = - {"{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" = - {"{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" = - {"{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 - {"pp."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\cyrs.}"} - { curlanguage "german" = - {"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."} - {"language is not defined: " language "p." * * warning$ "p."} - if$} - if$} - if$ -} - -FUNCTION {bbl.ppages}% { "\bblPp." } -{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or - {"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} { "Tech. Rep." } -FUNCTION {bbl.mthesis} { "Master's thesis" } -FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } - -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$ - { numpages empty$ - { "" } - { numpages 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 {article} -{ output.bibitem - author.before - format.title "title" output.check - new.slash - author.after - new.dblslash - journal emphasize "journal" output.check - 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.url output - format.annote output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - 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.url output - format.annote output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - author.before - new.sentence - format.title "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.url output - format.annote output - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - author.before - new.sentence - format.title "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.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.url output - format.annote output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle "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.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.url output - format.annote output - fin.entry -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - new.sentence - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - author.before - new.sentence - format.title "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.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.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.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 {acmcs} {"ACM Computing Surveys"} - -MACRO {acta} {"Acta Informatica"} - -MACRO {cacm} {"Communications of the ACM"} - -MACRO {ibmjrd} {"IBM Journal of Research and Development"} - -MACRO {ibmsj} {"IBM Systems Journal"} - -MACRO {ieeese} {"IEEE Transactions on Software Engineering"} - -MACRO {ieeetc} {"IEEE Transactions on Computers"} - -MACRO {ieeetcad} - {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} - -MACRO {ipl} {"Information Processing Letters"} - -MACRO {jacm} {"Journal of the ACM"} - -MACRO {jcss} {"Journal of Computer and System Sciences"} - -MACRO {scp} {"Science of Computer Programming"} - -MACRO {sicomp} {"SIAM Journal on Computing"} - -MACRO {tocs} {"ACM Transactions on Computer Systems"} - -MACRO {tods} {"ACM Transactions on Database Systems"} - -MACRO {tog} {"ACM Transactions on Graphics"} - -MACRO {toms} {"ACM Transactions on Mathematical Software"} - -MACRO {toois} {"ACM Transactions on Office Information Systems"} - -MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} - -MACRO {tcs} {"Theoretical Computer Science"} - -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*{\url}[1]{{\small #1}}" write$ newline$ - "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ - "\providecommand{\BibAnnote}[1]{}" write$ newline$ - "\providecommand*{\BibEmph}[1]{\emph{#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 `gost705u.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost780.bst b/Master/texmf-dist/bibtex/bst/gost/gost780.bst new file mode 100644 index 00000000000..94ebc47717d --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/gost780.bst @@ -0,0 +1,1853 @@ +%% +%% This is file `gost780.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst') +%% +%% 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 com <Maksym Polyakov> +%% + + + +%% +%% This bibstyle attempts to format bibliography according to +%% GOST 7.80-2000 for bibliographic records. + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + 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$ + " " quote$ "--- " * * 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" 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 "edby" * * warning$ "Ed.\ 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 "cmplr" * * 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 "vvolume" * * 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 "vvol" * * 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 "iissue" * * 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.}"} + {"language is not defined: " language "iiss" * * 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 "et~al" * * warning$ "et~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 "nnumber" * * 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 "nr" * * 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 "nnr" * * 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 "iin" * * 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 "pages" * * warning$ "p."} + 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 "page" * * 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 "ppages" * * warning$ "P."} + 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 "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyrn\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 "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } + { "language is not defined: " language "techrep" * * warning$ "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 "mthesis" * * 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}" * } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ 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 "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyrm.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{\cyr\cyrb.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { curlanguage "ukrainian" = + { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "\cyrr\cyru\cyrk." } + { curlanguage "ukrainian" = + { "\cyrr\cyru\cyrk." } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{\cyr\cyri\cyrs\cyrp\cyro\cyrl\cyrn.}" } + { curlanguage "ukrainian" = + { "{\cyr\cyrv\cyri\cyrk\cyro\cyrn\cyra\cyrv\cyre\cyrc\cyrsftsn}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +if$} + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ + #1 "{vv~}{ll}{~jj}{,~f.}" format.name$ +} + + +FUNCTION {format.names.rev} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + %"{f.}{~vv}{~ll}{, jj}" format.name$ 't := + "{ff}{~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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author 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} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output +} + +FUNCTION {output.address.publisher.date} +{ + output.address.publisher + format.date output +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem" write$ + cite$ bracify write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * 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$ + { numpages empty$ + { "" } + { numpages 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$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {format.authors.after output + new.semicolumn } + if$ +} + +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {format.bookauthors.after output + new.semicolumn } + 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$ + { "" } + { + "\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} { } + +FUNCTION {add.medium} { } + + +FUNCTION {output.eprint.url} +{ + format.url output +} + +FUNCTION {article} +{ + output.bibitem + author.before + format.title add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + 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 + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "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.url output + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "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.url output + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "title" output.check + new.column + bbl.mthesis 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.url output + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "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.url output + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 := +} + +EXECUTE {initialize.longest.label} + +FUNCTION {forward.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$ +} + +ITERATE {forward.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$ + 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 `gost780.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost780s.bst b/Master/texmf-dist/bibtex/bst/gost/gost780s.bst index aceff50fd34..a0a9e0646b3 100644 --- a/Master/texmf-dist/bibtex/bst/gost/gost780s.bst +++ b/Master/texmf-dist/bibtex/bst/gost/gost780s.bst @@ -4,13 +4,7 @@ %% %% The original source files were: %% -%% gost.dtx (with options: `gost780s') -%% -%% Copyright 2012 Igor A. Kotelnikov. -%% Version 2012.01.21 -%% -%% Copyright 1996-2005 Maksym Polyakov. -%% Version 2005.08.12 +%% gost.dtx (with options: `bst,sort') %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -20,46 +14,21 @@ %% and version 1.3 or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% -%% Please, send bug reports via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% polyama at yahoo dot edu <Maksym Polyakov> -%% -%% 2012.01.15 Added German, French, Italian languages, @online entry. -%% -%% 2005.08.12 Bug fix (long annote) -%% -%% 2003.06.06 contributions by Konstantin Vorontsov: -%% New ENTRY "annote" added to output annotations. -%% New commands BibUrl, BibAnnote added for customize urls and annotations. -%% -%% 2003.08.10 -%% New command BibEmph added to customize emphasizing. +%% This file has the LPPL maintenance status "maintained". +%% Maintained by Igor A. Kotelnikov. +%% Current version: 2012.02.02 %% -%% 2003.10.07 -%% Some bug fixes in names and date formatting. -%% -%% 2003.10.07 -%% Bug fix in INPROCEEDINGS. +%% Please, send bug report via e-mail: +%% kia999 at mail dot ru <Igor Kotelnikov> +%% or +%% polyama at yahoo dot com <Maksym Polyakov> %% + + + %% -%% This bibliography style attempts -%% to format bibliography according to -%% (obsolete) -%% -%% For the Ukrainian|Russian bibliographic entries -%% you need to create field -%% language = {ukrainian|russian}. -%% Default language is English. -%% Field numpages for books must contain number of pages. -%% Optional field url will format url (using hyperref, if loaded). -%% -%% See examples in gost71.pdf, gost780.pdf and gost705.pdf -%% -%% -%% -%% Requires 8-bit bibtex with switch -B and csf file supporting cyrillic. -%% bibtex8 -B -c <encoding>.csf <your_document> -%% +%% This bibstyle attempts to format bibliography according to +%% GOST 7.80-2000 for bibliographic records. ENTRY { address @@ -80,24 +49,30 @@ ENTRY number organization pages - numpages publisher school series title + medium % new in v.2. type volume year language booklanguage + numpages url urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + eprint } {} { label } INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.column after.semicolumn} +after.dblslash after.slash after.column after.semicolumn } FUNCTION {init.state.consts} { #0 'before.all := @@ -116,18 +91,18 @@ STRINGS { curlanguage } FUNCTION {change.language} { booklanguage empty$ - {""} - {booklanguage 'curlanguage := - "\selectlanguageifdefined{" - curlanguage * - "}" * - } + { "" } + { booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } if$ } FUNCTION {output.nonnull} -%%%{ 's := -{ swap$ +{ + swap$ output.state mid.sentence = { ", " * write$ } { output.state after.block = @@ -143,14 +118,14 @@ FUNCTION {output.nonnull} { output.state after.slash = { "~/ " * write$ } { output.state after.column = - { ": " * write$ } - { output.state after.semicolumn = - { "; " * write$ } - { add.period$ " " * write$ } - if$ - } - if$ - } + { ": " * write$ } + { output.state after.semicolumn = + { "; " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } if$ } if$ @@ -161,7 +136,6 @@ FUNCTION {output.nonnull} mid.sentence 'output.state := } if$ -%%% s } FUNCTION {output} @@ -253,6 +227,17 @@ FUNCTION {or} if$ } +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + FUNCTION {non.stop} { duplicate$ "}" * add.period$ @@ -291,6 +276,13 @@ FUNCTION {new.sentence.checkb} if$ } +FUNCTION {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + FUNCTION {field.or.null} { duplicate$ empty$ { pop$ "" } @@ -305,287 +297,430 @@ FUNCTION {emphasize} if$ } +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" 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.\ }"} - {"language is not defined: " language "edited by" * * warning$ "edited by"} +{ 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 "edby" * * warning$ "Ed.\ by"} if$} if$} - if$ -} + if$} +if$} FUNCTION {bbl.cmplr} -{ curlanguage "english" = - {"Compiler "} - { curlanguage "ukrainian" = - {"{\cyr\CYRU\cyrk\cyrl.\ }"} - { curlanguage "russian" = - {"{\cyr\CYRS\cyro\cyrs\cyrt.\ }"} - {"language is not defined: " language "compiler" * * warning$ "compiler"} +{ curlanguage "english" = + { "Compiler"} + { curlanguage "german" = + { "Hrsg." } + { curlanguage "ukrainian" = + {"{\cyr\CYRU\cyrk\cyrl.}"} + { curlanguage "russian" = + {"{\cyr\CYRS\cyro\cyrs\cyrt.}"} + {"language is not defined: " language "cmplr" * * warning$ "Compiler"} if$} if$} - if$ -} + if$} +if$} FUNCTION {bbl.edition} % { "\bbledition{}" } { curlanguage "english" = - {"edition"} - { curlanguage "ukrainian" = + {"edition"} + { curlanguage "ukrainian" = {"{\cyr\cyrv\cyri\cyrd.}"} { curlanguage "russian" = - {"{\cyr\cyri\cyrz\cyrd.}"} - { curlanguage "german" = - {" {aus.}" } + {"{\cyr\cyri\cyrz\cyrd.}"} + { curlanguage "german" = + {" {aus.}" } %%%% { "Aufl." } ?? { curlanguage "italian" = - {"edizione"} - { curlanguage "french" = - {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"edizione"} + { curlanguage "french" = + {"\'{e}dition"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} if$} - if$} - if$} + 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" = - {"{Volumen}"} - {"language is not defined: " language "Volume" * * warning$ "Volume"} - if$} - if$} - if$ -} + {"Volume"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "\CYRT\cyro\cyrm" } + { curlanguage "german" = + {"{Band}"} %%%% { "Volumen" } + {"language is not defined: " language "vvolume" * * 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" = - {"{Vol.}"} - {"language is not defined: " language "Vol." * * warning$ "Vol."} - if$} - if$} - if$ -} + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRT."} + { curlanguage "german" = + {"{Bd.}"} %%%% { "Vol." } + {"language is not defined: " language "vvol" * * 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" = - {"{Ausgabe}"} - {"language is not defined: " language * warning$ "Issue"} - if$} - if$} - if$} - if$ -} +{ 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 "iissue" * * 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" = - {"{Aus.}"} - {"language is not defined: " language * warning$ "Iss"} - if$} +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"\CYRV\cyri\cyrp."} + { curlanguage "russian" = + {"\CYRV\cyrery\cyrp."} + { curlanguage "german" = + {"{H.}"} + {"language is not defined: " language "iiss" * * warning$ "Iss."} if$} if$} - if$ -} + if$} +if$} FUNCTION {bbl.of} % { "\bblof{}" } -{ curlanguage "english" = - {"of"} - { curlanguage "ukrainian" = - {"{\cyr\cyrii\cyrz}"} - { curlanguage "russian" = - {"{\cyr\cyri\cyrz}"} - {"language is not defined: " language "of" * * warning$ "of"} +{ 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$} +if$} FUNCTION {bbl.etal} % { "\bblof{}" } -{ curlanguage "english" = - {"et~al."} - { curlanguage "ukrainian" = - {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} - { curlanguage "russian" = - {"{\cyr\cyri~\cyrd\cyrr.}"} - {"language is not defined: " language "at al" * * warning$ "at al."} +{ 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 "et~al" * * warning$ "et~al."} if$} if$} - if$ -} + if$} +if$} + FUNCTION {bbl.nnumber} % { "\bblNumber{}" } { curlanguage "english" = - {"Number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"\CYRN\cyro\cyrm\cyre\cyrr"} - { curlanguage "german" = - {"{Anzahl}"} - {"language is not defined: " language "Number" * * warning$ "Number"} - if$} - if$} - if$ -} + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "\CYRN\cyro\cyrm\cyre\cyrr" } + { curlanguage "german" = + {"{Heft}"} %%% { "Anzahl" } + {"language is not defined: " language "nnumber" * * warning$ "Number"} + if$} + if$} +if$} FUNCTION {bbl.number} % { "\bblnumber{}" } { curlanguage "english" = - {"number"} - { curlanguage "ukrainian" = curlanguage "russian" = or + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} { curlanguage "german" = - {"{anzahl}"} + {"{Heft}"} %%% { "anzahl" }??? {"language is not defined: " language "number" * * warning$ "number"} if$} - if$} - if$ -} + if$} +if$} FUNCTION {bbl.nr} % { "\bblno{}" } { curlanguage "english" = - {"no."} - { curlanguage "italian" = - { "no" } - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\textnumero}"} - { curlanguage "german" = - {"{an.}"} - {"language is not defined: " language "no." * * warning$ "no."} - if$} - if$} - if$} - if$ -} + {"no."} + { curlanguage "italian" = + { "no" } + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{\cyr\textnumero}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nr" * * warning$ "no."} + if$} + if$} + if$} +if$} FUNCTION {bbl.nnr} % { "\bblno{}" } { curlanguage "english" = - {"No."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\textnumero}"} - { curlanguage "german" = - {"{an.}"} - {"language is not defined: " language "No." * * warning$ "No."} - if$} - if$} - if$ -} + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{\cyr\textnumero}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nnr" * * 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$ -} +{ 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$ -} + {"In"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "\CYRV" } + {"language is not defined: " language "iin" * * warning$ "In"} + if$} +if$} FUNCTION {bbl.pages} % { "\bblpp." } -{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or - {"pp."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\cyrs.}"} - { curlanguage "german" = - {"s."} - {"language is not defined: " language "pp." * * warning$ "pp."} - if$} - if$} - if$ -} +{ 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 "pages" * * warning$ "p."} + 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."} - {"language is not defined: " language "p." * * warning$ "p."} - if$} - if$} - if$ -} + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrs.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "page" * * warning$ "p."} + if$} + if$} +if$} FUNCTION {bbl.ppages}% { "\bblPp." } { curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or - {"Pp."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\CYRS.}"} - { curlanguage "german" = - {"S."} - {"language is not defined: " language "Pp." * * warning$ "Pp."} - if$} - if$} - if$ -} + {"P."} %%%% { "Pp." } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\CYRS.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppages" * * warning$ "P."} + 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$ -} + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\CYRS.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppage" * * 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$ -} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyrn\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 "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } + { "language is not defined: " language "techrep" * * warning$ "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 "mthesis" * * 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}" * } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ 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 "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyrm.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{\cyr\cyrb.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{\cyr\CYRB.\ \cyri.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { curlanguage "ukrainian" = + { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "\cyrr\cyru\cyrk." } + { curlanguage "ukrainian" = + { "\cyrr\cyru\cyrk." } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{\cyr\cyri\cyrs\cyrp\cyro\cyrl\cyrn.}" } + { curlanguage "ukrainian" = + { "{\cyr\cyrv\cyri\cyrk\cyro\cyrn\cyra\cyrv\cyre\cyrc\cyrsftsn}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} -FUNCTION {bbl.techrep} { "Tech. Rep." } -FUNCTION {bbl.mthesis} { "Master's thesis" } -FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +if$} INTEGERS { nameptr namesleft numnames } @@ -597,17 +732,17 @@ FUNCTION {format.names} FUNCTION {format.names.rev} -{ 's := +{ + 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr - "{f.}{~vv}{~ll}{, jj}" - format.name$ 't := + %"{f.}{~vv}{~ll}{, jj}" format.name$ 't := + "{ff}{~vv}{~ll}{, jj}" format.name$ 't := nameptr #1 > - { - nameptr #4 = + { nameptr #4 = numnames #4 > and { "others" 't := #1 'namesleft := } @@ -615,10 +750,9 @@ FUNCTION {format.names.rev} if$ namesleft #1 > { ", " * t * } - { - t "others" = - t "~others" = - or + { t "others" = + t "~others" = + or { " " * bbl.etal * } { ", " * t * } if$ @@ -633,6 +767,7 @@ FUNCTION {format.names.rev} while$ } + FUNCTION {format.authors} { author empty$ { "" } @@ -640,6 +775,7 @@ FUNCTION {format.authors} if$ } + FUNCTION {format.bookauthors} { bookauthor empty$ { "" } @@ -657,31 +793,42 @@ FUNCTION {format.authors.after} FUNCTION {format.bookauthors.after} { bookauthor empty$ { "" } - { bookauthor format.names.rev} + { bookauthor format.names.rev}% always cuts to 4 persons if$ } FUNCTION {format.editors.after} { editor empty$ { "" } - { bbl.edby editor format.names.rev * - } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author format.names.rev * } if$ } FUNCTION {format.compiler.after} { compiler empty$ { "" } - { bbl.cmplr compiler format.names.rev * - } + { bbl.cmplr "\ " * compiler format.names.rev * } if$ } FUNCTION {format.title} { title empty$ { "" } - { title "t" change.case$ - } + { title "t" change.case$ } if$ } @@ -702,35 +849,37 @@ FUNCTION {format.date} if$ } -FUNCTION {output.address.publisher.date} +FUNCTION {output.address.publisher} { - address empty$ + address empty$ + 'skip$ + { address output + publisher empty$ 'skip$ - { address output - publisher empty$ - 'skip$ - { new.column - } - if$ - } - if$ - publisher output - format.date output + { new.column } + if$ + } + if$ + publisher output +} + +FUNCTION {output.address.publisher.date} +{ + output.address.publisher + format.date output } FUNCTION {output.bibitem} { newline$ - "\bibitem{" write$ - cite$ write$ - "}" write$ + "\bibitem" write$ + cite$ bracify write$ newline$ language empty$ - {"english" 'curlanguage :=} - {language 'curlanguage :=} + { "english" 'curlanguage := } + { language 'curlanguage := } if$ - "\selectlanguageifdefined{" write$ - curlanguage write$ - "}" write$ newline$ + "\selectlanguageifdefined" curlanguage bracify * write$ + newline$ "" before.all 'output.state := } @@ -962,14 +1111,13 @@ FUNCTION {format.thesis.type} if$ } -FUNCTION {format.tr.number} +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} { type empty$ - { bbl.techrep } - 'type - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } + { bbl.techreport } + 'type if$ } @@ -985,18 +1133,30 @@ FUNCTION {author.before} if$ } -FUNCTION {bookauthor.before} -{ - bookauthor empty$ - 'skip$ - {bookauthor num.names$ #4 < - {format.bookauthors output - new.sentence} - 'skip$ - if$} - if$ -} - +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> FUNCTION {author.after} { @@ -1006,6 +1166,7 @@ FUNCTION {author.after} new.semicolumn } if$ } + FUNCTION {bookauthor.after} { bookauthor empty$ @@ -1044,7 +1205,7 @@ FUNCTION {format.url} "\BibUrl{ " url * "}" * urldate empty$ { "" } - { " (" bbl.urldate * urldate * ")" * } + { " (" bbl.urldate * ": " * urldate * ")" * } if$ * } if$ @@ -1059,16 +1220,37 @@ FUNCTION {format.annote} if$ } +FUNCTION {format.isbn} +{ + isbn empty$ + { "" } + { "ISBN:~\href{http://isbndb.com/search-all.html?kw=" isbn * + "}{" * isbn * "}" * + } + if$ +} + +FUNCTION {add.doi} { } + +FUNCTION {add.medium} { } + + +FUNCTION {output.eprint.url} +{ + format.url output +} + FUNCTION {article} -{ output.bibitem +{ + output.bibitem author.before - format.title "title" output.check + format.title add.medium "title" output.check new.slash author.after new.dblslash - journal emphasize "journal" output.check + journal emphasize add.doi "journal" output.check % new in v.2 new.block - format.date output + format.date "year" output.check new.block format.volume output format.number output @@ -1077,15 +1259,16 @@ FUNCTION {article} new.block note output new.sentence - format.url output + output.eprint.url format.annote output fin.entry } FUNCTION {book} -{ output.bibitem +{ + output.bibitem author.before - format.btitle "title" output.check + format.btitle add.doi add.medium "title" output.check new.slash author.after editor.organization.after @@ -1094,7 +1277,8 @@ FUNCTION {book} new.block format.edition output new.block - output.address.publisher.date + output.address.publisher + format.date "year" output.check new.block format.bvolume output new.block @@ -1102,38 +1286,39 @@ FUNCTION {book} new.block note output new.sentence - format.url output + output.eprint.url format.annote output fin.entry } FUNCTION {booklet} -{ output.bibitem +{ + output.bibitem author.before - format.title "title" output.check + format.title add.doi add.medium "title" output.check new.slash author.after editor.organization.after new.block howpublished output address output - format.date output + format.date "year" output.check new.block note output new.sentence - format.url output + output.eprint.url format.annote output fin.entry } FUNCTION {inbook} -{ output.bibitem +{ + output.bibitem author.before - format.btitle "title" output.check + format.btitle add.doi add.medium "title" output.check new.slash author.after new.dblslash - bookauthor.before booktitle "booktitle" output.check new.slash bookauthor.after @@ -1143,7 +1328,8 @@ FUNCTION {inbook} new.block format.number.series output new.sentence - output.address.publisher.date + output.address.publisher + format.date "year" output.check new.block format.bvolume output new.block @@ -1151,16 +1337,17 @@ FUNCTION {inbook} new.block note output new.sentence - format.url output + output.eprint.url format.annote output fin.entry } FUNCTION {incollection} -{ output.bibitem +{ + output.bibitem author.before new.sentence - format.title "title" output.check + format.title add.doi add.medium "title" output.check new.slash author.after new.dblslash @@ -1168,7 +1355,8 @@ FUNCTION {incollection} new.slash editor.organization.after new.block - output.address.publisher.date + output.address.publisher + format.date "year" output.check new.block format.bvolume output format.number.series output @@ -1177,7 +1365,26 @@ FUNCTION {incollection} new.block note output new.sentence - format.url output + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url format.annote output fin.entry } @@ -1186,7 +1393,7 @@ FUNCTION {inproceedings} { output.bibitem author.before new.sentence - format.title "title" output.check + format.title add.doi add.medium "title" output.check new.slash author.after new.dblslash @@ -1197,28 +1404,18 @@ FUNCTION {inproceedings} 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$ + output.address.publisher + format.date "year" output.check new.block format.pages.page output new.block note output new.sentence - format.url output + output.eprint.url format.annote output fin.entry } -FUNCTION {conference} { inproceedings } - FUNCTION {manual} { output.bibitem author empty$ @@ -1232,7 +1429,7 @@ FUNCTION {manual} { format.authors output.nonnull } if$ new.block - format.btitle "title" output.check + format.btitle add.doi add.medium "title" output.check author empty$ { organization empty$ { @@ -1249,51 +1446,74 @@ FUNCTION {manual} } if$ format.edition output - format.date output + format.date "year" output.check new.block note output new.sentence - format.url output + output.eprint.url format.annote output fin.entry } -FUNCTION {mastersthesis} +FUNCTION {misc} { output.bibitem - format.authors "author" output.check - new.block - format.btitle "title" output.check + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output 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.sentence + output.eprint.url + 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 - format.url output + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url format.annote output fin.entry } -FUNCTION {misc} +FUNCTION {online} { output.bibitem format.authors output title howpublished new.sentence.checkb - format.title output - howpublished new.block.checka - howpublished output + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence new.block + output.address.publisher format.date output new.block - note output + output.eprint.url new.sentence - format.url output + note output format.annote output fin.entry } -FUNCTION {phdthesis} +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} { output.bibitem format.authors "author" output.check new.sentence @@ -1313,25 +1533,50 @@ FUNCTION {phdthesis} fin.entry } -FUNCTION {proceedings} +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} { output.bibitem + format.authors "author" output.check + new.sentence format.btitle "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull new.slash - editor.organization.after + school "school" output.check 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$ + output.address.publisher.date new.block + format.pages.page output note output new.sentence format.url output @@ -1339,22 +1584,19 @@ FUNCTION {proceedings} fin.entry } -FUNCTION {techreport} +FUNCTION {masterthesis} { output.bibitem - author.before + format.authors "author" output.check new.sentence - format.title "title" output.check + format.btitle "title" output.check new.column - format.tr.number output.nonnull + bbl.mthesis format.thesis.type output.nonnull new.slash - author.after - editor.organization.after + school "school" output.check new.block - address output - new.column - institution "institution" output.check - format.date "year" output.check + output.address.publisher.date new.block + format.pages.page output note output new.sentence format.url output @@ -1362,33 +1604,54 @@ FUNCTION {techreport} fin.entry } -FUNCTION {unpublished} +FUNCTION {dscithesis} { output.bibitem - author.before + format.authors "author" output.check + new.sentence format.btitle "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull new.slash - author.after - editor.organization.after + school "school" output.check new.block - note "note" output.check + output.address.publisher.date + new.block + format.pages.page output + note output new.sentence 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 +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field new.block - format.date output + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url new.block - format.url output - new.sentence note output format.annote output fin.entry @@ -1397,69 +1660,143 @@ FUNCTION {online} 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 {acmcs} {"ACM Computing Surveys"} - -MACRO {acta} {"Acta Informatica"} - -MACRO {cacm} {"Communications of the ACM"} - -MACRO {ibmjrd} {"IBM Journal of Research and Development"} - -MACRO {ibmsj} {"IBM Systems Journal"} - -MACRO {ieeese} {"IEEE Transactions on Software Engineering"} - -MACRO {ieeetc} {"IEEE Transactions on Computers"} - -MACRO {ieeetcad} - {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} -MACRO {ipl} {"Information Processing Letters"} - -MACRO {jacm} {"Journal of the ACM"} - -MACRO {jcss} {"Journal of Computer and System Sciences"} - -MACRO {scp} {"Science of Computer Programming"} - -MACRO {sicomp} {"SIAM Journal on Computing"} - -MACRO {tocs} {"ACM Transactions on Computer Systems"} - -MACRO {tods} {"ACM Transactions on Database Systems"} - -MACRO {tog} {"ACM Transactions on Graphics"} - -MACRO {toms} {"ACM Transactions on Mathematical Software"} - -MACRO {toois} {"ACM Transactions on Office Information Systems"} - -MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} - -MACRO {tcs} {"Theoretical Computer Science"} +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 @@ -1469,17 +1806,9 @@ FUNCTION {sortify} "l" change.case$ } -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - +%% ===================================== +%% This version from old Gost package +%%<*!natbib> FUNCTION {sort.format.names} { 's := #1 'nameptr := @@ -1496,6 +1825,7 @@ FUNCTION {sort.format.names} format.name$ 't := nameptr numnames = t "others" = and { "et al" * } + %{ bbl.etal * } { t sortify * } if$ nameptr #1 + 'nameptr := @@ -1503,18 +1833,27 @@ FUNCTION {sort.format.names} } while$ } +%%</!natbib> +%% This version from plainnat.bst +%% It ignores second and subsequent authors but include year. +%%<*natbib> +%%</natbib> +%% ===================================== FUNCTION {sort.format.title} { 't := "A " #2 "An " #3 - "The " #4 t chop.word - chop.word - chop.word + "The " #4 t chop.word % Removes "The " if any + chop.word % Removes "An " if any + chop.word % Removes "A " if any sortify #1 global.max$ substring$ } +%% ===================================== +%% This version from old gost package. +%% FUNCTION {author.sort} { author empty$ { key empty$ @@ -1532,6 +1871,8 @@ FUNCTION {author.sort} } if$ } +%% This version from plainnat.bst +%% ===================================== FUNCTION {author.title.sort} { author empty$ @@ -1555,7 +1896,7 @@ FUNCTION {author.title.sort} if$ } -FUNCTION {presort} +FUNCTION {presort}%#1 { author.title.sort " " @@ -1571,6 +1912,7 @@ FUNCTION {presort} 'sort.key$ := } + ITERATE {presort} SORT @@ -1586,7 +1928,9 @@ FUNCTION {initialize.longest.label} #0 'longest.label.width := } -FUNCTION {longest.label.pass} +EXECUTE {initialize.longest.label} + +FUNCTION {forward.pass} { number.label int.to.str$ 'label := number.label #1 + 'number.label := label width$ longest.label.width > @@ -1597,19 +1941,19 @@ FUNCTION {longest.label.pass} if$ } -EXECUTE {initialize.longest.label} +ITERATE {forward.pass} -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]{\emph{#1}}" write$ newline$ + "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ preamble$ empty$ 'skip$ { preamble$ write$ newline$ } diff --git a/Master/texmf-dist/bibtex/bst/gost/gost780u.bst b/Master/texmf-dist/bibtex/bst/gost/gost780u.bst deleted file mode 100644 index 9e6e231db99..00000000000 --- a/Master/texmf-dist/bibtex/bst/gost/gost780u.bst +++ /dev/null @@ -1,1521 +0,0 @@ -%% -%% This is file `gost780u.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% gost.dtx (with options: `gost780u') -%% -%% Copyright 2012 Igor A. Kotelnikov. -%% Version 2012.01.21 -%% -%% Copyright 1996-2005 Maksym Polyakov. -%% Version 2005.08.12 -%% -%% 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. -%% -%% Please, send bug reports via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% polyama at yahoo dot edu <Maksym Polyakov> -%% -%% 2012.01.15 Added German, French, Italian languages, @online entry. -%% -%% 2005.08.12 Bug fix (long annote) -%% -%% 2003.06.06 contributions by Konstantin Vorontsov: -%% New ENTRY "annote" added to output annotations. -%% New commands BibUrl, BibAnnote added for customize urls and annotations. -%% -%% 2003.08.10 -%% New command BibEmph added to customize emphasizing. -%% -%% 2003.10.07 -%% Some bug fixes in names and date formatting. -%% -%% 2003.10.07 -%% Bug fix in INPROCEEDINGS. -%% -%% -%% This bibliography style attempts -%% to format bibliography according to -%% (obsolete) -%% -%% For the Ukrainian|Russian bibliographic entries -%% you need to create field -%% language = {ukrainian|russian}. -%% Default language is English. -%% Field numpages for books must contain number of pages. -%% Optional field url will format url (using hyperref, if loaded). -%% -%% See examples in gost71.pdf, gost780.pdf and gost705.pdf -%% -%% -%% -%% Requires 8-bit bibtex with switch -B and csf file supporting cyrillic. -%% bibtex8 -B -c <encoding>.csf <your_document> -%% - -ENTRY - { address - annote - author - booktitle - bookauthor - chapter - edition - editor - compiler - howpublished - institution - journal - key - month - note - number - organization - pages - numpages - publisher - school - series - title - type - volume - year - language - booklanguage - url - urldate - } - {} - { 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} -%%%{ 's := -{ swap$ - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - " " quote$ "--- " * * 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$ -%%% 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 {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.\ }"} - {"language is not defined: " language "edited by" * * warning$ "edited by"} - if$} - if$} - if$ -} - -FUNCTION {bbl.cmplr} -{ curlanguage "english" = - {"Compiler "} - { curlanguage "ukrainian" = - {"{\cyr\CYRU\cyrk\cyrl.\ }"} - { curlanguage "russian" = - {"{\cyr\CYRS\cyro\cyrs\cyrt.\ }"} - {"language is not defined: " language "compiler" * * warning$ "compiler"} - 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.}" } - { 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" = - {"{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" = - {"{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" = - {"{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" = - {"{Aus.}"} - {"language is not defined: " language * warning$ "Iss"} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.of} % { "\bblof{}" } -{ curlanguage "english" = - {"of"} - { curlanguage "ukrainian" = - {"{\cyr\cyrii\cyrz}"} - { curlanguage "russian" = - {"{\cyr\cyri\cyrz}"} - {"language is not defined: " language "of" * * warning$ "of"} - if$} - if$} - if$ -} - -FUNCTION {bbl.etal} % { "\bblof{}" } -{ curlanguage "english" = - {"et~al."} - { 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$ -} - -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } -{ curlanguage "english" = - {"Number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"\CYRN\cyro\cyrm\cyre\cyrr"} - { curlanguage "german" = - {"{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" = - {"{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" = - {"{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" = - {"{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 - {"pp."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\cyrs.}"} - { curlanguage "german" = - {"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."} - {"language is not defined: " language "p." * * warning$ "p."} - if$} - if$} - if$ -} - -FUNCTION {bbl.ppages}% { "\bblPp." } -{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or - {"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} { "Tech. Rep." } -FUNCTION {bbl.mthesis} { "Master's thesis" } -FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } - -INTEGERS { nameptr namesleft numnames } - - -FUNCTION {format.names} -{ - #1 "{vv~}{ll}{~jj}{,~f.}" format.name$ -} - - -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$ - { numpages empty$ - { "" } - { numpages 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$ - {format.authors.after output - new.semicolumn } - if$ -} -FUNCTION {bookauthor.after} -{ - bookauthor empty$ - 'skip$ - {format.bookauthors.after output - new.semicolumn } - 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$ - { "" } - { - "\BibUrl{ " url * "}" * - urldate empty$ - { "" } - { " (" bbl.urldate * urldate * ")" * } - if$ * - } - if$ -} - -FUNCTION {format.annote} -{ annote empty$ - { "" } -{ after.sentence 'output.state := - "\BibAnnote{" annote add.period$ * "}" * -} - if$ -} - -FUNCTION {article} -{ output.bibitem - author.before - format.title "title" output.check - new.slash - author.after - new.dblslash - journal emphasize "journal" output.check - 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.url output - format.annote output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - 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.url output - format.annote output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - author.before - new.sentence - format.title "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.url output - format.annote output - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - author.before - new.sentence - format.title "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.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.url output - format.annote output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle "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.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.url output - format.annote output - fin.entry -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - new.sentence - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - author.before - new.sentence - format.title "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.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.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.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 {acmcs} {"ACM Computing Surveys"} - -MACRO {acta} {"Acta Informatica"} - -MACRO {cacm} {"Communications of the ACM"} - -MACRO {ibmjrd} {"IBM Journal of Research and Development"} - -MACRO {ibmsj} {"IBM Systems Journal"} - -MACRO {ieeese} {"IEEE Transactions on Software Engineering"} - -MACRO {ieeetc} {"IEEE Transactions on Computers"} - -MACRO {ieeetcad} - {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} - -MACRO {ipl} {"Information Processing Letters"} - -MACRO {jacm} {"Journal of the ACM"} - -MACRO {jcss} {"Journal of Computer and System Sciences"} - -MACRO {scp} {"Science of Computer Programming"} - -MACRO {sicomp} {"SIAM Journal on Computing"} - -MACRO {tocs} {"ACM Transactions on Computer Systems"} - -MACRO {tods} {"ACM Transactions on Database Systems"} - -MACRO {tog} {"ACM Transactions on Graphics"} - -MACRO {toms} {"ACM Transactions on Mathematical Software"} - -MACRO {toois} {"ACM Transactions on Office Information Systems"} - -MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} - -MACRO {tcs} {"Theoretical Computer Science"} - -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*{\url}[1]{{\small #1}}" write$ newline$ - "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ - "\providecommand{\BibAnnote}[1]{}" write$ newline$ - "\providecommand*{\BibEmph}[1]{\emph{#1}}" 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 `gost780u.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/ugost2003.bst b/Master/texmf-dist/bibtex/bst/gost/ugost2003.bst new file mode 100644 index 00000000000..59786b4039b --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2003.bst @@ -0,0 +1,1930 @@ +%% +%% This is file `ugost2003.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,utf8,strict,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 com <Maksym Polyakov> +%% + + + +%% +%% This bibstyle attempts to format bibliography according to +%% GOST 7.80-2000 for bibliographic records. + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + 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$ + " " quote$ "--- " * * 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} +{ duplicate$ empty$ + { pop$ "" } + { "[" swap$ * "]" * } + if$ +} + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" swap$ * ")" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed.\ by"} + { curlanguage "ukrainian" = + {"Під ред."} + { curlanguage "russian" = + {"Под ред."} + { curlanguage "german" = + { "ed." } + {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + { "Compiler"} + { curlanguage "german" = + { "Hrsg." } + { curlanguage "ukrainian" = + {"{Укл.}"} + { curlanguage "russian" = + {"{Сост.}"} + {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{вид.}"} + { curlanguage "russian" = + {"{изд.}"} + { 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 + { "Том" } + { curlanguage "german" = + {"{Band}"} %%%% { "Volumen" } + {"language is not defined: " language "vvolume" * * warning$ "Volume"} + if$} + if$} +if$} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Т."} + { curlanguage "german" = + {"{Bd.}"} %%%% { "Vol." } + {"language is not defined: " language "vvol" * * warning$ "Vol."} + if$} + if$} +if$} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"Випуск"} + { curlanguage "russian" = + {"Выпуск"} + { curlanguage "german" = + {"{Heft}"} %%%% { "Ausgabe" } + {"language is not defined: " language "iissue" * * warning$ "Issue"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"Вип."} + { curlanguage "russian" = + {"Вып."} + { curlanguage "german" = + {"{H.}"} + {"language is not defined: " language "iiss" * * warning$ "Iss."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "german" = + { "von" } + { curlanguage "ukrainian" = + { "{із}" } + { curlanguage "russian" = + { "{из}" } + {"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" = + {"{та~ін.}"} + { curlanguage "russian" = + {"и~др."} + {"language is not defined: " language "et~al" * * warning$ "et~al."} + if$} + if$} + if$} +if$} + + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{Номер}" } + { curlanguage "german" = + {"{Heft}"} %%% { "Anzahl" } + {"language is not defined: " language "nnumber" * * warning$ "Number"} + if$} + if$} +if$} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{номер}"} + { 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 + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nr" * * warning$ "no."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nnr" * * warning$ "No."} + if$} + if$} +if$} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = curlanguage "german" = or + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{в}" } + {"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 + { "{В}" } + {"language is not defined: " language "iin" * * warning$ "In"} + if$} +if$} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} %%% {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "pages" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "page" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} %%%% { "Pp." } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppages" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{дата звернення}" } + { curlanguage "russian" = + { "{дата обращения}" } + { curlanguage "german" = + { "{online; abgerufen}" } + { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{Отчет}" } + { "language is not defined: " language "techrep" * * warning$ "Rep." } + if$} + if$} +if$} + +FUNCTION {bbl.mthesis} +{ curlanguage "english" = + { "Master's thesis" } + { curlanguage "german" = + { "Diss.~Mag." } + { curlanguage "russian" = + { "{Квалификационная работа магистра}" } + { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + if$} + if$} +if$} + +FUNCTION {bbl.phdthesis} +{ curlanguage "english" = + { "Ph.\,D. thesis" } + { curlanguage "german" = + { "Diss.~Ph.\,D." } + { curlanguage "russian" = + { "{Дисс\ldots\ кандидата наук}" } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ curlanguage "english" = + { "Dr.\,Sci. dissertation" } + { curlanguage "german" = + { "Diss.~Dr." } + { curlanguage "russian" = + { "{Дисс\ldots\ доктора наук}" } + { "language is not defined: " language "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{Б.\ м.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{Б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{Текст}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{Электронный ресурс}" } + { curlanguage "ukrainian" = + { "{Електронний ресурс}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "{рук.}" } + { curlanguage "ukrainian" = + { "{рук.}" } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{исполн.}" } + { curlanguage "ukrainian" = + { "{виконавець}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +if$} + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ + #1 "{vv~}{ll}{~jj}{,~ff}" format.name$ +} + + +FUNCTION {format.names.rev} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff}{~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 enclose.square.brackets * } + { ", " * 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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author format.names.rev * } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr "\ " * compiler format.names.rev * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title } + 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} +{ + address empty$ + { + bbl.nnoaddress + publisher empty$ + { "~: " * bbl.nopublisher * enclose.square.brackets } + { enclose.square.brackets "~: " * publisher * } + if$ + } + { + address output + new.column + publisher empty$ + { bbl.nopublisher enclose.square.brackets } + { publisher } + if$ + } + if$ + output +} + + + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem" write$ + cite$ bracify write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * 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 " " * bbl.edition * } + { convert.edition " " * 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$ + { numpages empty$ + { "" } + { numpages 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 + } + if$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {format.authors.after output + new.semicolumn } + if$ +} + +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} +{ duplicate$ empty$ + 'skip$ + { medium empty$ + { " " * bbl.medium enclose.square.brackets * } + { " " * medium enclose.square.brackets * } +%% { bbl.medium enclose.square.brackets * } +%% { medium enclose.square.brackets * } + if$ + } + 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 add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + 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 + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 := +} + +EXECUTE {initialize.longest.label} + +FUNCTION {forward.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$ +} + +ITERATE {forward.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$ + 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 `ugost2003.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/ugost2003s.bst b/Master/texmf-dist/bibtex/bst/gost/ugost2003s.bst new file mode 100644 index 00000000000..b85d786eb30 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2003s.bst @@ -0,0 +1,2053 @@ +%% +%% This is file `ugost2003s.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,utf8,strict,eprint,sort') +%% +%% 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 com <Maksym Polyakov> +%% + + + +%% +%% This bibstyle attempts to format bibliography according to +%% GOST 7.80-2000 for bibliographic records. + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + 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$ + " " quote$ "--- " * * 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$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} +{ duplicate$ empty$ + { pop$ "" } + { "[" swap$ * "]" * } + if$ +} + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" swap$ * ")" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed.\ by"} + { curlanguage "ukrainian" = + {"Під ред."} + { curlanguage "russian" = + {"Под ред."} + { curlanguage "german" = + { "ed." } + {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + { "Compiler"} + { curlanguage "german" = + { "Hrsg." } + { curlanguage "ukrainian" = + {"{Укл.}"} + { curlanguage "russian" = + {"{Сост.}"} + {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{вид.}"} + { curlanguage "russian" = + {"{изд.}"} + { 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 + { "Том" } + { curlanguage "german" = + {"{Band}"} %%%% { "Volumen" } + {"language is not defined: " language "vvolume" * * warning$ "Volume"} + if$} + if$} +if$} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Т."} + { curlanguage "german" = + {"{Bd.}"} %%%% { "Vol." } + {"language is not defined: " language "vvol" * * warning$ "Vol."} + if$} + if$} +if$} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"Випуск"} + { curlanguage "russian" = + {"Выпуск"} + { curlanguage "german" = + {"{Heft}"} %%%% { "Ausgabe" } + {"language is not defined: " language "iissue" * * warning$ "Issue"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"Вип."} + { curlanguage "russian" = + {"Вып."} + { curlanguage "german" = + {"{H.}"} + {"language is not defined: " language "iiss" * * warning$ "Iss."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "german" = + { "von" } + { curlanguage "ukrainian" = + { "{із}" } + { curlanguage "russian" = + { "{из}" } + {"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" = + {"{та~ін.}"} + { curlanguage "russian" = + {"и~др."} + {"language is not defined: " language "et~al" * * warning$ "et~al."} + if$} + if$} + if$} +if$} + + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{Номер}" } + { curlanguage "german" = + {"{Heft}"} %%% { "Anzahl" } + {"language is not defined: " language "nnumber" * * warning$ "Number"} + if$} + if$} +if$} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{номер}"} + { 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 + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nr" * * warning$ "no."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nnr" * * warning$ "No."} + if$} + if$} +if$} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = curlanguage "german" = or + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{в}" } + {"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 + { "{В}" } + {"language is not defined: " language "iin" * * warning$ "In"} + if$} +if$} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} %%% {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "pages" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "page" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} %%%% { "Pp." } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppages" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{дата звернення}" } + { curlanguage "russian" = + { "{дата обращения}" } + { curlanguage "german" = + { "{online; abgerufen}" } + { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{Отчет}" } + { "language is not defined: " language "techrep" * * warning$ "Rep." } + if$} + if$} +if$} + +FUNCTION {bbl.mthesis} +{ curlanguage "english" = + { "Master's thesis" } + { curlanguage "german" = + { "Diss.~Mag." } + { curlanguage "russian" = + { "{Квалификационная работа магистра}" } + { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + if$} + if$} +if$} + +FUNCTION {bbl.phdthesis} +{ curlanguage "english" = + { "Ph.\,D. thesis" } + { curlanguage "german" = + { "Diss.~Ph.\,D." } + { curlanguage "russian" = + { "{Дисс\ldots\ кандидата наук}" } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ curlanguage "english" = + { "Dr.\,Sci. dissertation" } + { curlanguage "german" = + { "Diss.~Dr." } + { curlanguage "russian" = + { "{Дисс\ldots\ доктора наук}" } + { "language is not defined: " language "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{Б.\ м.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{Б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{Текст}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{Электронный ресурс}" } + { curlanguage "ukrainian" = + { "{Електронний ресурс}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "{рук.}" } + { curlanguage "ukrainian" = + { "{рук.}" } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{исполн.}" } + { curlanguage "ukrainian" = + { "{виконавець}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +if$} + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ + #1 "{vv~}{ll}{~jj}{,~ff}" format.name$ +} + + +FUNCTION {format.names.rev} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff}{~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 enclose.square.brackets * } + { ", " * 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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author format.names.rev * } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr "\ " * compiler format.names.rev * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title } + 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} +{ + address empty$ + { + bbl.nnoaddress + publisher empty$ + { "~: " * bbl.nopublisher * enclose.square.brackets } + { enclose.square.brackets "~: " * publisher * } + if$ + } + { + address output + new.column + publisher empty$ + { bbl.nopublisher enclose.square.brackets } + { publisher } + if$ + } + if$ + output +} + + + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem" write$ + cite$ bracify write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * 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 " " * bbl.edition * } + { convert.edition " " * 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$ + { numpages empty$ + { "" } + { numpages 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 + } + if$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {format.authors.after output + new.semicolumn } + if$ +} + +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} +{ duplicate$ empty$ + 'skip$ + { medium empty$ + { " " * bbl.medium enclose.square.brackets * } + { " " * medium enclose.square.brackets * } +%% { bbl.medium enclose.square.brackets * } +%% { medium enclose.square.brackets * } + if$ + } + 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 add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + 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 + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 + + +FUNCTION {sortify} +{ purify$ +} + +%% ===================================== +%% This version from old Gost package +%%<*!natbib> +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 + { "et al" * } + %{ bbl.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +%%</!natbib> +%% This version from plainnat.bst +%% It ignores second and subsequent authors but include year. +%%<*natbib> +%%</natbib> +%% ===================================== + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word % Removes "The " if any + chop.word % Removes "An " if any + chop.word % Removes "A " if any + sortify + #1 global.max$ substring$ +} + +%% ===================================== +%% This version from old gost package. +%% +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} +%% This version from plainnat.bst +%% ===================================== + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {presort}%#1 +{ + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + + +ITERATE {presort} + +SORT + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +EXECUTE {initialize.longest.label} + +FUNCTION {forward.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$ +} + +ITERATE {forward.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$ + 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 `ugost2003s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/ugost2008.bst b/Master/texmf-dist/bibtex/bst/gost/ugost2008.bst new file mode 100644 index 00000000000..920ac7f7ec6 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2008.bst @@ -0,0 +1,1941 @@ +%% +%% This is file `ugost2008.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,utf8,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 com <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 + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" swap$ * ")" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed.\ by"} + { curlanguage "ukrainian" = + {"Під ред."} + { curlanguage "russian" = + {"Под ред."} + { curlanguage "german" = + { "ed." } + {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + { "Compiler"} + { curlanguage "german" = + { "Hrsg." } + { curlanguage "ukrainian" = + {"{Укл.}"} + { curlanguage "russian" = + {"{Сост.}"} + {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{вид.}"} + { curlanguage "russian" = + {"{изд.}"} + { 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 + { "Том" } + { curlanguage "german" = + {"{Band}"} %%%% { "Volumen" } + {"language is not defined: " language "vvolume" * * warning$ "Volume"} + if$} + if$} +if$} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Т."} + { curlanguage "german" = + {"{Bd.}"} %%%% { "Vol." } + {"language is not defined: " language "vvol" * * warning$ "Vol."} + if$} + if$} +if$} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"Випуск"} + { curlanguage "russian" = + {"Выпуск"} + { curlanguage "german" = + {"{Heft}"} %%%% { "Ausgabe" } + {"language is not defined: " language "iissue" * * warning$ "Issue"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"Вип."} + { curlanguage "russian" = + {"Вып."} + { curlanguage "german" = + {"{H.}"} + {"language is not defined: " language "iiss" * * warning$ "Iss."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "german" = + { "von" } + { curlanguage "ukrainian" = + { "{із}" } + { curlanguage "russian" = + { "{из}" } + {"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" = + {"{та~ін.}"} + { curlanguage "russian" = + {"и~др."} + {"language is not defined: " language "et~al" * * warning$ "et~al."} + if$} + if$} + if$} +if$} + + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{Номер}" } + { curlanguage "german" = + {"{Heft}"} %%% { "Anzahl" } + {"language is not defined: " language "nnumber" * * warning$ "Number"} + if$} + if$} +if$} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{номер}"} + { 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 + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nr" * * warning$ "no."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nnr" * * warning$ "No."} + if$} + if$} +if$} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = curlanguage "german" = or + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{в}" } + {"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 + { "{В}" } + {"language is not defined: " language "iin" * * warning$ "In"} + if$} +if$} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} %%% {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "pages" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "page" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} %%%% { "Pp." } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppages" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{дата звернення}" } + { curlanguage "russian" = + { "{дата обращения}" } + { curlanguage "german" = + { "{online; abgerufen}" } + { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{Отчет}" } + { "language is not defined: " language "techrep" * * warning$ "Rep." } + if$} + if$} +if$} + +FUNCTION {bbl.mthesis} +{ curlanguage "english" = + { "Master's thesis" } + { curlanguage "german" = + { "Diss.~Mag." } + { curlanguage "russian" = + { "{Квалификационная работа магистра}" } + { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + if$} + if$} +if$} + +FUNCTION {bbl.phdthesis} +{ curlanguage "english" = + { "Ph.\,D. thesis" } + { curlanguage "german" = + { "Diss.~Ph.\,D." } + { curlanguage "russian" = + { "{Дисс\ldots\ кандидата наук}" } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ curlanguage "english" = + { "Dr.\,Sci. dissertation" } + { curlanguage "german" = + { "Diss.~Dr." } + { curlanguage "russian" = + { "{Дисс\ldots\ доктора наук}" } + { "language is not defined: " language "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{Б.\ м.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{Б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{Текст}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{Электронный ресурс}" } + { curlanguage "ukrainian" = + { "{Електронний ресурс}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "{рук.}" } + { curlanguage "ukrainian" = + { "{рук.}" } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{исполн.}" } + { curlanguage "ukrainian" = + { "{виконавець}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +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 := + 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 + "{ff}{~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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author format.names.rev * } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr "\ " * compiler format.names.rev * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". \BibDash " month * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output +} + + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem" write$ + cite$ bracify write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * 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 " " * bbl.edition * } + { convert.edition " " * 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$ + { numpages empty$ + { "" } + { numpages 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 + } + if$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +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$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} { } + + + +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 add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + 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 + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 := +} + +EXECUTE {initialize.longest.label} + +FUNCTION {forward.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$ +} + +ITERATE {forward.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" write$ newline$ + "\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 `ugost2008.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/ugost2008l.bst b/Master/texmf-dist/bibtex/bst/gost/ugost2008l.bst new file mode 100644 index 00000000000..c07b6cc6034 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2008l.bst @@ -0,0 +1,1929 @@ +%% +%% This is file `ugost2008l.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,utf8,modern,eprint,long') +%% +%% 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 com <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 + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" swap$ * ")" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed.\ by"} + { curlanguage "ukrainian" = + {"Під ред."} + { curlanguage "russian" = + {"Под ред."} + { curlanguage "german" = + { "ed." } + {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + { "Compiler"} + { curlanguage "german" = + { "Hrsg." } + { curlanguage "ukrainian" = + {"{Укл.}"} + { curlanguage "russian" = + {"{Сост.}"} + {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{вид.}"} + { curlanguage "russian" = + {"{изд.}"} + { 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 + { "Том" } + { curlanguage "german" = + {"{Band}"} %%%% { "Volumen" } + {"language is not defined: " language "vvolume" * * warning$ "Volume"} + if$} + if$} +if$} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Т."} + { curlanguage "german" = + {"{Bd.}"} %%%% { "Vol." } + {"language is not defined: " language "vvol" * * warning$ "Vol."} + if$} + if$} +if$} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"Випуск"} + { curlanguage "russian" = + {"Выпуск"} + { curlanguage "german" = + {"{Heft}"} %%%% { "Ausgabe" } + {"language is not defined: " language "iissue" * * warning$ "Issue"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"Вип."} + { curlanguage "russian" = + {"Вып."} + { curlanguage "german" = + {"{H.}"} + {"language is not defined: " language "iiss" * * warning$ "Iss."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "german" = + { "von" } + { curlanguage "ukrainian" = + { "{із}" } + { curlanguage "russian" = + { "{из}" } + {"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" = + {"{та~ін.}"} + { curlanguage "russian" = + {"и~др."} + {"language is not defined: " language "et~al" * * warning$ "et~al."} + if$} + if$} + if$} +if$} + + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{Номер}" } + { curlanguage "german" = + {"{Heft}"} %%% { "Anzahl" } + {"language is not defined: " language "nnumber" * * warning$ "Number"} + if$} + if$} +if$} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{номер}"} + { 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 + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nr" * * warning$ "no."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nnr" * * warning$ "No."} + if$} + if$} +if$} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = curlanguage "german" = or + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{в}" } + {"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 + { "{В}" } + {"language is not defined: " language "iin" * * warning$ "In"} + if$} +if$} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} %%% {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "pages" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "page" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} %%%% { "Pp." } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppages" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{дата звернення}" } + { curlanguage "russian" = + { "{дата обращения}" } + { curlanguage "german" = + { "{online; abgerufen}" } + { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{Отчет}" } + { "language is not defined: " language "techrep" * * warning$ "Rep." } + if$} + if$} +if$} + +FUNCTION {bbl.mthesis} +{ curlanguage "english" = + { "Master's thesis" } + { curlanguage "german" = + { "Diss.~Mag." } + { curlanguage "russian" = + { "{Квалификационная работа магистра}" } + { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + if$} + if$} +if$} + +FUNCTION {bbl.phdthesis} +{ curlanguage "english" = + { "Ph.\,D. thesis" } + { curlanguage "german" = + { "Diss.~Ph.\,D." } + { curlanguage "russian" = + { "{Дисс\ldots\ кандидата наук}" } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ curlanguage "english" = + { "Dr.\,Sci. dissertation" } + { curlanguage "german" = + { "Diss.~Dr." } + { curlanguage "russian" = + { "{Дисс\ldots\ доктора наук}" } + { "language is not defined: " language "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{Б.\ м.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{Б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{Текст}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{Электронный ресурс}" } + { curlanguage "ukrainian" = + { "{Електронний ресурс}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "{рук.}" } + { curlanguage "ukrainian" = + { "{рук.}" } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{исполн.}" } + { curlanguage "ukrainian" = + { "{виконавець}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +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 := + 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 + "{ff}{~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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author format.names.rev * } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr "\ " * compiler format.names.rev * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". \BibDash " month * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output +} + + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem" write$ + cite$ bracify write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * 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 " " * bbl.edition * } + { convert.edition " " * 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$ + { numpages empty$ + { "" } + { numpages 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 + } + if$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + { format.authors output + new.sentence + } + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +FUNCTION {author.after} { } + +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} { } + + + +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 add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + 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 + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 := +} + +EXECUTE {initialize.longest.label} + +FUNCTION {forward.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$ +} + +ITERATE {forward.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" write$ newline$ + "\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 `ugost2008l.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/ugost2008ls.bst b/Master/texmf-dist/bibtex/bst/gost/ugost2008ls.bst new file mode 100644 index 00000000000..e07dc41cc82 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2008ls.bst @@ -0,0 +1,2064 @@ +%% +%% This is file `ugost2008ls.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,utf8,modern,eprint,longlist,sort') +%% +%% 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 com <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 + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + 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$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" swap$ * ")" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed.\ by"} + { curlanguage "ukrainian" = + {"Під ред."} + { curlanguage "russian" = + {"Под ред."} + { curlanguage "german" = + { "ed." } + {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + { "Compiler"} + { curlanguage "german" = + { "Hrsg." } + { curlanguage "ukrainian" = + {"{Укл.}"} + { curlanguage "russian" = + {"{Сост.}"} + {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{вид.}"} + { curlanguage "russian" = + {"{изд.}"} + { 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 + { "Том" } + { curlanguage "german" = + {"{Band}"} %%%% { "Volumen" } + {"language is not defined: " language "vvolume" * * warning$ "Volume"} + if$} + if$} +if$} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Т."} + { curlanguage "german" = + {"{Bd.}"} %%%% { "Vol." } + {"language is not defined: " language "vvol" * * warning$ "Vol."} + if$} + if$} +if$} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"Випуск"} + { curlanguage "russian" = + {"Выпуск"} + { curlanguage "german" = + {"{Heft}"} %%%% { "Ausgabe" } + {"language is not defined: " language "iissue" * * warning$ "Issue"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"Вип."} + { curlanguage "russian" = + {"Вып."} + { curlanguage "german" = + {"{H.}"} + {"language is not defined: " language "iiss" * * warning$ "Iss."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "german" = + { "von" } + { curlanguage "ukrainian" = + { "{із}" } + { curlanguage "russian" = + { "{из}" } + {"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" = + {"{та~ін.}"} + { curlanguage "russian" = + {"и~др."} + {"language is not defined: " language "et~al" * * warning$ "et~al."} + if$} + if$} + if$} +if$} + + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{Номер}" } + { curlanguage "german" = + {"{Heft}"} %%% { "Anzahl" } + {"language is not defined: " language "nnumber" * * warning$ "Number"} + if$} + if$} +if$} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{номер}"} + { 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 + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nr" * * warning$ "no."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nnr" * * warning$ "No."} + if$} + if$} +if$} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = curlanguage "german" = or + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{в}" } + {"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 + { "{В}" } + {"language is not defined: " language "iin" * * warning$ "In"} + if$} +if$} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} %%% {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "pages" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "page" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} %%%% { "Pp." } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppages" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{дата звернення}" } + { curlanguage "russian" = + { "{дата обращения}" } + { curlanguage "german" = + { "{online; abgerufen}" } + { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{Отчет}" } + { "language is not defined: " language "techrep" * * warning$ "Rep." } + if$} + if$} +if$} + +FUNCTION {bbl.mthesis} +{ curlanguage "english" = + { "Master's thesis" } + { curlanguage "german" = + { "Diss.~Mag." } + { curlanguage "russian" = + { "{Квалификационная работа магистра}" } + { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + if$} + if$} +if$} + +FUNCTION {bbl.phdthesis} +{ curlanguage "english" = + { "Ph.\,D. thesis" } + { curlanguage "german" = + { "Diss.~Ph.\,D." } + { curlanguage "russian" = + { "{Дисс\ldots\ кандидата наук}" } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ curlanguage "english" = + { "Dr.\,Sci. dissertation" } + { curlanguage "german" = + { "Diss.~Dr." } + { curlanguage "russian" = + { "{Дисс\ldots\ доктора наук}" } + { "language is not defined: " language "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{Б.\ м.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{Б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{Текст}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{Электронный ресурс}" } + { curlanguage "ukrainian" = + { "{Електронний ресурс}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "{рук.}" } + { curlanguage "ukrainian" = + { "{рук.}" } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{исполн.}" } + { curlanguage "ukrainian" = + { "{виконавець}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +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 := + 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 + "{ff}{~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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author format.names.rev * } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr "\ " * compiler format.names.rev * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". \BibDash " month * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output +} + + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem" write$ + cite$ bracify write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * 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 " " * bbl.edition * } + { convert.edition " " * 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$ + { numpages empty$ + { "" } + { numpages 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 + } + if$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +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$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} { } + + + +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 add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + 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 + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 + + +FUNCTION {sortify} +{ purify$ +} + +%% ===================================== +%% This version from old Gost package +%%<*!natbib> +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 + { "et al" * } + %{ bbl.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +%%</!natbib> +%% This version from plainnat.bst +%% It ignores second and subsequent authors but include year. +%%<*natbib> +%%</natbib> +%% ===================================== + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word % Removes "The " if any + chop.word % Removes "An " if any + chop.word % Removes "A " if any + sortify + #1 global.max$ substring$ +} + +%% ===================================== +%% This version from old gost package. +%% +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} +%% This version from plainnat.bst +%% ===================================== + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {presort}%#1 +{ + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + + +ITERATE {presort} + +SORT + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +EXECUTE {initialize.longest.label} + +FUNCTION {forward.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$ +} + +ITERATE {forward.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" write$ newline$ + "\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 `ugost2008ls.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/ugost2008n.bst b/Master/texmf-dist/bibtex/bst/gost/ugost2008n.bst new file mode 100644 index 00000000000..a119366d6ee --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2008n.bst @@ -0,0 +1,2281 @@ +%% +%% This is file `ugost2008n.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,utf8,modern,natbib,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 com <Maksym Polyakov> +%% + + + +%% +%% This bibstyle attempts to format bibliography according to +%% GOST 7.0.5-2008 for bibliographic reference. +%%------------------------------------------------------------------- +%% This is an author-year citation style bibliography. +%% It requires a special package file to function properly +%% such as natbib.sty by Patrick W. Daly. +%% The form of the \bibitem entries is +%% \bibitem[Jones et al.(1990)]{key}... +%% \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... +%% where the label part (in brackets) consists of the author names, +%% as they should appear in the citation, with the year in parentheses following. +%% There must be no space before the opening parenthesis! +%% A full list of authors may also follow the year. +%% In natbib.sty, it is possible to define the type of enclosures that is +%% really wanted (brackets or parentheses), but in either case, there must +%% be parentheses in the label. +%% The \cite command functions as follows: +%% \citet{key} => Jones et al. (1990) +%% \citet*{key} => Jones, Baker, and Smith (1990) +%% \citep{key} => (Jones et al., 1990) +%% \citep*{key} => (Jones, Baker, and Smith, 1990) +%% \citep[chap. 2]{key} => (Jones et al., 1990, chap. 2) +%% \citep[e.g.][]{key} => (e.g. Jones et al., 1990) +%% \citep[e.g.][p. 32]{key} => (e.g. Jones et al., p. 32) +%% \citeauthor{key} => Jones et al. +%% \citeauthor*{key} => Jones, Baker, and Smith +%% \citeyear{key} => 1990 +%%--------------------------------------------------------------------- + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + eprint + } + {} + { label extra.label sort.label short.list } + +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$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" swap$ * ")" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed.\ by"} + { curlanguage "ukrainian" = + {"Під ред."} + { curlanguage "russian" = + {"Под ред."} + { curlanguage "german" = + { "ed." } + {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + { "Compiler"} + { curlanguage "german" = + { "Hrsg." } + { curlanguage "ukrainian" = + {"{Укл.}"} + { curlanguage "russian" = + {"{Сост.}"} + {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{вид.}"} + { curlanguage "russian" = + {"{изд.}"} + { 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 + { "Том" } + { curlanguage "german" = + {"{Band}"} %%%% { "Volumen" } + {"language is not defined: " language "vvolume" * * warning$ "Volume"} + if$} + if$} +if$} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Т."} + { curlanguage "german" = + {"{Bd.}"} %%%% { "Vol." } + {"language is not defined: " language "vvol" * * warning$ "Vol."} + if$} + if$} +if$} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"Випуск"} + { curlanguage "russian" = + {"Выпуск"} + { curlanguage "german" = + {"{Heft}"} %%%% { "Ausgabe" } + {"language is not defined: " language "iissue" * * warning$ "Issue"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"Вип."} + { curlanguage "russian" = + {"Вып."} + { curlanguage "german" = + {"{H.}"} + {"language is not defined: " language "iiss" * * warning$ "Iss."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "german" = + { "von" } + { curlanguage "ukrainian" = + { "{із}" } + { curlanguage "russian" = + { "{из}" } + {"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" = + {"{та~ін.}"} + { curlanguage "russian" = + {"и~др."} + {"language is not defined: " language "et~al" * * warning$ "et~al."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.and} % { "\bbland{}" } +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"і"} + { curlanguage "russian" = + {"и"} + {"language is not defined: " language "and" * * warning$ "and"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{Номер}" } + { curlanguage "german" = + {"{Heft}"} %%% { "Anzahl" } + {"language is not defined: " language "nnumber" * * warning$ "Number"} + if$} + if$} +if$} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{номер}"} + { 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 + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nr" * * warning$ "no."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nnr" * * warning$ "No."} + if$} + if$} +if$} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = curlanguage "german" = or + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{в}" } + {"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 + { "{В}" } + {"language is not defined: " language "iin" * * warning$ "In"} + if$} +if$} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} %%% {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "pages" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "page" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} %%%% { "Pp." } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppages" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{дата звернення}" } + { curlanguage "russian" = + { "{дата обращения}" } + { curlanguage "german" = + { "{online; abgerufen}" } + { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{Отчет}" } + { "language is not defined: " language "techrep" * * warning$ "Rep." } + if$} + if$} +if$} + +FUNCTION {bbl.mthesis} +{ curlanguage "english" = + { "Master's thesis" } + { curlanguage "german" = + { "Diss.~Mag." } + { curlanguage "russian" = + { "{Квалификационная работа магистра}" } + { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + if$} + if$} +if$} + +FUNCTION {bbl.phdthesis} +{ curlanguage "english" = + { "Ph.\,D. thesis" } + { curlanguage "german" = + { "Diss.~Ph.\,D." } + { curlanguage "russian" = + { "{Дисс\ldots\ кандидата наук}" } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ curlanguage "english" = + { "Dr.\,Sci. dissertation" } + { curlanguage "german" = + { "Diss.~Dr." } + { curlanguage "russian" = + { "{Дисс\ldots\ доктора наук}" } + { "language is not defined: " language "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{Б.\ м.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{Б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{Текст}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{Электронный ресурс}" } + { curlanguage "ukrainian" = + { "{Електронний ресурс}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "{рук.}" } + { curlanguage "ukrainian" = + { "{рук.}" } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{исполн.}" } + { curlanguage "ukrainian" = + { "{виконавець}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +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 := + 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.lab.names} +{ 's := + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + %{ pop$ " et~al." * } + { pop$ " " bbl.etal * * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + %{ " et~al." * } + { " " bbl.etal * * } + %{ " and " * s #2 "{vv~}{ll}" format.name$ * } + { " " bbl.and " " * * * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.names.rev} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff}{~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.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize} + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + %'key %% causes lost of year + { "{}" key * } %% Bug in bibtex8 ?? + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + + +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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author format.names.rev * } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr "\ " * compiler format.names.rev * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". \BibDash " month * * } + if$ + } + if$ + extra.label * % new in v.1.2 +} + +FUNCTION {output.address.publisher} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output +} + + +FUNCTION {format.full.names} +{'s := + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + curlanguage "english" = + and + { "," * } + 'skip$ + if$ + t "others" = + %t "~others" = + %or + %{ " et~al." * } + { " " bbl.etal * * } + %{ " and " * t * } + { " " bbl.and " " * * * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "]{" * write$ + cite$ write$ + "}" write$ + language empty$ + { "english" 'curlanguage := } + {language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * write$ + newline$ + "" + before.all 'output.state := +} +%% author.key.label +%% year parenthesify * +%% "; lbl:" label * * +%% "; mfn:" make.full.names * * + +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 " " * bbl.edition * } + { convert.edition " " * 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$ + { numpages empty$ + { "" } + { numpages 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 + } + if$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +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$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} { } + + + +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 + author format.key output + format.title add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + author format.key output + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + author format.key output + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + author format.key output + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + author format.key output + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + editor format.key output + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + author format.key output + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + author format.key output + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + author format.key output + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.block + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + title format.key output + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + title format.key output + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 + + +FUNCTION {sortify} +{ purify$ +} + + +INTEGERS { seq.num } + +FUNCTION {init.seq} +{ #0 'seq.num :=} + +EXECUTE {init.seq} + +FUNCTION {int.to.fix} +{ "000000000" swap$ int.to.str$ * + #-1 #10 substring$ +} + +FUNCTION {presort}%#3 +{ + calc.label % computes label + label sortify % initiates sort.label + " " + * + seq.num #1 + 'seq.num := % advance seq.num + seq.num int.to.fix % prepend seq.num with 0s + 'sort.label := % set sort.label to seq.num + sort.label * % append seq.num to label + #1 entry.max$ substring$ % cut if too long + 'sort.key$ := % set sort.key$ +} + +ITERATE {presort} + +SORT + + +STRINGS { longest.label last.label next.extra } + +INTEGERS { number.label longest.label.width last.extra.num } + +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 := +} + +EXECUTE {initialize.longest.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 := +} + +ITERATE {forward.pass} + +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 := +} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label 'sort.key$ := +} + +ITERATE {bib.sort.order} + +SORT + +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" write$ newline$ + "\cyrdash\hskip.2em\ignorespaces}" write$ newline$ + "\providecommand{\natexlab}[1]{#1}" 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 `ugost2008n.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/ugost2008ns.bst b/Master/texmf-dist/bibtex/bst/gost/ugost2008ns.bst new file mode 100644 index 00000000000..698f2c97c03 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2008ns.bst @@ -0,0 +1,2415 @@ +%% +%% This is file `ugost2008ns.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,utf8,modern,natbib,eprint,sort') +%% +%% 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 com <Maksym Polyakov> +%% + + + +%% +%% This bibstyle attempts to format bibliography according to +%% GOST 7.0.5-2008 for bibliographic reference. +%%------------------------------------------------------------------- +%% This is an author-year citation style bibliography. +%% It requires a special package file to function properly +%% such as natbib.sty by Patrick W. Daly. +%% The form of the \bibitem entries is +%% \bibitem[Jones et al.(1990)]{key}... +%% \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... +%% where the label part (in brackets) consists of the author names, +%% as they should appear in the citation, with the year in parentheses following. +%% There must be no space before the opening parenthesis! +%% A full list of authors may also follow the year. +%% In natbib.sty, it is possible to define the type of enclosures that is +%% really wanted (brackets or parentheses), but in either case, there must +%% be parentheses in the label. +%% The \cite command functions as follows: +%% \citet{key} => Jones et al. (1990) +%% \citet*{key} => Jones, Baker, and Smith (1990) +%% \citep{key} => (Jones et al., 1990) +%% \citep*{key} => (Jones, Baker, and Smith, 1990) +%% \citep[chap. 2]{key} => (Jones et al., 1990, chap. 2) +%% \citep[e.g.][]{key} => (e.g. Jones et al., 1990) +%% \citep[e.g.][p. 32]{key} => (e.g. Jones et al., p. 32) +%% \citeauthor{key} => Jones et al. +%% \citeauthor*{key} => Jones, Baker, and Smith +%% \citeyear{key} => 1990 +%%--------------------------------------------------------------------- + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + eprint + } + {} + { label extra.label sort.label short.list } + +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$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" swap$ * ")" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed.\ by"} + { curlanguage "ukrainian" = + {"Під ред."} + { curlanguage "russian" = + {"Под ред."} + { curlanguage "german" = + { "ed." } + {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + { "Compiler"} + { curlanguage "german" = + { "Hrsg." } + { curlanguage "ukrainian" = + {"{Укл.}"} + { curlanguage "russian" = + {"{Сост.}"} + {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{вид.}"} + { curlanguage "russian" = + {"{изд.}"} + { 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 + { "Том" } + { curlanguage "german" = + {"{Band}"} %%%% { "Volumen" } + {"language is not defined: " language "vvolume" * * warning$ "Volume"} + if$} + if$} +if$} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Т."} + { curlanguage "german" = + {"{Bd.}"} %%%% { "Vol." } + {"language is not defined: " language "vvol" * * warning$ "Vol."} + if$} + if$} +if$} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"Випуск"} + { curlanguage "russian" = + {"Выпуск"} + { curlanguage "german" = + {"{Heft}"} %%%% { "Ausgabe" } + {"language is not defined: " language "iissue" * * warning$ "Issue"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"Вип."} + { curlanguage "russian" = + {"Вып."} + { curlanguage "german" = + {"{H.}"} + {"language is not defined: " language "iiss" * * warning$ "Iss."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "german" = + { "von" } + { curlanguage "ukrainian" = + { "{із}" } + { curlanguage "russian" = + { "{из}" } + {"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" = + {"{та~ін.}"} + { curlanguage "russian" = + {"и~др."} + {"language is not defined: " language "et~al" * * warning$ "et~al."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.and} % { "\bbland{}" } +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"і"} + { curlanguage "russian" = + {"и"} + {"language is not defined: " language "and" * * warning$ "and"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{Номер}" } + { curlanguage "german" = + {"{Heft}"} %%% { "Anzahl" } + {"language is not defined: " language "nnumber" * * warning$ "Number"} + if$} + if$} +if$} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{номер}"} + { 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 + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nr" * * warning$ "no."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nnr" * * warning$ "No."} + if$} + if$} +if$} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = curlanguage "german" = or + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{в}" } + {"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 + { "{В}" } + {"language is not defined: " language "iin" * * warning$ "In"} + if$} +if$} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} %%% {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "pages" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "page" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} %%%% { "Pp." } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppages" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{дата звернення}" } + { curlanguage "russian" = + { "{дата обращения}" } + { curlanguage "german" = + { "{online; abgerufen}" } + { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{Отчет}" } + { "language is not defined: " language "techrep" * * warning$ "Rep." } + if$} + if$} +if$} + +FUNCTION {bbl.mthesis} +{ curlanguage "english" = + { "Master's thesis" } + { curlanguage "german" = + { "Diss.~Mag." } + { curlanguage "russian" = + { "{Квалификационная работа магистра}" } + { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + if$} + if$} +if$} + +FUNCTION {bbl.phdthesis} +{ curlanguage "english" = + { "Ph.\,D. thesis" } + { curlanguage "german" = + { "Diss.~Ph.\,D." } + { curlanguage "russian" = + { "{Дисс\ldots\ кандидата наук}" } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ curlanguage "english" = + { "Dr.\,Sci. dissertation" } + { curlanguage "german" = + { "Diss.~Dr." } + { curlanguage "russian" = + { "{Дисс\ldots\ доктора наук}" } + { "language is not defined: " language "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{Б.\ м.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{Б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{Текст}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{Электронный ресурс}" } + { curlanguage "ukrainian" = + { "{Електронний ресурс}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "{рук.}" } + { curlanguage "ukrainian" = + { "{рук.}" } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{исполн.}" } + { curlanguage "ukrainian" = + { "{виконавець}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +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 := + 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.lab.names} +{ 's := + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + %{ pop$ " et~al." * } + { pop$ " " bbl.etal * * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + %{ " et~al." * } + { " " bbl.etal * * } + %{ " and " * s #2 "{vv~}{ll}" format.name$ * } + { " " bbl.and " " * * * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.names.rev} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff}{~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.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize} + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + %'key %% causes lost of year + { "{}" key * } %% Bug in bibtex8 ?? + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + + +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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author format.names.rev * } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr "\ " * compiler format.names.rev * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". \BibDash " month * * } + if$ + } + if$ + extra.label * % new in v.1.2 +} + +FUNCTION {output.address.publisher} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output +} + + +FUNCTION {format.full.names} +{'s := + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + curlanguage "english" = + and + { "," * } + 'skip$ + if$ + t "others" = + %t "~others" = + %or + %{ " et~al." * } + { " " bbl.etal * * } + %{ " and " * t * } + { " " bbl.and " " * * * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "]{" * write$ + cite$ write$ + "}" write$ + language empty$ + { "english" 'curlanguage := } + {language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * write$ + newline$ + "" + before.all 'output.state := +} +%% author.key.label +%% year parenthesify * +%% "; lbl:" label * * +%% "; mfn:" make.full.names * * + +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 " " * bbl.edition * } + { convert.edition " " * 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$ + { numpages empty$ + { "" } + { numpages 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 + } + if$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +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$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} { } + + + +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 + author format.key output + format.title add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + author format.key output + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + author format.key output + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + author format.key output + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + author format.key output + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + editor format.key output + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + author format.key output + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + author format.key output + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + author format.key output + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.block + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + title format.key output + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + title format.key output + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 + + +FUNCTION {sortify} +{ purify$ +} + +%% ===================================== +%% This version from old Gost package +%%<*!natbib> +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 + { "et al" * } + %{ bbl.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +%%</!natbib> +%% This version from plainnat.bst +%% It ignores second and subsequent authors but include year. +%%<*natbib> +%%</natbib> +%% ===================================== + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word % Removes "The " if any + chop.word % Removes "An " if any + chop.word % Removes "A " if any + sortify + #1 global.max$ substring$ +} + +%% ===================================== +%% This version from old gost package. +%% +%% This version from plainnat.bst +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +%% ===================================== + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort}%#2 +{ calc.label + label sortify + %author.title.sort + " " + * + % ========= plainnat.bst ========= + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + %cite$ + title field.or.null sort.format.title + * + #1 entry.max$ substring$ + 'sort.label := + sort.label * + % ================================ + #1 entry.max$ substring$ + 'sort.key$ := +} + + +ITERATE {presort} + +SORT + + +STRINGS { longest.label last.label next.extra } + +INTEGERS { number.label longest.label.width last.extra.num } + +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 := +} + +EXECUTE {initialize.longest.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 := +} + +ITERATE {forward.pass} + +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 := +} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label 'sort.key$ := +} + +ITERATE {bib.sort.order} + +SORT + +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" write$ newline$ + "\cyrdash\hskip.2em\ignorespaces}" write$ newline$ + "\providecommand{\natexlab}[1]{#1}" 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 `ugost2008ns.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/ugost2008s.bst b/Master/texmf-dist/bibtex/bst/gost/ugost2008s.bst new file mode 100644 index 00000000000..c9eb9da12a7 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2008s.bst @@ -0,0 +1,2064 @@ +%% +%% This is file `ugost2008s.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `bst,utf8,modern,eprint,sort') +%% +%% 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 com <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 + medium % new in v.2. + type + volume + year + language + booklanguage + numpages + url + urldate + isbn + doi + eprinttype % = archivePrefix + eprintclass % = primaryClass + 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$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + 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 {new.dblslash.checka} +{ empty$ + 'skip$ + 'new.dblslash + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {enclose.square.brackets} { } + +FUNCTION {bracify} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} +FUNCTION {bracketise} +{ duplicate$ empty$ + { pop$ "[]" } + { "[" swap$ * "]" * } + if$ +} +FUNCTION {parenthesify} +{ duplicate$ empty$ + { pop$ "()" } + { "(" swap$ * ")" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed.\ by"} + { curlanguage "ukrainian" = + {"Під ред."} + { curlanguage "russian" = + {"Под ред."} + { curlanguage "german" = + { "ed." } + {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + { "Compiler"} + { curlanguage "german" = + { "Hrsg." } + { curlanguage "ukrainian" = + {"{Укл.}"} + { curlanguage "russian" = + {"{Сост.}"} + {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{вид.}"} + { curlanguage "russian" = + {"{изд.}"} + { 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 + { "Том" } + { curlanguage "german" = + {"{Band}"} %%%% { "Volumen" } + {"language is not defined: " language "vvolume" * * warning$ "Volume"} + if$} + if$} +if$} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Т."} + { curlanguage "german" = + {"{Bd.}"} %%%% { "Vol." } + {"language is not defined: " language "vvol" * * warning$ "Vol."} + if$} + if$} +if$} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"Випуск"} + { curlanguage "russian" = + {"Выпуск"} + { curlanguage "german" = + {"{Heft}"} %%%% { "Ausgabe" } + {"language is not defined: " language "iissue" * * warning$ "Issue"} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"Вип."} + { curlanguage "russian" = + {"Вып."} + { curlanguage "german" = + {"{H.}"} + {"language is not defined: " language "iiss" * * warning$ "Iss."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "german" = + { "von" } + { curlanguage "ukrainian" = + { "{із}" } + { curlanguage "russian" = + { "{из}" } + {"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" = + {"{та~ін.}"} + { curlanguage "russian" = + {"и~др."} + {"language is not defined: " language "et~al" * * warning$ "et~al."} + if$} + if$} + if$} +if$} + + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{Номер}" } + { curlanguage "german" = + {"{Heft}"} %%% { "Anzahl" } + {"language is not defined: " language "nnumber" * * warning$ "Number"} + if$} + if$} +if$} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{номер}"} + { 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 + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nr" * * warning$ "no."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{№}" } + { curlanguage "german" = + {"{H.}"} %%% { "an." } + {"language is not defined: " language "nnr" * * warning$ "No."} + if$} + if$} +if$} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = curlanguage "german" = or + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + { "{в}" } + {"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 + { "{В}" } + {"language is not defined: " language "iin" * * warning$ "In"} + if$} +if$} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} %%% {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "pages" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"S."} %%%% { "s." } + {"language is not defined: " language "page" * * warning$ "p."} + if$} + if$} +if$} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} %%%% { "Pp." } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppages" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "ppage" * * warning$ "P."} + if$} + if$} +if$} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed"} + { curlanguage "ukrainian" = + { "{дата звернення}" } + { curlanguage "russian" = + { "{дата обращения}" } + { curlanguage "german" = + { "{online; abgerufen}" } + { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.techreport} % rename to bbl.techreport +{ curlanguage "english" = + { "Rep." } + { curlanguage "german" = + { "Bericht" } + { curlanguage "russian" = + { "{Отчет}" } + { "language is not defined: " language "techrep" * * warning$ "Rep." } + if$} + if$} +if$} + +FUNCTION {bbl.mthesis} +{ curlanguage "english" = + { "Master's thesis" } + { curlanguage "german" = + { "Diss.~Mag." } + { curlanguage "russian" = + { "{Квалификационная работа магистра}" } + { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + if$} + if$} +if$} + +FUNCTION {bbl.phdthesis} +{ curlanguage "english" = + { "Ph.\,D. thesis" } + { curlanguage "german" = + { "Diss.~Ph.\,D." } + { curlanguage "russian" = + { "{Дисс\ldots\ кандидата наук}" } + { curlanguage "french" = + { "Th\`{e}se de doctorat" } + { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dscithesis} +{ curlanguage "english" = + { "Dr.\,Sci. dissertation" } + { curlanguage "german" = + { "Diss.~Dr." } + { curlanguage "russian" = + { "{Дисс\ldots\ доктора наук}" } + { "language is not defined: " language "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } + if$} + if$} +if$} + +FUNCTION {bbl.nnoaddress} +{ curlanguage "english" = + { "S.\ l." } + { curlanguage "russian" = + { "{Б.\ м.}" } + { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + if$} +if$} + +FUNCTION {bbl.nopublisher} +{ curlanguage "english" = + { "s.\ n." } + { curlanguage "russian" = + { "{б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + if$} +if$} + +FUNCTION {bbl.nnopublisher} +{ curlanguage "english" = + { "S.\ n." } + { curlanguage "russian" = + { "{Б.\ и.}" } + { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + if$} +if$} + +FUNCTION {bbl.medium.text} +{ curlanguage "english" = + { "Text" } + { curlanguage "russian" = curlanguage "ukrainian" = or + { "{Текст}" } + { "language is not defined: " language "medium" * * warning$ "Text" } + if$} +if$} + +FUNCTION {bbl.medium.elres} +{ curlanguage "english" = + { "Electronic resource" } + { curlanguage "russian" = + { "{Электронный ресурс}" } + { curlanguage "ukrainian" = + { "{Електронний ресурс}" } + { "language is not defined: " language "medium" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +FUNCTION {bbl.chief} +{ curlanguage "english" = + { "chief" } + { curlanguage "russian" = + { "{рук.}" } + { curlanguage "ukrainian" = + { "{рук.}" } + { "language is not defined: " language "chief" * * warning$ "chief" } + if$} + if$} +if$} + +FUNCTION {bbl.executor} +{ curlanguage "english" = + { "Executor" } + { curlanguage "russian" = + { "{исполн.}" } + { curlanguage "ukrainian" = + { "{виконавець}" } + { "language is not defined: " language "medium" * * warning$ "Executor" } + if$} + if$} +if$} + +FUNCTION {bbl.medium} +{ type$ "online" = + { bbl.medium.elres } + { bbl.medium.text } +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 := + 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 + "{ff}{~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}% always cuts to 4 persons + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.chief.after} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor format.names.rev * } + if$ +} + +FUNCTION {format.executor.after} +{ author empty$ + { "" } + { bbl.executor ": " * author format.names.rev * } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr "\ " * compiler format.names.rev * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". \BibDash " month * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output +} + + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem" write$ + cite$ bracify write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined" curlanguage bracify * 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 " " * bbl.edition * } + { convert.edition " " * 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$ + { numpages empty$ + { "" } + { numpages 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 + } + if$ +} + +%%<!utf8> { "t" change.case$ } +%%<utf8> { "" } + +FUNCTION {format.techreport.type} +{ type empty$ + { bbl.techreport } + 'type + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +%%<*!long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% {bookauthor num.names$ #4 < +%% {format.bookauthors output +%% new.sentence} +%% 'skip$ +%% if$} +%% if$ +%%} +%%</!long> +%%<*long> +%%FUNCTION {bookauthor.before} +%%{ +%% bookauthor empty$ +%% 'skip$ +%% { format.bookauthors output +%% new.sentence +%% } +%% if$ +%%} +%%</long> + +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$ + {format.bookauthors.after output + new.semicolumn } + 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 {add.medium} { } + + + +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 add.medium "title" output.check + new.slash + author.after + new.dblslash + journal emphasize add.doi "journal" output.check % new in v.2 + new.block + format.date "year" output.check + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ + output.bibitem + author.before + format.title add.doi add.medium "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ + output.bibitem + author.before + format.btitle add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + 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 + format.date "year" output.check + new.block + format.bvolume output + new.block + format.pages.page output + new.block + format.isbn output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ + output.bibitem + author.before + new.sentence + format.title add.doi add.medium "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher + format.date "year" output.check + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ + output.bibitem + format.btitle add.doi add.medium "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + output.address.publisher + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title add.doi add.medium "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 + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle add.doi add.medium "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 "year" output.check + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.medium output + howpublished new.block.checka + howpublished output + new.block + format.date "year" output.check + new.block + note output + new.sentence + output.eprint.url + 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 + format.date "year" output.check + new.block + note "note" output.check + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title add.doi add.medium "title" output.check + howpublished new.dblslash.checka + howpublished enclose.square.brackets output + editor.organization.after + new.sentence + new.block + output.address.publisher + format.date output + new.block + output.eprint.url + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {internet} {online} +FUNCTION {www} {online} +FUNCTION {webpage} {online} +FUNCTION {electronic} {online} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +%% format.techrep.type.number output.nonnull +%% format.url output +FUNCTION {report} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + type "type" output.check + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + note output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {masterthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.mthesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {dscithesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle add.doi add.medium "title" output.check + new.column + bbl.dscithesis format.thesis.type output.nonnull + new.column + number output + new.slash + format.authors.after output + new.semicolumn + school "school" output.check + new.block + output.address.publisher + format.date "year" output.check + new.block + format.pages.page output + new.block + note output + new.sentence + output.eprint.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%% format.url output + +FUNCTION {techreport} +{ + output.bibitem + format.title add.doi add.medium "title" output.check + new.column + format.techreport.type output + new.column + number output + new.slash + institution "institution" output.check + new.semicolumn + format.chief.after output % from editor field + new.semicolumn + format.executor.after output % from author field + new.block + address output + new.column + organization output + format.date "year" output.check + new.block % v.2 + format.pages.page output % v.2 + new.sentence % или new.block ? + output.eprint.url + new.block + 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 + + +FUNCTION {sortify} +{ purify$ +} + +%% ===================================== +%% This version from old Gost package +%%<*!natbib> +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 + { "et al" * } + %{ bbl.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +%%</!natbib> +%% This version from plainnat.bst +%% It ignores second and subsequent authors but include year. +%%<*natbib> +%%</natbib> +%% ===================================== + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word % Removes "The " if any + chop.word % Removes "An " if any + chop.word % Removes "A " if any + sortify + #1 global.max$ substring$ +} + +%% ===================================== +%% This version from old gost package. +%% +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} +%% This version from plainnat.bst +%% ===================================== + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {presort}%#1 +{ + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + + +ITERATE {presort} + +SORT + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +EXECUTE {initialize.longest.label} + +FUNCTION {forward.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$ +} + +ITERATE {forward.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" write$ newline$ + "\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 `ugost2008s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/unicode-gost705s.bst b/Master/texmf-dist/bibtex/bst/gost/unicode-gost705s.bst deleted file mode 100644 index 5d144e07d53..00000000000 --- a/Master/texmf-dist/bibtex/bst/gost/unicode-gost705s.bst +++ /dev/null @@ -1,1672 +0,0 @@ -%% -%% This is file `unicode-gost705s.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% unicode-gost.dtx (with options: `unicode-gost705s') -%% -%% Copyright 2012 Igor A. Kotelnikov. -%% Version 2012.01.21 -%% -%% Copyright 1996-2005 Maksym Polyakov. -%% Version 2005.08.12 -%% -%% 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. -%% -%% Please, send bug reports via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% polyama at yahoo dot edu <Maksym Polyakov> -%% -%% 2012.01.15 Added German, French, Italian languages, @online entry. -%% -%% 2005.08.12 Bug fix (long annote) -%% -%% 2003.06.06 contributions by Konstantin Vorontsov: -%% New ENTRY "annote" added to output annotations. -%% New commands BibUrl, BibAnnote added for customize urls and annotations. -%% -%% 2003.08.10 -%% New command BibEmph added to customize emphasizing. -%% -%% 2003.10.07 -%% Some bug fixes in names and date formatting. -%% -%% 2003.10.07 -%% Bug fix in INPROCEEDINGS. -%% -%% -%% This bibliography style attempts -%% to format bibliography according to -%% GOST 7.0.5-2008 -%% -%% For the Ukrainian|Russian bibliographic entries -%% you need to create field -%% language = {ukrainian|russian}. -%% Default language is English. -%% Field numpages for books must contain number of pages. -%% Optional field url will format url (using hyperref, if loaded). -%% -%% See examples in gost71.pdf, gost780.pdf and gost705.pdf -%% -%% Requires 8-bit bibtex with switch -B. -%% bibtex8.exe -B <your_document> -%% or -%% bibtex.exe <your_document> -%% - -ENTRY - { address - annote - author - booktitle - bookauthor - chapter - edition - editor - compiler - howpublished - institution - journal - key - month - note - number - organization - pages - numpages - publisher - school - series - title - type - volume - year - language - booklanguage - url - urldate - } - {} - { 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} -%%%{ 's := -{ 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$ -%%% 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 {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" = - {"{Під ред. }"} - { curlanguage "russian" = - {"{Под ред. }"} - {"language is not defined: " language "edited by" * * warning$ "edited by"} - if$} - if$} - if$ -} - -FUNCTION {bbl.cmplr} -{ curlanguage "english" = - {"Compiler "} - { curlanguage "ukrainian" = - {"{Укл. }"} - { curlanguage "russian" = - {"{Сост. }"} - {"language is not defined: " language "compiler" * * warning$ "compiler"} - if$} - if$} - if$ -} - -FUNCTION {bbl.edition} % { "\bbledition{}" } -{ curlanguage "english" = - {"edition"} - { curlanguage "ukrainian" = - {"{вид.}"} - { curlanguage "russian" = - {"{изд.}"} - { curlanguage "german" = - {" {aus.}" } - { 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 - {"Том"} - { curlanguage "german" = - {"{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 - {"Т."} - { curlanguage "german" = - {"{Vol.}"} - {"language is not defined: " language "Vol." * * warning$ "Vol."} - if$} - if$} - if$ -} - -FUNCTION {bbl.iissue} % { "\bblIssue{}" } -{ curlanguage "english" = - {"Issue"} - { curlanguage "ukrainian" = - {"Випуск"} - { curlanguage "russian" = - {"Выпуск"} - { curlanguage "german" = - {"{Ausgabe}"} - {"language is not defined: " language * warning$ "Issue"} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.iiss} % { "\bblIss{}" } -{ curlanguage "english" = - {"Iss."} - { curlanguage "ukrainian" = - {"Вип."} - { curlanguage "russian" = - {"Вып."} - { curlanguage "german" = - {"{Aus.}"} - {"language is not defined: " language * warning$ "Iss"} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.of} % { "\bblof{}" } -{ curlanguage "english" = - {"of"} - { curlanguage "ukrainian" = - {"{із}"} - { curlanguage "russian" = - {"{из}"} - {"language is not defined: " language "of" * * warning$ "of"} - if$} - if$} - if$ -} - -FUNCTION {bbl.etal} % { "\bblof{}" } -{ curlanguage "english" = - {"et~al."} - { curlanguage "ukrainian" = - {"{та~ін.}"} - { curlanguage "russian" = - {"{и~др.}"} - {"language is not defined: " language "at al" * * warning$ "at al."} - if$} - if$} - if$ -} - -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } -{ curlanguage "english" = - {"Number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"Номер"} - { curlanguage "german" = - {"{Anzahl}"} - {"language is not defined: " language "Number" * * warning$ "Number"} - if$} - if$} - if$ -} - -FUNCTION {bbl.number} % { "\bblnumber{}" } -{ curlanguage "english" = - {"number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{номер}"} - { curlanguage "german" = - {"{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 - {"{№}"} - { curlanguage "german" = - {"{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 - {"{№}"} - { curlanguage "german" = - {"{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 - {"{в}"} - {"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 - {"В"} - {"language is not defined: " language "In" * * warning$ "In"} - if$} - if$ -} - -FUNCTION {bbl.pages} % { "\bblpp." } -{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or - {"pp."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{с.}"} - { curlanguage "german" = - {"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 - {"{с.}"} - { curlanguage "german" = - {"s."} - {"language is not defined: " language "p." * * warning$ "p."} - if$} - if$} - if$ -} - -FUNCTION {bbl.ppages}% { "\bblPp." } -{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or - {"Pp."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{С.}"} - { 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 - {"{С.}"} - { curlanguage "german" = - {"S."} - {"language is not defined: " language "P." * * warning$ "P."} - if$} - if$} - if$ -} - -FUNCTION {bbl.urldate} -{ curlanguage "english" = - {"online; accessed: "} - { curlanguage "ukrainian" = - {"дата звернення: "} - { curlanguage "russian" = - {"дата обращения: "} - { curlanguage "german" = - {"{online; abgerufen: }"} - {"language is not defined: " language * warning$ "online; accessed: "} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.techrep} { "Tech. Rep." } -FUNCTION {bbl.mthesis} { "Master's thesis" } -FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } - -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 := - 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 - "{ff}{~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 - } - if$ -} - -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - month - } - if$ - } - { month empty$ - 'year - { year ". " "--- " 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 " " * bbl.edition * } - { convert.edition " " * 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$ - { numpages empty$ - { "" } - { numpages 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 - } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bbl.techrep } - 'type - if$ - number empty$ - { "" } - { 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 {article} -{ output.bibitem - author.before - format.btitle "title" output.check - new.slash - author.after - new.dblslash - journal emphasize "journal" output.check - 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.url output - format.annote output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - 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.url output - format.annote output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - author.before - new.sentence - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - author.before - new.sentence - format.title "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.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.url output - format.annote output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title howpublished new.sentence.checkb - format.btitle output - howpublished new.block.checka - howpublished output - new.block - format.date output - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - new.sentence - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - author.before - new.sentence - format.title "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.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.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.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 {acmcs} {"ACM Computing Surveys"} - -MACRO {acta} {"Acta Informatica"} - -MACRO {cacm} {"Communications of the ACM"} - -MACRO {ibmjrd} {"IBM Journal of Research and Development"} - -MACRO {ibmsj} {"IBM Systems Journal"} - -MACRO {ieeese} {"IEEE Transactions on Software Engineering"} - -MACRO {ieeetc} {"IEEE Transactions on Computers"} - -MACRO {ieeetcad} - {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} - -MACRO {ipl} {"Information Processing Letters"} - -MACRO {jacm} {"Journal of the ACM"} - -MACRO {jcss} {"Journal of Computer and System Sciences"} - -MACRO {scp} {"Science of Computer Programming"} - -MACRO {sicomp} {"SIAM Journal on Computing"} - -MACRO {tocs} {"ACM Transactions on Computer Systems"} - -MACRO {tods} {"ACM Transactions on Database Systems"} - -MACRO {tog} {"ACM Transactions on Graphics"} - -MACRO {toms} {"ACM Transactions on Mathematical Software"} - -MACRO {toois} {"ACM Transactions on Office Information Systems"} - -MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} - -MACRO {tcs} {"Theoretical Computer Science"} - -READ - - -FUNCTION {sortify} -{ purify$ -%%%% Why it is commented ? %%% "l" change.case$ -} - -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -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 - { "et al" * } - { 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.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { - author num.names$ #4 < - {author sort.format.names } - {title sort.format.title} - if$ - } - if$ -} - -FUNCTION {author.title.sort} -{ author empty$ - { title empty$ - { key empty$ - { "to sort, need author, title, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { title sort.format.title } - if$ - } - { - author num.names$ #4 < - {author sort.format.names } - {title sort.format.title} - if$ - } - if$ -} - -FUNCTION {presort} -{ - author.title.sort - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} - -ITERATE {presort} - -SORT - - -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*{\url}[1]{{\small #1}}" write$ newline$ - "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ - "\providecommand{\BibAnnote}[1]{}" write$ newline$ - "\providecommand*{\BibEmph}[1]{\emph{#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 `unicode-gost705s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/unicode-gost705u.bst b/Master/texmf-dist/bibtex/bst/gost/unicode-gost705u.bst deleted file mode 100644 index 52f7639333c..00000000000 --- a/Master/texmf-dist/bibtex/bst/gost/unicode-gost705u.bst +++ /dev/null @@ -1,1560 +0,0 @@ -%% -%% This is file `unicode-gost705u.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% unicode-gost.dtx (with options: `unicode-gost705u') -%% -%% Copyright 2012 Igor A. Kotelnikov. -%% Version 2012.01.21 -%% -%% Copyright 1996-2005 Maksym Polyakov. -%% Version 2005.08.12 -%% -%% 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. -%% -%% Please, send bug reports via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% polyama at yahoo dot edu <Maksym Polyakov> -%% -%% 2012.01.15 Added German, French, Italian languages, @online entry. -%% -%% 2005.08.12 Bug fix (long annote) -%% -%% 2003.06.06 contributions by Konstantin Vorontsov: -%% New ENTRY "annote" added to output annotations. -%% New commands BibUrl, BibAnnote added for customize urls and annotations. -%% -%% 2003.08.10 -%% New command BibEmph added to customize emphasizing. -%% -%% 2003.10.07 -%% Some bug fixes in names and date formatting. -%% -%% 2003.10.07 -%% Bug fix in INPROCEEDINGS. -%% -%% -%% This bibliography style attempts -%% to format bibliography according to -%% GOST 7.0.5-2008 -%% -%% For the Ukrainian|Russian bibliographic entries -%% you need to create field -%% language = {ukrainian|russian}. -%% Default language is English. -%% Field numpages for books must contain number of pages. -%% Optional field url will format url (using hyperref, if loaded). -%% -%% See examples in gost71.pdf, gost780.pdf and gost705.pdf -%% -%% Requires 8-bit bibtex with switch -B. -%% bibtex8.exe -B <your_document> -%% or -%% bibtex.exe <your_document> -%% - -ENTRY - { address - annote - author - booktitle - bookauthor - chapter - edition - editor - compiler - howpublished - institution - journal - key - month - note - number - organization - pages - numpages - publisher - school - series - title - type - volume - year - language - booklanguage - url - urldate - } - {} - { 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} -%%%{ 's := -{ 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$ -%%% 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 {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" = - {"{Під ред. }"} - { curlanguage "russian" = - {"{Под ред. }"} - {"language is not defined: " language "edited by" * * warning$ "edited by"} - if$} - if$} - if$ -} - -FUNCTION {bbl.cmplr} -{ curlanguage "english" = - {"Compiler "} - { curlanguage "ukrainian" = - {"{Укл. }"} - { curlanguage "russian" = - {"{Сост. }"} - {"language is not defined: " language "compiler" * * warning$ "compiler"} - if$} - if$} - if$ -} - -FUNCTION {bbl.edition} % { "\bbledition{}" } -{ curlanguage "english" = - {"edition"} - { curlanguage "ukrainian" = - {"{вид.}"} - { curlanguage "russian" = - {"{изд.}"} - { curlanguage "german" = - {" {aus.}" } - { 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 - {"Том"} - { curlanguage "german" = - {"{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 - {"Т."} - { curlanguage "german" = - {"{Vol.}"} - {"language is not defined: " language "Vol." * * warning$ "Vol."} - if$} - if$} - if$ -} - -FUNCTION {bbl.iissue} % { "\bblIssue{}" } -{ curlanguage "english" = - {"Issue"} - { curlanguage "ukrainian" = - {"Випуск"} - { curlanguage "russian" = - {"Выпуск"} - { curlanguage "german" = - {"{Ausgabe}"} - {"language is not defined: " language * warning$ "Issue"} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.iiss} % { "\bblIss{}" } -{ curlanguage "english" = - {"Iss."} - { curlanguage "ukrainian" = - {"Вип."} - { curlanguage "russian" = - {"Вып."} - { curlanguage "german" = - {"{Aus.}"} - {"language is not defined: " language * warning$ "Iss"} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.of} % { "\bblof{}" } -{ curlanguage "english" = - {"of"} - { curlanguage "ukrainian" = - {"{із}"} - { curlanguage "russian" = - {"{из}"} - {"language is not defined: " language "of" * * warning$ "of"} - if$} - if$} - if$ -} - -FUNCTION {bbl.etal} % { "\bblof{}" } -{ curlanguage "english" = - {"et~al."} - { curlanguage "ukrainian" = - {"{та~ін.}"} - { curlanguage "russian" = - {"{и~др.}"} - {"language is not defined: " language "at al" * * warning$ "at al."} - if$} - if$} - if$ -} - -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } -{ curlanguage "english" = - {"Number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"Номер"} - { curlanguage "german" = - {"{Anzahl}"} - {"language is not defined: " language "Number" * * warning$ "Number"} - if$} - if$} - if$ -} - -FUNCTION {bbl.number} % { "\bblnumber{}" } -{ curlanguage "english" = - {"number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{номер}"} - { curlanguage "german" = - {"{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 - {"{№}"} - { curlanguage "german" = - {"{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 - {"{№}"} - { curlanguage "german" = - {"{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 - {"{в}"} - {"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 - {"В"} - {"language is not defined: " language "In" * * warning$ "In"} - if$} - if$ -} - -FUNCTION {bbl.pages} % { "\bblpp." } -{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or - {"pp."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{с.}"} - { curlanguage "german" = - {"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 - {"{с.}"} - { curlanguage "german" = - {"s."} - {"language is not defined: " language "p." * * warning$ "p."} - if$} - if$} - if$ -} - -FUNCTION {bbl.ppages}% { "\bblPp." } -{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or - {"Pp."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{С.}"} - { 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 - {"{С.}"} - { curlanguage "german" = - {"S."} - {"language is not defined: " language "P." * * warning$ "P."} - if$} - if$} - if$ -} - -FUNCTION {bbl.urldate} -{ curlanguage "english" = - {"online; accessed: "} - { curlanguage "ukrainian" = - {"дата звернення: "} - { curlanguage "russian" = - {"дата обращения: "} - { curlanguage "german" = - {"{online; abgerufen: }"} - {"language is not defined: " language * warning$ "online; accessed: "} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.techrep} { "Tech. Rep." } -FUNCTION {bbl.mthesis} { "Master's thesis" } -FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } - -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 := - 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 - "{ff}{~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 - } - if$ -} - -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - month - } - if$ - } - { month empty$ - 'year - { year ". " "--- " 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 " " * bbl.edition * } - { convert.edition " " * 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$ - { numpages empty$ - { "" } - { numpages 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 - } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bbl.techrep } - 'type - if$ - number empty$ - { "" } - { 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 {article} -{ output.bibitem - author.before - format.btitle "title" output.check - new.slash - author.after - new.dblslash - journal emphasize "journal" output.check - 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.url output - format.annote output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - 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.url output - format.annote output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - author.before - new.sentence - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - author.before - new.sentence - format.title "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.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.url output - format.annote output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title howpublished new.sentence.checkb - format.btitle output - howpublished new.block.checka - howpublished output - new.block - format.date output - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - new.sentence - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - author.before - new.sentence - format.title "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.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.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.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 {acmcs} {"ACM Computing Surveys"} - -MACRO {acta} {"Acta Informatica"} - -MACRO {cacm} {"Communications of the ACM"} - -MACRO {ibmjrd} {"IBM Journal of Research and Development"} - -MACRO {ibmsj} {"IBM Systems Journal"} - -MACRO {ieeese} {"IEEE Transactions on Software Engineering"} - -MACRO {ieeetc} {"IEEE Transactions on Computers"} - -MACRO {ieeetcad} - {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} - -MACRO {ipl} {"Information Processing Letters"} - -MACRO {jacm} {"Journal of the ACM"} - -MACRO {jcss} {"Journal of Computer and System Sciences"} - -MACRO {scp} {"Science of Computer Programming"} - -MACRO {sicomp} {"SIAM Journal on Computing"} - -MACRO {tocs} {"ACM Transactions on Computer Systems"} - -MACRO {tods} {"ACM Transactions on Database Systems"} - -MACRO {tog} {"ACM Transactions on Graphics"} - -MACRO {toms} {"ACM Transactions on Mathematical Software"} - -MACRO {toois} {"ACM Transactions on Office Information Systems"} - -MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} - -MACRO {tcs} {"Theoretical Computer Science"} - -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*{\url}[1]{{\small #1}}" write$ newline$ - "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ - "\providecommand{\BibAnnote}[1]{}" write$ newline$ - "\providecommand*{\BibEmph}[1]{\emph{#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 `unicode-gost705u.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/unicode-gost780s.bst b/Master/texmf-dist/bibtex/bst/gost/unicode-gost780s.bst deleted file mode 100644 index a11ed701b8f..00000000000 --- a/Master/texmf-dist/bibtex/bst/gost/unicode-gost780s.bst +++ /dev/null @@ -1,1633 +0,0 @@ -%% -%% This is file `unicode-gost780s.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% unicode-gost.dtx (with options: `unicode-gost780s') -%% -%% Copyright 2012 Igor A. Kotelnikov. -%% Version 2012.01.21 -%% -%% Copyright 1996-2005 Maksym Polyakov. -%% Version 2005.08.12 -%% -%% 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. -%% -%% Please, send bug reports via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% polyama at yahoo dot edu <Maksym Polyakov> -%% -%% 2012.01.15 Added German, French, Italian languages, @online entry. -%% -%% 2005.08.12 Bug fix (long annote) -%% -%% 2003.06.06 contributions by Konstantin Vorontsov: -%% New ENTRY "annote" added to output annotations. -%% New commands BibUrl, BibAnnote added for customize urls and annotations. -%% -%% 2003.08.10 -%% New command BibEmph added to customize emphasizing. -%% -%% 2003.10.07 -%% Some bug fixes in names and date formatting. -%% -%% 2003.10.07 -%% Bug fix in INPROCEEDINGS. -%% -%% -%% This bibliography style attempts -%% to format bibliography according to -%% (obsolete) -%% -%% For the Ukrainian|Russian bibliographic entries -%% you need to create field -%% language = {ukrainian|russian}. -%% Default language is English. -%% Field numpages for books must contain number of pages. -%% Optional field url will format url (using hyperref, if loaded). -%% -%% See examples in gost71.pdf, gost780.pdf and gost705.pdf -%% -%% Requires 8-bit bibtex with switch -B. -%% bibtex8.exe -B <your_document> -%% or -%% bibtex.exe <your_document> -%% - -ENTRY - { address - annote - author - booktitle - bookauthor - chapter - edition - editor - compiler - howpublished - institution - journal - key - month - note - number - organization - pages - numpages - publisher - school - series - title - type - volume - year - language - booklanguage - url - urldate - } - {} - { 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} -%%%{ 's := -{ swap$ - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - " " quote$ "--- " * * 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$ -%%% 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 {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" = - {"{Під ред. }"} - { curlanguage "russian" = - {"{Под ред. }"} - {"language is not defined: " language "edited by" * * warning$ "edited by"} - if$} - if$} - if$ -} - -FUNCTION {bbl.cmplr} -{ curlanguage "english" = - {"Compiler "} - { curlanguage "ukrainian" = - {"{Укл. }"} - { curlanguage "russian" = - {"{Сост. }"} - {"language is not defined: " language "compiler" * * warning$ "compiler"} - if$} - if$} - if$ -} - -FUNCTION {bbl.edition} % { "\bbledition{}" } -{ curlanguage "english" = - {"edition"} - { curlanguage "ukrainian" = - {"{вид.}"} - { curlanguage "russian" = - {"{изд.}"} - { curlanguage "german" = - {" {aus.}" } - { 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 - {"Том"} - { curlanguage "german" = - {"{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 - {"Т."} - { curlanguage "german" = - {"{Vol.}"} - {"language is not defined: " language "Vol." * * warning$ "Vol."} - if$} - if$} - if$ -} - -FUNCTION {bbl.iissue} % { "\bblIssue{}" } -{ curlanguage "english" = - {"Issue"} - { curlanguage "ukrainian" = - {"Випуск"} - { curlanguage "russian" = - {"Выпуск"} - { curlanguage "german" = - {"{Ausgabe}"} - {"language is not defined: " language * warning$ "Issue"} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.iiss} % { "\bblIss{}" } -{ curlanguage "english" = - {"Iss."} - { curlanguage "ukrainian" = - {"Вип."} - { curlanguage "russian" = - {"Вып."} - { curlanguage "german" = - {"{Aus.}"} - {"language is not defined: " language * warning$ "Iss"} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.of} % { "\bblof{}" } -{ curlanguage "english" = - {"of"} - { curlanguage "ukrainian" = - {"{із}"} - { curlanguage "russian" = - {"{из}"} - {"language is not defined: " language "of" * * warning$ "of"} - if$} - if$} - if$ -} - -FUNCTION {bbl.etal} % { "\bblof{}" } -{ curlanguage "english" = - {"et~al."} - { curlanguage "ukrainian" = - {"{та~ін.}"} - { curlanguage "russian" = - {"{и~др.}"} - {"language is not defined: " language "at al" * * warning$ "at al."} - if$} - if$} - if$ -} - -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } -{ curlanguage "english" = - {"Number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"Номер"} - { curlanguage "german" = - {"{Anzahl}"} - {"language is not defined: " language "Number" * * warning$ "Number"} - if$} - if$} - if$ -} - -FUNCTION {bbl.number} % { "\bblnumber{}" } -{ curlanguage "english" = - {"number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{номер}"} - { curlanguage "german" = - {"{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 - {"{№}"} - { curlanguage "german" = - {"{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 - {"{№}"} - { curlanguage "german" = - {"{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 - {"{в}"} - {"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 - {"В"} - {"language is not defined: " language "In" * * warning$ "In"} - if$} - if$ -} - -FUNCTION {bbl.pages} % { "\bblpp." } -{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or - {"pp."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{с.}"} - { curlanguage "german" = - {"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 - {"{с.}"} - { curlanguage "german" = - {"s."} - {"language is not defined: " language "p." * * warning$ "p."} - if$} - if$} - if$ -} - -FUNCTION {bbl.ppages}% { "\bblPp." } -{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or - {"Pp."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{С.}"} - { 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 - {"{С.}"} - { curlanguage "german" = - {"S."} - {"language is not defined: " language "P." * * warning$ "P."} - if$} - if$} - if$ -} - -FUNCTION {bbl.urldate} -{ curlanguage "english" = - {"online; accessed: "} - { curlanguage "ukrainian" = - {"дата звернення: "} - { curlanguage "russian" = - {"дата обращения: "} - { curlanguage "german" = - {"{online; abgerufen: }"} - {"language is not defined: " language * warning$ "online; accessed: "} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.techrep} { "Tech. Rep." } -FUNCTION {bbl.mthesis} { "Master's thesis" } -FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } - -INTEGERS { nameptr namesleft numnames } - - -FUNCTION {format.names} -{ - #1 "{vv~}{ll}{~jj}{,~ff}" format.name$ -} - - -FUNCTION {format.names.rev} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{ff}{~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 - } - if$ -} - -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - month - } - if$ - } - { month empty$ - 'year - { year ". " "--- " 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 " " * bbl.edition * } - { convert.edition " " * 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$ - { numpages empty$ - { "" } - { numpages 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 - } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bbl.techrep } - 'type - if$ - number empty$ - { "" } - { 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$ - {format.authors.after output - new.semicolumn } - if$ -} -FUNCTION {bookauthor.after} -{ - bookauthor empty$ - 'skip$ - {format.bookauthors.after output - new.semicolumn } - 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$ - { "" } - { - "\BibUrl{ " url * "}" * - urldate empty$ - { "" } - { " (" bbl.urldate * urldate * ")" * } - if$ * - } - if$ -} - -FUNCTION {format.annote} -{ annote empty$ - { "" } -{ after.sentence 'output.state := - "\BibAnnote{" annote add.period$ * "}" * -} - if$ -} - -FUNCTION {article} -{ output.bibitem - author.before - format.btitle "title" output.check - new.slash - author.after - new.dblslash - journal emphasize "journal" output.check - 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.url output - format.annote output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - 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.url output - format.annote output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - author.before - new.sentence - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - author.before - new.sentence - format.title "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.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.url output - format.annote output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title howpublished new.sentence.checkb - format.btitle output - howpublished new.block.checka - howpublished output - new.block - format.date output - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - new.sentence - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - author.before - new.sentence - format.title "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.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.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.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 {acmcs} {"ACM Computing Surveys"} - -MACRO {acta} {"Acta Informatica"} - -MACRO {cacm} {"Communications of the ACM"} - -MACRO {ibmjrd} {"IBM Journal of Research and Development"} - -MACRO {ibmsj} {"IBM Systems Journal"} - -MACRO {ieeese} {"IEEE Transactions on Software Engineering"} - -MACRO {ieeetc} {"IEEE Transactions on Computers"} - -MACRO {ieeetcad} - {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} - -MACRO {ipl} {"Information Processing Letters"} - -MACRO {jacm} {"Journal of the ACM"} - -MACRO {jcss} {"Journal of Computer and System Sciences"} - -MACRO {scp} {"Science of Computer Programming"} - -MACRO {sicomp} {"SIAM Journal on Computing"} - -MACRO {tocs} {"ACM Transactions on Computer Systems"} - -MACRO {tods} {"ACM Transactions on Database Systems"} - -MACRO {tog} {"ACM Transactions on Graphics"} - -MACRO {toms} {"ACM Transactions on Mathematical Software"} - -MACRO {toois} {"ACM Transactions on Office Information Systems"} - -MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} - -MACRO {tcs} {"Theoretical Computer Science"} - -READ - - -FUNCTION {sortify} -{ purify$ -%%%% Why it is commented ? %%% "l" change.case$ -} - -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -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 - { "et al" * } - { 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.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { - author num.names$ #4 < - {author sort.format.names } - {title sort.format.title} - if$ - } - if$ -} - -FUNCTION {author.title.sort} -{ author empty$ - { title empty$ - { key empty$ - { "to sort, need author, title, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { title sort.format.title } - if$ - } - { - author num.names$ #4 < - {author sort.format.names } - {title sort.format.title} - if$ - } - if$ -} - -FUNCTION {presort} -{ - author.title.sort - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} - -ITERATE {presort} - -SORT - - -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*{\url}[1]{{\small #1}}" write$ newline$ - "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ - "\providecommand{\BibAnnote}[1]{}" write$ newline$ - "\providecommand*{\BibEmph}[1]{\emph{#1}}" 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 `unicode-gost780s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/unicode-gost780u.bst b/Master/texmf-dist/bibtex/bst/gost/unicode-gost780u.bst deleted file mode 100644 index 3c8d28da7ca..00000000000 --- a/Master/texmf-dist/bibtex/bst/gost/unicode-gost780u.bst +++ /dev/null @@ -1,1521 +0,0 @@ -%% -%% This is file `unicode-gost780u.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% unicode-gost.dtx (with options: `unicode-gost780u') -%% -%% Copyright 2012 Igor A. Kotelnikov. -%% Version 2012.01.21 -%% -%% Copyright 1996-2005 Maksym Polyakov. -%% Version 2005.08.12 -%% -%% 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. -%% -%% Please, send bug reports via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% polyama at yahoo dot edu <Maksym Polyakov> -%% -%% 2012.01.15 Added German, French, Italian languages, @online entry. -%% -%% 2005.08.12 Bug fix (long annote) -%% -%% 2003.06.06 contributions by Konstantin Vorontsov: -%% New ENTRY "annote" added to output annotations. -%% New commands BibUrl, BibAnnote added for customize urls and annotations. -%% -%% 2003.08.10 -%% New command BibEmph added to customize emphasizing. -%% -%% 2003.10.07 -%% Some bug fixes in names and date formatting. -%% -%% 2003.10.07 -%% Bug fix in INPROCEEDINGS. -%% -%% -%% This bibliography style attempts -%% to format bibliography according to -%% (obsolete) -%% -%% For the Ukrainian|Russian bibliographic entries -%% you need to create field -%% language = {ukrainian|russian}. -%% Default language is English. -%% Field numpages for books must contain number of pages. -%% Optional field url will format url (using hyperref, if loaded). -%% -%% See examples in gost71.pdf, gost780.pdf and gost705.pdf -%% -%% Requires 8-bit bibtex with switch -B. -%% bibtex8.exe -B <your_document> -%% or -%% bibtex.exe <your_document> -%% - -ENTRY - { address - annote - author - booktitle - bookauthor - chapter - edition - editor - compiler - howpublished - institution - journal - key - month - note - number - organization - pages - numpages - publisher - school - series - title - type - volume - year - language - booklanguage - url - urldate - } - {} - { 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} -%%%{ 's := -{ swap$ - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - " " quote$ "--- " * * 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$ -%%% 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 {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" = - {"{Під ред. }"} - { curlanguage "russian" = - {"{Под ред. }"} - {"language is not defined: " language "edited by" * * warning$ "edited by"} - if$} - if$} - if$ -} - -FUNCTION {bbl.cmplr} -{ curlanguage "english" = - {"Compiler "} - { curlanguage "ukrainian" = - {"{Укл. }"} - { curlanguage "russian" = - {"{Сост. }"} - {"language is not defined: " language "compiler" * * warning$ "compiler"} - if$} - if$} - if$ -} - -FUNCTION {bbl.edition} % { "\bbledition{}" } -{ curlanguage "english" = - {"edition"} - { curlanguage "ukrainian" = - {"{вид.}"} - { curlanguage "russian" = - {"{изд.}"} - { curlanguage "german" = - {" {aus.}" } - { 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 - {"Том"} - { curlanguage "german" = - {"{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 - {"Т."} - { curlanguage "german" = - {"{Vol.}"} - {"language is not defined: " language "Vol." * * warning$ "Vol."} - if$} - if$} - if$ -} - -FUNCTION {bbl.iissue} % { "\bblIssue{}" } -{ curlanguage "english" = - {"Issue"} - { curlanguage "ukrainian" = - {"Випуск"} - { curlanguage "russian" = - {"Выпуск"} - { curlanguage "german" = - {"{Ausgabe}"} - {"language is not defined: " language * warning$ "Issue"} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.iiss} % { "\bblIss{}" } -{ curlanguage "english" = - {"Iss."} - { curlanguage "ukrainian" = - {"Вип."} - { curlanguage "russian" = - {"Вып."} - { curlanguage "german" = - {"{Aus.}"} - {"language is not defined: " language * warning$ "Iss"} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.of} % { "\bblof{}" } -{ curlanguage "english" = - {"of"} - { curlanguage "ukrainian" = - {"{із}"} - { curlanguage "russian" = - {"{из}"} - {"language is not defined: " language "of" * * warning$ "of"} - if$} - if$} - if$ -} - -FUNCTION {bbl.etal} % { "\bblof{}" } -{ curlanguage "english" = - {"et~al."} - { curlanguage "ukrainian" = - {"{та~ін.}"} - { curlanguage "russian" = - {"{и~др.}"} - {"language is not defined: " language "at al" * * warning$ "at al."} - if$} - if$} - if$ -} - -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } -{ curlanguage "english" = - {"Number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"Номер"} - { curlanguage "german" = - {"{Anzahl}"} - {"language is not defined: " language "Number" * * warning$ "Number"} - if$} - if$} - if$ -} - -FUNCTION {bbl.number} % { "\bblnumber{}" } -{ curlanguage "english" = - {"number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{номер}"} - { curlanguage "german" = - {"{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 - {"{№}"} - { curlanguage "german" = - {"{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 - {"{№}"} - { curlanguage "german" = - {"{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 - {"{в}"} - {"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 - {"В"} - {"language is not defined: " language "In" * * warning$ "In"} - if$} - if$ -} - -FUNCTION {bbl.pages} % { "\bblpp." } -{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or - {"pp."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{с.}"} - { curlanguage "german" = - {"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 - {"{с.}"} - { curlanguage "german" = - {"s."} - {"language is not defined: " language "p." * * warning$ "p."} - if$} - if$} - if$ -} - -FUNCTION {bbl.ppages}% { "\bblPp." } -{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or - {"Pp."} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"{С.}"} - { 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 - {"{С.}"} - { curlanguage "german" = - {"S."} - {"language is not defined: " language "P." * * warning$ "P."} - if$} - if$} - if$ -} - -FUNCTION {bbl.urldate} -{ curlanguage "english" = - {"online; accessed: "} - { curlanguage "ukrainian" = - {"дата звернення: "} - { curlanguage "russian" = - {"дата обращения: "} - { curlanguage "german" = - {"{online; abgerufen: }"} - {"language is not defined: " language * warning$ "online; accessed: "} - if$} - if$} - if$} - if$ -} - -FUNCTION {bbl.techrep} { "Tech. Rep." } -FUNCTION {bbl.mthesis} { "Master's thesis" } -FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } - -INTEGERS { nameptr namesleft numnames } - - -FUNCTION {format.names} -{ - #1 "{vv~}{ll}{~jj}{,~ff}" format.name$ -} - - -FUNCTION {format.names.rev} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{ff}{~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 - } - if$ -} - -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - month - } - if$ - } - { month empty$ - 'year - { year ". " "--- " 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 " " * bbl.edition * } - { convert.edition " " * 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$ - { numpages empty$ - { "" } - { numpages 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 - } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bbl.techrep } - 'type - if$ - number empty$ - { "" } - { 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$ - {format.authors.after output - new.semicolumn } - if$ -} -FUNCTION {bookauthor.after} -{ - bookauthor empty$ - 'skip$ - {format.bookauthors.after output - new.semicolumn } - 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$ - { "" } - { - "\BibUrl{ " url * "}" * - urldate empty$ - { "" } - { " (" bbl.urldate * urldate * ")" * } - if$ * - } - if$ -} - -FUNCTION {format.annote} -{ annote empty$ - { "" } -{ after.sentence 'output.state := - "\BibAnnote{" annote add.period$ * "}" * -} - if$ -} - -FUNCTION {article} -{ output.bibitem - author.before - format.btitle "title" output.check - new.slash - author.after - new.dblslash - journal emphasize "journal" output.check - 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.url output - format.annote output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - 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.url output - format.annote output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author.before - format.btitle "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 - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - author.before - new.sentence - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - author.before - new.sentence - format.title "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.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.url output - format.annote output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title howpublished new.sentence.checkb - format.btitle output - howpublished new.block.checka - howpublished output - new.block - format.date output - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - new.sentence - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - format.btitle "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.url output - format.annote output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - author.before - new.sentence - format.title "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.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.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.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 {acmcs} {"ACM Computing Surveys"} - -MACRO {acta} {"Acta Informatica"} - -MACRO {cacm} {"Communications of the ACM"} - -MACRO {ibmjrd} {"IBM Journal of Research and Development"} - -MACRO {ibmsj} {"IBM Systems Journal"} - -MACRO {ieeese} {"IEEE Transactions on Software Engineering"} - -MACRO {ieeetc} {"IEEE Transactions on Computers"} - -MACRO {ieeetcad} - {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} - -MACRO {ipl} {"Information Processing Letters"} - -MACRO {jacm} {"Journal of the ACM"} - -MACRO {jcss} {"Journal of Computer and System Sciences"} - -MACRO {scp} {"Science of Computer Programming"} - -MACRO {sicomp} {"SIAM Journal on Computing"} - -MACRO {tocs} {"ACM Transactions on Computer Systems"} - -MACRO {tods} {"ACM Transactions on Database Systems"} - -MACRO {tog} {"ACM Transactions on Graphics"} - -MACRO {toms} {"ACM Transactions on Mathematical Software"} - -MACRO {toois} {"ACM Transactions on Office Information Systems"} - -MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} - -MACRO {tcs} {"Theoretical Computer Science"} - -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*{\url}[1]{{\small #1}}" write$ newline$ - "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ - "\providecommand{\BibAnnote}[1]{}" write$ newline$ - "\providecommand*{\BibEmph}[1]{\emph{#1}}" 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 `unicode-gost780u.bst'. |