Skip to content

Commit

Permalink
Use \printlabeldateextra in authoryear
Browse files Browse the repository at this point in the history
  • Loading branch information
moewew committed Jun 18, 2017
1 parent 81de35e commit aa2e0a5
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 262 deletions.
202 changes: 48 additions & 154 deletions tex/latex/biblatex/bbx/authoryear.bbx
Original file line number Diff line number Diff line change
Expand Up @@ -19,128 +19,73 @@

\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{%
\renewbibmacro*{date+extrayear}{%
\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
\def\bbx@opt@mergedate@basic{%
\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}}
Expand All @@ -149,6 +94,8 @@
{\printdate}}%
\renewbibmacro*{issue+date}{%
\ifboolexpr{
test {\iflabeldateisdate}
and
test {\iffieldundef{issue}}
and
test {\iffieldundef{season}}
Expand All @@ -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}}
Expand All @@ -208,6 +129,8 @@
{\printdate}}%
\renewbibmacro*{issue+date}{%
\ifboolexpr{
test {\iflabeldateisdate}
and
test {\iffieldundef{issue}}
and
test {\iffieldundef{season}}
Expand All @@ -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]{%
Expand All @@ -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}
Expand Down
28 changes: 1 addition & 27 deletions tex/latex/biblatex/cbx/authoryear-comp.cbx
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down
28 changes: 1 addition & 27 deletions tex/latex/biblatex/cbx/authoryear-ibid.cbx
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down
28 changes: 1 addition & 27 deletions tex/latex/biblatex/cbx/authoryear-icomp.cbx
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down
Loading

0 comments on commit aa2e0a5

Please sign in to comment.