diff options
author | Karl Berry <karl@freefriends.org> | 2020-12-29 02:19:51 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-12-29 02:19:51 +0000 |
commit | dd043fc7ae752f93f55607d6376c17a22205b60b (patch) | |
tree | 9adc98c02c5168e31376ac34ba82a09e6f0e9576 /Master/texmf-dist/bibtex | |
parent | 109901a7a158f32a32f423045b6981221735f55d (diff) |
gost (28dec20)
git-svn-id: svn://tug.org/texlive/trunk@57251 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/bibtex')
18 files changed, 15526 insertions, 15632 deletions
diff --git a/Master/texmf-dist/bibtex/bst/gost/gost2003.bst b/Master/texmf-dist/bibtex/bst/gost/gost2003.bst index ff477b544c5..c6c8cee68f8 100644 --- a/Master/texmf-dist/bibtex/bst/gost/gost2003.bst +++ b/Master/texmf-dist/bibtex/bst/gost/gost2003.bst @@ -6,28 +6,20 @@ %% %% 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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from gost2003.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.1-2003 for bibliographic records. @@ -67,15 +59,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -100,8 +92,23 @@ ENTRY {} { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -114,11 +121,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -143,7 +157,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -177,7 +191,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -256,13 +272,6 @@ FUNCTION {or} if$ } - -FUNCTION {non.stop} -{ duplicate$ - "}" * add.period$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -309,9 +318,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -323,7 +344,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -331,7 +352,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -339,25 +360,82 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } -FUNCTION {bbl.edby} % { "\bbledby{}" } +FUNCTION {tie.connect} + {"~" swap$ * * + } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +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 {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "russian" = - {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyro\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -366,15 +444,15 @@ FUNCTION {bbl.cmplr} {"{\cyr\CYRU\cyrk\cyrl.}"} { curlanguage "russian" = {"{\cyr\CYRS\cyro\cyrs\cyrt.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{\cyr\cyrv\cyri\cyrd.}"} { curlanguage "russian" = @@ -385,7 +463,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -393,31 +471,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -426,13 +504,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -441,13 +519,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"\CYRV\cyrery\cyrp."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -456,13 +534,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{\cyr\cyrii\cyrz}" } { curlanguage "russian" = { "{\cyr\cyri\cyrz}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -471,126 +549,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} { curlanguage "russian" = {"{\cyr\cyri~\cyrd\cyrr.}"} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} +FUNCTION {bbl.and} +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"{\cyrii}"} + { curlanguage "russian" = + {"{\cyri}"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} + if$} + if$} + if$} +if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { 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"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { 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"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\cyrv}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "\CYRV" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -604,7 +702,10 @@ FUNCTION {bbl.url} { "{\CYRR\cyre\cyrzh\cyri\cyrm\ \cyrd\cyro\cyrs\cyrt\cyru\cyrp\cyra}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -618,20 +719,23 @@ FUNCTION {bbl.urldate} { "{\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" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -640,12 +744,12 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{\cyr\CYRK\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri" + { "{\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" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -654,13 +758,13 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrk\cyra\cyrn\cyrd. " "\cyrn\cyra\cyru\cyrk}" * } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -668,36 +772,23 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrd-\cyrr\cyra\ " "\cyrn\cyra\cyru\cyrk}" * } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type "t" change.case$ } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyrm.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -706,7 +797,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{\cyr\cyrb.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -715,7 +806,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -724,7 +815,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -737,7 +828,7 @@ FUNCTION {bbl.media.eresource} { 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 "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -751,7 +842,7 @@ FUNCTION {bbl.media.online} { curlanguage "ukrainian" = { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ " "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyr}" * } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -763,19 +854,19 @@ FUNCTION {bbl.chief} { "\cyrr\cyru\cyrk." } { curlanguage "ukrainian" = { "\cyrr\cyru\cyrk." } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "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 "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -797,7 +888,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{\cyr\cyrz\cyra\cyrya\cyrv\cyrl.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -813,7 +904,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{\cyr\cyro\cyrp\cyru\cyrb\cyrl.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -829,7 +920,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{\cyr\cyrp\cyrr\cyri\cyro\cyrr\cyri\cyrt\cyre\cyrt}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -837,152 +928,385 @@ FUNCTION {bbl.priority} if$ } -INTEGERS { nameptr namesleft numnames } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"\CYRS\cyrii\cyrch."} + { curlanguage "russian" = + { "\CYRYA\cyrn\cyrv." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"\CYRL\cyryu\cyrt."} + { curlanguage "russian" = + { "\CYRF\cyre\cyrv\cyrr." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} -FUNCTION {format.names} -{ - #1 "{vv~}{ll}{~jj}{,~f.}" format.name$ -} +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"\CYRB\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrr\cyrt" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"\CYRK\cyrv\cyrii\cyrt."} + { curlanguage "russian" = + { "\CYRA\cyrp\cyrr." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + 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 enclose.square.brackets * } - { ", " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"\CYRT\cyrr\cyra\cyrv."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrishrt" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"\CYRCH\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrn\cyrsftsn" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} -FUNCTION {format.authors} -{ author empty$ - { "" } - { author format.names emphasize} - if$ -} +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrp."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrl\cyrsftsn" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"\CYRS\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRA\cyrv\cyrg\." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} -FUNCTION {format.bookauthors} -{ bookauthor empty$ - { "" } - { bookauthor format.names} - if$ -} +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"\CYRV\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRS\cyre\cyrn\cyrt." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} -FUNCTION {format.authors.after} -{ author empty$ - { "" } - { author format.names.rev} +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"\CYRZH\cyro\cyrn."} + { curlanguage "russian" = + { "\CYRO\cyrk\cyrt." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrs."} + { curlanguage "russian" = + { "\CYRN\cyro\cyrya\cyrb." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"\CYRG\cyrr\cyru\cyrd."} + { curlanguage "russian" = + { "\CYRD\cyre\cyrk." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google \CYRK\cyrn\cyri\cyrg\cyri"} + { curlanguage "russian" = + { "Google \CYRK\cyrn\cyri\cyrg\cyri" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } if$ } -FUNCTION {format.bookauthors.after} -{ bookauthor empty$ - { "" } - { bookauthor format.names.rev}% always cuts to 4 persons +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } if$ } -FUNCTION {format.editors.after} -{ editor empty$ - { "" } - { bbl.edby "\ " * editor format.names.rev * } +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } if$ } - -FUNCTION {format.chief.after} -{ editor empty$ - { "" } - { bbl.chief "\ " * editor format.names.rev * } +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } if$ } -FUNCTION {format.executor.after} -{ author empty$ - { "" } - { bbl.executor ": " * author format.names.rev * } +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } if$ } -FUNCTION {format.compiler.after} -{ compiler empty$ - { "" } - { bbl.cmplr "\ " * compiler format.names.rev * } +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } if$ } -FUNCTION {format.title} -{ title empty$ - { "" } - { title "t" change.case$ } +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } if$ } FUNCTION {format.month} { month empty$ { "" } - { curlanguage "russian" = - { month "Jan." = - { "\CYRYA\cyrn\cyrv." } - { month "Feb." = - { "\CYRF\cyre\cyrv\cyrr." } - { month "Mar." = - { "\CYRM\cyra\cyrr\cyrt" } - { month "Apr." = - { "\CYRA\cyrp\cyrr." } - { month "May" = - { "\CYRM\cyra\cyrishrt" } - { month "Jun." = - { "\CYRI\cyryu\cyrn\cyrsftsn" } - { month "Jul." = - { "\CYRI\cyryu\cyrl\cyrsftsn" } - { month "Aug." = - { "\CYRA\cyrv\cyrg\." } - { month "Sep." = - { "\CYRS\cyre\cyrn\cyrt." } - { month "Oct." = - { "\CYRO\cyrk\cyrt." } - { month "Nov." = - { "\CYRN\cyro\cyrya\cyrb." } - { month "Dec." = - { "\CYRD\cyre\cyrk." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} if$ } FUNCTION {format.date} -{ year empty$ +{ year.or.date.to.year empty$ { month empty$ { "" } { "there's a month but no year in " cite$ * warning$ @@ -991,51 +1315,153 @@ FUNCTION {format.date} if$ } { month empty$ - 'year - { year ". \BibDash " format.month * * } + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } if$ } if$ } -FUNCTION {address.or.location} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{,~f.}" + format.name$ +} + +FUNCTION {fmt.names.three} { - address empty$ - { location } - { address } - if$ + '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 bracketise *} + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ } -FUNCTION {specialitycode.or.number} +FUNCTION {fmt.names.all} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{,~f.}" + format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or + { " " * bbl.etal bracketise *} + { " " bbl.and " " * * * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} { - specialitycode empty$ - { number } - { specialitycode } + author empty$ + { author } %%%'skip$ + {author num.names$ #4 < + { + author fmt.names.first + } + { "" } %%%'skip$ + if$} if$ } -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } +FUNCTION {format.bookauthors.rest} +{ bookauthor empty$ + { "" } + { bookauthor fmt.names.three emphasize } + if$ +} + +FUNCTION {format.editors.rest} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.chief.rest} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor fmt.names.three * } if$ } + +FUNCTION {format.executor.rest} +{ author empty$ + { "" } + { bbl.executor ": " * author fmt.names.three * } + if$ +} + +FUNCTION {format.compiler.rest} +{ compiler empty$ + { "" } + { bbl.compiler "\ " * compiler fmt.names.three * } + if$ +} + FUNCTION {output.address.publisher} { address empty$ { bbl.nnoaddress publisher empty$ - { "~: " * bbl.nopublisher * enclose.square.brackets } - { enclose.square.brackets "~: " * publisher * } + { "~: " * bbl.nopublisher * bracketise } + { bracketise "~: " * publisher * } if$ } { address output new.colon publisher empty$ - { bbl.nopublisher enclose.square.brackets } + { bbl.nopublisher bracketise } { publisher } if$ } @@ -1043,88 +1469,26 @@ FUNCTION {output.address.publisher} output } - - FUNCTION {output.bibitem} -{ newline$ +{ + set.language + newline$ "\bibitem" write$ cite$ bracify write$ newline$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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 * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1153,30 +1517,6 @@ FUNCTION {format.number.series} 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 @@ -1193,38 +1533,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1245,15 +1553,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1316,6 +1615,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type "t" change.case$ } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1336,78 +1648,61 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ {author num.names$ #4 < - {format.authors output - new.sentence} + { + author fmt.names.first 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} +FUNCTION {output.author.rest} { author empty$ 'skip$ - {format.authors.after output - new.semicolon } + {author num.names$ #1 > + { author fmt.names.all output + new.semicolon + } + 'skip$ + if$} if$ } -FUNCTION {bookauthor.after} +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.all output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1458,7 +1753,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1468,9 +1763,13 @@ FUNCTION {add.media} { duplicate$ empty$ 'skip$ { media empty$ - { " " * bbl.media.text enclose.square.brackets * } - { " " * bbl.media enclose.square.brackets * } - if$ + { type$ "online" = + { " " * bbl.media.online bracketise * } + { " " * bbl.media.text bracketise * } + if$ + } + { " " * bbl.media bracketise * } + if$ } if$ } @@ -1550,14 +1849,15 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before - format.title add.media "title" output.check + output.author.head + %new.sentence + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1574,18 +1874,21 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1603,15 +1906,18 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before - format.title add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1623,22 +1929,25 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1656,18 +1965,21 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1684,14 +1996,21 @@ FUNCTION {incollection} FUNCTION {proceedings} { output.bibitem - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1702,22 +2021,26 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -1737,10 +2060,12 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -1757,7 +2082,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1770,6 +2095,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -1777,9 +2104,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull new.semicolon holder output.nonnull new.semicolon @@ -1794,7 +2121,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -1807,13 +2134,15 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1824,13 +2153,16 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before - format.btitle "title" output.check + output.author.head + new.sentence + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -1841,12 +2173,14 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka - howpublished enclose.square.brackets output - editor.organization.after + howpublished bracketise output + editor.organization.rest new.sentence new.block output.address.publisher @@ -1865,25 +2199,24 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1893,13 +2226,14 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -1908,14 +2242,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -1928,9 +2262,9 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -1939,13 +2273,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1955,12 +2290,11 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -1969,13 +2303,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1985,12 +2320,11 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -1999,13 +2333,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2015,7 +2350,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2023,7 +2357,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon format.techreport.type output new.colon @@ -2032,14 +2366,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2064,96 +2398,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2196,47 +2530,46 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"\CYRU\CYRF\CYRN"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - STRINGS { longest.label } INTEGERS { number.label longest.label.width } @@ -2273,15 +2606,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2304,5 +2629,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index e89eaf2280b..9a81ec68ccd 100644 --- a/Master/texmf-dist/bibtex/bst/gost/gost2003s.bst +++ b/Master/texmf-dist/bibtex/bst/gost/gost2003s.bst @@ -6,28 +6,20 @@ %% %% 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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from gost2003s.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.1-2003 for bibliographic records. @@ -67,15 +59,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -100,8 +92,23 @@ ENTRY {} { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -114,11 +121,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -143,7 +157,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -177,7 +191,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -256,23 +272,6 @@ 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$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -319,9 +318,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -333,7 +344,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -341,7 +352,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -349,25 +360,92 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {tie.connect} + {"~" swap$ * * + } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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 {bbl.edby} % { "\bbledby{}" } +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 {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "russian" = - {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyro\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -376,15 +454,15 @@ FUNCTION {bbl.cmplr} {"{\cyr\CYRU\cyrk\cyrl.}"} { curlanguage "russian" = {"{\cyr\CYRS\cyro\cyrs\cyrt.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{\cyr\cyrv\cyri\cyrd.}"} { curlanguage "russian" = @@ -395,7 +473,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -403,31 +481,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -436,13 +514,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -451,13 +529,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"\CYRV\cyrery\cyrp."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -466,13 +544,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{\cyr\cyrii\cyrz}" } { curlanguage "russian" = { "{\cyr\cyri\cyrz}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -481,126 +559,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} { curlanguage "russian" = {"{\cyr\cyri~\cyrd\cyrr.}"} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} +FUNCTION {bbl.and} +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"{\cyrii}"} + { curlanguage "russian" = + {"{\cyri}"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} + if$} + if$} + if$} +if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { 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"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { 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"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\cyrv}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "\CYRV" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -614,7 +712,10 @@ FUNCTION {bbl.url} { "{\CYRR\cyre\cyrzh\cyri\cyrm\ \cyrd\cyro\cyrs\cyrt\cyru\cyrp\cyra}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -628,20 +729,23 @@ FUNCTION {bbl.urldate} { "{\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" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -650,12 +754,12 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{\cyr\CYRK\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri" + { "{\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" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -664,13 +768,13 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrk\cyra\cyrn\cyrd. " "\cyrn\cyra\cyru\cyrk}" * } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -678,36 +782,23 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrd-\cyrr\cyra\ " "\cyrn\cyra\cyru\cyrk}" * } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type "t" change.case$ } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyrm.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -716,7 +807,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{\cyr\cyrb.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -725,7 +816,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -734,7 +825,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -747,7 +838,7 @@ FUNCTION {bbl.media.eresource} { 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 "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -761,7 +852,7 @@ FUNCTION {bbl.media.online} { curlanguage "ukrainian" = { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ " "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyr}" * } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -773,19 +864,19 @@ FUNCTION {bbl.chief} { "\cyrr\cyru\cyrk." } { curlanguage "ukrainian" = { "\cyrr\cyru\cyrk." } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "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 "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -807,7 +898,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{\cyr\cyrz\cyra\cyrya\cyrv\cyrl.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -823,7 +914,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{\cyr\cyro\cyrp\cyru\cyrb\cyrl.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -839,7 +930,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{\cyr\cyrp\cyrr\cyri\cyro\cyrr\cyri\cyrt\cyre\cyrt}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -847,152 +938,385 @@ FUNCTION {bbl.priority} if$ } -INTEGERS { nameptr namesleft numnames } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"\CYRS\cyrii\cyrch."} + { curlanguage "russian" = + { "\CYRYA\cyrn\cyrv." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"\CYRL\cyryu\cyrt."} + { curlanguage "russian" = + { "\CYRF\cyre\cyrv\cyrr." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} -FUNCTION {format.names} -{ - #1 "{vv~}{ll}{~jj}{,~f.}" format.name$ -} +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"\CYRB\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrr\cyrt" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"\CYRK\cyrv\cyrii\cyrt."} + { curlanguage "russian" = + { "\CYRA\cyrp\cyrr." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + 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 enclose.square.brackets * } - { ", " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"\CYRT\cyrr\cyra\cyrv."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrishrt" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"\CYRCH\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrn\cyrsftsn" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} -FUNCTION {format.authors} -{ author empty$ - { "" } - { author format.names emphasize} - if$ -} +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrp."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrl\cyrsftsn" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"\CYRS\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRA\cyrv\cyrg\." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} -FUNCTION {format.bookauthors} -{ bookauthor empty$ - { "" } - { bookauthor format.names} - if$ -} +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"\CYRV\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRS\cyre\cyrn\cyrt." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} -FUNCTION {format.authors.after} -{ author empty$ - { "" } - { author format.names.rev} +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"\CYRZH\cyro\cyrn."} + { curlanguage "russian" = + { "\CYRO\cyrk\cyrt." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrs."} + { curlanguage "russian" = + { "\CYRN\cyro\cyrya\cyrb." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"\CYRG\cyrr\cyru\cyrd."} + { curlanguage "russian" = + { "\CYRD\cyre\cyrk." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google \CYRK\cyrn\cyri\cyrg\cyri"} + { curlanguage "russian" = + { "Google \CYRK\cyrn\cyri\cyrg\cyri" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } if$ } -FUNCTION {format.bookauthors.after} -{ bookauthor empty$ - { "" } - { bookauthor format.names.rev}% always cuts to 4 persons +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } if$ } -FUNCTION {format.editors.after} -{ editor empty$ - { "" } - { bbl.edby "\ " * editor format.names.rev * } +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } if$ } - -FUNCTION {format.chief.after} -{ editor empty$ - { "" } - { bbl.chief "\ " * editor format.names.rev * } +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } if$ } -FUNCTION {format.executor.after} -{ author empty$ - { "" } - { bbl.executor ": " * author format.names.rev * } +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } if$ } -FUNCTION {format.compiler.after} -{ compiler empty$ - { "" } - { bbl.cmplr "\ " * compiler format.names.rev * } +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } if$ } -FUNCTION {format.title} -{ title empty$ - { "" } - { title "t" change.case$ } +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } if$ } FUNCTION {format.month} { month empty$ { "" } - { curlanguage "russian" = - { month "Jan." = - { "\CYRYA\cyrn\cyrv." } - { month "Feb." = - { "\CYRF\cyre\cyrv\cyrr." } - { month "Mar." = - { "\CYRM\cyra\cyrr\cyrt" } - { month "Apr." = - { "\CYRA\cyrp\cyrr." } - { month "May" = - { "\CYRM\cyra\cyrishrt" } - { month "Jun." = - { "\CYRI\cyryu\cyrn\cyrsftsn" } - { month "Jul." = - { "\CYRI\cyryu\cyrl\cyrsftsn" } - { month "Aug." = - { "\CYRA\cyrv\cyrg\." } - { month "Sep." = - { "\CYRS\cyre\cyrn\cyrt." } - { month "Oct." = - { "\CYRO\cyrk\cyrt." } - { month "Nov." = - { "\CYRN\cyro\cyrya\cyrb." } - { month "Dec." = - { "\CYRD\cyre\cyrk." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} if$ } FUNCTION {format.date} -{ year empty$ +{ year.or.date.to.year empty$ { month empty$ { "" } { "there's a month but no year in " cite$ * warning$ @@ -1001,51 +1325,153 @@ FUNCTION {format.date} if$ } { month empty$ - 'year - { year ". \BibDash " format.month * * } + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } if$ } if$ } -FUNCTION {address.or.location} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{,~f.}" + format.name$ +} + +FUNCTION {fmt.names.three} { - address empty$ - { location } - { address } - if$ + '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 bracketise *} + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ } -FUNCTION {specialitycode.or.number} +FUNCTION {fmt.names.all} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{,~f.}" + format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or + { " " * bbl.etal bracketise *} + { " " bbl.and " " * * * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} { - specialitycode empty$ - { number } - { specialitycode } + author empty$ + { author } %%%'skip$ + {author num.names$ #4 < + { + author fmt.names.first + } + { "" } %%%'skip$ + if$} if$ } -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } +FUNCTION {format.bookauthors.rest} +{ bookauthor empty$ + { "" } + { bookauthor fmt.names.three emphasize } if$ } + +FUNCTION {format.editors.rest} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.chief.rest} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.executor.rest} +{ author empty$ + { "" } + { bbl.executor ": " * author fmt.names.three * } + if$ +} + +FUNCTION {format.compiler.rest} +{ compiler empty$ + { "" } + { bbl.compiler "\ " * compiler fmt.names.three * } + if$ +} + FUNCTION {output.address.publisher} { address empty$ { bbl.nnoaddress publisher empty$ - { "~: " * bbl.nopublisher * enclose.square.brackets } - { enclose.square.brackets "~: " * publisher * } + { "~: " * bbl.nopublisher * bracketise } + { bracketise "~: " * publisher * } if$ } { address output new.colon publisher empty$ - { bbl.nopublisher enclose.square.brackets } + { bbl.nopublisher bracketise } { publisher } if$ } @@ -1053,88 +1479,26 @@ FUNCTION {output.address.publisher} output } - - FUNCTION {output.bibitem} -{ newline$ +{ + set.language + newline$ "\bibitem" write$ cite$ bracify write$ newline$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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 * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1163,30 +1527,6 @@ FUNCTION {format.number.series} 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 @@ -1203,38 +1543,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1255,15 +1563,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1326,6 +1625,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type "t" change.case$ } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1346,78 +1658,61 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ {author num.names$ #4 < - {format.authors output - new.sentence} + { + author fmt.names.first 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} +FUNCTION {output.author.rest} { author empty$ 'skip$ - {format.authors.after output - new.semicolon } + {author num.names$ #1 > + { author fmt.names.all output + new.semicolon + } + 'skip$ + if$} if$ } -FUNCTION {bookauthor.after} +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.all output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1468,7 +1763,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1478,9 +1773,13 @@ FUNCTION {add.media} { duplicate$ empty$ 'skip$ { media empty$ - { " " * bbl.media.text enclose.square.brackets * } - { " " * bbl.media enclose.square.brackets * } - if$ + { type$ "online" = + { " " * bbl.media.online bracketise * } + { " " * bbl.media.text bracketise * } + if$ + } + { " " * bbl.media bracketise * } + if$ } if$ } @@ -1560,14 +1859,15 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before - format.title add.media "title" output.check + output.author.head + %new.sentence + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1584,18 +1884,21 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1613,15 +1916,18 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before - format.title add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1633,22 +1939,25 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1666,18 +1975,21 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head new.sentence - format.title add.doi add.media "title" output.check + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1694,14 +2006,21 @@ FUNCTION {incollection} FUNCTION {proceedings} { output.bibitem - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1712,22 +2031,26 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head new.sentence - format.title add.doi add.media "title" output.check + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -1747,10 +2070,12 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -1767,7 +2092,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1780,6 +2105,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -1787,9 +2114,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull new.semicolon holder output.nonnull new.semicolon @@ -1804,7 +2131,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -1817,13 +2144,15 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1834,13 +2163,16 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before - format.btitle "title" output.check + output.author.head + new.sentence + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -1851,12 +2183,14 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka - howpublished enclose.square.brackets output - editor.organization.after + howpublished bracketise output + editor.organization.rest new.sentence new.block output.address.publisher @@ -1875,25 +2209,24 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1903,13 +2236,14 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -1918,14 +2252,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -1938,9 +2272,9 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -1949,13 +2283,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1965,12 +2300,11 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -1979,13 +2313,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1995,12 +2330,11 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2009,13 +2343,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2025,7 +2360,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2033,7 +2367,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon format.techreport.type output new.colon @@ -2042,14 +2376,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2074,96 +2408,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2206,49 +2540,47 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"\CYRU\CYRF\CYRN"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - FUNCTION {sortify} { purify$ "l" change.case$ } - %% ===================================== %% This version from old Gost package %%<*!natbib> @@ -2335,10 +2667,9 @@ FUNCTION {author.title.sort} {author sort.format.names } {title sort.format.title} if$ - } + } if$ } - FUNCTION {presort}%#1 { author.title.sort @@ -2397,15 +2728,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2428,5 +2751,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index 4b069dd1ee9..982092264c5 100644 --- a/Master/texmf-dist/bibtex/bst/gost/gost2008.bst +++ b/Master/texmf-dist/bibtex/bst/gost/gost2008.bst @@ -4,30 +4,22 @@ %% %% The original source files were: %% -%% gost.dtx (with options: `bst,modern,eprint') +%% gost.dtx (with options: `bst,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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from gost2008.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.0.5-2008 for bibliographic reference. @@ -67,15 +59,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -100,8 +92,23 @@ ENTRY {} { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -114,11 +121,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -143,7 +157,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -177,7 +191,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -256,13 +272,6 @@ FUNCTION {or} if$ } - -FUNCTION {non.stop} -{ duplicate$ - "}" * add.period$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -309,9 +318,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -323,7 +344,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -331,7 +352,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -339,25 +360,82 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } -FUNCTION {bbl.edby} % { "\bbledby{}" } +FUNCTION {tie.connect} + {"~" swap$ * * + } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +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 {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "russian" = - {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyro\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -366,15 +444,15 @@ FUNCTION {bbl.cmplr} {"{\cyr\CYRU\cyrk\cyrl.}"} { curlanguage "russian" = {"{\cyr\CYRS\cyro\cyrs\cyrt.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{\cyr\cyrv\cyri\cyrd.}"} { curlanguage "russian" = @@ -385,7 +463,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -393,31 +471,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -426,13 +504,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -441,13 +519,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"\CYRV\cyrery\cyrp."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -456,13 +534,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{\cyr\cyrii\cyrz}" } { curlanguage "russian" = { "{\cyr\cyri\cyrz}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -471,126 +549,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} { curlanguage "russian" = {"{\cyr\cyri~\cyrd\cyrr.}"} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} +FUNCTION {bbl.and} +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"{\cyrii}"} + { curlanguage "russian" = + {"{\cyri}"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} + if$} + if$} + if$} +if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { 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"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { 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"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\cyrv}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "\CYRV" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -604,7 +702,10 @@ FUNCTION {bbl.url} { "{\CYRR\cyre\cyrzh\cyri\cyrm\ \cyrd\cyro\cyrs\cyrt\cyru\cyrp\cyra}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -618,20 +719,23 @@ FUNCTION {bbl.urldate} { "{\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" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -640,12 +744,12 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{\cyr\CYRK\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri" + { "{\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" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -654,13 +758,13 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrk\cyra\cyrn\cyrd. " "\cyrn\cyra\cyru\cyrk}" * } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -668,36 +772,23 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrd-\cyrr\cyra\ " "\cyrn\cyra\cyru\cyrk}" * } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type "t" change.case$ } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyrm.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -706,7 +797,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{\cyr\cyrb.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -715,7 +806,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -724,7 +815,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -737,7 +828,7 @@ FUNCTION {bbl.media.eresource} { 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 "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -751,7 +842,7 @@ FUNCTION {bbl.media.online} { curlanguage "ukrainian" = { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ " "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyr}" * } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -763,19 +854,19 @@ FUNCTION {bbl.chief} { "\cyrr\cyru\cyrk." } { curlanguage "ukrainian" = { "\cyrr\cyru\cyrk." } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "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 "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -797,7 +888,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{\cyr\cyrz\cyra\cyrya\cyrv\cyrl.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -813,7 +904,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{\cyr\cyro\cyrp\cyru\cyrb\cyrl.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -829,7 +920,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{\cyr\cyrp\cyrr\cyri\cyro\cyrr\cyri\cyrt\cyre\cyrt}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -837,69 +928,462 @@ FUNCTION {bbl.priority} if$ } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"\CYRS\cyrii\cyrch."} + { curlanguage "russian" = + { "\CYRYA\cyrn\cyrv." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"\CYRL\cyryu\cyrt."} + { curlanguage "russian" = + { "\CYRF\cyre\cyrv\cyrr." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"\CYRB\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrr\cyrt" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"\CYRK\cyrv\cyrii\cyrt."} + { curlanguage "russian" = + { "\CYRA\cyrp\cyrr." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"\CYRT\cyrr\cyra\cyrv."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrishrt" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"\CYRCH\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrn\cyrsftsn" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrp."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrl\cyrsftsn" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"\CYRS\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRA\cyrv\cyrg\." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"\CYRV\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRS\cyre\cyrn\cyrt." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"\CYRZH\cyro\cyrn."} + { curlanguage "russian" = + { "\CYRO\cyrk\cyrt." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrs."} + { curlanguage "russian" = + { "\CYRN\cyro\cyrya\cyrb." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"\CYRG\cyrr\cyru\cyrd."} + { curlanguage "russian" = + { "\CYRD\cyre\cyrk." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google \CYRK\cyrn\cyri\cyrg\cyri"} + { curlanguage "russian" = + { "Google \CYRK\cyrn\cyri\cyrg\cyri" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } + if$ +} + +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } + if$ +} + +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } + if$ +} +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } + if$ +} + +FUNCTION {format.month} +{ month empty$ + { "" } + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} + if$ +} +FUNCTION {format.date} +{ year.or.date.to.year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + format.month + } + if$ + } + { month empty$ + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } + if$ + } + if$ +} + INTEGERS { nameptr namesleft numnames } +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{~f.}" + format.name$ +} -FUNCTION {format.names} +FUNCTION {fmt.names.three} { '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$ - } + { 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$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } while$ } - -FUNCTION {format.names.rev} -{ - 's := +FUNCTION {fmt.names.all} +{ '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 := + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{~f.}" + format.name$ 't := nameptr #1 > - { nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > + { namesleft #1 > { ", " * t * } - { t "others" = - t "~others" = - or + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or { " " * bbl.etal * } - { ", " * t * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -912,145 +1396,57 @@ FUNCTION {format.names.rev} 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} +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} +{ + author empty$ + { author } %%%'skip$ + {author num.names$ #4 < + { + author fmt.names.three + } + { "" } %%%'skip$ + if$} if$ } -FUNCTION {format.bookauthors.after} +FUNCTION {format.bookauthors.rest} { bookauthor empty$ { "" } - { bookauthor format.names.rev}% always cuts to 4 persons + { bookauthor fmt.names.three emphasize } if$ } -FUNCTION {format.editors.after} +FUNCTION {format.editors.rest} { editor empty$ { "" } - { bbl.edby "\ " * editor format.names.rev * } + { bbl.edby "\ " * editor fmt.names.three * } if$ } -FUNCTION {format.chief.after} +FUNCTION {format.chief.rest} { editor empty$ { "" } - { bbl.chief "\ " * editor format.names.rev * } + { bbl.chief "\ " * editor fmt.names.three * } if$ } -FUNCTION {format.executor.after} +FUNCTION {format.executor.rest} { author empty$ { "" } - { bbl.executor ": " * author format.names.rev * } + { bbl.executor ": " * author fmt.names.three * } if$ } -FUNCTION {format.compiler.after} +FUNCTION {format.compiler.rest} { compiler empty$ { "" } - { bbl.cmplr "\ " * compiler format.names.rev * } - if$ -} - -FUNCTION {format.title} -{ title empty$ - { "" } - { title "t" change.case$ } - if$ -} - -FUNCTION {format.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "\CYRYA\cyrn\cyrv." } - { month "Feb." = - { "\CYRF\cyre\cyrv\cyrr." } - { month "Mar." = - { "\CYRM\cyra\cyrr\cyrt" } - { month "Apr." = - { "\CYRA\cyrp\cyrr." } - { month "May" = - { "\CYRM\cyra\cyrishrt" } - { month "Jun." = - { "\CYRI\cyryu\cyrn\cyrsftsn" } - { month "Jul." = - { "\CYRI\cyryu\cyrl\cyrsftsn" } - { month "Aug." = - { "\CYRA\cyrv\cyrg\." } - { month "Sep." = - { "\CYRS\cyre\cyrn\cyrt." } - { month "Oct." = - { "\CYRO\cyrk\cyrt." } - { month "Nov." = - { "\CYRN\cyro\cyrya\cyrb." } - { month "Dec." = - { "\CYRD\cyre\cyrk." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month - } - if$ - } - { month empty$ - 'year - { year ". \BibDash " format.month * * } - if$ - } - if$ -} - -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } + { bbl.compiler "\ " * compiler fmt.names.three * } if$ } -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ -} - -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} FUNCTION {output.address.publisher} { address empty$ location empty$ and @@ -1064,88 +1460,26 @@ FUNCTION {output.address.publisher} if$ publisher output } - - FUNCTION {output.bibitem} -{ newline$ +{ + set.language + newline$ "\bibitem" write$ cite$ bracify write$ newline$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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 * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1174,30 +1508,6 @@ FUNCTION {format.number.series} 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 @@ -1214,38 +1524,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1266,15 +1544,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1337,6 +1606,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type "t" change.case$ } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1357,81 +1639,61 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ {author num.names$ #4 < - {format.authors output - new.sentence} + { + author fmt.names.three 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} +FUNCTION {output.author.rest} { author empty$ 'skip$ {author num.names$ #3 > - {format.authors.after output - new.semicolon } + { author fmt.names.all output + new.semicolon + } 'skip$ if$} if$ } -FUNCTION {bookauthor.after} +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.three output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1482,7 +1744,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1493,7 +1755,7 @@ FUNCTION {add.media} 'skip$ { media empty$ 'skip$ - { " " * bbl.media enclose.square.brackets * } + { " " * bbl.media bracketise * } if$ } if$ @@ -1574,14 +1836,15 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before - format.title add.media "title" output.check + output.author.head + %new.sentence + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1598,18 +1861,21 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1627,15 +1893,18 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before - format.title add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1647,22 +1916,25 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1680,18 +1952,21 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1708,14 +1983,21 @@ FUNCTION {incollection} FUNCTION {proceedings} { output.bibitem - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1726,22 +2008,26 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head new.sentence - format.title add.doi add.media "title" output.check + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -1761,10 +2047,12 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -1781,7 +2069,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1794,6 +2082,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -1801,9 +2091,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull new.semicolon holder output.nonnull new.semicolon @@ -1818,7 +2108,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -1831,13 +2121,15 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1848,13 +2140,16 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before - format.btitle "title" output.check + output.author.head + new.sentence + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -1865,12 +2160,14 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka howpublished output - editor.organization.after + editor.organization.rest new.sentence new.block output.address.publisher @@ -1889,25 +2186,24 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1917,13 +2213,14 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -1932,14 +2229,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -1952,9 +2249,9 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -1963,13 +2260,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1979,12 +2277,11 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -1993,13 +2290,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2009,12 +2307,11 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2023,13 +2320,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2039,7 +2337,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2047,7 +2344,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon format.techreport.type output new.colon @@ -2056,14 +2353,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2088,96 +2385,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2220,47 +2517,46 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"\CYRU\CYRF\CYRN"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - STRINGS { longest.label } INTEGERS { number.label longest.label.width } @@ -2297,15 +2593,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2328,5 +2616,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index df29d18687e..1dcc6a5621b 100644 --- a/Master/texmf-dist/bibtex/bst/gost/gost2008l.bst +++ b/Master/texmf-dist/bibtex/bst/gost/gost2008l.bst @@ -4,30 +4,22 @@ %% %% The original source files were: %% -%% gost.dtx (with options: `bst,modern,eprint,long') +%% gost.dtx (with options: `bst,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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from gost2008l.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.0.5-2008 for bibliographic reference. @@ -67,15 +59,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -100,8 +92,23 @@ ENTRY {} { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -114,11 +121,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -143,7 +157,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -177,7 +191,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -256,13 +272,6 @@ FUNCTION {or} if$ } - -FUNCTION {non.stop} -{ duplicate$ - "}" * add.period$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -309,9 +318,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -323,7 +344,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -331,7 +352,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -339,25 +360,82 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } -FUNCTION {bbl.edby} % { "\bbledby{}" } +FUNCTION {tie.connect} + {"~" swap$ * * + } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +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 {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "russian" = - {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyro\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -366,15 +444,15 @@ FUNCTION {bbl.cmplr} {"{\cyr\CYRU\cyrk\cyrl.}"} { curlanguage "russian" = {"{\cyr\CYRS\cyro\cyrs\cyrt.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{\cyr\cyrv\cyri\cyrd.}"} { curlanguage "russian" = @@ -385,7 +463,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -393,31 +471,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -426,13 +504,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -441,13 +519,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"\CYRV\cyrery\cyrp."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -456,13 +534,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{\cyr\cyrii\cyrz}" } { curlanguage "russian" = { "{\cyr\cyri\cyrz}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -471,126 +549,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} { curlanguage "russian" = {"{\cyr\cyri~\cyrd\cyrr.}"} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} +FUNCTION {bbl.and} +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"{\cyrii}"} + { curlanguage "russian" = + {"{\cyri}"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} + if$} + if$} + if$} +if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { 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"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { 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"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\cyrv}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "\CYRV" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -604,7 +702,10 @@ FUNCTION {bbl.url} { "{\CYRR\cyre\cyrzh\cyri\cyrm\ \cyrd\cyro\cyrs\cyrt\cyru\cyrp\cyra}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -618,20 +719,23 @@ FUNCTION {bbl.urldate} { "{\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" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -640,12 +744,12 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{\cyr\CYRK\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri" + { "{\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" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -654,13 +758,13 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrk\cyra\cyrn\cyrd. " "\cyrn\cyra\cyru\cyrk}" * } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -668,36 +772,23 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrd-\cyrr\cyra\ " "\cyrn\cyra\cyru\cyrk}" * } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type "t" change.case$ } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyrm.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -706,7 +797,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{\cyr\cyrb.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -715,7 +806,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -724,7 +815,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -737,7 +828,7 @@ FUNCTION {bbl.media.eresource} { 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 "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -751,7 +842,7 @@ FUNCTION {bbl.media.online} { curlanguage "ukrainian" = { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ " "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyr}" * } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -763,19 +854,19 @@ FUNCTION {bbl.chief} { "\cyrr\cyru\cyrk." } { curlanguage "ukrainian" = { "\cyrr\cyru\cyrk." } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "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 "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -797,7 +888,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{\cyr\cyrz\cyra\cyrya\cyrv\cyrl.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -813,7 +904,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{\cyr\cyro\cyrp\cyru\cyrb\cyrl.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -829,7 +920,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{\cyr\cyrp\cyrr\cyri\cyro\cyrr\cyri\cyrt\cyre\cyrt}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -837,69 +928,462 @@ FUNCTION {bbl.priority} if$ } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"\CYRS\cyrii\cyrch."} + { curlanguage "russian" = + { "\CYRYA\cyrn\cyrv." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"\CYRL\cyryu\cyrt."} + { curlanguage "russian" = + { "\CYRF\cyre\cyrv\cyrr." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"\CYRB\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrr\cyrt" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"\CYRK\cyrv\cyrii\cyrt."} + { curlanguage "russian" = + { "\CYRA\cyrp\cyrr." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"\CYRT\cyrr\cyra\cyrv."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrishrt" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"\CYRCH\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrn\cyrsftsn" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrp."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrl\cyrsftsn" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"\CYRS\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRA\cyrv\cyrg\." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"\CYRV\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRS\cyre\cyrn\cyrt." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"\CYRZH\cyro\cyrn."} + { curlanguage "russian" = + { "\CYRO\cyrk\cyrt." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrs."} + { curlanguage "russian" = + { "\CYRN\cyro\cyrya\cyrb." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"\CYRG\cyrr\cyru\cyrd."} + { curlanguage "russian" = + { "\CYRD\cyre\cyrk." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google \CYRK\cyrn\cyri\cyrg\cyri"} + { curlanguage "russian" = + { "Google \CYRK\cyrn\cyri\cyrg\cyri" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } + if$ +} + +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } + if$ +} + +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } + if$ +} +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } + if$ +} + +FUNCTION {format.month} +{ month empty$ + { "" } + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} + if$ +} +FUNCTION {format.date} +{ year.or.date.to.year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + format.month + } + if$ + } + { month empty$ + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } + if$ + } + if$ +} + INTEGERS { nameptr namesleft numnames } +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{~f.}" + format.name$ +} -FUNCTION {format.names} +FUNCTION {fmt.names.three} { '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$ - } + { 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$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } while$ } - -FUNCTION {format.names.rev} -{ - 's := +FUNCTION {fmt.names.all} +{ '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 := + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{~f.}" + format.name$ 't := nameptr #1 > - { nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > + { namesleft #1 > { ", " * t * } - { t "others" = - t "~others" = - or + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or { " " * bbl.etal * } - { ", " * t * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -912,145 +1396,52 @@ FUNCTION {format.names.rev} 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} +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} +{ + author empty$ + { author } %%%'skip$ + { author fmt.names.all } if$ } -FUNCTION {format.bookauthors.after} +FUNCTION {format.bookauthors.rest} { bookauthor empty$ { "" } - { bookauthor format.names.rev}% always cuts to 4 persons + { bookauthor fmt.names.all emphasize } if$ } -FUNCTION {format.editors.after} +FUNCTION {format.editors.rest} { editor empty$ { "" } - { bbl.edby "\ " * editor format.names.rev * } + { bbl.edby "\ " * editor fmt.names.all * } if$ } -FUNCTION {format.chief.after} +FUNCTION {format.chief.rest} { editor empty$ { "" } - { bbl.chief "\ " * editor format.names.rev * } + { bbl.chief "\ " * editor fmt.names.all * } if$ } -FUNCTION {format.executor.after} +FUNCTION {format.executor.rest} { author empty$ { "" } - { bbl.executor ": " * author format.names.rev * } + { bbl.executor ": " * author fmt.names.all * } if$ } -FUNCTION {format.compiler.after} +FUNCTION {format.compiler.rest} { compiler empty$ { "" } - { bbl.cmplr "\ " * compiler format.names.rev * } + { bbl.compiler "\ " * compiler fmt.names.all * } if$ } -FUNCTION {format.title} -{ title empty$ - { "" } - { title "t" change.case$ } - if$ -} - -FUNCTION {format.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "\CYRYA\cyrn\cyrv." } - { month "Feb." = - { "\CYRF\cyre\cyrv\cyrr." } - { month "Mar." = - { "\CYRM\cyra\cyrr\cyrt" } - { month "Apr." = - { "\CYRA\cyrp\cyrr." } - { month "May" = - { "\CYRM\cyra\cyrishrt" } - { month "Jun." = - { "\CYRI\cyryu\cyrn\cyrsftsn" } - { month "Jul." = - { "\CYRI\cyryu\cyrl\cyrsftsn" } - { month "Aug." = - { "\CYRA\cyrv\cyrg\." } - { month "Sep." = - { "\CYRS\cyre\cyrn\cyrt." } - { month "Oct." = - { "\CYRO\cyrk\cyrt." } - { month "Nov." = - { "\CYRN\cyro\cyrya\cyrb." } - { month "Dec." = - { "\CYRD\cyre\cyrk." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month - } - if$ - } - { month empty$ - 'year - { year ". \BibDash " format.month * * } - if$ - } - if$ -} - -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } - if$ -} - -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ -} - -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} FUNCTION {output.address.publisher} { address empty$ location empty$ and @@ -1064,88 +1455,26 @@ FUNCTION {output.address.publisher} if$ publisher output } - - FUNCTION {output.bibitem} -{ newline$ +{ + set.language + newline$ "\bibitem" write$ cite$ bracify write$ newline$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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 * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1174,30 +1503,6 @@ FUNCTION {format.number.series} 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 @@ -1214,38 +1519,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1266,15 +1539,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1337,6 +1601,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type "t" change.case$ } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1357,69 +1634,48 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ - { format.authors output - new.sentence + { author fmt.names.all output.nonnull + %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} +FUNCTION {output.author.rest} +{ +} + +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.three output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1470,7 +1726,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1481,7 +1737,7 @@ FUNCTION {add.media} 'skip$ { media empty$ 'skip$ - { " " * bbl.media enclose.square.brackets * } + { " " * bbl.media bracketise * } if$ } if$ @@ -1562,14 +1818,15 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before - format.title add.media "title" output.check + output.author.head + %new.sentence + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1586,18 +1843,21 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1615,15 +1875,18 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before - format.title add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1635,22 +1898,25 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1668,18 +1934,21 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1696,14 +1965,21 @@ FUNCTION {incollection} FUNCTION {proceedings} { output.bibitem - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1714,22 +1990,26 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head new.sentence - format.title add.doi add.media "title" output.check + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -1749,10 +2029,12 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -1769,7 +2051,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1782,6 +2064,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -1789,9 +2073,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull new.semicolon holder output.nonnull new.semicolon @@ -1806,7 +2090,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -1819,13 +2103,15 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1836,13 +2122,16 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before - format.btitle "title" output.check + output.author.head + new.sentence + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -1853,12 +2142,14 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka howpublished output - editor.organization.after + editor.organization.rest new.sentence new.block output.address.publisher @@ -1877,25 +2168,24 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1905,13 +2195,14 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -1920,14 +2211,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -1940,9 +2231,9 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -1951,13 +2242,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1967,12 +2259,11 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -1981,13 +2272,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1997,12 +2289,11 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2011,13 +2302,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2027,7 +2319,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2035,7 +2326,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon format.techreport.type output new.colon @@ -2044,14 +2335,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2076,96 +2367,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2208,47 +2499,46 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"\CYRU\CYRF\CYRN"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - STRINGS { longest.label } INTEGERS { number.label longest.label.width } @@ -2285,15 +2575,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2316,5 +2598,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index 952e2c2c78f..ae1ae5fe703 100644 --- a/Master/texmf-dist/bibtex/bst/gost/gost2008ls.bst +++ b/Master/texmf-dist/bibtex/bst/gost/gost2008ls.bst @@ -4,30 +4,22 @@ %% %% The original source files were: %% -%% gost.dtx (with options: `bst,modern,eprint,long,sort') +%% gost.dtx (with options: `bst,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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from gost2008ls.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.0.5-2008 for bibliographic reference. @@ -67,15 +59,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -100,8 +92,23 @@ ENTRY {} { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -114,11 +121,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -143,7 +157,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -177,7 +191,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -256,23 +272,6 @@ 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$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -319,9 +318,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -333,7 +344,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -341,7 +352,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -349,25 +360,92 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {tie.connect} + {"~" swap$ * * + } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +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 {bbl.edby} % { "\bbledby{}" } +FUNCTION {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "russian" = - {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyro\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -376,15 +454,15 @@ FUNCTION {bbl.cmplr} {"{\cyr\CYRU\cyrk\cyrl.}"} { curlanguage "russian" = {"{\cyr\CYRS\cyro\cyrs\cyrt.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{\cyr\cyrv\cyri\cyrd.}"} { curlanguage "russian" = @@ -395,7 +473,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -403,31 +481,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -436,13 +514,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -451,13 +529,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"\CYRV\cyrery\cyrp."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -466,13 +544,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{\cyr\cyrii\cyrz}" } { curlanguage "russian" = { "{\cyr\cyri\cyrz}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -481,126 +559,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} { curlanguage "russian" = {"{\cyr\cyri~\cyrd\cyrr.}"} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} +FUNCTION {bbl.and} +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"{\cyrii}"} + { curlanguage "russian" = + {"{\cyri}"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} + if$} + if$} + if$} +if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { 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"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { 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"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\cyrv}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "\CYRV" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -614,7 +712,10 @@ FUNCTION {bbl.url} { "{\CYRR\cyre\cyrzh\cyri\cyrm\ \cyrd\cyro\cyrs\cyrt\cyru\cyrp\cyra}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -628,20 +729,23 @@ FUNCTION {bbl.urldate} { "{\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" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -650,12 +754,12 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{\cyr\CYRK\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri" + { "{\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" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -664,13 +768,13 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrk\cyra\cyrn\cyrd. " "\cyrn\cyra\cyru\cyrk}" * } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -678,36 +782,23 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrd-\cyrr\cyra\ " "\cyrn\cyra\cyru\cyrk}" * } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type "t" change.case$ } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyrm.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -716,7 +807,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{\cyr\cyrb.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -725,7 +816,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -734,7 +825,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -747,7 +838,7 @@ FUNCTION {bbl.media.eresource} { 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 "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -761,7 +852,7 @@ FUNCTION {bbl.media.online} { curlanguage "ukrainian" = { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ " "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyr}" * } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -773,19 +864,19 @@ FUNCTION {bbl.chief} { "\cyrr\cyru\cyrk." } { curlanguage "ukrainian" = { "\cyrr\cyru\cyrk." } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "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 "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -807,7 +898,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{\cyr\cyrz\cyra\cyrya\cyrv\cyrl.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -823,7 +914,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{\cyr\cyro\cyrp\cyru\cyrb\cyrl.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -839,7 +930,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{\cyr\cyrp\cyrr\cyri\cyro\cyrr\cyri\cyrt\cyre\cyrt}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -847,69 +938,462 @@ FUNCTION {bbl.priority} if$ } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"\CYRS\cyrii\cyrch."} + { curlanguage "russian" = + { "\CYRYA\cyrn\cyrv." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"\CYRL\cyryu\cyrt."} + { curlanguage "russian" = + { "\CYRF\cyre\cyrv\cyrr." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"\CYRB\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrr\cyrt" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"\CYRK\cyrv\cyrii\cyrt."} + { curlanguage "russian" = + { "\CYRA\cyrp\cyrr." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"\CYRT\cyrr\cyra\cyrv."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrishrt" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"\CYRCH\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrn\cyrsftsn" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrp."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrl\cyrsftsn" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"\CYRS\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRA\cyrv\cyrg\." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"\CYRV\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRS\cyre\cyrn\cyrt." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"\CYRZH\cyro\cyrn."} + { curlanguage "russian" = + { "\CYRO\cyrk\cyrt." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrs."} + { curlanguage "russian" = + { "\CYRN\cyro\cyrya\cyrb." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"\CYRG\cyrr\cyru\cyrd."} + { curlanguage "russian" = + { "\CYRD\cyre\cyrk." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google \CYRK\cyrn\cyri\cyrg\cyri"} + { curlanguage "russian" = + { "Google \CYRK\cyrn\cyri\cyrg\cyri" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } + if$ +} + +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } + if$ +} + +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } + if$ +} +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } + if$ +} + +FUNCTION {format.month} +{ month empty$ + { "" } + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} + if$ +} +FUNCTION {format.date} +{ year.or.date.to.year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + format.month + } + if$ + } + { month empty$ + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } + if$ + } + if$ +} + INTEGERS { nameptr namesleft numnames } +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{~f.}" + format.name$ +} -FUNCTION {format.names} +FUNCTION {fmt.names.three} { '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$ - } + { 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$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } while$ } - -FUNCTION {format.names.rev} -{ - 's := +FUNCTION {fmt.names.all} +{ '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 := + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{~f.}" + format.name$ 't := nameptr #1 > - { nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > + { namesleft #1 > { ", " * t * } - { t "others" = - t "~others" = - or + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or { " " * bbl.etal * } - { ", " * t * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -922,145 +1406,52 @@ FUNCTION {format.names.rev} 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} +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} +{ + author empty$ + { author } %%%'skip$ + { author fmt.names.all } if$ } -FUNCTION {format.bookauthors.after} +FUNCTION {format.bookauthors.rest} { bookauthor empty$ { "" } - { bookauthor format.names.rev}% always cuts to 4 persons + { bookauthor fmt.names.all emphasize } if$ } -FUNCTION {format.editors.after} +FUNCTION {format.editors.rest} { editor empty$ { "" } - { bbl.edby "\ " * editor format.names.rev * } + { bbl.edby "\ " * editor fmt.names.all * } if$ } -FUNCTION {format.chief.after} +FUNCTION {format.chief.rest} { editor empty$ { "" } - { bbl.chief "\ " * editor format.names.rev * } + { bbl.chief "\ " * editor fmt.names.all * } if$ } -FUNCTION {format.executor.after} +FUNCTION {format.executor.rest} { author empty$ { "" } - { bbl.executor ": " * author format.names.rev * } + { bbl.executor ": " * author fmt.names.all * } if$ } -FUNCTION {format.compiler.after} +FUNCTION {format.compiler.rest} { compiler empty$ { "" } - { bbl.cmplr "\ " * compiler format.names.rev * } - if$ -} - -FUNCTION {format.title} -{ title empty$ - { "" } - { title "t" change.case$ } - if$ -} - -FUNCTION {format.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "\CYRYA\cyrn\cyrv." } - { month "Feb." = - { "\CYRF\cyre\cyrv\cyrr." } - { month "Mar." = - { "\CYRM\cyra\cyrr\cyrt" } - { month "Apr." = - { "\CYRA\cyrp\cyrr." } - { month "May" = - { "\CYRM\cyra\cyrishrt" } - { month "Jun." = - { "\CYRI\cyryu\cyrn\cyrsftsn" } - { month "Jul." = - { "\CYRI\cyryu\cyrl\cyrsftsn" } - { month "Aug." = - { "\CYRA\cyrv\cyrg\." } - { month "Sep." = - { "\CYRS\cyre\cyrn\cyrt." } - { month "Oct." = - { "\CYRO\cyrk\cyrt." } - { month "Nov." = - { "\CYRN\cyro\cyrya\cyrb." } - { month "Dec." = - { "\CYRD\cyre\cyrk." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month - } - if$ - } - { month empty$ - 'year - { year ". \BibDash " format.month * * } - if$ - } + { bbl.compiler "\ " * compiler fmt.names.all * } if$ } -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } - if$ -} - -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ -} - -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} FUNCTION {output.address.publisher} { address empty$ location empty$ and @@ -1074,88 +1465,26 @@ FUNCTION {output.address.publisher} if$ publisher output } - - FUNCTION {output.bibitem} -{ newline$ +{ + set.language + newline$ "\bibitem" write$ cite$ bracify write$ newline$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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 * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1184,30 +1513,6 @@ FUNCTION {format.number.series} 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 @@ -1224,38 +1529,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1276,15 +1549,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1347,6 +1611,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type "t" change.case$ } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1367,69 +1644,48 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ - { format.authors output - new.sentence + { author fmt.names.all output.nonnull + %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} +FUNCTION {output.author.rest} +{ +} + +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.three output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1480,7 +1736,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1491,7 +1747,7 @@ FUNCTION {add.media} 'skip$ { media empty$ 'skip$ - { " " * bbl.media enclose.square.brackets * } + { " " * bbl.media bracketise * } if$ } if$ @@ -1572,14 +1828,15 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before - format.title add.media "title" output.check + output.author.head + %new.sentence + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1596,18 +1853,21 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1625,15 +1885,18 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before - format.title add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1645,22 +1908,25 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1678,18 +1944,21 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head new.sentence - format.title add.doi add.media "title" output.check + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1706,14 +1975,21 @@ FUNCTION {incollection} FUNCTION {proceedings} { output.bibitem - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1724,22 +2000,26 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head new.sentence - format.title add.doi add.media "title" output.check + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -1759,10 +2039,12 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -1779,7 +2061,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1792,6 +2074,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -1799,9 +2083,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull new.semicolon holder output.nonnull new.semicolon @@ -1816,7 +2100,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -1829,13 +2113,15 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1846,13 +2132,16 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before - format.btitle "title" output.check + output.author.head + new.sentence + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -1863,12 +2152,14 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka howpublished output - editor.organization.after + editor.organization.rest new.sentence new.block output.address.publisher @@ -1887,25 +2178,24 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1915,13 +2205,14 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -1930,14 +2221,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -1950,9 +2241,9 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -1961,13 +2252,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1977,12 +2269,11 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -1991,13 +2282,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2007,12 +2299,11 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2021,13 +2312,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2037,7 +2329,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2045,7 +2336,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon format.techreport.type output new.colon @@ -2054,14 +2345,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2086,96 +2377,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2218,49 +2509,47 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"\CYRU\CYRF\CYRN"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - FUNCTION {sortify} { purify$ "l" change.case$ } - %% ===================================== %% This version from old Gost package %%<*!natbib> @@ -2347,10 +2636,9 @@ FUNCTION {author.title.sort} {author sort.format.names } {title sort.format.title} if$ - } + } if$ } - FUNCTION {presort}%#1 { author.title.sort @@ -2409,15 +2697,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2440,5 +2720,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index a58695ba507..b24d569d36e 100644 --- a/Master/texmf-dist/bibtex/bst/gost/gost2008n.bst +++ b/Master/texmf-dist/bibtex/bst/gost/gost2008n.bst @@ -4,30 +4,22 @@ %% %% The original source files were: %% -%% gost.dtx (with options: `bst,modern,natbib,eprint') +%% gost.dtx (with options: `bst,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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from gost2008n.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.0.5-2008 for bibliographic reference. %%------------------------------------------------------------------- @@ -37,7 +29,7 @@ %% 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, +%% 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. @@ -47,11 +39,11 @@ %% The \cite command functions as follows: %% \citet{key} => Jones et al. (1990) %% \citet*{key} => Jones, Baker, and Smith (1990) -%% \cite{key} => (Jones et al., 1990) -%% \cite*{key} => (Jones, Baker, and Smith, 1990) -%% \cite[chap. 2]{key} => (Jones et al., 1990, chap. 2) -%% \cite[e.g.][]{key} => (e.g. Jones et al., 1990) -%% \cite[e.g.][p. 32]{key} => (e.g. Jones et al., p. 32) +%% \cite{key} => (Jones et al., 1990) +%% \cite*{key} => (Jones, Baker, and Smith, 1990) +%% \cite[chap. 2]{key} => (Jones et al., 1990, chap. 2) +%% \cite[e.g.][]{key} => (e.g. Jones et al., 1990) +%% \cite[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 @@ -93,15 +85,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -126,8 +118,23 @@ ENTRY {} { label extra.label sort.label short.list } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -140,11 +147,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -169,7 +183,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -203,7 +217,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -282,23 +298,6 @@ 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$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -345,9 +344,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -359,7 +370,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -367,7 +378,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -375,25 +386,92 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {tie.connect} + {"~" swap$ * * + } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +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 {bbl.edby} % { "\bbledby{}" } +FUNCTION {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "russian" = - {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyro\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -402,15 +480,15 @@ FUNCTION {bbl.cmplr} {"{\cyr\CYRU\cyrk\cyrl.}"} { curlanguage "russian" = {"{\cyr\CYRS\cyro\cyrs\cyrt.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{\cyr\cyrv\cyri\cyrd.}"} { curlanguage "russian" = @@ -421,7 +499,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -429,31 +507,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -462,13 +540,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -477,13 +555,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"\CYRV\cyrery\cyrp."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -492,13 +570,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{\cyr\cyrii\cyrz}" } { curlanguage "russian" = { "{\cyr\cyri\cyrz}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -507,140 +585,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} { curlanguage "russian" = {"{\cyr\cyri~\cyrd\cyrr.}"} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} -FUNCTION {bbl.and} % { "\bbland{}" } +FUNCTION {bbl.and} { curlanguage "english" = - {"and"} + {"and"} { curlanguage "german" = { "und" } { curlanguage "ukrainian" = {"{\cyrii}"} { curlanguage "russian" = {"{\cyri}"} - {"language is not defined: " language "and" * * warning$ "and"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { 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"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { 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"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\cyrv}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "\CYRV" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -654,7 +738,10 @@ FUNCTION {bbl.url} { "{\CYRR\cyre\cyrzh\cyri\cyrm\ \cyrd\cyro\cyrs\cyrt\cyru\cyrp\cyra}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -668,20 +755,23 @@ FUNCTION {bbl.urldate} { "{\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" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -690,12 +780,12 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{\cyr\CYRK\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri" + { "{\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" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -704,13 +794,13 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrk\cyra\cyrn\cyrd. " "\cyrn\cyra\cyru\cyrk}" * } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -718,36 +808,23 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrd-\cyrr\cyra\ " "\cyrn\cyra\cyru\cyrk}" * } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type "t" change.case$ } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyrm.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -756,7 +833,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{\cyr\cyrb.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -765,7 +842,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -774,7 +851,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -787,7 +864,7 @@ FUNCTION {bbl.media.eresource} { 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 "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -801,7 +878,7 @@ FUNCTION {bbl.media.online} { curlanguage "ukrainian" = { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ " "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyr}" * } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -813,19 +890,19 @@ FUNCTION {bbl.chief} { "\cyrr\cyru\cyrk." } { curlanguage "ukrainian" = { "\cyrr\cyru\cyrk." } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "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 "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -847,7 +924,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{\cyr\cyrz\cyra\cyrya\cyrv\cyrl.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -863,7 +940,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{\cyr\cyro\cyrp\cyru\cyrb\cyrl.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -879,7 +956,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{\cyr\cyrp\cyrr\cyri\cyro\cyrr\cyri\cyrt\cyre\cyrt}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -887,32 +964,462 @@ FUNCTION {bbl.priority} if$ } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"\CYRS\cyrii\cyrch."} + { curlanguage "russian" = + { "\CYRYA\cyrn\cyrv." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"\CYRL\cyryu\cyrt."} + { curlanguage "russian" = + { "\CYRF\cyre\cyrv\cyrr." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"\CYRB\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrr\cyrt" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"\CYRK\cyrv\cyrii\cyrt."} + { curlanguage "russian" = + { "\CYRA\cyrp\cyrr." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"\CYRT\cyrr\cyra\cyrv."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrishrt" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"\CYRCH\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrn\cyrsftsn" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrp."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrl\cyrsftsn" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"\CYRS\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRA\cyrv\cyrg\." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"\CYRV\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRS\cyre\cyrn\cyrt." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"\CYRZH\cyro\cyrn."} + { curlanguage "russian" = + { "\CYRO\cyrk\cyrt." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrs."} + { curlanguage "russian" = + { "\CYRN\cyro\cyrya\cyrb." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"\CYRG\cyrr\cyru\cyrd."} + { curlanguage "russian" = + { "\CYRD\cyre\cyrk." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google \CYRK\cyrn\cyri\cyrg\cyri"} + { curlanguage "russian" = + { "Google \CYRK\cyrn\cyri\cyrg\cyri" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } + if$ +} + +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } + if$ +} + +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } + if$ +} +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } + if$ +} + +FUNCTION {format.month} +{ month empty$ + { "" } + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} + if$ +} +FUNCTION {format.date} +{ year.or.date.to.year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + format.month + } + if$ + } + { month empty$ + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } + if$ + } + if$ +} + INTEGERS { nameptr namesleft numnames } +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{~f.}" + format.name$ +} -FUNCTION {format.names} +FUNCTION {fmt.names.three} { '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 {fmt.names.all} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := { namesleft #0 > } { s nameptr - "{vv~}{ll}{~jj}{~f.}" format.name$ 't := + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{~f.}" + format.name$ 't := nameptr #1 > - { nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > + { namesleft #1 > { ", " * t * } - { t "others" = - t "~others" = - or + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or { " " * bbl.etal * } - { ", " * t * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -925,55 +1432,76 @@ FUNCTION {format.names} while$ } -FUNCTION {format.lab.names} -{ 's := - language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} +{ + author empty$ + { author } %%%'skip$ + {author num.names$ #4 < + { + author fmt.names.three + } + { "" } %%%'skip$ + if$} 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$ - } +} + +FUNCTION {format.bookauthors.rest} +{ bookauthor empty$ + { "" } + { bookauthor fmt.names.three emphasize } if$ } -FUNCTION {format.names.rev} -{ - 's := +FUNCTION {format.editors.rest} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.chief.rest} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.executor.rest} +{ author empty$ + { "" } + { bbl.executor ": " * author fmt.names.three * } + if$ +} + +FUNCTION {format.compiler.rest} +{ compiler empty$ + { "" } + { bbl.compiler "\ " * compiler fmt.names.three * } + if$ +} + +FUNCTION {fmt.names.brief} +{ '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 := + { s nameptr "{vv~}{ll}" 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 * } + { + numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or + { " " bbl.etal * * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -986,17 +1514,29 @@ FUNCTION {format.names.rev} while$ } -FUNCTION {format.key} -{ empty$ - { key field.or.null } - { "" } +FUNCTION {format.names.key} +{ 's := + set.language %%% уже вызвана в output.bibitem, но вроде бы нужна и здесь + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " " bbl.etal * * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " bbl.etal * * } + { " " bbl.and " " * * * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } if$ } -FUNCTION {format.authors} -{ author empty$ +FUNCTION {format.key} +{ empty$ + { key field.or.null } { "" } - { author format.names emphasize} if$ } @@ -1007,10 +1547,9 @@ FUNCTION {author.key.label} 'key if$ } - { author format.lab.names } + { author format.names.key } if$ } - FUNCTION {author.editor.key.label} { author empty$ { editor empty$ @@ -1020,10 +1559,10 @@ FUNCTION {author.editor.key.label} { "{}" key * } %% Bug in bibtex8 ?? if$ } - { editor format.lab.names } + { editor format.names.key } if$ } - { author format.lab.names } + { author format.names.key } if$ } @@ -1038,7 +1577,7 @@ FUNCTION {author.key.organization.label} 'key if$ } - { author format.lab.names } + { author format.names.key } if$ } @@ -1053,14 +1592,12 @@ FUNCTION {editor.key.organization.label} 'key if$ } - { editor format.lab.names } + { editor format.names.key } if$ } -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or +FUNCTION {calc.short.list} +{ type$ "book" = type$ "inbook" = or 'author.editor.key.label { type$ "proceedings" = 'editor.key.organization.label @@ -1076,11 +1613,11 @@ FUNCTION {calc.short.authors} } FUNCTION {calc.label} -{ calc.short.authors +{ calc.short.list short.list "(" * - year duplicate$ empty$ + year.or.date.to.year duplicate$ empty$ short.list key field.or.null = or { pop$ "" } 'skip$ @@ -1089,138 +1626,36 @@ FUNCTION {calc.label} '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.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "\CYRYA\cyrn\cyrv." } - { month "Feb." = - { "\CYRF\cyre\cyrv\cyrr." } - { month "Mar." = - { "\CYRM\cyra\cyrr\cyrt" } - { month "Apr." = - { "\CYRA\cyrp\cyrr." } - { month "May" = - { "\CYRM\cyra\cyrishrt" } - { month "Jun." = - { "\CYRI\cyryu\cyrn\cyrsftsn" } - { month "Jul." = - { "\CYRI\cyryu\cyrl\cyrsftsn" } - { month "Aug." = - { "\CYRA\cyrv\cyrg\." } - { month "Sep." = - { "\CYRS\cyre\cyrn\cyrt." } - { month "Oct." = - { "\CYRO\cyrk\cyrt." } - { month "Nov." = - { "\CYRN\cyro\cyrya\cyrb." } - { month "Dec." = - { "\CYRD\cyre\cyrk." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month +FUNCTION {calc.long.list} %% called 1 time only +{ type$ "book" = type$ "inbook" = or + %'format.author.editor.brief + { author empty$ + { editor empty$ + { "" } + { editor fmt.names.brief } + if$ } + { author fmt.names.brief } if$ } - { month empty$ - 'year - { year ". \BibDash " format.month * * } + { type$ "proceedings" = + %'format.editor.brief + { editor empty$ + { "" } + { editor fmt.names.brief } + if$ + } + %'format.author.brief + { author empty$ + { "" } + { author fmt.names.brief } + if$ + } if$ } if$ - extra.label * % new in v.1.2 } -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } - if$ -} - -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ -} - -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} FUNCTION {output.address.publisher} { address empty$ location empty$ and @@ -1234,173 +1669,26 @@ FUNCTION {output.address.publisher} 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$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid 'curlanguage := } - if$ +{ + set.language + newline$ + "\bibitem" write$ + label extra.label * ")" * + calc.long.list * + bracketise write$ + cite$ bracify write$ + newline$ "\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$ -} +%% "; mfn:" calc.long.list * * FUNCTION {format.bvolume} { volume empty$ @@ -1408,7 +1696,7 @@ FUNCTION {format.bvolume} { bbl.vvol volume tie.connect series empty$ 'skip$ - { bbl.of space.word * series emphasize * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1437,30 +1725,6 @@ FUNCTION {format.number.series} 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 @@ -1477,38 +1741,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1529,15 +1761,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1600,6 +1823,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type "t" change.case$ } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1620,81 +1856,61 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ {author num.names$ #4 < - {format.authors output - new.sentence} + { + author fmt.names.three 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} +FUNCTION {output.author.rest} { author empty$ 'skip$ {author num.names$ #3 > - {format.authors.after output - new.semicolon } + { author fmt.names.all output + new.semicolon + } 'skip$ if$} if$ } -FUNCTION {bookauthor.after} +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.three output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1745,7 +1961,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1756,7 +1972,7 @@ FUNCTION {add.media} 'skip$ { media empty$ 'skip$ - { " " * bbl.media enclose.square.brackets * } + { " " * bbl.media bracketise * } if$ } if$ @@ -1837,15 +2053,16 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before + output.author.head + %new.sentence author format.key output - format.title add.media "title" output.check + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1862,19 +2079,22 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1892,16 +2112,19 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1913,23 +2136,26 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1947,19 +2173,22 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head + new.sentence author format.key output new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1977,14 +2206,21 @@ FUNCTION {proceedings} { output.bibitem editor format.key output - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1995,23 +2231,27 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head + new.sentence author format.key output new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -2031,11 +2271,13 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ author format.key output new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -2052,7 +2294,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -2065,6 +2307,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -2072,9 +2316,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull author format.key output new.semicolon holder output.nonnull @@ -2090,7 +2334,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -2103,14 +2347,16 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k author format.key output title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -2121,14 +2367,17 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.btitle "title" output.check + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -2139,13 +2388,15 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output author format.key output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka howpublished output - editor.organization.after + editor.organization.rest new.sentence new.block output.address.publisher @@ -2164,26 +2415,25 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2193,14 +2443,15 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check title format.key output + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -2209,14 +2460,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2229,10 +2480,10 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -2241,13 +2492,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2257,13 +2509,12 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -2272,13 +2523,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2288,13 +2540,12 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2303,13 +2554,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2319,7 +2571,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2327,7 +2578,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check title format.key output new.colon format.techreport.type output @@ -2337,14 +2588,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2369,96 +2620,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2501,50 +2752,48 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"\CYRU\CYRF\CYRN"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - FUNCTION {sortify} { purify$ "l" change.case$ } - INTEGERS { seq.num } FUNCTION {init.seq} @@ -2618,7 +2867,7 @@ FUNCTION {reverse.pass} { "{\natexlab{" swap$ * "}}" * } if$ 'extra.label := - label extra.label * 'label := + %%%label extra.label * 'label := } REVERSE {reverse.pass} @@ -2641,15 +2890,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2673,5 +2914,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index ab98c1f6606..12199d503fa 100644 --- a/Master/texmf-dist/bibtex/bst/gost/gost2008ns.bst +++ b/Master/texmf-dist/bibtex/bst/gost/gost2008ns.bst @@ -4,30 +4,22 @@ %% %% The original source files were: %% -%% gost.dtx (with options: `bst,modern,natbib,eprint,sort') +%% gost.dtx (with options: `bst,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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from gost2008ns.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.0.5-2008 for bibliographic reference. %%------------------------------------------------------------------- @@ -37,7 +29,7 @@ %% 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, +%% 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. @@ -47,11 +39,11 @@ %% The \cite command functions as follows: %% \citet{key} => Jones et al. (1990) %% \citet*{key} => Jones, Baker, and Smith (1990) -%% \cite{key} => (Jones et al., 1990) -%% \cite*{key} => (Jones, Baker, and Smith, 1990) -%% \cite[chap. 2]{key} => (Jones et al., 1990, chap. 2) -%% \cite[e.g.][]{key} => (e.g. Jones et al., 1990) -%% \cite[e.g.][p. 32]{key} => (e.g. Jones et al., p. 32) +%% \cite{key} => (Jones et al., 1990) +%% \cite*{key} => (Jones, Baker, and Smith, 1990) +%% \cite[chap. 2]{key} => (Jones et al., 1990, chap. 2) +%% \cite[e.g.][]{key} => (e.g. Jones et al., 1990) +%% \cite[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 @@ -93,15 +85,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -126,8 +118,23 @@ ENTRY {} { label extra.label sort.label short.list } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -140,11 +147,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -169,7 +183,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -203,7 +217,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -282,23 +298,6 @@ 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$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -345,9 +344,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -359,7 +370,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -367,7 +378,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -375,25 +386,92 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {tie.connect} + {"~" swap$ * * + } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +INTEGERS { multiresult } -FUNCTION {bbl.edby} % { "\bbledby{}" } +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 {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "russian" = - {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyro\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -402,15 +480,15 @@ FUNCTION {bbl.cmplr} {"{\cyr\CYRU\cyrk\cyrl.}"} { curlanguage "russian" = {"{\cyr\CYRS\cyro\cyrs\cyrt.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{\cyr\cyrv\cyri\cyrd.}"} { curlanguage "russian" = @@ -421,7 +499,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -429,31 +507,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -462,13 +540,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -477,13 +555,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"\CYRV\cyrery\cyrp."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -492,13 +570,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{\cyr\cyrii\cyrz}" } { curlanguage "russian" = { "{\cyr\cyri\cyrz}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -507,140 +585,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} { curlanguage "russian" = {"{\cyr\cyri~\cyrd\cyrr.}"} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} -FUNCTION {bbl.and} % { "\bbland{}" } +FUNCTION {bbl.and} { curlanguage "english" = - {"and"} + {"and"} { curlanguage "german" = { "und" } { curlanguage "ukrainian" = {"{\cyrii}"} { curlanguage "russian" = {"{\cyri}"} - {"language is not defined: " language "and" * * warning$ "and"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { 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"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { 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"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\cyrv}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "\CYRV" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -654,7 +738,10 @@ FUNCTION {bbl.url} { "{\CYRR\cyre\cyrzh\cyri\cyrm\ \cyrd\cyro\cyrs\cyrt\cyru\cyrp\cyra}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -668,20 +755,23 @@ FUNCTION {bbl.urldate} { "{\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" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -690,12 +780,12 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{\cyr\CYRK\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri" + { "{\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" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -704,13 +794,13 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrk\cyra\cyrn\cyrd. " "\cyrn\cyra\cyru\cyrk}" * } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -718,36 +808,23 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrd-\cyrr\cyra\ " "\cyrn\cyra\cyru\cyrk}" * } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type "t" change.case$ } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyrm.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -756,7 +833,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{\cyr\cyrb.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -765,7 +842,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -774,7 +851,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -787,7 +864,7 @@ FUNCTION {bbl.media.eresource} { 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 "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -801,7 +878,7 @@ FUNCTION {bbl.media.online} { curlanguage "ukrainian" = { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ " "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyr}" * } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -813,19 +890,19 @@ FUNCTION {bbl.chief} { "\cyrr\cyru\cyrk." } { curlanguage "ukrainian" = { "\cyrr\cyru\cyrk." } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "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 "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -847,7 +924,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{\cyr\cyrz\cyra\cyrya\cyrv\cyrl.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -863,7 +940,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{\cyr\cyro\cyrp\cyru\cyrb\cyrl.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -879,7 +956,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{\cyr\cyrp\cyrr\cyri\cyro\cyrr\cyri\cyrt\cyre\cyrt}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -887,32 +964,462 @@ FUNCTION {bbl.priority} if$ } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"\CYRS\cyrii\cyrch."} + { curlanguage "russian" = + { "\CYRYA\cyrn\cyrv." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"\CYRL\cyryu\cyrt."} + { curlanguage "russian" = + { "\CYRF\cyre\cyrv\cyrr." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"\CYRB\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrr\cyrt" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"\CYRK\cyrv\cyrii\cyrt."} + { curlanguage "russian" = + { "\CYRA\cyrp\cyrr." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"\CYRT\cyrr\cyra\cyrv."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrishrt" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"\CYRCH\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrn\cyrsftsn" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrp."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrl\cyrsftsn" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"\CYRS\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRA\cyrv\cyrg\." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"\CYRV\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRS\cyre\cyrn\cyrt." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"\CYRZH\cyro\cyrn."} + { curlanguage "russian" = + { "\CYRO\cyrk\cyrt." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrs."} + { curlanguage "russian" = + { "\CYRN\cyro\cyrya\cyrb." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"\CYRG\cyrr\cyru\cyrd."} + { curlanguage "russian" = + { "\CYRD\cyre\cyrk." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google \CYRK\cyrn\cyri\cyrg\cyri"} + { curlanguage "russian" = + { "Google \CYRK\cyrn\cyri\cyrg\cyri" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } + if$ +} + +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } + if$ +} + +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } + if$ +} +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } + if$ +} + +FUNCTION {format.month} +{ month empty$ + { "" } + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} + if$ +} +FUNCTION {format.date} +{ year.or.date.to.year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + format.month + } + if$ + } + { month empty$ + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } + if$ + } + if$ +} + INTEGERS { nameptr namesleft numnames } +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{~f.}" + format.name$ +} -FUNCTION {format.names} +FUNCTION {fmt.names.three} { '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 {fmt.names.all} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := { namesleft #0 > } { s nameptr - "{vv~}{ll}{~jj}{~f.}" format.name$ 't := + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{~f.}" + format.name$ 't := nameptr #1 > - { nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > + { namesleft #1 > { ", " * t * } - { t "others" = - t "~others" = - or + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or { " " * bbl.etal * } - { ", " * t * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -925,55 +1432,76 @@ FUNCTION {format.names} while$ } -FUNCTION {format.lab.names} -{ 's := - language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} +{ + author empty$ + { author } %%%'skip$ + {author num.names$ #4 < + { + author fmt.names.three + } + { "" } %%%'skip$ + if$} 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$ - } +} + +FUNCTION {format.bookauthors.rest} +{ bookauthor empty$ + { "" } + { bookauthor fmt.names.three emphasize } if$ } -FUNCTION {format.names.rev} -{ - 's := +FUNCTION {format.editors.rest} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.chief.rest} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.executor.rest} +{ author empty$ + { "" } + { bbl.executor ": " * author fmt.names.three * } + if$ +} + +FUNCTION {format.compiler.rest} +{ compiler empty$ + { "" } + { bbl.compiler "\ " * compiler fmt.names.three * } + if$ +} + +FUNCTION {fmt.names.brief} +{ '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 := + { s nameptr "{vv~}{ll}" 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 * } + { + numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or + { " " bbl.etal * * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -986,17 +1514,29 @@ FUNCTION {format.names.rev} while$ } -FUNCTION {format.key} -{ empty$ - { key field.or.null } - { "" } +FUNCTION {format.names.key} +{ 's := + set.language %%% уже вызвана в output.bibitem, но вроде бы нужна и здесь + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " " bbl.etal * * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " bbl.etal * * } + { " " bbl.and " " * * * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } if$ } -FUNCTION {format.authors} -{ author empty$ +FUNCTION {format.key} +{ empty$ + { key field.or.null } { "" } - { author format.names emphasize} if$ } @@ -1007,10 +1547,9 @@ FUNCTION {author.key.label} 'key if$ } - { author format.lab.names } + { author format.names.key } if$ } - FUNCTION {author.editor.key.label} { author empty$ { editor empty$ @@ -1020,10 +1559,10 @@ FUNCTION {author.editor.key.label} { "{}" key * } %% Bug in bibtex8 ?? if$ } - { editor format.lab.names } + { editor format.names.key } if$ } - { author format.lab.names } + { author format.names.key } if$ } @@ -1038,7 +1577,7 @@ FUNCTION {author.key.organization.label} 'key if$ } - { author format.lab.names } + { author format.names.key } if$ } @@ -1053,14 +1592,12 @@ FUNCTION {editor.key.organization.label} 'key if$ } - { editor format.lab.names } + { editor format.names.key } if$ } -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or +FUNCTION {calc.short.list} +{ type$ "book" = type$ "inbook" = or 'author.editor.key.label { type$ "proceedings" = 'editor.key.organization.label @@ -1076,11 +1613,11 @@ FUNCTION {calc.short.authors} } FUNCTION {calc.label} -{ calc.short.authors +{ calc.short.list short.list "(" * - year duplicate$ empty$ + year.or.date.to.year duplicate$ empty$ short.list key field.or.null = or { pop$ "" } 'skip$ @@ -1089,138 +1626,36 @@ FUNCTION {calc.label} '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.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "\CYRYA\cyrn\cyrv." } - { month "Feb." = - { "\CYRF\cyre\cyrv\cyrr." } - { month "Mar." = - { "\CYRM\cyra\cyrr\cyrt" } - { month "Apr." = - { "\CYRA\cyrp\cyrr." } - { month "May" = - { "\CYRM\cyra\cyrishrt" } - { month "Jun." = - { "\CYRI\cyryu\cyrn\cyrsftsn" } - { month "Jul." = - { "\CYRI\cyryu\cyrl\cyrsftsn" } - { month "Aug." = - { "\CYRA\cyrv\cyrg\." } - { month "Sep." = - { "\CYRS\cyre\cyrn\cyrt." } - { month "Oct." = - { "\CYRO\cyrk\cyrt." } - { month "Nov." = - { "\CYRN\cyro\cyrya\cyrb." } - { month "Dec." = - { "\CYRD\cyre\cyrk." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month +FUNCTION {calc.long.list} %% called 1 time only +{ type$ "book" = type$ "inbook" = or + %'format.author.editor.brief + { author empty$ + { editor empty$ + { "" } + { editor fmt.names.brief } + if$ } + { author fmt.names.brief } if$ } - { month empty$ - 'year - { year ". \BibDash " format.month * * } + { type$ "proceedings" = + %'format.editor.brief + { editor empty$ + { "" } + { editor fmt.names.brief } + if$ + } + %'format.author.brief + { author empty$ + { "" } + { author fmt.names.brief } + if$ + } if$ } if$ - extra.label * % new in v.1.2 -} - -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } - if$ -} - -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ } -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} FUNCTION {output.address.publisher} { address empty$ location empty$ and @@ -1234,173 +1669,26 @@ FUNCTION {output.address.publisher} 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$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid 'curlanguage := } - if$ +{ + set.language + newline$ + "\bibitem" write$ + label extra.label * ")" * + calc.long.list * + bracketise write$ + cite$ bracify write$ + newline$ "\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$ -} +%% "; mfn:" calc.long.list * * FUNCTION {format.bvolume} { volume empty$ @@ -1408,7 +1696,7 @@ FUNCTION {format.bvolume} { bbl.vvol volume tie.connect series empty$ 'skip$ - { bbl.of space.word * series emphasize * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1437,30 +1725,6 @@ FUNCTION {format.number.series} 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 @@ -1477,38 +1741,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1529,15 +1761,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1600,6 +1823,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type "t" change.case$ } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1620,81 +1856,61 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ {author num.names$ #4 < - {format.authors output - new.sentence} + { + author fmt.names.three 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} +FUNCTION {output.author.rest} { author empty$ 'skip$ {author num.names$ #3 > - {format.authors.after output - new.semicolon } + { author fmt.names.all output + new.semicolon + } 'skip$ if$} if$ } -FUNCTION {bookauthor.after} +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.three output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1745,7 +1961,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1756,7 +1972,7 @@ FUNCTION {add.media} 'skip$ { media empty$ 'skip$ - { " " * bbl.media enclose.square.brackets * } + { " " * bbl.media bracketise * } if$ } if$ @@ -1837,15 +2053,16 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before + output.author.head + %new.sentence author format.key output - format.title add.media "title" output.check + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1862,19 +2079,22 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1892,16 +2112,19 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1913,23 +2136,26 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1947,19 +2173,22 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head + new.sentence author format.key output new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1977,14 +2206,21 @@ FUNCTION {proceedings} { output.bibitem editor format.key output - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1995,23 +2231,27 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head + new.sentence author format.key output new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -2031,11 +2271,13 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ author format.key output new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -2052,7 +2294,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -2065,6 +2307,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -2072,9 +2316,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull author format.key output new.semicolon holder output.nonnull @@ -2090,7 +2334,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -2103,14 +2347,16 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k author format.key output title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -2121,14 +2367,17 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.btitle "title" output.check + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -2139,13 +2388,15 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output author format.key output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka howpublished output - editor.organization.after + editor.organization.rest new.sentence new.block output.address.publisher @@ -2164,26 +2415,25 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2193,14 +2443,15 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check title format.key output + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -2209,14 +2460,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2229,10 +2480,10 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -2241,13 +2492,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2257,13 +2509,12 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -2272,13 +2523,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2288,13 +2540,12 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2303,13 +2554,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2319,7 +2571,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2327,7 +2578,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check title format.key output new.colon format.techreport.type output @@ -2337,14 +2588,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2369,96 +2620,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2501,49 +2752,47 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"\CYRU\CYRF\CYRN"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - FUNCTION {sortify} { purify$ "l" change.case$ } - %% ===================================== %% This version from old Gost package %%<*!natbib> @@ -2625,40 +2874,7 @@ FUNCTION {author.title.sort} {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$ } @@ -2678,7 +2894,6 @@ FUNCTION {editor.organization.sort} { editor sort.format.names } if$ } - FUNCTION {presort}%#2 { calc.label label sortify @@ -2752,7 +2967,7 @@ FUNCTION {reverse.pass} { "{\natexlab{" swap$ * "}}" * } if$ 'extra.label := - label extra.label * 'label := + %%%label extra.label * 'label := } REVERSE {reverse.pass} @@ -2775,15 +2990,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2807,5 +3014,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index 5f659547847..cc9ed9ee472 100644 --- a/Master/texmf-dist/bibtex/bst/gost/gost2008s.bst +++ b/Master/texmf-dist/bibtex/bst/gost/gost2008s.bst @@ -4,30 +4,22 @@ %% %% The original source files were: %% -%% gost.dtx (with options: `bst,modern,eprint,sort') +%% gost.dtx (with options: `bst,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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from gost2008s.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.0.5-2008 for bibliographic reference. @@ -67,15 +59,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -100,8 +92,23 @@ ENTRY {} { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -114,11 +121,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -143,7 +157,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -177,7 +191,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -256,23 +272,6 @@ 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$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -319,9 +318,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -333,7 +344,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -341,7 +352,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -349,25 +360,92 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {tie.connect} + {"~" swap$ * * + } -FUNCTION {bbl.edby} % { "\bbledby{}" } +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +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 {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyrii\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "russian" = - {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.}"} + {"{\cyr\cyrp\cyro\cyrd\ \cyrr\cyre\cyrd.}"} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -376,15 +454,15 @@ FUNCTION {bbl.cmplr} {"{\cyr\CYRU\cyrk\cyrl.}"} { curlanguage "russian" = {"{\cyr\CYRS\cyro\cyrs\cyrt.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{\cyr\cyrv\cyri\cyrd.}"} { curlanguage "russian" = @@ -395,7 +473,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -403,31 +481,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -436,13 +514,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -451,13 +529,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"\CYRV\cyrery\cyrp."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -466,13 +544,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{\cyr\cyrii\cyrz}" } { curlanguage "russian" = { "{\cyr\cyri\cyrz}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -481,126 +559,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} { curlanguage "russian" = {"{\cyr\cyri~\cyrd\cyrr.}"} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} +FUNCTION {bbl.and} +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"{\cyrii}"} + { curlanguage "russian" = + {"{\cyri}"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} + if$} + if$} + if$} +if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { 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"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { 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"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\textnumero}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{\cyr\cyrv}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "\CYRV" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -614,7 +712,10 @@ FUNCTION {bbl.url} { "{\CYRR\cyre\cyrzh\cyri\cyrm\ \cyrd\cyro\cyrs\cyrt\cyru\cyrp\cyra}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -628,20 +729,23 @@ FUNCTION {bbl.urldate} { "{\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" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -650,12 +754,12 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{\cyr\CYRK\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri" + { "{\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" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -664,13 +768,13 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrk\cyra\cyrn\cyrd. " "\cyrn\cyra\cyru\cyrk}" * } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -678,36 +782,23 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrd-\cyrr\cyra\ " "\cyrn\cyra\cyru\cyrk}" * } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type "t" change.case$ } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyrm.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -716,7 +807,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{\cyr\cyrb.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -725,7 +816,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{\cyr\CYRB.\ \cyri.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -734,7 +825,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -747,7 +838,7 @@ FUNCTION {bbl.media.eresource} { 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 "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -761,7 +852,7 @@ FUNCTION {bbl.media.online} { curlanguage "ukrainian" = { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ " "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyr}" * } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -773,19 +864,19 @@ FUNCTION {bbl.chief} { "\cyrr\cyru\cyrk." } { curlanguage "ukrainian" = { "\cyrr\cyru\cyrk." } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "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 "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -807,7 +898,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{\cyr\cyrz\cyra\cyrya\cyrv\cyrl.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -823,7 +914,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{\cyr\cyro\cyrp\cyru\cyrb\cyrl.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -839,7 +930,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{\cyr\cyrp\cyrr\cyri\cyro\cyrr\cyri\cyrt\cyre\cyrt}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -847,69 +938,462 @@ FUNCTION {bbl.priority} if$ } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"\CYRS\cyrii\cyrch."} + { curlanguage "russian" = + { "\CYRYA\cyrn\cyrv." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"\CYRL\cyryu\cyrt."} + { curlanguage "russian" = + { "\CYRF\cyre\cyrv\cyrr." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"\CYRB\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrr\cyrt" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"\CYRK\cyrv\cyrii\cyrt."} + { curlanguage "russian" = + { "\CYRA\cyrp\cyrr." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"\CYRT\cyrr\cyra\cyrv."} + { curlanguage "russian" = + { "\CYRM\cyra\cyrishrt" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"\CYRCH\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrn\cyrsftsn" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrp."} + { curlanguage "russian" = + { "\CYRI\cyryu\cyrl\cyrsftsn" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"\CYRS\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRA\cyrv\cyrg\." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"\CYRV\cyre\cyrr."} + { curlanguage "russian" = + { "\CYRS\cyre\cyrn\cyrt." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"\CYRZH\cyro\cyrn."} + { curlanguage "russian" = + { "\CYRO\cyrk\cyrt." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"\CYRL\cyri\cyrs."} + { curlanguage "russian" = + { "\CYRN\cyro\cyrya\cyrb." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"\CYRG\cyrr\cyru\cyrd."} + { curlanguage "russian" = + { "\CYRD\cyre\cyrk." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google \CYRK\cyrn\cyri\cyrg\cyri"} + { curlanguage "russian" = + { "Google \CYRK\cyrn\cyri\cyrg\cyri" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } + if$ +} + +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } + if$ +} + +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } + if$ +} +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } + if$ +} + +FUNCTION {format.month} +{ month empty$ + { "" } + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} + if$ +} +FUNCTION {format.date} +{ year.or.date.to.year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + format.month + } + if$ + } + { month empty$ + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } + if$ + } + if$ +} + INTEGERS { nameptr namesleft numnames } +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{~f.}" + format.name$ +} -FUNCTION {format.names} +FUNCTION {fmt.names.three} { '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$ - } + { 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$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } while$ } - -FUNCTION {format.names.rev} -{ - 's := +FUNCTION {fmt.names.all} +{ '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 := + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{~f.}" + format.name$ 't := nameptr #1 > - { nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > + { namesleft #1 > { ", " * t * } - { t "others" = - t "~others" = - or + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or { " " * bbl.etal * } - { ", " * t * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -922,145 +1406,57 @@ FUNCTION {format.names.rev} 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} +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} +{ + author empty$ + { author } %%%'skip$ + {author num.names$ #4 < + { + author fmt.names.three + } + { "" } %%%'skip$ + if$} if$ } -FUNCTION {format.bookauthors.after} +FUNCTION {format.bookauthors.rest} { bookauthor empty$ { "" } - { bookauthor format.names.rev}% always cuts to 4 persons + { bookauthor fmt.names.three emphasize } if$ } -FUNCTION {format.editors.after} +FUNCTION {format.editors.rest} { editor empty$ { "" } - { bbl.edby "\ " * editor format.names.rev * } + { bbl.edby "\ " * editor fmt.names.three * } if$ } -FUNCTION {format.chief.after} +FUNCTION {format.chief.rest} { editor empty$ { "" } - { bbl.chief "\ " * editor format.names.rev * } + { bbl.chief "\ " * editor fmt.names.three * } if$ } -FUNCTION {format.executor.after} +FUNCTION {format.executor.rest} { author empty$ { "" } - { bbl.executor ": " * author format.names.rev * } + { bbl.executor ": " * author fmt.names.three * } if$ } -FUNCTION {format.compiler.after} +FUNCTION {format.compiler.rest} { compiler empty$ { "" } - { bbl.cmplr "\ " * compiler format.names.rev * } - if$ -} - -FUNCTION {format.title} -{ title empty$ - { "" } - { title "t" change.case$ } - if$ -} - -FUNCTION {format.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "\CYRYA\cyrn\cyrv." } - { month "Feb." = - { "\CYRF\cyre\cyrv\cyrr." } - { month "Mar." = - { "\CYRM\cyra\cyrr\cyrt" } - { month "Apr." = - { "\CYRA\cyrp\cyrr." } - { month "May" = - { "\CYRM\cyra\cyrishrt" } - { month "Jun." = - { "\CYRI\cyryu\cyrn\cyrsftsn" } - { month "Jul." = - { "\CYRI\cyryu\cyrl\cyrsftsn" } - { month "Aug." = - { "\CYRA\cyrv\cyrg\." } - { month "Sep." = - { "\CYRS\cyre\cyrn\cyrt." } - { month "Oct." = - { "\CYRO\cyrk\cyrt." } - { month "Nov." = - { "\CYRN\cyro\cyrya\cyrb." } - { month "Dec." = - { "\CYRD\cyre\cyrk." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month - } - if$ - } - { month empty$ - 'year - { year ". \BibDash " format.month * * } - if$ - } + { bbl.compiler "\ " * compiler fmt.names.three * } if$ } -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } - if$ -} - -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ -} - -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} FUNCTION {output.address.publisher} { address empty$ location empty$ and @@ -1074,88 +1470,26 @@ FUNCTION {output.address.publisher} if$ publisher output } - - FUNCTION {output.bibitem} -{ newline$ +{ + set.language + newline$ "\bibitem" write$ cite$ bracify write$ newline$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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 * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1184,30 +1518,6 @@ FUNCTION {format.number.series} 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 @@ -1224,38 +1534,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1276,15 +1554,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1347,6 +1616,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type "t" change.case$ } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1367,81 +1649,61 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ {author num.names$ #4 < - {format.authors output - new.sentence} + { + author fmt.names.three 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} +FUNCTION {output.author.rest} { author empty$ 'skip$ {author num.names$ #3 > - {format.authors.after output - new.semicolon } + { author fmt.names.all output + new.semicolon + } 'skip$ if$} if$ } -FUNCTION {bookauthor.after} +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.three output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1492,7 +1754,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1503,7 +1765,7 @@ FUNCTION {add.media} 'skip$ { media empty$ 'skip$ - { " " * bbl.media enclose.square.brackets * } + { " " * bbl.media bracketise * } if$ } if$ @@ -1584,14 +1846,15 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before - format.title add.media "title" output.check + output.author.head + %new.sentence + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1608,18 +1871,21 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1637,15 +1903,18 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before - format.title add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1657,22 +1926,25 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1690,18 +1962,21 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1718,14 +1993,21 @@ FUNCTION {incollection} FUNCTION {proceedings} { output.bibitem - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1736,22 +2018,26 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -1771,10 +2057,12 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -1791,7 +2079,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1804,6 +2092,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -1811,9 +2101,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull new.semicolon holder output.nonnull new.semicolon @@ -1828,7 +2118,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -1841,13 +2131,15 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1858,13 +2150,16 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before - format.btitle "title" output.check + output.author.head + new.sentence + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -1875,12 +2170,14 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka howpublished output - editor.organization.after + editor.organization.rest new.sentence new.block output.address.publisher @@ -1899,25 +2196,24 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1927,13 +2223,14 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -1942,14 +2239,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -1962,9 +2259,9 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -1973,13 +2270,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1989,12 +2287,11 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -2003,13 +2300,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2019,12 +2317,11 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2033,13 +2330,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2049,7 +2347,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2057,7 +2354,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon format.techreport.type output new.colon @@ -2066,14 +2363,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2098,96 +2395,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2230,49 +2527,47 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"\CYRU\CYRF\CYRN"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - FUNCTION {sortify} { purify$ "l" change.case$ } - %% ===================================== %% This version from old Gost package %%<*!natbib> @@ -2359,10 +2654,9 @@ FUNCTION {author.title.sort} {author sort.format.names } {title sort.format.title} if$ - } + } if$ } - FUNCTION {presort}%#1 { author.title.sort @@ -2421,15 +2715,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2452,5 +2738,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% End of file `gost2008s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost780.bst b/Master/texmf-dist/bibtex/bst/gost/gost780.bst deleted file mode 100644 index 7fd695a88a2..00000000000 --- a/Master/texmf-dist/bibtex/bst/gost/gost780.bst +++ /dev/null @@ -1,2229 +0,0 @@ -%% -%% 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: 1.2j, 2017.01.12 -%% -%% 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.1-2003 for bibliographic records. - -ENTRY - { address - annote - author - booktitle - bookauthor - chapter - edition - editor - compiler - howpublished - institution - journal - key - %major % new in v.1.2i, alias for speciality, not implemented - majorcode % new in v.1.2i, alias for specialitycode - month - note - number - organization - pages - eid % new in v1.2c - publisher - school % alias for institution - series - %speciality % new in v.1.2i, eqv. to major in biblatex-gost, not implemented yet... - specialitycode % new in v.1.2i, alias of number, eqv. to majorcode in biblatex-gost - title - %medium % new in v1.2; renamed to media. - media % new in v1.2f - type - volume - year - language - langid % new in v1.2c - booklanguage - %date % not implemented yet... - pagetotal - url - urldate - isbn - doi - eprinttype % = archivePrefix - eprintclass % = primaryClass - eprint - % new in v1.2f: - % appear in biblatex: - %addendum % not implemented yet... - holder % see patent - location % new in v.1.2i, alias of address - %subtitle % not implemented yet... - titleaddon % new in v.1.2i, see @thesis - %version % not implemented yet... - % Appear in biblatex-gost for @patent entry: - authorcountry % country of the patent authors - credits % statement of responsibility, other than provided in Biblatex - ipc % Code of the International Patent Classification - %media % General material designation NOTE: medium in the above - requestnumber % Registration number of the application to the patent document - publicationdate % Date of publication - publication % and information on the official gazette, which published patent - prioritydate % Information about the convention priority: the date of filing of the application, - prioritynumber % number and - prioritycountry % country name of convention priority. - requestdate % ?? - } - {} - { label } - -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } - -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := - #4 'after.dblslash := - #5 'after.slash := - #6 'after.colon := - #7 'after.semicolon := -} - -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.colon = - { ": " * write$ } - { output.state after.semicolon = - { "; " * 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.colon} -{ output.state before.all = - 'skip$ - { after.colon 'output.state := } - if$ -} - -FUNCTION {new.semicolon} -{ output.state before.all = - 'skip$ - { after.semicolon '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 {bracify} -{ duplicate$ empty$ - { pop$ "{}" } - { "{" swap$ * "}" * } - if$ -} - -FUNCTION {enclose.square.brackets} -{ - duplicate$ empty$ - { pop$ "" } - { "[" swap$ * "]" * } - if$ -} - -FUNCTION {enclose.round.brackets} -{ - 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.url} -{ curlanguage "english" = - {"Access mode"} - { curlanguage "ukrainian" = - { "{\CYRR\cyre\cyrzh\cyri\cyrm\ \cyrd\cyro\cyrs\cyrt\cyru\cyrp\cyru}" } - { curlanguage "russian" = - { "{\CYRR\cyre\cyrzh\cyri\cyrm\ \cyrd\cyro\cyrs\cyrt\cyru\cyrp\cyra}" } - { curlanguage "german" = - { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } - if$} - 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.mathesis} -{ 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.\ \ldots\ \cyrk\cyra\cyrn\cyrd. " - "\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.docthesis} -{ curlanguage "english" = - { "Dr.\,Sci. dissertation" } - { curlanguage "german" = - { "Diss.~Dr." } - { curlanguage "russian" = - { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrd-\cyrr\cyra\ " - "\cyrn\cyra\cyru\cyrk}" * } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } - if$} - if$} -if$} - -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type "t" change.case$ } - 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.media.text} -{ curlanguage "english" = - { "Text" } - { curlanguage "russian" = curlanguage "ukrainian" = or - { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } - { "language is not defined: " language "media" * * warning$ "Text" } - if$} -if$} - -FUNCTION {bbl.media.eresource} -{ 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 "media" * * warning$ "Electronic resource" } - if$} - if$} -if$} - -FUNCTION {bbl.media.online} -{ curlanguage "english" = - { "Electronic resource online" } - { curlanguage "russian" = - { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ " - "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyrn}" * } - { curlanguage "ukrainian" = - { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ " - "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyr}" * } - { "language is not defined: " language "media" * * 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 "executor" * * warning$ "executor" } - if$} - if$} -if$} - -FUNCTION {bbl.media} -{ media "online" = - { bbl.media.online } - { media "eresource" = - { bbl.media.eresource } - { bbl.media.text } - if$} -if$} - -FUNCTION {bbl.req} -{ - curlanguage "english" = - { "req." } - { curlanguage "german" = - { "ang." } - { curlanguage "russian" = - { "{\cyr\cyrz\cyra\cyrya\cyrv\cyrl.}" } - { "language is not defined: " language "req" * * warning$ "req" } - if$ - } - if$ - } - if$ -} - -FUNCTION {bbl.publ} -{ - curlanguage "english" = - { "publ." } - { curlanguage "german" = - { "ausg." } - { curlanguage "russian" = - { "{\cyr\cyro\cyrp\cyru\cyrb\cyrl.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } - if$ - } - if$ - } - if$ -} - -FUNCTION {bbl.priority} -{ - curlanguage "english" = - { "priority" } - { curlanguage "german" = - { "Prioritat" } - { curlanguage "russian" = - { "{\cyr\cyrp\cyrr\cyri\cyro\cyrr\cyri\cyrt\cyre\cyrt}" } - { "language is not defined: " language "priority" * * warning$ "priority" } - if$ - } - if$ - } - 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.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "\CYRYA\cyrn\cyrv." } - { month "Feb." = - { "\CYRF\cyre\cyrv\cyrr." } - { month "Mar." = - { "\CYRM\cyra\cyrr\cyrt" } - { month "Apr." = - { "\CYRA\cyrp\cyrr." } - { month "May" = - { "\CYRM\cyra\cyrishrt" } - { month "Jun." = - { "\CYRI\cyryu\cyrn\cyrsftsn" } - { month "Jul." = - { "\CYRI\cyryu\cyrl\cyrsftsn" } - { month "Aug." = - { "\CYRA\cyrv\cyrg\." } - { month "Sep." = - { "\CYRS\cyre\cyrn\cyrt." } - { month "Oct." = - { "\CYRO\cyrk\cyrt." } - { month "Nov." = - { "\CYRN\cyro\cyrya\cyrb." } - { month "Dec." = - { "\CYRD\cyre\cyrk." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month - } - if$ - } - { month empty$ - 'year - { year ". \BibDash " format.month * * } - if$ - } - if$ -} - -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } - if$ -} - -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ -} - -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} -FUNCTION {output.address.publisher} -{ - address empty$ location empty$ and - 'skip$ - { address.or.location output - publisher empty$ - 'skip$ - { new.colon } - 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$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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} -{ eid empty$ - { - pages empty$ - { "" } - { pages multi.page.check - { bbl.ppages pages n.dashify tie.connect } - { bbl.ppage pages tie.connect } - if$ - } - if$ - } - { eid multi.page.check - { bbl.ppages eid n.dashify tie.connect } - { bbl.ppage eid tie.connect } - if$ - } - if$ -} - -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} -FUNCTION {format.pages.page} -{ eid empty$ - { pages empty$ - { pagetotal empty$ - { "" } - { pagetotal bbl.pages tie.connect } - if$ - } - { format.pages} - 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$ -} - -%%<!utf8> bbl.thesis.type "t" change.case$ -%%<utf8> bbl.thesis.type -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ - bbl.thesis.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.semicolon } - if$ -} - -FUNCTION {bookauthor.after} -{ - bookauthor empty$ - 'skip$ - {format.bookauthors.after output - new.semicolon } - if$ -} - -FUNCTION {editor.organization.after} -{ - compiler empty$ - {} - { format.compiler.after output - new.semicolon - } - if$ - editor empty$ - {} - { format.editors.after output - new.semicolon - } - if$ - organization empty$ - {} - {organization output - new.semicolon - } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { - "\BibUrl{ " url * "}" * - urldate empty$ - { "" } - { " (" bbl.urldate * ": " * urldate * ")" * } - if$ * - } - if$ -} - -FUNCTION {output.url} -{ - url empty$ - 'skip$ - { format.url output } - 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.media} -{ duplicate$ empty$ - 'skip$ - { media empty$ - 'skip$ - { " " * bbl.media enclose.square.brackets * } - if$ - } - if$ -} - - -FUNCTION {output.eprint.url} -{ - format.url output -} - -FUNCTION {add.number} -{ duplicate$ empty$ - { "" } - { bbl.nr swap$ tie.or.space.connect } - if$ -} - -FUNCTION {format.type.number} -{ - type empty$ - { "" } - { - number empty$ - { "" } - { type number tie.or.space.connect } - if$ - } - if$ -} - -FUNCTION {format.requestdate} -{ requestdate empty$ - { "" } - { bbl.req requestdate tie.or.space.connect } - if$ -} - -FUNCTION {format.publicationdate} -{ publicationdate empty$ - { "" } - { bbl.publ publicationdate tie.or.space.connect } - if$ -} - -FUNCTION {format.prioritydate} -{ prioritydate empty$ - { "" } - { bbl.priority prioritydate tie.or.space.connect } - if$ -} - -FUNCTION {article} -{ - output.bibitem - author.before - format.title add.media "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.media "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.media "title" output.check - new.slash - author.after - editor.organization.after - new.block - howpublished output - address.or.location 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.media "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.media "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.media "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.media "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.media "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 {patent} -{ - output.bibitem - title add.media output.nonnull - new.colon - format.type.number output - add.blank - address.or.location output - new.colon - ipc output - new.slash - format.authors.after "author" output.check - add.blank - authorcountry enclose.round.brackets output.nonnull - new.semicolon - holder output.nonnull - new.semicolon - credits output.nonnull - new.block - requestnumber add.number output - new.semicolon - format.requestdate output - new.semicolon - format.publicationdate output - publication output - new.semicolon - format.prioritydate output - prioritynumber output - prioritycountry enclose.round.brackets output - new.block - note output - new.sentence - output.url - format.annote output - new.block - pagetotal output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title howpublished new.sentence.checkb - format.title add.media 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.media "title" output.check - howpublished new.dblslash.checka - howpublished 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.colon - bbl.phdthesis format.thesis.type output.nonnull - new.slash - %institution "institution" output.check - institution.or.school "institution/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.media "title" output.check - new.colon - type "type" output.check - new.colon - number output - new.slash - %institution "institution" output.check - institution.or.school "institution/school" output.check - new.semicolon - format.chief.after output % from editor field - new.semicolon - format.executor.after output % from author field - new.block - address.or.location output - new.colon - 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.colon - bbl.phdthesis format.thesis.type output.nonnull - new.slash - %institution "institution" output.check - institution.or.school "institution/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 {mastersthesis} -{ output.bibitem - format.authors "author" output.check - new.sentence - format.btitle "title" output.check - new.colon - bbl.mathesis format.thesis.type output.nonnull - new.slash - %institution "institution" output.check - institution.or.school "institution/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 {docthesis} -{ output.bibitem - format.authors "author" output.check - new.sentence - format.btitle "title" output.check - new.colon - bbl.docthesis format.thesis.type output.nonnull - new.slash - %institution "institution" output.check - institution.or.school "institution/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.media "title" output.check - new.colon - format.techreport.type output - new.colon - number output - new.slash - %institution "institution" output.check - institution.or.school "institution/school" output.check - new.semicolon - format.chief.after output % from editor field - new.semicolon - format.executor.after output % from author field - new.block - address.or.location output - new.colon - 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} {"Jan."} -MACRO {feb} {"Feb."} -MACRO {mar} {"Mar."} -MACRO {apr} {"Apr."} -MACRO {may} {"May"} -MACRO {jun} {"Jun."} -MACRO {jul} {"Jul."} -MACRO {aug} {"Aug."} -MACRO {sep} {"Sep."} -MACRO {oct} {"Oct."} -MACRO {nov} {"Nov."} -MACRO {dec} {"Dec."} -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 {pop} {"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 {st} {"Sky and Telesc."} -MACRO {cjp} {"Czech. J. Phys."} -MACRO {el} {"Europhys. Lett."} -MACRO {en} {"Europhys. News"} -MACRO {fujitsustj} {"FUJITSU Sci. Tech. J."} -MACRO {ieeeed} {"IEEE Trans. Electron Devices"} -MACRO {ieeeim} {"IEEE Trans. Instrum. Meas."} -MACRO {ieeejqe} {"IEEE J. Quantum Electron."} -MACRO {ieeem} {"IEEE Trans. Magn."} -MACRO {ieeeptl} {"IEEE Photonic Technol. Lett."} -MACRO {ieeeuffc} {"IEEE Trans. Ultrason., Ferroelect., Freq. Cont."} -MACRO {jem} {"J. Electron. Mater."} -MACRO {jes} {"J. Electrochem. Soc."} -MACRO {jetplett} {"JETP Lett."} -MACRO {jjap} {"Japan. J. Appl. Phys."} -MACRO {jpha} {"J. Phys. A: Math. Gen."} -MACRO {jphb} {"J. Phys. B: At. Mol. Opt. Phys."} -MACRO {jphbold} {"J. Phys. B: At. Mol. Phys."} -MACRO {jphc} {"J. Phys.: Condens. Matter"} -MACRO {jphcold} {"J. Phys. C: Solid State Phys."} -MACRO {jphd} {"J. Phys. D: Appl. Phys."} -MACRO {jvsta} {"J. Vac. Sci. Technol. A"} -MACRO {jvstb} {"J. Vac. Sci. Technol. B"} -MACRO {me} {"Microelectron. Eng."} -MACRO {necrd} {"NEC Res.{\&} Develop."} -MACRO {pa} {"Physica A"} -MACRO {pb} {"Physica B"} -MACRO {pc} {"Physica C"} -MACRO {pd} {"Physica D"} -MACRO {procieee} {"Proc. IEEE"} -MACRO {procspie} {"Proc. SPIE"} -MACRO {pssa} {"Phys. Stat. Sol. A"} -MACRO {pssb} {"Phys. Stat. Sol. B"} -MACRO {rpp} {"Rep. Progr. Phys."} -MACRO {sm} {"Synthet. Metal"} -MACRO {sost} {"Solid State Technol."} -MACRO {ss} {"Surf. Sci."} -MACRO {ssc} {"Solid State Commun."} -MACRO {sst} {"Semicond. Sci. Technol."} -MACRO {suplatt} {"Superlatt. Microstr."} -MACRO {sust} {"Supercond. Sci. Technol."} -MACRO {znat} {"Z. Naturforsch."} -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 {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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} -MACRO {ufn} {"\CYRU\CYRF\CYRN"} -MACRO {pu} {"Phys.--Uspekhi"} -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."} - -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\selectlanguage{#1}\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$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ - "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ - "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ - "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ - "\renewcommand{\newblock}{\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 `gost780.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost780s.bst b/Master/texmf-dist/bibtex/bst/gost/gost780s.bst deleted file mode 100644 index 00b3526f45e..00000000000 --- a/Master/texmf-dist/bibtex/bst/gost/gost780s.bst +++ /dev/null @@ -1,2353 +0,0 @@ -%% -%% This is file `gost780s.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% 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 -%% 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: 1.2j, 2017.01.12 -%% -%% 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.1-2003 for bibliographic records. - -ENTRY - { address - annote - author - booktitle - bookauthor - chapter - edition - editor - compiler - howpublished - institution - journal - key - %major % new in v.1.2i, alias for speciality, not implemented - majorcode % new in v.1.2i, alias for specialitycode - month - note - number - organization - pages - eid % new in v1.2c - publisher - school % alias for institution - series - %speciality % new in v.1.2i, eqv. to major in biblatex-gost, not implemented yet... - specialitycode % new in v.1.2i, alias of number, eqv. to majorcode in biblatex-gost - title - %medium % new in v1.2; renamed to media. - media % new in v1.2f - type - volume - year - language - langid % new in v1.2c - booklanguage - %date % not implemented yet... - pagetotal - url - urldate - isbn - doi - eprinttype % = archivePrefix - eprintclass % = primaryClass - eprint - % new in v1.2f: - % appear in biblatex: - %addendum % not implemented yet... - holder % see patent - location % new in v.1.2i, alias of address - %subtitle % not implemented yet... - titleaddon % new in v.1.2i, see @thesis - %version % not implemented yet... - % Appear in biblatex-gost for @patent entry: - authorcountry % country of the patent authors - credits % statement of responsibility, other than provided in Biblatex - ipc % Code of the International Patent Classification - %media % General material designation NOTE: medium in the above - requestnumber % Registration number of the application to the patent document - publicationdate % Date of publication - publication % and information on the official gazette, which published patent - prioritydate % Information about the convention priority: the date of filing of the application, - prioritynumber % number and - prioritycountry % country name of convention priority. - requestdate % ?? - } - {} - { label } - -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } - -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := - #4 'after.dblslash := - #5 'after.slash := - #6 'after.colon := - #7 'after.semicolon := -} - -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.colon = - { ": " * write$ } - { output.state after.semicolon = - { "; " * 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.colon} -{ output.state before.all = - 'skip$ - { after.colon 'output.state := } - if$ -} - -FUNCTION {new.semicolon} -{ output.state before.all = - 'skip$ - { after.semicolon '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 {bracify} -{ duplicate$ empty$ - { pop$ "{}" } - { "{" swap$ * "}" * } - if$ -} - -FUNCTION {enclose.square.brackets} -{ - duplicate$ empty$ - { pop$ "" } - { "[" swap$ * "]" * } - if$ -} - -FUNCTION {enclose.round.brackets} -{ - 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.url} -{ curlanguage "english" = - {"Access mode"} - { curlanguage "ukrainian" = - { "{\CYRR\cyre\cyrzh\cyri\cyrm\ \cyrd\cyro\cyrs\cyrt\cyru\cyrp\cyru}" } - { curlanguage "russian" = - { "{\CYRR\cyre\cyrzh\cyri\cyrm\ \cyrd\cyro\cyrs\cyrt\cyru\cyrp\cyra}" } - { curlanguage "german" = - { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } - if$} - 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.mathesis} -{ 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.\ \ldots\ \cyrk\cyra\cyrn\cyrd. " - "\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.docthesis} -{ curlanguage "english" = - { "Dr.\,Sci. dissertation" } - { curlanguage "german" = - { "Diss.~Dr." } - { curlanguage "russian" = - { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrd-\cyrr\cyra\ " - "\cyrn\cyra\cyru\cyrk}" * } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } - if$} - if$} -if$} - -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type "t" change.case$ } - 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.media.text} -{ curlanguage "english" = - { "Text" } - { curlanguage "russian" = curlanguage "ukrainian" = or - { "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" } - { "language is not defined: " language "media" * * warning$ "Text" } - if$} -if$} - -FUNCTION {bbl.media.eresource} -{ 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 "media" * * warning$ "Electronic resource" } - if$} - if$} -if$} - -FUNCTION {bbl.media.online} -{ curlanguage "english" = - { "Electronic resource online" } - { curlanguage "russian" = - { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ " - "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyrn}" * } - { curlanguage "ukrainian" = - { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ " - "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyr}" * } - { "language is not defined: " language "media" * * 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 "executor" * * warning$ "executor" } - if$} - if$} -if$} - -FUNCTION {bbl.media} -{ media "online" = - { bbl.media.online } - { media "eresource" = - { bbl.media.eresource } - { bbl.media.text } - if$} -if$} - -FUNCTION {bbl.req} -{ - curlanguage "english" = - { "req." } - { curlanguage "german" = - { "ang." } - { curlanguage "russian" = - { "{\cyr\cyrz\cyra\cyrya\cyrv\cyrl.}" } - { "language is not defined: " language "req" * * warning$ "req" } - if$ - } - if$ - } - if$ -} - -FUNCTION {bbl.publ} -{ - curlanguage "english" = - { "publ." } - { curlanguage "german" = - { "ausg." } - { curlanguage "russian" = - { "{\cyr\cyro\cyrp\cyru\cyrb\cyrl.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } - if$ - } - if$ - } - if$ -} - -FUNCTION {bbl.priority} -{ - curlanguage "english" = - { "priority" } - { curlanguage "german" = - { "Prioritat" } - { curlanguage "russian" = - { "{\cyr\cyrp\cyrr\cyri\cyro\cyrr\cyri\cyrt\cyre\cyrt}" } - { "language is not defined: " language "priority" * * warning$ "priority" } - if$ - } - if$ - } - 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.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "\CYRYA\cyrn\cyrv." } - { month "Feb." = - { "\CYRF\cyre\cyrv\cyrr." } - { month "Mar." = - { "\CYRM\cyra\cyrr\cyrt" } - { month "Apr." = - { "\CYRA\cyrp\cyrr." } - { month "May" = - { "\CYRM\cyra\cyrishrt" } - { month "Jun." = - { "\CYRI\cyryu\cyrn\cyrsftsn" } - { month "Jul." = - { "\CYRI\cyryu\cyrl\cyrsftsn" } - { month "Aug." = - { "\CYRA\cyrv\cyrg\." } - { month "Sep." = - { "\CYRS\cyre\cyrn\cyrt." } - { month "Oct." = - { "\CYRO\cyrk\cyrt." } - { month "Nov." = - { "\CYRN\cyro\cyrya\cyrb." } - { month "Dec." = - { "\CYRD\cyre\cyrk." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month - } - if$ - } - { month empty$ - 'year - { year ". \BibDash " format.month * * } - if$ - } - if$ -} - -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } - if$ -} - -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ -} - -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} -FUNCTION {output.address.publisher} -{ - address empty$ location empty$ and - 'skip$ - { address.or.location output - publisher empty$ - 'skip$ - { new.colon } - 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$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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} -{ eid empty$ - { - pages empty$ - { "" } - { pages multi.page.check - { bbl.ppages pages n.dashify tie.connect } - { bbl.ppage pages tie.connect } - if$ - } - if$ - } - { eid multi.page.check - { bbl.ppages eid n.dashify tie.connect } - { bbl.ppage eid tie.connect } - if$ - } - if$ -} - -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} -FUNCTION {format.pages.page} -{ eid empty$ - { pages empty$ - { pagetotal empty$ - { "" } - { pagetotal bbl.pages tie.connect } - if$ - } - { format.pages} - 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$ -} - -%%<!utf8> bbl.thesis.type "t" change.case$ -%%<utf8> bbl.thesis.type -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ - bbl.thesis.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.semicolon } - if$ -} - -FUNCTION {bookauthor.after} -{ - bookauthor empty$ - 'skip$ - {format.bookauthors.after output - new.semicolon } - if$ -} - -FUNCTION {editor.organization.after} -{ - compiler empty$ - {} - { format.compiler.after output - new.semicolon - } - if$ - editor empty$ - {} - { format.editors.after output - new.semicolon - } - if$ - organization empty$ - {} - {organization output - new.semicolon - } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { - "\BibUrl{ " url * "}" * - urldate empty$ - { "" } - { " (" bbl.urldate * ": " * urldate * ")" * } - if$ * - } - if$ -} - -FUNCTION {output.url} -{ - url empty$ - 'skip$ - { format.url output } - 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.media} -{ duplicate$ empty$ - 'skip$ - { media empty$ - 'skip$ - { " " * bbl.media enclose.square.brackets * } - if$ - } - if$ -} - - -FUNCTION {output.eprint.url} -{ - format.url output -} - -FUNCTION {add.number} -{ duplicate$ empty$ - { "" } - { bbl.nr swap$ tie.or.space.connect } - if$ -} - -FUNCTION {format.type.number} -{ - type empty$ - { "" } - { - number empty$ - { "" } - { type number tie.or.space.connect } - if$ - } - if$ -} - -FUNCTION {format.requestdate} -{ requestdate empty$ - { "" } - { bbl.req requestdate tie.or.space.connect } - if$ -} - -FUNCTION {format.publicationdate} -{ publicationdate empty$ - { "" } - { bbl.publ publicationdate tie.or.space.connect } - if$ -} - -FUNCTION {format.prioritydate} -{ prioritydate empty$ - { "" } - { bbl.priority prioritydate tie.or.space.connect } - if$ -} - -FUNCTION {article} -{ - output.bibitem - author.before - format.title add.media "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.media "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.media "title" output.check - new.slash - author.after - editor.organization.after - new.block - howpublished output - address.or.location 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.media "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.media "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.media "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.media "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.media "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 {patent} -{ - output.bibitem - title add.media output.nonnull - new.colon - format.type.number output - add.blank - address.or.location output - new.colon - ipc output - new.slash - format.authors.after "author" output.check - add.blank - authorcountry enclose.round.brackets output.nonnull - new.semicolon - holder output.nonnull - new.semicolon - credits output.nonnull - new.block - requestnumber add.number output - new.semicolon - format.requestdate output - new.semicolon - format.publicationdate output - publication output - new.semicolon - format.prioritydate output - prioritynumber output - prioritycountry enclose.round.brackets output - new.block - note output - new.sentence - output.url - format.annote output - new.block - pagetotal output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title howpublished new.sentence.checkb - format.title add.media 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.media "title" output.check - howpublished new.dblslash.checka - howpublished 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.colon - bbl.phdthesis format.thesis.type output.nonnull - new.slash - %institution "institution" output.check - institution.or.school "institution/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.media "title" output.check - new.colon - type "type" output.check - new.colon - number output - new.slash - %institution "institution" output.check - institution.or.school "institution/school" output.check - new.semicolon - format.chief.after output % from editor field - new.semicolon - format.executor.after output % from author field - new.block - address.or.location output - new.colon - 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.colon - bbl.phdthesis format.thesis.type output.nonnull - new.slash - %institution "institution" output.check - institution.or.school "institution/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 {mastersthesis} -{ output.bibitem - format.authors "author" output.check - new.sentence - format.btitle "title" output.check - new.colon - bbl.mathesis format.thesis.type output.nonnull - new.slash - %institution "institution" output.check - institution.or.school "institution/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 {docthesis} -{ output.bibitem - format.authors "author" output.check - new.sentence - format.btitle "title" output.check - new.colon - bbl.docthesis format.thesis.type output.nonnull - new.slash - %institution "institution" output.check - institution.or.school "institution/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.media "title" output.check - new.colon - format.techreport.type output - new.colon - number output - new.slash - %institution "institution" output.check - institution.or.school "institution/school" output.check - new.semicolon - format.chief.after output % from editor field - new.semicolon - format.executor.after output % from author field - new.block - address.or.location output - new.colon - 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} {"Jan."} -MACRO {feb} {"Feb."} -MACRO {mar} {"Mar."} -MACRO {apr} {"Apr."} -MACRO {may} {"May"} -MACRO {jun} {"Jun."} -MACRO {jul} {"Jul."} -MACRO {aug} {"Aug."} -MACRO {sep} {"Sep."} -MACRO {oct} {"Oct."} -MACRO {nov} {"Nov."} -MACRO {dec} {"Dec."} -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 {pop} {"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 {st} {"Sky and Telesc."} -MACRO {cjp} {"Czech. J. Phys."} -MACRO {el} {"Europhys. Lett."} -MACRO {en} {"Europhys. News"} -MACRO {fujitsustj} {"FUJITSU Sci. Tech. J."} -MACRO {ieeeed} {"IEEE Trans. Electron Devices"} -MACRO {ieeeim} {"IEEE Trans. Instrum. Meas."} -MACRO {ieeejqe} {"IEEE J. Quantum Electron."} -MACRO {ieeem} {"IEEE Trans. Magn."} -MACRO {ieeeptl} {"IEEE Photonic Technol. Lett."} -MACRO {ieeeuffc} {"IEEE Trans. Ultrason., Ferroelect., Freq. Cont."} -MACRO {jem} {"J. Electron. Mater."} -MACRO {jes} {"J. Electrochem. Soc."} -MACRO {jetplett} {"JETP Lett."} -MACRO {jjap} {"Japan. J. Appl. Phys."} -MACRO {jpha} {"J. Phys. A: Math. Gen."} -MACRO {jphb} {"J. Phys. B: At. Mol. Opt. Phys."} -MACRO {jphbold} {"J. Phys. B: At. Mol. Phys."} -MACRO {jphc} {"J. Phys.: Condens. Matter"} -MACRO {jphcold} {"J. Phys. C: Solid State Phys."} -MACRO {jphd} {"J. Phys. D: Appl. Phys."} -MACRO {jvsta} {"J. Vac. Sci. Technol. A"} -MACRO {jvstb} {"J. Vac. Sci. Technol. B"} -MACRO {me} {"Microelectron. Eng."} -MACRO {necrd} {"NEC Res.{\&} Develop."} -MACRO {pa} {"Physica A"} -MACRO {pb} {"Physica B"} -MACRO {pc} {"Physica C"} -MACRO {pd} {"Physica D"} -MACRO {procieee} {"Proc. IEEE"} -MACRO {procspie} {"Proc. SPIE"} -MACRO {pssa} {"Phys. Stat. Sol. A"} -MACRO {pssb} {"Phys. Stat. Sol. B"} -MACRO {rpp} {"Rep. Progr. Phys."} -MACRO {sm} {"Synthet. Metal"} -MACRO {sost} {"Solid State Technol."} -MACRO {ss} {"Surf. Sci."} -MACRO {ssc} {"Solid State Commun."} -MACRO {sst} {"Semicond. Sci. Technol."} -MACRO {suplatt} {"Superlatt. Microstr."} -MACRO {sust} {"Supercond. Sci. Technol."} -MACRO {znat} {"Z. Naturforsch."} -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 {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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} -MACRO {ufn} {"\CYRU\CYRF\CYRN"} -MACRO {pu} {"Phys.--Uspekhi"} -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."} - -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\selectlanguage{#1}\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$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ - "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ - "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ - "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ - "\renewcommand{\newblock}{\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 `gost780s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/ugost2003.bst b/Master/texmf-dist/bibtex/bst/gost/ugost2003.bst index 7e070613b9c..c5dbc01bb35 100644 --- a/Master/texmf-dist/bibtex/bst/gost/ugost2003.bst +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2003.bst @@ -6,28 +6,20 @@ %% %% 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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ugost2003.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.1-2003 for bibliographic records. @@ -67,15 +59,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -100,8 +92,23 @@ ENTRY {} { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -114,11 +121,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -143,7 +157,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -177,7 +191,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -256,13 +272,6 @@ FUNCTION {or} if$ } - -FUNCTION {non.stop} -{ duplicate$ - "}" * add.period$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -309,9 +318,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -323,7 +344,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -331,7 +352,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -339,25 +360,82 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } -FUNCTION {bbl.edby} % { "\bbledby{}" } +FUNCTION {tie.connect} + {"~" swap$ * * + } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +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 {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"Під ред."} + {"під ред."} { curlanguage "russian" = - {"Под ред."} + {"под ред."} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -366,15 +444,15 @@ FUNCTION {bbl.cmplr} {"{Укл.}"} { curlanguage "russian" = {"{Сост.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{вид.}"} { curlanguage "russian" = @@ -385,7 +463,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -393,31 +471,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -426,13 +504,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"Выпуск"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -441,13 +519,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"Вып."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -456,13 +534,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{із}" } { curlanguage "russian" = { "{из}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -471,126 +549,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{та~ін.}"} { curlanguage "russian" = {"и~др."} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} +FUNCTION {bbl.and} +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"і"} + { curlanguage "russian" = + {"и"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} + if$} + if$} + if$} +if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { curlanguage "english" = {"Number"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{Номер}" } { curlanguage "german" = {"{Heft}"} %%% { "Anzahl" } - {"language is not defined: " language "nnumber" * * warning$ "Number"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { curlanguage "english" = {"number"} { curlanguage "ukrainian" = curlanguage "russian" = or {"{номер}"} { curlanguage "german" = {"{Heft}"} %%% { "anzahl" }??? - {"language is not defined: " language "number" * * warning$ "number"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{в}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{В}" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -604,7 +702,10 @@ FUNCTION {bbl.url} { "{Режим доступа}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -618,20 +719,23 @@ FUNCTION {bbl.urldate} { "{дата обращения}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{Отчет}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -640,10 +744,10 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{Квалификационная работа магистра}" } - { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + { "{квалификационная работа магистра}" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -652,12 +756,12 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = - { "{дис.\ \ldots\ канд. наук}" } + { "{дис.\ \ldots\ канд.\ наук}" } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -665,35 +769,22 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{дис.\ \ldots\ д-ра наук}" } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{Б.\ м.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -702,7 +793,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -711,7 +802,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{Б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -720,7 +811,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{Текст}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -731,7 +822,7 @@ FUNCTION {bbl.media.eresource} { "{Электронный ресурс}" } { curlanguage "ukrainian" = { "{Електронний ресурс}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -743,7 +834,7 @@ FUNCTION {bbl.media.online} { "{Электронный ресурс онлайн}" } { curlanguage "ukrainian" = { "{Електронний ресурс онлайн}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -755,19 +846,19 @@ FUNCTION {bbl.chief} { "{рук.}" } { curlanguage "ukrainian" = { "{рук.}" } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "executor" } { curlanguage "russian" = { "{исполн.}" } { curlanguage "ukrainian" = { "{виконавець}" } - { "language is not defined: " language "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -789,7 +880,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{заявл.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -805,7 +896,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{опубл.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -821,7 +912,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{приоритет}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -829,151 +920,385 @@ FUNCTION {bbl.priority} if$ } -INTEGERS { nameptr namesleft numnames } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"Січ."} % Січень + { curlanguage "russian" = + { "Янв." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"Лют."} % Лютий + { curlanguage "russian" = + { "Фев." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} -FUNCTION {format.names} -{ - #1 "{vv~}{ll}{~jj}{,~ff}" format.name$ -} +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"Бер."} % Березень + { curlanguage "russian" = + { "Март" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"Квіт."} % квітень + { curlanguage "russian" = + { "Апр." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + 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 enclose.square.brackets * } - { ", " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"Трав."} % травень + { curlanguage "russian" = + { "Май" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"Чер."} % червень + { curlanguage "russian" = + { "Июнь" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} -FUNCTION {format.authors} -{ author empty$ - { "" } - { author format.names emphasize} - if$ -} +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"Липень"} %Липень + { curlanguage "russian" = + { "Июль" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"Серпень"} % Серпень + { curlanguage "russian" = + { "Авг." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} -FUNCTION {format.bookauthors} -{ bookauthor empty$ - { "" } - { bookauthor format.names} - if$ -} +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"Вер."} % вересень + { curlanguage "russian" = + { "Сент." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} -FUNCTION {format.authors.after} -{ author empty$ - { "" } - { author format.names.rev} +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"Жов."} % жовтень + { curlanguage "russian" = + { "Окт." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"Лис."} % листопад + { curlanguage "russian" = + { "Нояб." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"Груд."} % грудень + { curlanguage "russian" = + { "Дек." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google Книги"} + { curlanguage "russian" = + { "Google Книги" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } if$ } -FUNCTION {format.bookauthors.after} -{ bookauthor empty$ - { "" } - { bookauthor format.names.rev}% always cuts to 4 persons +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } if$ } -FUNCTION {format.editors.after} -{ editor empty$ - { "" } - { bbl.edby "\ " * editor format.names.rev * } +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } if$ } - -FUNCTION {format.chief.after} -{ editor empty$ - { "" } - { bbl.chief "\ " * editor format.names.rev * } +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } if$ } -FUNCTION {format.executor.after} -{ author empty$ - { "" } - { bbl.executor ": " * author format.names.rev * } +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } if$ } -FUNCTION {format.compiler.after} -{ compiler empty$ - { "" } - { bbl.cmplr "\ " * compiler format.names.rev * } +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } if$ } -FUNCTION {format.title} -{ title empty$ - { "" } - { title } +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } if$ } FUNCTION {format.month} { month empty$ { "" } - { curlanguage "russian" = - { month "Jan." = - { "Янв." } - { month "Feb." = - { "Фев." } - { month "Mar." = - { "Март" } - { month "Apr." = - { "Апр." } - { month "May" = - { "Май" } - { month "Jun." = - { "Июнь" } - { month "Jul." = - { "Июль" } - { month "Aug." = - { "Авг." } - { month "Sep." = - { "Сент." } - { month "Oct." = - { "Окт." } - { month "Nov." = - { "Нояб." } - { month "Dec." = - { "Дек." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} if$ } FUNCTION {format.date} -{ year empty$ +{ year.or.date.to.year empty$ { month empty$ { "" } { "there's a month but no year in " cite$ * warning$ @@ -982,51 +1307,153 @@ FUNCTION {format.date} if$ } { month empty$ - 'year - { year ". \BibDash " format.month * * } + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } if$ } if$ } -FUNCTION {address.or.location} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{,~ff}" + format.name$ +} + +FUNCTION {fmt.names.three} { - address empty$ - { location } - { address } - if$ + '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 bracketise *} + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ } -FUNCTION {specialitycode.or.number} +FUNCTION {fmt.names.all} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{,~ff}" + format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or + { " " * bbl.etal bracketise *} + { " " bbl.and " " * * * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} { - specialitycode empty$ - { number } - { specialitycode } + author empty$ + { author } %%%'skip$ + {author num.names$ #4 < + { + author fmt.names.first + } + { "" } %%%'skip$ + if$} if$ } -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } +FUNCTION {format.bookauthors.rest} +{ bookauthor empty$ + { "" } + { bookauthor fmt.names.three emphasize } + if$ +} + +FUNCTION {format.editors.rest} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.chief.rest} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor fmt.names.three * } if$ } + +FUNCTION {format.executor.rest} +{ author empty$ + { "" } + { bbl.executor ": " * author fmt.names.three * } + if$ +} + +FUNCTION {format.compiler.rest} +{ compiler empty$ + { "" } + { bbl.compiler "\ " * compiler fmt.names.three * } + if$ +} + FUNCTION {output.address.publisher} { address empty$ { bbl.nnoaddress publisher empty$ - { "~: " * bbl.nopublisher * enclose.square.brackets } - { enclose.square.brackets "~: " * publisher * } + { "~: " * bbl.nopublisher * bracketise } + { bracketise "~: " * publisher * } if$ } { address output new.colon publisher empty$ - { bbl.nopublisher enclose.square.brackets } + { bbl.nopublisher bracketise } { publisher } if$ } @@ -1034,88 +1461,26 @@ FUNCTION {output.address.publisher} output } - - FUNCTION {output.bibitem} -{ newline$ +{ + set.language + newline$ "\bibitem" write$ cite$ bracify write$ newline$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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 * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1144,30 +1509,6 @@ FUNCTION {format.number.series} 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 @@ -1184,38 +1525,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1236,15 +1545,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1307,6 +1607,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1327,78 +1640,61 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ {author num.names$ #4 < - {format.authors output - new.sentence} + { + author fmt.names.first 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} +FUNCTION {output.author.rest} { author empty$ 'skip$ - {format.authors.after output - new.semicolon } + {author num.names$ #1 > + { author fmt.names.all output + new.semicolon + } + 'skip$ + if$} if$ } -FUNCTION {bookauthor.after} +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.all output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1449,7 +1745,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1459,9 +1755,13 @@ FUNCTION {add.media} { duplicate$ empty$ 'skip$ { media empty$ - { " " * bbl.media.text enclose.square.brackets * } - { " " * bbl.media enclose.square.brackets * } - if$ + { type$ "online" = + { " " * bbl.media.online bracketise * } + { " " * bbl.media.text bracketise * } + if$ + } + { " " * bbl.media bracketise * } + if$ } if$ } @@ -1541,14 +1841,15 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before - format.title add.media "title" output.check + output.author.head + %new.sentence + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1565,18 +1866,21 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1594,15 +1898,18 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before - format.title add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1614,22 +1921,25 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1647,18 +1957,21 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1675,14 +1988,21 @@ FUNCTION {incollection} FUNCTION {proceedings} { output.bibitem - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1693,22 +2013,26 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -1728,10 +2052,12 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -1748,7 +2074,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1761,6 +2087,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -1768,9 +2096,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull new.semicolon holder output.nonnull new.semicolon @@ -1785,7 +2113,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -1798,13 +2126,15 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1815,13 +2145,16 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before - format.btitle "title" output.check + output.author.head + new.sentence + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -1832,12 +2165,14 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka - howpublished enclose.square.brackets output - editor.organization.after + howpublished bracketise output + editor.organization.rest new.sentence new.block output.address.publisher @@ -1856,25 +2191,24 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1884,13 +2218,14 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -1899,14 +2234,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -1919,9 +2254,9 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -1930,13 +2265,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1946,12 +2282,11 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -1960,13 +2295,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1976,12 +2312,11 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -1990,13 +2325,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2006,7 +2342,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2014,7 +2349,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon format.techreport.type output new.colon @@ -2023,14 +2358,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2055,96 +2390,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2187,47 +2522,46 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"УФН"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - STRINGS { longest.label } INTEGERS { number.label longest.label.width } @@ -2264,15 +2598,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2295,5 +2621,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index c9d7cd74a71..26b40f1c930 100644 --- a/Master/texmf-dist/bibtex/bst/gost/ugost2003s.bst +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2003s.bst @@ -6,28 +6,20 @@ %% %% 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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ugost2003s.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.1-2003 for bibliographic records. @@ -67,15 +59,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -100,8 +92,23 @@ ENTRY {} { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -114,11 +121,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -143,7 +157,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -177,7 +191,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -256,23 +272,6 @@ 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$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -319,9 +318,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -333,7 +344,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -341,7 +352,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -349,25 +360,92 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {tie.connect} + {"~" swap$ * * + } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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 {bbl.edby} % { "\bbledby{}" } +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 {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"Під ред."} + {"під ред."} { curlanguage "russian" = - {"Под ред."} + {"под ред."} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -376,15 +454,15 @@ FUNCTION {bbl.cmplr} {"{Укл.}"} { curlanguage "russian" = {"{Сост.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{вид.}"} { curlanguage "russian" = @@ -395,7 +473,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -403,31 +481,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -436,13 +514,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"Выпуск"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -451,13 +529,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"Вып."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -466,13 +544,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{із}" } { curlanguage "russian" = { "{из}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -481,126 +559,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{та~ін.}"} { curlanguage "russian" = {"и~др."} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} +FUNCTION {bbl.and} +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"і"} + { curlanguage "russian" = + {"и"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} + if$} + if$} + if$} +if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { curlanguage "english" = {"Number"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{Номер}" } { curlanguage "german" = {"{Heft}"} %%% { "Anzahl" } - {"language is not defined: " language "nnumber" * * warning$ "Number"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { curlanguage "english" = {"number"} { curlanguage "ukrainian" = curlanguage "russian" = or {"{номер}"} { curlanguage "german" = {"{Heft}"} %%% { "anzahl" }??? - {"language is not defined: " language "number" * * warning$ "number"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{в}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{В}" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -614,7 +712,10 @@ FUNCTION {bbl.url} { "{Режим доступа}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -628,20 +729,23 @@ FUNCTION {bbl.urldate} { "{дата обращения}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{Отчет}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -650,10 +754,10 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{Квалификационная работа магистра}" } - { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + { "{квалификационная работа магистра}" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -662,12 +766,12 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = - { "{дис.\ \ldots\ канд. наук}" } + { "{дис.\ \ldots\ канд.\ наук}" } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -675,35 +779,22 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{дис.\ \ldots\ д-ра наук}" } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{Б.\ м.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -712,7 +803,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -721,7 +812,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{Б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -730,7 +821,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{Текст}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -741,7 +832,7 @@ FUNCTION {bbl.media.eresource} { "{Электронный ресурс}" } { curlanguage "ukrainian" = { "{Електронний ресурс}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -753,7 +844,7 @@ FUNCTION {bbl.media.online} { "{Электронный ресурс онлайн}" } { curlanguage "ukrainian" = { "{Електронний ресурс онлайн}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -765,19 +856,19 @@ FUNCTION {bbl.chief} { "{рук.}" } { curlanguage "ukrainian" = { "{рук.}" } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "executor" } { curlanguage "russian" = { "{исполн.}" } { curlanguage "ukrainian" = { "{виконавець}" } - { "language is not defined: " language "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -799,7 +890,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{заявл.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -815,7 +906,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{опубл.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -831,7 +922,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{приоритет}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -839,151 +930,385 @@ FUNCTION {bbl.priority} if$ } -INTEGERS { nameptr namesleft numnames } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"Січ."} % Січень + { curlanguage "russian" = + { "Янв." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"Лют."} % Лютий + { curlanguage "russian" = + { "Фев." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} -FUNCTION {format.names} -{ - #1 "{vv~}{ll}{~jj}{,~ff}" format.name$ -} +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"Бер."} % Березень + { curlanguage "russian" = + { "Март" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"Квіт."} % квітень + { curlanguage "russian" = + { "Апр." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + 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 enclose.square.brackets * } - { ", " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"Трав."} % травень + { curlanguage "russian" = + { "Май" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"Чер."} % червень + { curlanguage "russian" = + { "Июнь" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} -FUNCTION {format.authors} -{ author empty$ - { "" } - { author format.names emphasize} - if$ -} +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"Липень"} %Липень + { curlanguage "russian" = + { "Июль" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"Серпень"} % Серпень + { curlanguage "russian" = + { "Авг." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} -FUNCTION {format.bookauthors} -{ bookauthor empty$ - { "" } - { bookauthor format.names} - if$ -} +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"Вер."} % вересень + { curlanguage "russian" = + { "Сент." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} -FUNCTION {format.authors.after} -{ author empty$ - { "" } - { author format.names.rev} +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"Жов."} % жовтень + { curlanguage "russian" = + { "Окт." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"Лис."} % листопад + { curlanguage "russian" = + { "Нояб." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"Груд."} % грудень + { curlanguage "russian" = + { "Дек." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google Книги"} + { curlanguage "russian" = + { "Google Книги" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } if$ } -FUNCTION {format.bookauthors.after} -{ bookauthor empty$ - { "" } - { bookauthor format.names.rev}% always cuts to 4 persons +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } if$ } -FUNCTION {format.editors.after} -{ editor empty$ - { "" } - { bbl.edby "\ " * editor format.names.rev * } +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } if$ } - -FUNCTION {format.chief.after} -{ editor empty$ - { "" } - { bbl.chief "\ " * editor format.names.rev * } +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } if$ } -FUNCTION {format.executor.after} -{ author empty$ - { "" } - { bbl.executor ": " * author format.names.rev * } +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } if$ } -FUNCTION {format.compiler.after} -{ compiler empty$ - { "" } - { bbl.cmplr "\ " * compiler format.names.rev * } +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } if$ } -FUNCTION {format.title} -{ title empty$ - { "" } - { title } +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } if$ } FUNCTION {format.month} { month empty$ { "" } - { curlanguage "russian" = - { month "Jan." = - { "Янв." } - { month "Feb." = - { "Фев." } - { month "Mar." = - { "Март" } - { month "Apr." = - { "Апр." } - { month "May" = - { "Май" } - { month "Jun." = - { "Июнь" } - { month "Jul." = - { "Июль" } - { month "Aug." = - { "Авг." } - { month "Sep." = - { "Сент." } - { month "Oct." = - { "Окт." } - { month "Nov." = - { "Нояб." } - { month "Dec." = - { "Дек." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} if$ } FUNCTION {format.date} -{ year empty$ +{ year.or.date.to.year empty$ { month empty$ { "" } { "there's a month but no year in " cite$ * warning$ @@ -992,51 +1317,153 @@ FUNCTION {format.date} if$ } { month empty$ - 'year - { year ". \BibDash " format.month * * } + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } if$ } if$ } -FUNCTION {address.or.location} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{,~ff}" + format.name$ +} + +FUNCTION {fmt.names.three} { - address empty$ - { location } - { address } - if$ + '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 bracketise *} + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ } -FUNCTION {specialitycode.or.number} +FUNCTION {fmt.names.all} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{,~ff}" + format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or + { " " * bbl.etal bracketise *} + { " " bbl.and " " * * * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} { - specialitycode empty$ - { number } - { specialitycode } + author empty$ + { author } %%%'skip$ + {author num.names$ #4 < + { + author fmt.names.first + } + { "" } %%%'skip$ + if$} if$ } -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } +FUNCTION {format.bookauthors.rest} +{ bookauthor empty$ + { "" } + { bookauthor fmt.names.three emphasize } if$ } + +FUNCTION {format.editors.rest} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.chief.rest} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.executor.rest} +{ author empty$ + { "" } + { bbl.executor ": " * author fmt.names.three * } + if$ +} + +FUNCTION {format.compiler.rest} +{ compiler empty$ + { "" } + { bbl.compiler "\ " * compiler fmt.names.three * } + if$ +} + FUNCTION {output.address.publisher} { address empty$ { bbl.nnoaddress publisher empty$ - { "~: " * bbl.nopublisher * enclose.square.brackets } - { enclose.square.brackets "~: " * publisher * } + { "~: " * bbl.nopublisher * bracketise } + { bracketise "~: " * publisher * } if$ } { address output new.colon publisher empty$ - { bbl.nopublisher enclose.square.brackets } + { bbl.nopublisher bracketise } { publisher } if$ } @@ -1044,88 +1471,26 @@ FUNCTION {output.address.publisher} output } - - FUNCTION {output.bibitem} -{ newline$ +{ + set.language + newline$ "\bibitem" write$ cite$ bracify write$ newline$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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 * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1154,30 +1519,6 @@ FUNCTION {format.number.series} 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 @@ -1194,38 +1535,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1246,15 +1555,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1317,6 +1617,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1337,78 +1650,61 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ {author num.names$ #4 < - {format.authors output - new.sentence} + { + author fmt.names.first 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} +FUNCTION {output.author.rest} { author empty$ 'skip$ - {format.authors.after output - new.semicolon } + {author num.names$ #1 > + { author fmt.names.all output + new.semicolon + } + 'skip$ + if$} if$ } -FUNCTION {bookauthor.after} +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.all output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1459,7 +1755,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1469,9 +1765,13 @@ FUNCTION {add.media} { duplicate$ empty$ 'skip$ { media empty$ - { " " * bbl.media.text enclose.square.brackets * } - { " " * bbl.media enclose.square.brackets * } - if$ + { type$ "online" = + { " " * bbl.media.online bracketise * } + { " " * bbl.media.text bracketise * } + if$ + } + { " " * bbl.media bracketise * } + if$ } if$ } @@ -1551,14 +1851,15 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before - format.title add.media "title" output.check + output.author.head + %new.sentence + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1575,18 +1876,21 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1604,15 +1908,18 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before - format.title add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1624,22 +1931,25 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1657,18 +1967,21 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head new.sentence - format.title add.doi add.media "title" output.check + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1685,14 +1998,21 @@ FUNCTION {incollection} FUNCTION {proceedings} { output.bibitem - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1703,22 +2023,26 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head new.sentence - format.title add.doi add.media "title" output.check + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -1738,10 +2062,12 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -1758,7 +2084,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1771,6 +2097,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -1778,9 +2106,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull new.semicolon holder output.nonnull new.semicolon @@ -1795,7 +2123,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -1808,13 +2136,15 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1825,13 +2155,16 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before - format.btitle "title" output.check + output.author.head + new.sentence + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -1842,12 +2175,14 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka - howpublished enclose.square.brackets output - editor.organization.after + howpublished bracketise output + editor.organization.rest new.sentence new.block output.address.publisher @@ -1866,25 +2201,24 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1894,13 +2228,14 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -1909,14 +2244,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -1929,9 +2264,9 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -1940,13 +2275,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1956,12 +2292,11 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -1970,13 +2305,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1986,12 +2322,11 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2000,13 +2335,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2016,7 +2352,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2024,7 +2359,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon format.techreport.type output new.colon @@ -2033,14 +2368,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2065,96 +2400,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2197,48 +2532,46 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"УФН"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - FUNCTION {sortify} { purify$ } - %% ===================================== %% This version from old Gost package %%<*!natbib> @@ -2325,10 +2658,9 @@ FUNCTION {author.title.sort} {author sort.format.names } {title sort.format.title} if$ - } + } if$ } - FUNCTION {presort}%#1 { author.title.sort @@ -2387,15 +2719,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2418,5 +2742,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index 6b37bab8ee4..7aeeecb8ba1 100644 --- a/Master/texmf-dist/bibtex/bst/gost/ugost2008.bst +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2008.bst @@ -4,30 +4,22 @@ %% %% The original source files were: %% -%% gost.dtx (with options: `bst,utf8,modern,eprint') +%% gost.dtx (with options: `bst,utf8,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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ugost2008.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.0.5-2008 for bibliographic reference. @@ -67,15 +59,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -100,8 +92,23 @@ ENTRY {} { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -114,11 +121,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -143,7 +157,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -177,7 +191,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -256,13 +272,6 @@ FUNCTION {or} if$ } - -FUNCTION {non.stop} -{ duplicate$ - "}" * add.period$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -309,9 +318,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -323,7 +344,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -331,7 +352,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -339,25 +360,82 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } -FUNCTION {bbl.edby} % { "\bbledby{}" } +FUNCTION {tie.connect} + {"~" swap$ * * + } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +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 {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"Під ред."} + {"під ред."} { curlanguage "russian" = - {"Под ред."} + {"под ред."} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -366,15 +444,15 @@ FUNCTION {bbl.cmplr} {"{Укл.}"} { curlanguage "russian" = {"{Сост.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{вид.}"} { curlanguage "russian" = @@ -385,7 +463,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -393,31 +471,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -426,13 +504,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"Выпуск"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -441,13 +519,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"Вып."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -456,13 +534,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{із}" } { curlanguage "russian" = { "{из}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -471,126 +549,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{та~ін.}"} { curlanguage "russian" = {"и~др."} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} +FUNCTION {bbl.and} +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"і"} + { curlanguage "russian" = + {"и"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} + if$} + if$} + if$} +if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { curlanguage "english" = {"Number"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{Номер}" } { curlanguage "german" = {"{Heft}"} %%% { "Anzahl" } - {"language is not defined: " language "nnumber" * * warning$ "Number"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { curlanguage "english" = {"number"} { curlanguage "ukrainian" = curlanguage "russian" = or {"{номер}"} { curlanguage "german" = {"{Heft}"} %%% { "anzahl" }??? - {"language is not defined: " language "number" * * warning$ "number"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{в}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{В}" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -604,7 +702,10 @@ FUNCTION {bbl.url} { "{Режим доступа}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -618,20 +719,23 @@ FUNCTION {bbl.urldate} { "{дата обращения}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{Отчет}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -640,10 +744,10 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{Квалификационная работа магистра}" } - { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + { "{квалификационная работа магистра}" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -652,12 +756,12 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = - { "{дис.\ \ldots\ канд. наук}" } + { "{дис.\ \ldots\ канд.\ наук}" } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -665,35 +769,22 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{дис.\ \ldots\ д-ра наук}" } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{Б.\ м.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -702,7 +793,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -711,7 +802,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{Б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -720,7 +811,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{Текст}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -731,7 +822,7 @@ FUNCTION {bbl.media.eresource} { "{Электронный ресурс}" } { curlanguage "ukrainian" = { "{Електронний ресурс}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -743,7 +834,7 @@ FUNCTION {bbl.media.online} { "{Электронный ресурс онлайн}" } { curlanguage "ukrainian" = { "{Електронний ресурс онлайн}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -755,19 +846,19 @@ FUNCTION {bbl.chief} { "{рук.}" } { curlanguage "ukrainian" = { "{рук.}" } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "executor" } { curlanguage "russian" = { "{исполн.}" } { curlanguage "ukrainian" = { "{виконавець}" } - { "language is not defined: " language "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -789,7 +880,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{заявл.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -805,7 +896,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{опубл.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -821,7 +912,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{приоритет}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -829,68 +920,462 @@ FUNCTION {bbl.priority} if$ } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"Січ."} % Січень + { curlanguage "russian" = + { "Янв." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"Лют."} % Лютий + { curlanguage "russian" = + { "Фев." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"Бер."} % Березень + { curlanguage "russian" = + { "Март" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"Квіт."} % квітень + { curlanguage "russian" = + { "Апр." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"Трав."} % травень + { curlanguage "russian" = + { "Май" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"Чер."} % червень + { curlanguage "russian" = + { "Июнь" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"Липень"} %Липень + { curlanguage "russian" = + { "Июль" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"Серпень"} % Серпень + { curlanguage "russian" = + { "Авг." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"Вер."} % вересень + { curlanguage "russian" = + { "Сент." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"Жов."} % жовтень + { curlanguage "russian" = + { "Окт." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"Лис."} % листопад + { curlanguage "russian" = + { "Нояб." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"Груд."} % грудень + { curlanguage "russian" = + { "Дек." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google Книги"} + { curlanguage "russian" = + { "Google Книги" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } + if$ +} + +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } + if$ +} + +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } + if$ +} +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } + if$ +} + +FUNCTION {format.month} +{ month empty$ + { "" } + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} + if$ +} +FUNCTION {format.date} +{ year.or.date.to.year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + format.month + } + if$ + } + { month empty$ + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } + if$ + } + if$ +} + INTEGERS { nameptr namesleft numnames } +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{~ff}" + format.name$ +} -FUNCTION {format.names} +FUNCTION {fmt.names.three} { '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$ - } + { 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$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } while$ } - -FUNCTION {format.names.rev} -{ - 's := +FUNCTION {fmt.names.all} +{ 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr - "{ff}{~vv}{~ll}{, jj}" format.name$ 't := + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{~ff}" + format.name$ 't := nameptr #1 > - { nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > + { namesleft #1 > { ", " * t * } - { t "others" = - t "~others" = - or + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or { " " * bbl.etal * } - { ", " * t * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -903,145 +1388,57 @@ FUNCTION {format.names.rev} 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} +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} +{ + author empty$ + { author } %%%'skip$ + {author num.names$ #4 < + { + author fmt.names.three + } + { "" } %%%'skip$ + if$} if$ } -FUNCTION {format.bookauthors.after} +FUNCTION {format.bookauthors.rest} { bookauthor empty$ { "" } - { bookauthor format.names.rev}% always cuts to 4 persons + { bookauthor fmt.names.three emphasize } if$ } -FUNCTION {format.editors.after} +FUNCTION {format.editors.rest} { editor empty$ { "" } - { bbl.edby "\ " * editor format.names.rev * } + { bbl.edby "\ " * editor fmt.names.three * } if$ } -FUNCTION {format.chief.after} +FUNCTION {format.chief.rest} { editor empty$ { "" } - { bbl.chief "\ " * editor format.names.rev * } + { bbl.chief "\ " * editor fmt.names.three * } if$ } -FUNCTION {format.executor.after} +FUNCTION {format.executor.rest} { author empty$ { "" } - { bbl.executor ": " * author format.names.rev * } + { bbl.executor ": " * author fmt.names.three * } if$ } -FUNCTION {format.compiler.after} +FUNCTION {format.compiler.rest} { compiler empty$ { "" } - { bbl.cmplr "\ " * compiler format.names.rev * } - if$ -} - -FUNCTION {format.title} -{ title empty$ - { "" } - { title } - if$ -} - -FUNCTION {format.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "Янв." } - { month "Feb." = - { "Фев." } - { month "Mar." = - { "Март" } - { month "Apr." = - { "Апр." } - { month "May" = - { "Май" } - { month "Jun." = - { "Июнь" } - { month "Jul." = - { "Июль" } - { month "Aug." = - { "Авг." } - { month "Sep." = - { "Сент." } - { month "Oct." = - { "Окт." } - { month "Nov." = - { "Нояб." } - { month "Dec." = - { "Дек." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month - } - if$ - } - { month empty$ - 'year - { year ". \BibDash " format.month * * } - if$ - } - if$ -} - -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } + { bbl.compiler "\ " * compiler fmt.names.three * } if$ } -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ -} - -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} FUNCTION {output.address.publisher} { address empty$ location empty$ and @@ -1055,88 +1452,26 @@ FUNCTION {output.address.publisher} if$ publisher output } - - FUNCTION {output.bibitem} -{ newline$ +{ + set.language + newline$ "\bibitem" write$ cite$ bracify write$ newline$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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 * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1165,30 +1500,6 @@ FUNCTION {format.number.series} 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 @@ -1205,38 +1516,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1257,15 +1536,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1328,6 +1598,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1348,81 +1631,61 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ {author num.names$ #4 < - {format.authors output - new.sentence} + { + author fmt.names.three 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} +FUNCTION {output.author.rest} { author empty$ 'skip$ {author num.names$ #3 > - {format.authors.after output - new.semicolon } + { author fmt.names.all output + new.semicolon + } 'skip$ if$} if$ } -FUNCTION {bookauthor.after} +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.three output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1473,7 +1736,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1484,7 +1747,7 @@ FUNCTION {add.media} 'skip$ { media empty$ 'skip$ - { " " * bbl.media enclose.square.brackets * } + { " " * bbl.media bracketise * } if$ } if$ @@ -1565,14 +1828,15 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before - format.title add.media "title" output.check + output.author.head + %new.sentence + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1589,18 +1853,21 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1618,15 +1885,18 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before - format.title add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1638,22 +1908,25 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1671,18 +1944,21 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1699,14 +1975,21 @@ FUNCTION {incollection} FUNCTION {proceedings} { output.bibitem - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1717,22 +2000,26 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head new.sentence - format.title add.doi add.media "title" output.check + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -1752,10 +2039,12 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -1772,7 +2061,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1785,6 +2074,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -1792,9 +2083,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull new.semicolon holder output.nonnull new.semicolon @@ -1809,7 +2100,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -1822,13 +2113,15 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1839,13 +2132,16 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before - format.btitle "title" output.check + output.author.head + new.sentence + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -1856,12 +2152,14 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka howpublished output - editor.organization.after + editor.organization.rest new.sentence new.block output.address.publisher @@ -1880,25 +2178,24 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1908,13 +2205,14 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -1923,14 +2221,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -1943,9 +2241,9 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -1954,13 +2252,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1970,12 +2269,11 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -1984,13 +2282,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2000,12 +2299,11 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2014,13 +2312,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2030,7 +2329,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2038,7 +2336,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon format.techreport.type output new.colon @@ -2047,14 +2345,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2079,96 +2377,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2211,47 +2509,46 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"УФН"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - STRINGS { longest.label } INTEGERS { number.label longest.label.width } @@ -2288,15 +2585,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2319,5 +2608,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index 33c38ca1c03..087a0d7178a 100644 --- a/Master/texmf-dist/bibtex/bst/gost/ugost2008l.bst +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2008l.bst @@ -4,30 +4,22 @@ %% %% The original source files were: %% -%% gost.dtx (with options: `bst,utf8,modern,eprint,long') +%% gost.dtx (with options: `bst,utf8,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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ugost2008l.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.0.5-2008 for bibliographic reference. @@ -67,15 +59,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -100,8 +92,23 @@ ENTRY {} { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -114,11 +121,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -143,7 +157,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -177,7 +191,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -256,13 +272,6 @@ FUNCTION {or} if$ } - -FUNCTION {non.stop} -{ duplicate$ - "}" * add.period$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -309,9 +318,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -323,7 +344,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -331,7 +352,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -339,25 +360,82 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } -FUNCTION {bbl.edby} % { "\bbledby{}" } +FUNCTION {tie.connect} + {"~" swap$ * * + } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +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 {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"Під ред."} + {"під ред."} { curlanguage "russian" = - {"Под ред."} + {"под ред."} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -366,15 +444,15 @@ FUNCTION {bbl.cmplr} {"{Укл.}"} { curlanguage "russian" = {"{Сост.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{вид.}"} { curlanguage "russian" = @@ -385,7 +463,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -393,31 +471,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -426,13 +504,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"Выпуск"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -441,13 +519,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"Вып."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -456,13 +534,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{із}" } { curlanguage "russian" = { "{из}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -471,126 +549,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{та~ін.}"} { curlanguage "russian" = {"и~др."} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} +FUNCTION {bbl.and} +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"і"} + { curlanguage "russian" = + {"и"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} + if$} + if$} + if$} +if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { curlanguage "english" = {"Number"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{Номер}" } { curlanguage "german" = {"{Heft}"} %%% { "Anzahl" } - {"language is not defined: " language "nnumber" * * warning$ "Number"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { curlanguage "english" = {"number"} { curlanguage "ukrainian" = curlanguage "russian" = or {"{номер}"} { curlanguage "german" = {"{Heft}"} %%% { "anzahl" }??? - {"language is not defined: " language "number" * * warning$ "number"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{в}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{В}" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -604,7 +702,10 @@ FUNCTION {bbl.url} { "{Режим доступа}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -618,20 +719,23 @@ FUNCTION {bbl.urldate} { "{дата обращения}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{Отчет}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -640,10 +744,10 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{Квалификационная работа магистра}" } - { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + { "{квалификационная работа магистра}" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -652,12 +756,12 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = - { "{дис.\ \ldots\ канд. наук}" } + { "{дис.\ \ldots\ канд.\ наук}" } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -665,35 +769,22 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{дис.\ \ldots\ д-ра наук}" } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{Б.\ м.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -702,7 +793,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -711,7 +802,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{Б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -720,7 +811,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{Текст}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -731,7 +822,7 @@ FUNCTION {bbl.media.eresource} { "{Электронный ресурс}" } { curlanguage "ukrainian" = { "{Електронний ресурс}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -743,7 +834,7 @@ FUNCTION {bbl.media.online} { "{Электронный ресурс онлайн}" } { curlanguage "ukrainian" = { "{Електронний ресурс онлайн}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -755,19 +846,19 @@ FUNCTION {bbl.chief} { "{рук.}" } { curlanguage "ukrainian" = { "{рук.}" } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "executor" } { curlanguage "russian" = { "{исполн.}" } { curlanguage "ukrainian" = { "{виконавець}" } - { "language is not defined: " language "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -789,7 +880,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{заявл.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -805,7 +896,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{опубл.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -821,7 +912,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{приоритет}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -829,68 +920,462 @@ FUNCTION {bbl.priority} if$ } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"Січ."} % Січень + { curlanguage "russian" = + { "Янв." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"Лют."} % Лютий + { curlanguage "russian" = + { "Фев." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"Бер."} % Березень + { curlanguage "russian" = + { "Март" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"Квіт."} % квітень + { curlanguage "russian" = + { "Апр." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"Трав."} % травень + { curlanguage "russian" = + { "Май" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"Чер."} % червень + { curlanguage "russian" = + { "Июнь" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"Липень"} %Липень + { curlanguage "russian" = + { "Июль" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"Серпень"} % Серпень + { curlanguage "russian" = + { "Авг." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"Вер."} % вересень + { curlanguage "russian" = + { "Сент." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"Жов."} % жовтень + { curlanguage "russian" = + { "Окт." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"Лис."} % листопад + { curlanguage "russian" = + { "Нояб." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"Груд."} % грудень + { curlanguage "russian" = + { "Дек." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google Книги"} + { curlanguage "russian" = + { "Google Книги" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } + if$ +} + +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } + if$ +} + +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } + if$ +} +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } + if$ +} + +FUNCTION {format.month} +{ month empty$ + { "" } + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} + if$ +} +FUNCTION {format.date} +{ year.or.date.to.year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + format.month + } + if$ + } + { month empty$ + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } + if$ + } + if$ +} + INTEGERS { nameptr namesleft numnames } +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{~ff}" + format.name$ +} -FUNCTION {format.names} +FUNCTION {fmt.names.three} { '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$ - } + { 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$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } while$ } - -FUNCTION {format.names.rev} -{ - 's := +FUNCTION {fmt.names.all} +{ 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr - "{ff}{~vv}{~ll}{, jj}" format.name$ 't := + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{~ff}" + format.name$ 't := nameptr #1 > - { nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > + { namesleft #1 > { ", " * t * } - { t "others" = - t "~others" = - or + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or { " " * bbl.etal * } - { ", " * t * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -903,145 +1388,52 @@ FUNCTION {format.names.rev} 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} +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} +{ + author empty$ + { author } %%%'skip$ + { author fmt.names.all } if$ } -FUNCTION {format.bookauthors.after} +FUNCTION {format.bookauthors.rest} { bookauthor empty$ { "" } - { bookauthor format.names.rev}% always cuts to 4 persons + { bookauthor fmt.names.all emphasize } if$ } -FUNCTION {format.editors.after} +FUNCTION {format.editors.rest} { editor empty$ { "" } - { bbl.edby "\ " * editor format.names.rev * } + { bbl.edby "\ " * editor fmt.names.all * } if$ } -FUNCTION {format.chief.after} +FUNCTION {format.chief.rest} { editor empty$ { "" } - { bbl.chief "\ " * editor format.names.rev * } + { bbl.chief "\ " * editor fmt.names.all * } if$ } -FUNCTION {format.executor.after} +FUNCTION {format.executor.rest} { author empty$ { "" } - { bbl.executor ": " * author format.names.rev * } + { bbl.executor ": " * author fmt.names.all * } if$ } -FUNCTION {format.compiler.after} +FUNCTION {format.compiler.rest} { compiler empty$ { "" } - { bbl.cmplr "\ " * compiler format.names.rev * } + { bbl.compiler "\ " * compiler fmt.names.all * } if$ } -FUNCTION {format.title} -{ title empty$ - { "" } - { title } - if$ -} - -FUNCTION {format.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "Янв." } - { month "Feb." = - { "Фев." } - { month "Mar." = - { "Март" } - { month "Apr." = - { "Апр." } - { month "May" = - { "Май" } - { month "Jun." = - { "Июнь" } - { month "Jul." = - { "Июль" } - { month "Aug." = - { "Авг." } - { month "Sep." = - { "Сент." } - { month "Oct." = - { "Окт." } - { month "Nov." = - { "Нояб." } - { month "Dec." = - { "Дек." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month - } - if$ - } - { month empty$ - 'year - { year ". \BibDash " format.month * * } - if$ - } - if$ -} - -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } - if$ -} - -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ -} - -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} FUNCTION {output.address.publisher} { address empty$ location empty$ and @@ -1055,88 +1447,26 @@ FUNCTION {output.address.publisher} if$ publisher output } - - FUNCTION {output.bibitem} -{ newline$ +{ + set.language + newline$ "\bibitem" write$ cite$ bracify write$ newline$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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 * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1165,30 +1495,6 @@ FUNCTION {format.number.series} 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 @@ -1205,38 +1511,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1257,15 +1531,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1328,6 +1593,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1348,69 +1626,48 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ - { format.authors output - new.sentence + { author fmt.names.all output.nonnull + %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} +FUNCTION {output.author.rest} +{ +} + +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.three output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1461,7 +1718,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1472,7 +1729,7 @@ FUNCTION {add.media} 'skip$ { media empty$ 'skip$ - { " " * bbl.media enclose.square.brackets * } + { " " * bbl.media bracketise * } if$ } if$ @@ -1553,14 +1810,15 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before - format.title add.media "title" output.check + output.author.head + %new.sentence + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1577,18 +1835,21 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1606,15 +1867,18 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before - format.title add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1626,22 +1890,25 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1659,18 +1926,21 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1687,14 +1957,21 @@ FUNCTION {incollection} FUNCTION {proceedings} { output.bibitem - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1705,22 +1982,26 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head new.sentence - format.title add.doi add.media "title" output.check + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -1740,10 +2021,12 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -1760,7 +2043,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1773,6 +2056,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -1780,9 +2065,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull new.semicolon holder output.nonnull new.semicolon @@ -1797,7 +2082,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -1810,13 +2095,15 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1827,13 +2114,16 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before - format.btitle "title" output.check + output.author.head + new.sentence + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -1844,12 +2134,14 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka howpublished output - editor.organization.after + editor.organization.rest new.sentence new.block output.address.publisher @@ -1868,25 +2160,24 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1896,13 +2187,14 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -1911,14 +2203,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -1931,9 +2223,9 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -1942,13 +2234,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1958,12 +2251,11 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -1972,13 +2264,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1988,12 +2281,11 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2002,13 +2294,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2018,7 +2311,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2026,7 +2318,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon format.techreport.type output new.colon @@ -2035,14 +2327,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2067,96 +2359,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2199,47 +2491,46 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"УФН"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - STRINGS { longest.label } INTEGERS { number.label longest.label.width } @@ -2276,15 +2567,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2307,5 +2590,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index 73136bbe492..5a0633e8d19 100644 --- a/Master/texmf-dist/bibtex/bst/gost/ugost2008ls.bst +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2008ls.bst @@ -4,30 +4,22 @@ %% %% The original source files were: %% -%% gost.dtx (with options: `bst,utf8,modern,eprint,longlist,sort') +%% gost.dtx (with options: `bst,utf8,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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ugost2008ls.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.0.5-2008 for bibliographic reference. @@ -67,15 +59,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -100,8 +92,23 @@ ENTRY {} { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -114,11 +121,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -143,7 +157,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -177,7 +191,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -256,23 +272,6 @@ 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$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -319,9 +318,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -333,7 +344,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -341,7 +352,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -349,25 +360,92 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {tie.connect} + {"~" swap$ * * + } -FUNCTION {bbl.edby} % { "\bbledby{}" } +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +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 {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"Під ред."} + {"під ред."} { curlanguage "russian" = - {"Под ред."} + {"под ред."} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -376,15 +454,15 @@ FUNCTION {bbl.cmplr} {"{Укл.}"} { curlanguage "russian" = {"{Сост.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{вид.}"} { curlanguage "russian" = @@ -395,7 +473,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -403,31 +481,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -436,13 +514,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"Выпуск"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -451,13 +529,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"Вып."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -466,13 +544,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{із}" } { curlanguage "russian" = { "{из}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -481,126 +559,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{та~ін.}"} { curlanguage "russian" = {"и~др."} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} +FUNCTION {bbl.and} +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"і"} + { curlanguage "russian" = + {"и"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} + if$} + if$} + if$} +if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { curlanguage "english" = {"Number"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{Номер}" } { curlanguage "german" = {"{Heft}"} %%% { "Anzahl" } - {"language is not defined: " language "nnumber" * * warning$ "Number"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { curlanguage "english" = {"number"} { curlanguage "ukrainian" = curlanguage "russian" = or {"{номер}"} { curlanguage "german" = {"{Heft}"} %%% { "anzahl" }??? - {"language is not defined: " language "number" * * warning$ "number"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{в}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{В}" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -614,7 +712,10 @@ FUNCTION {bbl.url} { "{Режим доступа}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -628,20 +729,23 @@ FUNCTION {bbl.urldate} { "{дата обращения}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{Отчет}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -650,10 +754,10 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{Квалификационная работа магистра}" } - { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + { "{квалификационная работа магистра}" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -662,12 +766,12 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = - { "{дис.\ \ldots\ канд. наук}" } + { "{дис.\ \ldots\ канд.\ наук}" } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -675,35 +779,22 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{дис.\ \ldots\ д-ра наук}" } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{Б.\ м.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -712,7 +803,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -721,7 +812,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{Б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -730,7 +821,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{Текст}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -741,7 +832,7 @@ FUNCTION {bbl.media.eresource} { "{Электронный ресурс}" } { curlanguage "ukrainian" = { "{Електронний ресурс}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -753,7 +844,7 @@ FUNCTION {bbl.media.online} { "{Электронный ресурс онлайн}" } { curlanguage "ukrainian" = { "{Електронний ресурс онлайн}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -765,19 +856,19 @@ FUNCTION {bbl.chief} { "{рук.}" } { curlanguage "ukrainian" = { "{рук.}" } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "executor" } { curlanguage "russian" = { "{исполн.}" } { curlanguage "ukrainian" = { "{виконавець}" } - { "language is not defined: " language "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -799,7 +890,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{заявл.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -815,7 +906,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{опубл.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -831,7 +922,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{приоритет}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -839,68 +930,462 @@ FUNCTION {bbl.priority} if$ } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"Січ."} % Січень + { curlanguage "russian" = + { "Янв." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"Лют."} % Лютий + { curlanguage "russian" = + { "Фев." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"Бер."} % Березень + { curlanguage "russian" = + { "Март" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"Квіт."} % квітень + { curlanguage "russian" = + { "Апр." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"Трав."} % травень + { curlanguage "russian" = + { "Май" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"Чер."} % червень + { curlanguage "russian" = + { "Июнь" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"Липень"} %Липень + { curlanguage "russian" = + { "Июль" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"Серпень"} % Серпень + { curlanguage "russian" = + { "Авг." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"Вер."} % вересень + { curlanguage "russian" = + { "Сент." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"Жов."} % жовтень + { curlanguage "russian" = + { "Окт." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"Лис."} % листопад + { curlanguage "russian" = + { "Нояб." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"Груд."} % грудень + { curlanguage "russian" = + { "Дек." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google Книги"} + { curlanguage "russian" = + { "Google Книги" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } + if$ +} + +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } + if$ +} + +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } + if$ +} +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } + if$ +} + +FUNCTION {format.month} +{ month empty$ + { "" } + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} + if$ +} +FUNCTION {format.date} +{ year.or.date.to.year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + format.month + } + if$ + } + { month empty$ + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } + if$ + } + if$ +} + INTEGERS { nameptr namesleft numnames } +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{~ff}" + format.name$ +} -FUNCTION {format.names} +FUNCTION {fmt.names.three} { '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$ - } + { 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$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } while$ } - -FUNCTION {format.names.rev} -{ - 's := +FUNCTION {fmt.names.all} +{ 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr - "{ff}{~vv}{~ll}{, jj}" format.name$ 't := + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{~ff}" + format.name$ 't := nameptr #1 > - { nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > + { namesleft #1 > { ", " * t * } - { t "others" = - t "~others" = - or + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or { " " * bbl.etal * } - { ", " * t * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -913,145 +1398,52 @@ FUNCTION {format.names.rev} 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} +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} +{ + author empty$ + { author } %%%'skip$ + { author fmt.names.all } if$ } -FUNCTION {format.bookauthors.after} +FUNCTION {format.bookauthors.rest} { bookauthor empty$ { "" } - { bookauthor format.names.rev}% always cuts to 4 persons + { bookauthor fmt.names.all emphasize } if$ } -FUNCTION {format.editors.after} +FUNCTION {format.editors.rest} { editor empty$ { "" } - { bbl.edby "\ " * editor format.names.rev * } + { bbl.edby "\ " * editor fmt.names.all * } if$ } -FUNCTION {format.chief.after} +FUNCTION {format.chief.rest} { editor empty$ { "" } - { bbl.chief "\ " * editor format.names.rev * } + { bbl.chief "\ " * editor fmt.names.all * } if$ } -FUNCTION {format.executor.after} +FUNCTION {format.executor.rest} { author empty$ { "" } - { bbl.executor ": " * author format.names.rev * } + { bbl.executor ": " * author fmt.names.all * } if$ } -FUNCTION {format.compiler.after} +FUNCTION {format.compiler.rest} { compiler empty$ { "" } - { bbl.cmplr "\ " * compiler format.names.rev * } - if$ -} - -FUNCTION {format.title} -{ title empty$ - { "" } - { title } - if$ -} - -FUNCTION {format.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "Янв." } - { month "Feb." = - { "Фев." } - { month "Mar." = - { "Март" } - { month "Apr." = - { "Апр." } - { month "May" = - { "Май" } - { month "Jun." = - { "Июнь" } - { month "Jul." = - { "Июль" } - { month "Aug." = - { "Авг." } - { month "Sep." = - { "Сент." } - { month "Oct." = - { "Окт." } - { month "Nov." = - { "Нояб." } - { month "Dec." = - { "Дек." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month - } - if$ - } - { month empty$ - 'year - { year ". \BibDash " format.month * * } - if$ - } + { bbl.compiler "\ " * compiler fmt.names.all * } if$ } -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } - if$ -} - -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ -} - -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} FUNCTION {output.address.publisher} { address empty$ location empty$ and @@ -1065,88 +1457,26 @@ FUNCTION {output.address.publisher} if$ publisher output } - - FUNCTION {output.bibitem} -{ newline$ +{ + set.language + newline$ "\bibitem" write$ cite$ bracify write$ newline$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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 * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1175,30 +1505,6 @@ FUNCTION {format.number.series} 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 @@ -1215,38 +1521,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1267,15 +1541,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1338,6 +1603,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1358,81 +1636,48 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ - {author num.names$ #4 < - {format.authors output - new.sentence} - 'skip$ - if$} + { author fmt.names.all output.nonnull + %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 {output.author.rest} { - author empty$ - 'skip$ - {author num.names$ #3 > - {format.authors.after output - new.semicolon } - 'skip$ - if$} - if$ } -FUNCTION {bookauthor.after} +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.three output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1483,7 +1728,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1494,7 +1739,7 @@ FUNCTION {add.media} 'skip$ { media empty$ 'skip$ - { " " * bbl.media enclose.square.brackets * } + { " " * bbl.media bracketise * } if$ } if$ @@ -1575,14 +1820,15 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before - format.title add.media "title" output.check + output.author.head + %new.sentence + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1599,18 +1845,21 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1628,15 +1877,18 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before - format.title add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1648,22 +1900,25 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1681,18 +1936,21 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1709,14 +1967,21 @@ FUNCTION {incollection} FUNCTION {proceedings} { output.bibitem - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1727,22 +1992,26 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -1762,10 +2031,12 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -1782,7 +2053,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1795,6 +2066,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -1802,9 +2075,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull new.semicolon holder output.nonnull new.semicolon @@ -1819,7 +2092,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -1832,13 +2105,15 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1849,13 +2124,16 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before - format.btitle "title" output.check + output.author.head + new.sentence + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -1866,12 +2144,14 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka howpublished output - editor.organization.after + editor.organization.rest new.sentence new.block output.address.publisher @@ -1890,25 +2170,24 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1918,13 +2197,14 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -1933,14 +2213,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -1953,9 +2233,9 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -1964,13 +2244,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1980,12 +2261,11 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -1994,13 +2274,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2010,12 +2291,11 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2024,13 +2304,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2040,7 +2321,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2048,7 +2328,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon format.techreport.type output new.colon @@ -2057,14 +2337,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2089,96 +2369,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2221,48 +2501,46 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"УФН"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - FUNCTION {sortify} { purify$ } - %% ===================================== %% This version from old Gost package %%<*!natbib> @@ -2349,10 +2627,9 @@ FUNCTION {author.title.sort} {author sort.format.names } {title sort.format.title} if$ - } + } if$ } - FUNCTION {presort}%#1 { author.title.sort @@ -2411,15 +2688,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2442,5 +2711,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index 296c8d812ac..1e451663086 100644 --- a/Master/texmf-dist/bibtex/bst/gost/ugost2008n.bst +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2008n.bst @@ -4,30 +4,22 @@ %% %% The original source files were: %% -%% gost.dtx (with options: `bst,utf8,modern,natbib,eprint') +%% gost.dtx (with options: `bst,utf8,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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ugost2008n.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.0.5-2008 for bibliographic reference. %%------------------------------------------------------------------- @@ -37,7 +29,7 @@ %% 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, +%% 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. @@ -47,11 +39,11 @@ %% The \cite command functions as follows: %% \citet{key} => Jones et al. (1990) %% \citet*{key} => Jones, Baker, and Smith (1990) -%% \cite{key} => (Jones et al., 1990) -%% \cite*{key} => (Jones, Baker, and Smith, 1990) -%% \cite[chap. 2]{key} => (Jones et al., 1990, chap. 2) -%% \cite[e.g.][]{key} => (e.g. Jones et al., 1990) -%% \cite[e.g.][p. 32]{key} => (e.g. Jones et al., p. 32) +%% \cite{key} => (Jones et al., 1990) +%% \cite*{key} => (Jones, Baker, and Smith, 1990) +%% \cite[chap. 2]{key} => (Jones et al., 1990, chap. 2) +%% \cite[e.g.][]{key} => (e.g. Jones et al., 1990) +%% \cite[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 @@ -93,15 +85,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -126,8 +118,23 @@ ENTRY {} { label extra.label sort.label short.list } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -140,11 +147,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -169,7 +183,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -203,7 +217,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -282,23 +298,6 @@ 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$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -345,9 +344,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -359,7 +370,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -367,7 +378,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -375,25 +386,92 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {tie.connect} + {"~" swap$ * * + } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +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 {bbl.edby} % { "\bbledby{}" } +FUNCTION {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"Під ред."} + {"під ред."} { curlanguage "russian" = - {"Под ред."} + {"под ред."} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -402,15 +480,15 @@ FUNCTION {bbl.cmplr} {"{Укл.}"} { curlanguage "russian" = {"{Сост.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{вид.}"} { curlanguage "russian" = @@ -421,7 +499,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -429,31 +507,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -462,13 +540,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"Выпуск"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -477,13 +555,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"Вып."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -492,13 +570,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{із}" } { curlanguage "russian" = { "{из}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -507,140 +585,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{та~ін.}"} { curlanguage "russian" = {"и~др."} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} -FUNCTION {bbl.and} % { "\bbland{}" } +FUNCTION {bbl.and} { curlanguage "english" = - {"and"} + {"and"} { curlanguage "german" = { "und" } { curlanguage "ukrainian" = {"і"} { curlanguage "russian" = {"и"} - {"language is not defined: " language "and" * * warning$ "and"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { curlanguage "english" = {"Number"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{Номер}" } { curlanguage "german" = {"{Heft}"} %%% { "Anzahl" } - {"language is not defined: " language "nnumber" * * warning$ "Number"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { curlanguage "english" = {"number"} { curlanguage "ukrainian" = curlanguage "russian" = or {"{номер}"} { curlanguage "german" = {"{Heft}"} %%% { "anzahl" }??? - {"language is not defined: " language "number" * * warning$ "number"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{в}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{В}" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -654,7 +738,10 @@ FUNCTION {bbl.url} { "{Режим доступа}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -668,20 +755,23 @@ FUNCTION {bbl.urldate} { "{дата обращения}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{Отчет}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -690,10 +780,10 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{Квалификационная работа магистра}" } - { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + { "{квалификационная работа магистра}" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -702,12 +792,12 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = - { "{дис.\ \ldots\ канд. наук}" } + { "{дис.\ \ldots\ канд.\ наук}" } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -715,35 +805,22 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{дис.\ \ldots\ д-ра наук}" } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{Б.\ м.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -752,7 +829,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -761,7 +838,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{Б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -770,7 +847,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{Текст}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -781,7 +858,7 @@ FUNCTION {bbl.media.eresource} { "{Электронный ресурс}" } { curlanguage "ukrainian" = { "{Електронний ресурс}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -793,7 +870,7 @@ FUNCTION {bbl.media.online} { "{Электронный ресурс онлайн}" } { curlanguage "ukrainian" = { "{Електронний ресурс онлайн}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -805,19 +882,19 @@ FUNCTION {bbl.chief} { "{рук.}" } { curlanguage "ukrainian" = { "{рук.}" } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "executor" } { curlanguage "russian" = { "{исполн.}" } { curlanguage "ukrainian" = { "{виконавець}" } - { "language is not defined: " language "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -839,7 +916,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{заявл.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -855,7 +932,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{опубл.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -871,7 +948,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{приоритет}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -879,32 +956,462 @@ FUNCTION {bbl.priority} if$ } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"Січ."} % Січень + { curlanguage "russian" = + { "Янв." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"Лют."} % Лютий + { curlanguage "russian" = + { "Фев." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"Бер."} % Березень + { curlanguage "russian" = + { "Март" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"Квіт."} % квітень + { curlanguage "russian" = + { "Апр." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"Трав."} % травень + { curlanguage "russian" = + { "Май" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"Чер."} % червень + { curlanguage "russian" = + { "Июнь" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"Липень"} %Липень + { curlanguage "russian" = + { "Июль" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"Серпень"} % Серпень + { curlanguage "russian" = + { "Авг." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"Вер."} % вересень + { curlanguage "russian" = + { "Сент." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"Жов."} % жовтень + { curlanguage "russian" = + { "Окт." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"Лис."} % листопад + { curlanguage "russian" = + { "Нояб." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"Груд."} % грудень + { curlanguage "russian" = + { "Дек." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google Книги"} + { curlanguage "russian" = + { "Google Книги" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } + if$ +} + +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } + if$ +} + +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } + if$ +} +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } + if$ +} + +FUNCTION {format.month} +{ month empty$ + { "" } + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} + if$ +} +FUNCTION {format.date} +{ year.or.date.to.year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + format.month + } + if$ + } + { month empty$ + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } + if$ + } + if$ +} + INTEGERS { nameptr namesleft numnames } +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{~ff}" + format.name$ +} -FUNCTION {format.names} +FUNCTION {fmt.names.three} { '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 {fmt.names.all} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := { namesleft #0 > } { s nameptr - "{vv~}{ll}{~jj}{~ff}" format.name$ 't := + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{~ff}" + format.name$ 't := nameptr #1 > - { nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > + { namesleft #1 > { ", " * t * } - { t "others" = - t "~others" = - or + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or { " " * bbl.etal * } - { ", " * t * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -917,54 +1424,76 @@ FUNCTION {format.names} while$ } -FUNCTION {format.lab.names} -{ 's := - language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} +{ + author empty$ + { author } %%%'skip$ + {author num.names$ #4 < + { + author fmt.names.three + } + { "" } %%%'skip$ + if$} 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$ - } +} + +FUNCTION {format.bookauthors.rest} +{ bookauthor empty$ + { "" } + { bookauthor fmt.names.three emphasize } if$ } -FUNCTION {format.names.rev} -{ - 's := +FUNCTION {format.editors.rest} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.chief.rest} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.executor.rest} +{ author empty$ + { "" } + { bbl.executor ": " * author fmt.names.three * } + if$ +} + +FUNCTION {format.compiler.rest} +{ compiler empty$ + { "" } + { bbl.compiler "\ " * compiler fmt.names.three * } + if$ +} + +FUNCTION {fmt.names.brief} +{ 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } - { s nameptr - "{ff}{~vv}{~ll}{, jj}" format.name$ 't := + { s nameptr "{vv~}{ll}" 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 * } + { + numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or + { " " bbl.etal * * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -977,17 +1506,29 @@ FUNCTION {format.names.rev} while$ } -FUNCTION {format.key} -{ empty$ - { key field.or.null } - { "" } +FUNCTION {format.names.key} +{ 's := + set.language %%% уже вызвана в output.bibitem, но вроде бы нужна и здесь + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " " bbl.etal * * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " bbl.etal * * } + { " " bbl.and " " * * * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } if$ } -FUNCTION {format.authors} -{ author empty$ +FUNCTION {format.key} +{ empty$ + { key field.or.null } { "" } - { author format.names emphasize} if$ } @@ -998,10 +1539,9 @@ FUNCTION {author.key.label} 'key if$ } - { author format.lab.names } + { author format.names.key } if$ } - FUNCTION {author.editor.key.label} { author empty$ { editor empty$ @@ -1011,10 +1551,10 @@ FUNCTION {author.editor.key.label} { "{}" key * } %% Bug in bibtex8 ?? if$ } - { editor format.lab.names } + { editor format.names.key } if$ } - { author format.lab.names } + { author format.names.key } if$ } @@ -1029,7 +1569,7 @@ FUNCTION {author.key.organization.label} 'key if$ } - { author format.lab.names } + { author format.names.key } if$ } @@ -1044,14 +1584,12 @@ FUNCTION {editor.key.organization.label} 'key if$ } - { editor format.lab.names } + { editor format.names.key } if$ } -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or +FUNCTION {calc.short.list} +{ type$ "book" = type$ "inbook" = or 'author.editor.key.label { type$ "proceedings" = 'editor.key.organization.label @@ -1067,11 +1605,11 @@ FUNCTION {calc.short.authors} } FUNCTION {calc.label} -{ calc.short.authors +{ calc.short.list short.list "(" * - year duplicate$ empty$ + year.or.date.to.year duplicate$ empty$ short.list key field.or.null = or { pop$ "" } 'skip$ @@ -1080,138 +1618,36 @@ FUNCTION {calc.label} '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.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "Янв." } - { month "Feb." = - { "Фев." } - { month "Mar." = - { "Март" } - { month "Apr." = - { "Апр." } - { month "May" = - { "Май" } - { month "Jun." = - { "Июнь" } - { month "Jul." = - { "Июль" } - { month "Aug." = - { "Авг." } - { month "Sep." = - { "Сент." } - { month "Oct." = - { "Окт." } - { month "Nov." = - { "Нояб." } - { month "Dec." = - { "Дек." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month +FUNCTION {calc.long.list} %% called 1 time only +{ type$ "book" = type$ "inbook" = or + %'format.author.editor.brief + { author empty$ + { editor empty$ + { "" } + { editor fmt.names.brief } + if$ } + { author fmt.names.brief } if$ } - { month empty$ - 'year - { year ". \BibDash " format.month * * } + { type$ "proceedings" = + %'format.editor.brief + { editor empty$ + { "" } + { editor fmt.names.brief } + if$ + } + %'format.author.brief + { author empty$ + { "" } + { author fmt.names.brief } + if$ + } if$ } if$ - extra.label * % new in v.1.2 } -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } - if$ -} - -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ -} - -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} FUNCTION {output.address.publisher} { address empty$ location empty$ and @@ -1225,173 +1661,26 @@ FUNCTION {output.address.publisher} 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$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid 'curlanguage := } - if$ +{ + set.language + newline$ + "\bibitem" write$ + label extra.label * ")" * + calc.long.list * + bracketise write$ + cite$ bracify write$ + newline$ "\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$ -} +%% "; mfn:" calc.long.list * * FUNCTION {format.bvolume} { volume empty$ @@ -1399,7 +1688,7 @@ FUNCTION {format.bvolume} { bbl.vvol volume tie.connect series empty$ 'skip$ - { bbl.of space.word * series emphasize * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1428,30 +1717,6 @@ FUNCTION {format.number.series} 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 @@ -1468,38 +1733,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1520,15 +1753,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1591,6 +1815,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1611,81 +1848,61 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ {author num.names$ #4 < - {format.authors output - new.sentence} + { + author fmt.names.three 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} +FUNCTION {output.author.rest} { author empty$ 'skip$ {author num.names$ #3 > - {format.authors.after output - new.semicolon } + { author fmt.names.all output + new.semicolon + } 'skip$ if$} if$ } -FUNCTION {bookauthor.after} +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.three output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1736,7 +1953,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1747,7 +1964,7 @@ FUNCTION {add.media} 'skip$ { media empty$ 'skip$ - { " " * bbl.media enclose.square.brackets * } + { " " * bbl.media bracketise * } if$ } if$ @@ -1828,15 +2045,16 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before + output.author.head + %new.sentence author format.key output - format.title add.media "title" output.check + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1853,19 +2071,22 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1883,16 +2104,19 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1904,23 +2128,26 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1938,19 +2165,22 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head + new.sentence author format.key output new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1968,14 +2198,21 @@ FUNCTION {proceedings} { output.bibitem editor format.key output - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1986,23 +2223,27 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head + new.sentence author format.key output new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -2022,11 +2263,13 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ author format.key output new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -2043,7 +2286,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -2056,6 +2299,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -2063,9 +2308,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull author format.key output new.semicolon holder output.nonnull @@ -2081,7 +2326,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -2094,14 +2339,16 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k author format.key output title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -2112,14 +2359,17 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.btitle "title" output.check + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -2130,13 +2380,15 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output author format.key output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka howpublished output - editor.organization.after + editor.organization.rest new.sentence new.block output.address.publisher @@ -2155,26 +2407,25 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2184,14 +2435,15 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check title format.key output + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -2200,14 +2452,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2220,10 +2472,10 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -2232,13 +2484,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2248,13 +2501,12 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -2263,13 +2515,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2279,13 +2532,12 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2294,13 +2546,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2310,7 +2563,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2318,7 +2570,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check title format.key output new.colon format.techreport.type output @@ -2328,14 +2580,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2360,96 +2612,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2492,49 +2744,47 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"УФН"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - FUNCTION {sortify} { purify$ } - INTEGERS { seq.num } FUNCTION {init.seq} @@ -2608,7 +2858,7 @@ FUNCTION {reverse.pass} { "{\natexlab{" swap$ * "}}" * } if$ 'extra.label := - label extra.label * 'label := + %%%label extra.label * 'label := } REVERSE {reverse.pass} @@ -2631,15 +2881,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2663,5 +2905,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index a0fd79862f6..e5eb726239c 100644 --- a/Master/texmf-dist/bibtex/bst/gost/ugost2008ns.bst +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2008ns.bst @@ -4,30 +4,22 @@ %% %% The original source files were: %% -%% gost.dtx (with options: `bst,utf8,modern,natbib,eprint,sort') +%% gost.dtx (with options: `bst,utf8,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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ugost2008ns.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.0.5-2008 for bibliographic reference. %%------------------------------------------------------------------- @@ -37,7 +29,7 @@ %% 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, +%% 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. @@ -47,11 +39,11 @@ %% The \cite command functions as follows: %% \citet{key} => Jones et al. (1990) %% \citet*{key} => Jones, Baker, and Smith (1990) -%% \cite{key} => (Jones et al., 1990) -%% \cite*{key} => (Jones, Baker, and Smith, 1990) -%% \cite[chap. 2]{key} => (Jones et al., 1990, chap. 2) -%% \cite[e.g.][]{key} => (e.g. Jones et al., 1990) -%% \cite[e.g.][p. 32]{key} => (e.g. Jones et al., p. 32) +%% \cite{key} => (Jones et al., 1990) +%% \cite*{key} => (Jones, Baker, and Smith, 1990) +%% \cite[chap. 2]{key} => (Jones et al., 1990, chap. 2) +%% \cite[e.g.][]{key} => (e.g. Jones et al., 1990) +%% \cite[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 @@ -93,15 +85,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -126,8 +118,23 @@ ENTRY {} { label extra.label sort.label short.list } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -140,11 +147,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -169,7 +183,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -203,7 +217,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -282,23 +298,6 @@ 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$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -345,9 +344,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -359,7 +370,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -367,7 +378,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -375,25 +386,92 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {tie.connect} + {"~" swap$ * * + } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +INTEGERS { multiresult } -FUNCTION {bbl.edby} % { "\bbledby{}" } +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 {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"Під ред."} + {"під ред."} { curlanguage "russian" = - {"Под ред."} + {"под ред."} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -402,15 +480,15 @@ FUNCTION {bbl.cmplr} {"{Укл.}"} { curlanguage "russian" = {"{Сост.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{вид.}"} { curlanguage "russian" = @@ -421,7 +499,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -429,31 +507,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -462,13 +540,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"Выпуск"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -477,13 +555,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"Вып."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -492,13 +570,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{із}" } { curlanguage "russian" = { "{из}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -507,140 +585,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{та~ін.}"} { curlanguage "russian" = {"и~др."} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} -FUNCTION {bbl.and} % { "\bbland{}" } +FUNCTION {bbl.and} { curlanguage "english" = - {"and"} + {"and"} { curlanguage "german" = { "und" } { curlanguage "ukrainian" = {"і"} { curlanguage "russian" = {"и"} - {"language is not defined: " language "and" * * warning$ "and"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { curlanguage "english" = {"Number"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{Номер}" } { curlanguage "german" = {"{Heft}"} %%% { "Anzahl" } - {"language is not defined: " language "nnumber" * * warning$ "Number"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { curlanguage "english" = {"number"} { curlanguage "ukrainian" = curlanguage "russian" = or {"{номер}"} { curlanguage "german" = {"{Heft}"} %%% { "anzahl" }??? - {"language is not defined: " language "number" * * warning$ "number"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{в}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{В}" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -654,7 +738,10 @@ FUNCTION {bbl.url} { "{Режим доступа}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -668,20 +755,23 @@ FUNCTION {bbl.urldate} { "{дата обращения}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{Отчет}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -690,10 +780,10 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{Квалификационная работа магистра}" } - { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + { "{квалификационная работа магистра}" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -702,12 +792,12 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = - { "{дис.\ \ldots\ канд. наук}" } + { "{дис.\ \ldots\ канд.\ наук}" } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -715,35 +805,22 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{дис.\ \ldots\ д-ра наук}" } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{Б.\ м.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -752,7 +829,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -761,7 +838,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{Б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -770,7 +847,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{Текст}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -781,7 +858,7 @@ FUNCTION {bbl.media.eresource} { "{Электронный ресурс}" } { curlanguage "ukrainian" = { "{Електронний ресурс}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -793,7 +870,7 @@ FUNCTION {bbl.media.online} { "{Электронный ресурс онлайн}" } { curlanguage "ukrainian" = { "{Електронний ресурс онлайн}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -805,19 +882,19 @@ FUNCTION {bbl.chief} { "{рук.}" } { curlanguage "ukrainian" = { "{рук.}" } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "executor" } { curlanguage "russian" = { "{исполн.}" } { curlanguage "ukrainian" = { "{виконавець}" } - { "language is not defined: " language "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -839,7 +916,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{заявл.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -855,7 +932,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{опубл.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -871,7 +948,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{приоритет}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -879,32 +956,462 @@ FUNCTION {bbl.priority} if$ } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"Січ."} % Січень + { curlanguage "russian" = + { "Янв." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"Лют."} % Лютий + { curlanguage "russian" = + { "Фев." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"Бер."} % Березень + { curlanguage "russian" = + { "Март" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"Квіт."} % квітень + { curlanguage "russian" = + { "Апр." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"Трав."} % травень + { curlanguage "russian" = + { "Май" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"Чер."} % червень + { curlanguage "russian" = + { "Июнь" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"Липень"} %Липень + { curlanguage "russian" = + { "Июль" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"Серпень"} % Серпень + { curlanguage "russian" = + { "Авг." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"Вер."} % вересень + { curlanguage "russian" = + { "Сент." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"Жов."} % жовтень + { curlanguage "russian" = + { "Окт." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"Лис."} % листопад + { curlanguage "russian" = + { "Нояб." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"Груд."} % грудень + { curlanguage "russian" = + { "Дек." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google Книги"} + { curlanguage "russian" = + { "Google Книги" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } + if$ +} + +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } + if$ +} + +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } + if$ +} +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } + if$ +} + +FUNCTION {format.month} +{ month empty$ + { "" } + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} + if$ +} +FUNCTION {format.date} +{ year.or.date.to.year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + format.month + } + if$ + } + { month empty$ + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } + if$ + } + if$ +} + INTEGERS { nameptr namesleft numnames } +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{~ff}" + format.name$ +} -FUNCTION {format.names} +FUNCTION {fmt.names.three} { '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 {fmt.names.all} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := { namesleft #0 > } { s nameptr - "{vv~}{ll}{~jj}{~ff}" format.name$ 't := + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{~ff}" + format.name$ 't := nameptr #1 > - { nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > + { namesleft #1 > { ", " * t * } - { t "others" = - t "~others" = - or + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or { " " * bbl.etal * } - { ", " * t * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -917,54 +1424,76 @@ FUNCTION {format.names} while$ } -FUNCTION {format.lab.names} -{ 's := - language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} +{ + author empty$ + { author } %%%'skip$ + {author num.names$ #4 < + { + author fmt.names.three + } + { "" } %%%'skip$ + if$} 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$ - } +} + +FUNCTION {format.bookauthors.rest} +{ bookauthor empty$ + { "" } + { bookauthor fmt.names.three emphasize } if$ } -FUNCTION {format.names.rev} -{ - 's := +FUNCTION {format.editors.rest} +{ editor empty$ + { "" } + { bbl.edby "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.chief.rest} +{ editor empty$ + { "" } + { bbl.chief "\ " * editor fmt.names.three * } + if$ +} + +FUNCTION {format.executor.rest} +{ author empty$ + { "" } + { bbl.executor ": " * author fmt.names.three * } + if$ +} + +FUNCTION {format.compiler.rest} +{ compiler empty$ + { "" } + { bbl.compiler "\ " * compiler fmt.names.three * } + if$ +} + +FUNCTION {fmt.names.brief} +{ 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } - { s nameptr - "{ff}{~vv}{~ll}{, jj}" format.name$ 't := + { s nameptr "{vv~}{ll}" 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 * } + { + numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or + { " " bbl.etal * * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -977,17 +1506,29 @@ FUNCTION {format.names.rev} while$ } -FUNCTION {format.key} -{ empty$ - { key field.or.null } - { "" } +FUNCTION {format.names.key} +{ 's := + set.language %%% уже вызвана в output.bibitem, но вроде бы нужна и здесь + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " " bbl.etal * * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " bbl.etal * * } + { " " bbl.and " " * * * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } if$ } -FUNCTION {format.authors} -{ author empty$ +FUNCTION {format.key} +{ empty$ + { key field.or.null } { "" } - { author format.names emphasize} if$ } @@ -998,10 +1539,9 @@ FUNCTION {author.key.label} 'key if$ } - { author format.lab.names } + { author format.names.key } if$ } - FUNCTION {author.editor.key.label} { author empty$ { editor empty$ @@ -1011,10 +1551,10 @@ FUNCTION {author.editor.key.label} { "{}" key * } %% Bug in bibtex8 ?? if$ } - { editor format.lab.names } + { editor format.names.key } if$ } - { author format.lab.names } + { author format.names.key } if$ } @@ -1029,7 +1569,7 @@ FUNCTION {author.key.organization.label} 'key if$ } - { author format.lab.names } + { author format.names.key } if$ } @@ -1044,14 +1584,12 @@ FUNCTION {editor.key.organization.label} 'key if$ } - { editor format.lab.names } + { editor format.names.key } if$ } -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or +FUNCTION {calc.short.list} +{ type$ "book" = type$ "inbook" = or 'author.editor.key.label { type$ "proceedings" = 'editor.key.organization.label @@ -1067,11 +1605,11 @@ FUNCTION {calc.short.authors} } FUNCTION {calc.label} -{ calc.short.authors +{ calc.short.list short.list "(" * - year duplicate$ empty$ + year.or.date.to.year duplicate$ empty$ short.list key field.or.null = or { pop$ "" } 'skip$ @@ -1080,138 +1618,36 @@ FUNCTION {calc.label} '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.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "Янв." } - { month "Feb." = - { "Фев." } - { month "Mar." = - { "Март" } - { month "Apr." = - { "Апр." } - { month "May" = - { "Май" } - { month "Jun." = - { "Июнь" } - { month "Jul." = - { "Июль" } - { month "Aug." = - { "Авг." } - { month "Sep." = - { "Сент." } - { month "Oct." = - { "Окт." } - { month "Nov." = - { "Нояб." } - { month "Dec." = - { "Дек." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month +FUNCTION {calc.long.list} %% called 1 time only +{ type$ "book" = type$ "inbook" = or + %'format.author.editor.brief + { author empty$ + { editor empty$ + { "" } + { editor fmt.names.brief } + if$ } + { author fmt.names.brief } if$ } - { month empty$ - 'year - { year ". \BibDash " format.month * * } + { type$ "proceedings" = + %'format.editor.brief + { editor empty$ + { "" } + { editor fmt.names.brief } + if$ + } + %'format.author.brief + { author empty$ + { "" } + { author fmt.names.brief } + if$ + } if$ } if$ - extra.label * % new in v.1.2 -} - -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } - if$ -} - -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ } -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} FUNCTION {output.address.publisher} { address empty$ location empty$ and @@ -1225,173 +1661,26 @@ FUNCTION {output.address.publisher} 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$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid 'curlanguage := } - if$ +{ + set.language + newline$ + "\bibitem" write$ + label extra.label * ")" * + calc.long.list * + bracketise write$ + cite$ bracify write$ + newline$ "\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$ -} +%% "; mfn:" calc.long.list * * FUNCTION {format.bvolume} { volume empty$ @@ -1399,7 +1688,7 @@ FUNCTION {format.bvolume} { bbl.vvol volume tie.connect series empty$ 'skip$ - { bbl.of space.word * series emphasize * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1428,30 +1717,6 @@ FUNCTION {format.number.series} 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 @@ -1468,38 +1733,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1520,15 +1753,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1591,6 +1815,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1611,81 +1848,61 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ {author num.names$ #4 < - {format.authors output - new.sentence} + { + author fmt.names.three 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} +FUNCTION {output.author.rest} { author empty$ 'skip$ {author num.names$ #3 > - {format.authors.after output - new.semicolon } + { author fmt.names.all output + new.semicolon + } 'skip$ if$} if$ } -FUNCTION {bookauthor.after} +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.three output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1736,7 +1953,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1747,7 +1964,7 @@ FUNCTION {add.media} 'skip$ { media empty$ 'skip$ - { " " * bbl.media enclose.square.brackets * } + { " " * bbl.media bracketise * } if$ } if$ @@ -1828,15 +2045,16 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before + output.author.head + %new.sentence author format.key output - format.title add.media "title" output.check + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1853,19 +2071,22 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1883,16 +2104,19 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1904,23 +2128,26 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1938,19 +2165,22 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head + new.sentence author format.key output new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1968,14 +2198,21 @@ FUNCTION {proceedings} { output.bibitem editor format.key output - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1986,23 +2223,27 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head + new.sentence author format.key output new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -2022,11 +2263,13 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ author format.key output new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -2043,7 +2286,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -2056,6 +2299,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -2063,9 +2308,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull author format.key output new.semicolon holder output.nonnull @@ -2081,7 +2326,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -2094,14 +2339,16 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k author format.key output title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -2112,14 +2359,17 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before + output.author.head + new.sentence author format.key output - format.btitle "title" output.check + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -2130,13 +2380,15 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output author format.key output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka howpublished output - editor.organization.after + editor.organization.rest new.sentence new.block output.address.publisher @@ -2155,26 +2407,25 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2184,14 +2435,15 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check title format.key output + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -2200,14 +2452,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2220,10 +2472,10 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -2232,13 +2484,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2248,13 +2501,12 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -2263,13 +2515,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2279,13 +2532,12 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check author format.key output new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2294,13 +2546,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2310,7 +2563,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2318,7 +2570,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check title format.key output new.colon format.techreport.type output @@ -2328,14 +2580,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2360,96 +2612,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2492,48 +2744,46 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"УФН"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - FUNCTION {sortify} { purify$ } - %% ===================================== %% This version from old Gost package %%<*!natbib> @@ -2615,40 +2865,7 @@ FUNCTION {author.title.sort} {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$ } @@ -2668,7 +2885,6 @@ FUNCTION {editor.organization.sort} { editor sort.format.names } if$ } - FUNCTION {presort}%#2 { calc.label label sortify @@ -2742,7 +2958,7 @@ FUNCTION {reverse.pass} { "{\natexlab{" swap$ * "}}" * } if$ 'extra.label := - label extra.label * 'label := + %%%label extra.label * 'label := } REVERSE {reverse.pass} @@ -2765,15 +2981,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2797,5 +3005,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% 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 index 33ccfa26718..bc48ca87210 100644 --- a/Master/texmf-dist/bibtex/bst/gost/ugost2008s.bst +++ b/Master/texmf-dist/bibtex/bst/gost/ugost2008s.bst @@ -4,30 +4,22 @@ %% %% The original source files were: %% -%% gost.dtx (with options: `bst,utf8,modern,eprint,sort') +%% gost.dtx (with options: `bst,utf8,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. +%% IMPORTANT NOTICE: %% -%% This file has the LPPL maintenance status "maintained". -%% Maintained by Igor A. Kotelnikov. +%% For the copyright see the source file. %% -%% Current version: 1.2j, 2017.01.12 +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ugost2008s.bst. %% -%% Please, send bug report via e-mail: -%% kia999 at mail dot ru <Igor Kotelnikov> -%% or -%% polyama at yahoo dot com <Maksym Polyakov> +%% For distribution of the original source see the terms +%% for copying and modification in the file gost.dtx. %% - - - -%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) %% This bibstyle attempts to format bibliography according to %% GOST 7.0.5-2008 for bibliographic reference. @@ -67,15 +59,15 @@ ENTRY language langid % new in v1.2c booklanguage - %date % not implemented yet... + date % new in v1.2i pagetotal url urldate isbn doi + eprint eprinttype % = archivePrefix eprintclass % = primaryClass - eprint % new in v1.2f: % appear in biblatex: %addendum % not implemented yet... @@ -100,8 +92,23 @@ ENTRY {} { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.colon after.semicolon } +INTEGERS { + output.state + before.all + mid.sentence + after.sentence + after.block + after.dblslash + after.slash + after.colon + after.semicolon +} + +STRINGS { curlanguage } + +STRINGS { s t } + +STRINGS { y m d } % new in v.1.2j FUNCTION {init.state.consts} { #0 'before.all := @@ -114,11 +121,18 @@ FUNCTION {init.state.consts} #7 'after.semicolon := } -STRINGS { s t } - -STRINGS { curlanguage } +FUNCTION {set.language} +{ langid empty$ + { language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + } + { langid 'curlanguage := } + if$ +} -FUNCTION {change.language} +FUNCTION {reset.language} { booklanguage empty$ { "" } { booklanguage 'curlanguage := @@ -143,7 +157,7 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.dblslash = - { "~//" * change.language * " " * write$ } + { "~//" * reset.language * " " * write$ } { output.state after.slash = { "~/ " * write$ } { output.state after.colon = @@ -177,7 +191,9 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + "empty " t * " in " * cite$ * warning$ + } 'output.nonnull if$ } @@ -256,23 +272,6 @@ 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$ - #-1 #1 substring$ "." = -} - FUNCTION {new.block.checka} { empty$ 'skip$ @@ -319,9 +318,21 @@ FUNCTION {field.or.null} if$ } +%% +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {spaces.around} +{ " " swap$ * " " * } + FUNCTION {emphasize} { duplicate$ empty$ - { pop$ "" } + %{ pop$ "" } + 'skip$ % v.1.2k { "\BibEmph{" swap$ * "}" * } if$ } @@ -333,7 +344,7 @@ FUNCTION {bracify} if$ } -FUNCTION {enclose.square.brackets} +FUNCTION {bracketise} { duplicate$ empty$ { pop$ "" } @@ -341,7 +352,7 @@ FUNCTION {enclose.square.brackets} if$ } -FUNCTION {enclose.round.brackets} +FUNCTION {paranthesify} { duplicate$ empty$ { pop$ "" } @@ -349,25 +360,92 @@ FUNCTION {enclose.round.brackets} if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {tie.connect} + {"~" swap$ * * + } -FUNCTION {bbl.edby} % { "\bbledby{}" } +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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$ +} + +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 {bbl.edby} { curlanguage "english" = - {"Ed.\ by"} + {"ed.\ by"} { curlanguage "ukrainian" = - {"Під ред."} + {"під ред."} { curlanguage "russian" = - {"Под ред."} + {"под ред."} { curlanguage "german" = { "ed." } - {"language is not defined: " language "edby" * * warning$ "Ed.\ by"} + {"language is not defined: " curlanguage " in bbl.edby" * * warning$ "Ed.\ by"} if$} if$} if$} if$} -FUNCTION {bbl.cmplr} +FUNCTION {bbl.compiler} { curlanguage "english" = { "Compiler"} { curlanguage "german" = @@ -376,15 +454,15 @@ FUNCTION {bbl.cmplr} {"{Укл.}"} { curlanguage "russian" = {"{Сост.}"} - {"language is not defined: " language "cmplr" * * warning$ "Compiler"} + {"language is not defined: " curlanguage " in bbl.compiler" * * warning$ "Compiler"} if$} if$} if$} if$} -FUNCTION {bbl.edition} % { "\bbledition{}" } +FUNCTION {bbl.edition} { curlanguage "english" = - {"edition"} + {"ed."} { curlanguage "ukrainian" = {"{вид.}"} { curlanguage "russian" = @@ -395,7 +473,7 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } {"edizione"} { curlanguage "french" = {"\'{e}dition"} - {"language is not defined: " language "edition" * * warning$ "edition"} + {"language is not defined: " curlanguage " in bbl.edition" * * warning$ "ed."} if$} if$} if$} @@ -403,31 +481,31 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } if$} if$} -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +FUNCTION {bbl.vvolume} { 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"} + {"language is not defined: " curlanguage " in bbl.vvolume" * * warning$ "Volume"} if$} if$} if$} -FUNCTION {bbl.vvol} % { "\bblVol{}" } +FUNCTION {bbl.vvol} { 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."} + {"language is not defined: " curlanguage " in bbl.vvol" * * warning$ "Vol."} if$} if$} if$} -FUNCTION {bbl.iissue} % { "\bblIssue{}" } +FUNCTION {bbl.iissue} { curlanguage "english" = {"Issue"} { curlanguage "ukrainian" = @@ -436,13 +514,13 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"Выпуск"} { curlanguage "german" = {"{Heft}"} %%%% { "Ausgabe" } - {"language is not defined: " language "iissue" * * warning$ "Issue"} + {"language is not defined: " curlanguage " in bbl.iissue" * * warning$ "Issue"} if$} if$} if$} if$} -FUNCTION {bbl.iiss} % { "\bblIss{}" } +FUNCTION {bbl.iiss} { curlanguage "english" = {"Iss."} { curlanguage "ukrainian" = @@ -451,13 +529,13 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"Вып."} { curlanguage "german" = {"{H.}"} - {"language is not defined: " language "iiss" * * warning$ "Iss."} + {"language is not defined: " curlanguage " in bbl.iiss" * * warning$ "Iss."} if$} if$} if$} if$} -FUNCTION {bbl.of} % { "\bblof{}" } +FUNCTION {bbl.of} { curlanguage "english" = {"of"} { curlanguage "german" = @@ -466,13 +544,13 @@ FUNCTION {bbl.of} % { "\bblof{}" } { "{із}" } { curlanguage "russian" = { "{из}" } - {"language is not defined: " language "of" * * warning$ "of"} + {"language is not defined: " curlanguage " in bbl.of" * * warning$ "of"} if$} if$} if$} if$} -FUNCTION {bbl.etal} % { "\bblof{}" } +FUNCTION {bbl.etal} { curlanguage "english" = {"et~al."} { curlanguage "german" = @@ -481,126 +559,146 @@ FUNCTION {bbl.etal} % { "\bblof{}" } {"{та~ін.}"} { curlanguage "russian" = {"и~др."} - {"language is not defined: " language "et~al" * * warning$ "et~al."} + {"language is not defined: " curlanguage " in bbl.etal" * * warning$ "et~al."} if$} if$} if$} if$} +FUNCTION {bbl.and} +{ curlanguage "english" = + {"and"} + { curlanguage "german" = + { "und" } + { curlanguage "ukrainian" = + {"і"} + { curlanguage "russian" = + {"и"} + { curlanguage "french" = + {"et"} + {"language is not defined: " curlanguage " in bbl.and" * * warning$ "and"} + if$} + if$} + if$} + if$} +if$} -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +FUNCTION {bbl.nnumber} { curlanguage "english" = {"Number"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{Номер}" } { curlanguage "german" = {"{Heft}"} %%% { "Anzahl" } - {"language is not defined: " language "nnumber" * * warning$ "Number"} + {"language is not defined: " curlanguage " in bbl.nnumber" * * warning$ "Number"} if$} if$} if$} -FUNCTION {bbl.number} % { "\bblnumber{}" } +FUNCTION {bbl.number} { curlanguage "english" = {"number"} { curlanguage "ukrainian" = curlanguage "russian" = or {"{номер}"} { curlanguage "german" = {"{Heft}"} %%% { "anzahl" }??? - {"language is not defined: " language "number" * * warning$ "number"} + {"language is not defined: " curlanguage " in bbl.number" * * warning$ "number"} if$} if$} if$} -FUNCTION {bbl.nr} % { "\bblno{}" } +FUNCTION {bbl.nr} { curlanguage "english" = {"no."} { curlanguage "italian" = - { "no" } + { "no." } { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = - {"{H.}"} %%% { "an." } - {"language is not defined: " language "nr" * * warning$ "no."} + {"{nu.}"} %%% { "an." } + { curlanguage "french" = + { "no." } + {"language is not defined: " curlanguage " in bbl.nr" * * warning$ "no."} + if$} if$} if$} if$} if$} -FUNCTION {bbl.nnr} % { "\bblno{}" } +FUNCTION {bbl.nnr} { curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or { "{№}" } { curlanguage "german" = {"{H.}"} %%% { "an." } - {"language is not defined: " language "nnr" * * warning$ "No."} + {"language is not defined: " curlanguage " in bbl.nnr" * * warning$ "No."} if$} if$} if$} -FUNCTION {bbl.in} % { "\bblin{}" } +FUNCTION {bbl.in} { curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{в}" } - {"language is not defined: " language "in" * * warning$ "in"} + {"language is not defined: " curlanguage " in bbl.in" * * warning$ "in"} if$} if$} -FUNCTION {bbl.iin} % { "\bblIn{}" } +FUNCTION {bbl.iin} { curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or { "{В}" } - {"language is not defined: " language "iin" * * warning$ "In"} + {"language is not defined: " curlanguage " in bbl.iin" * * warning$ "In"} if$} if$} -FUNCTION {bbl.pages} % { "\bblpp." } +FUNCTION {bbl.pages} { 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."} + {"language is not defined: " curlanguage " in bbl.pages" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.page} % { "\bblp." +FUNCTION {bbl.page} { 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."} + {"language is not defined: " curlanguage " in bbl.page" * * warning$ "p."} if$} if$} if$} -FUNCTION {bbl.ppages}% { "\bblPp." } +FUNCTION {bbl.ppages} { 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."} + {"language is not defined: " curlanguage " in bbl.ppages" * * warning$ "P."} if$} if$} if$} -FUNCTION {bbl.ppage} % { "\bblP." } +FUNCTION {bbl.ppage} { 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."} + {"language is not defined: " curlanguage " in bbl.ppage" * * warning$ "P."} if$} if$} if$} @@ -614,7 +712,10 @@ FUNCTION {bbl.url} { "{Режим доступа}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "Mode d'acc\`{e}s" } + { "language is not defined: " curlanguage " in bbl.url" * * warning$ "online; accessed" } + if$} if$} if$} if$} @@ -628,20 +729,23 @@ FUNCTION {bbl.urldate} { "{дата обращения}" } { curlanguage "german" = { "{online; abgerufen}" } - { "language is not defined: " language "urldate" * * warning$ "online; accessed" } + { curlanguage "french" = + { "{en ligne; acc\'{e}d\'{e}}" } + { "language is not defined: " curlanguage " in bbl.urldate" * * warning$ "online; accessed" } + if$} if$} if$} if$} if$} -FUNCTION {bbl.techreport} % rename to bbl.techreport +FUNCTION {bbl.techreport} { curlanguage "english" = { "Rep." } { curlanguage "german" = { "Bericht" } { curlanguage "russian" = { "{Отчет}" } - { "language is not defined: " language "techrep" * * warning$ "Rep." } + { "language is not defined: " curlanguage " in bbl.techrep" * * warning$ "Rep." } if$} if$} if$} @@ -650,10 +754,10 @@ FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = - { "Diss.~Mag." } + { "diss.~mag." } { curlanguage "russian" = - { "{Квалификационная работа магистра}" } - { "language is not defined: " language "mthesis" * * warning$ "Master's thesis" } + { "{квалификационная работа магистра}" } + { "language is not defined: " curlanguage " in bbl.mthesis" * * warning$ "Master's thesis" } if$} if$} if$} @@ -662,12 +766,12 @@ FUNCTION {bbl.phdthesis} { curlanguage "english" = { "Ph.\,D. thesis" } { curlanguage "german" = - { "Diss.~Ph.\,D." } + { "diss.~Ph.\,D." } { curlanguage "russian" = - { "{дис.\ \ldots\ канд. наук}" } + { "{дис.\ \ldots\ канд.\ наук}" } { curlanguage "french" = - { "Th\`{e}se de doctorat" } - { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } + { "th\`{e}se de doctorat" } + { "language is not defined: " curlanguage " in bbl.phdthesis" * * warning$ "Ph.\,D. thesis" } if$} if$} if$} @@ -675,35 +779,22 @@ if$} FUNCTION {bbl.docthesis} { curlanguage "english" = - { "Dr.\,Sci. dissertation" } + { "dr.\,sci. dissertation" } { curlanguage "german" = - { "Diss.~Dr." } + { "diss.~dr." } { curlanguage "russian" = { "{дис.\ \ldots\ д-ра наук}" } - { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } + { "language is not defined: " curlanguage " in bbl.docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} -FUNCTION {bbl.thesis.type} -{ type "mathesis" = - { bbl.mathesis } - { type "phdthesis" = - { bbl.phdthesis } - { type "docthesis" = - { bbl.docthesis } - %%{ "!!!" type * "t" change.case$ } - { type } - if$} - if$} -if$} - FUNCTION {bbl.nnoaddress} { curlanguage "english" = { "S.\ l." } { curlanguage "russian" = { "{Б.\ м.}" } - { "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." } + { "language is not defined: " curlanguage " in bbl.nnoaddress" * * warning$ "S.\ l." } if$} if$} @@ -712,7 +803,7 @@ FUNCTION {bbl.nopublisher} { "s.\ n." } { curlanguage "russian" = { "{б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "s.\ n." } if$} if$} @@ -721,7 +812,7 @@ FUNCTION {bbl.nnopublisher} { "S.\ n." } { curlanguage "russian" = { "{Б.\ и.}" } - { "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." } + { "language is not defined: " curlanguage " in bbl.nnopublisher" * * warning$ "S.\ n." } if$} if$} @@ -730,7 +821,7 @@ FUNCTION {bbl.media.text} { "Text" } { curlanguage "russian" = curlanguage "ukrainian" = or { "{Текст}" } - { "language is not defined: " language "media" * * warning$ "Text" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Text" } if$} if$} @@ -741,7 +832,7 @@ FUNCTION {bbl.media.eresource} { "{Электронный ресурс}" } { curlanguage "ukrainian" = { "{Електронний ресурс}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -753,7 +844,7 @@ FUNCTION {bbl.media.online} { "{Электронный ресурс онлайн}" } { curlanguage "ukrainian" = { "{Електронний ресурс онлайн}" } - { "language is not defined: " language "media" * * warning$ "Electronic resource" } + { "language is not defined: " curlanguage " in bbl.media" * * warning$ "Electronic resource" } if$} if$} if$} @@ -765,19 +856,19 @@ FUNCTION {bbl.chief} { "{рук.}" } { curlanguage "ukrainian" = { "{рук.}" } - { "language is not defined: " language "chief" * * warning$ "chief" } + { "language is not defined: " curlanguage " in bbl.chief" * * warning$ "chief" } if$} if$} if$} FUNCTION {bbl.executor} { curlanguage "english" = - { "Executor" } + { "executor" } { curlanguage "russian" = { "{исполн.}" } { curlanguage "ukrainian" = { "{виконавець}" } - { "language is not defined: " language "executor" * * warning$ "executor" } + { "language is not defined: " curlanguage " in bbl.executor" * * warning$ "executor" } if$} if$} if$} @@ -799,7 +890,7 @@ FUNCTION {bbl.req} { "ang." } { curlanguage "russian" = { "{заявл.}" } - { "language is not defined: " language "req" * * warning$ "req" } + { "language is not defined: " curlanguage " in bbl.req" * * warning$ "req" } if$ } if$ @@ -815,7 +906,7 @@ FUNCTION {bbl.publ} { "ausg." } { curlanguage "russian" = { "{опубл.}" } - { "language is not defined: " language "publication" * * warning$ "publication" } + { "language is not defined: " curlanguage " in bbl.publication" * * warning$ "publication" } if$ } if$ @@ -831,7 +922,7 @@ FUNCTION {bbl.priority} { "Prioritat" } { curlanguage "russian" = { "{приоритет}" } - { "language is not defined: " language "priority" * * warning$ "priority" } + { "language is not defined: " curlanguage " in bbl.priority" * * warning$ "priority" } if$ } if$ @@ -839,68 +930,462 @@ FUNCTION {bbl.priority} if$ } +FUNCTION {bbl.jan} +{ curlanguage "english" = + {"Jan."} + { curlanguage "ukrainian" = + {"Січ."} % Січень + { curlanguage "russian" = + { "Янв." } + { curlanguage "german" = + { "Jan." } % Januar + { "language is not defined: bbl.jan for " curlanguage * warning$ "Jan." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.feb} +{ curlanguage "english" = + {"Feb."} + { curlanguage "ukrainian" = + {"Лют."} % Лютий + { curlanguage "russian" = + { "Фев." } + { curlanguage "german" = + {"Feb."} % Februar + {"language is not defined: bbl.feb for " curlanguage * warning$ "Feb."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.mar} +{ curlanguage "english" = + {"Mar."} + { curlanguage "ukrainian" = + {"Бер."} % Березень + { curlanguage "russian" = + { "Март" } + { curlanguage "german" = + {"März"} % März + {"language is not defined: bbl.mar for " curlanguage * warning$ "Mar."} + if$} + if$} + if$} +if$} + +FUNCTION {bbl.apr} +{ curlanguage "english" = + {"Apr."} + { curlanguage "ukrainian" = + {"Квіт."} % квітень + { curlanguage "russian" = + { "Апр." } + { curlanguage "german" = + {"Apr."} % April + { "language is not defined: bbl.apr for " curlanguage * warning$ "Apr." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.may} +{ curlanguage "english" = + {"May"} + { curlanguage "ukrainian" = + {"Трав."} % травень + { curlanguage "russian" = + { "Май" } + { curlanguage "german" = + {"Mai"} + { "language is not defined: bbl.may for " curlanguage * warning$ "May" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jun} +{ curlanguage "english" = + {"June"} + { curlanguage "ukrainian" = + {"Чер."} % червень + { curlanguage "russian" = + { "Июнь" } + { curlanguage "german" = + {"Juni"} + { "language is not defined: bbl.jun for " curlanguage * warning$ "June" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jul} +{ curlanguage "english" = + {"July"} + { curlanguage "ukrainian" = + {"Липень"} %Липень + { curlanguage "russian" = + { "Июль" } + { curlanguage "german" = + {"Juli"} + { "language is not defined: bbl.jul for " curlanguage * warning$ "July" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.aug} +{ curlanguage "english" = + {"Aug."} + { curlanguage "ukrainian" = + {"Серпень"} % Серпень + { curlanguage "russian" = + { "Авг." } + { curlanguage "german" = + {"Aug."} % August + { "language is not defined: bbl.aug for " curlanguage * warning$ "Aug." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.sep} +{ curlanguage "english" = + {"Sep."} + { curlanguage "ukrainian" = + {"Вер."} % вересень + { curlanguage "russian" = + { "Сент." } + { curlanguage "german" = + {"Sep."} % September + { "language is not defined: bbl.sep for " curlanguage * warning$ "Sep." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.oct} +{ curlanguage "english" = + {"Oct."} + { curlanguage "ukrainian" = + {"Жов."} % жовтень + { curlanguage "russian" = + { "Окт." } + { curlanguage "german" = + {"Okt."} % Oktober + { "language is not defined: bbl.oct for " curlanguage * warning$ "Oct." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.nov} +{ curlanguage "english" = + {"Nov."} + { curlanguage "ukrainian" = + {"Лис."} % листопад + { curlanguage "russian" = + { "Нояб." } + { curlanguage "german" = + {"Nov."} % November + { "language is not defined: bbl.nov for " curlanguage * warning$ "Nov." } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.dec} +{ curlanguage "english" = + {"Dec."} + { curlanguage "ukrainian" = + {"Груд."} % грудень + { curlanguage "russian" = + { "Дек." } + { curlanguage "german" = + {"Dez."} % Dezember + { "language is not defined: bbl.dec for " curlanguage * warning$ "Dec." } + if$} + if$} + if$} +if$} +FUNCTION {bbl.arxiv} +{ curlanguage "english" = + { "ArXiv" } + { curlanguage "ukrainian" = + {"ArXiv"} + { curlanguage "russian" = + { "ArXiv" } + { curlanguage "german" = + { "ArXiv" } + { "language is not defined: bbl.arxiv for " curlanguage * warning$ "ArXiv" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.jstor} +{ curlanguage "english" = + { "JSTOR" } + { curlanguage "ukrainian" = + {"JSTOR"} + { curlanguage "russian" = + { "JSTOR" } + { curlanguage "german" = + { "JSTOR" } + { "language is not defined: bbl.jstor for " curlanguage * warning$ "JSTOR" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.pubmed} +{ curlanguage "english" = + { "PubMed" } + { curlanguage "ukrainian" = + {"PubMed"} + { curlanguage "russian" = + { "PubMed" } + { curlanguage "german" = + { "PubMed" } + { "language is not defined: bbl.pubmed for " curlanguage * warning$ "PubMed" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.googlebooks} +{ curlanguage "english" = + { "Google Books" } + { curlanguage "ukrainian" = + {"Google Книги"} + { curlanguage "russian" = + { "Google Книги" } + { curlanguage "german" = + { "Google Books" } + { "language is not defined: bbl.googlebooks for " curlanguage * warning$ "Google Books" } + if$} + if$} + if$} +if$} + +FUNCTION {bbl.hdl} +{ curlanguage "english" = + { "Handle.Net" } + { curlanguage "ukrainian" = + {"Handle.Net"} + { curlanguage "russian" = + { "Handle.Net" } + { curlanguage "german" = + { "Handle.Net" } + { "language is not defined: bbl.hdl for " curlanguage * warning$ "Handle.Net" } + if$} + if$} + if$} +if$} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } + if$ +} + +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } + if$ +} + +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } + if$ +} +FUNCTION {date.to.year} +{ + date empty$ + { date } + { + date text.length$ #3 > + { + date #1 #4 substring$ 'y := + y + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.month} +{ + date empty$ + { date } + { + date text.length$ #6 > + { + date #6 #2 substring$ 'm := + m + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {date.to.day} +{ + date empty$ + { date } + { + date text.length$ #10 = + { + date #9 #2 substring$ 'd := + d + } + { + "wrong format of date in " cite$ * ": date=" * date * warning$ + date + } + if$ + } + if$ +} + +FUNCTION {year.or.date.to.year} +{ + year empty$ + { + date.to.year + } + { year } + if$ +} + +FUNCTION {format.month} +{ month empty$ + { "" } + { month "Jan." = + { bbl.jan } + { month "Feb." = + { bbl.feb } + { month "Mar." = + { bbl.mar } + { month "Apr." = + { bbl.apr } + { month "May" = + { bbl.may } + { month "Jun." = + { bbl.jun } + { month "Jul." = + { bbl.jul } + { month "Aug." = + { bbl.aug } + { month "Sep." = + { bbl.sep } + { month "Oct." = + { "Окт." } + { month "Nov." = + { bbl.nov } + { month "Dec." = + { bbl.dec } + { + "unknown month in " cite$ * warning$ + month + } + if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} + if$ +} +FUNCTION {format.date} +{ year.or.date.to.year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + format.month + } + if$ + } + { month empty$ + 'year.or.date.to.year + { year.or.date.to.year ". \BibDash " format.month * * } + if$ + } + if$ +} + INTEGERS { nameptr namesleft numnames } +FUNCTION {fmt.names.first} +{ #1 + "{vv~}{ll}{~jj}{~ff}" + format.name$ +} -FUNCTION {format.names} +FUNCTION {fmt.names.three} { '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$ - } + { 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$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } while$ } - -FUNCTION {format.names.rev} -{ - 's := +FUNCTION {fmt.names.all} +{ 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr - "{ff}{~vv}{~ll}{, jj}" format.name$ 't := + %"{vv~}{ll}" format.name$ 't := + "{vv~}{ll}{~jj}{~ff}" + format.name$ 't := nameptr #1 > - { nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > + { namesleft #1 > { ", " * t * } - { t "others" = - t "~others" = - or + { numnames #2 > curlanguage "english" = and + { "," * } + 'skip$ + if$ + t "others" = t "~others" = or { " " * bbl.etal * } - { ", " * t * } + { " " bbl.and " " * * * t * } if$ } if$ @@ -913,145 +1398,57 @@ FUNCTION {format.names.rev} 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} +%%<long> { author fmt.names.all emphasize} +%%<!long&strict> { author fmt.names.first emphasize} +%%<!long&!strict> { author fmt.names.three emphasize} +FUNCTION {format.author} +{ + author empty$ + { author } %%%'skip$ + {author num.names$ #4 < + { + author fmt.names.three + } + { "" } %%%'skip$ + if$} if$ } -FUNCTION {format.bookauthors.after} +FUNCTION {format.bookauthors.rest} { bookauthor empty$ { "" } - { bookauthor format.names.rev}% always cuts to 4 persons + { bookauthor fmt.names.three emphasize } if$ } -FUNCTION {format.editors.after} +FUNCTION {format.editors.rest} { editor empty$ { "" } - { bbl.edby "\ " * editor format.names.rev * } + { bbl.edby "\ " * editor fmt.names.three * } if$ } -FUNCTION {format.chief.after} +FUNCTION {format.chief.rest} { editor empty$ { "" } - { bbl.chief "\ " * editor format.names.rev * } + { bbl.chief "\ " * editor fmt.names.three * } if$ } -FUNCTION {format.executor.after} +FUNCTION {format.executor.rest} { author empty$ { "" } - { bbl.executor ": " * author format.names.rev * } + { bbl.executor ": " * author fmt.names.three * } if$ } -FUNCTION {format.compiler.after} +FUNCTION {format.compiler.rest} { compiler empty$ { "" } - { bbl.cmplr "\ " * compiler format.names.rev * } - if$ -} - -FUNCTION {format.title} -{ title empty$ - { "" } - { title } - if$ -} - -FUNCTION {format.month} -{ month empty$ - { "" } - { curlanguage "russian" = - { month "Jan." = - { "Янв." } - { month "Feb." = - { "Фев." } - { month "Mar." = - { "Март" } - { month "Apr." = - { "Апр." } - { month "May" = - { "Май" } - { month "Jun." = - { "Июнь" } - { month "Jul." = - { "Июль" } - { month "Aug." = - { "Авг." } - { month "Sep." = - { "Сент." } - { month "Oct." = - { "Окт." } - { month "Nov." = - { "Нояб." } - { month "Dec." = - { "Дек." } - { month } - if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$} - { month } - if$} - if$ -} -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - format.month - } - if$ - } - { month empty$ - 'year - { year ". \BibDash " format.month * * } - if$ - } + { bbl.compiler "\ " * compiler fmt.names.three * } if$ } -FUNCTION {address.or.location} -{ - address empty$ - { location } - { address } - if$ -} - -FUNCTION {specialitycode.or.number} -{ - specialitycode empty$ - { number } - { specialitycode } - if$ -} - -FUNCTION {institution.or.school} -{ - institution empty$ - { school} - { institution } - if$ -} FUNCTION {output.address.publisher} { address empty$ location empty$ and @@ -1065,88 +1462,26 @@ FUNCTION {output.address.publisher} if$ publisher output } - - FUNCTION {output.bibitem} -{ newline$ +{ + set.language + newline$ "\bibitem" write$ cite$ bracify write$ newline$ - langid empty$ - { language empty$ - { "english" 'curlanguage := } - { language 'curlanguage := } - if$ - } - { langid '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 * } + { bbl.of spaces.around * series emphasize * } if$ "volume and number" number either.or.check } @@ -1175,30 +1510,6 @@ FUNCTION {format.number.series} 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 @@ -1215,38 +1526,6 @@ FUNCTION {format.edition} 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} { eid empty$ { @@ -1267,15 +1546,6 @@ FUNCTION {format.pages} if$ } -%%FUNCTION {format.pages.page} -%%{ pages empty$ -%% { pagetotal empty$ -%% { "" } -%% { pagetotal bbl.pages tie.connect } -%% if$} -%% { format.pages} -%% if$ -%%} FUNCTION {format.pages.page} { eid empty$ { pages empty$ @@ -1338,6 +1608,19 @@ FUNCTION {empty.misc.check} if$ } +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } + { type } + if$} + if$} +if$} + %%<!utf8> bbl.thesis.type "t" change.case$ %%<utf8> bbl.thesis.type FUNCTION {format.thesis.type} @@ -1358,81 +1641,61 @@ FUNCTION {format.techreport.type} if$ } -FUNCTION {author.before} +FUNCTION {output.author.head} { author empty$ 'skip$ {author num.names$ #4 < - {format.authors output - new.sentence} + { + author fmt.names.three 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} +FUNCTION {output.author.rest} { author empty$ 'skip$ {author num.names$ #3 > - {format.authors.after output - new.semicolon } + { author fmt.names.all output + new.semicolon + } 'skip$ if$} if$ } -FUNCTION {bookauthor.after} +FUNCTION {bookauthor.rest} { bookauthor empty$ 'skip$ - {format.bookauthors.after output - new.semicolon } + { + bookauthor fmt.names.three output + new.semicolon + } if$ } -FUNCTION {editor.organization.after} +FUNCTION {editor.organization.rest} { compiler empty$ {} - { format.compiler.after output + { format.compiler.rest output new.semicolon } if$ editor empty$ {} - { format.editors.after output + { format.editors.rest output.nonnull new.semicolon } if$ organization empty$ {} - {organization output + {organization output.nonnull new.semicolon } if$ @@ -1483,7 +1746,7 @@ FUNCTION {add.doi} 'skip$ { doi empty$ 'skip$ - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$ } if$ @@ -1494,7 +1757,7 @@ FUNCTION {add.media} 'skip$ { media empty$ 'skip$ - { " " * bbl.media enclose.square.brackets * } + { " " * bbl.media bracketise * } if$ } if$ @@ -1575,14 +1838,15 @@ FUNCTION {format.prioritydate} FUNCTION {article} { output.bibitem - author.before - format.title add.media "title" output.check + output.author.head + %new.sentence + title add.media "title" output.check new.slash - author.after + output.author.rest new.dblslash - journal emphasize add.doi "journal" output.check % new in v.2 + journal emphasize add.doi "journal" output.check % new in v1.2 new.block - format.date "year" output.check + format.date "year/date" output.check new.block format.volume output format.number output @@ -1599,18 +1863,21 @@ FUNCTION {article} FUNCTION {book} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.sentence format.number.series output new.block format.edition output new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1628,15 +1895,18 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem - author.before - format.title add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block howpublished output address.or.location output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1648,22 +1918,25 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem - author.before - format.btitle add.doi add.media "title" output.check + output.author.head + new.sentence + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - bookauthor.after - editor.organization.after + bookauthor.rest + editor.organization.rest new.block format.edition output new.block format.number.series output new.sentence output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output new.block @@ -1681,18 +1954,21 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.bvolume output format.number.series output @@ -1709,14 +1985,21 @@ FUNCTION {incollection} FUNCTION {proceedings} { output.bibitem - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check new.block format.bvolume output format.number.series output - output.address.publisher - format.date "year" output.check + new.block + format.pages.page output + %%%output.address.publisher % 1.2k moved upper new.block note output new.sentence @@ -1727,22 +2010,26 @@ FUNCTION {proceedings} FUNCTION {inproceedings} { output.bibitem - author.before + output.author.head + new.sentence new.sentence - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after + output.author.rest new.dblslash booktitle "booktitle" output.check new.slash - editor.organization.after + editor.organization.rest + new.block + output.address.publisher % 1.2k moved from below + new.block % added in v.1.2k + format.date "year/date" output.check 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 @@ -1762,10 +2049,12 @@ FUNCTION {manual} } if$ } - { format.authors output.nonnull } + { format.author output.nonnull } if$ new.block - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k author empty$ { organization empty$ { @@ -1782,7 +2071,7 @@ FUNCTION {manual} } if$ format.edition output - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1795,6 +2084,8 @@ FUNCTION {patent} { output.bibitem title add.media output.nonnull + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon format.type.number output add.blank @@ -1802,9 +2093,9 @@ FUNCTION {patent} new.colon ipc output new.slash - format.authors.after "author" output.check + format.author "author" output.check add.blank - authorcountry enclose.round.brackets output.nonnull + authorcountry paranthesify output.nonnull new.semicolon holder output.nonnull new.semicolon @@ -1819,7 +2110,7 @@ FUNCTION {patent} new.semicolon format.prioritydate output prioritynumber output - prioritycountry enclose.round.brackets output + prioritycountry paranthesify output new.block note output new.sentence @@ -1832,13 +2123,15 @@ FUNCTION {patent} FUNCTION {misc} { output.bibitem - format.authors output + %format.author output % < v.1.2k + output.author.head % v.1.2k + %new.sentence % v.1.2k title howpublished new.sentence.checkb - format.title add.media output + title add.media output howpublished new.block.checka howpublished output new.block - format.date "year" output.check + format.date "year/date" output.check new.block note output new.sentence @@ -1849,13 +2142,16 @@ FUNCTION {misc} FUNCTION {unpublished} { output.bibitem - author.before - format.btitle "title" output.check + output.author.head + new.sentence + title "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.slash - author.after - editor.organization.after + output.author.rest + editor.organization.rest new.block - format.date "year" output.check + format.date "year/date" output.check new.block note "note" output.check new.sentence @@ -1866,12 +2162,14 @@ FUNCTION {unpublished} FUNCTION {online} { output.bibitem - format.authors output + format.author output title howpublished new.sentence.checkb - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k howpublished new.dblslash.checka howpublished output - editor.organization.after + editor.organization.rest new.sentence new.block output.address.publisher @@ -1890,25 +2188,24 @@ FUNCTION {webpage} {online} FUNCTION {electronic} {online} FUNCTION {thesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon - %%type "type" output.check bbl.phdthesis format.thesis.type output.nonnull new.colon - %%number output % code of the speciality specialitycode.or.number output % code of the speciality, new in v.1.2i new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours from the head zone + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1918,13 +2215,14 @@ FUNCTION {thesis} format.annote output fin.entry } - %% format.techrep.type.number output.nonnull %% format.url output FUNCTION {report} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check + new.colon % added in v.1.2k + titleaddon output % added in v.1.2k new.colon type "type" output.check new.colon @@ -1933,14 +2231,14 @@ FUNCTION {report} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -1953,9 +2251,9 @@ FUNCTION {report} FUNCTION {phdthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon @@ -1964,13 +2262,14 @@ FUNCTION {phdthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -1980,12 +2279,11 @@ FUNCTION {phdthesis} format.annote output fin.entry } - FUNCTION {mastersthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.mathesis format.thesis.type output.nonnull new.colon @@ -1994,13 +2292,14 @@ FUNCTION {mastersthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicates athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2010,12 +2309,11 @@ FUNCTION {mastersthesis} format.annote output fin.entry } - FUNCTION {docthesis} { output.bibitem - format.authors "author" output.check + format.author "author" output.check new.sentence - format.btitle add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon bbl.docthesis format.thesis.type output.nonnull new.colon @@ -2024,13 +2322,14 @@ FUNCTION {docthesis} new.colon titleaddon output % date of defence and approvement; new in v.1.2i new.slash - format.authors.after output + %%%format.author.rest output %% dupplicate athours + output.author.rest %% prints if num.names$ > 3 or > 1 new.semicolon %institution "institution" output.check institution.or.school "institution/school" output.check new.block output.address.publisher - format.date "year" output.check + format.date "year/date" output.check new.block format.pages.page output new.block @@ -2040,7 +2339,6 @@ FUNCTION {docthesis} format.annote output fin.entry } - FUNCTION {conference} { inproceedings } %% format.url output @@ -2048,7 +2346,7 @@ FUNCTION {conference} { inproceedings } FUNCTION {techreport} { output.bibitem - format.title add.doi add.media "title" output.check + title add.doi add.media "title" output.check new.colon format.techreport.type output new.colon @@ -2057,14 +2355,14 @@ FUNCTION {techreport} %institution "institution" output.check institution.or.school "institution/school" output.check new.semicolon - format.chief.after output % from editor field + format.chief.rest output % from editor field new.semicolon - format.executor.after output % from author field + format.executor.rest output % from author field new.block address.or.location output new.colon organization output - format.date "year" output.check + format.date "year/date" output.check new.block % v.2 format.pages.page output % v.2 new.sentence % или new.block ? @@ -2089,96 +2387,96 @@ MACRO {sep} {"Sep."} MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} +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 {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 {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 {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 {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 {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 {pop} {"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 {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 {pop} {"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 {sciam} {"Sci.\ Am."} +MACRO {sam} {"Stud.\ Appl.\ Math."} MACRO {st} {"Sky and Telesc."} MACRO {cjp} {"Czech. J. Phys."} MACRO {el} {"Europhys. Lett."} @@ -2221,48 +2519,46 @@ MACRO {sst} {"Semicond. Sci. Technol."} MACRO {suplatt} {"Superlatt. Microstr."} MACRO {sust} {"Supercond. Sci. Technol."} MACRO {znat} {"Z. Naturforsch."} -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 {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 {pspie} {"Proc.\ Soc.\ Photo-Opt.\ Instrum. Eng."} MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} +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 {nl} {"Nano Lett."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspekhi"} +MACRO {sjpp} {"Sov.\ J.\ Plasma Phys."} +MACRO {spd} {"Sov.\ Phys.--Doklady"} +MACRO {sptp} {"Sov.\ Phys.--Tech. Phys."} +MACRO {spu} {"Sov.\ Phys.--Uspekhi"} MACRO {ufn} {"УФН"} MACRO {pu} {"Phys.--Uspekhi"} -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 {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."} READ - FUNCTION {sortify} { purify$ } - %% ===================================== %% This version from old Gost package %%<*!natbib> @@ -2349,10 +2645,9 @@ FUNCTION {author.title.sort} {author sort.format.names } {title sort.format.title} if$ - } + } if$ } - FUNCTION {presort}%#1 { author.title.sort @@ -2411,15 +2706,7 @@ FUNCTION {begin.bib} "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ "\providecommand{\BibAnnote}[1]{}" write$ newline$ "\providecommand*{\BibEmph}[1]{#1}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{---}" write$ newline$ - %\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash} - %"\let\cyrdash\textemdash" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ - %"\ProvideTextCommandDefault{\cyrdash}{\textemdash}" write$ newline$ "\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}{\hbox to.8em{--\hss--}}{\textemdash}}" write$ newline$ - %%"\ProvideTextCommandDefault{\cyrdash}{%" write$ newline$ - %%" \iflanguage{russian}{\hbox to.8em{--\hss--}}{%" write$ newline$ - %%" \iflanguage{ukrainian}{\hbox to.8em{--\hss--}}{\textemdash}}}" write$ newline$ "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em plus 0.1em\fi" write$ newline$ "\cyrdash\hskip.2em plus 0.1em\ignorespaces}" write$ newline$ "\renewcommand{\newblock}{\ignorespaces}" write$ newline$ @@ -2442,5 +2729,6 @@ FUNCTION {end.bib} EXECUTE {end.bib} +\endinput %% %% End of file `ugost2008s.bst'. |