summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex-gost/gost-authoryear.bbx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-04-04 23:39:42 +0000
committerKarl Berry <karl@freefriends.org>2013-04-04 23:39:42 +0000
commit9887db96f6bd00a498bd06f2d0411a4a0542b86a (patch)
tree45551e2652130eb3ca108288a2bd4ca56d903411 /Master/texmf-dist/tex/latex/biblatex-gost/gost-authoryear.bbx
parentc7f11261a82371f868980fd5c05f76c00646d036 (diff)
biblatex-gost (2apr13)
git-svn-id: svn://tug.org/texlive/trunk@29663 c570f23f-e606-0410-a88d-b1316a301751
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.bbx333
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