diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/biblatex-contrib/biblatex-gost/tex |
Initial commit
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-gost/tex')
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 |