summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex-ext/ext-authoryear-common.bbx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-03-19 21:49:24 +0000
committerKarl Berry <karl@freefriends.org>2018-03-19 21:49:24 +0000
commita198254d24ccfd63859b7ec9480d95775b087c4e (patch)
tree49bd922d8362e6398130515ef91e95c3550e3823 /Master/texmf-dist/tex/latex/biblatex-ext/ext-authoryear-common.bbx
parentd1c302ed5a53246283181ec1ab9a537ec5a6959e (diff)
biblatex-ext (19mar18)
git-svn-id: svn://tug.org/texlive/trunk@47029 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-ext/ext-authoryear-common.bbx')
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-ext/ext-authoryear-common.bbx158
1 files changed, 158 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-ext/ext-authoryear-common.bbx b/Master/texmf-dist/tex/latex/biblatex-ext/ext-authoryear-common.bbx
new file mode 100644
index 00000000000..13107d8bc2f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/biblatex-ext/ext-authoryear-common.bbx
@@ -0,0 +1,158 @@
+\ProvidesFile{ext-authoryear-common.bbx}
+ [2018/03/18 v0.1 common files for extended biblatex
+ authoryear bibliography styles (MW)]
+
+\RequireBibliographyStyle{ext-dashed-common}
+
+\DeclareFieldFormat{biblabeldate}{\mkbibparens{#1}}
+\DeclareFieldFormat{biblistlabeldate}{\mkbibparens{#1}}
+
+% merge date/issue with date label
+\def\bbx@opt@mergedate@maximum{%
+ \renewbibmacro*{date+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[\blx@delimcontext labeldate]{%
+ \iflabeldateisdate
+ {\printfield{issue}%
+ \setunit*{\addspace}%
+ \printdateextra}
+ {\printlabeldateextra}}}}%
+ \renewbibmacro*{date}{%
+ \iflabeldateisdate
+ {}
+ {\printdate}}%
+ \renewbibmacro*{issue+date}{%
+ \iflabeldateisdate
+ {}
+ {\printtext[issuedate]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \printdate}}}}
+
+% merge date with date label
+\def\bbx@opt@mergedate@compact{%
+ \renewbibmacro*{date+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[\blx@delimcontext labeldate]{%
+ \iflabeldateisdate
+ {\printdateextra}
+ {\printlabeldateextra}}}}%
+ \renewbibmacro*{date}{%
+ \iflabeldateisdate
+ {}
+ {\printdate}}%
+ \renewbibmacro*{issue+date}{%
+ \ifboolexpr{not test {\iffieldundef{issue}}
+ or not test {\iflabeldateisdate}}
+ {\printtext[issuedate]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \iflabeldateisdate
+ {}
+ {\printdate}}}
+ {}%
+ \newunit}}
+
+% merge year-only date with date label
+\def\bbx@opt@mergedate@basic{%
+ \renewbibmacro*{date+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[\blx@delimcontext labeldate]{\printlabeldateextra}}}%
+ \renewbibmacro*{date}{%
+ \ifboolexpr{
+ test {\iflabeldateisdate}
+ and
+ not test {\ifdateshavedifferentprecision{label}{}}
+ }
+ {}
+ {\printdate}}%
+ \renewbibmacro*{issue+date}{%
+ \ifboolexpr{
+ test {\iflabeldateisdate}
+ and
+ not test {\ifdateshavedifferentprecision{label}{}}
+ and
+ test {\iffieldundef{issue}}
+ }
+ {}
+ {\printtext[issuedate]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \printdate}}%
+ \newunit}}
+
+% merge year-only date with year-only date label
+\def\bbx@opt@mergedate@minimum{%
+ \renewbibmacro*{date+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[\blx@delimcontext labeldate]{\printlabeldateextra}}}%
+ \renewbibmacro*{date}{%
+ \ifboolexpr{
+ test {\iflabeldateisdate}
+ and
+ not test {\ifdateshavedifferentprecision{label}{}}
+ and
+ test {\iffieldundef{extradate}}
+ }
+ {}
+ {\printdate}}%
+ \renewbibmacro*{issue+date}{%
+ \ifboolexpr{
+ test {\iflabeldateisdate}
+ and
+ not test {\ifdateshavedifferentprecision{label}{}}
+ and
+ test {\iffieldundef{extradate}}
+ and
+ test {\iffieldundef{issue}}
+ }
+ {}
+ {\printtext[issuedate]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \printdate}}%
+ \newunit}}
+
+% don't merge date/issue with date label
+\def\bbx@opt@mergedate@false{%
+ \renewbibmacro*{date+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[\blx@delimcontext labeldate]{\printlabeldateextra}}}%
+ \renewbibmacro*{date}{\printdate}%
+ \renewbibmacro*{issue+date}{%
+ \printtext[issuedate]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \usebibmacro{date}}%
+ \newunit}}
+
+\defbibenvironment{bibliography}
+ {\list
+ {\ifcsequal{extblx@introcite}{extblx@opt@introcite@label}
+ {\usebibmacro{introcite:typeset}}
+ {}}
+ {\ifcsequal{extblx@introcite}{extblx@opt@introcite@label}
+ {\setlength{\labelwidth}{\introcitewidth}%
+ \setlength{\leftmargin}{\labelwidth}
+ \renewcommand*{\makelabel}[1]{##1\hss}}
+ {\setlength{\leftmargin}{\bibhang}%
+ \setlength{\itemindent}{-\leftmargin}}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}}
+ {\endlist}
+ {\item
+ \ifcsequal{extblx@introcite}{extblx@opt@introcite@label}
+ {\usebibmacro{introcite:break}}
+ {}}
+
+% We need to execute some options that were already executed
+% by the standard styles again, because we changed the
+% underlying definitions.
+\ExecuteBibliographyOptions{mergedate=compact, dashed=true}%
+
+\endinput