summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/biblatex-contrib/biblatex-gost/tex
Initial commit
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-gost/tex')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx10
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx39
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx10
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx332
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx10
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx46
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx10
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx55
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx2540
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def574
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx7
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx338
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx10
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx10
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx10
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx585
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx125
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx31
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx13
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx30
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx13
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx13
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx30
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx24
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx12
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx24
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx12
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx13
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx12
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx13
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx193
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx13
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx13
49 files changed, 5274 insertions, 0 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx
new file mode 100644
index 0000000000..461e942bd0
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx
@@ -0,0 +1,10 @@
+\ProvidesFile{gost-alphabetic-min.bbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireBibliographyStyle{gost-alphabetic}
+\AtEveryBibitem{%
+ \usebibmacro{setup:min}}
+
+\ExecuteBibliographyOptions{bibisbn=false,biburl=false,bibdoi=false,bibeprint=false}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx
new file mode 100644
index 0000000000..0b5c508940
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx
@@ -0,0 +1,39 @@
+\ProvidesFile{gost-alphabetic.bbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireBibliographyStyle{gost-standard}
+\ExecuteBibliographyOptions{labelalpha,sorting=anyvt}
+
+\DeclareFieldFormat{labelalphawidth}{\mkbibbrackets{#1}}
+\DeclareFieldFormat{shorthandwidth}{\mkbibbrackets{#1}}
+
+\defbibenvironment{bibliography}
+ {\list
+ {\printtext[labelalphawidth]{%
+ \printfield{labelprefix}%
+ \printfield{labelalpha}%
+ \printfield{extraalpha}}}
+ {\setlength{\labelwidth}{\labelalphawidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}%
+ \renewcommand*{\makelabel}[1]{##1\hss}}
+ {\endlist}
+ {\item}
+
+\defbibenvironment{shorthand}
+ {\list
+ {\printfield[shorthandwidth]{shorthand}}
+ {\setlength{\labelwidth}{\shorthandwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \renewcommand*{\makelabel}[1]{##1\hss}}}
+ {\endlist}
+ {\item}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx
new file mode 100644
index 0000000000..cb662f4a7a
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx
@@ -0,0 +1,10 @@
+\ProvidesFile{gost-authoryear-min.bbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireBibliographyStyle{gost-authoryear}
+\AtEveryBibitem{%
+ \usebibmacro{setup:min}}
+
+\ExecuteBibliographyOptions{bibisbn=false,biburl=false,bibdoi=false,bibeprint=false}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx
new file mode 100644
index 0000000000..8b95eebd28
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx
@@ -0,0 +1,332 @@
+\ProvidesFile{gost-authoryear.bbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireBibliographyStyle{gost-standard}
+
+\DeclareBibliographyOption{dropdates}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{singletitle=true,uniquebaretitle=true}}
+ {\ExecuteBibliographyOptions{singletitle=false,uniquebaretitle=false}}}
+
+\DeclareBibliographyOption{mergedate}[true]{%
+ \ifcsdef{bbx@opt@mergedate@#1}
+ {\csuse{bbx@opt@mergedate@#1}}
+ {\PackageError{biblatex}
+ {Invalid option 'mergedate=#1'}
+ {Valid values are 'maximum', 'compact', 'basic', 'minimum',\MessageBreak
+ 'goststrict', 'gostletter', 'gostlabel', 'true' (=compact), and 'false'.}}}
+
+% whether the date is necessary for disambiguation
+\newcommand*{\blx@gost@ifneedsdate}[2]{%
+ \ifnameundef{labelname}
+ {\ifuniquebaretitle{#2}{#1}}
+ {\ifsingletitle{#2}{#1}}}
+
+\providebibmacro*{labelyear+extradate}{}
+\providebibmacro*{authoryearlabel}{}
+\newbibmacro*{cite:extras}{%
+ \ifnameundef{labelname}% if there is labelname, extradate disambiguation is enough
+ {\printfield{extratitleyear}} % if labeltitle+labelyear are the same
+ {\printfield{extradate}}}
+
+\providebibmacro*{labeltitle}{}
+\newlength{\labelauthoryearsep}
+
+% label isn't taken into account since labeltitle is always provided
+\newbibmacro*{labeltitle:common}{%
+ \blx@gost@ifneedsdate
+ {\printtext[title]{\printfield[titlecase]{labeltitle}}%
+ \clearfield{\thefield{labeltitlesource}}}
+ {}}
+
+\def\bbx@opt@mergedate@true{\bbx@opt@mergedate@compact}
+
+\def\bbx@opt@mergedate@maximum{%
+ \renewbibmacro*{labelyear+extradate}{%
+ \blx@gost@ifneedsdate
+ {\iffieldundef{labelyear}
+ {}
+ {\printtext[parens]{%
+ % \ifentrytype{article}
+ % {\printfield{issue}%
+ % \clearfield{issue}%
+ % \setunit*{\addspace}}
+ % {}%
+ \usebibmacro{cite:labelyear+extras}{}%
+ \clearfield{\thefield{labeldatesource}month}%
+ \clearfield{\thefield{labeldatesource}day}}}}
+ {}}%
+ %\renewcommand*{\labelnamepunct}{\newunitpunct}
+ \renewbibmacro*{date}{\blx@gost@ifneedsdate{}{\usebibmacro{printdate}{}}}%
+ \renewbibmacro*{year}{\blx@gost@ifneedsdate{}{\usebibmacro{printyear}{}}}%
+ \renewbibmacro*{jour:date}{%
+ \blx@gost@ifneedsdate
+ {}
+ {\usebibmacro{year}%
+ \newunit\newblock
+ \mkbibdatelong{}{month}{day}}}%
+ \renewbibmacro*{labeltitle}{\usebibmacro{labeltitle:common}}%
+ \renewbibmacro*{authoryearlabel}{}%
+ \setlength{\labelauthoryearsep}{0pt}%
+}
+
+\def\bbx@opt@mergedate@compact{%
+ \renewbibmacro*{labelyear+extradate}{%
+ \blx@gost@ifneedsdate{\usebibmacro{cite:labelyear+extras}{parens}}{}}%
+ %\renewcommand*{\labelnamepunct}{\newunitpunct}
+ \renewbibmacro*{date}{\blx@gost@ifneedsdate{}{\usebibmacro{printdate}{}}}%
+ \renewbibmacro*{year}{\blx@gost@ifneedsdate{}{\usebibmacro{printyear}{}}}%
+ \renewbibmacro*{jour:date}{%
+ \blx@gost@ifneedsdate
+ {}
+ {\usebibmacro{year}%
+ \newunit\newblock
+ \mkbibdatelong{}{month}{day}}}%
+ \renewbibmacro*{labeltitle}{\usebibmacro{labeltitle:common}}%
+ \renewbibmacro*{authoryearlabel}{}%
+ \setlength{\labelauthoryearsep}{0pt}%
+}
+
+\def\bbx@opt@mergedate@basic{%
+ \renewbibmacro*{labelyear+extradate}{%
+ \blx@gost@ifneedsdate{\usebibmacro{cite:labelyear+extras}{parens}}{}}%
+ %\renewcommand*{\labelnamepunct}{\newunitpunct}
+ \renewbibmacro*{date}{%
+ \blx@gost@ifneedsdate
+ {\ifthenelse{\(\iffieldundef{extradate}\AND\iffieldundef{extratitleyear}\)
+ \AND\iffieldundef{month}} %if date is simply year
+ {}
+ {\usebibmacro{printdate}{}}}
+ {\usebibmacro{printdate}{}}}%
+ \renewbibmacro*{year}{%
+ \blx@gost@ifneedsdate
+ {\ifthenelse{\iffieldundef{extradate}\AND\iffieldundef{extratitleyear}}
+ {}
+ {\usebibmacro{printyear}{}}}
+ {\usebibmacro{printyear}{}}}%
+ \renewbibmacro*{jour:date}{%
+ \blx@gost@ifneedsdate
+ {\ifthenelse{\(\iffieldundef{extradate}\AND\iffieldundef{extratitleyear}\)
+ \AND\iffieldundef{month}} %if date is simply year
+ {}
+ {\usebibmacro{year}%
+ \newunit\newblock
+ \mkbibdatelong{}{month}{day}}}%
+ {\usebibmacro{year}%
+ \newunit\newblock
+ \mkbibdatelong{}{month}{day}}}%
+ \renewbibmacro*{labeltitle}{\usebibmacro{labeltitle:common}}%
+ \renewbibmacro*{authoryearlabel}{}%
+ \setlength{\labelauthoryearsep}{0pt}%
+}
+
+\def\bbx@opt@mergedate@minimum{%
+ \renewbibmacro*{labelyear+extradate}{%
+ \blx@gost@ifneedsdate{\usebibmacro{cite:labelyear+extras}{parens}}{}}%
+ %\renewcommand*{\labelnamepunct}{\newunitpunct}
+ \renewbibmacro*{date}{%
+ \blx@gost@ifneedsdate
+ {\ifthenelse{\iffieldundef{extradate}\AND\iffieldundef{extratitleyear}}
+ {}
+ {\usebibmacro{printdate}{}}}
+ {\usebibmacro{printdate}{}}}%
+ \renewbibmacro*{year}{%
+ \blx@gost@ifneedsdate
+ {\ifthenelse{\iffieldundef{extradate}\AND\iffieldundef{extratitleyear}}
+ {}
+ {\usebibmacro{printyear}{}}}
+ {\usebibmacro{printyear}{}}}%
+ \renewbibmacro*{jour:date}{%
+ \blx@gost@ifneedsdate
+ {\ifthenelse{\iffieldundef{extradate}\AND\iffieldundef{extratitleyear}}
+ {}
+ {\usebibmacro{year}%
+ \newunit\newblock
+ \mkbibdatelong{}{month}{day}}}%
+ {\usebibmacro{year}%
+ \newunit\newblock
+ \mkbibdatelong{}{month}{day}}}%
+ \renewbibmacro*{labeltitle}{\usebibmacro{labeltitle:common}}%
+ \renewbibmacro*{authoryearlabel}{}%
+ \setlength{\labelauthoryearsep}{0pt}%
+}
+
+\def\bbx@opt@mergedate@false{%
+ \renewbibmacro*{labelyear+extradate}{%
+ \blx@gost@ifneedsdate{\usebibmacro{cite:labelyear+extras}{parens}}{}}%
+ %\renewcommand*{\labelnamepunct}{\newunitpunct}
+ \renewbibmacro*{date}{\usebibmacro{printdate}{}}%
+ \renewbibmacro*{year}{\usebibmacro{printyear}{}}%
+ \renewbibmacro*{labeltitle}{\usebibmacro{labeltitle:common}}%
+ \renewbibmacro*{authoryearlabel}{}%
+ \setlength{\labelauthoryearsep}{0pt}%
+}
+
+\def\bbx@opt@mergedate@goststrict{%
+ \renewbibmacro*{labelyear+extradate}{}%
+ \renewbibmacro*{date}{\usebibmacro{printdate}{}}%
+ \renewbibmacro*{year}{\usebibmacro{printyear}{}}%
+ \renewbibmacro*{labeltitle}{}%
+ \DeclareFieldFormat{extradate}{%
+ \PackageWarning{biblatex-gost}{%
+ Citation \thefield{entrykey} is not unique}}%
+ \DeclareFieldFormat{extratitleyear}{%
+ \PackageWarning{biblatex-gost}{%
+ Citation \thefield{entrykey} is not unique}}%
+ \ExecuteBibliographyOptions{singletitle,uniquebaretitle}%
+ \renewbibmacro*{authoryearlabel}{}%
+ \setlength{\labelauthoryearsep}{0pt}%
+}
+
+\def\bbx@opt@mergedate@gostletter{%
+ \renewbibmacro*{labelyear+extradate}{}%
+ \renewbibmacro*{date}{\usebibmacro{printdate}{}\usebibmacro{cite:extras}}%
+ \renewbibmacro*{year}{\usebibmacro{printyear}{}\usebibmacro{cite:extras}}%
+ \renewbibmacro*{labeltitle}{}%
+ \renewbibmacro*{authoryearlabel}{}%
+ \setlength{\labelauthoryearsep}{0pt}%
+}
+
+\def\bbx@opt@mergedate@gostlabel{%
+ \renewbibmacro*{labelyear+extradate}{}%
+ \renewbibmacro*{date}{\usebibmacro{printdate}{}}%
+ \renewbibmacro*{year}{\usebibmacro{printyear}{}}%
+ \renewbibmacro*{labeltitle}{}%
+ \renewbibmacro*{heading}{}%
+ \renewbibmacro*{authoryearlabel}{%
+ \mkbibbrackets{%
+ \iffieldundef{shorthand}
+ {\iffieldundef{heading}
+ {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
+ {\ifnameundef{labelname}
+ {% no labelname
+ \iffieldundef{label}
+ {% no label, so print labeltitle (always present)
+ \blx@gost@ifneedsdate
+ {\printtext[citetitle]{\printfield[titlecase]{labeltitle}}
+ \setunit{\nameyeardelim}%
+ \usebibmacro{cite:labelyear+extras}{}}
+ {\printtext[citetitle]{\printfield[titlecase]{labeltitle}}}}
+ {% label exists, print it
+ \usebibmacro{cite:label+volume+parts}}}%
+ {% labelname, no labelyear
+ \usebibmacro{cite:labelname+volume+parts}{}}}%
+ {% both labelname, labelyear exist
+ \blx@gost@ifneedsdate
+ {\usebibmacro{cite:labelname+volume+parts}{}%
+ \setunit{\nameyeardelim}%
+ \usebibmacro{cite:labelyear+extras}{}}%
+ {\usebibmacro{cite:labelname+volume+parts}{}}}}
+ {\usebibmacro{cite:heading}{bibhyperref}%
+ % \iffieldundef{labelyear}
+ % {}
+ % {\setunit{\nameyeardelim}%
+ % \usebibmacro{cite:labelyear+extras}{bibhyperref}}
+ }}%
+ {\usebibmacro{cite:shorthand}}}}%
+ \setlength{\biblabelsep}{.5em}%
+ \setlength{\labelauthoryearsep}{\biblabelsep}%
+}
+
+\ExecuteBibliographyOptions{labeldateparts,labeltitleyear,sorting=nyt,pagetracker,
+ mergedate=gostletter,dropdates=false,
+ bibisbn,biburl,bibdoi,bibeprint}
+
+\DeclareFieldFormat{shorthandwidth}{#1}
+\setlength{\bibitemsep}{0pt}
+
+\defbibenvironment{bibliography}
+ {\list
+ {\usebibmacro{authoryearlabel}}
+ {\setlength{\leftmargin}{\bibhang}%
+ \setlength{\labelwidth}{0pt}
+ \setlength{\labelsep}{\labelauthoryearsep}%
+ \setlength{\itemindent}{-\leftmargin}
+ \addtolength{\itemindent}{\labelsep}
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}}
+ {\endlist}
+ {\item}
+
+\defbibenvironment{shorthand}
+ {\list
+ {\printfield[shorthandwidth]{shorthand}}
+ {\setlength{\labelwidth}{\shorthandwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \renewcommand*{\makelabel}[1]{##1\hss}}}
+ {\endlist}
+ {\item}
+
+\renewbibmacro*{author}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\iftoggle{bbx:gostbibliography}
+ {\printnames[heading][1-1]{author}}
+ {\printnames[heading]{author}}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{authorstrg}%
+ \setunit*{\addspace}}
+ {\global\undef\bbx@lasthash%
+ \usebibmacro{labeltitle}%
+ \setunit*{\addspace}}%
+ \usebibmacro{labelyear+extradate}}
+
+
+\renewbibmacro*{editor}{%
+ \usebibmacro{bbx:editor}{editorstrg}}
+\renewbibmacro*{editor+others}{%
+ \usebibmacro{bbx:editor}{editor+othersstrg}}
+\renewbibmacro*{bbx:editor}[1]{%
+ \ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\printnames[heading]{editor}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{#1}%
+ \clearname{editor}%
+ \setunit*{\addspace}}%
+ {\global\undef\bbx@lasthash%
+ \usebibmacro{labeltitle}%
+ \setunit*{\addspace}}%
+ \usebibmacro{labelyear+extradate}}
+
+\renewbibmacro*{translator}{%
+ \usebibmacro{bbx:translator}{translatorstrg}}
+\renewbibmacro*{translator+others}{%
+ \usebibmacro{bbx:translator}{translator+othersstrg}}
+\renewbibmacro*{bbx:translator}[1]{%
+ \ifboolexpr{
+ test \ifusetranslator
+ and
+ not test {\ifnameundef{translator}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\printnames[heading]{translator}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{#1}%
+ \clearname{translator}%
+ \setunit*{\addspace}}%
+ {\global\undef\bbx@lasthash%
+ \usebibmacro{labeltitle}%
+ \setunit*{\addspace}}%
+ \usebibmacro{labelyear+extradate}}
+
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx
new file mode 100644
index 0000000000..803c33c397
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{gost-footnote-min.bbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireBibliographyStyle{gost-inline-min}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx
new file mode 100644
index 0000000000..7d6e5e2bba
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{gost-footnote.bbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireBibliographyStyle{gost-inline}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx
new file mode 100644
index 0000000000..b43cfdd835
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx
@@ -0,0 +1,10 @@
+\ProvidesFile{gost-inline-min.bbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireBibliographyStyle{gost-inline}
+\AtEveryBibitem{%
+ \usebibmacro{setup:min}}
+
+\ExecuteBibliographyOptions{bibisbn=false,biburl=false,bibdoi=false,bibeprint=false}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx
new file mode 100644
index 0000000000..a3832f1f04
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx
@@ -0,0 +1,46 @@
+\ProvidesFile{gost-inline.bbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireBibliographyStyle{gost-standard}
+
+\ExecuteBibliographyOptions{labeldateparts,sorting=ntvy,pagetracker,dashed=false,
+ bibisbn,biburl,bibdoi,bibeprint}
+
+\DeclareFieldFormat{shorthandwidth}{#1}
+\setlength{\bibitemsep}{0pt}
+
+\defbibenvironment{bibliography}
+ {\list
+ {}
+ {\setlength{\leftmargin}{\bibhang}%
+ \setlength{\itemindent}{-\leftmargin}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}}
+ {\endlist}
+ {\item}
+
+\defbibenvironment{shorthand}
+ {\list
+ {\printfield[shorthandwidth]{shorthand}}
+ {\setlength{\labelwidth}{\shorthandwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \renewcommand*{\makelabel}[1]{##1\hss}}}
+ {\endlist}
+ {\item}
+
+\InitializeBibliographyStyle{%
+ \global\undef\bbx@lasthash}
+
+\newbibmacro*{labeltitle}{%
+ \iffieldundef{label}
+ {\iffieldundef{shorttitle}
+ {\printtext[title]{\printfield[titlecase]{title}}%
+ \clearfield{title}}
+ {\printtext[title]{\printfield[titlecase]{shorttitle}}}}
+ {\printfield{label}}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx
new file mode 100644
index 0000000000..cfaae36c03
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx
@@ -0,0 +1,10 @@
+\ProvidesFile{gost-numeric-min.bbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireBibliographyStyle{gost-numeric}
+\AtEveryBibitem{%
+ \usebibmacro{setup:min}}
+
+\ExecuteBibliographyOptions{bibisbn=false,biburl=false,bibdoi=false,bibeprint=false}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx
new file mode 100644
index 0000000000..17a8a6cea4
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx
@@ -0,0 +1,55 @@
+\ProvidesFile{gost-numeric.bbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireBibliographyStyle{gost-standard}
+\ExecuteBibliographyOptions{labelnumber,bibisbn,biburl,bibdoi,bibeprint}
+
+\providebool{bbx:subentry}
+
+\DeclareBibliographyOption{subentry}[true]{%
+ \setbool{bbx:subentry}{#1}}
+
+\DeclareFieldFormat{bibentrysetcount}{\mkbibparens{\mknumalph{#1}}}
+\DeclareFieldFormat{labelnumberwidth}{#1\addperiod}
+\DeclareFieldFormat{shorthandwidth}{\mkbibbrackets{#1}}
+
+\defbibenvironment{bibliography}
+ {\list
+ {\printtext[labelnumberwidth]{%
+ \printfield{labelprefix}%
+ \printfield{labelnumber}}}
+ {\setlength{\labelwidth}{\labelnumberwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}%
+ \renewcommand*{\makelabel}[1]{\hss##1}}
+ {\endlist}
+ {\item}
+
+\defbibenvironment{shorthand}
+ {\list
+ {\printfield[shorthandwidth]{shorthand}}
+ {\setlength{\labelwidth}{\shorthandwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \renewcommand*{\makelabel}[1]{\hss##1}}}
+ {\endlist}
+ {\item}
+
+\DeclareBibliographyDriver{set}{%
+ \entryset
+ {\ifbool{bbx:subentry}
+ {\printfield[bibentrysetcount]{entrysetcount}%
+ \printunit*{\addnbspace}}
+ {}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{setpageref}%
+ \finentry}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx
new file mode 100644
index 0000000000..4e0ecfd47a
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx
@@ -0,0 +1,2540 @@
+\ProvidesFile{gost-standard.bbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\def\bbx@gost@date{2018/02/20}
+\def\bbx@gost@version{1.17}
+
+\@ifpackagelater{biblatex}{2016/12/06}
+ {}
+ {\PackageError{biblatex}
+ {Outdated 'biblatex' package}
+ {This version of 'biblatex-gost' requires biblatex v3.8 or
+ later.\MessageBreak You are using: '\csuse{ver@biblatex.sty}'.\MessageBreak
+ This is a fatal error. I'm aborting now.}%
+ \endinput}
+
+\AtEndOfPackage{%
+\ifboolexpr{
+ test {\ifdefstring{\blx@opt@movenames}{true}}
+ and
+ ( not test {\ifnumequal{\blx@maxbibnames}{3}}
+ or
+ not test {\ifnumequal{\blx@maxcitenames}{3}}
+ )
+ }
+ {\PackageWarningNoLine{biblatex-gost}{You set maxbibnames or maxcitenames\MessageBreak
+ different from their default value 3.\MessageBreak
+ Make sure that sorting works as expected}}
+ {}}
+
+\RequireBiber[3] % strictly required
+
+\blx@inputonce{biblatex-gost.def}{biblatex-gost generic definitions}{}{}{}{}
+
+\newtoggle{bbx:isbn}
+\newtoggle{bbx:url}
+\newtoggle{bbx:doi}
+\newtoggle{bbx:eprint}
+\newtoggle{cbx:isbn}
+\newtoggle{cbx:url}
+\newtoggle{cbx:doi}
+\newtoggle{cbx:eprint}
+\newtoggle{bbx:related:bib}
+\newtoggle{bbx:related:cite}
+\newtoggle{bbx:gost:otherlangs}
+\newtoggle{bbx:gostbibliography}
+\togglefalse{bbx:gostbibliography}
+
+% OPTIONS
+
+\DeclareBibliographyOption{otherlangs}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{bbx:gost:otherlangs}}
+ {\togglefalse{bbx:gost:otherlangs}}
+ }
+
+\newbibmacro*{bbx:savehash}{%
+ \savefield{fullhash}{\bbx@lasthash}}
+\DeclareBibliographyOption{dashed}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{pagetracker}%
+ \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}}
+ {\renewbibmacro*{bbx:savehash}{}}}
+
+% block punctuation = emdash / space
+% \bibsentence is for vol,etc.
+\DeclareBibliographyOption{blockpunct}[emdash]{%
+ \ifstrequal{#1}{emdash}
+ {\renewcommand*{\newblockpunct}{\addperiod\addnbspace\textemdash\space\bibsentence}}
+ {\renewcommand*{\newblockpunct}{\addperiod\space\bibsentence}}
+}
+
+\DeclareBibliographyOption{isbn}[true]{%
+ \global\settoggle{bbx:isbn}{#1}%
+ \global\settoggle{cbx:isbn}{#1}}
+\DeclareBibliographyOption{url}[true]{%
+ \global\settoggle{bbx:url}{#1}%
+ \global\settoggle{cbx:url}{#1}}
+\DeclareBibliographyOption{doi}[true]{%
+ \global\settoggle{bbx:doi}{#1}%
+ \global\settoggle{cbx:doi}{#1}}
+\DeclareBibliographyOption{eprint}[true]{%
+ \global\settoggle{bbx:eprint}{#1}%
+ \global\settoggle{cbx:eprint}{#1}}
+\DeclareBibliographyOption{bibisbn}[true]{%
+ \global\settoggle{bbx:isbn}{#1}}
+\DeclareBibliographyOption{biburl}[true]{%
+ \global\settoggle{bbx:url}{#1}}
+\DeclareBibliographyOption{bibdoi}[true]{%
+ \global\settoggle{bbx:doi}{#1}}
+\DeclareBibliographyOption{bibeprint}[true]{%
+ \global\settoggle{bbx:eprint}{#1}}
+\DeclareBibliographyOption{citeisbn}[true]{%
+ \global\settoggle{cbx:isbn}{#1}}
+\DeclareBibliographyOption{citeurl}[true]{%
+ \global\settoggle{cbx:url}{#1}}
+\DeclareBibliographyOption{citedoi}[true]{%
+ \global\settoggle{cbx:doi}{#1}}
+\DeclareBibliographyOption{citeeprint}[true]{%
+ \global\settoggle{cbx:eprint}{#1}}
+\DeclareBibliographyOption{related}[true]{%
+ \ifcsdef{bbx@opt@related@#1}
+ {\csuse{bbx@opt@related@#1}}
+ {\PackageError{biblatex}
+ {Invalid option 'related=#1'}
+ {Valid values are 'true', 'false', 'bib', and 'cite'.}}}
+
+\def\bbx@opt@related@true{%
+ \toggletrue{bbx:related:bib}%
+ \toggletrue{bbx:related:cite}}
+
+\def\bbx@opt@related@false{%
+ \togglefalse{bbx:related:bib}%
+ \togglefalse{bbx:related:cite}}
+
+\def\bbx@opt@related@bib{%
+ \toggletrue{bbx:related:bib}%
+ \togglefalse{bbx:related:cite}}
+
+\def\bbx@opt@related@cite{%
+ \togglefalse{bbx:related:bib}%
+ \toggletrue{bbx:related:cite}}
+
+\newcommand*{\blx@gost@defaultorder}{vbpi}
+\DeclareBibliographyOption{volsorder}[vbpi]{%
+ \renewcommand*{\blx@gost@defaultorder}{#1}}
+
+\DeclareBibliographyOption{movenames}[true]{%
+ \gdef\blx@opt@movenames{#1}}
+
+\newtoggle{bbx:gost:doublevols}
+\DeclareBibliographyOption{doublevols}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{bbx:gost:doublevols}}
+ {\togglefalse{bbx:gost:doublevols}}}
+
+\AtEndOfPackage{%
+ \ifdefstring{\blx@opt@movenames}{true}
+ {\DeclareStyleSourcemap{
+ \maps[datatype=bibtex]{
+ \map[overwrite]{
+ \step[fieldsource=author,
+ match=\regexp{(.+\s+and\s+){3,}|and\s+others\s*$},
+ final]
+ \step[fieldsource=options,
+ match=\regexp{(.+)},
+ replace=\regexp{useauthor=false,$1}]
+ \step[fieldsource=options,
+ match=\regexp{^$},
+ replace=\regexp{useauthor=false}]
+ }
+ \map{
+ \step[fieldsource=author,
+ match=\regexp{(.+\s+and\s+){3,}|and\s+others\s*$},
+ final]
+ \step[fieldset=options, fieldvalue={useauthor=false}]
+ }
+ \map[overwrite]{
+ \step[fieldsource=editor,
+ match=\regexp{(.+\s+and\s+){3,}|and\s+others\s*$},
+ final]
+ \step[fieldsource=options,
+ match=\regexp{(.+)},
+ replace=\regexp{useeditor=false,$1}]
+ \step[fieldsource=options,
+ match=\regexp{^$},
+ replace=\regexp{useeditor=false}]
+ }
+ \map{
+ \step[fieldsource=editor,
+ match=\regexp{(.+\s+and\s+){3,}|and\s+others\s*$},
+ final]
+ \step[fieldset=options, fieldvalue={useeditor=false}]
+ }
+ \map{
+ \step[typesource=candthesis,typetarget=thesis, final]
+ \step[fieldset=type, fieldvalue=phdthesis]
+ }
+ \map{
+ \step[typesource=docthesis, typetarget=thesis, final]
+ \step[fieldset=type, fieldvalue=docthesis]
+ }
+ \map[overwrite]{
+ \pertype{patent}
+ \step[fieldsource=options, final]
+ \step[fieldset=options, fieldvalue={useauthor=false,}]
+ \step[fieldset=options, origfieldval, append]
+ }
+ \map{
+ \pertype{patent}
+ \step[fieldset=options, fieldvalue={useauthor=false}]
+ \step[fieldsource=authortype, fieldtarget=authorcountry]
+ \step[fieldsource=reqnumber, fieldtarget=requestnumber]
+ \step[fieldsource=publdate, fieldtarget=publicationdate]
+ \step[fieldsource=prdate, fieldtarget=prioritydate]
+ \step[fieldsource=prnumber, fieldtarget=prioritynumber]
+ \step[fieldsource=prcountry, fieldtarget=prioritycountry]
+ }
+ \map{
+ \pertype{thesis}
+ \pertype{masterthesis}
+ \pertype{phdthesis}
+ \pertype{candthesis}
+ \pertype{docthesis}
+ \step[fieldsource=major, fieldtarget=science]
+ \step[fieldsource=majorcode, fieldtarget=specialitycode]
+ \step[fieldsource=number, fieldtarget=specialitycode]
+ }
+ }
+ }
+ }
+ {\DeclareStyleSourcemap{
+ \maps[datatype=bibtex]{
+ \map{
+ \step[typesource=candthesis,typetarget=thesis, final]
+ \step[fieldset=type, fieldvalue=phdthesis]
+ }
+ \map{
+ \step[typesource=docthesis, typetarget=thesis, final]
+ \step[fieldset=type, fieldvalue=docthesis]
+ }
+ \map[overwrite]{
+ \pertype{patent}
+ \step[fieldsource=options, final]
+ \step[fieldset=options, fieldvalue={useauthor=false,}]
+ \step[fieldset=options, origfieldval, append]
+ }
+ \map{
+ \pertype{patent}
+ \step[fieldset=options, fieldvalue={useauthor=false}]
+ \step[fieldsource=authortype, fieldtarget=authorcountry]
+ \step[fieldsource=reqnumber, fieldtarget=requestnumber]
+ \step[fieldsource=publdate, fieldtarget=publicationdate]
+ \step[fieldsource=prdate, fieldtarget=prioritydate]
+ \step[fieldsource=prnumber, fieldtarget=prioritynumber]
+ \step[fieldsource=prcountry, fieldtarget=prioritycountry]
+ }
+ \map{
+ \pertype{thesis}
+ \pertype{masterthesis}
+ \pertype{phdthesis}
+ \pertype{candthesis}
+ \pertype{docthesis}
+ \step[fieldsource=major, fieldtarget=science]
+ \step[fieldsource=majorcode, fieldtarget=specialitycode]
+ \step[fieldsource=number, fieldtarget=specialitycode]
+ }
+ }
+ }
+ }
+ }
+
+\ExecuteBibliographyOptions{
+ useeditor=false,
+ usetranslator=false,
+ maxnames=3,
+ minnames=1,
+ dashed=false,
+ movenames=true,
+ giveninits=true,
+ volsorder=vbpi,
+ related=true,
+ alldates=short,
+ eventdate=comp,
+ blockpunct=emdash,
+ doublevols=true,
+ otherlangs=true,
+}
+
+\newbibmacro*{cbx:bookibid:check}[2]{#2}
+
+% FORMATS
+
+\renewcommand*{\mkbibacro}[1]{\MakeUppercase{#1}}
+\DeclareFieldFormat{isbn}{\mkbibacro{ISBN} #1}
+\DeclareFieldFormat{isrn}{\mkbibacro{ISRN} #1}
+\DeclareFieldFormat{issn}{\mkbibacro{ISSN} #1}
+\DeclareFieldFormat*{title}{#1}
+\DeclareFieldFormat{booktitle}{#1}
+\DeclareFieldFormat{journaltitle}{#1}
+\DeclareFieldFormat{issuetitle}{#1}
+\DeclareFieldFormat{maintitle}{#1}
+
+% volume etc
+%
+% helper for printing volume/book/number/part/issue
+% [prefix] <value> <volume-string>
+\newcommand{\printvol}[3][]{%
+ \ifnumcomp{\rangelen{#3}}{=}{2}
+ {\iftoggle{bbx:gost:doublevols}{\def\bibrangedash{\doublevolsdelim}}{}}
+ {}%
+ \iffieldnums{#3}
+ {\ifbibstring{#3}
+ {\bibstring{#3}\addabbrvspace#2}
+ {#1#2}}
+ {\ifcapital{\MakeCapital{#2}}{#2}\isdot}}
+\DeclareFieldFormat*{volume}{\printvol{#1}{volume}}
+\DeclareFieldFormat[article,periodical]{volume}{%
+ \ifnumcomp{\rangelen{volume}}{=}{2}{%
+ \iftoggle{bbx:gost:doublevols}{\def\bibrangedash{\doublevolsdelim}}{}%
+ }{}%
+ \ifbibstring{volume}
+ {\bibstring{jourvol}\addabbrvspace#1}
+ {#1}}
+\DeclareFieldFormat*{book}{\printvol{#1}{book}}
+\DeclareFieldFormat*{part}{\printvol{#1}{part}}
+\DeclareFieldFormat*{issue}{\printvol{#1}{issue}}
+\DeclareFieldFormat[article,periodical]{issue}{\printvol[\unspace\adddot]{#1}{issue}}
+\DeclareFieldFormat*{number}{\printvol[\unspace\adddot]{#1}{number}}
+% \DeclareFieldFormat*{number}{\printvol{#1}{number}}
+\DeclareFieldFormat[patent]{number}{#1}%
+\DeclareFieldFormat{requestnumber}{%
+ \ifbibstring{number}
+ {\bibsstring{number}\addnbspace#1}
+ {#1}}%
+\DeclareFieldFormat{seriesnumber}{#1}%
+
+% volumes etc, involumes etc
+%
+\newbibmacro*{volumes/parts/books/issues}[2]{%
+ \iffieldnum{#1}
+ {\ifbibstring{#1}
+ {#2\addnbspace\bibsstring{#1}}
+ {#2}}
+ {\ifcapital{\MakeCapital{#2}}{#2}}}
+\DeclareFieldFormat{volumes}{\usebibmacro{volumes/parts/books/issues}{volumes}{#1}}
+\DeclareFieldFormat{parts}{\usebibmacro{volumes/parts/books/issues}{parts}{#1}}
+\DeclareFieldFormat{books}{\usebibmacro{volumes/parts/books/issues}{books}{#1}}
+\DeclareFieldFormat{issues}{\usebibmacro{volumes/parts/books/issues}{issues}{#1}}
+\newbibmacro*{in+}[2]{%
+ \iffieldnum{#1}
+ {\ifbibstring{involumes}
+ {\bibstring{involumes}\addabbrvspace}
+ {}%
+ #2\addnbspace\bibsstring{#1}}
+ {\ifcapital{\MakeCapital{#2}}{#2}}}
+\DeclareFieldFormat{involumes}{\usebibmacro{in+}{volumes}{#1}}
+\DeclareFieldFormat{inbooks}{\usebibmacro{in+}{books}{#1}}
+\DeclareFieldFormat{inparts}{\usebibmacro{in+}{parts}{#1}}
+\DeclareFieldFormat{inissues}{\usebibmacro{in+}{issues}{#1}}
+
+% dates
+%
+\DeclareFieldFormat{date}{%
+ \iffieldundef{endyear}
+ {#1}
+ {\iffieldequalstr{endyear}{}
+ {#1\mbox{~~~~}}
+ {#1}}}
+\DeclareFieldFormat{update}{%
+ \ifbibstring{updated}
+ {\bibstring{updated}\addcolon\space#1}
+ {Updated\addcolon\space#1}}
+\DeclareFieldFormat{publicationdate}{%
+ \ifbibstring{published}
+ {\bibstring{published}\addspace#1}
+ {#1}}
+\DeclareFieldFormat{requestdate}{% = date (in @patent)
+ \ifbibstring{requested}
+ {\bibstring{requested}\addspace#1}
+ {#1}}
+\DeclareFieldFormat{prioritydate}{%
+ \ifbibstring{priority}
+ {\bibstring{priority}\addspace#1}
+ {#1}}
+\DeclareFieldFormat{systemreq}{%
+ \ifbibstring{systemreq}
+ {\bibstring{systemreq}\addcolon\space#1}
+ {Sys. requirements\addcolon\space#1}}
+\DeclareListFormat{semicolondelim}{%
+ \ifnumgreater{\value{listcount}}{\value{liststart}}
+ {\ifnumless{\value{listcount}}{\value{liststop}}
+ {\addsemicolondelim}
+ {\ifnumequal{\value{listcount}}{\value{liststop}}
+ {\addsemicolondelim}
+ {}}}
+ {}%
+ #1\isdot}
+\DeclareFieldFormat{edition}{%
+ \iffieldnum{edition}
+ {\mkbibordedition{#1}\addnbspace\bibstring{edition}}
+ {\ifcapital{\MakeCapital{#1}}{#1}\isdot}}
+\DeclareFieldFormat[thesis]{type}{%
+ \ifbibstring{#1}{\biblstring{#1}%
+ \setunit*{\addspace}%
+ \printfield{science}}%
+ {#1}}
+\DeclareFieldFormat{prioritycountry}{%
+ \ifbibxstring{\thefield{prioritycountry}}
+ {\bibcpstring{\thefield{prioritycountry}}}
+ {#1}}
+\DeclareFieldFormat{bracketsalways}{[#1]}
+
+\DeclareNameAlias{default}{given-family}
+
+\DefineBibliographyExtras{french}{\restorecommand\mkbibnamefamily}
+
+% Format for names (authors, editors, translators) used as headings.
+% It is defined separately, because \mkbibnamefamily, etc. cannot be
+% used, since they affect all names, not only headings
+\DeclareNameFormat{heading}{%
+ \nameparts{#1}%
+ \ifgiveninits
+ {\usebibmacro{headingname:family-given}
+ {\namepartfamily}
+ {\namepartgiveni}
+ {\namepartprefix}
+ {\namepartsuffix}}
+ {\usebibmacro{headingname:family-given}
+ {\namepartfamily}
+ {\namepartgiven}
+ {\namepartprefix}
+ {\namepartsuffix}}%
+ \iftoggle{bbx:gostbibliography}
+ {}
+ {\usebibmacro{name:andothers}}}
+\newbibmacro*{headingname:family-given}[4]{%
+ \ifuseprefix
+ {\usebibmacro{name:delim}{#3#1}%
+ \usebibmacro{name:hook}{#3#1}%
+ \ifdefvoid{#3}{}{%
+ \ifcapital
+ {\mkbibhdnameprefix{\MakeCapital{#3}}\isdot}
+ {\mkbibhdnameprefix{#3}\isdot}%
+ \ifprefchar{}{\bibnamedelimc}}%
+ \mkbibhdnamefamily{#1}\isdot
+ \ifdefvoid{#4}{}{\bibnamedelimd\mkbibhdnamesuffix{#4}\isdot}%
+ \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibhdnamegiven{#2}\isdot}}
+ {\usebibmacro{name:delim}{#1}%
+ \usebibmacro{name:hook}{#1}%
+ \mkbibhdnamefamily{#1}\isdot
+ \ifdefvoid{#4}{}{\bibnamedelimd\mkbibhdnamesuffix{#4}\isdot}%
+ \ifboolexpe{%
+ test {\ifdefvoid{#2}}
+ and
+ test {\ifdefvoid{#3}}}
+ {}
+ {\revsdnamepunct}%
+ \ifdefvoid{#2}{}{\bibnamedelimd\mkbibhdnamegiven{#2}\isdot}%
+ \ifdefvoid{#3}{}{\bibnamedelimd\mkbibhdnameprefix{#3}\isdot}}}
+\newcommand*{\mkgostheading}[1]{\mkbibemph{#1}}%\nocorr}}
+\DeclareFieldFormat{heading}{%
+ \mkgostheading{#1}\addperiod\space}
+\newcommand*{\mkbibhdnamefamily}[1]{\mkgostheading{#1}}
+\newcommand*{\mkbibhdnamegiven}[1]{\mkbibhdnamefamily{#1}}
+\newcommand*{\mkbibhdnameprefix}[1]{\mkbibhdnamefamily{#1}}
+\newcommand*{\mkbibhdnamesuffix}[1]{\mkbibhdnamefamily{#1}}
+
+\renewcommand*{\revsdnamepunct}{\addspace}%
+
+\DeclareNameFormat{family-given:full}{%
+ \begingroup%
+ \renewcommand*{\revsdnamepunct}{\addspace}%
+ \nameparts{#1}%
+ \usebibmacro{name:family-given}
+ {\namepartprefix}
+ {\namepartfamily}
+ {\namepartgiven}
+ {\namepartsuffix}
+ \endgroup}
+
+% FORMATTING COMMANDS
+
+\newbibmacro*{//}{%
+ \nopunct\printtext{\addnbspace\mbox{//}\addspace}}
+\renewcommand*{\labelnamepunct}{\addperiod\space}
+\renewcommand*{\intitlepunct}{\addspace}
+\renewcommand*{\finalnamedelim}{\addcomma\space}
+\renewcommand*{\finallistdelim}{\addcomma\space}
+\renewcommand*{\bibpagespunct}{\addperiod\space}
+\renewcommand*{\subtitlepunct}{\addcolondelim}
+\newcommand*{\respdelim}{\addnbspace/\space}% delimiter before "credits"
+\newcommand*{\resppunct}{\addsemicolondelim}% between "credits" items
+\newcommand*{\specialitydelim}{\addnbspace\textemdash\space}% between specialitycode and speciality
+\newcommand{\doublevolsdelim}{\slash}% between double volumes/numbers/...
+
+% auxillary macros for volsorder handling
+\newcounter{blx@gost@pointer}%
+\newcommand*{\blx@gost@endofstring}{\@\@\@\@\@} % end of string = \\\
+\newcommand*{\blx@gost@setunit}{\newunit}
+
+\ifboolexpr{%
+ test {\@ifpackageloaded{babel}}
+ or
+ test {\@ifpackageloaded{polyglossia}}
+ }
+ {\edef\gostmedialanguage{\csname bbl@main@language\endcsname}%
+ \newcommand*{\select@medialanguage}{\select@language{\gostmedialanguage}}}
+ {\edef\gostmedialanguage{russian}%
+ \newcommand*{\select@medialanguage}{}}
+
+% macros and formats for printing origlanguage and bookoriglanguage.
+% made special to simplify making them lists
+
+\@ifpackagelater{biblatex}{2016/12/06} %biblatex 3.8+
+{
+% \DeclareListFormat{origlanguage}{%
+% \bibstring{from#1}}
+
+% used for printing origlanguage and bookoriglanguage
+\newcommand*{\lbx@gost@lfromlang}[1]{%
+ \iflistundef{#1}
+ {\unspace}
+ {\printlist[lfromoriglanguage]{#1}}}
+\newcommand*{\lbx@gost@sfromlang}[1]{%
+ \iflistundef{#1}
+ {\unspace}
+ {\printlist[sfromoriglanguage]{#1}}}
+% \renewcommand*{\lbx@lfromlang}{\lbx@gost@lfromlang{origlanguage}}
+% \renewcommand*{\lbx@sfromlang}{\lbx@gost@sfromlang{origlanguage}}
+\newcommand*{\blx@gost@iflangundef}[3]{\iflistundef{#1}{#2}{#3}}
+\newcommand*{\blx@gost@iflangsequal}[4]{\iflistsequal{#1}{#2}{#3}{#4}}}
+{
+\DeclareFieldFormat{origlanguage}{%
+ \bibstring{from#1}}
+
+\newcommand*{\lbx@gost@lfromlang}[1]{%
+ \iffieldundef{#1}
+ {\unspace}
+ {\printfield[origlanguage]{#1}}}
+\newcommand*{\lbx@gost@sfromlang}[1]{%
+ \iffieldundef{#1}
+ {\unspace}
+ {\printfield[origlanguage]{#1}}}
+% \renewcommand*{\lbx@lfromlang}{\lbx@gost@lfromlang{origlanguage}}
+% \renewcommand*{\lbx@sfromlang}{\lbx@gost@sfromlang{origlanguage}}
+\newcommand*{\blx@gost@iflangundef}[3]{\iffieldundef{#1}{#2}{#3}}
+\newcommand*{\blx@gost@iflangsequal}[4]{\iffieldsequal{#1}{#2}{#3}{#4}}
+}
+
+% clear \newblock in citations, not in biblists
+\AtUsedriver*{%
+ \ifcitation{\let\newblock\relax}{}%
+ \let\finentry\blx@finentry@usedrv
+ \let\abx@macro@bibindex\@empty
+ \let\abx@macro@pageref\@empty}
+
+\newbibmacro*{begentry}{%
+ \csundef{savedclearedcredits}%
+ \csundef{savedclearededitor}%
+ \csundef{savedclearedtranslator}}
+\newbibmacro*{finentry}{\finentry}
+%
+%----------- Drivers ----------------
+%
+\DeclareBibliographyDriver{article}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{author/translator+others}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{title}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{byauthor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{bytranslator+others}%
+ \setunit{\space}%
+ \iffieldundef{journaltitle} % no journaltitle means electronic publication
+ {\newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \usebibmacro{jour:date}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}}
+ {\usebibmacro{//}%
+ \usebibmacro{cbx:bookibid:check}
+ {\bibsentence\printtext{%
+ \bibhyperlink{\csuse{%
+ cbx@\iffootnote{f}{t}@bookref@%
+ \iffieldundef{crossref}
+ {\iffieldundef{xref}
+ {}
+ {\thefield{xref}}}
+ {\thefield{crossref}}}}
+ {\bibstring[\mkibid]{ibidem}}}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}}
+ {\usebibmacro{journal}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{jour:credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{byeditor}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \printlist{location}% ???
+ \setunit*{\addcomma\space}%
+ \usebibmacro{jour:date}%
+ \newunit\newblock
+ \usebibmacro{jour:volume+parts+issuetitle}%
+ \newunit\newblock
+ \printfield{pages}%
+ \newunit\newblock
+ \iffieldundef{series}
+ {}
+ {\printtext{(\printfield{series})}}%
+ \newunit\newblock
+ \usebibmacro{issn}%
+ \newunit\newblock}%
+ \usebibmacro{doi+eprint+url+note}}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{book}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{maintitle+volumes+parts+title}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{byauthor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{byeditor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{bytranslator+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \setunit*{\respdelim}%
+ \printlist[semicolondelim]{editioncredits}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \usebibmacro{isbn}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{booklet}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{author/editor}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{title}%
+ \setunit{\subtitlepunct}%
+ \printfield{type}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{byauthor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{byeditor}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \usebibmacro{location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit
+ \printfield{howpublished}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{collection}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{editor+others}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{maintitle+volumes+parts+title}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{byeditor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{bytranslator+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \setunit*{\respdelim}%
+ \printlist[semicolondelim]{editioncredits}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \usebibmacro{isbn}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{inbook}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{author/translator+others}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{title}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{byauthor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{bytranslator+others}%
+ \setunit{\space}%
+ \usebibmacro{//}%
+ \usebibmacro{cbx:bookibid:check}
+ {\bibsentence\printtext{%
+ \bibhyperlink{\csuse{%
+ cbx@\iffootnote{f}{t}@bookref@%
+ \iffieldundef{crossref}
+ {\iffieldundef{xref}
+ {}
+ {\thefield{xref}}}
+ {\thefield{crossref}}}}
+ {\bibstring[\mkibid]{ibidem}}}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}}
+ {\usebibmacro{maintitle+volumes+parts+booktitle}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{book:translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{book:byauthor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{book:credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{book:byeditor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{book:bytranslator+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \setunit*{\respdelim}%
+ \printlist[semicolondelim]{editioncredits}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \usebibmacro{isbn}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{incollection}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{author/translator+others}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{title}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{byauthor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{bytranslator+others}%
+ \setunit{\space}%
+ \usebibmacro{//}%
+ \usebibmacro{cbx:bookibid:check}
+ {\bibsentence\printtext{%
+ \bibhyperlink{\csuse{%
+ cbx@\iffootnote{f}{t}@bookref@%
+ \iffieldundef{crossref}
+ {\iffieldundef{xref}
+ {}
+ {\thefield{xref}}}
+ {\thefield{crossref}}}}
+ {\bibstring[\mkibid]{ibidem}}}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}}
+ {\usebibmacro{maintitle+volumes+parts+booktitle}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{book:translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{book:credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{book:byeditor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{book:bytranslator+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \setunit*{\respdelim}%
+ \printlist[semicolondelim]{editioncredits}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \usebibmacro{isbn}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{inproceedings}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{author/translator+others}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{title}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{byauthor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{bytranslator+others}%
+ \setunit{\space}%
+ \usebibmacro{//}%
+ \usebibmacro{cbx:bookibid:check}
+ {\bibsentence\printtext{%
+ \bibhyperlink{\csuse{%
+ cbx@\iffootnote{f}{t}@bookref@%
+ \iffieldundef{crossref}
+ {\iffieldundef{xref}
+ {}
+ {\thefield{xref}}}
+ {\thefield{crossref}}}}
+ {\bibstring[\mkibid]{ibidem}}}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}}
+ {\usebibmacro{maintitle+volumes+parts+booktitle}%
+ \newunit
+ \usebibmacro{event+venue+date}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{book:translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{book:credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{book:byeditor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{book:bytranslator+others}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \usebibmacro{isbn}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{manual}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{author/editor}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{title}%
+ \setunit{\subtitlepunct}%
+ \printfield{type}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{byauthor}%
+ \setunit*{\resppunct}%
+ \iflistundef{organization}
+ {}
+ {\setrespdelim%
+ \printlist{organization}%
+ \setunit*{\resppunct}}%
+ \usebibmacro{credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{byeditor}%
+ \setunit*{\resppunct}%
+ \newunit\newblock
+ \printfield{edition}%
+ \setunit*{\respdelim}%
+ \printlist[semicolondelim]{editioncredits}%
+ \newunit
+ \printfield{version}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \usebibmacro{isbn}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{misc}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{author/editor}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{title}%
+ \setunit{\subtitlepunct}%
+ \printfield{type}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{byauthor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{credits}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \usebibmacro{organization+location+date}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit
+ \printfield{howpublished}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{online}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{author/editor}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{title}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{byauthor}%
+ \setunit*{\resppunct}%
+ \iflistundef{organization}
+ {}
+ {\setrespdelim%
+ \printlist{organization}%
+ \setunit*{\resppunct}}%
+ \usebibmacro{credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{byeditor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{bytranslator+others}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \usebibmacro{date}%
+ \newunit\newblock
+ \printupdate%
+ \newunit\newblock
+ \printfield{systemreq}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{patent}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{title}%
+ \setunit*{\subtitlepunct}%
+ \printfield{type}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \iflistundef{location}
+ {}
+ {\setunit*{\addspace}%
+ \printlist[][-\value{listtotal}]{location}}%
+ \setunit{\addcolondelim}%
+ \printfield{ipc}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \ifnameundef{author}
+ {}
+ {\setrespdelim%
+ \printnames[byauthor]{author}%
+ \iffieldundef{authorcountry}
+ {}
+ {\setunit*{\addspace}%
+ \printfield[parens]{authorcountry}}%
+ \setunit*{\addsemicolondelim}}%
+ \ifnameundef{holder}
+ {}
+ {\setrespdelim%
+ \usebibmacro{byholder}%
+ \setunit*{\addsemicolondelim}}%
+ \usebibmacro{credits}%
+ \newunit\newblock
+ \printfield{requestnumber}%
+ \ifboolexpr{
+ test {\iffieldundef{year}}
+ and test {\iffieldundef{month}}
+ and test {\iffieldundef{day}}
+ }
+ {}
+ {\setunit*{\addsemicolondelim}%
+ \printtext[requestdate]{\mkbibdateshort{year}{month}{day}}}%
+ \setunit*{\addsemicolondelim}%
+ \printpublicationdate%
+ \setunit*{\addcomma\space}%
+ \printfield{publication}%
+ \setunit*{\addsemicolondelim}%
+ \printlist[semicolondelim]{specdata}%
+ \setunit*{\addsemicolondelim}%
+ \usebibmacro{priority}%
+ \newunit\newblock
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{periodical}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{editor}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{title}
+ \setunit{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{byeditor}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \printlist{location}% ???
+ \setunit*{\addcomma\space}%
+ \usebibmacro{jour:date}%
+ \newunit\newblock
+ \usebibmacro{jour:volume+parts+issuetitle}%
+ \newunit\newblock
+ \iffieldundef{series}
+ {}
+ {\printtext{(\printfield{series})}}%
+ \newunit\newblock
+ \usebibmacro{issn}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{proceedings}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{editor+others}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{maintitle+volumes+parts+title}%
+ \newunit
+ \usebibmacro{event+venue+date}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{credits}%
+ \setunit*{\resppunct}%
+ \usebibmacro{byeditor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{bytranslator+others}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \usebibmacro{isbn}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{report}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{author}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{title}%
+ \setunit{\subtitlepunct}%
+ \printfield{type}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{byauthor}%
+ \setunit*{\resppunct}%
+ \iflistundef{institution}
+ {}
+ {\setrespdelim%
+ \printlist[semicolondelim]{institution}%
+ \setunit*{\resppunct}}%
+ \usebibmacro{credits}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \usebibmacro{location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \usebibmacro{isrn}
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{thesis}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{author}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{thesistitle}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \setrespdelim%
+ \printnames[family-given:full]{author}%
+ \setunit*{\resppunct}%
+ \usebibmacro{credits}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit
+ \usebibmacro{institution+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url+note}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{unpublished}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{heading}%
+ \newunit
+ \usebibmacro{author}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{title}%
+ \setunit*{\addcolondelim}%
+ \usebibmacro{translation}%
+ \def\bbx@gost@respdelim{\setunit{\respdelim}}% ----- Resp starts -----
+ \usebibmacro{byauthor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{credits}%
+ \newunit\newblock
+ \printlist[semicolondelim]{specdata}%
+ \newunit\newblock
+ \usebibmacro{location+date}%
+ \newunit\newblock
+ \usebibmacro{isbn}%
+ \newunit\newblock
+ \usebibmacro{url+urldate+note}
+ \newunit
+ \printfield{howpublished}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{relatedblock}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{shorthand}{%
+ \usedriver
+ {\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}%
+ \finentry}
+
+\DeclareBibliographyAlias{mvbook}{book}
+\DeclareBibliographyAlias{bookinbook}{inbook}
+\DeclareBibliographyAlias{suppbook}{inbook}
+\DeclareBibliographyAlias{mvcollection}{collection}
+\DeclareBibliographyAlias{suppcollection}{incollection}
+\DeclareBibliographyAlias{mvproceedings}{proceedings}
+\DeclareBibliographyAlias{reference}{collection}
+\DeclareBibliographyAlias{mvreference}{reference}
+\DeclareBibliographyAlias{inreference}{incollection}
+\DeclareBibliographyAlias{suppperiodical}{article}
+\DeclareBibliographyAlias{review}{article}
+\DeclareBibliographyAlias{*}{misc}
+
+% (RE)DEFINING BIBMACROS
+
+\newbibmacro*{maintitle+volumes+parts+}[1]{%
+ \iffieldsequal{maintitle}{#1}
+ {\clearfield{maintitle}%
+ \clearfield{mainsubtitle}%
+ \clearfield{maintitleaddon}}
+ {\iffieldundef{maintitle}
+ {\usebibmacro{#1}%
+ \setunit{\addcolondelim}%
+ \usebibmacro{involumes+otherparts}{\setunit*{\addcomma\space}}
+ \newunit
+ \usebibmacro{volume+parts}{\newunit}}
+ {\usebibmacro{maintitle}%
+ \newunit
+ \usebibmacro{involumes+otherparts}{\setunit*{\addcomma\space}}%
+ \newunit
+ \usebibmacro{volume+parts}{\newunit}%
+ \newunit
+ \usebibmacro{#1}}}%
+ \newunit}
+
+\newbibmacro*{maintitle+volumes+parts+title}{%
+ \usebibmacro{maintitle+volumes+parts+}{title}}
+
+\newbibmacro*{maintitle+volumes+parts+booktitle}{%
+ \usebibmacro{maintitle+volumes+parts+}{booktitle}}
+
+\newbibmacro*{event+venue+date}{%
+ \ifboolexpr{
+ test {\iffieldundef{eventtitle}}
+ and
+ test {\iffieldundef{venue}}
+ and
+ test {\iffieldundef{eventyear}}
+ }
+ {}
+ {\setunit{\addspace}%
+ \printtext[parens]{%
+ \printfield{eventtitle}%
+ \setunit{\addcolondelim}%
+ \printfield{eventtitleaddon}%
+ \setunit{\addcomma\space}%
+ \printfield{venue}%
+ \setunit*{\addcomma\space}%
+ \printeventdate}}%
+ \newunit}
+
+\newbibmacro*{series+number}{%
+ \iffieldundef{series}
+ {}
+ {\printtext{(%
+ \printfield{series}%
+ \setunit*{\addsemicolondelim}%
+ \printfield[seriesnumber]{number})}}}
+
+\newbibmacro*{publisher+location+date}{%
+ \usebibmacro{publisher+location}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date}}
+
+\newbibmacro*{publisher+location}{%
+ \printlist{location}%
+ \iflistundef{publisher}
+ {\setunit*{\addcomma\space}}
+ {\setunit*{\addcolondelim}}%
+ \printlist{publisher}}
+
+\newbibmacro*{institution+location+date}{%
+ \printlist{location}%
+ \iflistundef{institution}
+ {\setunit*{\addcomma\space}}
+ {\setunit*{\addcolondelim}}%
+ \printlist{institution}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date}%
+ \newunit}
+
+\newbibmacro*{organization+location+date}{%
+ \printlist{location}%
+ \iflistundef{organization}
+ {\setunit*{\addcomma\space}}
+ {\setunit*{\addcolondelim}}%
+ \printlist{organization}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date}%
+ \newunit}
+
+\newbibmacro*{location+date}{%
+ \printlist{location}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date}%
+ \newunit}
+
+\newbibmacro*{chapter+pages}{%
+ \printfield{chapter}%
+ \setunit*{\bibpagespunct}%
+ \printfield{pages}%
+ \newunit}
+
+\newbibmacro*{note+pages}{%
+ \printfield{note}%
+ \setunit{\bibpagespunct}%
+ \printfield{pages}%
+ \newunit}
+
+\newbibmacro*{isbn}{%
+ \ifcitation
+ {\iftoggle{cbx:isbn}
+ {\printfield{isbn}}
+ {}}
+ {\iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}}}
+
+\newbibmacro*{issn}{%
+ \ifcitation
+ {\iftoggle{cbx:isbn}
+ {\printfield{issn}}
+ {}}
+ {\iftoggle{bbx:isbn}
+ {\printfield{issn}}
+ {}}}
+
+\newbibmacro*{isrn}{%
+ \ifcitation
+ {\iftoggle{cbx:isbn}
+ {\printfield{isrn}}
+ {}}
+ {\iftoggle{bbx:isbn}
+ {\printfield{isrn}}
+ {}}}
+
+\newbibmacro*{doi+eprint+url+note}{%
+ \ifcitation
+ {\iftoggle{cbx:doi}
+ {\printfield{doi}}
+ {}}
+ {\iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}}%
+ \newunit\newblock
+ \ifcitation
+ {\iftoggle{cbx:eprint}
+ {\usebibmacro{eprint}}
+ {}}
+ {\iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}}%
+ \newunit\newblock
+ \usebibmacro{url+urldate+note}}
+
+\newbibmacro*{addendum+pubstate}{%
+ \printfield{addendum}%
+ \newunit\newblock
+ \printfield{pubstate}}
+
+\renewbibmacro*{byeditorx}{%
+ \ifnameundef{editora}
+ {}
+ {\usebibmacro{byeditor+othersstrg}{editora}%
+ \setunit{\addspace}%
+ \printnames[byeditora]{editora}%
+ \setunit*{\resppunct}}%
+ \ifnameundef{editorb}
+ {}
+ {\usebibmacro{byeditor+othersstrg}{editorb}%
+ \setunit{\addspace}%
+ \printnames[byeditorb]{editorb}%
+ \setunit*{\resppunct}}%
+ \ifnameundef{editorc}
+ {}
+ {\usebibmacro{byeditor+othersstrg}{editorc}%
+ \setunit{\addspace}%
+ \printnames[byeditorc]{editorc}%
+ \setunit*{\resppunct}}}
+
+\newbibmacro*{book:byeditorx}{%
+ \ifnameundef{editora}
+ {}
+ {\usebibmacro{book:byeditor+othersstrg}{editora}%
+ \setunit{\addspace}%
+ \printnames[byeditora]{editora}%
+ \setunit*{\resppunct}}%
+ \ifnameundef{editorb}
+ {}
+ {\usebibmacro{book:byeditor+othersstrg}{editorb}%
+ \setunit{\addspace}%
+ \printnames[byeditorb]{editorb}%
+ \setunit*{\resppunct}}%
+ \ifnameundef{editorc}
+ {}
+ {\usebibmacro{book:byeditor+othersstrg}{editorc}%
+ \setunit{\addspace}%
+ \printnames[byeditorc]{editorc}%
+ \setunit*{\resppunct}}}
+
+% <field><true><false>
+% checks if book<field> doesn't exist nor is equal to <field>,
+% so that <field> should be printed
+\newbibmacro*{checkbookfield}[3]{%
+ \ifboolexpr{
+ test {\iffieldundef{book#1}}
+ or
+ not test {\iffieldsequal{#1}{book#1}}
+ }
+ {#2}
+ {#3}}
+
+% <name><true><false>
+% similar check for names
+\newbibmacro*{checkbookname}[3]{%
+ \ifboolexpr{
+ test {\ifnameundef{book#1}}
+ or
+ ( not test {\ifnamesequal{#1}{book#1}}
+ or
+ togl {bbx:gostbibliography}
+ )
+ }
+ {#2}
+ {#3}}
+
+% <list><true><false>
+% similar check for lists
+\newbibmacro*{checkbooklist}[3]{%
+ \ifboolexpr{
+ test {\iflistundef{book#1}}
+ or
+ not test {\iflistsequal{#1}{book#1}}
+ }
+ {#2}
+ {#3}}
+
+\newbibmacro*{credits}{%
+ \iflistundef{credits}
+ {}
+ {\usebibmacro{checkbooklist}{credits}
+ {\setrespdelim%
+ \printlist[semicolondelim]{credits}%
+ \savelist{credits}{\savedclearedcredits}%
+ \clearlist{credits}%
+ }
+ {}}}
+
+\renewbibmacro*{byeditor+othersstrg}[1]{%
+ \iffieldundef{#1type}
+ {\def\abx@tempa{byeditor}}
+ {\edef\abx@tempa{by\thefield{#1type}}}%
+ \let\abx@tempb=\empty
+ \ifnamesequal{#1}{translator}
+ {\appto\abx@tempa{tr}%
+ \appto\abx@tempb{\savename{translator}{\savedclearedtranslator}\clearname{translator}}}
+ {}%
+ \ifnamesequal{#1}{commentator}
+ {\appto\abx@tempa{co}%
+ \appto\abx@tempb{\clearname{commentator}}}
+ {\ifnamesequal{#1}{annotator}
+ {\appto\abx@tempa{an}%
+ \appto\abx@tempb{\clearname{annotator}}}
+ {}}%
+ \ifnamesequal{#1}{introduction}
+ {\appto\abx@tempa{in}%
+ \appto\abx@tempb{\clearname{introduction}}}
+ {\ifnamesequal{#1}{foreword}
+ {\appto\abx@tempa{fo}%
+ \appto\abx@tempb{\clearname{foreword}}}
+ {\ifnamesequal{#1}{afterword}
+ {\appto\abx@tempa{af}%
+ \appto\abx@tempb{\clearname{afterword}}}
+ {}}}%
+ \ifbibxstring{\abx@tempa}
+ {\printtext{\bibstring{\abx@tempa}}\abx@tempb}
+ {\usebibmacro{bytypestrg}{#1}{editor}}}
+
+\renewbibmacro*{byeditor}{%
+ \ifnameundef{editor}
+ {}
+ {\setrespdelim%
+ \usebibmacro{byeditor+othersstrg}{editor}%
+ \setunit{\addspace}%
+ \printnames[byeditor]{editor}%
+ \savename{editor}{\savedclearededitor}%
+ \clearname{editor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{byeditorx}}}
+
+\renewbibmacro*{bytranslator+others}{%
+ \ifnameundef{translator}
+ {}
+ {\ifboolexpr{
+ test {\ifnameundef{booktranslator}}
+ or
+ not test {\ifnamesequal{translator}{booktranslator}}
+ or
+ ( not test {\blx@gost@iflangundef{origlanguage}}
+ and
+ test {\blx@gost@iflangundef{bookoriglanguage}}
+ )
+ or
+ ( test {\blx@gost@iflangundef{origlanguage}}
+ and
+ not test {\blx@gost@iflangundef{bookoriglanguage}}
+ )
+ or
+ ( not test {\blx@gost@iflangundef{origlanguage}}
+ and
+ not test {\blx@gost@iflangundef{bookoriglanguage}}
+ and
+ not test {\blx@gost@iflangsequal{origlanguage}{bookoriglanguage}}
+ )
+ }
+ {\setrespdelim%
+ \usebibmacro{bytranslator+othersstrg}%
+ \setunit*{\addspace}%
+ \printnames[bytranslator]{translator}%
+ \savename{translator}{\savedclearedtranslator}%
+ \clearname{translator}%
+ \setunit*{\resppunct}}
+ {}}%
+ \usebibmacro{withothers}}
+
+\renewbibmacro*{bytranslator+othersstrg}{%
+ \def\abx@tempa{bytranslator}%
+ \usebibmacro{checkbookname}{commentator}
+ {\ifnamesequal{translator}{commentator}
+ {\appto\abx@tempa{co}%
+ \clearname{commentator}}
+ {\usebibmacro{checkbookname}{annotator}
+ {\ifnamesequal{translator}{annotator}
+ {\appto\abx@tempa{an}%
+ \clearname{annotator}}
+ {}}
+ {}}}%
+ {}%
+ \usebibmacro{checkbookname}{introduction}
+ {\ifnamesequal{translator}{introduction}
+ {\appto\abx@tempa{in}%
+ \clearname{introduction}}
+ {\usebibmacro{checkbookname}{foreword}
+ {\ifnamesequal{translator}{foreword}
+ {\appto\abx@tempa{fo}%
+ \clearname{foreword}}
+ {\usebibmacro{checkbookname}{afterword}
+ {\ifnamesequal{translator}{afterword}
+ {\appto\abx@tempa{af}%
+ \clearname{afterword}}
+ {}}
+ {}}}
+ {}}}%
+ {}%
+ \bibstring{\abx@tempa}}
+
+\renewbibmacro*{withothers}{%
+ \usebibmacro{checkbookname}{commentator}
+ {\usebibmacro{withcommentator}%
+ \clearname{commentator}%
+ \setunit*{\resppunct}}
+ {}%
+ \usebibmacro{checkbookname}{annotator}
+ {\usebibmacro{withannotator}%
+ \clearname{annotator}%
+ \setunit*{\resppunct}}
+ {}%
+ \usebibmacro{checkbookname}{introduction}
+ {\usebibmacro{withintroduction}%
+ \clearname{introduction}%
+ \setunit*{\resppunct}}
+ {}%
+ \usebibmacro{checkbookname}{foreword}
+ {\usebibmacro{withforeword}%
+ \clearname{foreword}%
+ \setunit*{\resppunct}}
+ {}%
+ \usebibmacro{checkbookname}{afterword}
+ {\usebibmacro{withafterword}%
+ \clearname{afterword}}
+ {}}
+
+\newbibmacro*{with+}[1]{%
+ \ifnameundef{#1}
+ {}
+ {\setrespdelim%
+ \bibstring{with#1}%
+ \setunit{\addspace}%
+ \printnames[with#1]{#1}}}
+
+\renewbibmacro*{withcommentator}{%
+ \usebibmacro{with+}{commentator}}
+
+\renewbibmacro*{withannotator}{%
+ \usebibmacro{with+}{annotator}}
+
+\renewbibmacro*{withintroduction}{%
+ \usebibmacro{with+}{introduction}}
+
+\renewbibmacro*{withforeword}{%
+ \usebibmacro{with+}{foreword}}
+
+\renewbibmacro*{withafterword}{%
+ \usebibmacro{with+}{afterword}}
+
+% book:... macros
+
+\newbibmacro*{book:credits}{%
+ \iflistundef{bookcredits}
+ {}
+ {\setrespdelim%
+ \printlist[semicolondelim]{bookcredits}%
+ \clearlist{bookcredits}}%
+}
+
+\newbibmacro*{book:byeditor+othersstrg}[1]{%
+ \iffieldundef{#1type}
+ {\def\abx@tempa{byeditor}}
+ {\edef\abx@tempa{by\thefield{#1type}}}%
+ \let\abx@tempb=\empty
+ \ifnamesequal{#1}{booktranslator}
+ {\appto\abx@tempa{tr}%
+ \appto\abx@tempb{\clearname{booktranslator}}}
+ {}%
+ \ifnamesequal{#1}{bookcommentator}
+ {\appto\abx@tempa{co}%
+ \appto\abx@tempb{\clearname{bookcommentator}}}
+ {\ifnamesequal{#1}{bookannotator}
+ {\appto\abx@tempa{an}%
+ \appto\abx@tempb{\clearname{bookannotator}}}
+ {}}%
+ \ifnamesequal{#1}{bookintroduction}
+ {\appto\abx@tempa{in}%
+ \appto\abx@tempb{\clearname{bookintroduction}}}
+ {\ifnamesequal{#1}{bookforeword}
+ {\appto\abx@tempa{fo}%
+ \appto\abx@tempb{\clearname{bookforeword}}}
+ {\ifnamesequal{#1}{bookafterword}
+ {\appto\abx@tempa{af}%
+ \appto\abx@tempb{\clearname{bookafterword}}}
+ {}}}%
+ \ifbibxstring{\abx@tempa}
+ {\printtext{\bibstring{\abx@tempa}}\abx@tempb}
+ {\usebibmacro{bytypestrg}{#1}{editor}}}
+
+\newbibmacro*{book:byeditor}{%
+ \ifnameundef{editor}
+ {}
+ {\setrespdelim%
+ \usebibmacro{book:byeditor+othersstrg}{editor}%
+ \setunit{\addspace}%
+ \printnames[byeditor]{editor}%
+ \savename{editor}{\savedclearededitor}%
+ \clearname{editor}%
+ \setunit*{\resppunct}%
+ \usebibmacro{book:byeditorx}}}
+
+\newbibmacro*{book:bytranslator+others}{%
+ \ifnameundef{booktranslator}
+ {}
+ {\setrespdelim%
+ \usebibmacro{book:bytranslator+othersstrg}%
+ \setunit{\addspace}%
+ \printnames[bytranslator]{booktranslator}%
+ \clearname{booktranslator}%
+ \setunit*{\resppunct}}%
+ \usebibmacro{book:withothers}}
+
+\newbibmacro*{book:bytranslator+othersstrg}{%
+ \def\abx@tempa{bytranslator}%
+ \ifnamesequal{booktranslator}{bookcommentator}
+ {\appto\abx@tempa{co}%
+ \clearname{bookcommentator}}
+ {\ifnamesequal{booktranslator}{bookannotator}
+ {\appto\abx@tempa{an}%
+ \clearname{bookannotator}}
+ {}}%
+ \ifnamesequal{booktranslator}{bookintroduction}
+ {\appto\abx@tempa{in}%
+ \clearname{bookintroduction}}
+ {\ifnamesequal{booktranslator}{bookforeword}
+ {\appto\abx@tempa{fo}%
+ \clearname{bookforeword}}
+ {\ifnamesequal{booktranslator}{bookafterword}
+ {\appto\abx@tempa{af}%
+ \clearname{bookafterword}}
+ {}}}%
+ % temporarily redefining commands used in the bibstring
+ \savecommand\lbx@lfromlang%
+ \savecommand\lbx@sfromlang%
+ \renewcommand*{\lbx@lfromlang}{\lbx@gost@lfromlang{bookoriglanguage}}%
+ \renewcommand*{\lbx@sfromlang}{\lbx@gost@sfromlang{bookoriglanguage}}%
+ \bibstring{\abx@tempa}%
+ \restorecommand\lbx@lfromlang%
+ \restorecommand\lbx@sfromlang%
+}
+
+\newbibmacro*{book:withothers}{%
+ \usebibmacro{book:withcommentator}%
+ \clearname{bookcommentator}%
+ \setunit*{\resppunct}%
+ \usebibmacro{book:withannotator}%
+ \clearname{bookannotator}%
+ \setunit*{\resppunct}%
+ \usebibmacro{book:withintroduction}%
+ \clearname{bookintroduction}%
+ \setunit*{\resppunct}%
+ \usebibmacro{book:withforeword}%
+ \clearname{bookforeword}%
+ \setunit*{\resppunct}%
+ \usebibmacro{book:withafterword}%
+ \clearname{bookafterword}%
+}
+
+\newbibmacro*{book:with+}[1]{%
+ \ifnameundef{book#1}
+ {}
+ {\setrespdelim%
+ \bibstring{with#1}%
+ \setunit{\addspace}%
+ \printnames[with#1]{book#1}}}
+
+\newbibmacro*{book:withcommentator}{%
+ \usebibmacro{book:with+}{commentator}}
+
+\newbibmacro*{book:withannotator}{%
+ \usebibmacro{book:with+}{annotator}}
+
+\newbibmacro*{book:withintroduction}{%
+ \usebibmacro{book:with+}{introduction}}
+
+\newbibmacro*{book:withforeword}{%
+ \usebibmacro{book:with+}{foreword}}
+
+\newbibmacro*{book:withafterword}{%
+ \usebibmacro{book:with+}{afterword}}
+
+% jour:.. macros
+
+\newbibmacro*{jour:volume+parts+issuetitle}{%
+ \printfield{volume}%
+ \setunit*{\addcomma\space}%
+ \printfield{issue}%
+ \setunit*{\addcomma\space}%
+ \printfield{number}%
+ \iffieldundef{issuetitle}
+ {}
+ {\setunit{\addcolon\space}%
+ \printtext[issuetitle]{\printfield[titlecase]{issuetitle}}}}%
+
+\newbibmacro*{jour:date}{%
+ \usebibmacro{year}%
+ \newunit\newblock
+ \iffieldundef{month}
+ {}
+ {\printtext{\mkbibdatelong{}{month}{day}}}%
+ \iffieldundef{endyear}
+ {}
+ {\bibdaterangesep%
+ \iffieldequalstr{endyear}{}
+ {\mbox{~~~~}}
+ {\printfield{endyear}%
+ \newunit\newblock
+ \iffieldundef{endmonth}
+ {}
+ {\printtext{\mkbibdatelong{}{endmonth}{endday}}}}}%
+}
+
+\newbibmacro*{jour:credits}{%
+ \iflistundef{credits}
+ {}
+ {\setrespdelim%
+ \printlist[semicolondelim]{journalcredits}%
+ \clearlist{journalcredits}}%
+}
+
+% processing volumes, books, parts, issues in the specified order
+
+\def\blx@gost@volsinorder#1#2{%
+ \ifstrequal{#1}{v}
+ {\printfield{volume}%
+ \iffieldundef{volume}{}{\blx@gost@setunit}}
+ {\ifstrequal{#1}{b}
+ {\printfield{book}%
+ \iffieldundef{book}{}{\blx@gost@setunit}}
+ {\ifstrequal{#1}{p}
+ {\printfield{part}%
+ \iffieldundef{part}{}{\blx@gost@setunit}}
+ {\ifstrequal{#1}{i}
+ {\printfield{issue}%
+ \iffieldundef{issue}{}{\blx@gost@setunit}}
+ {}}}}%
+ \ifthenelse{\equal{#2}{\blx@gost@endofstring}}% end of string ?
+ {}%
+ {\stepcounter{blx@gost@pointer}%
+ \blx@gost@volsinorder#2}}
+
+\newbibmacro*{volume+parts}[1]{%
+ \iffieldundef{volsorder}
+ {\edef\gost@tempa{\blx@gost@defaultorder}}
+ {\edef\gost@tempa{\thefield{volsorder}}}%
+ \ifdefvoid{\gost@tempa}
+ {}
+ {\renewcommand*{\blx@gost@setunit}{#1}%
+ \setcounter{blx@gost@pointer}{1}%
+ \expandafter\blx@gost@volsinorder\gost@tempa\blx@gost@endofstring}}
+
+\renewbibmacro*{date}{%
+ \usebibmacro{printdate}{}}
+
+\newbibmacro*{year}{%
+ \usebibmacro{printyear}{}}
+
+\renewbibmacro*{title}{%
+ \ifboolexpr{
+ test {\iffieldundef{title}}
+ and
+ test {\iffieldundef{subtitle}}
+ }
+ {}
+ {\printtext[title]{%
+ \printfield[titlecase]{title}%
+ \iffieldundef{media}
+ {\setunit*{\subtitlepunct}}
+ {\setunit*{\addspace}%
+ \usebibmacro{media}%
+ \setunit*{\addcolondelim}}%
+ \printfield[titlecase]{subtitle}}%
+ \newunit}%
+ \setunit*{\addcolondelim}%
+ \printfield{titleaddon}%
+ \clearfield{media}}
+
+\renewbibmacro*{booktitle}{%
+ \ifboolexpr{
+ test {\iffieldundef{booktitle}}
+ and
+ test {\iffieldundef{booksubtitle}}
+ }
+ {}
+ {\printtext[booktitle]{%
+ \printfield[titlecase]{booktitle}%
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{booksubtitle}}%
+ \newunit}%
+ \setunit{\addcolondelim}%
+ \printfield{booktitleaddon}}
+
+\@ifpackagelater{biblatex}{2016/12/06} %biblatex 3.8+
+{\newbibmacro*{translation}{%
+ \ifnameundef{translator}
+ {\ifnameundef{booktranslator}
+ {\iflistundef{origlanguage}
+ {}
+ {\bibstring{bytranslator}%
+ \clearlist{origlanguage}}}
+ {}}%
+ {}}
+
+\newbibmacro*{book:translation}{%
+ \ifnameundef{booktranslator}
+ {\iflistundef{bookoriglanguage}
+ {}
+ {% temporarily redefining commands used in the bibstring
+ \savecommand\lbx@lfromlang%
+ \savecommand\lbx@sfromlang%
+ \renewcommand*{\lbx@lfromlang}{\lbx@gost@lfromlang{bookoriglanguage}}%
+ \renewcommand*{\lbx@sfromlang}{\lbx@gost@sfromlang{bookoriglanguage}}%
+ \bibstring{bytranslator}%
+ \restorecommand\lbx@lfromlang%
+ \restorecommand\lbx@sfromlang%
+ \clearlist{bookoriglanguage}}}
+ {}}
+}
+{
+\newbibmacro*{translation}{%
+ \ifnameundef{translator}
+ {\ifnameundef{booktranslator}
+ {\iffieldundef{origlanguage}
+ {}
+ {\bibstring{bytranslator}%
+ \clearfield{origlanguage}}}
+ {}}%
+ {}}
+
+\newbibmacro*{book:translation}{%
+ \ifnameundef{booktranslator}
+ {\iffieldundef{bookoriglanguage}
+ {}
+ {% temporarily redefining commands used in the bibstring
+ \savecommand\lbx@lfromlang%
+ \savecommand\lbx@sfromlang%
+ \renewcommand*{\lbx@lfromlang}{\lbx@gost@lfromlang{bookoriglanguage}}%
+ \renewcommand*{\lbx@sfromlang}{\lbx@gost@sfromlang{bookoriglanguage}}%
+ \bibstring{bytranslator}%
+ \restorecommand\lbx@lfromlang%
+ \restorecommand\lbx@sfromlang%
+ \clearfield{bookoriglanguage}}}
+ {}}
+}
+
+
+
+
+\renewbibmacro*{maintitle}{%
+ \ifboolexpr{
+ test {\iffieldundef{maintitle}}
+ and
+ test {\iffieldundef{mainsubtitle}}
+ }
+ {}
+ {\printtext[maintitle]{%
+ \printfield[titlecase]{maintitle}%
+ \iffieldundef{media}
+ {\setunit*{\subtitlepunct}}
+ {\setunit*{\addspace}%
+ \usebibmacro{media}%
+ \setunit*{\addcolondelim}}
+ \printfield[titlecase]{mainsubtitle}}%
+ \newunit}%
+ \setunit{\addcolondelim}%
+ \printfield{maintitleaddon}%
+ \clearfield{media}}
+
+\newbibmacro*{thesistitle}{%
+ \ifboolexpr{
+ test {\iffieldundef{title}}
+ and
+ test {\iffieldundef{subtitle}}
+ }
+ {}
+ {\printtext[title]{%
+ \printfield[titlecase]{title}%
+ \iffieldundef{media}
+ {\setunit*{\subtitlepunct}}
+ {\setunit*{\addspace}%
+ \usebibmacro{media}%
+ \setunit*{\addcolondelim}}%
+ \printfield[titlecase]{subtitle}}%
+ \midsentence
+ \setunit*{\addcolondelim}%
+ \printfield{type}%
+ \midsentence
+ \setunit*{\addcolondelim}%
+ \printfield{specialitycode}%
+ \setunit*{\specialitydelim}%
+ \printfield{speciality}}%
+ \setunit{\addcolondelim}%
+ \printfield{titleaddon}%
+ \clearfield{media}}
+
+\newcommand*{\addcolondelim}{%
+ \begingroup%
+ \def\abx@colon{%
+ \ifdim\lastkern>\z@\unkern\fi%
+ \addnbspace\abx@puncthook{:}\space}%
+ \addcolon%
+ \endgroup}
+
+\newcommand*{\addsemicolondelim}{%
+ \begingroup%
+ \def\abx@semicolon{%
+ \ifdim\lastkern>\z@\unkern\fi%
+ \addnbspace\abx@puncthook{;}\space}%
+ \addsemicolon%
+ \endgroup}
+
+\def\blx@gost@involsinorder#1#2{%
+ \ifstrequal{#1}{v}
+ {\printfield{volumes}%
+ \blx@gost@setunit}
+ {\ifstrequal{#1}{b}
+ {\printfield{books}%
+ \blx@gost@setunit}
+ {\ifstrequal{#1}{p}
+ {\printfield{parts}%
+ \blx@gost@setunit}
+ {\ifstrequal{#1}{i}
+ {\printfield{issues}%
+ \blx@gost@setunit}
+ {}}}}%
+ \ifthenelse{\equal{#2}{\blx@gost@endofstring}}% end of string ?
+ {}%
+ {\stepcounter{blx@gost@pointer}%
+ \blx@gost@involsinorder#2}}
+
+\newbibmacro*{involumes+otherparts}[1]{%
+ \ifboolexpr{
+ test {\iffieldundef{volumes}}
+ and
+ test {\iffieldundef{parts}}
+ and
+ test {\iffieldundef{books}}
+ and
+ test {\iffieldundef{issues}}
+ }
+ {}
+ {\iffieldundef{volsorder}
+ {\edef\gost@tempa{\blx@gost@defaultorder}}
+ {\edef\gost@tempa{\thefield{volsorder}}}%
+ \ifdefvoid{\gost@tempa}
+ {}
+ {\renewcommand*{\blx@gost@setunit}{#1}%
+ \setcounter{blx@gost@pointer}{1}%
+ \bibstring{involumes}%
+ \addabbrvspace%
+ \expandafter\blx@gost@involsinorder\gost@tempa\blx@gost@endofstring}}}
+
+\renewbibmacro*{byauthor}{%
+ \ifboolexpr{
+ ( test \ifuseauthor
+ and
+ not togl {bbx:gostbibliography}
+ )
+ or
+ test {\ifnameundef{author}}
+ }
+ {}
+ {\setrespdelim%
+ \printnames[byauthor]{author}}}
+
+\newbibmacro*{book:byauthor}{%
+ \ifboolexpr{
+ test {\ifnameundef{bookauthor}}
+ or
+ ( test {\ifnamesequal{author}{bookauthor}}
+ and
+ not togl {bbx:gostbibliography}
+ )
+ }
+ {}
+ {\setrespdelim%
+ \printnames[byauthor]{bookauthor}}}
+
+\renewbibmacro*{name:andothers}{%
+ \ifboolexpr{
+ test {\ifnumequal{\value{listcount}}{\value{liststop}}}
+ and
+ test \ifmorenames
+ }
+ {\ifnumgreater{\value{liststop}}{1}
+ {\finalandcomma}
+ {}%
+ \andothersdelim\mkbibbrackets{\bibstring{andothers}}}
+ {}}
+
+\InitializeBibliographyStyle{%
+ \global\undef\bbx@lasthash}
+
+\newbool{bbx@inset}
+\DeclareBibliographyDriver{set}{%
+ \booltrue{bbx@inset}%
+ \entryset{}{}%
+ \newunit\newblock
+ \usebibmacro{setpageref}%
+ \finentry}
+
+\renewbibmacro*{author}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\iftoggle{bbx:gostbibliography}
+ {\printnames[heading][1-1]{author}}
+ {\printnames[heading]{author}}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{authorstrg}}
+ {\global\undef\bbx@lasthash}}
+
+\renewbibmacro*{editor}{%
+ \usebibmacro{bbx:editor}{editorstrg}}
+\renewbibmacro*{editor+others}{%
+ \usebibmacro{bbx:editor}{editor+othersstrg}}
+\newbibmacro*{bbx:editor}[1]{%
+ \ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\printnames[heading]{editor}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{#1}%
+ \savename{editor}{\savedclearededitor}%
+ \iftoggle{bbx:gostbibliography}
+ {}
+ {\clearname{editor}}}
+ {\global\undef\bbx@lasthash}}
+
+\renewbibmacro*{translator}{%
+ \usebibmacro{bbx:translator}{translatorstrg}}
+\renewbibmacro*{translator+others}{%
+ \usebibmacro{bbx:translator}{translator+othersstrg}}
+\newbibmacro*{bbx:translator}[1]{%
+ \ifboolexpr{
+ test \ifusetranslator
+ and
+ not test {\ifnameundef{translator}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\printnames[heading]{translator}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{#1}%
+ \savename{translator}{\savedclearedtranslator}%
+ \iftoggle{bbx:gostbibliography}
+ {}
+ {\clearname{translator}}}
+ {\global\undef\bbx@lasthash}}
+
+\newbibmacro*{bbx:dashcheck}[2]{%
+ \ifboolexpr{
+ test {\iffieldequals{fullhash}{\bbx@lasthash}}
+ and
+ not test \iffirstonpage
+ and
+ (
+ not bool {bbx@inset}
+ or
+ test {\iffieldequalstr{entrysetcount}{1}}
+ )
+ }
+ {#1}
+ {#2}}
+
+\newbibmacro*{url+urldate+note}{%
+ \ifboolexpr{
+ test {\ifentrytype{online}}
+ or
+ ( test \ifcitation
+ and
+ togl {cbx:url}
+ )
+ or
+ ( not test \ifcitation
+ and
+ togl {bbx:url}
+ )
+ }
+ {\usebibmacro{url+urldate}}
+ {}%
+ \setunit*{\addsemicolondelim}%
+ \printfield{note}}
+
+% do I need this?
+
+\gdef\ifmulticitation{%
+ \ifnum\c@multicitetotal>0
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\newbibmacro*{media}{%
+ \iffieldundef{media}
+ {}
+ {{\ifdefvoid{\gostmedialanguage}
+ {}
+ {\select@medialanguage}% first switch language, then \ifbibxstring
+ \ifbibxstring{media\thefield{media}}
+ {\printtext[brackets]{\bibcpstring{media\thefield{media}}}}
+ {}}}}
+
+\newbibmacro*{priority}{%
+ \printprioritydate%
+ \setunit{\addcomma\space}%
+ \printfield{prioritynumber}%
+ \setunit{\addspace}%
+ \iffieldundef{prioritycountry}
+ {}
+ {\printtext[parens]{\printfield{prioritycountry}}}}
+
+\newbibmacro*{heading}{%
+ \printfield{heading}}
+
+% whether date needs brackets.
+% labeldate needs special account
+\newcommand*{\blx@gost@ifdateuncertain}[3]{%
+ \ifboolexpr{
+ test {\csuse{if#1datecirca}}
+ or
+ test {\csuse{if#1dateuncertain}}
+ or
+ test {\csuse{if#1enddatecirca}}
+ or
+ test {\csuse{if#1enddateuncertain}}
+ or
+ not test {\iffieldundef{#1dateunspecified}}
+ or (
+ test {\ifstrequal{#1}{label}}
+ and
+ not test {\iffieldundef{\thefield{labeldatesource}dateunspecified}}
+ )
+ }
+ {#2}
+ {#3}}
+
+% Adds brackets is necessary
+\newbibmacro*{printdate}[1]{%
+ \blx@gost@ifdateuncertain{#1}
+ {\printtext[bracketsalways]{\midsentence*%
+ \ifstrequal{#1}{label}
+ {\iffieldequalstr{\thefield{labeldatesource}dateunspecified}{yearincentury}
+ {\number\numexpr\thefield{\thefield{labeldatesource}year}/100\relax%
+ \bibrangedash\addnbspace\bibrangedash}
+ {\iffieldequalstr{\thefield{labeldatesource}dateunspecified}{yearindecade}
+ {\number\numexpr\thefield{\thefield{labeldatesource}year}/10\relax\bibrangedash}%
+ {\csuse{print#1date}}}}
+ {\iffieldequalstr{#1dateunspecified}{yearincentury}
+ {\number\numexpr\thefield{#1year}/100\relax%
+ \bibrangedash\addnbspace\bibrangedash}
+ {\iffieldequalstr{#1dateunspecified}{yearindecade}
+ {\number\numexpr\thefield{#1year}/10\relax\bibrangedash}%
+ {\csuse{print#1date}}}}}}
+ {\csuse{print#1date}}}
+
+\newbibmacro*{printyear}[1]{%
+ \blx@gost@ifdateuncertain{#1}
+ {\printtext[bracketsalways]{\midsentence*%
+ \ifstrequal{#1}{label}
+ {\iffieldequalstr{\thefield{labeldatesource}dateunspecified}{yearincentury}
+ {\number\numexpr\thefield{\thefield{labeldatesource}year}/100\relax%
+ \bibrangedash\addnbspace\bibrangedash}
+ {\iffieldequalstr{\thefield{labeldatesource}dateunspecified}{yearindecade}
+ {\number\numexpr\thefield{\thefield{labeldatesource}year}/10\relax\bibrangedash}
+ {\usebibmacro{printyear+}{#1}}}}
+ {\iffieldequalstr{#1dateunspecified}{yearincentury}
+ {\number\numexpr\thefield{#1year}/100\relax%
+ \bibrangedash\addnbspace\bibrangedash}
+ {\iffieldequalstr{#1dateunspecified}{yearindecade}
+ {\number\numexpr\thefield{#1year}/10\relax\bibrangedash}
+ {\usebibmacro{printyear+}{#1}}}}}}
+ {\usebibmacro{printyear+}{#1}}}
+
+\newbibmacro*{printyear+}[1]{%
+ \printtext{%
+ \iffieldundef{#1year}
+ {}
+ {\ifdefstring\blx@dateformat@labeldate{edtf}
+ {}
+ {\datecircaprint}%
+ \dateeraprintpre{#1year}%
+ \mkyearzeros{\thefield{#1year}}%
+ % \printfield{extradate}%
+ \iffieldsequal{#1dateera}{#1enddateera}
+ {}
+ {\dateeraprint{#1year}}%
+ \dateuncertainprint%
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {\datecircaprintedtf}
+ {}%
+ \iffieldundef{#1endyear}
+ {}
+ {\iffieldsequal{#1year}{#1endyear}
+ {}
+ {\ifdefstring\blx@dateformat@labeldate{edtf}
+ {\slash}% strict EDTF
+ {\bibdaterangesep%
+ \enddatecircaprint}%
+ \dateeraprintpre{#1endyear}%
+ \mkyearzeros{\thefield{#1endyear}}%
+ \enddateuncertainprint%
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {\enddatecircaprintedtf}
+ {}%
+ \dateeraprint{#1endyear}}}}}}
+
+\newcommand*{\setrespdelim}{\bbx@gost@respdelim\def\bbx@gost@respdelim{}}
+
+% Related field
+
+\newcounter{bbx:relatedcount}
+\newcounter{bbx:relatedtotal}
+
+\newbibmacro*{related:init}{%
+ \csundef{bbx:relatedloop}}
+
+\newbibmacro*{begrelated}{}
+\newbibmacro*{endrelated}{}
+\newbibmacro*{begrelatedloop}{}
+\newbibmacro*{endrelatedloop}{}
+
+\def\ifrelatedloop{%
+ \ifboolexpr{ test {\xifinlistcs{\strfield{entrykey}}{bbx:relatedloop}}
+ or test {\xifinlistcs{\strfield{clonesourcekey}}{bbx:relatedloop}} }}
+
+\newbibmacro*{related}{%
+ \restorelist{credits}{\savedclearedcredits}%
+ \restorename{editor}{\savedclearededitor}%
+ \restorename{translator}{\savedclearedtranslator}%
+ \iffieldequalstr{relatedtype}{multivolume}
+ {\finentry}
+ {}%
+ \ifboolexpr{ test {\iffieldundef{related}} or test {\ifrelatedloop} }
+ {}
+ {\usebibmacro{begrelated}%
+ \def\bbx@tempa{}%
+ \setcounter{bbx:relatedtotal}{0}%
+ \def\do##1{%
+ \entrydata{##1}{%
+ \ifrelatedloop
+ {}
+ {\stepcounter{bbx:relatedtotal}%
+ \gappto{\bbx@tempa}{##1,}}}}%
+ \docsvfield{related}%
+ \restorefield{related}{\bbx@tempa}%
+ \ifnumgreater{\value{bbx:relatedtotal}}{0}
+ {\listcsxadd{bbx:relatedloop}{\strfield{entrykey}}%
+ \iffieldundef{clonesourcekey}
+ {}
+ {\listcsxadd{bbx:relatedloop}{\strfield{clonesourcekey}}}%
+ \setcounter{bbx:relatedcount}{0}%
+ \def\do{%
+ \stepcounter{bbx:relatedcount}%
+ \ifnumgreater{\value{bbx:relatedcount}}{1}
+ {\ifcsundef{relateddelim\strfield{relatedtype}}
+ {\printtext{\relateddelim}}
+ {\printtext{\csuse{relateddelim\strfield{relatedtype}}}}}
+ {}}%
+ \ifbibmacroundef{related:\strfield{relatedtype}}
+ {\appto{\do}{\usebibmacro{related:default}}}
+ {\appto{\do}{\usebibmacro*{related:\strfield{relatedtype}}}}%
+ \iffieldformatundef{related:\strfield{relatedtype}}
+ {\def\bbx@tempa{related}}
+ {\def\bbx@tempa{related:\strfield{relatedtype}}}%
+ \iffieldformatundef{relatedstring:\strfield{relatedtype}}
+ {\def\bbx@tempb{relatedstring:default}}
+ {\def\bbx@tempb{relatedstring:\strfield{relatedtype}}}%
+ \printtext[\bbx@tempa]{%
+ \usebibmacro{begrelatedloop}%
+ \iffieldundef{relatedstring}
+ {\ifboolexpr{
+ test {\ifnumgreater{\value{bbx:relatedtotal}}{1}}
+ and
+ test {\ifbibxstring{\thefield{relatedtype}s}}
+ }
+ {\printtext[\bbx@tempb]{%
+ \bibstring[\mkrelatedstring]{\thefield{relatedtype}s}}}
+ {\iffieldbibstring{relatedtype}
+ {\printtext[\bbx@tempb]{%
+ \bibstring[\mkrelatedstring]{\thefield{relatedtype}}}}
+ {}}}
+ {\iffieldbibstring{relatedstring}
+ {\printtext[\bbx@tempb]{%
+ \bibstring[\mkrelatedstring]{\thefield{relatedstring}}}}
+ {\printfield[\bbx@tempb]{relatedstring}}}%
+ \docsvfield{related}%
+ \usebibmacro{endrelatedloop}}}%
+ {}%
+ \usebibmacro{endrelated}}}
+
+\newbibmacro*{relatedblock}{%
+ \ifboolexpr{
+ ( test {\ifcitation} and togl {bbx:related:cite})
+ or
+ ( not test {\ifcitation} and togl {bbx:related:bib})
+ }
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}}
+
+\newbibmacro*{setup:min}{%
+ \renewbibmacro*{series+number}{}%
+ \renewbibmacro*{credits}{}%
+ \renewbibmacro*{book:credits}{}%
+ \renewbibmacro*{byeditor}{}%
+ \renewbibmacro*{book:byeditor}{}%
+ \renewbibmacro*{bytranslator+others}{}%
+ \renewbibmacro*{book:bytranslator+others}{}%
+ \renewbibmacro*{media}{}%
+ \renewbibmacro*{priority}{}%
+ \clearfield{series}%
+ \clearfield{edition}%
+ \clearlist{credits}%
+ \clearlist{editioncredits}%
+ \clearlist{specdata}%
+ \clearfield{media}%
+ \clearfield{pagetotal}%
+ \clearfield{titleaddon}%
+ \clearfield{booktitleaddon}%
+ \clearfield{maintitleaddon}%
+ \clearfield{addendum}%
+ \clearfield{pubstate}%
+ \clearname{holder}%
+ \clearfield{publicationyear}%
+ \clearfield{publicationmonth}%
+ \clearfield{publicationday}%
+ \clearfield{requestnumber}%
+ \clearfield{publication}%
+ \clearfield{upyear}%
+ \clearfield{upmonth}%
+ \clearfield{upday}%
+ \clearfield{systemreq}%
+}
+
+\DeclareAutoCiteCommand{footnote}{\smartcite}{\smartcites}
+\DeclareAutoCiteCommand{superscript}{\supercite}{\supercites}
+
+\defbibenvironment{gostbibliography}
+ {\list
+ {}
+ {\toggletrue{bbx:gostbibliography}%
+ \renewcommand*{\revsdnamepunct}{\addcomma}%
+ \renewcommand*{\labelnamepunct}{\addperiod\space}%
+ \setlength{\bibitemsep}{0pt}%
+ \setlength{\leftmargin}{\bibhang}%
+ \setlength{\itemindent}{-\leftmargin}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}}
+ {\endlist}
+ {\item}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def
new file mode 100644
index 0000000000..5ab77153aa
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def
@@ -0,0 +1,574 @@
+\ProvidesFile{biblatex-gost.def}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+% these declarations should be here, not in lbx, to be initialized for all languages
+\NewBibliographyString{
+ involumes,
+ geneditor,
+ geneditors,
+ bypreparation,
+ bygeneditor,
+ bygeneditortr,
+ bygeneditorco,
+ bygeneditoran,
+ bygeneditorin,
+ bygeneditorfo,
+ bygeneditoraf,
+ bygeneditortrco,
+ bygeneditortran,
+ bygeneditortrin,
+ bygeneditortrfo,
+ bygeneditortraf,
+ bygeneditorcoin,
+ bygeneditorcofo,
+ bygeneditorcoaf,
+ bygeneditoranin,
+ bygeneditoranfo,
+ bygeneditoranaf,
+ bygeneditortrcoin,
+ bygeneditortrcofo,
+ bygeneditortrcoaf,
+ bygeneditortranin,
+ bygeneditortranfo,
+ bygeneditortranaf,
+ bycompilertr,
+ bycompilerco,
+ bycompileran,
+ bycompilerin,
+ bycompilerfo,
+ bycompileraf,
+ bycompilertrco,
+ bycompilertran,
+ bycompilertrin,
+ bycompilertrfo,
+ bycompilertraf,
+ bycompilercoin,
+ bycompilercofo,
+ bycompilercoaf,
+ bycompileranin,
+ bycompileranfo,
+ bycompileranaf,
+ bycompilertrcoin,
+ bycompilertrcofo,
+ bycompilertrcoaf,
+ bycompilertranin,
+ bycompilertranfo,
+ bycompilertranaf,
+ gecompiler,
+ gecompilers,
+ bygecompiler,
+ bygecompilertr,
+ bygecompilerco,
+ bygecompileran,
+ bygecompilerin,
+ bygecompilerfo,
+ bygecompileraf,
+ bygecompilertrco,
+ bygecompilertran,
+ bygecompilertrin,
+ bygecompilertrfo,
+ bygecompilertraf,
+ bygecompilercoin,
+ bygecompilercofo,
+ bygecompilercoaf,
+ bygecompileranin,
+ bygecompileranfo,
+ bygecompileranaf,
+ bygecompilertrcoin,
+ bygecompilertrcofo,
+ bygecompilertrcoaf,
+ bygecompilertranin,
+ bygecompilertranfo,
+ bygecompilertranaf,
+ byeditorcollaborator,
+ books,
+ parts,
+ issues,
+ mediavideorecording,
+ mediasoundrecording,
+ mediagraphic,
+ mediacartographic,
+ mediakit,
+ mediamotionpicture,
+ mediamicroform,
+ mediamultimedia,
+ mediamusic,
+ mediaobject,
+ mediamanuscript,
+ mediatext,
+ mediabraille,
+ mediaeresource,
+ updated,
+ systemreq,
+ countryru,countryussr,patentru,patentussr,patreqru,patrequssr,invcert,
+ requested,published,priority,
+ docthesis,phdautoref,docautoref,
+}
+
+% \DeclareLanguageMappingSuffix{-gost} doesn't play
+% well with american/british/english
+%
+% \DeclareLanguageMappingSuffix{-gost}
+\DeclareLanguageMapping{american}{american-gost}
+\DeclareLanguageMapping{brazilian}{brazilian-gost}
+\DeclareLanguageMapping{british}{british-gost}
+\DeclareLanguageMapping{catalan}{catalan-gost}
+\DeclareLanguageMapping{croatian}{croatian-gost}
+\DeclareLanguageMapping{english}{english-gost}
+\DeclareLanguageMapping{french}{french-gost}
+\DeclareLanguageMapping{galician}{galician-gost}
+\DeclareLanguageMapping{german}{german-gost}
+\DeclareLanguageMapping{greek}{greek-gost}
+\DeclareLanguageMapping{icelandic}{icelandic-gost}
+\DeclareLanguageMapping{italian}{italian-gost}
+\DeclareLanguageMapping{portuguese}{portuguese-gost}
+\DeclareLanguageMapping{russian}{russian-gost}
+\DeclareLanguageMapping{slovene}{slovene-gost}
+\DeclareLanguageMapping{spanish}{spanish-gost}
+
+%
+% Sorting Schemes
+%
+\DeclareSortingTemplate{nty}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{heading}
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{sortvolume}
+ \field[padside=left,padwidth=4,padchar=0]{volume}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{book}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{part}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{issue}
+ \literal{0000}
+ }
+}
+
+\DeclareSortingTemplate{nyvt}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{heading}
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{sortvolume}
+ \field[padside=left,padwidth=4,padchar=0]{volume}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{book}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{part}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{issue}
+ \literal{0000}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+}
+
+\DeclareSortingTemplate{ynt}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{heading}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ \literal{9999}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+}
+
+\DeclareSortingTemplate{ydnt}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{heading}
+ }
+ \sort[direction=descending]{
+ \field[strside=left,strwidth=4]{sortyear}
+ \field[strside=left,strwidth=4]{year}
+ \literal{9999}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+}
+
+\DeclareSortingTemplate{nyt}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{heading}
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortvolume}
+ \field[padside=left,padwidth=4,padchar=0]{volume}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{book}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{part}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{issue}
+ \literal{0000}
+ }
+}
+
+\DeclareSortingTemplate{ntvy}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{heading}
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortvolume}
+ \field[padside=left,padwidth=4,padchar=0]{volume}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{book}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{part}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{issue}
+ \literal{0000}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+}
+
+\DeclareSortingTemplate{anyt}{
+ \sort{
+ \field{presort}
+ }
+ \sort{
+ \field{labelalpha}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{heading}
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{volume}
+ \literal{0000}
+ }
+}
+
+\DeclareSortingTemplate{anyvt}{
+ \sort{
+ \field{presort}
+ }
+ \sort{
+ \field{labelalpha}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{heading}
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{volume}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{book}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{part}
+ \literal{0000}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{issue}
+ \literal{0000}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{maintitle}
+ \field{title}
+ }
+}
+
+\DeclareSortExclusion{inbook,incollection,inproceeding,bookinbook,suppbook,suppcollection,inreference}
+ {editor,volume,maintitle}
+
+\DeclareLabelname{%
+ \field{shortauthor}
+ \field{author}
+ \field{shorteditor}
+ \field{editor}
+ \field{translator}
+}
+
+\DeclareLabeltitle[book,collection,reference,proceedings]{%
+ \field{shorttitle}
+ \field{maintitle}
+ \field{title}}
+
+\DeclareDataInheritance{*}{*}{%
+ \noinherit{heading}}
+\DeclareDataInheritance{periodical}{article}{%
+ \noinherit{endyear}\noinherit{endmonth}\noinherit{endday}
+ \inherit{credits}{journalcredits}}
+\DeclareDataInheritance{mvbook,mvcollection,mvproceedings}
+ {book,collection,inbook,incollection,inproceedings}{%
+ \noinherit{endyear}\noinherit{endmonth}\noinherit{endday}}
+\DeclareDataInheritance{mvbook,mvcollection,mvproceedings,mvreference}
+ {book,collection,proceedings,reference}{%
+ \inherit{shorttitle}{shorttitle}}
+
+\DeclareDataInheritance{article}{periodical}{%
+ \noinherit{pagetotal}}
+\DeclareDataInheritance{book}{inbook,bookinbook,suppbook}{%
+ \inherit{translator}{booktranslator}
+ \inherit{introduction}{bookintroduction}
+ \inherit{commentator}{bookcommentator}
+ \inherit{annotator}{bookannotator}
+ \inherit{foreword}{bookforeword}
+ \inherit{afterword}{bookafterword}
+ \inherit{origlanguage}{bookoriglanguage}
+ \inherit{credits}{bookcredits}
+ \noinherit{pagetotal}}
+\DeclareDataInheritance{collection,reference}{incollection,inreference,suppcollection}{%
+ \inherit{translator}{booktranslator}
+ \inherit{introduction}{bookintroduction}
+ \inherit{commentator}{bookcommentator}
+ \inherit{annotator}{bookannotator}
+ \inherit{foreword}{bookforeword}
+ \inherit{afterword}{bookafterword}
+ \inherit{origlanguage}{bookoriglanguage}
+ \inherit{credits}{bookcredits}
+ \noinherit{pagetotal}}
+\DeclareDataInheritance{proceedings}{inproceedings}{%
+ \inherit{translator}{booktranslator}
+ \inherit{introduction}{bookintroduction}
+ \inherit{commentator}{bookcommentator}
+ \inherit{annotator}{bookannotator}
+ \inherit{foreword}{bookforeword}
+ \inherit{afterword}{bookafterword}
+ \inherit{origlanguage}{bookoriglanguage}
+ \inherit{credits}{bookcredits}
+ \noinherit{pagetotal}}
+
+% Related
+
+\renewbibmacro*{related:bytranslator}[1]{%
+ \entrydata{#1}{%
+ \renewbibmacro*{name:hook}[1]{%
+ \ifnumequal{\value{listcount}}{1}
+ {\begingroup
+ \mkrelatedstring%
+ \lbx@initnamehook{#1}%
+ \endgroup}
+ {}}%
+ \printnames[bytranslator]{translator}%
+ \setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\space}%
+ \usebibmacro{author}%
+ \setunit*{\labelnamepunct}%
+ \usebibmacro{title}%
+ \setunit{\addspace}%
+ \printtext[parens]{%
+ \printlist{location}%
+ \iflistundef{publisher}
+ {\setunit*{\addcomma\space}}
+ {\setunit*{\addcolon\space}}%
+ \printlist{publisher}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date}}}}
+
+\renewbibmacro*{related:multivolume}[1]{%
+ \entrydata*{#1}{%
+ \usebibmacro{volume+parts}{\newunit}%
+ \setunit{\addcolondelim}%
+ \ifboolexpr{
+ test {\ifnamesequal{author}{savedauthor}}
+ or
+ test {\ifnameundef{author}}
+ }
+ {}
+ {\usebibmacro{author}%
+ \setunit*{\labelnamepunct}}%
+ \usebibmacro{title}%
+ \setunit{\respdelim}%
+ \iflistsequal{credits}{savedcredits}
+ {}
+ {\usebibmacro{credits}}%
+ \setunit*{\resppunct}%
+ \ifnamesequal{editor}{savededitor}
+ {}
+ {\usebibmacro{byeditor}}%
+ \setunit*{\resppunct}%
+ \ifnamesequal{translator}{savedtranslator}
+ {}
+ {\usebibmacro{bytranslator+others}}%
+ \newunit\newblock
+ \usebibmacro{date}%
+ \newunit\newblock
+ \printfield{pagetotal}%
+ \usebibmacro{finentry}}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx
new file mode 100644
index 0000000000..0ced040d8a
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx
@@ -0,0 +1,8 @@
+\ProvidesFile{gost-alphabetic-min.cbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireCitationStyle{gost-alphabetic}
+
+\ExecuteBibliographyOptions{citeisbn=false,citeurl=false,citedoi=false,citeeprint=false}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx
new file mode 100644
index 0000000000..682588a555
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx
@@ -0,0 +1,7 @@
+\ProvidesFile{gost-alphabetic.cbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireCitationStyle{alphabetic}
+\ExecuteBibliographyOptions{labelalpha,autocite=inline}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx
new file mode 100644
index 0000000000..32856572c3
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx
@@ -0,0 +1,8 @@
+\ProvidesFile{gost-authoryear-min.cbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireCitationStyle{gost-authoryear}
+
+\ExecuteBibliographyOptions{citeisbn=false,citeurl=false,citedoi=false,citeeprint=false}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx
new file mode 100644
index 0000000000..120b0e932d
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx
@@ -0,0 +1,338 @@
+\ProvidesFile{gost-authoryear.cbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\ExecuteBibliographyOptions{dashed=false,citetracker=constrict,loccittracker=constrict,
+ dropdates=false,
+ labeldateparts,labeltitleyear,uniquename=init,
+ uniquelist,ibidtracker=constrict,pagetracker,sortcites,autocite=inline,
+ citeisbn,citeurl,citedoi,citeeprint}
+
+\providecommand*{\mkibid}[1]{#1}
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+\newbool{cbx:gost:parens}
+\newbool{cbx:gost:loccit}
+
+\DeclareBibliographyOption{ibidpage}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{loccittracker=constrict}}
+ {\ExecuteBibliographyOptions{loccittracker=false}}}
+
+\renewcommand*{\postnotedelim}{\addcomma\addspace}
+\renewcommand*{\nameyeardelim}{\addcomma\addspace}
+\renewcommand*{\compcitedelim}{\addsemicolon\space}
+\newcommand{\mkbibbracketssentence}[1]{\bibsentence\mkbibbrackets{#1}\midsentence}
+
+\DeclareFieldFormat*{citetitle}{\mkbibemph{#1}}
+\DeclareFieldFormat{extratitleyear}{\mknumalph{#1}}
+\DeclareFieldFormat{citeheading}{#1}
+
+\newbibmacro*{cite:init}{%
+ \global\boolfalse{cbx:gost:loccit}%
+ \ifnumless{\value{multicitecount}}{2}
+ {\global\boolfalse{cbx:gost:parens}%
+ \global\undef\cbx@lasthash
+ \global\undef\cbx@lastyear}
+ {\iffieldundef{prenote}
+ {}
+ {\global\undef\cbx@lasthash%
+ \global\undef\cbx@lastyear}}}
+
+\newbibmacro*{cite:reinit}{%
+ \global\undef\cbx@lasthash
+ \global\undef\cbx@lastyear}
+
+\newbibmacro*{cite}{%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\iffieldundef{heading}
+ {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
+ {\ifnameundef{labelname}
+ {% no labelname
+ \iffieldundef{label}
+ {% no label, so print labeltitle (always present)
+ \blx@gost@ifneedsdate
+ {\printtext[citetitle]{\printfield[titlecase]{labeltitle}}
+ \setunit{\nameyeardelim}%
+ \usebibmacro{cite:labelyear+extras}{bibhyperref}}
+ {\printtext[bibhyperref]{%
+ \printtext[citetitle]{\printfield[titlecase]{labeltitle}}}}}
+ {% label exists, print it
+ \usebibmacro{cite:label+volume+parts}}}%
+ {% labelname, no labelyear
+ \usebibmacro{cite:labelname+volume+parts}{bibhyperref}%
+ \usebibmacro{cite:reinit}}}%
+ {% both labelname, labelyear exist
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
+ \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
+ {\setunit{\addcomma}%
+ \usebibmacro{cite:extradate}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:labelyear+extras}{bibhyperref}%
+ \savefield{labelyear}{\cbx@lastyear}}}
+ {\blx@gost@ifneedsdate
+ {\usebibmacro{cite:labelname+volume+parts}{}%
+ \setunit{\nameyeardelim}%
+ \usebibmacro{cite:labelyear+extras}{bibhyperref}%
+ \savefield{labelyear}{\cbx@lastyear}}%
+ {\usebibmacro{cite:labelname+volume+parts}{bibhyperref}}%
+ \savefield{namehash}{\cbx@lasthash}}}}
+ {\usebibmacro{cite:heading}{bibhyperref}%
+% \iffieldundef{labelyear}
+% {}
+% {\setunit{\nameyeardelim}%
+% \usebibmacro{cite:labelyear+extras}{bibhyperref}}
+ \usebibmacro{cite:reinit}}}}%
+ {\usebibmacro{cite:shorthand}%
+ \usebibmacro{cite:reinit}}%
+ \setunit{\multicitedelim}}
+
+\newbibmacro*{cite:labelname+volume+parts}[1]{%
+ \printtext[#1]{\printnames{labelname}}%
+ \setunit*{\addcomma\space}%
+ %\usebibmacro{volume+parts}{\setunit*{\addcomma\space}}%
+}
+
+\newbibmacro*{cite:label+volume+parts}{%
+ \iffieldundef{label}
+ {}
+ {\printtext[bibhyperref]{\printfield{label}}}%
+ \setunit*{\addcomma\space}%
+ %\usebibmacro{volume+parts}{\setunit*{\addcomma\space}}%
+}
+
+\newbibmacro*{cite:labelyear+extras}[1]{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[#1]{%
+ \usebibmacro{printyear}{label}% print labelyear
+ \usebibmacro{cite:extras}}}}
+
+\newbibmacro*{citeyear}{%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\iffieldundef{labelyear}
+ {\usebibmacro{cite:label}%
+ \usebibmacro{cite:reinit}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
+ \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
+ {\setunit{\addcomma}%
+ \usebibmacro{cite:extradate}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:labelyear+extradate}%
+ \savefield{labelyear}{\cbx@lastyear}}}
+ {\usebibmacro{cite:labelyear+extradate}%
+ \savefield{namehash}{\cbx@lasthash}%
+ \savefield{labelyear}{\cbx@lastyear}}}}}
+ {\usebibmacro{cite:shorthand}%
+ \usebibmacro{cite:reinit}}%
+ \setunit{\multicitedelim}}
+
+\newbibmacro*{textcite}{%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {\iffieldundef{shorthand}
+ {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
+ \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
+ {\setunit{\addcomma}%
+ \usebibmacro{cite:extradate}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:labelyear+extradate}%
+ \savefield{labelyear}{\cbx@lastyear}}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:shorthand}%
+ \global\undef\cbx@lastyear}}
+ {\ifnameundef{labelname}
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:label}%
+ \setunit{%
+ \global\booltrue{cbx:gost:parens}%
+ \addspace\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\usebibmacro{cite:labelyear+extradate}}}
+ {\usebibmacro{cite:shorthand}}}
+ {\printnames{labelname}%
+ \setunit{%
+ \global\booltrue{cbx:gost:parens}%
+ \addspace\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\iffieldundef{labelyear}
+ {\usebibmacro{cite:label}}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\usebibmacro{cite:labelyear+extradate}}}%
+ \savefield{labelyear}{\cbx@lastyear}}
+ {\usebibmacro{cite:shorthand}%
+ \global\undef\cbx@lastyear}}%
+ \stepcounter{textcitecount}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \setunit{%
+ \ifbool{cbx:gost:parens}
+ {\bibcloseparen\global\boolfalse{cbx:gost:parens}}
+ {}%
+ \textcitedelim}}
+
+\newbibmacro*{cite:heading}[1]{%
+ \printtext[#1]{\printfield[citeheading]{heading}}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperref]{\printfield{shorthand}}}
+
+\newbibmacro*{cite:label}{%
+ \iffieldundef{label}
+ {\printtext[bibhyperref]{\printtext[citetitle]{\printfield[titlecase]{labeltitle}}}}
+ {\printtext[bibhyperref]{\printfield{label}}}}
+
+\newbibmacro*{cite:labelyear+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[bibhyperref]{%
+ \usebibmacro{printyear}{label}%
+ \printfield{extradate}}}}
+
+\newbibmacro*{cite:extradate}{%
+ \iffieldundef{extradate}
+ {}
+ {\printtext[bibhyperref]{\printfield{extradate}}}}
+
+\newbibmacro*{cite:ibid}{%
+ \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}%
+ \ifloccit
+ {\global\booltrue{cbx:gost:loccit}}
+ {}}
+
+\newbibmacro*{cite:postnote}{%
+ \ifbool{cbx:gost:loccit}
+ {}
+ {\usebibmacro{postnote}}}
+
+\newbibmacro*{textcite:postnote}{%
+ \ifbool{cbx:gost:loccit}
+ {}
+ {\usebibmacro{postnote}}%
+ \ifthenelse{\value{multicitecount}=\value{multicitetotal}}
+ {\setunit{}%
+ \printtext{%
+ \ifbool{cbx:gost:parens}
+ {\bibcloseparen\global\boolfalse{cbx:gost:parens}}
+ {}}}
+ {\setunit{%
+ \ifbool{cbx:gost:parens}
+ {\bibcloseparen\global\boolfalse{cbx:gost:parens}}
+ {}%
+ \textcitedelim}}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand*{\cite}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibbracketssentence]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand*{\parencite}[\mkbibbracketssentence]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbracketssentence\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{cite:init}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{textcite}}
+ {}
+ {\usebibmacro{textcite:postnote}}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite]
+ {\gdef\cbx@savedkeys{}%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \DeferNextCitekeyHook%
+ \usebibmacro{cite:init}}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}%
+ \global\clearfield{multipostnote}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\stepcounter{textcitetotal}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {\protected@xappto\cbx@savedcites{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+
+\newrobustcmd{\cbx@textcite@init}[2]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \def\cbx@savedcites{#1}#2\cbx@savedcites\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{}
+
+\DeclareMultiCiteCommand{\cites}{\cite}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\parencites}[\mkbibbracketssentence]
+ {\parencite}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]
+ {\footcite}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext]
+ {\footcitetext}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbracketssentence\mkbibfootnote]
+ {\smartcite}{\setunit{\multicitedelim}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx
new file mode 100644
index 0000000000..7178cf5dab
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx
@@ -0,0 +1,10 @@
+\ProvidesFile{gost-footnote-min.cbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireCitationStyle{gost-footnote}
+\renewbibmacro*{cite:clearfields}{%
+ \usebibmacro{setup:min}}
+
+\ExecuteBibliographyOptions{citeisbn=false,citeurl=false,citedoi=false,citeeprint=false}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx
new file mode 100644
index 0000000000..d0f65d3540
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx
@@ -0,0 +1,10 @@
+\ProvidesFile{gost-footnote.cbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireCitationStyle{gost-inline}
+
+\renewbibmacro*{cite:clearfields}{}
+
+\ExecuteBibliographyOptions{autocite=footnote,citeisbn}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx
new file mode 100644
index 0000000000..e9afa059ce
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx
@@ -0,0 +1,10 @@
+\ProvidesFile{gost-inline-min.cbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireCitationStyle{gost-inline}
+\renewbibmacro*{cite:clearfields}{%
+ \usebibmacro{setup:min}}
+
+\ExecuteBibliographyOptions{citeisbn=false,citeurl=false,citedoi=false,citeeprint=false}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx
new file mode 100644
index 0000000000..9cda2b37a0
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx
@@ -0,0 +1,585 @@
+\ProvidesFile{gost-inline.cbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\DeclareLabelname
+ [inbook,incollection,inproceedings,inreference,suppbook,suppcollection,suppperiodical,bookinbook]
+ {\field{shortauthor}\field{author}\field{translator}}
+
+\DeclareFieldFormat{bibhyperlink}{%
+ \bibhyperlink{\thefield{entrykey}:\csuse{cbx@\iffootnote{f}{t}@\thefield{entrykey}}}{#1}}
+\DeclareFieldFormat{bibhypertarget}{%
+ \bibhypertarget{\thefield{entrykey}:\the\value{instcount}}{#1}}
+\providecommand*{\mkibid}[1]{#1}
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\newtoggle{cbx:loccit} % needed because \blx@loccittracker is executed before 'postnote'
+\newtoggle{cbx:xrefloccit}
+\newtoggle{cbx:opt:inbookibid}
+
+\DeclareBibliographyOption{strict}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{ibidtracker=constrict,loccittracker=constrict}}
+ {\ExecuteBibliographyOptions{ibidtracker=context,loccittracker=context}}}
+
+\DeclareBibliographyOption{citepages}[permit]{%
+ \ifcsdef{cbx@opt@citepages@#1}
+ {\csuse{cbx@opt@citepages@#1}}
+ {\PackageError{biblatex}
+ {Invalid option 'citepages=#1'}
+ {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}}
+
+\providebibmacro*{cite:citepages}{}
+\providebibmacro*{cite:full:citepages}{}
+\providebibmacro*{cite:postnote}{}
+
+\def\cbx@opt@citepages@permit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@suppress{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \clearfield{pages}%
+ \clearfield{pagetotal}}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@omit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \ifboolexpr{
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ test {\iffieldpages{postnote}}
+ }
+ {\clearfield{pages}%
+ \clearfield{pagetotal}}
+ {}}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@separate{%
+ \providetoggle{cbx:fullcite}%
+ \renewbibmacro*{cite:citepages}{%
+ \global\togglefalse{cbx:fullcite}}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \global\toggletrue{cbx:fullcite}}%
+ \renewbibmacro*{cite:postnote}{%
+ \ifboolexpr{
+ togl {cbx:fullcite}
+ and
+ test {\iffieldpages{postnote}}
+ and
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ (
+ not test {\iffieldundef{pages}}
+ or
+ not test {\iffieldundef{pagetotal}}
+ )
+ }
+ {\usebibmacro{cite:postnote:pages}}
+ {\usebibmacro{cite:postnote:ibidpage}}}%
+ \providebibmacro*{cite:postnote:pages}{%
+ \setunit{\postnotedelim}%
+ \bibstring{thiscite}%
+ \setunit{\addspace}%
+ \printfield{postnote}}}
+
+\DeclareBibliographyOption{inbookibid}[true]{%
+ \settoggle{cbx:opt:inbookibid}{#1}%
+ \iftoggle{cbx:opt:inbookibid}
+ {\def\blx@mincrossrefs{1}}
+ {}}
+
+\DeclareNameAlias{labelname}{heading}
+\DeclareFieldFormat*{citetitle}{#1}
+
+\renewcommand{\postnotedelim}{\addperiod\space}
+\renewcommand{\multicitedelim}{\setunit{\addsemicolondelim}}
+
+% two xref trackers below should go before the option execution
+%
+% xref ibidem tracker
+
+\appto\blx@ibidtracker@global{%
+ \ifbool{citetracker}
+ {\blx@imc@iffieldundef{crossref}
+ {\blx@imc@iffieldundef{xref}
+ {\global\undef\blx@lastxref@text}
+ {\blx@imc@savefield{xref}{\blx@lastxref@text}}}
+ {\blx@imc@savefield{crossref}{\blx@lastxref@text}}}
+ {}}
+
+\appto\blx@ibidtracker@context{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@imc@iffieldundef{crossref}
+ {\blx@imc@iffieldundef{xref}
+ {\global\undef\blx@lastxref@foot}
+ {\blx@imc@savefield{xref}{\blx@lastxref@foot}}}
+ {\blx@imc@savefield{crossref}{\blx@lastxref@foot}}}
+ {\blx@imc@iffieldundef{crossref}
+ {\blx@imc@iffieldundef{xref}
+ {\global\undef\blx@lastxref@text}
+ {\blx@imc@savefield{xref}{\blx@lastxref@text}}}
+ {\blx@imc@savefield{crossref}{\blx@lastxref@text}}}}
+ {}}
+
+\appto\blx@ibidreset@force{%
+ \global\undef\blx@lastxref@text%
+ \global\undef\blx@lastxref@foot}
+
+\appto\blx@ibidreset@global{%
+ \global\undef\blx@lastxref@text}
+
+\appto\blx@ibidreset@context{%
+ \iftoggle{blx@footnote}
+ {\global\undef\blx@lastxref@foot}
+ {\global\undef\blx@lastxref@text}}
+
+\protected\appto\abx@savetrackers{%
+ \global\let\blx@saved@lastxref@text\blx@lastxref@text%
+ \global\let\blx@saved@lastxref@foot\blx@lastxref@foot}
+
+\protected\appto\abx@resttrackers{%
+ \global\let\blx@lastxref@text\blx@saved@lastxref@text%
+ \global\let\blx@lastxref@foot\blx@saved@lastxref@foot}
+
+\protected\appto\abx@cleartrackers{%
+ \global\undef\blx@saved@lastxref@text%
+ \global\undef\blx@saved@lastxref@foot}
+
+% {<true>}{<false>}
+
+\def\blx@xrefibid@check#1{%
+ \ifboolexpr{
+ test {\blx@imc@iffieldequalcs{crossref}{blx@lastxref@#1}}
+ or
+ test {\blx@imc@iffieldequals{xref}{blx@lastxref@#1}}
+ }}
+
+\def\blx@ifxrefibid@global{%
+ \blx@xrefibid@check{text}}
+
+\def\blx@ifxrefibid@context{%
+ \iftoggle{blx@footnote}
+ {\blx@xrefibid@check{foot}}
+ {\blx@xrefibid@check{text}}}
+
+\def\blx@ifxrefibid@strict{%
+ \blx@ifcitesingle
+ {\blx@ifciteibid@global}
+ {\@secondoftwo}}%
+
+\def\blx@ifxrefibid@constrict{%
+ \blx@ifcitesingle
+ {\iftoggle{blx@footnote}
+ {\blx@ifmpfncheck
+ {\blx@xrefibid@check{foot}}
+ {\@secondoftwo}}
+ {\blx@xrefibid@check{text}}}
+ {\@secondoftwo}}%
+
+\blx@regimcs{\ifxrefibid}
+
+\appto\blx@blxinit{%
+ \appto\blx@TE@hook{%
+ \def\ifxrefibid{\blx@TE\blx@imc@ifxrefibid}}}
+
+\appto\blx@opt@ibidtracker@true{%
+ \let\blx@imc@ifxrefibid\blx@ifxrefibid@global}
+\appto\blx@opt@ibidtracker@false{%
+ \let\blx@imc@ifxrefibid\@secondoftwo}
+\appto\blx@opt@ibidtracker@context{%
+ \let\blx@imc@ifxrefibid\blx@ifxrefibid@context}
+\appto\blx@opt@ibidtracker@strict{%
+ \let\blx@imc@ifxrefibid\blx@ifxrefibid@strict}
+\appto\blx@opt@ibidtracker@constrict{%
+ \let\blx@imc@ifxrefibid\blx@ifxrefibid@constrict}
+
+% end of xref ibidem tracker code
+
+% xrefloccit tracker
+% {<true>}{<false>}
+
+\def\blx@ifxrefloccit@global{%
+ \blx@xrefloccit@check{text}}
+
+\def\blx@ifxrefloccit@context{%
+ \iftoggle{blx@footnote}
+ {\blx@xrefloccit@check{foot}}
+ {\blx@xrefloccit@check{text}}}
+
+\def\blx@ifxrefloccit@strict{%
+ \blx@ifcitesingle
+ {\blx@xrefloccit@numcheck{text}}
+ {\@secondoftwo}}%
+
+\def\blx@ifxrefloccit@constrict{%
+ \blx@ifcitesingle
+ {\iftoggle{blx@footnote}
+ {\blx@ifmpfncheck
+ {\blx@xrefloccit@numcheck{foot}}
+ {\@secondoftwo}}
+ {\blx@xrefloccit@numcheck{text}}}
+ {\@secondoftwo}}
+
+\def\blx@xrefloccit@check#1{%
+ \blx@imc@ifxrefibid
+ {\blx@imc@iffieldundef{postnote}
+ {\@secondoftwo}
+ {\blx@imc@iffieldequalcs{postnote}{blx@xreflastnote@#1}}}
+ {\@secondoftwo}}
+
+\def\blx@xrefloccit@numcheck#1{%
+ \blx@imc@ifxrefibid
+ {\blx@imc@iffieldundef{postnote}
+ {\@secondoftwo}
+ {\expandafter\blx@imc@ifpages
+ \expandafter{\abx@field@postnote}
+ {\blx@imc@iffieldequalcs{postnote}{blx@xreflastnote@#1}}
+ {\@secondoftwo}}}
+ {\@secondoftwo}}
+
+\blx@regimcs{\ifxrefloccit}
+
+% loccit tracker patching
+
+\appto\blx@loccittracker@global{%
+ \ifbool{citetracker}
+ {\blx@xrefloccit@tracker{text}}
+ {}}
+
+\appto\blx@loccittracker@context{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@xrefloccit@tracker{foot}}
+ {\blx@xrefloccit@tracker{text}}}
+ {}}
+
+\appto\blx@loccittracker@strict{%
+ \ifbool{citetracker}
+ {\blx@xrefloccit@stricttracker{text}}
+ {}}
+
+\appto\blx@loccittracker@constrict{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@mpfnsave
+ \blx@xrefloccit@stricttracker{foot}}
+ {\blx@xrefloccit@stricttracker{text}}}
+ {}}
+
+\def\blx@xrefloccit@tracker#1{%
+ \global\csundef{blx@xreflastnote@#1}%
+ \blx@imc@iffieldundef{postnote}
+ {}
+ {\global\cslet{blx@xreflastnote@#1}\abx@field@postnote}}
+
+\def\blx@xrefloccit@stricttracker#1{%
+ \global\csundef{blx@xreflastnote@#1}%
+ \blx@imc@iffieldundef{postnote}
+ {}
+ {\blx@ifcitesingle
+ {\expandafter\blx@imc@ifpages
+ \expandafter{\abx@field@postnote}
+ {\global\cslet{blx@xreflastnote@#1}\abx@field@postnote}
+ {}}
+ {}}}
+
+\apptocmd\blx@loccit@reset{% #1
+ \begingroup
+ \global\csundef{blx@xreflastnote@#1}%
+ \endgroup}
+ {}
+ {}
+
+\protected\appto\abx@savetrackers{%
+ \begingroup
+ \global\csletcs{blx@saved@xreflastnote@text}{blx@xreflastnote@text}%
+ \global\csletcs{blx@saved@xreflastnote@foot}{blx@xreflastnote@foot}%
+ \endgroup}
+
+\protected\appto\abx@resttrackers{%
+ \begingroup
+ %\blx@loccit@reset{text}%
+ \global\csletcs{blx@xreflastnote@text}{blx@saved@xreflastnote@text}%
+ %\blx@loccit@reset{foot}%
+ \global\csletcs{blx@xreflastnote@foot}{blx@saved@xreflastnote@foot}%
+ \endgroup}
+
+\protected\appto\abx@cleartrackers{%
+ \begingroup
+ \global\csundef{blx@saved@xreflastnote@text}%
+ \global\csundef{blx@saved@xreflastnote@foot}%
+ \endgroup}
+
+\appto\blx@blxinit{%
+ \appto\blx@TE@hook{%
+ \def\ifxrefloccit{\blx@TE\blx@imc@ifxrefloccit}}}
+
+\appto\blx@opt@loccittracker@true{%
+ \let\blx@imc@ifxrefloccit\blx@ifxrefloccit@global}
+\appto\blx@opt@loccittracker@false{%
+ \let\blx@imc@ifxrefloccit\@secondoftwo}
+\appto\blx@opt@loccittracker@context{%
+ \let\blx@imc@ifxrefloccit\blx@ifxrefloccit@context}
+\appto\blx@opt@loccittracker@strict{%
+ \let\blx@imc@ifxrefloccit\blx@ifxrefloccit@strict}
+\appto\blx@opt@loccittracker@constrict{%
+ \let\blx@imc@ifxrefloccit\blx@ifxrefloccit@constrict}
+
+% end of xrefloccit tracker code
+
+\ExecuteBibliographyOptions{citetracker=constrict,autocite=inline,inbookibid=false,
+ citepages=omit,strict,opcittracker=constrict,labeltitle,
+ citeisbn=false,citeurl=false,citedoi=false,citeeprint=false}
+
+\newbibmacro*{set:cbx:loccit:toggles}{%
+ \ifloccit
+ {\global\toggletrue{cbx:loccit}}
+ {\global\togglefalse{cbx:loccit}}%
+ \ifxrefloccit
+ {\global\toggletrue{cbx:xrefloccit}}
+ {\global\togglefalse{cbx:xrefloccit}}}
+
+\newbibmacro*{cite:seen}{% the same for cite and footcite
+ \iffirstonpage
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:short}}
+ {\usebibmacro{cite:shorthand}}}
+ {\ifciteibid
+ {\usebibmacro{cite:ibid}}
+ {\ifopcit
+ {\usebibmacro{cite:opcit}}
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:short}}
+ {\usebibmacro{cite:shorthand}}}}}}
+
+\newbibmacro*{cite}{%
+ \usebibmacro{cite:citepages}%
+ \usebibmacro{set:cbx:loccit:toggles}%
+ \ifciteseen
+ {\usebibmacro{cite:seen}}
+ {\usebibmacro{cite:full}%
+ \usebibmacro{cite:save}{t}}}
+
+\newbibmacro*{cite:save:bookref}[1]{%
+ \usebibmacro{cbx:bookibid:check}
+ {}
+ {\iffieldundef{crossref}
+ {\iffieldundef{xref}
+ {}
+ {\csxdef{cbx@#1@bookref@\thefield{xref}}{\thefield{entrykey}:\the\value{instcount}}}}
+ {\csxdef{cbx@#1@bookref@\thefield{crossref}}{\thefield{entrykey}:\the\value{instcount}}}}}
+
+\newbibmacro*{cite:save}[1]{%
+ \csxdef{cbx@#1@\thefield{entrykey}}{\the\value{instcount}}%
+ \label{cbx@\the\value{instcount}}% what for?
+ \usebibmacro{cite:save:bookref}{#1}}
+
+\newbibmacro{cite:clearfields}{%
+ \renewbibmacro*{series+number}{}%
+ \clearfield{addendum}%
+ \clearfield{pubstate}%
+ \clearfield{titleaddon}}
+
+\newbibmacro*{cite:full}{%
+ \usebibmacro{cite:full:citepages}%
+ \printtext[bibhypertarget]{%
+ \usedriver
+ {\usebibmacro{cite:clearfields}}%\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}}%
+ \usebibmacro{shorthandintro}}
+
+\newbibmacro*{cite:short}{%
+ \global\togglefalse{cbx:loccit}% always print postnote after short citation
+ \global\togglefalse{cbx:xrefloccit}%
+ \ifnameundef{labelname}
+ {\printfield{label}}
+ {\printnames{labelname}}%
+ \iffieldundef{labeltitle}
+ {}
+ {\setunit*{\labelnamepunct}%
+ \printtext[bibhyperlink]{%
+ \printtext[citetitle]{\printfield[titlecase]{labeltitle}}}}%
+ \ifboolexpr{
+ ( test {\ifentrytype{book}} % do we use macro{volume+parts} ?
+ or test {\ifentrytype{collection}}
+ or test {\ifentrytype{proceedings}}
+ or test {\ifentrytype{reference}}
+ )
+ and not
+ ( test {\iffieldundef{volume}} % does macro{volume+parts} prints anything ?
+ and test {\iffieldundef{part}}
+ and test {\iffieldundef{issue}}
+ and test {\iffieldundef{book}}
+ )
+ }
+ {\newunit%
+ \printtext[bibhyperlink]{\usebibmacro{volume+parts}{\setunit*{\addcomma\space}}}}%
+ {}}
+
+\newbibmacro*{cite:opcit}{%
+ \ifnameundef{labelname}
+ {\printfield{label}}
+ {\printnames{labelname}}%
+ \setunit*{\labelnamepunct}%
+ \bibsentence%
+ \printtext[bibhyperlink]{%
+ \bibstring[\mkibid]{opcit}}}
+
+\newbibmacro*{cite:ibid}{%
+ \bibsentence\printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printfield[bibhyperlink]{shorthand}}
+
+\newbibmacro*{cite:postnote:ibidpage}{%
+ \ifboolexpr{
+ togl {cbx:loccit}
+ or
+ togl {cbx:xrefloccit}
+ }
+ {}
+ {\usebibmacro{postnote}}}
+
+\newbibmacro*{footcite}{%
+ \usebibmacro{cite:citepages}%
+ \usebibmacro{set:cbx:loccit:toggles}%
+ \ifciteseen
+ {\usebibmacro{cite:seen}}
+ {\usebibmacro{cite:full}%
+ \usebibmacro{cite:save}{f}}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \iffootnote
+ {\usebibmacro{footcite}}
+ {\usebibmacro{cite}}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \iffootnote
+ {\usebibmacro{footcite}}
+ {\usebibmacro{cite}}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{footcite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{footcite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \iffootnote
+ {\usebibmacro{footcite}}
+ {\usebibmacro{cite}}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\newbibmacro*{textcite}{%
+ \ifnameundef{labelname}
+ {\printtext[citetitle]{\printfield[titlecase]{labeltitle}}}
+ {\printnames{labelname}}}
+
+\newbibmacro*{textcite:init}{%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \iffirstcitekey
+ {\global\undef\cbx@lasthash}
+ {}}
+
+\newbibmacro*{textcite:count}{%
+ \stepcounter{textcitetotal}%
+ \ifnumgreater{\value{labelname}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{labelname}}}
+ {}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{textcite:init}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\iffirstcitekey
+ {}
+ {\textcitedelim}%
+ \stepcounter{textcitecount}%
+ \usebibmacro{textcite}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite]
+ {\usebibmacro{textcite:init}%
+ \gdef\cbx@savedkeys{}%
+ \DeferNextCitekeyHook}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@footcite@args{%
+ (\thefield{multiprenote})(\thefield{multipostnote})}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\usebibmacro{textcite:count}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \ifnumequal{\value{citecount}}{\value{citetotal}}
+ {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}%
+ \protected@xappto\cbx@footcite@args{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}%
+ \iflastcitekey
+ {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}%
+ \protected@xappto\cbx@footcite@args{\nopunct}}
+ {}}
+ {}}
+ {}
+ {}
+
+\newrobustcmd{\cbx@textcite@init}[3]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \setcounter{textcitemaxnames}{0}%
+ \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3%
+ \cbx@textcite@args\empty\cbx@footcite@args\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}
+ [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{%
+ \UseNextMultiCiteHook%
+ \AtNextMultiCite{%
+ \renewbibmacro{multiprenote}{}%
+ \renewbibmacro{multipostnote}{}}}{}{}
+
+\renewbibmacro*{cbx:bookibid:check}[2]{%
+ \ifboolexpr{%
+ togl {cbx:opt:inbookibid}
+ and
+ test {\ifcitation}
+ and
+ test {\ifxrefibid}
+ }
+ {#1}
+ {#2}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx
new file mode 100644
index 0000000000..40a6c594d2
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx
@@ -0,0 +1,8 @@
+\ProvidesFile{gost-numeric-min.cbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireCitationStyle{gost-numeric}
+
+\ExecuteBibliographyOptions{citeisbn=false,citeurl=false,citedoi=false,citeeprint=false}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx
new file mode 100644
index 0000000000..9c2645cca9
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx
@@ -0,0 +1,8 @@
+\ProvidesFile{gost-numeric.cbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\RequireCitationStyle{numeric-comp}
+\ExecuteBibliographyOptions{dashed=false,citeisbn,citeurl,citedoi,citeeprint}
+\renewcommand*{\multicitedelim}{\addsemicolon\space}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx
new file mode 100644
index 0000000000..3c1c59fa3f
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx
@@ -0,0 +1,125 @@
+\ProvidesFile{biblatex-gost.dbx}
+[2018/02/20\space v1.17\space biblatex-gost data model]
+
+% Biblatex-GOST data model
+
+\DeclareDatamodelFields[type=field, datatype=range]{
+ number,
+ book,
+ part,
+ volume,
+ issue,
+}
+
+\DeclareDatamodelFields[type=field, datatype=literal]{
+ books,parts,issues,
+ volsorder,
+ sortvolume,
+ systemreq,
+ publication,
+ ipc,
+ requestnumber,
+ prioritynumber,
+ prioritycountry,
+ authorcountry,
+ science,
+ specialitycode,
+ speciality,
+ heading,
+}
+
+\DeclareDatamodelFields[type=field,datatype=date,skipout]{
+ update,
+ prioritydate,
+ publicationdate,
+}
+
+\DeclareDatamodelFields[type=list, datatype=name]{
+ booktranslator,
+ bookcommentator,
+ bookannotator,
+ bookintroduction,
+ bookforeword,
+ bookafterword,
+}
+
+\DeclareDatamodelFields[type=field, datatype=key]{
+ media,
+}
+
+\@ifpackagelater{biblatex}{2016/12/06} %biblatex 3.8+
+{\DeclareDatamodelFields[type=list, datatype=key]{
+ bookoriglanguage,
+}}
+{\DeclareDatamodelFields[type=field, datatype=key]{
+ bookoriglanguage,
+}}
+
+\DeclareDatamodelFields[type=list, datatype=literal]{
+ specdata,
+ credits,
+ bookcredits,
+ editioncredits,
+}
+
+\DeclareDatamodelEntryfields{
+ number,
+ book,part,issue,
+ books,parts,issues,
+ language,
+ media,
+ credits,
+ editioncredits,
+ specdata,
+ volsorder,
+ heading,
+}
+
+\DeclareDatamodelEntryfields[article,periodical]{
+ journalcredits,
+ location,
+ publisher,
+}
+
+\DeclareDatamodelEntryfields[book,collection,proceedings,reference]{
+ sortvolume,
+}
+
+\DeclareDatamodelEntryfields[inbook,incollection,inproceedings,inreference,bookinbook,suppbook,suppcollection]{
+ booktranslator,
+ bookcommentator,
+ bookannotator,
+ bookintroduction,
+ bookforeword,
+ bookafterword,
+ bookoriglanguage,
+ bookcredits,
+}
+
+\DeclareDatamodelEntryfields[thesis]{
+ science,specialitycode,speciality,number,
+}
+
+\DeclareDatamodelEntryfields[online]{
+ update,systemreq,
+}
+
+\DeclareDatamodelEntryfields[patent]{
+ pagetotal,
+ priorityday,prioritymonth,priorityyear,
+ priorityendday,priorityendmonth,priorityendyear,
+ publicationday,publicationmonth,publicationyear,
+ publicationendday,publicationendmonth,publicationendyear,
+ publication,requestnumber,ipc,prioritynumber,prioritycountry,
+ authorcountry
+}
+
+\DeclareDatamodelConstraints{
+ \constraint[type=data, datatype=date]{
+ \constraintfield{update}
+ \constraintfield{prioritydate}
+ \constraintfield{publicationdate}
+ }
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx
new file mode 100644
index 0000000000..f04a5875aa
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx
@@ -0,0 +1,6 @@
+\ProvidesFile{gost-alphabetic-min.dbx}
+[2018/02/20\space v1.17\space biblatex-gost data model]
+
+\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx
new file mode 100644
index 0000000000..40a75977f3
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx
@@ -0,0 +1,6 @@
+\ProvidesFile{gost-alphabetic.dbx}
+[2018/02/20\space v1.17\space biblatex-gost data model]
+
+\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx
new file mode 100644
index 0000000000..08ccfbd0aa
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx
@@ -0,0 +1,6 @@
+\ProvidesFile{gost-authoryear-min.dbx}
+[2018/02/20\space v1.17\space biblatex-gost data model]
+
+\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx
new file mode 100644
index 0000000000..f294f79fe9
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx
@@ -0,0 +1,6 @@
+\ProvidesFile{gost-authoryear.dbx}
+[2018/02/20\space v1.17\space biblatex-gost data model]
+
+\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx
new file mode 100644
index 0000000000..4ee9fbe3d0
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx
@@ -0,0 +1,6 @@
+\ProvidesFile{gost-footnote-min.dbx}
+[2018/02/20\space v1.17\space biblatex-gost data model]
+
+\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx
new file mode 100644
index 0000000000..c6863ffab1
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx
@@ -0,0 +1,6 @@
+\ProvidesFile{gost-footnote.dbx}
+[2018/02/20\space v1.17\space biblatex-gost data model]
+
+\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx
new file mode 100644
index 0000000000..677788ed5d
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx
@@ -0,0 +1,6 @@
+\ProvidesFile{gost-inline-min.dbx}
+[2018/02/20\space v1.17\space biblatex-gost data model]
+
+\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx
new file mode 100644
index 0000000000..9770eafa67
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx
@@ -0,0 +1,6 @@
+\ProvidesFile{gost-inline.dbx}
+[2018/02/20\space v1.17\space biblatex-gost data model]
+
+\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx
new file mode 100644
index 0000000000..b78d0974db
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx
@@ -0,0 +1,6 @@
+\ProvidesFile{gost-numeric-min.dbx}
+[2018/02/20\space v1.17\space biblatex-gost data model]
+
+\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx
new file mode 100644
index 0000000000..3e0690e317
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx
@@ -0,0 +1,6 @@
+\ProvidesFile{gost-numeric.dbx}
+[2018/02/20\space v1.17\space biblatex-gost data model]
+
+\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx
new file mode 100644
index 0000000000..a81e30e10e
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx
@@ -0,0 +1,31 @@
+\ProvidesFile{american-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{american}
+\InheritBibliographyStrings{american}
+
+\DeclareBibliographyStrings{%
+ % inherit = {american},
+ mediavideorecording = {{Videorecording}{Videorecording}},
+ mediasoundrecording = {{Sound Recording}{Sound Recording}},
+ mediagraphic = {{Graphic}{Graphic}},
+ mediacartographic = {{Cartographic Material}{Cartographic Material}},
+ mediakit = {{Kit}{Kit}},
+ mediamotionpicture = {{Motion Picture}{Motion Picture}},
+ mediamicroform = {{Microform}{Microform}},
+ mediamultimedia = {{Multimedia}{Multimedia}},
+ mediamusic = {{Music}{Music}},
+ mediaobject = {{Object}{Object}},
+ mediamanuscript = {{Manuscript}{Manuscript}},
+ mediatext = {{Text}{Text}},
+ mediabraille = {{Braille}{Braille}},
+ mediaeresource = {{Electronic Resource}{Electronic Resource}},
+}
+
+\iftoggle{bbx:gost:otherlangs}
+ {\DeclareBibliographyStrings{%
+ pages = {{pages}{p\adddot}},
+ pagetotals = {{pages}{p\adddot}},
+ }}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx
new file mode 100644
index 0000000000..e4097613ee
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx
@@ -0,0 +1,13 @@
+\ProvidesFile{brazilian-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{brazilian}
+\InheritBibliographyStrings{brazilian}
+
+\iftoggle{bbx:gost:otherlangs}
+ {\DeclareBibliographyStrings{%
+ pages = {{p\'aginas}{p\adddot}},
+ pagetotals = {{p\'aginas}{p\adddot}},
+ }}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx
new file mode 100644
index 0000000000..fe2f7855cb
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx
@@ -0,0 +1,30 @@
+\ProvidesFile{british-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{british}
+\InheritBibliographyStrings{british}
+
+\DeclareBibliographyStrings{%
+ mediavideorecording = {{Videorecording}{Videorecording}},
+ mediasoundrecording = {{Sound Recording}{Sound Recording}},
+ mediagraphic = {{Graphic}{Graphic}},
+ mediacartographic = {{Cartographic Material}{Cartographic Material}},
+ mediakit = {{Kit}{Kit}},
+ mediamotionpicture = {{Motion Picture}{Motion Picture}},
+ mediamicroform = {{Microform}{Microform}},
+ mediamultimedia = {{Multimedia}{Multimedia}},
+ mediamusic = {{Music}{Music}},
+ mediaobject = {{Object}{Object}},
+ mediamanuscript = {{Manuscript}{Manuscript}},
+ mediatext = {{Text}{Text}},
+ mediabraille = {{Braille}{Braille}},
+ mediaeresource = {{Electronic Resource}{Electronic Resource}},
+}
+
+\iftoggle{bbx:gost:otherlangs}
+ {\DeclareBibliographyStrings{%
+ pages = {{pages}{p\adddot}},
+ pagetotals = {{pages}{p\adddot}},
+ }}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx
new file mode 100644
index 0000000000..55f275849f
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx
@@ -0,0 +1,13 @@
+\ProvidesFile{catalan-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{catalan}
+\InheritBibliographyStrings{catalan}
+
+\iftoggle{bbx:gost:otherlangs}
+ {\DeclareBibliographyStrings{%
+ page = {{p\`agina}{p\adddot}},
+ pages = {{p\`agines}{p\adddot}},
+ }}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx
new file mode 100644
index 0000000000..c23eba2ef4
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx
@@ -0,0 +1,13 @@
+\ProvidesFile{croatian-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{croatian}
+\InheritBibliographyStrings{croatian}
+
+\iftoggle{bbx:gost:otherlangs}
+ {\DeclareBibliographyStrings{%
+ page = {{stranica}{s\adddot}},
+ pages = {{stranice}{s\adddot}},
+ }}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx
new file mode 100644
index 0000000000..4848f70449
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx
@@ -0,0 +1,30 @@
+\ProvidesFile{english-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{english}
+\InheritBibliographyStrings{english}
+
+\DeclareBibliographyStrings{%
+ mediavideorecording = {{Videorecording}{Videorecording}},
+ mediasoundrecording = {{Sound Recording}{Sound Recording}},
+ mediagraphic = {{Graphic}{Graphic}},
+ mediacartographic = {{Cartographic Material}{Cartographic Material}},
+ mediakit = {{Kit}{Kit}},
+ mediamotionpicture = {{Motion Picture}{Motion Picture}},
+ mediamicroform = {{Microform}{Microform}},
+ mediamultimedia = {{Multimedia}{Multimedia}},
+ mediamusic = {{Music}{Music}},
+ mediaobject = {{Object}{Object}},
+ mediamanuscript = {{Manuscript}{Manuscript}},
+ mediatext = {{Text}{Text}},
+ mediabraille = {{Braille}{Braille}},
+ mediaeresource = {{Electronic Resource}{Electronic Resource}},
+}
+
+\iftoggle{bbx:gost:otherlangs}
+ {\DeclareBibliographyStrings{%
+ pages = {{pages}{p\adddot}},
+ pagetotals = {{pages}{p\adddot}},
+ }}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx
new file mode 100644
index 0000000000..a7d2478480
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx
@@ -0,0 +1,24 @@
+\ProvidesFile{french-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{french}
+\InheritBibliographyStrings{french}
+
+\DeclareBibliographyStrings{%
+ mediavideorecording = {{enregistrement vidéo}{enregistrement vidéo}},
+ mediasoundrecording = {{enregistrement sonore}{enregistrement sonore}},
+ mediagraphic = {{image}{image}},
+ mediacartographic = {{matériel cartographique}{matériel cartographique}},
+ mediakit = {{kit}{kit}},
+ mediamotionpicture = {{film}{film}},
+ mediamicroform = {{microforme}{microforme}},
+ mediamultimedia = {{multimédia}{multimédia}},
+ mediamusic = {{musique}{musique}},
+ mediaobject = {{objet}{objet}},
+ mediamanuscript = {{manuscrit}{manuscrit}},
+ mediatext = {{texte}{texte}},
+ mediabraille = {{Braille}{Braille}},
+ mediaeresource = {{ressource électronique}{ressource électronique}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx
new file mode 100644
index 0000000000..35b127870d
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx
@@ -0,0 +1,12 @@
+\ProvidesFile{galician-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{galician}
+\InheritBibliographyStrings{galician}
+
+\iftoggle{bbx:gost:otherlangs}
+ {\DeclareBibliographyStrings{%
+ pages = {{p\'axinas}{p\adddot}},
+ }}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx
new file mode 100644
index 0000000000..f8803d8c09
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx
@@ -0,0 +1,24 @@
+\ProvidesFile{german-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{german}
+\InheritBibliographyStrings{german}
+
+\DeclareBibliographyStrings{%
+ mediavideorecording = {{Videoaufzeichnung}{Videoaufzeichnung}},
+ mediasoundrecording = {{Audioaufzeichnung}{Audioaufzeichnung}},
+ mediagraphic = {{Bild}{Bild}},
+ mediacartographic = {{Kartenmaterial}{Kartenmaterial}},
+ mediakit = {{Kit}{Kit}}, % ??
+ mediamotionpicture = {{Film}{Film}},
+ mediamicroform = {{Mikroform}{Mikroform}},
+ mediamultimedia = {{Multimedia}{Multimedia}},
+ mediamusic = {{Musik}{Musik}},
+ mediaobject = {{Objekt}{Objekt}},
+ mediamanuscript = {{Manuskript}{Manuskript}},
+ mediatext = {{Text}{Text}},
+ mediabraille = {{Blindenschrift}{Blindenschrift }},
+ mediaeresource = {{elektronische Ressource}{elektronische Ressource}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx
new file mode 100644
index 0000000000..a6697995c6
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx
@@ -0,0 +1,12 @@
+\ProvidesFile{greek-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{greek}
+\InheritBibliographyStrings{greek}
+
+\iftoggle{bbx:gost:otherlangs}
+ {\DeclareBibliographyStrings{%
+ pages = {{σελίδες}{σ\adddot}},
+ }}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx
new file mode 100644
index 0000000000..224c3e8b44
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx
@@ -0,0 +1,13 @@
+\ProvidesFile{icelandic-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{icelandic}
+\InheritBibliographyStrings{icelandic}
+
+\iftoggle{bbx:gost:otherlangs}
+ {\DeclareBibliographyStrings{%
+ page = {{bla\dh{}s\'{\i}\dh{}a}{b\adddot}},
+ pages = {{bla\dh{}s\'{\i}\dh{}ur}{b\adddot}},
+ }}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx
new file mode 100644
index 0000000000..9222cf6519
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx
@@ -0,0 +1,12 @@
+\ProvidesFile{italian-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{italian}
+\InheritBibliographyStrings{italian}
+
+\iftoggle{bbx:gost:otherlangs}
+ {\DeclareBibliographyStrings{%
+ pages = {{pagine}{p\adddot}},
+ }}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx
new file mode 100644
index 0000000000..09fed08c3c
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx
@@ -0,0 +1,13 @@
+\ProvidesFile{portuguese-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{portuguese}
+\InheritBibliographyStrings{portuguese}
+
+\iftoggle{bbx:gost:otherlangs}
+ {\DeclareBibliographyStrings{%
+ pages = {{p\'aginas}{p\adddot}},
+ pagetotals = {{p\'aginas}{p\adddot}},
+ }}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx
new file mode 100644
index 0000000000..1c5c327bc3
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx
@@ -0,0 +1,193 @@
+\ProvidesFile{russian-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{russian}
+
+\DeclareBibliographyStrings{%
+ inherit = {russian},%------------------------------------------------------------
+ phdthesis = {{дис\adddotspace\textellipsis\ канд\adddot}
+ {дис\adddotspace\textellipsis\ канд\adddot}},
+ docthesis = {{дис\adddotspace\textellipsis\ д-ра}
+ {дис\adddotspace\textellipsis\ д-ра}},
+ phdautoref = {{автореф\adddotspace дис\adddotspace\textellipsis\ канд\adddot}
+ {автореф\adddotspace дис\adddotspace\textellipsis\ канд\adddot}},
+ docautoref = {{автореф\adddotspace дис\adddotspace\textellipsis\ д-ра}
+ {автореф\adddotspace дис\adddotspace\textellipsis\ д-ра}},
+ countryru = {{Российская Федерация}{Рос\adddotspace Федерация}},
+ countryussr = {{СССР}{СССР}},
+ patentru = {{патент Российской Федерации}{пат\adddotspace Рос\adddotspace Федерации}},
+ patentussr = {{патент СССР}{пат\adddotspace СССР}},
+ patreqru = {{заявка на патент Российской Федерации}{заявка на пат\adddotspace Рос\adddotspace Федерации}},
+ patrequssr = {{заявка на патент СССР}{заявка на пат\adddotspace СССР}},
+ invcert = {{авторское свидетельство}{а\adddot\addnbthinspace с\adddot}},
+ requested = {{заявлено}{заявл\adddot}},
+ published = {{опубликовано}{опубл\adddot}},
+ priority = {{приоритет}{приоритет}},
+ books = {{кн\adddot}{кн\adddot}},
+ parts = {{ч\adddot}{ч\adddot}},
+ issues = {{вып\adddot}{вып\adddot}},
+ bypreparation = {{в подготовке}{в\addabbrvspace подг\adddot}},
+ geneditor = {{общий редактор}{общ\adddotspace ред\adddot}},
+ geneditors = {{общие редакторы}{общ\adddotspace ред\adddot}},
+ bygeneditor = {{под общей редакцией}{под общ\adddotspace ред\adddot}},
+ bygeneditortr = {{перевод \lbx@lfromlang, под общей редакцией}%
+ {пер\adddot\ \lbx@sfromlang, под общ\adddotspace ред\adddotspace}},
+ bygeneditorco = {{общая редакция и комментарии}%
+ {общ\adddotspace ред\adddotspace и комм\adddot}},
+ bygeneditoran = {{общая редакция и примечания}%
+ {общ\adddotspace ред\adddotspace и прим\adddot}},
+ bygeneditorin = {{общая редакция и вступительная статья}%
+ {общ\adddotspace ред\adddotspace и вступ\adddotspace ст\adddot}},
+ bygeneditorfo = {{общая редакция и предисловие}%
+ {общ\adddotspace ред\adddotspace и предисл\adddot}},
+ bygeneditoraf = {{общая редакция и послесловие}%
+ {общ\adddotspace ред\adddotspace и послесл\adddot}},
+ bygeneditortrco = {{общая редакция, перевод \lbx@lfromlang\ и комментарии}%
+ {общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и комм\adddot}},
+ bygeneditortran = {{общая редакция, перевод \lbx@lfromlang\ и примечания}%
+ {общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и прим\adddot}},
+ bygeneditortrin = {{общая редакция, перевод \lbx@lfromlang, вступительная статья}%
+ {общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и вступ\adddotspace ст\adddot}},
+ bygeneditortrfo = {{общая редакция, перевод \lbx@lfromlang\ и предисловие}%
+ {общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и предисл\adddot}},
+ bygeneditortraf = {{общая редакция, перевод \lbx@lfromlang\ и послесловие}%
+ {общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и послесл\adddot}},
+ bygeneditorcoin = {{общая редакция, комментарии и вступительная статья}%
+ {общ\adddotspace ред.,\addabbrvspace комм\adddotspace и вступ\adddotspace ст\adddot}},
+ bygeneditorcofo = {{общая редакция, комментарии и предисловие}%
+ {общ\adddotspace ред.,\addabbrvspace комм\adddotspace и предисл\adddot}},
+ bygeneditorcoaf = {{общая редакция, комментарии и послесловие}%
+ {общ\adddotspace ред.,\addabbrvspace комм\adddotspace и послесл\adddot}},
+ bygeneditoranin = {{общая редакция, примечания и вступительная статья}%
+ {общ\adddotspace ред.,\addabbrvspace прим\adddotspace и вступ\adddotspace ст\adddot}},
+ bygeneditoranfo = {{общая редакция, примечания и предисловие}%
+ {общ\adddotspace ред.,\addabbrvspace прим\adddotspace и предисл\adddot}},
+ bygeneditoranaf = {{общая редакция, примечания и послесловие}%
+ {общ\adddotspace ред.,\addabbrvspace прим\adddotspace и послесл\adddot}},
+ bygeneditortrcoin= {{общая редакция, перевод \lbx@lfromlang, комментарии и вступительная статья}%
+ {общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комм\adddotspace и вступ\adddotspace ст\adddot}},
+ bygeneditortrcofo= {{общая редакция, перевод \lbx@lfromlang, комментарии и предисловие}%
+ {общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комм\adddotspace и предисл\adddot}},
+ bygeneditortrcoaf= {{общая редакция, перевод \lbx@lfromlang, комментарии и послесловие}%
+ {общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комм\adddotspace и послесл\adddot}},
+ bygeneditortranin= {{общая редакция, перевод \lbx@lfromlang, примечания и вступительная статья}%
+ {общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и вступ\adddotspace ст\adddot}},
+ bygeneditortranfo= {{общая редакция, перевод \lbx@lfromlang, примечания и предисловие}%
+ {общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и предисл\adddot}},
+ bygeneditortranaf= {{общая редакция, перевод \lbx@lfromlang, примечания и послесловие}%
+ {общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и послесл\adddot}},
+ gecompiler = {{общий редактор и составитель}{общ\adddotspace ред\adddotspace и сост\adddot}},
+ gecompilers = {{общие редакторы и составители}{общ\adddotspace ред\adddotspace и сост\adddot}},
+ bygecompiler = {{составление и общая редакция}{сост\adddotspace и общ\adddotspace ред\adddot}},
+ bygecompilertr = {{перевод \lbx@lfromlang, составление и общая редакция}%
+ {пер\adddot\ \lbx@sfromlang, сост\adddotspace и общ\adddotspace ред\adddotspace}},
+ bygecompilerco = {{составление, общая редакция и комментарии}%
+ {сост.,\addabbrvspace общ\adddotspace ред\adddotspace и комм\adddot}},
+ bygecompileran = {{составление, общая редакция и примечания}%
+ {сост.,\addabbrvspace общ\adddotspace ред\adddotspace и прим\adddot}},
+ bygecompilerin = {{составление, общая редакция и вступительная статья}%
+ {сост.,\addabbrvspace общ\adddotspace ред\adddotspace и вступ\adddotspace ст\adddot}},
+ bygecompilerfo = {{составление, общая редакция и предисловие}%
+ {сост.,\addabbrvspace общ\adddotspace ред\adddotspace и предисл\adddot}},
+ bygecompileraf = {{составление, общая редакция и послесловие}%
+ {сост.,\addabbrvspace общ\adddotspace ред\adddotspace и послесл\adddot}},
+ bygecompilertrco = {{составление, общая редакция, перевод \lbx@lfromlang\ и комментарии}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и комм\adddot}},
+ bygecompilertran = {{составление, общая редакция, перевод \lbx@lfromlang\ и примечания}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и прим\adddot}},
+ bygecompilertrin = {{составление, общая редакция, перевод \lbx@lfromlang, вступительная статья}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и вступ\adddotspace ст\adddot}},
+ bygecompilertrfo = {{составление, общая редакция, перевод \lbx@lfromlang\ и предисловие}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и предисл\adddot}},
+ bygecompilertraf = {{составление, общая редакция, перевод \lbx@lfromlang\ и послесловие}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и послесл\adddot}},
+ bygecompilercoin = {{составление, общая редакция, комментарии и вступительная статья}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace комм\adddotspace и вступ\adddotspace ст\adddot}},
+ bygecompilercofo = {{составление, общая редакция, комментарии и предисловие}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace комм\adddotspace и предисл\adddot}},
+ bygecompilercoaf = {{составление, общая редакция, комментарии и послесловие}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace комм\adddotspace и послесл\adddot}},
+ bygecompileranin = {{составление, общая редакция, примечания и вступительная статья}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace прим\adddotspace и вступ\adddotspace ст\adddot}},
+ bygecompileranfo = {{составление, общая редакция, примечания и предисловие}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace прим\adddotspace и предисл\adddot}},
+ bygecompileranaf = {{составление, общая редакция, примечания и послесловие}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace прим\adddotspace и послесл\adddot}},
+ bygecompilertrcoin= {{составление, общая редакция, перевод \lbx@lfromlang, комментарии и вступительная статья}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комм\adddotspace и вступ\adddotspace ст\adddot}},
+ bygecompilertrcofo= {{составление, общая редакция, перевод \lbx@lfromlang, комментарии и предисловие}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комм\adddotspace и предисл\adddot}},
+ bygecompilertrcoaf= {{составление, общая редакция, перевод \lbx@lfromlang, комментарии и послесловие}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комм\adddotspace и послесл\adddot}},
+ bygecompilertranin= {{составление, общая редакция, перевод \lbx@lfromlang, примечания и вступительная статья}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и вступ\adddotspace ст\adddot}},
+ bygecompilertranfo= {{составление, общая редакция, перевод \lbx@lfromlang, примечания и предисловие}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и предисл\adddot}},
+ bygecompilertranaf= {{составление, общая редакция, перевод \lbx@lfromlang, примечания и послесловие}%
+ {сост.,\addabbrvspace общ\adddotspace ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и послесл\adddot}},
+ bycompilertr = {{перевод \lbx@lfromlang\ и составление}%
+ {пер\adddot\ \lbx@sfromlang\ и сост\adddotspace}},
+ bycompilerco = {{составление и комментарии}%
+ {сост\adddotspace и комм\adddot}},
+ bycompileran = {{составление и примечания}%
+ {сост\adddotspace и прим\adddot}},
+ bycompilerin = {{составление и вступительная статья}%
+ {сост\adddotspace и вступ\adddotspace ст\adddot}},
+ bycompilerfo = {{составление и предисловие}%
+ {сост\adddotspace и предисл\adddot}},
+ bycompileraf = {{составление и послесловие}%
+ {сост\adddotspace и послесл\adddot}},
+ bycompilertrco = {{составление, перевод \lbx@lfromlang\ и комментарии}%
+ {сост.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и комм\adddot}},
+ bycompilertran = {{составление, перевод \lbx@lfromlang\ и примечания}%
+ {сост.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и прим\adddot}},
+ bycompilertrin = {{составление, перевод \lbx@lfromlang, вступительная статья}%
+ {сост.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и вступ\adddotspace ст\adddot}},
+ bycompilertrfo = {{составление, перевод \lbx@lfromlang\ и предисловие}%
+ {сост.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и предисл\adddot}},
+ bycompilertraf = {{составление, перевод \lbx@lfromlang\ и послесловие}%
+ {сост.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и послесл\adddot}},
+ bycompilercoin = {{составление, комментарии и вступительная статья}%
+ {сост.,\addabbrvspace комм\adddotspace и вступ\adddotspace ст\adddot}},
+ bycompilercofo = {{составление, комментарии и предисловие}%
+ {сост.,\addabbrvspace комм\adddotspace и предисл\adddot}},
+ bycompilercoaf = {{составление, комментарии и послесловие}%
+ {сост.,\addabbrvspace комм\adddotspace и послесл\adddot}},
+ bycompileranin = {{составление, примечания и вступительная статья}%
+ {сост.,\addabbrvspace прим\adddotspace и вступ\adddotspace ст\adddot}},
+ bycompileranfo = {{составление, примечания и предисловие}%
+ {сост.,\addabbrvspace прим\adddotspace и предисл\adddot}},
+ bycompileranaf = {{составление, примечания и послесловие}%
+ {сост.,\addabbrvspace прим\adddotspace и послесл\adddot}},
+ bycompilertrcoin= {{составление, перевод \lbx@lfromlang, комментарии и вступительная статья}%
+ {сост.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комм\adddotspace и вступ\adddotspace ст\adddot}},
+ bycompilertrcofo= {{составление, перевод \lbx@lfromlang, комментарии и предисловие}%
+ {сост.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комм\adddotspace и предисл\adddot}},
+ bycompilertrcoaf= {{составление, перевод \lbx@lfromlang, комментарии и послесловие}%
+ {сост.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комм\adddotspace и послесл\adddot}},
+ bycompilertranin= {{составление, перевод \lbx@lfromlang, примечания и вступительная статья}%
+ {сост.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и вступ\adddotspace ст\adddot}},
+ bycompilertranfo= {{составление, перевод \lbx@lfromlang, примечания и предисловие}%
+ {сост.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и предисл\adddot}},
+ bycompilertranaf= {{составление, перевод \lbx@lfromlang, примечания и послесловие}%
+ {сост.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и послесл\adddot}},
+ byeditorcollaborator= {{при редакторском участии}{при ред. уч\adddot}},
+ mediavideorecording = {{видеозапись}{видеозапись}},
+ mediasoundrecording = {{звукозапись}{звукозапись}},
+ mediagraphic = {{изоматериал}{изоматериал}},
+ mediacartographic = {{карты}{карты}},
+ mediakit = {{комплект}{комплект}},
+ mediamotionpicture = {{кинофильм}{кинофильм}},
+ mediamicroform = {{микроформа}{микроформа}},
+ mediamultimedia = {{мультимедиа}{мультимедиа}},
+ mediamusic = {{ноты}{ноты}},
+ mediaobject = {{предмет}{предмет}},
+ mediamanuscript = {{рукопись}{рукопись}},
+ mediatext = {{текст}{текст}},
+ mediabraille = {{шрифт Брайля}{шрифт Брайля}},
+ mediaeresource = {{электронный ресурс}{электронный ресурс}},
+ updated = {{дата обновления}{дата обновления}},
+ systemreq = {{систем\adddotspace требования}{систем\adddotspace требования}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx
new file mode 100644
index 0000000000..a58ef046f7
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx
@@ -0,0 +1,13 @@
+\ProvidesFile{slovene-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{slovene}
+\InheritBibliographyStrings{slovene}
+
+\iftoggle{bbx:gost:otherlangs}
+ {\DeclareBibliographyStrings{%
+ page = {{stran}{s\adddot}},
+ pages = {{strani}{s\adddot}},
+ }}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx
new file mode 100644
index 0000000000..4303796fe5
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx
@@ -0,0 +1,13 @@
+\ProvidesFile{spanish-gost.lbx}
+[2018/02/20\space v1.17\space biblatex-gost styles]
+
+\InheritBibliographyExtras{spanish}
+\InheritBibliographyStrings{spanish}
+
+\iftoggle{bbx:gost:otherlangs}
+ {\DeclareBibliographyStrings{%
+ page = {{p\'agina}{p\adddot}},
+ pages = {{p\'aginas}{p\adddot}},
+ }}{}
+
+\endinput