diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-gost/gost-authoryear.bbx')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex-gost/gost-authoryear.bbx | 333 |
1 files changed, 333 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-gost/gost-authoryear.bbx b/Master/texmf-dist/tex/latex/biblatex-gost/gost-authoryear.bbx new file mode 100644 index 00000000000..9c3ab565cdc --- /dev/null +++ b/Master/texmf-dist/tex/latex/biblatex-gost/gost-authoryear.bbx @@ -0,0 +1,333 @@ +\ProvidesFile{gost-authoryear.bbx} +[2013/04/03\space v0.8\space biblatex-gost styles] + +\RequireBibliographyStyle{gost-standard} + +\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'.}}} + +\providebibmacro*{date+extrayear}{} +\providebibmacro*{authoryearlabel}{} +\newbibmacro*{cite:date+extras}[1]{% + \ifsingletitle + {} + {\iffieldundef{year} + {} + {\printtext[#1]{% + \printdate% + \usebibmacro{cite:extras}}}}} +\newbibmacro*{cite:extras}{% + \ifnameundef{labelname}% if there is labelname, extrayear disambiguation is enough + {\printfield{extratitleyear}} + {\printfield{extrayear}}} + +\providebibmacro*{labeltitle}{} +\newlength{\labelauthoryearsep} + +\def\bbx@opt@mergedate@true{\bbx@opt@mergedate@compact} + +\def\bbx@opt@mergedate@maximum{% + \renewbibmacro*{date+extrayear}{% + \ifsingletitle + {} + {\iffieldundef{year} + {} + {\printtext[parens]{% + \ifentrytype{article} + {\printfield{issue}% + \setunit*{\addspace}} + {}% + \usebibmacro{cite:date+extras}{}% + \clearfield{month}% + \clearfield{day}}}}}% + %\renewcommand*{\labelnamepunct}{\newunitpunct} + \renewbibmacro*{jour:volume+parts+issuetitle}{% + \printfield{volume}% + \setunit*{\addcomma\space}% + \printfield{number}% + \iffieldundef{issuetitle} + {} + {\setunit{\addcolon\space}% + \printfield{issuetitle}}}% + \renewbibmacro*{date}{\ifsingletitle{\printdate}{}}% + \renewbibmacro*{year}{\ifsingletitle{\printfield{year}}{}}% + \renewbibmacro*{jour:date}{% + \ifsingletitle + {\usebibmacro{year}% + \newunit\newblock + \mkbibdatelong{}{month}{day}} + {}}% + \renewbibmacro*{labeltitle}{% + \iffieldundef{label} + {\ifsingletitle + {} + {\iffieldundef{shorttitle} + {\iffieldundef{maintitle} + {\printfield{title}} + {\printfield[title]{maintitle}}}% + {\printfield[title]{shorttitle}}}} + {\printfield{label}}} + \renewbibmacro*{authoryearlabel}{}% + \setlength{\labelauthoryearsep}{0pt}% +} + +\def\bbx@opt@mergedate@compact{% + \renewbibmacro*{date+extrayear}{% + \usebibmacro{cite:date+extras}{parens}}% + %\renewcommand*{\labelnamepunct}{\newunitpunct} + \renewbibmacro*{date}{\ifsingletitle{\printdate}{}}% + \renewbibmacro*{year}{\ifsingletitle{\printfield{year}}{}}% + \renewbibmacro*{jour:date}{% + \ifsingletitle + {\usebibmacro{year}% + \newunit\newblock + \mkbibdatelong{}{month}{day}} + {}}% + \renewbibmacro*{labeltitle}{% + \iffieldundef{label} + {\ifsingletitle + {} + {\iffieldundef{shorttitle} + {\iffieldundef{maintitle} + {\printfield{title}} + {\printfield[title]{maintitle}}}% + {\printfield[title]{shorttitle}}}} + {\printfield{label}}} + \renewbibmacro*{authoryearlabel}{}% + \setlength{\labelauthoryearsep}{0pt}% +} + +\def\bbx@opt@mergedate@basic{% + \renewbibmacro*{date+extrayear}{% + \usebibmacro{cite:labelyear+extras}{parens}}% + %\renewcommand*{\labelnamepunct}{\newunitpunct} + \renewbibmacro*{date}{% + \ifsingletitle + {\printdate} + {\iffieldundef{month} + {} + {\printdate}}}% + \renewbibmacro*{year}{\printfield{year}}% + \renewbibmacro*{labeltitle}{% + \iffieldundef{label} + {\ifsingletitle + {} + {\iffieldundef{shorttitle} + {\iffieldundef{maintitle} + {\printfield{title}} + {\printfield[title]{maintitle}}}% + {\printfield[title]{shorttitle}}}} + {\printfield{label}}} + \renewbibmacro*{authoryearlabel}{}% + \setlength{\labelauthoryearsep}{0pt}% +} + +\def\bbx@opt@mergedate@minimum{% + \renewbibmacro*{date+extrayear}{% + \usebibmacro{cite:labelyear+extras}{parens}}% + %\renewcommand*{\labelnamepunct}{\newunitpunct} + \renewbibmacro*{date}{% + \ifsingletitle + {\printdate} + {\ifboolexpr{ + test {\iffieldundef{month}} + and + test {\iffieldundef{extrayear}} + } + {} + {\printdate}}}% + \renewbibmacro*{year}{\printfield{year}}% + \renewbibmacro*{labeltitle}{% + \iffieldundef{label} + {\ifsingletitle + {} + {\iffieldundef{shorttitle} + {\iffieldundef{maintitle} + {\printfield{title}} + {\printfield[title]{maintitle}}}% + {\printfield[title]{shorttitle}}}} + {\printfield{label}}} + \renewbibmacro*{authoryearlabel}{}% + \setlength{\labelauthoryearsep}{0pt}% +} + +\def\bbx@opt@mergedate@false{% + \renewbibmacro*{date+extrayear}{% + \usebibmacro{cite:labelyear+extras}{parens}}% + %\renewcommand*{\labelnamepunct}{\newunitpunct} + \renewbibmacro*{date}{\printdate}% + \renewbibmacro*{year}{\printfield{year}}% + \renewbibmacro*{labeltitle}{% + \iffieldundef{label} + {\ifsingletitle + {} + {\iffieldundef{shorttitle} + {\iffieldundef{maintitle} + {\printfield{title}} + {\printfield[title]{maintitle}}}% + {\printfield[title]{shorttitle}}}} + {\printfield{label}}} + \renewbibmacro*{authoryearlabel}{}% + \setlength{\labelauthoryearsep}{0pt}% +} + +\def\bbx@opt@mergedate@goststrict{% + \renewbibmacro*{date+extrayear}{}% + \renewbibmacro*{date}{\printdate}% + \renewbibmacro*{year}{\printfield{year}}% + \renewbibmacro*{labeltitle}{}% + \DeclareFieldFormat{extrayear}{% + \PackageWarning{biblatex-gost}{% + Citation \thefield{entrykey} is not unique}}% + \DeclareFieldFormat{extratitleyear}{% + \PackageWarning{biblatex-gost}{% + Citation \thefield{entrykey} is not unique}}% + \ExecuteBibliographyOptions{singletitle}% + \renewbibmacro*{authoryearlabel}{}% + \setlength{\labelauthoryearsep}{0pt}% +} + +\def\bbx@opt@mergedate@gostletter{% + \renewbibmacro*{date+extrayear}{}% + \renewbibmacro*{date}{\printdate\usebibmacro{cite:extras}}% + \renewbibmacro*{year}{\printfield{year}\usebibmacro{cite:extras}}% + \renewbibmacro*{labeltitle}{}% + \renewbibmacro*{authoryearlabel}{}% + \setlength{\labelauthoryearsep}{0pt}% +} + +\def\bbx@opt@mergedate@gostlabel{% + \renewbibmacro*{date+extrayear}{}% + \renewbibmacro*{date}{\printdate}% + \renewbibmacro*{year}{\printfield{year}}% + \renewbibmacro*{labeltitle}{}% + \renewbibmacro*{heading}{}% + \renewbibmacro*{authoryearlabel}{% + \mkbibbrackets{% + \iffieldundef{heading} + {\iffieldundef{shorthand} + {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}} + {\ifnameundef{labelname} + {\usebibmacro{cite:label+volume+parts}{}% + \setunit{\nameyeardelim}% + \usebibmacro{cite:labelyear+extras}{}} + {\usebibmacro{cite:labelname+volume+parts}{}}} + {\usebibmacro{cite:labelname+volume+parts}{}% + \setunit{\nameyeardelim}% + \usebibmacro{cite:labelyear+extras}{}}} + {\printfield{shorthand}}} + {\usebibmacro{cite:heading}{}}}}% + \setlength{\biblabelsep}{.5em}% + \setlength{\labelauthoryearsep}{\biblabelsep}% +} + +\ExecuteBibliographyOptions{labelyear,labeltitleyear,sorting=nyt,pagetracker,mergedate=gostletter, + 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{shorthands} + {\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} + {\printnames{author}% + \setunit{\addcomma\space}% + \usebibmacro{bbx:savehash}}% + \usebibmacro{authorstrg}% + \setunit*{\addspace}} + {\global\undef\bbx@lasthash% + \usebibmacro{labeltitle}% + \setunit*{\addspace}}% + \usebibmacro{date+extrayear}} + + +\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{editor}% + \setunit{\addcomma\space}% + \usebibmacro{bbx:savehash}}% + \usebibmacro{#1}% + \clearname{editor}% + \setunit*{\addspace}} + {\global\undef\bbx@lasthash% + \usebibmacro{labeltitle}% + \setunit*{\addspace}}% + \usebibmacro{date+extrayear}} + +\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{translator}% + \setunit{\addcomma\space}% + \usebibmacro{bbx:savehash}}% + \usebibmacro{#1}% + \clearname{translator}% + \setunit*{\addspace}} + {\global\undef\bbx@lasthash% + \usebibmacro{labeltitle}% + \setunit*{\addspace}}% + \usebibmacro{date+extrayear}} + +%\def\blx@numalph\blx@asbuk% +%\def\blx@asbuk#1{% +% \ifcase#1\relax\blx@warning@entry{Value out of range}\number#1\or +% а\or б\or в\or г\or д\or е\or ж\or з\or и\or к\or л\or м\or н\or +% о\or п\or р\or с\or т\or у\or ф\or х\or ц\or ч\or ш\or щ\or ы\else +% \blx@warning@entry{Value out of range}\number#1\fi} + +\endinput |