diff options
author | Karl Berry <karl@freefriends.org> | 2012-01-23 00:42:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-01-23 00:42:41 +0000 |
commit | eb40e72deb1933ed11313482d7765efb1350fb23 (patch) | |
tree | b64dd2d3231b1c8ee7f5545101ff9f6bb8368a42 /Master/texmf-dist/bibtex | |
parent | 028ec45471131a5328081a21f7f2a86dd2235b0f (diff) |
gost 2012.02.02 (22jan12)
git-svn-id: svn://tug.org/texlive/trunk@25173 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/bibtex')
-rw-r--r-- | Master/texmf-dist/bibtex/bst/gost/gost705s.bst (renamed from Master/texmf-dist/bibtex/bst/gost/gost71s.bst) | 227 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/gost/gost705u.bst (renamed from Master/texmf-dist/bibtex/bst/gost/gost71u.bst) | 227 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/gost/gost780s.bst | 215 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/gost/gost780u.bst | 215 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/gost/unicode-gost705s.bst | 1672 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/gost/unicode-gost705u.bst | 1560 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/gost/unicode-gost780s.bst | 1633 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/gost/unicode-gost780u.bst | 1521 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/csf/gost/utf8cyrillic.csf | 275 |
9 files changed, 7291 insertions, 254 deletions
diff --git a/Master/texmf-dist/bibtex/bst/gost/gost71s.bst b/Master/texmf-dist/bibtex/bst/gost/gost705s.bst index a9c393568fc..8e19d2f53ab 100644 --- a/Master/texmf-dist/bibtex/bst/gost/gost71s.bst +++ b/Master/texmf-dist/bibtex/bst/gost/gost705s.bst @@ -1,33 +1,39 @@ %% -%% This is file `gost71s.bst', +%% This is file `gost705s.bst', %% generated with the docstrip utility. %% %% The original source files were: %% -%% gost.dtx (with options: `gost71s') +%% gost.dtx (with options: `gost705s') +%% +%% Copyright 2012 Igor A. Kotelnikov. +%% Version 2012.01.21 %% %% Copyright 1996-2005 Maksym Polyakov. %% Version 2005.08.12 %% %% This file may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.2 +%% 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.2 or later is part of all distributions of LaTeX -%% version 1999/12/01 or later. +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% Please, send bug reports via e-mail: -%% polyama at auburn dot edu +%% kia999 at mail dot ru <Igor Kotelnikov> +%% polyama at yahoo dot edu <Maksym Polyakov> +%% +%% 2012.01.15 Added German, French, Italian languages, @online entry. %% %% 2005.08.12 Bug fix (long annote) %% %% 2003.06.06 contributions by Konstantin Vorontsov: -%% New ENTRY "annote" added for output annotations. +%% New ENTRY "annote" added to output annotations. %% New commands BibUrl, BibAnnote added for customize urls and annotations. %% %% 2003.08.10 -%% New command BibEmph added for customize emphasizing. +%% New command BibEmph added to customize emphasizing. %% %% 2003.10.07 %% Some bug fixes in names and date formatting. @@ -38,7 +44,7 @@ %% %% This bibliography style attempts %% to format bibliography according to -%% GOST 7.1-84 vd970321 +%% GOST 7.0.5-2008 %% %% For the Ukrainian|Russian bibliographic entries %% you need to create field @@ -47,7 +53,9 @@ %% Field numpages for books must contain number of pages. %% Optional field url will format url (using hyperref, if loaded). %% -%% See examples in gost71.pdf and gost780.pdf +%% See examples in gost71.pdf, gost780.pdf and gost705.pdf +%% +%% %% %% Requires 8-bit bibtex with switch -B and csf file supporting cyrillic. %% bibtex8 -B -c <encoding>.csf <your_document> @@ -83,6 +91,7 @@ ENTRY language booklanguage url + urldate } {} { label } @@ -123,7 +132,7 @@ FUNCTION {output.nonnull} { ", " * write$ } { output.state after.block = { add.period$ write$ - " " quote$ "--- " * * write$ + " \BibDash " write$ newline$ "\newblock " write$ } @@ -137,9 +146,9 @@ FUNCTION {output.nonnull} { ": " * write$ } { output.state after.semicolumn = { "; " * write$ } - { add.period$ " " * write$ } + { add.period$ " " * write$ } if$ - } + } if$ } if$ @@ -326,35 +335,50 @@ FUNCTION {bbl.cmplr} } FUNCTION {bbl.edition} % { "\bbledition{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"edition"} { curlanguage "ukrainian" = - {"{\cyr\cyrv\cyri\cyrd.}"} - { curlanguage "russian" = - {"{\cyr\cyri\cyrz\cyrd.}"} - {"language is not defined: " language "edition" * * warning$ "edition"} - if$} + {"{\cyr\cyrv\cyri\cyrd.}"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz\cyrd.}"} + { curlanguage "german" = + {" {aus.}" } + { curlanguage "italian" = + {"edizione"} + { curlanguage "french" = + {"\'{e}dition"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$} if$} + if$} if$ } FUNCTION {bbl.vvolume} % { "\bblVolume{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"Volume"} { curlanguage "ukrainian" = curlanguage "russian" = or {"\CYRT\cyro\cyrm"} - {"language is not defined: " language "Volume" * * warning$ "Volume"} - if$} + { curlanguage "german" = + {"{Volumen}"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$} if$ } FUNCTION {bbl.vvol} % { "\bblVol{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"Vol."} { curlanguage "ukrainian" = curlanguage "russian" = or - {"\CYRT."} - {"language is not defined: " language "Vol." * * warning$ "Vol."} - if$} + {"\CYRT."} + { curlanguage "german" = + {"{Vol.}"} + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$} if$ } @@ -365,9 +389,12 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"\CYRV\cyri\cyrp\cyru\cyrs\cyrk"} { curlanguage "russian" = {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} - {"language is not defined: " language * warning$ "Issue"} - if$} - if$} + { curlanguage "german" = + {"{Ausgabe}"} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$} if$ } @@ -378,7 +405,10 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"\CYRV\cyri\cyrp."} { curlanguage "russian" = {"\CYRV\cyrery\cyrp."} - {"language is not defined: " language * warning$ "Issue"} + { curlanguage "german" = + {"{Aus.}"} + {"language is not defined: " language * warning$ "Iss"} + if$} if$} if$} if$ @@ -411,47 +441,62 @@ FUNCTION {bbl.etal} % { "\bblof{}" } } FUNCTION {bbl.nnumber} % { "\bblNumber{}" } -{ curlanguage "english" = - {"Number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"\CYRN\cyro\cyrm\cyre\cyrr"} +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRN\cyro\cyrm\cyre\cyrr"} + { curlanguage "german" = + {"{Anzahl}"} {"language is not defined: " language "Number" * * warning$ "Number"} - if$} + if$} + if$} if$ } FUNCTION {bbl.number} % { "\bblnumber{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"number"} { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} - {"language is not defined: " language "number" * * warning$ "number"} + {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + { curlanguage "german" = + {"{anzahl}"} + {"language is not defined: " language "number" * * warning$ "number"} if$} + if$} if$ } FUNCTION {bbl.nr} % { "\bblno{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"no."} - { curlanguage "ukrainian" = curlanguage "russian" = or + { curlanguage "italian" = + { "no" } + { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\textnumero}"} - {"language is not defined: " language "no." * * warning$ "no."} - if$} + { curlanguage "german" = + {"{an.}"} + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$} + if$} if$ } FUNCTION {bbl.nnr} % { "\bblno{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\textnumero}"} + {"{\cyr\textnumero}"} + { curlanguage "german" = + {"{an.}"} {"language is not defined: " language "No." * * warning$ "No."} - if$} + if$} + if$} if$ } FUNCTION {bbl.in} % { "\bblin{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\cyrv}"} @@ -461,7 +506,7 @@ FUNCTION {bbl.in} % { "\bblin{}" } } FUNCTION {bbl.iin} % { "\bblIn{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or {"\CYRV"} @@ -471,45 +516,72 @@ FUNCTION {bbl.iin} % { "\bblIn{}" } } FUNCTION {bbl.pages} % { "\bblpp." } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"pp."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\cyrs.}"} + { curlanguage "german" = + {"s."} {"language is not defined: " language "pp." * * warning$ "pp."} - if$} + if$} + if$} if$ } FUNCTION {bbl.page} % { "\bblp." -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"p."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\cyrs.}"} - {"language is not defined: " language "p." * * warning$ "p."} - if$} + { curlanguage "german" = + {"s."} + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$} if$ } FUNCTION {bbl.ppages}% { "\bblPp." } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"Pp."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\CYRS.}"} - {"language is not defined: " language "Pp." * * warning$ "Pp."} - if$} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$} if$ } FUNCTION {bbl.ppage} % { "\bblP." } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"P."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\CYRS.}"} - {"language is not defined: " language "P." * * warning$ "P."} - if$} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$} if$ } +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed: "} + { curlanguage "ukrainian" = + {"\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyre\cyrn\cyrn\cyrya:"} + { curlanguage "russian" = + {"{\cyrd\cyra\cyrt\cyra\ \cyro\cyrb\cyrr\cyra\cyrshch\cyre\cyrn\cyri\cyrya: }"} + { curlanguage "german" = + {"{online; abgerufen: }"} + {"language is not defined: " language * warning$ "online; accessed: "} + if$} + if$} + if$} + if$ +} FUNCTION {bbl.techrep} { "Tech. Rep." } FUNCTION {bbl.mthesis} { "Master's thesis" } @@ -1005,8 +1077,12 @@ FUNCTION {editor.organization.after} FUNCTION {format.url} { url empty$ { "" } - { after.sentence 'output.state := - "\BibUrl{ " url * "}" * + { + "URL: \BibUrl{" url * "}" * + urldate empty$ + { "" } + { " (" bbl.urldate * urldate * ")" * } + if$ * } if$ } @@ -1338,6 +1414,23 @@ FUNCTION {unpublished} fin.entry } +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + format.url output + new.sentence + note output + format.annote output + fin.entry +} + FUNCTION {default.type} { misc } MACRO {jan} {"\bbljan{}"} @@ -1549,11 +1642,13 @@ 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{}\else\fi" write$ newline$ - "\ifx\undefined\BibEmph\def\BibEmph#1{\emph{#1}}\else\fi" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\providecommand*{\url}[1]{{\small #1}}" write$ newline$ + "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ + "\providecommand{\BibAnnote}[1]{}" write$ newline$ + "\providecommand*{\BibEmph}[1]{\emph{#1}}" write$ newline$ + "\providecommand*{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ + "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em\fi\cyrdash\hskip.2em\ignorespaces}" write$ newline$ preamble$ empty$ 'skip$ { preamble$ write$ newline$ } @@ -1574,4 +1669,4 @@ FUNCTION {end.bib} EXECUTE {end.bib} %% -%% End of file `gost71s.bst'. +%% End of file `gost705s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost71u.bst b/Master/texmf-dist/bibtex/bst/gost/gost705u.bst index 1db7879e1e8..00cdcaaedfa 100644 --- a/Master/texmf-dist/bibtex/bst/gost/gost71u.bst +++ b/Master/texmf-dist/bibtex/bst/gost/gost705u.bst @@ -1,33 +1,39 @@ %% -%% This is file `gost71u.bst', +%% This is file `gost705u.bst', %% generated with the docstrip utility. %% %% The original source files were: %% -%% gost.dtx (with options: `gost71u') +%% gost.dtx (with options: `gost705u') +%% +%% Copyright 2012 Igor A. Kotelnikov. +%% Version 2012.01.21 %% %% Copyright 1996-2005 Maksym Polyakov. %% Version 2005.08.12 %% %% This file may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.2 +%% 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.2 or later is part of all distributions of LaTeX -%% version 1999/12/01 or later. +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% Please, send bug reports via e-mail: -%% polyama at auburn dot edu +%% kia999 at mail dot ru <Igor Kotelnikov> +%% polyama at yahoo dot edu <Maksym Polyakov> +%% +%% 2012.01.15 Added German, French, Italian languages, @online entry. %% %% 2005.08.12 Bug fix (long annote) %% %% 2003.06.06 contributions by Konstantin Vorontsov: -%% New ENTRY "annote" added for output annotations. +%% New ENTRY "annote" added to output annotations. %% New commands BibUrl, BibAnnote added for customize urls and annotations. %% %% 2003.08.10 -%% New command BibEmph added for customize emphasizing. +%% New command BibEmph added to customize emphasizing. %% %% 2003.10.07 %% Some bug fixes in names and date formatting. @@ -38,7 +44,7 @@ %% %% This bibliography style attempts %% to format bibliography according to -%% GOST 7.1-84 vd970321 +%% GOST 7.0.5-2008 %% %% For the Ukrainian|Russian bibliographic entries %% you need to create field @@ -47,7 +53,9 @@ %% Field numpages for books must contain number of pages. %% Optional field url will format url (using hyperref, if loaded). %% -%% See examples in gost71.pdf and gost780.pdf +%% See examples in gost71.pdf, gost780.pdf and gost705.pdf +%% +%% %% %% Requires 8-bit bibtex with switch -B and csf file supporting cyrillic. %% bibtex8 -B -c <encoding>.csf <your_document> @@ -83,6 +91,7 @@ ENTRY language booklanguage url + urldate } {} { label } @@ -123,7 +132,7 @@ FUNCTION {output.nonnull} { ", " * write$ } { output.state after.block = { add.period$ write$ - " " quote$ "--- " * * write$ + " \BibDash " write$ newline$ "\newblock " write$ } @@ -137,9 +146,9 @@ FUNCTION {output.nonnull} { ": " * write$ } { output.state after.semicolumn = { "; " * write$ } - { add.period$ " " * write$ } + { add.period$ " " * write$ } if$ - } + } if$ } if$ @@ -326,35 +335,50 @@ FUNCTION {bbl.cmplr} } FUNCTION {bbl.edition} % { "\bbledition{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"edition"} { curlanguage "ukrainian" = - {"{\cyr\cyrv\cyri\cyrd.}"} - { curlanguage "russian" = - {"{\cyr\cyri\cyrz\cyrd.}"} - {"language is not defined: " language "edition" * * warning$ "edition"} - if$} + {"{\cyr\cyrv\cyri\cyrd.}"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz\cyrd.}"} + { curlanguage "german" = + {" {aus.}" } + { curlanguage "italian" = + {"edizione"} + { curlanguage "french" = + {"\'{e}dition"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$} if$} + if$} if$ } FUNCTION {bbl.vvolume} % { "\bblVolume{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"Volume"} { curlanguage "ukrainian" = curlanguage "russian" = or {"\CYRT\cyro\cyrm"} - {"language is not defined: " language "Volume" * * warning$ "Volume"} - if$} + { curlanguage "german" = + {"{Volumen}"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$} if$ } FUNCTION {bbl.vvol} % { "\bblVol{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"Vol."} { curlanguage "ukrainian" = curlanguage "russian" = or - {"\CYRT."} - {"language is not defined: " language "Vol." * * warning$ "Vol."} - if$} + {"\CYRT."} + { curlanguage "german" = + {"{Vol.}"} + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$} if$ } @@ -365,9 +389,12 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"\CYRV\cyri\cyrp\cyru\cyrs\cyrk"} { curlanguage "russian" = {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} - {"language is not defined: " language * warning$ "Issue"} - if$} - if$} + { curlanguage "german" = + {"{Ausgabe}"} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$} if$ } @@ -378,7 +405,10 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"\CYRV\cyri\cyrp."} { curlanguage "russian" = {"\CYRV\cyrery\cyrp."} - {"language is not defined: " language * warning$ "Issue"} + { curlanguage "german" = + {"{Aus.}"} + {"language is not defined: " language * warning$ "Iss"} + if$} if$} if$} if$ @@ -411,47 +441,62 @@ FUNCTION {bbl.etal} % { "\bblof{}" } } FUNCTION {bbl.nnumber} % { "\bblNumber{}" } -{ curlanguage "english" = - {"Number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"\CYRN\cyro\cyrm\cyre\cyrr"} +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRN\cyro\cyrm\cyre\cyrr"} + { curlanguage "german" = + {"{Anzahl}"} {"language is not defined: " language "Number" * * warning$ "Number"} - if$} + if$} + if$} if$ } FUNCTION {bbl.number} % { "\bblnumber{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"number"} { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} - {"language is not defined: " language "number" * * warning$ "number"} + {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + { curlanguage "german" = + {"{anzahl}"} + {"language is not defined: " language "number" * * warning$ "number"} if$} + if$} if$ } FUNCTION {bbl.nr} % { "\bblno{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"no."} - { curlanguage "ukrainian" = curlanguage "russian" = or + { curlanguage "italian" = + { "no" } + { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\textnumero}"} - {"language is not defined: " language "no." * * warning$ "no."} - if$} + { curlanguage "german" = + {"{an.}"} + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$} + if$} if$ } FUNCTION {bbl.nnr} % { "\bblno{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\textnumero}"} + {"{\cyr\textnumero}"} + { curlanguage "german" = + {"{an.}"} {"language is not defined: " language "No." * * warning$ "No."} - if$} + if$} + if$} if$ } FUNCTION {bbl.in} % { "\bblin{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\cyrv}"} @@ -461,7 +506,7 @@ FUNCTION {bbl.in} % { "\bblin{}" } } FUNCTION {bbl.iin} % { "\bblIn{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or {"\CYRV"} @@ -471,45 +516,72 @@ FUNCTION {bbl.iin} % { "\bblIn{}" } } FUNCTION {bbl.pages} % { "\bblpp." } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"pp."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\cyrs.}"} + { curlanguage "german" = + {"s."} {"language is not defined: " language "pp." * * warning$ "pp."} - if$} + if$} + if$} if$ } FUNCTION {bbl.page} % { "\bblp." -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"p."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\cyrs.}"} - {"language is not defined: " language "p." * * warning$ "p."} - if$} + { curlanguage "german" = + {"s."} + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$} if$ } FUNCTION {bbl.ppages}% { "\bblPp." } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"Pp."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\CYRS.}"} - {"language is not defined: " language "Pp." * * warning$ "Pp."} - if$} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$} if$ } FUNCTION {bbl.ppage} % { "\bblP." } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"P."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\CYRS.}"} - {"language is not defined: " language "P." * * warning$ "P."} - if$} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$} if$ } +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed: "} + { curlanguage "ukrainian" = + {"\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyre\cyrn\cyrn\cyrya:"} + { curlanguage "russian" = + {"{\cyrd\cyra\cyrt\cyra\ \cyro\cyrb\cyrr\cyra\cyrshch\cyre\cyrn\cyri\cyrya: }"} + { curlanguage "german" = + {"{online; abgerufen: }"} + {"language is not defined: " language * warning$ "online; accessed: "} + if$} + if$} + if$} + if$ +} FUNCTION {bbl.techrep} { "Tech. Rep." } FUNCTION {bbl.mthesis} { "Master's thesis" } @@ -1005,8 +1077,12 @@ FUNCTION {editor.organization.after} FUNCTION {format.url} { url empty$ { "" } - { after.sentence 'output.state := - "\BibUrl{ " url * "}" * + { + "URL: \BibUrl{" url * "}" * + urldate empty$ + { "" } + { " (" bbl.urldate * urldate * ")" * } + if$ * } if$ } @@ -1338,6 +1414,23 @@ FUNCTION {unpublished} fin.entry } +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + format.url output + new.sentence + note output + format.annote output + fin.entry +} + FUNCTION {default.type} { misc } MACRO {jan} {"\bbljan{}"} @@ -1437,11 +1530,13 @@ 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{}\else\fi" write$ newline$ - "\ifx\undefined\BibEmph\def\BibEmph#1{\emph{#1}}\else\fi" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\providecommand*{\url}[1]{{\small #1}}" write$ newline$ + "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ + "\providecommand{\BibAnnote}[1]{}" write$ newline$ + "\providecommand*{\BibEmph}[1]{\emph{#1}}" write$ newline$ + "\providecommand*{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ + "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em\fi\cyrdash\hskip.2em\ignorespaces}" write$ newline$ preamble$ empty$ 'skip$ { preamble$ write$ newline$ } @@ -1462,4 +1557,4 @@ FUNCTION {end.bib} EXECUTE {end.bib} %% -%% End of file `gost71u.bst'. +%% End of file `gost705u.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost780s.bst b/Master/texmf-dist/bibtex/bst/gost/gost780s.bst index 9313731c324..aceff50fd34 100644 --- a/Master/texmf-dist/bibtex/bst/gost/gost780s.bst +++ b/Master/texmf-dist/bibtex/bst/gost/gost780s.bst @@ -6,28 +6,34 @@ %% %% gost.dtx (with options: `gost780s') %% +%% Copyright 2012 Igor A. Kotelnikov. +%% Version 2012.01.21 +%% %% Copyright 1996-2005 Maksym Polyakov. %% Version 2005.08.12 %% %% This file may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.2 +%% 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.2 or later is part of all distributions of LaTeX -%% version 1999/12/01 or later. +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% Please, send bug reports via e-mail: -%% polyama at auburn dot edu +%% kia999 at mail dot ru <Igor Kotelnikov> +%% polyama at yahoo dot edu <Maksym Polyakov> +%% +%% 2012.01.15 Added German, French, Italian languages, @online entry. %% %% 2005.08.12 Bug fix (long annote) %% %% 2003.06.06 contributions by Konstantin Vorontsov: -%% New ENTRY "annote" added for output annotations. +%% New ENTRY "annote" added to output annotations. %% New commands BibUrl, BibAnnote added for customize urls and annotations. %% %% 2003.08.10 -%% New command BibEmph added for customize emphasizing. +%% New command BibEmph added to customize emphasizing. %% %% 2003.10.07 %% Some bug fixes in names and date formatting. @@ -38,7 +44,7 @@ %% %% This bibliography style attempts %% to format bibliography according to -%% GOST 7.1-84 and GOST 7.80-00 +%% (obsolete) %% %% For the Ukrainian|Russian bibliographic entries %% you need to create field @@ -47,7 +53,9 @@ %% Field numpages for books must contain number of pages. %% Optional field url will format url (using hyperref, if loaded). %% -%% See examples in gost71.pdf and gost780.pdf +%% See examples in gost71.pdf, gost780.pdf and gost705.pdf +%% +%% %% %% Requires 8-bit bibtex with switch -B and csf file supporting cyrillic. %% bibtex8 -B -c <encoding>.csf <your_document> @@ -83,6 +91,7 @@ ENTRY language booklanguage url + urldate } {} { label } @@ -137,9 +146,9 @@ FUNCTION {output.nonnull} { ": " * write$ } { output.state after.semicolumn = { "; " * write$ } - { add.period$ " " * write$ } + { add.period$ " " * write$ } if$ - } + } if$ } if$ @@ -326,35 +335,50 @@ FUNCTION {bbl.cmplr} } FUNCTION {bbl.edition} % { "\bbledition{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"edition"} { curlanguage "ukrainian" = - {"{\cyr\cyrv\cyri\cyrd.}"} - { curlanguage "russian" = - {"{\cyr\cyri\cyrz\cyrd.}"} - {"language is not defined: " language "edition" * * warning$ "edition"} - if$} + {"{\cyr\cyrv\cyri\cyrd.}"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz\cyrd.}"} + { curlanguage "german" = + {" {aus.}" } + { curlanguage "italian" = + {"edizione"} + { curlanguage "french" = + {"\'{e}dition"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$} if$} + if$} if$ } FUNCTION {bbl.vvolume} % { "\bblVolume{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"Volume"} { curlanguage "ukrainian" = curlanguage "russian" = or {"\CYRT\cyro\cyrm"} - {"language is not defined: " language "Volume" * * warning$ "Volume"} - if$} + { curlanguage "german" = + {"{Volumen}"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$} if$ } FUNCTION {bbl.vvol} % { "\bblVol{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"Vol."} { curlanguage "ukrainian" = curlanguage "russian" = or - {"\CYRT."} - {"language is not defined: " language "Vol." * * warning$ "Vol."} - if$} + {"\CYRT."} + { curlanguage "german" = + {"{Vol.}"} + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$} if$ } @@ -365,9 +389,12 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"\CYRV\cyri\cyrp\cyru\cyrs\cyrk"} { curlanguage "russian" = {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} - {"language is not defined: " language * warning$ "Issue"} - if$} - if$} + { curlanguage "german" = + {"{Ausgabe}"} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$} if$ } @@ -378,7 +405,10 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"\CYRV\cyri\cyrp."} { curlanguage "russian" = {"\CYRV\cyrery\cyrp."} - {"language is not defined: " language * warning$ "Issue"} + { curlanguage "german" = + {"{Aus.}"} + {"language is not defined: " language * warning$ "Iss"} + if$} if$} if$} if$ @@ -411,47 +441,62 @@ FUNCTION {bbl.etal} % { "\bblof{}" } } FUNCTION {bbl.nnumber} % { "\bblNumber{}" } -{ curlanguage "english" = - {"Number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"\CYRN\cyro\cyrm\cyre\cyrr"} +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRN\cyro\cyrm\cyre\cyrr"} + { curlanguage "german" = + {"{Anzahl}"} {"language is not defined: " language "Number" * * warning$ "Number"} - if$} + if$} + if$} if$ } FUNCTION {bbl.number} % { "\bblnumber{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"number"} { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} - {"language is not defined: " language "number" * * warning$ "number"} + {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + { curlanguage "german" = + {"{anzahl}"} + {"language is not defined: " language "number" * * warning$ "number"} if$} + if$} if$ } FUNCTION {bbl.nr} % { "\bblno{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"no."} - { curlanguage "ukrainian" = curlanguage "russian" = or + { curlanguage "italian" = + { "no" } + { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\textnumero}"} - {"language is not defined: " language "no." * * warning$ "no."} - if$} + { curlanguage "german" = + {"{an.}"} + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$} + if$} if$ } FUNCTION {bbl.nnr} % { "\bblno{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\textnumero}"} + {"{\cyr\textnumero}"} + { curlanguage "german" = + {"{an.}"} {"language is not defined: " language "No." * * warning$ "No."} - if$} + if$} + if$} if$ } FUNCTION {bbl.in} % { "\bblin{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\cyrv}"} @@ -461,7 +506,7 @@ FUNCTION {bbl.in} % { "\bblin{}" } } FUNCTION {bbl.iin} % { "\bblIn{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or {"\CYRV"} @@ -471,45 +516,72 @@ FUNCTION {bbl.iin} % { "\bblIn{}" } } FUNCTION {bbl.pages} % { "\bblpp." } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"pp."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\cyrs.}"} + { curlanguage "german" = + {"s."} {"language is not defined: " language "pp." * * warning$ "pp."} - if$} + if$} + if$} if$ } FUNCTION {bbl.page} % { "\bblp." -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"p."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\cyrs.}"} - {"language is not defined: " language "p." * * warning$ "p."} - if$} + { curlanguage "german" = + {"s."} + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$} if$ } FUNCTION {bbl.ppages}% { "\bblPp." } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"Pp."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\CYRS.}"} - {"language is not defined: " language "Pp." * * warning$ "Pp."} - if$} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$} if$ } FUNCTION {bbl.ppage} % { "\bblP." } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"P."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\CYRS.}"} - {"language is not defined: " language "P." * * warning$ "P."} - if$} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$} if$ } +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed: "} + { curlanguage "ukrainian" = + {"\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyre\cyrn\cyrn\cyrya:"} + { curlanguage "russian" = + {"{\cyrd\cyra\cyrt\cyra\ \cyro\cyrb\cyrr\cyra\cyrshch\cyre\cyrn\cyri\cyrya: }"} + { curlanguage "german" = + {"{online; abgerufen: }"} + {"language is not defined: " language * warning$ "online; accessed: "} + if$} + if$} + if$} + if$ +} FUNCTION {bbl.techrep} { "Tech. Rep." } FUNCTION {bbl.mthesis} { "Master's thesis" } @@ -968,8 +1040,12 @@ FUNCTION {editor.organization.after} FUNCTION {format.url} { url empty$ { "" } - { after.sentence 'output.state := + { "\BibUrl{ " url * "}" * + urldate empty$ + { "" } + { " (" bbl.urldate * urldate * ")" * } + if$ * } if$ } @@ -1301,6 +1377,23 @@ FUNCTION {unpublished} fin.entry } +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + format.url output + new.sentence + note output + format.annote output + fin.entry +} + FUNCTION {default.type} { misc } MACRO {jan} {"\bbljan{}"} @@ -1512,11 +1605,11 @@ 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{}\else\fi" write$ newline$ - "\ifx\undefined\BibEmph\def\BibEmph#1{\emph{#1}}\else\fi" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\providecommand*{\url}[1]{{\small #1}}" write$ newline$ + "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ + "\providecommand{\BibAnnote}[1]{}" write$ newline$ + "\providecommand*{\BibEmph}[1]{\emph{#1}}" write$ newline$ preamble$ empty$ 'skip$ { preamble$ write$ newline$ } diff --git a/Master/texmf-dist/bibtex/bst/gost/gost780u.bst b/Master/texmf-dist/bibtex/bst/gost/gost780u.bst index c31165dea31..9e6e231db99 100644 --- a/Master/texmf-dist/bibtex/bst/gost/gost780u.bst +++ b/Master/texmf-dist/bibtex/bst/gost/gost780u.bst @@ -6,28 +6,34 @@ %% %% gost.dtx (with options: `gost780u') %% +%% Copyright 2012 Igor A. Kotelnikov. +%% Version 2012.01.21 +%% %% Copyright 1996-2005 Maksym Polyakov. %% Version 2005.08.12 %% %% This file may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.2 +%% 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.2 or later is part of all distributions of LaTeX -%% version 1999/12/01 or later. +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% Please, send bug reports via e-mail: -%% polyama at auburn dot edu +%% kia999 at mail dot ru <Igor Kotelnikov> +%% polyama at yahoo dot edu <Maksym Polyakov> +%% +%% 2012.01.15 Added German, French, Italian languages, @online entry. %% %% 2005.08.12 Bug fix (long annote) %% %% 2003.06.06 contributions by Konstantin Vorontsov: -%% New ENTRY "annote" added for output annotations. +%% New ENTRY "annote" added to output annotations. %% New commands BibUrl, BibAnnote added for customize urls and annotations. %% %% 2003.08.10 -%% New command BibEmph added for customize emphasizing. +%% New command BibEmph added to customize emphasizing. %% %% 2003.10.07 %% Some bug fixes in names and date formatting. @@ -38,7 +44,7 @@ %% %% This bibliography style attempts %% to format bibliography according to -%% GOST 7.1-84 and GOST 7.80-00 +%% (obsolete) %% %% For the Ukrainian|Russian bibliographic entries %% you need to create field @@ -47,7 +53,9 @@ %% Field numpages for books must contain number of pages. %% Optional field url will format url (using hyperref, if loaded). %% -%% See examples in gost71.pdf and gost780.pdf +%% See examples in gost71.pdf, gost780.pdf and gost705.pdf +%% +%% %% %% Requires 8-bit bibtex with switch -B and csf file supporting cyrillic. %% bibtex8 -B -c <encoding>.csf <your_document> @@ -83,6 +91,7 @@ ENTRY language booklanguage url + urldate } {} { label } @@ -137,9 +146,9 @@ FUNCTION {output.nonnull} { ": " * write$ } { output.state after.semicolumn = { "; " * write$ } - { add.period$ " " * write$ } + { add.period$ " " * write$ } if$ - } + } if$ } if$ @@ -326,35 +335,50 @@ FUNCTION {bbl.cmplr} } FUNCTION {bbl.edition} % { "\bbledition{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"edition"} { curlanguage "ukrainian" = - {"{\cyr\cyrv\cyri\cyrd.}"} - { curlanguage "russian" = - {"{\cyr\cyri\cyrz\cyrd.}"} - {"language is not defined: " language "edition" * * warning$ "edition"} - if$} + {"{\cyr\cyrv\cyri\cyrd.}"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz\cyrd.}"} + { curlanguage "german" = + {" {aus.}" } + { curlanguage "italian" = + {"edizione"} + { curlanguage "french" = + {"\'{e}dition"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$} if$} + if$} if$ } FUNCTION {bbl.vvolume} % { "\bblVolume{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"Volume"} { curlanguage "ukrainian" = curlanguage "russian" = or {"\CYRT\cyro\cyrm"} - {"language is not defined: " language "Volume" * * warning$ "Volume"} - if$} + { curlanguage "german" = + {"{Volumen}"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$} if$ } FUNCTION {bbl.vvol} % { "\bblVol{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"Vol."} { curlanguage "ukrainian" = curlanguage "russian" = or - {"\CYRT."} - {"language is not defined: " language "Vol." * * warning$ "Vol."} - if$} + {"\CYRT."} + { curlanguage "german" = + {"{Vol.}"} + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$} if$ } @@ -365,9 +389,12 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } {"\CYRV\cyri\cyrp\cyru\cyrs\cyrk"} { curlanguage "russian" = {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} - {"language is not defined: " language * warning$ "Issue"} - if$} - if$} + { curlanguage "german" = + {"{Ausgabe}"} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$} if$ } @@ -378,7 +405,10 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } {"\CYRV\cyri\cyrp."} { curlanguage "russian" = {"\CYRV\cyrery\cyrp."} - {"language is not defined: " language * warning$ "Issue"} + { curlanguage "german" = + {"{Aus.}"} + {"language is not defined: " language * warning$ "Iss"} + if$} if$} if$} if$ @@ -411,47 +441,62 @@ FUNCTION {bbl.etal} % { "\bblof{}" } } FUNCTION {bbl.nnumber} % { "\bblNumber{}" } -{ curlanguage "english" = - {"Number"} - { curlanguage "ukrainian" = curlanguage "russian" = or - {"\CYRN\cyro\cyrm\cyre\cyrr"} +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRN\cyro\cyrm\cyre\cyrr"} + { curlanguage "german" = + {"{Anzahl}"} {"language is not defined: " language "Number" * * warning$ "Number"} - if$} + if$} + if$} if$ } FUNCTION {bbl.number} % { "\bblnumber{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"number"} { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} - {"language is not defined: " language "number" * * warning$ "number"} + {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + { curlanguage "german" = + {"{anzahl}"} + {"language is not defined: " language "number" * * warning$ "number"} if$} + if$} if$ } FUNCTION {bbl.nr} % { "\bblno{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"no."} - { curlanguage "ukrainian" = curlanguage "russian" = or + { curlanguage "italian" = + { "no" } + { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\textnumero}"} - {"language is not defined: " language "no." * * warning$ "no."} - if$} + { curlanguage "german" = + {"{an.}"} + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$} + if$} if$ } FUNCTION {bbl.nnr} % { "\bblno{}" } -{ curlanguage "english" = +{ curlanguage "english" = {"No."} { curlanguage "ukrainian" = curlanguage "russian" = or - {"{\cyr\textnumero}"} + {"{\cyr\textnumero}"} + { curlanguage "german" = + {"{an.}"} {"language is not defined: " language "No." * * warning$ "No."} - if$} + if$} + if$} if$ } FUNCTION {bbl.in} % { "\bblin{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "german" = or {"in"} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\cyrv}"} @@ -461,7 +506,7 @@ FUNCTION {bbl.in} % { "\bblin{}" } } FUNCTION {bbl.iin} % { "\bblIn{}" } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "german" = or {"In"} { curlanguage "ukrainian" = curlanguage "russian" = or {"\CYRV"} @@ -471,45 +516,72 @@ FUNCTION {bbl.iin} % { "\bblIn{}" } } FUNCTION {bbl.pages} % { "\bblpp." } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"pp."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\cyrs.}"} + { curlanguage "german" = + {"s."} {"language is not defined: " language "pp." * * warning$ "pp."} - if$} + if$} + if$} if$ } FUNCTION {bbl.page} % { "\bblp." -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"p."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\cyrs.}"} - {"language is not defined: " language "p." * * warning$ "p."} - if$} + { curlanguage "german" = + {"s."} + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$} if$ } FUNCTION {bbl.ppages}% { "\bblPp." } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"Pp."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\CYRS.}"} - {"language is not defined: " language "Pp." * * warning$ "Pp."} - if$} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$} if$ } FUNCTION {bbl.ppage} % { "\bblP." } -{ curlanguage "english" = +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or {"P."} { curlanguage "ukrainian" = curlanguage "russian" = or {"{\cyr\CYRS.}"} - {"language is not defined: " language "P." * * warning$ "P."} - if$} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$} if$ } +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed: "} + { curlanguage "ukrainian" = + {"\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyre\cyrn\cyrn\cyrya:"} + { curlanguage "russian" = + {"{\cyrd\cyra\cyrt\cyra\ \cyro\cyrb\cyrr\cyra\cyrshch\cyre\cyrn\cyri\cyrya: }"} + { curlanguage "german" = + {"{online; abgerufen: }"} + {"language is not defined: " language * warning$ "online; accessed: "} + if$} + if$} + if$} + if$ +} FUNCTION {bbl.techrep} { "Tech. Rep." } FUNCTION {bbl.mthesis} { "Master's thesis" } @@ -968,8 +1040,12 @@ FUNCTION {editor.organization.after} FUNCTION {format.url} { url empty$ { "" } - { after.sentence 'output.state := + { "\BibUrl{ " url * "}" * + urldate empty$ + { "" } + { " (" bbl.urldate * urldate * ")" * } + if$ * } if$ } @@ -1301,6 +1377,23 @@ FUNCTION {unpublished} fin.entry } +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + format.url output + new.sentence + note output + format.annote output + fin.entry +} + FUNCTION {default.type} { misc } MACRO {jan} {"\bbljan{}"} @@ -1400,11 +1493,11 @@ 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{}\else\fi" write$ newline$ - "\ifx\undefined\BibEmph\def\BibEmph#1{\emph{#1}}\else\fi" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\providecommand*{\url}[1]{{\small #1}}" write$ newline$ + "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ + "\providecommand{\BibAnnote}[1]{}" write$ newline$ + "\providecommand*{\BibEmph}[1]{\emph{#1}}" write$ newline$ preamble$ empty$ 'skip$ { preamble$ write$ newline$ } diff --git a/Master/texmf-dist/bibtex/bst/gost/unicode-gost705s.bst b/Master/texmf-dist/bibtex/bst/gost/unicode-gost705s.bst new file mode 100644 index 00000000000..5d144e07d53 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/unicode-gost705s.bst @@ -0,0 +1,1672 @@ +%% +%% This is file `unicode-gost705s.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% unicode-gost.dtx (with options: `unicode-gost705s') +%% +%% Copyright 2012 Igor A. Kotelnikov. +%% Version 2012.01.21 +%% +%% Copyright 1996-2005 Maksym Polyakov. +%% Version 2005.08.12 +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% Please, send bug reports via e-mail: +%% kia999 at mail dot ru <Igor Kotelnikov> +%% polyama at yahoo dot edu <Maksym Polyakov> +%% +%% 2012.01.15 Added German, French, Italian languages, @online entry. +%% +%% 2005.08.12 Bug fix (long annote) +%% +%% 2003.06.06 contributions by Konstantin Vorontsov: +%% New ENTRY "annote" added to output annotations. +%% New commands BibUrl, BibAnnote added for customize urls and annotations. +%% +%% 2003.08.10 +%% New command BibEmph added to customize emphasizing. +%% +%% 2003.10.07 +%% Some bug fixes in names and date formatting. +%% +%% 2003.10.07 +%% Bug fix in INPROCEEDINGS. +%% +%% +%% This bibliography style attempts +%% to format bibliography according to +%% GOST 7.0.5-2008 +%% +%% For the Ukrainian|Russian bibliographic entries +%% you need to create field +%% language = {ukrainian|russian}. +%% Default language is English. +%% Field numpages for books must contain number of pages. +%% Optional field url will format url (using hyperref, if loaded). +%% +%% See examples in gost71.pdf, gost780.pdf and gost705.pdf +%% +%% Requires 8-bit bibtex with switch -B. +%% bibtex8.exe -B <your_document> +%% or +%% bibtex.exe <your_document> +%% + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + numpages + publisher + school + series + title + type + volume + year + language + booklanguage + url + urldate + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block +after.dblslash after.slash after.column after.semicolumn} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.dblslash := + #5 'after.slash := + #6 'after.column := + #7 'after.semicolumn := +} + +STRINGS { s t } + +STRINGS { curlanguage } + +FUNCTION {change.language} +{ booklanguage empty$ + {""} + {booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } + if$ +} + +FUNCTION {output.nonnull} +%%%{ 's := +{ swap$ + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + " \BibDash " write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.dblslash = + { "~//" * change.language * " " * write$ } + { output.state after.slash = + { "~/ " * write$ } + { output.state after.column = + { ": " * write$ } + { output.state after.semicolumn = + { "; " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ +%%% s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.dblslash} +{ output.state before.all = + 'skip$ + { after.dblslash 'output.state := } + if$ +} + +FUNCTION {new.slash} +{ output.state before.all = + 'skip$ + { after.slash 'output.state := } + if$ +} + +FUNCTION {new.column} +{ output.state before.all = + 'skip$ + { after.column 'output.state := } + if$ +} + +FUNCTION {new.semicolumn} +{ output.state before.all = + 'skip$ + { after.semicolumn 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed. by "} + { curlanguage "ukrainian" = + {"{Під ред. }"} + { curlanguage "russian" = + {"{Под ред. }"} + {"language is not defined: " language "edited by" * * warning$ "edited by"} + if$} + if$} + if$ +} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + {"Compiler "} + { curlanguage "ukrainian" = + {"{Укл. }"} + { curlanguage "russian" = + {"{Сост. }"} + {"language is not defined: " language "compiler" * * warning$ "compiler"} + if$} + if$} + if$ +} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{вид.}"} + { curlanguage "russian" = + {"{изд.}"} + { curlanguage "german" = + {" {aus.}" } + { curlanguage "italian" = + {"edizione"} + { curlanguage "french" = + {"\'{e}dition"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Volume"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Том"} + { curlanguage "german" = + {"{Volumen}"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$} + if$ +} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Т."} + { curlanguage "german" = + {"{Vol.}"} + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$} + if$ +} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"Випуск"} + { curlanguage "russian" = + {"Выпуск"} + { curlanguage "german" = + {"{Ausgabe}"} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"Вип."} + { curlanguage "russian" = + {"Вып."} + { curlanguage "german" = + {"{Aus.}"} + {"language is not defined: " language * warning$ "Iss"} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "ukrainian" = + {"{із}"} + { curlanguage "russian" = + {"{из}"} + {"language is not defined: " language "of" * * warning$ "of"} + if$} + if$} + if$ +} + +FUNCTION {bbl.etal} % { "\bblof{}" } +{ curlanguage "english" = + {"et~al."} + { curlanguage "ukrainian" = + {"{та~ін.}"} + { curlanguage "russian" = + {"{и~др.}"} + {"language is not defined: " language "at al" * * warning$ "at al."} + if$} + if$} + if$ +} + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Номер"} + { curlanguage "german" = + {"{Anzahl}"} + {"language is not defined: " language "Number" * * warning$ "Number"} + if$} + if$} + if$ +} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{номер}"} + { curlanguage "german" = + {"{anzahl}"} + {"language is not defined: " language "number" * * warning$ "number"} + if$} + if$} + if$ +} + +FUNCTION {bbl.nr} % { "\bblno{}" } +{ curlanguage "english" = + {"no."} + { curlanguage "italian" = + { "no" } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{№}"} + { curlanguage "german" = + {"{an.}"} + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{№}"} + { curlanguage "german" = + {"{an.}"} + {"language is not defined: " language "No." * * warning$ "No."} + if$} + if$} + if$ +} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = curlanguage "german" = or + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{в}"} + {"language is not defined: " language "in" * * warning$ "in"} + if$} + if$ +} + +FUNCTION {bbl.iin} % { "\bblIn{}" } +{ curlanguage "english" = curlanguage "german" = or + {"In"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"В"} + {"language is not defined: " language "In" * * warning$ "In"} + if$} + if$ +} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"s."} + {"language is not defined: " language "pp." * * warning$ "pp."} + if$} + if$} + if$ +} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"s."} + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$} + if$ +} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$} + if$ +} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$} + if$ +} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed: "} + { curlanguage "ukrainian" = + {"дата звернення: "} + { curlanguage "russian" = + {"дата обращения: "} + { curlanguage "german" = + {"{online; abgerufen: }"} + {"language is not defined: " language * warning$ "online; accessed: "} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.techrep} { "Tech. Rep." } +FUNCTION {bbl.mthesis} { "Master's thesis" } +FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{~jj}{~ff}" format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {format.names.rev} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff}{~vv}{~ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize} + if$ +} + +FUNCTION {format.bookauthors} +{ bookauthor empty$ + { "" } + { bookauthor format.names} + if$ +} + +FUNCTION {format.authors.after} +{ author empty$ + { "" } + { author format.names.rev} + if$ +} + +FUNCTION {format.bookauthors.after} +{ bookauthor empty$ + { "" } + { bookauthor format.names.rev} + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby editor format.names.rev * + } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr compiler format.names.rev * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". " "--- " month * * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher.date} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column + } + if$ + } + if$ + publisher output + format.date output +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + language empty$ + {"english" 'curlanguage :=} + {language 'curlanguage :=} + if$ + "\selectlanguageifdefined{" write$ + curlanguage write$ + "}" write$ newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.iin + " " * } + +FUNCTION {format.btitle} +{ title +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {tie.connect} + {"~" + swap$ * * + } + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ + bbl.nnr } + { + %new.dblslash + new.sentence + series + bbl.nr + tie.or.space.connect} + if$ + number tie.or.space.connect + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + + +FUNCTION {convert.edition} +{ edition +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition " " * bbl.edition * } + { convert.edition " " * bbl.edition * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { bbl.ppages pages n.dashify tie.connect } + { bbl.ppage pages tie.connect } + if$ + } + if$ +} + +FUNCTION {format.pages.page} +{ pages empty$ + { numpages empty$ + { "" } + { numpages bbl.pages tie.connect } + if$} + { format.pages} + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + ", no." number tie.or.space.connect * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ": " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.or.space.connect } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { bbl.nr number tie.or.space.connect } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "" } + { number tie.or.space.connect } + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +FUNCTION {bookauthor.before} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #4 < + {format.bookauthors output + new.sentence} + 'skip$ + if$} + if$ +} + + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {author num.names$ #3 > + {format.authors.after output + new.semicolumn } + 'skip$ + if$} + if$ +} +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #3 > + {format.bookauthors.after output + new.semicolumn } + 'skip$ + if$} + if$ +} + +FUNCTION {editor.organization.after} +{ + compiler empty$ + {} + { format.compiler.after output + new.semicolumn + } + if$ + editor empty$ + {} + { format.editors.after output + new.semicolumn + } + if$ + organization empty$ + {} + {organization output + new.semicolumn + } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + "URL: \BibUrl{" url * "}" * + urldate empty$ + { "" } + { " (" bbl.urldate * urldate * ")" * } + if$ * + } + if$ +} + +FUNCTION {format.annote} +{ annote empty$ + { "" } +{ after.sentence 'output.state := + "\BibAnnote{" annote add.period$ * "}" * +} + if$ +} + +FUNCTION {article} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + new.dblslash + journal emphasize "journal" output.check + new.block + format.date output + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.sentence + format.number.series output + new.block + format.edition output + new.block + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + new.dblslash + bookauthor.before + booktitle "booktitle" output.check + new.slash + bookauthor.after + editor.organization.after + new.block + format.edition output + new.block + format.number.series output + new.sentence + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + author.before + new.sentence + format.btitle "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher.date + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + new.block + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + new.column + publisher output + format.date "year" output.check + } + if$ + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address new.block.checka + address output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + new.block + format.url output + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.btitle output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.slash + school "school" output.check + new.block + output.address.publisher.date + new.block + format.pages.page output + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.btitle "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + publisher output + } + if$ + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.column + format.tr.number output.nonnull + new.slash + author.after + editor.organization.after + new.block + address output + new.column + institution "institution" output.check + format.date "year" output.check + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.block + note "note" output.check + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + format.url output + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\bbljan{}"} + +MACRO {feb} {"\bblfeb{}"} + +MACRO {mar} {"\bblmar{}"} + +MACRO {apr} {"\bblapr{}"} + +MACRO {may} {"\bblmay{}"} + +MACRO {jun} {"\bbljun{}"} + +MACRO {jul} {"\bbljul{}"} + +MACRO {aug} {"\bblaug{}"} + +MACRO {sep} {"\bblsep{}"} + +MACRO {oct} {"\bbloct{}"} + +MACRO {nov} {"\bblnov{}"} + +MACRO {dec} {"\bbldec{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + + +FUNCTION {sortify} +{ purify$ +%%%% Why it is commented ? %%% "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {presort} +{ + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\def\selectlanguageifdefined#1{" write$ newline$ + "\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\providecommand*{\url}[1]{{\small #1}}" write$ newline$ + "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ + "\providecommand{\BibAnnote}[1]{}" write$ newline$ + "\providecommand*{\BibEmph}[1]{\emph{#1}}" write$ newline$ + "\providecommand*{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ + "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em\fi\cyrdash\hskip.2em\ignorespaces}" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +%% +%% End of file `unicode-gost705s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/unicode-gost705u.bst b/Master/texmf-dist/bibtex/bst/gost/unicode-gost705u.bst new file mode 100644 index 00000000000..52f7639333c --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/unicode-gost705u.bst @@ -0,0 +1,1560 @@ +%% +%% This is file `unicode-gost705u.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% unicode-gost.dtx (with options: `unicode-gost705u') +%% +%% Copyright 2012 Igor A. Kotelnikov. +%% Version 2012.01.21 +%% +%% Copyright 1996-2005 Maksym Polyakov. +%% Version 2005.08.12 +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% Please, send bug reports via e-mail: +%% kia999 at mail dot ru <Igor Kotelnikov> +%% polyama at yahoo dot edu <Maksym Polyakov> +%% +%% 2012.01.15 Added German, French, Italian languages, @online entry. +%% +%% 2005.08.12 Bug fix (long annote) +%% +%% 2003.06.06 contributions by Konstantin Vorontsov: +%% New ENTRY "annote" added to output annotations. +%% New commands BibUrl, BibAnnote added for customize urls and annotations. +%% +%% 2003.08.10 +%% New command BibEmph added to customize emphasizing. +%% +%% 2003.10.07 +%% Some bug fixes in names and date formatting. +%% +%% 2003.10.07 +%% Bug fix in INPROCEEDINGS. +%% +%% +%% This bibliography style attempts +%% to format bibliography according to +%% GOST 7.0.5-2008 +%% +%% For the Ukrainian|Russian bibliographic entries +%% you need to create field +%% language = {ukrainian|russian}. +%% Default language is English. +%% Field numpages for books must contain number of pages. +%% Optional field url will format url (using hyperref, if loaded). +%% +%% See examples in gost71.pdf, gost780.pdf and gost705.pdf +%% +%% Requires 8-bit bibtex with switch -B. +%% bibtex8.exe -B <your_document> +%% or +%% bibtex.exe <your_document> +%% + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + numpages + publisher + school + series + title + type + volume + year + language + booklanguage + url + urldate + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block +after.dblslash after.slash after.column after.semicolumn} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.dblslash := + #5 'after.slash := + #6 'after.column := + #7 'after.semicolumn := +} + +STRINGS { s t } + +STRINGS { curlanguage } + +FUNCTION {change.language} +{ booklanguage empty$ + {""} + {booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } + if$ +} + +FUNCTION {output.nonnull} +%%%{ 's := +{ swap$ + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + " \BibDash " write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.dblslash = + { "~//" * change.language * " " * write$ } + { output.state after.slash = + { "~/ " * write$ } + { output.state after.column = + { ": " * write$ } + { output.state after.semicolumn = + { "; " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ +%%% s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.dblslash} +{ output.state before.all = + 'skip$ + { after.dblslash 'output.state := } + if$ +} + +FUNCTION {new.slash} +{ output.state before.all = + 'skip$ + { after.slash 'output.state := } + if$ +} + +FUNCTION {new.column} +{ output.state before.all = + 'skip$ + { after.column 'output.state := } + if$ +} + +FUNCTION {new.semicolumn} +{ output.state before.all = + 'skip$ + { after.semicolumn 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed. by "} + { curlanguage "ukrainian" = + {"{Під ред. }"} + { curlanguage "russian" = + {"{Под ред. }"} + {"language is not defined: " language "edited by" * * warning$ "edited by"} + if$} + if$} + if$ +} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + {"Compiler "} + { curlanguage "ukrainian" = + {"{Укл. }"} + { curlanguage "russian" = + {"{Сост. }"} + {"language is not defined: " language "compiler" * * warning$ "compiler"} + if$} + if$} + if$ +} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{вид.}"} + { curlanguage "russian" = + {"{изд.}"} + { curlanguage "german" = + {" {aus.}" } + { curlanguage "italian" = + {"edizione"} + { curlanguage "french" = + {"\'{e}dition"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Volume"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Том"} + { curlanguage "german" = + {"{Volumen}"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$} + if$ +} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Т."} + { curlanguage "german" = + {"{Vol.}"} + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$} + if$ +} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"Випуск"} + { curlanguage "russian" = + {"Выпуск"} + { curlanguage "german" = + {"{Ausgabe}"} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"Вип."} + { curlanguage "russian" = + {"Вып."} + { curlanguage "german" = + {"{Aus.}"} + {"language is not defined: " language * warning$ "Iss"} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "ukrainian" = + {"{із}"} + { curlanguage "russian" = + {"{из}"} + {"language is not defined: " language "of" * * warning$ "of"} + if$} + if$} + if$ +} + +FUNCTION {bbl.etal} % { "\bblof{}" } +{ curlanguage "english" = + {"et~al."} + { curlanguage "ukrainian" = + {"{та~ін.}"} + { curlanguage "russian" = + {"{и~др.}"} + {"language is not defined: " language "at al" * * warning$ "at al."} + if$} + if$} + if$ +} + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Номер"} + { curlanguage "german" = + {"{Anzahl}"} + {"language is not defined: " language "Number" * * warning$ "Number"} + if$} + if$} + if$ +} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{номер}"} + { curlanguage "german" = + {"{anzahl}"} + {"language is not defined: " language "number" * * warning$ "number"} + if$} + if$} + if$ +} + +FUNCTION {bbl.nr} % { "\bblno{}" } +{ curlanguage "english" = + {"no."} + { curlanguage "italian" = + { "no" } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{№}"} + { curlanguage "german" = + {"{an.}"} + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{№}"} + { curlanguage "german" = + {"{an.}"} + {"language is not defined: " language "No." * * warning$ "No."} + if$} + if$} + if$ +} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = curlanguage "german" = or + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{в}"} + {"language is not defined: " language "in" * * warning$ "in"} + if$} + if$ +} + +FUNCTION {bbl.iin} % { "\bblIn{}" } +{ curlanguage "english" = curlanguage "german" = or + {"In"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"В"} + {"language is not defined: " language "In" * * warning$ "In"} + if$} + if$ +} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"s."} + {"language is not defined: " language "pp." * * warning$ "pp."} + if$} + if$} + if$ +} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"s."} + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$} + if$ +} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$} + if$ +} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$} + if$ +} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed: "} + { curlanguage "ukrainian" = + {"дата звернення: "} + { curlanguage "russian" = + {"дата обращения: "} + { curlanguage "german" = + {"{online; abgerufen: }"} + {"language is not defined: " language * warning$ "online; accessed: "} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.techrep} { "Tech. Rep." } +FUNCTION {bbl.mthesis} { "Master's thesis" } +FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{~jj}{~ff}" format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {format.names.rev} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff}{~vv}{~ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize} + if$ +} + +FUNCTION {format.bookauthors} +{ bookauthor empty$ + { "" } + { bookauthor format.names} + if$ +} + +FUNCTION {format.authors.after} +{ author empty$ + { "" } + { author format.names.rev} + if$ +} + +FUNCTION {format.bookauthors.after} +{ bookauthor empty$ + { "" } + { bookauthor format.names.rev} + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby editor format.names.rev * + } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr compiler format.names.rev * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". " "--- " month * * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher.date} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column + } + if$ + } + if$ + publisher output + format.date output +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + language empty$ + {"english" 'curlanguage :=} + {language 'curlanguage :=} + if$ + "\selectlanguageifdefined{" write$ + curlanguage write$ + "}" write$ newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.iin + " " * } + +FUNCTION {format.btitle} +{ title +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {tie.connect} + {"~" + swap$ * * + } + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ + bbl.nnr } + { + %new.dblslash + new.sentence + series + bbl.nr + tie.or.space.connect} + if$ + number tie.or.space.connect + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + + +FUNCTION {convert.edition} +{ edition +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition " " * bbl.edition * } + { convert.edition " " * bbl.edition * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { bbl.ppages pages n.dashify tie.connect } + { bbl.ppage pages tie.connect } + if$ + } + if$ +} + +FUNCTION {format.pages.page} +{ pages empty$ + { numpages empty$ + { "" } + { numpages bbl.pages tie.connect } + if$} + { format.pages} + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + ", no." number tie.or.space.connect * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ": " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.or.space.connect } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { bbl.nr number tie.or.space.connect } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "" } + { number tie.or.space.connect } + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +FUNCTION {bookauthor.before} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #4 < + {format.bookauthors output + new.sentence} + 'skip$ + if$} + if$ +} + + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {author num.names$ #3 > + {format.authors.after output + new.semicolumn } + 'skip$ + if$} + if$ +} +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #3 > + {format.bookauthors.after output + new.semicolumn } + 'skip$ + if$} + if$ +} + +FUNCTION {editor.organization.after} +{ + compiler empty$ + {} + { format.compiler.after output + new.semicolumn + } + if$ + editor empty$ + {} + { format.editors.after output + new.semicolumn + } + if$ + organization empty$ + {} + {organization output + new.semicolumn + } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + "URL: \BibUrl{" url * "}" * + urldate empty$ + { "" } + { " (" bbl.urldate * urldate * ")" * } + if$ * + } + if$ +} + +FUNCTION {format.annote} +{ annote empty$ + { "" } +{ after.sentence 'output.state := + "\BibAnnote{" annote add.period$ * "}" * +} + if$ +} + +FUNCTION {article} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + new.dblslash + journal emphasize "journal" output.check + new.block + format.date output + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.sentence + format.number.series output + new.block + format.edition output + new.block + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + new.dblslash + bookauthor.before + booktitle "booktitle" output.check + new.slash + bookauthor.after + editor.organization.after + new.block + format.edition output + new.block + format.number.series output + new.sentence + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + author.before + new.sentence + format.btitle "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher.date + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + new.block + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + new.column + publisher output + format.date "year" output.check + } + if$ + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address new.block.checka + address output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + new.block + format.url output + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.btitle output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.slash + school "school" output.check + new.block + output.address.publisher.date + new.block + format.pages.page output + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.btitle "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + publisher output + } + if$ + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.column + format.tr.number output.nonnull + new.slash + author.after + editor.organization.after + new.block + address output + new.column + institution "institution" output.check + format.date "year" output.check + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.block + note "note" output.check + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + format.url output + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\bbljan{}"} + +MACRO {feb} {"\bblfeb{}"} + +MACRO {mar} {"\bblmar{}"} + +MACRO {apr} {"\bblapr{}"} + +MACRO {may} {"\bblmay{}"} + +MACRO {jun} {"\bbljun{}"} + +MACRO {jul} {"\bbljul{}"} + +MACRO {aug} {"\bblaug{}"} + +MACRO {sep} {"\bblsep{}"} + +MACRO {oct} {"\bbloct{}"} + +MACRO {nov} {"\bblnov{}"} + +MACRO {dec} {"\bbldec{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\def\selectlanguageifdefined#1{" write$ newline$ + "\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\providecommand*{\url}[1]{{\small #1}}" write$ newline$ + "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ + "\providecommand{\BibAnnote}[1]{}" write$ newline$ + "\providecommand*{\BibEmph}[1]{\emph{#1}}" write$ newline$ + "\providecommand*{\cyrdash}{\hbox to.8em{--\hss--}}" write$ newline$ + "\providecommand*{\BibDash}{\ifdim\lastskip>0pt\unskip\nobreak\hskip.2em\fi\cyrdash\hskip.2em\ignorespaces}" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +%% +%% End of file `unicode-gost705u.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/unicode-gost780s.bst b/Master/texmf-dist/bibtex/bst/gost/unicode-gost780s.bst new file mode 100644 index 00000000000..a11ed701b8f --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/unicode-gost780s.bst @@ -0,0 +1,1633 @@ +%% +%% This is file `unicode-gost780s.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% unicode-gost.dtx (with options: `unicode-gost780s') +%% +%% Copyright 2012 Igor A. Kotelnikov. +%% Version 2012.01.21 +%% +%% Copyright 1996-2005 Maksym Polyakov. +%% Version 2005.08.12 +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% Please, send bug reports via e-mail: +%% kia999 at mail dot ru <Igor Kotelnikov> +%% polyama at yahoo dot edu <Maksym Polyakov> +%% +%% 2012.01.15 Added German, French, Italian languages, @online entry. +%% +%% 2005.08.12 Bug fix (long annote) +%% +%% 2003.06.06 contributions by Konstantin Vorontsov: +%% New ENTRY "annote" added to output annotations. +%% New commands BibUrl, BibAnnote added for customize urls and annotations. +%% +%% 2003.08.10 +%% New command BibEmph added to customize emphasizing. +%% +%% 2003.10.07 +%% Some bug fixes in names and date formatting. +%% +%% 2003.10.07 +%% Bug fix in INPROCEEDINGS. +%% +%% +%% This bibliography style attempts +%% to format bibliography according to +%% (obsolete) +%% +%% For the Ukrainian|Russian bibliographic entries +%% you need to create field +%% language = {ukrainian|russian}. +%% Default language is English. +%% Field numpages for books must contain number of pages. +%% Optional field url will format url (using hyperref, if loaded). +%% +%% See examples in gost71.pdf, gost780.pdf and gost705.pdf +%% +%% Requires 8-bit bibtex with switch -B. +%% bibtex8.exe -B <your_document> +%% or +%% bibtex.exe <your_document> +%% + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + numpages + publisher + school + series + title + type + volume + year + language + booklanguage + url + urldate + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block +after.dblslash after.slash after.column after.semicolumn} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.dblslash := + #5 'after.slash := + #6 'after.column := + #7 'after.semicolumn := +} + +STRINGS { s t } + +STRINGS { curlanguage } + +FUNCTION {change.language} +{ booklanguage empty$ + {""} + {booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } + if$ +} + +FUNCTION {output.nonnull} +%%%{ 's := +{ swap$ + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + " " quote$ "--- " * * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.dblslash = + { "~//" * change.language * " " * write$ } + { output.state after.slash = + { "~/ " * write$ } + { output.state after.column = + { ": " * write$ } + { output.state after.semicolumn = + { "; " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ +%%% s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.dblslash} +{ output.state before.all = + 'skip$ + { after.dblslash 'output.state := } + if$ +} + +FUNCTION {new.slash} +{ output.state before.all = + 'skip$ + { after.slash 'output.state := } + if$ +} + +FUNCTION {new.column} +{ output.state before.all = + 'skip$ + { after.column 'output.state := } + if$ +} + +FUNCTION {new.semicolumn} +{ output.state before.all = + 'skip$ + { after.semicolumn 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed. by "} + { curlanguage "ukrainian" = + {"{Під ред. }"} + { curlanguage "russian" = + {"{Под ред. }"} + {"language is not defined: " language "edited by" * * warning$ "edited by"} + if$} + if$} + if$ +} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + {"Compiler "} + { curlanguage "ukrainian" = + {"{Укл. }"} + { curlanguage "russian" = + {"{Сост. }"} + {"language is not defined: " language "compiler" * * warning$ "compiler"} + if$} + if$} + if$ +} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{вид.}"} + { curlanguage "russian" = + {"{изд.}"} + { curlanguage "german" = + {" {aus.}" } + { curlanguage "italian" = + {"edizione"} + { curlanguage "french" = + {"\'{e}dition"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Volume"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Том"} + { curlanguage "german" = + {"{Volumen}"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$} + if$ +} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Т."} + { curlanguage "german" = + {"{Vol.}"} + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$} + if$ +} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"Випуск"} + { curlanguage "russian" = + {"Выпуск"} + { curlanguage "german" = + {"{Ausgabe}"} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"Вип."} + { curlanguage "russian" = + {"Вып."} + { curlanguage "german" = + {"{Aus.}"} + {"language is not defined: " language * warning$ "Iss"} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "ukrainian" = + {"{із}"} + { curlanguage "russian" = + {"{из}"} + {"language is not defined: " language "of" * * warning$ "of"} + if$} + if$} + if$ +} + +FUNCTION {bbl.etal} % { "\bblof{}" } +{ curlanguage "english" = + {"et~al."} + { curlanguage "ukrainian" = + {"{та~ін.}"} + { curlanguage "russian" = + {"{и~др.}"} + {"language is not defined: " language "at al" * * warning$ "at al."} + if$} + if$} + if$ +} + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Номер"} + { curlanguage "german" = + {"{Anzahl}"} + {"language is not defined: " language "Number" * * warning$ "Number"} + if$} + if$} + if$ +} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{номер}"} + { curlanguage "german" = + {"{anzahl}"} + {"language is not defined: " language "number" * * warning$ "number"} + if$} + if$} + if$ +} + +FUNCTION {bbl.nr} % { "\bblno{}" } +{ curlanguage "english" = + {"no."} + { curlanguage "italian" = + { "no" } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{№}"} + { curlanguage "german" = + {"{an.}"} + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{№}"} + { curlanguage "german" = + {"{an.}"} + {"language is not defined: " language "No." * * warning$ "No."} + if$} + if$} + if$ +} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = curlanguage "german" = or + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{в}"} + {"language is not defined: " language "in" * * warning$ "in"} + if$} + if$ +} + +FUNCTION {bbl.iin} % { "\bblIn{}" } +{ curlanguage "english" = curlanguage "german" = or + {"In"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"В"} + {"language is not defined: " language "In" * * warning$ "In"} + if$} + if$ +} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"s."} + {"language is not defined: " language "pp." * * warning$ "pp."} + if$} + if$} + if$ +} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"s."} + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$} + if$ +} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$} + if$ +} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$} + if$ +} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed: "} + { curlanguage "ukrainian" = + {"дата звернення: "} + { curlanguage "russian" = + {"дата обращения: "} + { curlanguage "german" = + {"{online; abgerufen: }"} + {"language is not defined: " language * warning$ "online; accessed: "} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.techrep} { "Tech. Rep." } +FUNCTION {bbl.mthesis} { "Master's thesis" } +FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ + #1 "{vv~}{ll}{~jj}{,~ff}" format.name$ +} + + +FUNCTION {format.names.rev} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff}{~vv}{~ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize} + if$ +} + +FUNCTION {format.bookauthors} +{ bookauthor empty$ + { "" } + { bookauthor format.names} + if$ +} + +FUNCTION {format.authors.after} +{ author empty$ + { "" } + { author format.names.rev} + if$ +} + +FUNCTION {format.bookauthors.after} +{ bookauthor empty$ + { "" } + { bookauthor format.names.rev} + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby editor format.names.rev * + } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr compiler format.names.rev * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". " "--- " month * * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher.date} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column + } + if$ + } + if$ + publisher output + format.date output +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + language empty$ + {"english" 'curlanguage :=} + {language 'curlanguage :=} + if$ + "\selectlanguageifdefined{" write$ + curlanguage write$ + "}" write$ newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.iin + " " * } + +FUNCTION {format.btitle} +{ title +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {tie.connect} + {"~" + swap$ * * + } + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ + bbl.nnr } + { + %new.dblslash + new.sentence + series + bbl.nr + tie.or.space.connect} + if$ + number tie.or.space.connect + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + + +FUNCTION {convert.edition} +{ edition +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition " " * bbl.edition * } + { convert.edition " " * bbl.edition * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { bbl.ppages pages n.dashify tie.connect } + { bbl.ppage pages tie.connect } + if$ + } + if$ +} + +FUNCTION {format.pages.page} +{ pages empty$ + { numpages empty$ + { "" } + { numpages bbl.pages tie.connect } + if$} + { format.pages} + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + ", no." number tie.or.space.connect * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ": " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.or.space.connect } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { bbl.nr number tie.or.space.connect } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "" } + { number tie.or.space.connect } + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +FUNCTION {bookauthor.before} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #4 < + {format.bookauthors output + new.sentence} + 'skip$ + if$} + if$ +} + + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {format.authors.after output + new.semicolumn } + if$ +} +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {format.bookauthors.after output + new.semicolumn } + if$ +} + +FUNCTION {editor.organization.after} +{ + compiler empty$ + {} + { format.compiler.after output + new.semicolumn + } + if$ + editor empty$ + {} + { format.editors.after output + new.semicolumn + } + if$ + organization empty$ + {} + {organization output + new.semicolumn + } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + "\BibUrl{ " url * "}" * + urldate empty$ + { "" } + { " (" bbl.urldate * urldate * ")" * } + if$ * + } + if$ +} + +FUNCTION {format.annote} +{ annote empty$ + { "" } +{ after.sentence 'output.state := + "\BibAnnote{" annote add.period$ * "}" * +} + if$ +} + +FUNCTION {article} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + new.dblslash + journal emphasize "journal" output.check + new.block + format.date output + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.sentence + format.number.series output + new.block + format.edition output + new.block + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + new.dblslash + bookauthor.before + booktitle "booktitle" output.check + new.slash + bookauthor.after + editor.organization.after + new.block + format.edition output + new.block + format.number.series output + new.sentence + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + author.before + new.sentence + format.btitle "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher.date + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + new.block + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + new.column + publisher output + format.date "year" output.check + } + if$ + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address new.block.checka + address output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + new.block + format.url output + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.btitle output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.slash + school "school" output.check + new.block + output.address.publisher.date + new.block + format.pages.page output + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.btitle "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + publisher output + } + if$ + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.column + format.tr.number output.nonnull + new.slash + author.after + editor.organization.after + new.block + address output + new.column + institution "institution" output.check + format.date "year" output.check + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.block + note "note" output.check + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + format.url output + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\bbljan{}"} + +MACRO {feb} {"\bblfeb{}"} + +MACRO {mar} {"\bblmar{}"} + +MACRO {apr} {"\bblapr{}"} + +MACRO {may} {"\bblmay{}"} + +MACRO {jun} {"\bbljun{}"} + +MACRO {jul} {"\bbljul{}"} + +MACRO {aug} {"\bblaug{}"} + +MACRO {sep} {"\bblsep{}"} + +MACRO {oct} {"\bbloct{}"} + +MACRO {nov} {"\bblnov{}"} + +MACRO {dec} {"\bbldec{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + + +FUNCTION {sortify} +{ purify$ +%%%% Why it is commented ? %%% "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {presort} +{ + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\def\selectlanguageifdefined#1{" write$ newline$ + "\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\providecommand*{\url}[1]{{\small #1}}" write$ newline$ + "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ + "\providecommand{\BibAnnote}[1]{}" write$ newline$ + "\providecommand*{\BibEmph}[1]{\emph{#1}}" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +%% +%% End of file `unicode-gost780s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/unicode-gost780u.bst b/Master/texmf-dist/bibtex/bst/gost/unicode-gost780u.bst new file mode 100644 index 00000000000..3c8d28da7ca --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/unicode-gost780u.bst @@ -0,0 +1,1521 @@ +%% +%% This is file `unicode-gost780u.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% unicode-gost.dtx (with options: `unicode-gost780u') +%% +%% Copyright 2012 Igor A. Kotelnikov. +%% Version 2012.01.21 +%% +%% Copyright 1996-2005 Maksym Polyakov. +%% Version 2005.08.12 +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% Please, send bug reports via e-mail: +%% kia999 at mail dot ru <Igor Kotelnikov> +%% polyama at yahoo dot edu <Maksym Polyakov> +%% +%% 2012.01.15 Added German, French, Italian languages, @online entry. +%% +%% 2005.08.12 Bug fix (long annote) +%% +%% 2003.06.06 contributions by Konstantin Vorontsov: +%% New ENTRY "annote" added to output annotations. +%% New commands BibUrl, BibAnnote added for customize urls and annotations. +%% +%% 2003.08.10 +%% New command BibEmph added to customize emphasizing. +%% +%% 2003.10.07 +%% Some bug fixes in names and date formatting. +%% +%% 2003.10.07 +%% Bug fix in INPROCEEDINGS. +%% +%% +%% This bibliography style attempts +%% to format bibliography according to +%% (obsolete) +%% +%% For the Ukrainian|Russian bibliographic entries +%% you need to create field +%% language = {ukrainian|russian}. +%% Default language is English. +%% Field numpages for books must contain number of pages. +%% Optional field url will format url (using hyperref, if loaded). +%% +%% See examples in gost71.pdf, gost780.pdf and gost705.pdf +%% +%% Requires 8-bit bibtex with switch -B. +%% bibtex8.exe -B <your_document> +%% or +%% bibtex.exe <your_document> +%% + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + numpages + publisher + school + series + title + type + volume + year + language + booklanguage + url + urldate + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block +after.dblslash after.slash after.column after.semicolumn} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.dblslash := + #5 'after.slash := + #6 'after.column := + #7 'after.semicolumn := +} + +STRINGS { s t } + +STRINGS { curlanguage } + +FUNCTION {change.language} +{ booklanguage empty$ + {""} + {booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } + if$ +} + +FUNCTION {output.nonnull} +%%%{ 's := +{ swap$ + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + " " quote$ "--- " * * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.dblslash = + { "~//" * change.language * " " * write$ } + { output.state after.slash = + { "~/ " * write$ } + { output.state after.column = + { ": " * write$ } + { output.state after.semicolumn = + { "; " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ +%%% s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.dblslash} +{ output.state before.all = + 'skip$ + { after.dblslash 'output.state := } + if$ +} + +FUNCTION {new.slash} +{ output.state before.all = + 'skip$ + { after.slash 'output.state := } + if$ +} + +FUNCTION {new.column} +{ output.state before.all = + 'skip$ + { after.column 'output.state := } + if$ +} + +FUNCTION {new.semicolumn} +{ output.state before.all = + 'skip$ + { after.semicolumn 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed. by "} + { curlanguage "ukrainian" = + {"{Під ред. }"} + { curlanguage "russian" = + {"{Под ред. }"} + {"language is not defined: " language "edited by" * * warning$ "edited by"} + if$} + if$} + if$ +} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + {"Compiler "} + { curlanguage "ukrainian" = + {"{Укл. }"} + { curlanguage "russian" = + {"{Сост. }"} + {"language is not defined: " language "compiler" * * warning$ "compiler"} + if$} + if$} + if$ +} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{вид.}"} + { curlanguage "russian" = + {"{изд.}"} + { curlanguage "german" = + {" {aus.}" } + { curlanguage "italian" = + {"edizione"} + { curlanguage "french" = + {"\'{e}dition"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Volume"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Том"} + { curlanguage "german" = + {"{Volumen}"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$} + if$ +} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Т."} + { curlanguage "german" = + {"{Vol.}"} + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$} + if$ +} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"Випуск"} + { curlanguage "russian" = + {"Выпуск"} + { curlanguage "german" = + {"{Ausgabe}"} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"Вип."} + { curlanguage "russian" = + {"Вып."} + { curlanguage "german" = + {"{Aus.}"} + {"language is not defined: " language * warning$ "Iss"} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "ukrainian" = + {"{із}"} + { curlanguage "russian" = + {"{из}"} + {"language is not defined: " language "of" * * warning$ "of"} + if$} + if$} + if$ +} + +FUNCTION {bbl.etal} % { "\bblof{}" } +{ curlanguage "english" = + {"et~al."} + { curlanguage "ukrainian" = + {"{та~ін.}"} + { curlanguage "russian" = + {"{и~др.}"} + {"language is not defined: " language "at al" * * warning$ "at al."} + if$} + if$} + if$ +} + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"Номер"} + { curlanguage "german" = + {"{Anzahl}"} + {"language is not defined: " language "Number" * * warning$ "Number"} + if$} + if$} + if$ +} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{номер}"} + { curlanguage "german" = + {"{anzahl}"} + {"language is not defined: " language "number" * * warning$ "number"} + if$} + if$} + if$ +} + +FUNCTION {bbl.nr} % { "\bblno{}" } +{ curlanguage "english" = + {"no."} + { curlanguage "italian" = + { "no" } + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{№}"} + { curlanguage "german" = + {"{an.}"} + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{№}"} + { curlanguage "german" = + {"{an.}"} + {"language is not defined: " language "No." * * warning$ "No."} + if$} + if$} + if$ +} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = curlanguage "german" = or + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{в}"} + {"language is not defined: " language "in" * * warning$ "in"} + if$} + if$ +} + +FUNCTION {bbl.iin} % { "\bblIn{}" } +{ curlanguage "english" = curlanguage "german" = or + {"In"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"В"} + {"language is not defined: " language "In" * * warning$ "In"} + if$} + if$ +} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"s."} + {"language is not defined: " language "pp." * * warning$ "pp."} + if$} + if$} + if$ +} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{с.}"} + { curlanguage "german" = + {"s."} + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$} + if$ +} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"Pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$} + if$ +} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{С.}"} + { curlanguage "german" = + {"S."} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$} + if$ +} + +FUNCTION {bbl.urldate} +{ curlanguage "english" = + {"online; accessed: "} + { curlanguage "ukrainian" = + {"дата звернення: "} + { curlanguage "russian" = + {"дата обращения: "} + { curlanguage "german" = + {"{online; abgerufen: }"} + {"language is not defined: " language * warning$ "online; accessed: "} + if$} + if$} + if$} + if$ +} + +FUNCTION {bbl.techrep} { "Tech. Rep." } +FUNCTION {bbl.mthesis} { "Master's thesis" } +FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ + #1 "{vv~}{ll}{~jj}{,~ff}" format.name$ +} + + +FUNCTION {format.names.rev} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff}{~vv}{~ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize} + if$ +} + +FUNCTION {format.bookauthors} +{ bookauthor empty$ + { "" } + { bookauthor format.names} + if$ +} + +FUNCTION {format.authors.after} +{ author empty$ + { "" } + { author format.names.rev} + if$ +} + +FUNCTION {format.bookauthors.after} +{ bookauthor empty$ + { "" } + { bookauthor format.names.rev} + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby editor format.names.rev * + } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr compiler format.names.rev * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". " "--- " month * * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher.date} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column + } + if$ + } + if$ + publisher output + format.date output +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + language empty$ + {"english" 'curlanguage :=} + {language 'curlanguage :=} + if$ + "\selectlanguageifdefined{" write$ + curlanguage write$ + "}" write$ newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.iin + " " * } + +FUNCTION {format.btitle} +{ title +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {tie.connect} + {"~" + swap$ * * + } + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ + bbl.nnr } + { + %new.dblslash + new.sentence + series + bbl.nr + tie.or.space.connect} + if$ + number tie.or.space.connect + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + + +FUNCTION {convert.edition} +{ edition +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition " " * bbl.edition * } + { convert.edition " " * bbl.edition * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { bbl.ppages pages n.dashify tie.connect } + { bbl.ppage pages tie.connect } + if$ + } + if$ +} + +FUNCTION {format.pages.page} +{ pages empty$ + { numpages empty$ + { "" } + { numpages bbl.pages tie.connect } + if$} + { format.pages} + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + ", no." number tie.or.space.connect * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ": " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.or.space.connect } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { bbl.nr number tie.or.space.connect } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "" } + { number tie.or.space.connect } + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +FUNCTION {bookauthor.before} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #4 < + {format.bookauthors output + new.sentence} + 'skip$ + if$} + if$ +} + + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {format.authors.after output + new.semicolumn } + if$ +} +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {format.bookauthors.after output + new.semicolumn } + if$ +} + +FUNCTION {editor.organization.after} +{ + compiler empty$ + {} + { format.compiler.after output + new.semicolumn + } + if$ + editor empty$ + {} + { format.editors.after output + new.semicolumn + } + if$ + organization empty$ + {} + {organization output + new.semicolumn + } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + "\BibUrl{ " url * "}" * + urldate empty$ + { "" } + { " (" bbl.urldate * urldate * ")" * } + if$ * + } + if$ +} + +FUNCTION {format.annote} +{ annote empty$ + { "" } +{ after.sentence 'output.state := + "\BibAnnote{" annote add.period$ * "}" * +} + if$ +} + +FUNCTION {article} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + new.dblslash + journal emphasize "journal" output.check + new.block + format.date output + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.sentence + format.number.series output + new.block + format.edition output + new.block + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + new.dblslash + bookauthor.before + booktitle "booktitle" output.check + new.slash + bookauthor.after + editor.organization.after + new.block + format.edition output + new.block + format.number.series output + new.sentence + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + author.before + new.sentence + format.btitle "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher.date + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + new.block + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + new.column + publisher output + format.date "year" output.check + } + if$ + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address new.block.checka + address output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + new.block + format.url output + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.btitle output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.slash + school "school" output.check + new.block + output.address.publisher.date + new.block + format.pages.page output + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.btitle "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + publisher output + } + if$ + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.column + format.tr.number output.nonnull + new.slash + author.after + editor.organization.after + new.block + address output + new.column + institution "institution" output.check + format.date "year" output.check + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.block + note "note" output.check + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {online} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + format.url output + new.sentence + note output + format.annote output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\bbljan{}"} + +MACRO {feb} {"\bblfeb{}"} + +MACRO {mar} {"\bblmar{}"} + +MACRO {apr} {"\bblapr{}"} + +MACRO {may} {"\bblmay{}"} + +MACRO {jun} {"\bbljun{}"} + +MACRO {jul} {"\bbljul{}"} + +MACRO {aug} {"\bblaug{}"} + +MACRO {sep} {"\bblsep{}"} + +MACRO {oct} {"\bbloct{}"} + +MACRO {nov} {"\bblnov{}"} + +MACRO {dec} {"\bbldec{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\def\selectlanguageifdefined#1{" write$ newline$ + "\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\providecommand*{\url}[1]{{\small #1}}" write$ newline$ + "\providecommand*{\BibUrl}[1]{\url{#1}}" write$ newline$ + "\providecommand{\BibAnnote}[1]{}" write$ newline$ + "\providecommand*{\BibEmph}[1]{\emph{#1}}" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +%% +%% End of file `unicode-gost780u.bst'. diff --git a/Master/texmf-dist/bibtex/csf/gost/utf8cyrillic.csf b/Master/texmf-dist/bibtex/csf/gost/utf8cyrillic.csf new file mode 100644 index 00000000000..60d4550a13d --- /dev/null +++ b/Master/texmf-dist/bibtex/csf/gost/utf8cyrillic.csf @@ -0,0 +1,275 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% CHARACTER SET: Cyrillic (utf8) +%% +%% SORTING ORDER: Ukrainian/Russian (First Cyrillic then Latin) +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% FILE FORMAT +%% +%% The codepage and sorting order (CS) file defines how BibTeX will treat an +%% 8-bit character set, specifically which characters are to be treated as +%% letters, the upper/lower case relationships between characters, and the +%% sorting order of characters. +%% +%% The CS file may contain a number of sections, each presented in the +%% form of a TeX macro: +%% +%% \section-name{ +%% <section definitions> +%% } +%% +%% Four sections are currently supported: \lowupcase, \lowercase, \uppercase +%% and \order. The syntax of the four supported sections is summarised below. +%% +%% 8-bit characters may be entered naturally, but to avoid problems with +%% character set translation or corruption, they can also be entered using +%% the TeX-style portable notation for character codes, i.e. ^^XX, where XX +%% is the hexadecimal value ofthe character code. +%% +%% Reading of the sections ends when the first '}' character is reached, so +%% '}' can't be included in a section. You can't use ^^7d either. +%% +%% The percent sign ('%') is used to introduce a trailing comment - it and +%% all remaining characters on a line are ignored. ^^25 has the same effect. +%% +%% +%% \lowupcase section +%% +%% The \lowupcase section of the CS file is used to define the lower +%% /upper and upper/lower case relationship of pairs of specified +%% characters. It is only used if the relationship is symmetrical - use +%% \lowercase or \upcase if it isn't. +%% +%% The syntax of the \lowupcase section is: +%% +%% \lowupcase{ +%% <LC-1> <UC-1> % Comment begins with a percent sign +%% <LC-2> <UC-2> +%% ... +%% <LC-N> <UC-N> +%% } +%% +%% Each <LC-n> <UC-n> pair of characters defines that the upper case +%% equivalent of <LC-n> is <UC-n> *and* the lower case equivalent of +%% <UC-n> is <LC-n>. +%% +%% You cannot redefine the lower or upper case equivalent of an ASCII +%% character (code < 128), so all instances of <LC-n> and <UC-n> +%% (i.e. both sides of the relationship) must have codes > 127. +%% +%% +%% \lowercase section +%% +%% The \lowercase section of the CS file is used to define the lower case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \lowercase section is: +%% +%% \lowercase{ +%% <UC-1> <LC-1> % Comment begins with a percent sign +%% <UC-2> <LC-2> +%% ... +%% <UC-N> <LC-N> +%% } +%% +%% Each <LC-n> <UC-n> pair of characters defines that the lower case +%% equivalent of <UC-n> is <LC-n>. +%% +%% You cannot redefine the lower case equivalent of an ASCII character +%% (code < 128), so all instances of <UC-n> (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \uppercase section +%% +%% The \uppercase section of the CS file is used to define the upper case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \uppercase section is: +%% +%% \uppercase{ +%% <LC-1> <UC-1> % Comment begins with a percent sign +%% <LC-2> <UC-2> +%% ... +%% <LC-N> <UC-N> +%% } +%% +%% Each <LC-n> <UC-n> pair of characters defines that the upper case +%% case equivalent of <LC-n> is <UC-n>. +%% +%% You cannot redefine the upper case equivalent of an ASCII character +%% (code < 128), so all instances of <LC-n> (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \order section +%% +%% The \order section of the CS file is used to define the order in which +%% characters are sorted. +%% +%% The syntax of the \order section is: +%% +%% \order{ +%% <char-1> % Comment begins with a percent sign +%% <char-2> <char-3> % whitespace between the chars +%% <char-4> - <char-5> % a hyphen between the chars +%% <char-4> _ <char-5> % an underscore between the chars +%% ... +%% <char-n> +%% } +%% +%% All characters on the same line are given the same sorting weight. +%% +%% The construct <char-1> <underscore> <char-2> is used to denote that +%% all characters in the range <char-1> to <char-2> should be given the +%% same sorting weight. For example, "A _ Z" would cause all ASCII +%% upper case alphabetical characters to have the same sorting weight +%% and would be equivalent to placing all 26 characters on the same line. +%% +%% The construct <char-1> <hyphen> <char-2> is used to denote that all +%% characters in the range <char-1> to <char-2> should be given an +%% ascending set of sorting weights, starting with <char-1> and ending +%% with <char-2>. For example, "A - Z" would cause all upper case ASCII +%% alphabetical characters to be sorted in ascending order and would be +%% equivalent to placing 'A' on the first line, 'B' on the second, +%% through to 'Z' on the 26th line. +%% +%% The characters at the beginning of the order section are given a lower +%% sorting weight than characters occuring later. When sorting +%% alphabetically, characters with the lowest weight come first. +%% +%% All characters not in the \order section (including ASCII characters) +%% are given the same very high sorting weight to ensure that they come +%% last when sorting alphabetically. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%% +%% CHARACTER SET +%% +\lowupcase{ + а А + б Б + в В + г Г + ґ Ґ + д Д + е Е + є Є + ё Ё + ж Ж + з З + и И + і І + ї Ї + й Й + к К + л Л + м М + н Н + о О + п П + р Р + с С + т Т + у У + ф Ф + х Х + ц Ц + ч Ч + ш Ш + щ Щ + ъ Ъ + ы Ы + ь Ь + э Э + ю Ю + я Я +} + + + +%% +%% SORTING ORDER +%% +%% +\order{ + 0-9 + А а + Б б + В в + Г г + Ґ ґ + Д д + Е е + Є є + Ё ё + Ж ж + З з + И и + І і + Ї ї + Й й + К к + Л л + М м + Н н + О о + П п + Р р + С с + Т т + У у + Ф ф + Х х + Ц ц + Ч ч + Ш ш + Щ щ + Ъ ъ + Ы ы + Ь ь + Э э + Ю ю + Я я + A a + B b + C c + D d + E e + F f + G g + H h + I i + J j + K k + L l + M m + N n + O o + P p + Q q + R r + S s + T t + U u + V v + W w + X x + Y y + Z z +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END OF FILE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |