From aa2e0a50e0e02b0fd1e1f6a86402502ad609b42c Mon Sep 17 00:00:00 2001 From: moewew Date: Sun, 18 Jun 2017 10:29:58 +0200 Subject: [PATCH] Use \printlabeldateextra in authoryear --- tex/latex/biblatex/bbx/authoryear.bbx | 202 +++++--------------- tex/latex/biblatex/cbx/authoryear-comp.cbx | 28 +-- tex/latex/biblatex/cbx/authoryear-ibid.cbx | 28 +-- tex/latex/biblatex/cbx/authoryear-icomp.cbx | 28 +-- tex/latex/biblatex/cbx/authoryear.cbx | 28 +-- 5 files changed, 52 insertions(+), 262 deletions(-) diff --git a/tex/latex/biblatex/bbx/authoryear.bbx b/tex/latex/biblatex/bbx/authoryear.bbx index 731fc0ef6..a395375b3 100644 --- a/tex/latex/biblatex/bbx/authoryear.bbx +++ b/tex/latex/biblatex/bbx/authoryear.bbx @@ -19,48 +19,37 @@ \providebibmacro*{date+extrayear}{} +\newcommand*{\iflabeldateisdate}{% + \ifboolexpr{% + not test {\iffieldundef{labeldatesource}} + and + (test {\iffieldequalstr{labeldatesource}{}} + or test {\iffieldequalstr{labeldatesource}{year}})}} + \def\bbx@opt@mergedate@true{\bbx@opt@mergedate@compact} % merge date/issue with date label \def\bbx@opt@mergedate@maximum{% \renewbibmacro*{date+extrayear}{% \iffieldundef{labelyear} + {} + {\printtext[parens]{% + \iflabeldateisdate + {\printfield{issue}% + \setunit*{\addspace}% + \printdateextra} + {\printlabeldateextra}}}}% + \renewbibmacro*{date}{% + \iflabeldateisdate + {} + {\printdate}}% + \renewbibmacro*{issue+date}{% + \iflabeldateisdate {} {\printtext[parens]{% \printfield{issue}% \setunit*{\addspace}% - \iffieldsequal{year}{labelyear} - {\printlabeldateextra}% - {\ifdefstring\blx@dateformat@labeldate{edtf} - {} - {\datecircaprint}% - \dateeraprintpre{labelyear}% - \printfield{labelyear}% - \printfield{extrayear}% - \dateuncertainprint% - \iffieldsequal{labeldateera}{labelenddateera} - {} - {\dateeraprint{labelyear}}% - \ifdefstring\blx@dateformat@labeldate{edtf} - {\datecircaprintedtf} - {}% - \iffieldundef{labelendyear} - {} - {\iffieldsequal{labelyear}{labelendyear} - {} - {\ifdefstring\blx@dateformat@labeldate{edtf} - {\slash}% strict EDTF - {\bibdaterangesep - \enddatecircaprint}% - \dateeraprintpre{labelendyear}% - \printfield{labelendyear}% - \enddateuncertainprint - \ifdefstring\blx@dateformat@labeldate{edtf} - {\enddatecircaprintedtf} - {}% - \dateeraprint{labelendyear}}}}}}}% - \renewbibmacro*{date}{}% - \renewbibmacro*{issue+date}{}} + \printdateextra}}}} % merge date with date label \def\bbx@opt@mergedate@compact{% @@ -68,41 +57,23 @@ \iffieldundef{labelyear} {} {\printtext[parens]{% - \iffieldsequal{year}{labelyear} - {\printlabeldateextra}% - {\ifdefstring\blx@dateformat@labeldate{edtf} - {} - {\datecircaprint}% - \dateeraprintpre{labelyear}% - \printfield{labelyear}% - \printfield{extrayear}% - \dateuncertainprint% - \iffieldsequal{labeldateera}{labelenddateera} - {} - {\dateeraprint{labelyear}}% - \ifdefstring\blx@dateformat@labeldate{edtf} - {\datecircaprintedtf} - {}% - \iffieldundef{labelendyear} - {} - {\iffieldsequal{labelyear}{labelendyear} - {} - {\ifdefstring\blx@dateformat@labeldate{edtf} - {\slash}% strict EDTF - {\bibdaterangesep - \enddatecircaprint}% - \dateeraprintpre{labelendyear}% - \printfield{labelendyear}% - \enddateuncertainprint - \ifdefstring\blx@dateformat@labeldate{edtf} - {\enddatecircaprintedtf} - {}% - \dateeraprint{labelendyear}}}}}}}% - \renewbibmacro*{date}{}% - \renewbibmacro*{issue+date}{% - \iffieldundef{issue} + \iflabeldateisdate + {\printdateextra} + {\printlabeldateextra}}}}% + \renewbibmacro*{date}{% + \iflabeldateisdate {} - {\printtext[parens]{\printfield{issue}}}% + {\printdate}}% + \renewbibmacro*{issue+date}{% + \ifboolexpr{not test {\iffieldundef{issue}} + or test {\iflabeldateisdate}} + {\printtext[parens]{% + \printfield{issue}% + \setunit*{\addspace}% + \iflabeldateisdate + {} + {\printdate}}} + {}% \newunit}} % merge year-only date with date label @@ -110,37 +81,11 @@ \renewbibmacro*{date+extrayear}{% \iffieldundef{labelyear} {} - {\printtext[parens]{% - \ifdefstring\blx@dateformat@labeldate{edtf} - {} - {\datecircaprint}% - \dateeraprintpre{labelyear}% - \printfield{labelyear}% - \printfield{extrayear}% - \dateuncertainprint% - \iffieldsequal{labeldateera}{labelenddateera} - {} - {\dateeraprint{labelyear}}% - \ifdefstring\blx@dateformat@labeldate{edtf} - {\datecircaprintedtf} - {}% - \iffieldundef{labelendyear} - {} - {\iffieldsequal{labelyear}{labelendyear} - {} - {\ifdefstring\blx@dateformat@labeldate{edtf} - {\slash}% strict EDTF - {\bibdaterangesep - \enddatecircaprint}% - \dateeraprintpre{labelendyear}% - \printfield{labelendyear}% - \enddateuncertainprint - \ifdefstring\blx@dateformat@labeldate{edtf} - {\enddatecircaprintedtf} - {}% - \dateeraprint{labelendyear}}}}}}% + {\printtext[parens]{\printlabeldateextra}}}% \renewbibmacro*{date}{% \ifboolexpr{ + test {\iflabeldateisdate} + and test {\iffieldundef{season}} and test {\iffieldundef{month}} @@ -149,6 +94,8 @@ {\printdate}}% \renewbibmacro*{issue+date}{% \ifboolexpr{ + test {\iflabeldateisdate} + and test {\iffieldundef{issue}} and test {\iffieldundef{season}} @@ -167,37 +114,11 @@ \renewbibmacro*{date+extrayear}{% \iffieldundef{labelyear} {} - {\printtext[parens]{% - \ifdefstring\blx@dateformat@labeldate{edtf} - {} - {\datecircaprint}% - \dateeraprintpre{labelyear}% - \printfield{labelyear}% - \printfield{extrayear}% - \dateuncertainprint% - \iffieldsequal{labeldateera}{labelenddateera} - {} - {\dateeraprint{labelyear}}% - \ifdefstring\blx@dateformat@labeldate{edtf} - {\datecircaprintedtf} - {}% - \iffieldundef{labelendyear} - {} - {\iffieldsequal{labelyear}{labelendyear} - {} - {\ifdefstring\blx@dateformat@labeldate{edtf} - {\slash}% strict EDTF - {\bibdaterangesep - \enddatecircaprint}% - \dateeraprintpre{labelendyear}% - \printfield{labelendyear}% - \enddateuncertainprint - \ifdefstring\blx@dateformat@labeldate{edtf} - {\enddatecircaprintedtf} - {}% - \dateeraprint{labelendyear}}}}}}% + {\printtext[parens]{\printlabeldateextra}}}% \renewbibmacro*{date}{% \ifboolexpr{ + test {\iflabeldateisdate} + and test {\iffieldundef{season}} and test {\iffieldundef{month}} @@ -208,6 +129,8 @@ {\printdate}}% \renewbibmacro*{issue+date}{% \ifboolexpr{ + test {\iflabeldateisdate} + and test {\iffieldundef{issue}} and test {\iffieldundef{season}} @@ -228,35 +151,7 @@ \renewbibmacro*{date+extrayear}{% \iffieldundef{labelyear} {} - {\printtext[parens]{% - \ifdefstring\blx@dateformat@labeldate{edtf} - {} - {\datecircaprint}% - \dateeraprintpre{labelyear}% - \printfield{labelyear}% - \printfield{extrayear}% - \dateuncertainprint% - \iffieldsequal{labeldateera}{labelenddateera} - {} - {\dateeraprint{labelyear}}% - \ifdefstring\blx@dateformat@labeldate{edtf} - {\datecircaprintedtf} - {}% - \iffieldundef{labelendyear} - {} - {\iffieldsequal{labelyear}{labelendyear} - {} - {\ifdefstring\blx@dateformat@labeldate{edtf} - {\slash}% strict EDTF - {\bibdaterangesep - \enddatecircaprint}% - \dateeraprintpre{labelendyear}% - \printfield{labelendyear}% - \enddateuncertainprint - \ifdefstring\blx@dateformat@labeldate{edtf} - {\enddatecircaprintedtf} - {}% - \dateeraprint{labelendyear}}}}}}% + {\printtext[parens]{\printlabeldateextra}}}% \renewbibmacro*{date}{\printdate}% \renewbibmacro*{issue+date}{% \printtext[parens]{% @@ -265,7 +160,6 @@ \printdate}% \newunit}} -% n.b. the default labeldate=year overrides merging of months and days \ExecuteBibliographyOptions{labeldateparts,sorting=nyt,pagetracker,mergedate} \DeclareFieldFormat{shorthandwidth}{#1} diff --git a/tex/latex/biblatex/cbx/authoryear-comp.cbx b/tex/latex/biblatex/cbx/authoryear-comp.cbx index 73f975bb9..a91b819e3 100644 --- a/tex/latex/biblatex/cbx/authoryear-comp.cbx +++ b/tex/latex/biblatex/cbx/authoryear-comp.cbx @@ -126,33 +126,7 @@ \newbibmacro*{cite:labelyear+extrayear}{% \iffieldundef{labelyear} {} - {\printtext[bibhyperref]{% - \ifdefstring\blx@dateformat@labeldate{edtf} - {} - {\datecircaprint}% - \dateeraprintpre{labelyear}% - \printfield{labelyear}% - \printfield{extrayear}% - \iffieldsequal{labeldateera}{labelenddateera}{} - {\dateeraprint{labelyear}}% - \dateuncertainprint% - \ifdefstring\blx@dateformat@labeldate{edtf} - {\datecircaprintedtf} - {}% - \iffieldundef{labelendyear} - {} - {\iffieldsequal{labelyear}{labelendyear}{} - {\ifdefstring\blx@dateformat@labeldate{edtf} - {\slash}% strict EDTF - {\bibdaterangesep - \enddatecircaprint}% - \dateeraprintpre{labelendyear}% - \printfield{labelendyear}% - \enddateuncertainprint - \ifdefstring\blx@dateformat@labeldate{edtf} - {\enddatecircaprintedtf} - {}% - \dateeraprint{labelendyear}}}}}} + {\printtext[bibhyperref]{\printlabeldateextra}}} \newbibmacro*{cite:extrayear}{% \iffieldundef{extrayear} diff --git a/tex/latex/biblatex/cbx/authoryear-ibid.cbx b/tex/latex/biblatex/cbx/authoryear-ibid.cbx index 7148258f0..73cedacbd 100644 --- a/tex/latex/biblatex/cbx/authoryear-ibid.cbx +++ b/tex/latex/biblatex/cbx/authoryear-ibid.cbx @@ -85,33 +85,7 @@ \newbibmacro*{cite:labelyear+extrayear}{% \iffieldundef{labelyear} {} - {\printtext[bibhyperref]{% - \ifdefstring\blx@dateformat@labeldate{edtf} - {} - {\datecircaprint}% - \dateeraprintpre{labelyear}% - \printfield{labelyear}% - \printfield{extrayear}% - \iffieldsequal{labeldateera}{labelenddateera}{} - {\dateeraprint{labelyear}}% - \dateuncertainprint% - \ifdefstring\blx@dateformat@labeldate{edtf} - {\datecircaprintedtf} - {}% - \iffieldundef{labelendyear} - {} - {\iffieldsequal{labelyear}{labelendyear}{} - {\ifdefstring\blx@dateformat@labeldate{edtf} - {\slash}% strict EDTF - {\bibdaterangesep - \enddatecircaprint}% - \dateeraprintpre{labelendyear}% - \printfield{labelendyear}% - \enddateuncertainprint - \ifdefstring\blx@dateformat@labeldate{edtf} - {\enddatecircaprintedtf} - {}% - \dateeraprint{labelendyear}}}}}} + {\printtext[bibhyperref]{\printlabeldateextra}}} \newbibmacro*{cite:postnote}{% \ifbool{cbx:loccit} diff --git a/tex/latex/biblatex/cbx/authoryear-icomp.cbx b/tex/latex/biblatex/cbx/authoryear-icomp.cbx index 4bb47ceee..3ff565783 100644 --- a/tex/latex/biblatex/cbx/authoryear-icomp.cbx +++ b/tex/latex/biblatex/cbx/authoryear-icomp.cbx @@ -142,33 +142,7 @@ \newbibmacro*{cite:labelyear+extrayear}{% \iffieldundef{labelyear} {} - {\printtext[bibhyperref]{% - \ifdefstring\blx@dateformat@labeldate{edtf} - {} - {\datecircaprint}% - \dateeraprintpre{labelyear}% - \printfield{labelyear}% - \printfield{extrayear}% - \iffieldsequal{labeldateera}{labelenddateera}{} - {\dateeraprint{labelyear}}% - \dateuncertainprint% - \ifdefstring\blx@dateformat@labeldate{edtf} - {\datecircaprintedtf} - {}% - \iffieldundef{labelendyear} - {} - {\iffieldsequal{labelyear}{labelendyear}{} - {\ifdefstring\blx@dateformat@labeldate{edtf} - {\slash}% strict EDTF - {\bibdaterangesep - \enddatecircaprint}% - \dateeraprintpre{labelendyear}% - \printfield{labelendyear}% - \enddateuncertainprint - \ifdefstring\blx@dateformat@labeldate{edtf} - {\enddatecircaprintedtf} - {}% - \dateeraprint{labelendyear}}}}}} + {\printtext[bibhyperref]{\printlabeldateextra}}} \newbibmacro*{cite:extrayear}{% \iffieldundef{extrayear} diff --git a/tex/latex/biblatex/cbx/authoryear.cbx b/tex/latex/biblatex/cbx/authoryear.cbx index fd411c90b..e9e5a51b2 100644 --- a/tex/latex/biblatex/cbx/authoryear.cbx +++ b/tex/latex/biblatex/cbx/authoryear.cbx @@ -58,33 +58,7 @@ \newbibmacro*{cite:labelyear+extrayear}{% \iffieldundef{labelyear} {} - {\printtext[bibhyperref]{% - \ifdefstring\blx@dateformat@labeldate{edtf} - {} - {\datecircaprint}% - \dateeraprintpre{labelyear}% - \printfield{labelyear}% - \printfield{extrayear}% - \dateuncertainprint% - \iffieldsequal{labeldateera}{labelenddateera}{} - {\dateeraprint{labelyear}}% - \ifdefstring\blx@dateformat@labeldate{edtf} - {\datecircaprintedtf} - {}% - \iffieldundef{labelendyear} - {} - {\iffieldsequal{labelyear}{labelendyear}{} - {\ifdefstring\blx@dateformat@labeldate{edtf} - {\slash}% strict EDTF - {\bibdaterangesep - \enddatecircaprint}% - \dateeraprintpre{labelendyear}% - \printfield{labelendyear}% - \enddateuncertainprint - \ifdefstring\blx@dateformat@labeldate{edtf} - {\enddatecircaprintedtf} - {}% - \dateeraprint{labelendyear}}}}}} + {\printtext[bibhyperref]{\printlabeldateextra}}} \newbibmacro*{textcite:postnote}{% \iffieldundef{postnote}