diff options
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/gost/ugost2003s.bst')
-rw-r--r-- | Master/texmf-dist/bibtex/bst/gost/ugost2003s.bst | 1603 |
1 files changed, 964 insertions, 639 deletions
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'. |