You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1532 lines
31 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

%% This bibliography style attempts
%% to format bibliography according to
%% GOST 7.0.5-2008
%%
%% Package version - 1.2
%%
%%version history
%%1.0 базовая версия
%%1.1 поправлена ошибка с полем page (при ненулевом numpages) из одной цифры (c. 319). Теперь - C. 319
%%1.2 поправлен баг, решена проблема с bibentry. В конце каждой записи ставится пустая группа: {}. Строки 145--149 кода
%%
%% For the Ukrainian|English bibliographic entries
%% you need to create field
%% language = {ukrainian|english}.
%% Default language is Russian.
%% Field numpages for books must contain number of pages.
%%
%% See examples in test.pdf and samples.pdf
%%
%% You can send your questions and comments to e-mail: tex_support@uniyar.ac.ru
%%
ENTRY
{ address
annote
author
booktitle
bookauthor
chapter
edition
editor
compiler
howpublished
institution
journal
key
month
note
number
organization
pages
numpages
publisher
school
series
title
type
volume
year
language
booklanguage
url
}
{}
{ label }
INTEGERS { output.state before.all mid.sentence after.sentence after.block
after.dblslash after.slash after.column after.semicolumn}
FUNCTION {init.state.consts}
{ #0 'before.all :=
#1 'mid.sentence :=
#2 'after.sentence :=
#3 'after.block :=
#4 'after.dblslash :=
#5 'after.slash :=
#6 'after.column :=
#7 'after.semicolumn :=
}
STRINGS { s t }
STRINGS { curlanguage }
FUNCTION {change.language}
{ booklanguage empty$
{""}
{booklanguage 'curlanguage :=
"\selectlanguageifdefined{"
curlanguage *
"}" *
}
if$
}
%% Разделители
FUNCTION {output.nonnull}
%%%{ 's :=
{ swap$
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
{ add.period$ write$
" " " " * write$
newline$
"\newblock " write$
}
{ output.state before.all =
'write$
{ output.state after.dblslash =
{ "~//" * change.language * " " * write$ }
{ output.state after.slash =
{ "~/ " * write$ }
{ output.state after.column =
{ ": " * write$ }
{ output.state after.semicolumn =
{ "; " * write$ }
{ add.period$ " " * write$ }
if$
}
if$
}
if$
}
if$
}
if$
}
if$
mid.sentence 'output.state :=
}
if$
%%% s
}
FUNCTION {output}
{ duplicate$ empty$
'pop$
'output.nonnull
if$
}
%% Проверка наличия содержания
FUNCTION {output.check}
{ 't :=
duplicate$ empty$
{ pop$ "empty " t * " in " * cite$ * warning$ }
'output.nonnull
if$
}
FUNCTION {fin.entry}
{ add.period$
write$
%% вставляем пустую группу в конце. вер.1.2 %%%%%%%%%%%%%%%%%%%%%%
after.sentence 'output.state :=
"{}"
write$
%% конец вставки %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
newline$
}
%% Смена состояний
FUNCTION {new.block}
{ output.state before.all =
'skip$
{ after.block 'output.state := }
if$
}
FUNCTION {new.dblslash}
{ output.state before.all =
'skip$
{ after.dblslash 'output.state := }
if$
}
FUNCTION {new.slash}
{ output.state before.all =
'skip$
{ after.slash 'output.state := }
if$
}
FUNCTION {new.column}
{ output.state before.all =
'skip$
{ after.column 'output.state := }
if$
}
FUNCTION {new.semicolumn}
{ output.state before.all =
'skip$
{ after.semicolumn 'output.state := }
if$
}
FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
'skip$
{ after.sentence 'output.state := }
if$
}
if$
}
%% ---------
FUNCTION {add.blank}
{ " " * before.all 'output.state :=
}
%% Логические операции
FUNCTION {not}
{ { #0 }
{ #1 }
if$
}
FUNCTION {and}
{ 'skip$
{ pop$ #0 }
if$
}
FUNCTION {or}
{ { pop$ #1 }
'skip$
if$
}
%% ---------
FUNCTION {non.stop}
{ duplicate$
"}" * add.period$
#-1 #1 substring$ "." =
}
FUNCTION {new.block.checka}
{ empty$
'skip$
'new.block
if$
}
FUNCTION {new.block.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.block
if$
}
FUNCTION {new.sentence.checka}
{ empty$
'skip$
'new.sentence
if$
}
FUNCTION {new.sentence.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.sentence
if$
}
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
'skip$
if$
}
%% Выделение \emph
FUNCTION {emphasize}
{ duplicate$ empty$
{ pop$ "" }
{ "\BibEmph{" swap$ * "}" * }
if$
}
FUNCTION {space.word}
{ " " swap$ * " " * }
%% Сокращения для разных языков
%% Русские версии поправлены (не все). Убраны заглавные буквы
FUNCTION {bbl.edby} % { "\bbledby{}" }
{ curlanguage "english" =
{"Ed. by "}
{ curlanguage "ukrainian" =
{"{Під ред. }"}
{ curlanguage "russian" =
{"{под ред. }"} %%%%%%%%%%%%%%%% правлено
{"language is not defined: " language "edited by" * * warning$ "edited by"}
if$}
if$}
if$
}
FUNCTION {bbl.cmplr}
{ curlanguage "english" =
{"Compiler "}
{ curlanguage "ukrainian" =
{"{Укл. }"}
{ curlanguage "russian" =
{"{сост. }"} %%%%%%%%%%%%%%%% правлено
{"language is not defined: " language "compiler" * * warning$ "compiler"}
if$}
if$}
if$
}
FUNCTION {bbl.edition} % { "\bbledition{}" }
{ curlanguage "english" =
{"edition"}
{ curlanguage "ukrainian" =
{"{вид.}"}
{ curlanguage "russian" =
{"{изд.}"}
{"language is not defined: " language "edition" * * warning$ "edition"}
if$}
if$}
if$
}
FUNCTION {bbl.vvolume} % { "\bblVolume{}" }
{ curlanguage "english" =
{"Volume"}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"Том"}
{"language is not defined: " language "Volume" * * warning$ "Volume"}
if$}
if$
}
FUNCTION {bbl.vvol} % { "\bblVol{}" }
{ curlanguage "english" =
{"Vol."}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"Т."}
{"language is not defined: " language "Vol." * * warning$ "Vol."}
if$}
if$
}
FUNCTION {bbl.iissue} % { "\bblIssue{}" }
{ curlanguage "english" =
{"Issue"}
{ curlanguage "ukrainian" =
{"Випуск"}
{ curlanguage "russian" =
{"Выпуск"}
{"language is not defined: " language * warning$ "Issue"}
if$}
if$}
if$
}
FUNCTION {bbl.iiss} % { "\bblIss{}" }
{ curlanguage "english" =
{"Iss."}
{ curlanguage "ukrainian" =
{"Вип."}
{ curlanguage "russian" =
{"Вып."}
{"language is not defined: " language * warning$ "Issue"}
if$}
if$}
if$
}
FUNCTION {bbl.of} % { "\bblof{}" }
{ curlanguage "english" =
{"of"}
{ curlanguage "ukrainian" =
{"{із}"}
{ curlanguage "russian" =
{"{из}"}
{"language is not defined: " language "of" * * warning$ "of"}
if$}
if$}
if$
}
FUNCTION {bbl.etal} % { "\bblof{}" }
{ curlanguage "english" =
{"et~al."}
{ curlanguage "ukrainian" =
{"{та~ін.}"}
{ curlanguage "russian" =
{"{[и~др.]}"}
{"language is not defined: " language "at al" * * warning$ "at al."}
if$}
if$}
if$
}
FUNCTION {bbl.nnumber} % { "\bblNumber{}" }
{ curlanguage "english" =
{"Number"}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"Номер"}
{"language is not defined: " language "Number" * * warning$ "Number"}
if$}
if$
}
FUNCTION {bbl.number} % { "\bblnumber{}" }
{ curlanguage "english" =
{"number"}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"{номер}"}
{"language is not defined: " language "number" * * warning$ "number"}
if$}
if$
}
FUNCTION {bbl.nr} % { "\bblno{}" }
{ curlanguage "english" =
{"no."}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"{№}"}
{"language is not defined: " language "no." * * warning$ "no."}
if$}
if$
}
FUNCTION {bbl.nnr} % { "\bblno{}" }
{ curlanguage "english" =
{"No."}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"{№}"}
{"language is not defined: " language "No." * * warning$ "No."}
if$}
if$
}
FUNCTION {bbl.in} % { "\bblin{}" }
{ curlanguage "english" =
{"in"}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"{в}"}
{"language is not defined: " language "in" * * warning$ "in"}
if$}
if$
}
FUNCTION {bbl.iin} % { "\bblIn{}" }
{ curlanguage "english" =
{"In"}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"В"}
{"language is not defined: " language "In" * * warning$ "In"}
if$}
if$
}
%% Поле page - номер страницы или диапазон, поле numpage - количество страниц
FUNCTION {bbl.pages} % { "\bblpp." }
{ curlanguage "english" =
{"pp."}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"{C.}"} %%правлено
{"language is not defined: " language "pp." * * warning$ "pp."}
if$}
if$
}
FUNCTION {bbl.page} % { "\bblp." %
{ curlanguage "english" =
{"p."}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"{с.}"}
{"language is not defined: " language "p." * * warning$ "p."}
if$}
if$
}
FUNCTION {bbl.ppages}% { "\bblPp." }
{ curlanguage "english" =
{"pp."}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"{С.}"}
{"language is not defined: " language "pp." * * warning$ "pp."}
if$}
if$
}
FUNCTION {bbl.ppage} % { "\bblP." }
{ curlanguage "english" =
{"P."}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"{С.}"}
{"language is not defined: " language "P." * * warning$ "P."}
if$}
if$
}
FUNCTION {bbl.techrep} { "Tech. Rep." }
FUNCTION {bbl.mthesis} { "Master's thesis" }
FUNCTION {bbl.phdthesis} { "Ph.D. thesis" }
%% -----
INTEGERS { nameptr namesleft numnames }
%% Запись имен в прямом порядке: Фамилия И.О.
%% У английских имен сокращает Имя до И. (у остальный вствляет как есть)
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
curlanguage "ukrainian" = curlanguage "russian" = or
{ "{vv~}{ll}{~jj}{~ff}" format.name$ 't := }
{ curlanguage "english" =
{ "{vv~}{ll}{~jj}{~f.}" format.name$ 't := }
{ "language is not defined: " language "{vv~}{ll}{~jj}{~ff}" * * warning$ "{vv~}{ll}{~jj}{~ff}" }
if$}
if$
nameptr #1 >
{
nameptr #4 =
numnames #3 > and
{ "others" 't :=
#1 'namesleft := }
'skip$
if$
namesleft #1 >
{ ", " * t * }
{
t "others" =
t "~others" =
or
{ " " * bbl.etal * }
{ ", " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
%% Запись имен в обратном порядке И.О. Фамилия
%% У английских имен сокращает Имя до И. (у остальный вствляет как есть)
FUNCTION {format.names.rev}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
curlanguage "ukrainian" = curlanguage "russian" = or
{ "{ff}{~vv}{~ll}{, jj}" format.name$ 't := }
{ curlanguage "english" =
{ "{f.}{~vv}{~ll}{, jj}" format.name$ 't := }
{ "language is not defined: " language "{ff}{~vv}{~ll}{, jj}" * * warning$ "{ff}{~vv}{~ll}{, jj}" }
if$}
if$
nameptr #1 >
{
nameptr #4 =
numnames #3 > 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}
if$
}
FUNCTION {format.bookauthors}
{ bookauthor empty$
{ "" }
{ bookauthor format.names}
if$
}
FUNCTION {format.authors.after}
{ author empty$
{ "" }
{ author format.names.rev}
if$
}
FUNCTION {format.bookauthors.after}
{ bookauthor empty$
{ "" }
{ bookauthor format.names.rev}
if$
}
FUNCTION {format.editors.after}
{ editor empty$
{ "" }
{ bbl.edby editor format.names.rev *
}
if$
}
FUNCTION {format.compiler.after}
{ compiler empty$
{ "" }
{ bbl.cmplr compiler format.names.rev *
}
if$
}
FUNCTION {format.title}
{ title empty$
{ "" }
{ title
}
if$
}
FUNCTION {format.date}
{ year empty$
{ month empty$
{ "" }
{ "there's a month but no year in " cite$ * warning$
month
}
if$
}
{ month empty$
'year
{ year ". " " " month * * * } %%%%%%%%правлено
if$
}
if$
}
FUNCTION {output.address.publisher.date}
{
address empty$
'skip$
{ address output
publisher empty$
'skip$
{ new.column
}
if$
}
if$
publisher output
format.date output
}
%% Начало bibitem'а
FUNCTION {output.bibitem}
{ newline$
"\bibitem{" write$
cite$ write$
"}" write$
newline$
language empty$
{"russian" 'curlanguage :=}%%%%%%%% правлено
{language 'curlanguage :=}
if$
"\selectlanguageifdefined{" write$
curlanguage write$
"}" write$ newline$
""
before.all 'output.state :=
}
FUNCTION {n.dashify}
{ 't :=
""
{ t empty$ not }
{ t #1 #1 substring$ "-" =
{ t #1 #2 substring$ "--" = not
{ "--" *
t #2 global.max$ substring$ 't :=
}
{ { t #1 #1 substring$ "-" = }
{ "-" *
t #2 global.max$ substring$ 't :=
}
while$
}
if$
}
{ t #1 #1 substring$ *
t #2 global.max$ substring$ 't :=
}
if$
}
while$
}
FUNCTION {word.in}
{ bbl.iin
" " * }
FUNCTION {format.btitle}
{ title
}
%% Вставка липкого пробела у коротких слов
%% Один или два символа - ставит неразрывный пробел, три и больше - пробел
FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
{ "~" }
{ " " }
if$
swap$ * *
}
FUNCTION {tie.connect}
{"~"
swap$ * *
}
FUNCTION {either.or.check}
{ empty$
'pop$
{ "can't use both " swap$ * " fields in " * cite$ * warning$ }
if$
}
FUNCTION {format.bvolume}
{ volume empty$
{ "" }
{ bbl.vvol volume tie.connect
series empty$
'skip$
{ bbl.of space.word * series emphasize * }
if$
"volume and number" number either.or.check
}
if$
}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
{ series field.or.null }
{ series empty$
{ "there's a number but no series in " cite$ * warning$
bbl.nnr }
{
%new.dblslash
new.sentence
series
bbl.nr
tie.or.space.connect}
if$
number tie.or.space.connect
}
if$
}
{ "" }
if$
}
FUNCTION {is.num}
{ chr.to.int$
duplicate$ "0" chr.to.int$ < not
swap$ "9" chr.to.int$ > not and
}
FUNCTION {extract.num}
{ duplicate$ 't :=
"" 's :=
{ t empty$ not }
{ t #1 #1 substring$
t #2 global.max$ substring$ 't :=
duplicate$ is.num
{ s swap$ * 's := }
{ pop$ "" 't := }
if$
}
while$
s empty$
'skip$
{ pop$ s }
if$
}
FUNCTION {convert.edition}
{ edition
}
FUNCTION {format.edition}
{ edition empty$
{ "" }
{ output.state mid.sentence =
{ convert.edition " " * bbl.edition * }
{ convert.edition " " * bbl.edition * }
if$
}
if$
}
INTEGERS { multiresult }
FUNCTION {multi.page.check}
{ 't :=
#0 'multiresult :=
{ multiresult not
t empty$ not
and
}
{ t #1 #1 substring$
duplicate$ "-" =
swap$ duplicate$ "," =
swap$ "+" =
or or
{ #1 'multiresult := }
{ t #2 global.max$ substring$ 't := }
if$
}
while$
multiresult
}
FUNCTION {format.pages}%%%%Поправлено (P вместо pp и p вместо pp)
{ pages empty$
{ "" }
{ pages multi.page.check
{ bbl.ppage pages n.dashify tie.connect }
% { bbl.page pages tie.connect } % поправлено 16.3.2012
{ bbl.ppage pages tie.connect } % поправлено 16.3.2012
if$
}
if$
}
FUNCTION {format.pages.page}%%%%Поправлено (P вместо pp и p вместо pp)
{ pages empty$
{ numpages empty$
{ "" }
{ numpages bbl.page tie.connect }
if$}
{ format.pages}
if$
}
FUNCTION {format.vol.num.pages}
{ volume field.or.null
number empty$
'skip$
{
", no." number tie.or.space.connect *
volume empty$
{ "there's a number but no volume in " cite$ * warning$ }
'skip$
if$
}
if$
pages empty$
'skip$
{ duplicate$ empty$
{ pop$ format.pages }
{ ": " * pages n.dashify * }
if$
}
if$
}
FUNCTION {format.volume}
{ volume empty$
{ "" }
{ bbl.vvol volume tie.or.space.connect }
if$
}
FUNCTION {format.number}
{ number empty$
{ "" }
{ bbl.nr number tie.connect } %%%% правлено
if$
}
FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
month empty$ year empty$ note empty$
and and and and and
key empty$ not and
{ "all relevant fields are empty in " cite$ * warning$ }
'skip$
if$
}
FUNCTION {format.thesis.type}
{ type empty$
'skip$
{ pop$
type
}
if$
}
FUNCTION {format.tr.number}% выводим TYPE и NUMBER
{ type empty$
{ bbl.techrep }
'type
if$
number empty$
{ "" }
{ number tie.or.space.connect }
if$
}
FUNCTION {format.tr.number1}% выводим только TYPE. Добавлено
{ type empty$
{ bbl.techrep }
'type
if$
}
FUNCTION {format.tr.number2}% выводим только NUMBER. Добавлено
{ number empty$
{ "" }
{ number }
if$
}
FUNCTION {author.before}
{
author empty$
'skip$
{author num.names$ #4 <
{format.authors output
new.sentence}
'skip$
if$}
if$
}
FUNCTION {bookauthor.before}
{
bookauthor empty$
'skip$
{bookauthor num.names$ #4 <
{format.bookauthors output
new.sentence}
'skip$
if$}
if$
}
FUNCTION {author.after}
{
author empty$
'skip$
{author num.names$ #3 >
{format.authors.after output
new.semicolumn }
'skip$
if$}
if$
}
FUNCTION {bookauthor.after}
{
bookauthor empty$
'skip$
{bookauthor num.names$ #3 >
{format.bookauthors.after output
new.semicolumn }
'skip$
if$}
if$
}
FUNCTION {editor.organization.after}
{
compiler empty$
{}
{ format.compiler.after output
new.semicolumn
}
if$
editor empty$
{}
{ format.editors.after output
new.semicolumn
}
if$
organization empty$
{}
{organization output
new.semicolumn
}
if$
}
FUNCTION {format.url}
{ url empty$
{ "" }
{ after.sentence 'output.state :=
"URL: " url * "" *
}
if$
}
FUNCTION {format.annote}
{ annote empty$
{ "" }
{ after.sentence 'output.state :=
"\BibAnnote{" annote * "}" *
}
if$
}
FUNCTION {format.annoteurl} %%%%%%%% правлено
{ annote empty$ url empty$ or
{ "" }
{ after.sentence 'output.state :=
"URL:" "~" * url * " " * "\BibAnnote{" * annote * "}" *
}
if$
}
FUNCTION {article}
{ output.bibitem
author.before
format.btitle "title" output.check
new.slash
author.after
new.dblslash
%%journal emphasize "journal" output.check%% правлено
journal "journal" output.check
new.block
address output %%%%%%%% добавлено
format.date output
new.block
format.volume output
format.number output
new.block
format.pages.page output
new.block
note output
new.sentence
format.url output
format.annote output
fin.entry
}
FUNCTION {book}
{ output.bibitem
author.before
format.btitle "title" output.check
new.slash
author.after
editor.organization.after
new.sentence
format.number.series output
new.block
format.edition output
new.block
output.address.publisher.date
new.block
format.bvolume output
new.block
format.pages.page output
new.block
note output
new.sentence
format.url output
format.annote output
fin.entry
}
FUNCTION {booklet}
{ output.bibitem
author.before
format.title "title" output.check
new.slash
author.after
editor.organization.after
%%%%new.block%%%%%%%%%%убрано
new.column%%%%%%%%%%%%%добавлено
howpublished output
new.block%%%%%%%%%%%%%%добавлено
address output
format.date output
new.block
note output
new.sentence
format.url output
format.annote output
fin.entry
}
FUNCTION {inbook}
{ output.bibitem
author.before
format.btitle "title" output.check
new.slash
author.after
new.dblslash
bookauthor.before
booktitle "booktitle" output.check
new.slash
bookauthor.after
editor.organization.after
new.block
format.edition output
new.block
format.number.series output
new.sentence
output.address.publisher.date
new.block
format.bvolume output
new.block
format.pages.page output
new.block
note output
new.sentence
format.url output
format.annote output
fin.entry
}
FUNCTION {incollection}
{ output.bibitem
author.before
new.sentence
format.btitle "title" output.check
new.slash
author.after
new.dblslash
booktitle "booktitle" output.check
new.slash
editor.organization.after
new.block
format.number.series output%%%%%%%%%%%%%%%%%добавлено
new.block%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%добавлено
output.address.publisher.date
new.block
format.bvolume output
%format.number.series output%%%%%%%%%%%%%%%%%переставлено
new.block
format.pages.page output
new.block
note output
new.sentence
format.url output
format.annote output
fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
author.before
new.sentence
format.title "title" output.check
new.slash
author.after
new.dblslash
booktitle "booktitle" output.check
new.slash
editor.organization.after
new.block
format.bvolume output
format.number.series output
new.block
address empty$
{ publisher output
format.date "year" output.check
}
{ address output.nonnull
new.column
publisher output
format.date "year" output.check
}
if$
new.block
format.pages.page output
new.block
note output
new.sentence
format.url output
format.annote output
fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
author empty$
{ organization empty$
'skip$
{ organization output.nonnull
address output
}
if$
}
{ format.authors output.nonnull }
if$
new.block
format.btitle "title" output.check
new.block %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%вставлено
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
new.block%%%%%%%%%%%%%%%%%%%%%%%%%%вставлено
format.date output
new.block
note output
new.sentence
format.url output
format.annote output
fin.entry
}
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
new.block
format.btitle "title" output.check
%new.block%%%%%%%%%закомментировано
new.column%%%%%%%%%добавлено
bbl.mthesis format.thesis.type output.nonnull
new.column%%%%%%%%%%%%%%%добавлено
school "school" output.check
new.block%%%%%%%%добавлено
address output
format.date "year" output.check
new.block
note output
new.block
format.url output
format.annote output
fin.entry
}
FUNCTION {electronic}
{ output.bibitem
format.authors output
title howpublished new.sentence.checkb
format.btitle output
howpublished new.block.checka
howpublished output
new.block
format.date output
new.block
note output
new.sentence
format.annoteurl output %%%%%%% правлено
fin.entry
}
FUNCTION {misc}
{ output.bibitem
format.authors output
title howpublished new.sentence.checkb
format.btitle output
howpublished new.block.checka
howpublished output
new.block
format.date output
new.block
note output
new.sentence
format.url output
format.annote output
fin.entry
}
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
new.sentence
format.btitle "title" output.check
%new.column
new.sentence
bbl.phdthesis format.thesis.type output.nonnull
%new.slash%%%%%%%%%%%%%%%%%%закомментировано
new.column%%%%%%%%%%%%%%%%добавлено
school "school" output.check
new.block
output.address.publisher.date
new.block
format.pages.page output
note output
new.sentence
format.url output
format.annote output
fin.entry
}
FUNCTION {proceedings}
{ output.bibitem
format.btitle "title" output.check
new.slash
editor.organization.after
new.block
format.bvolume output
format.number.series output
address empty$
{ publisher output
format.date "year" output.check
}
{ address output.nonnull
%format.date "year" output.check%%%%%%%%%%%%%%было
%new.sentence
%publisher output
new.column%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%стало
publisher output
format.date "year" output.check
}
if$
new.block
note output
new.sentence
format.url output
format.annote output
fin.entry
}
FUNCTION {techreport}
{ output.bibitem
author.before
new.sentence
format.title "title" output.check
new.column %%%%раскомментарено
%new.sentence %%%%закомментарено
%format.tr.number output.nonnull%%% заменено на отдельный вывод типа и номера
format.tr.number1 output.nonnull
new.column
format.tr.number2 output.nonnull%%% конец вставки
new.slash
author.after
editor.organization.after
new.block
address output
new.column
institution "institution" output.check
format.date "year" output.check
new.block
note output
new.sentence
format.url output
format.annote output
fin.entry
}
FUNCTION {unpublished}
{ output.bibitem
author.before
format.btitle "title" output.check
new.slash
author.after
editor.organization.after
new.block
note "note" output.check
new.sentence
format.url output
format.annote output
fin.entry
}
FUNCTION {default.type} { misc }
MACRO {jan} {"\bbljan{}"}
MACRO {feb} {"\bblfeb{}"}
MACRO {mar} {"\bblmar{}"}
MACRO {apr} {"\bblapr{}"}
MACRO {may} {"\bblmay{}"}
MACRO {jun} {"\bbljun{}"}
MACRO {jul} {"\bbljul{}"}
MACRO {aug} {"\bblaug{}"}
MACRO {sep} {"\bblsep{}"}
MACRO {oct} {"\bbloct{}"}
MACRO {nov} {"\bblnov{}"}
MACRO {dec} {"\bbldec{}"}
MACRO {acmcs} {"ACM Computing Surveys"}
MACRO {acta} {"Acta Informatica"}
MACRO {cacm} {"Communications of the ACM"}
MACRO {ibmjrd} {"IBM Journal of Research and Development"}
MACRO {ibmsj} {"IBM Systems Journal"}
MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
MACRO {ieeetc} {"IEEE Transactions on Computers"}
MACRO {ieeetcad}
{"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
MACRO {ipl} {"Information Processing Letters"}
MACRO {jacm} {"Journal of the ACM"}
MACRO {jcss} {"Journal of Computer and System Sciences"}
MACRO {scp} {"Science of Computer Programming"}
MACRO {sicomp} {"SIAM Journal on Computing"}
MACRO {tocs} {"ACM Transactions on Computer Systems"}
MACRO {tods} {"ACM Transactions on Database Systems"}
MACRO {tog} {"ACM Transactions on Graphics"}
MACRO {toms} {"ACM Transactions on Mathematical Software"}
MACRO {toois} {"ACM Transactions on Office Information Systems"}
MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
MACRO {tcs} {"Theoretical Computer Science"}
READ
STRINGS { longest.label }
INTEGERS { number.label longest.label.width }
FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
#1 'number.label :=
#0 'longest.label.width :=
}
FUNCTION {longest.label.pass}
{ number.label int.to.str$ 'label :=
number.label #1 + 'number.label :=
label width$ longest.label.width >
{ label 'longest.label :=
label width$ 'longest.label.width :=
}
'skip$
if$
}
EXECUTE {initialize.longest.label}
ITERATE {longest.label.pass}
FUNCTION {begin.bib}
{ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
"\def\selectlanguageifdefined#1{" write$ newline$
"\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$
"\else\language\csname l@#1\endcsname\fi}" write$ newline$
"\ifx\undefined\url\def\url#1{{\small #1}}\else\fi" write$ newline$
"\ifx\undefined\BibUrl\def\BibUrl#1{\url{#1}}\else\fi" write$ newline$
"\ifx\undefined\BibAnnote\long\def\BibAnnote#1{(#1)}\else\fi" write$ newline$
"\ifx\undefined\BibEmph\def\BibEmph#1{\emph{#1}}\else\fi" 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 `utf8gost705u.bst'.