From 20660a493139f7da8061a165133f5ff2bc3da266 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 18 Nov 2017 21:46:27 +0000 Subject: biblatex-oxref (18nov17) git-svn-id: svn://tug.org/texlive/trunk@45847 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/biblatex-oxref/oxyear.bbx | 499 +++++++-------------- 1 file changed, 150 insertions(+), 349 deletions(-) (limited to 'Master/texmf-dist/tex/latex/biblatex-oxref/oxyear.bbx') diff --git a/Master/texmf-dist/tex/latex/biblatex-oxref/oxyear.bbx b/Master/texmf-dist/tex/latex/biblatex-oxref/oxyear.bbx index 15ddd94fa91..88c2516b65a 100644 --- a/Master/texmf-dist/tex/latex/biblatex-oxref/oxyear.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-oxref/oxyear.bbx @@ -13,12 +13,12 @@ %% See: http://www.latex-project.org/lppl.txt %% ---------------------------------------------------------------- %% -\def\Version{2017/05/14 v0.10} +\def\Version{2017/11/18 v0.11} \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesFile{oxyear.bbx} [\Version\space Author-year bibliography style inspired by the Oxford Guide to Style] \RequireBibliographyStyle{oxref} -\ExecuteBibliographyOptions{uniquename=init,giveninits,labeldateparts,sorting=nyt,pagetracker,maxcitenames=2} +\ExecuteBibliographyOptions{giveninits,labeldateparts,sorting=nyt,pagetracker,maxcitenames=2} \DeclareBibliographyOption{mergedate}[true]{% \ifcsdef{bbx@opt@mergedate@#1} {\csuse{bbx@opt@mergedate@#1}} @@ -26,265 +26,155 @@ {Invalid option 'mergedate=#1'} {Valid values are 'maximum', 'compact', 'basic', 'minimum',\MessageBreak 'year', 'true' (=year), and 'false'.}}} -\providebibmacro*{date+extrayear}{} +\providebibmacro*{date+extradate}{} \DeclareFieldFormat{datelabel}{\mkbibparens{#1}} -\newbibmacro*{labelyearrange}{% - \printfield{labelyear}% - \printfield{extrayear}% - \iffieldundef{labelendyear}{}{% - \iffieldsequal{labelyear}{labelendyear}{}{% - \iffieldequalstr{labelendyear}{}{% - \mbox{\bibdaterangesep}% - }{% - \bibdaterangesep - \iffieldundef{extrayear}{% - \blx@ox@compyear - {\thefield{labelyear}}% - {\thefield{labelendyear}}% - }{% - \printfield{labelendyear}}}}}} +\DeclareLabeldate{% + \field{origdate} + \field{date} + \field{year} + \field{eventdate} + \field{pubstate} + \literal{nodate} +} +\DeclareFieldFormat{extradate}{% + \iffieldundef{\thefield{labeldatesource}}{% + \iffieldnums{\thefield{labeldatesource}year}{}{~}% + }{% + \iffieldnums{\thefield{labeldatesource}}{}{~}% + }% + \mkbibemph{\mknumalph{#1}}}% + +\def\iflabeldateisanydate{% + \ifboolexpr{% + togl {blx@labeldateparts} + and not test {\iffieldundef{labeldatesource}} + and not test {\iffieldundef{\thefield{labeldatesource}year}}}} +\def\iflabeldateispubstate{% + \ifboolexpr{% + not test {\iffieldundef{labeldatesource}} + and test {\iffieldequalstr{labeldatesource}{pubstate}}}} + \def\bbx@opt@mergedate@true{\bbx@opt@mergedate@year} \def\bbx@opt@mergedate@maximum{% - \renewbibmacro*{date+extrayear}{% + \renewbibmacro*{date+extradate}{% \iffieldundef{labelyear}{}{% \printtext[datelabel]{% - \printfield{issue}% - \setunit*{\addspace}% - \ifboolexpr{% - not test {\iffieldundef{\thefield{labeldatesource}year}} - and - test {\iffieldsequal{\thefield{labeldatesource}year}{labelyear}} - }{% - \printlabeldateextra + \iflabeldateisdate{% + \printfield{issue}\clearfield{issue}% + \setunit*{\addspace}% + \printdateextra + \clearfield{year}\clearfield{season}\clearfield{month}\clearfield{day}% }{% - \printfield{labelyear}% - \printfield{extrayear}}}% - \iffieldundef{\thefield{labeldatesource}year}{% - \iffieldundef{\thefield{labeldatesource}}{}{% - \iffieldequalstr{labeldatesource}{pubstate}{}{% - \clearfield{\thefield{labeldatesource}}}}% - }{% - \clearfield{\thefield{labeldatesource}year}% - \clearfield{end\thefield{labeldatesource}year}% - \clearfield{\thefield{labeldatesource}month}% - \clearfield{end\thefield{labeldatesource}month}% - \clearfield{\thefield{labeldatesource}day}% - \clearfield{end\thefield{labeldatesource}day}% - }% - \clearfield{issue}}}}% + \iflabeldateisanydate{% + \csuse{print\thefield{labeldatesource}dateextra}% + \clearfield{\thefield{labeldatesource}year}% + \clearfield{\thefield{labeldatesource}season}% + \clearfield{\thefield{labeldatesource}month}% + \clearfield{\thefield{labeldatesource}day}% + }{% + \printlabeldateextra + \iflabeldateispubstate{}{\clearfield{\thefield{labeldatesource}}}% + }}}}}}% \def\bbx@opt@mergedate@compact{% - \renewbibmacro*{date+extrayear}{% + \renewbibmacro*{date+extradate}{% \iffieldundef{labelyear}{}{% \printtext[datelabel]{% - \ifboolexpr{% - not test {\iffieldundef{\thefield{labeldatesource}year}} - and - test {\iffieldsequal{\thefield{labeldatesource}year}{labelyear}} + \iflabeldateisanydate{% + \csuse{print\thefield{labeldatesource}dateextra}% + \clearfield{\thefield{labeldatesource}year}% + \clearfield{\thefield{labeldatesource}season}% + \clearfield{\thefield{labeldatesource}month}% + \clearfield{\thefield{labeldatesource}day}% }{% \printlabeldateextra - }{% - \printfield{labelyear}% - \printfield{extrayear}}}% - \iffieldundef{\thefield{labeldatesource}year}{% - \iffieldundef{\thefield{labeldatesource}}{}{% - \iffieldequalstr{labeldatesource}{pubstate}{}{% - \clearfield{\thefield{labeldatesource}}}}% - }{% - \clearfield{\thefield{labeldatesource}year}% - \clearfield{end\thefield{labeldatesource}year}% - \clearfield{\thefield{labeldatesource}month}% - \clearfield{end\thefield{labeldatesource}month}% - \clearfield{\thefield{labeldatesource}day}% - \clearfield{end\thefield{labeldatesource}day}% - }}}} + \iflabeldateispubstate{}{\clearfield{\thefield{labeldatesource}}}% + }}}}}% \def\bbx@opt@mergedate@year{% - \renewbibmacro*{date+extrayear}{% + \renewbibmacro*{date+extradate}{% \iffieldundef{labelyear}{}{% - \printtext[datelabel]{% - \usebibmacro{labelyearrange}}% - \iffieldundef{\thefield{labeldatesource}year}{% - \iffieldundef{\thefield{labeldatesource}}{}{% - \iffieldequalstr{labeldatesource}{pubstate}{}{% - \clearfield{\thefield{labeldatesource}}}}% - }{% + \printtext[datelabel]{\printlabeldateextra}% + \iflabeldateisanydate{% \clearfield{\thefield{labeldatesource}year}% - \clearfield{end\thefield{labeldatesource}year}% - }}}} + }{% + \iflabeldateispubstate{}{\clearfield{\thefield{labeldatesource}}}% + }}}}% \def\bbx@opt@mergedate@basic{% - \renewbibmacro*{date+extrayear}{% + \renewbibmacro*{date+extradate}{% \iffieldundef{labelyear}{}{% - \printtext[datelabel]{% - \usebibmacro{labelyearrange}}% - \iffieldundef{\thefield{labeldatesource}year}{% - \iffieldundef{\thefield{labeldatesource}}{}{% - \iffieldequalstr{labeldatesource}{pubstate}{}{% - \clearfield{\thefield{labeldatesource}}}}% + \printtext[datelabel]{\printlabeldateextra}% + \iflabeldateisanydate{% + \ifdateshavedifferentprecision{label}{\thefield{labeldatesource}}{}{% + \ifboolexpr{ + test {\iffieldequalstr{labeldatesource}{}} + and + not test {\iffieldundef{issue}} + }{}{% + \clearfield{\thefield{labeldatesource}year}}}% }{% - \ifboolexpr{ - test {\iffieldundef{\thefield{labeldatesource}month}} - and ( - test {\iffieldundef{issue}} - or - not test {\iffieldequalstr{labeldatesource}{}} - )}{% - \clearfield{\thefield{labeldatesource}year}% - \clearfield{end\thefield{labeldatesource}year}% - }{}}}}}% + \iflabeldateispubstate{}{\clearfield{\thefield{labeldatesource}}}% + }}}} \def\bbx@opt@mergedate@minimum{% - \renewbibmacro*{date+extrayear}{% + \renewbibmacro*{date+extradate}{% \iffieldundef{labelyear}{}{% - \printtext[datelabel]{% - \usebibmacro{labelyearrange}}% - \iffieldundef{\thefield{labeldatesource}year}{% - \iffieldundef{\thefield{labeldatesource}}{}{% - \iffieldequalstr{labeldatesource}{pubstate}{}{% - \clearfield{\thefield{labeldatesource}}}}% - }{% + \printtext[datelabel]{\printlabeldateextra}% + \iflabeldateisanydate{% \ifboolexpr{ - test {\iffieldundef{\thefield{labeldatesource}month}} - and - test {\iffieldundef{extrayear}} - and ( - test {\iffieldundef{issue}} - or - not test {\iffieldequalstr{labeldatesource}{}} - )}{% - \clearfield{\thefield{labeldatesource}year}% - \clearfield{end\thefield{labeldatesource}year}% - }{}}}}}% + test {\ifdateshavedifferentprecision{label}{\thefield{labeldatesource}}} + or + not test {\iffieldundef{extradate}} + }{}{% + \ifboolexpr{ + test {\iffieldequalstr{labeldatesource}{}} + and + not test {\iffieldundef{issue}} + }{}{% + \clearfield{\thefield{labeldatesource}year}}}% + }{% + \iflabeldateispubstate{}{\clearfield{\thefield{labeldatesource}}}% + }}}} \def\bbx@opt@mergedate@false{% - \renewbibmacro*{date+extrayear}{% + \renewbibmacro*{date+extradate}{% \iffieldundef{labelyear}{}{% - \printtext[datelabel]{% - \usebibmacro{labelyearrange}}}}% - \iffieldundef{\thefield{labeldatesource}year}{% - \iffieldundef{\thefield{labeldatesource}}{}{% - \iffieldequalstr{labeldatesource}{pubstate}{}{% - \clearfield{\thefield{labeldatesource}}}}}{}} + \printtext[datelabel]{\printlabeldateextra}% + \iflabeldateisanydate{}{% + \iflabeldateispubstate{}{\clearfield{\thefield{labeldatesource}}}% + }}}} \ExecuteBibliographyOptions{mergedate} -\DeclareRobustCommand*{\mkdaterangefull}[2]{% - \blx@metadateinfo{#2}% - \iffieldundef{#2year}{% - \iffieldundef{#2month}{}{% - \datecircaprint - \printtext[#2date]{% - \iffieldundef{#2season}{% - \csuse{mkbibdate#1}{}{#2month}{#2day}% - \blx@printtime{#2}{}% - }{% - \csuse{mkbibseasondate#1}{}{#2season}}% - \dateuncertainprint - \iffieldundef{#2endmonth}{}{% - \iffieldequalstr{#2endmonth}{}{% - \mbox{\bibdaterangesep}% - }{% - \bibdaterangesep - \enddatecircaprint - \iffieldundef{#2season}{% - \csuse{mkbibdate#1}{}{#2endmonth}{#2endday}% - \blx@printtime{#2}{end}% - }{% - \csuse{mkbibseasondate#1}{}{#2endseason}}% - \enddateuncertainprint}}}}% - }{% +\newrobustcmd*{\mknoyeardaterangefull}[2]{% + \iffieldundef{#2month}{}{% \datecircaprint \printtext[#2date]{% - \iffieldundef{#2season}{% - \csuse{mkbibdate#1}{#2year}{#2month}{#2day}% - \blx@printtime{#2}{}% + \iffieldundef{#2season}{% + \csuse{mkbibdate#1}{}{#2month}{#2day}% + \blx@printtime{#2}{}% + }{% + \csuse{mkbibseasondate#1}{}{#2season}}% + \dateuncertainprint + \iffieldundef{#2endmonth}{}{% + \iffieldequalstr{#2endmonth}{}{% + \mbox{\bibdaterangesep}% }{% - \csuse{mkbibseasondate#1}{#2year}{#2season}}% - \dateuncertainprint - \dateeraprint{#2year}% - \iffieldundef{#2endyear}{}{% - \iffieldequalstr{#2endyear}{}{% - \mbox{\bibdaterangesep}% - }{% - \bibdaterangesep - \enddatecircaprint - \iffieldundef{#2season}{% - \csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}% - \blx@printtime{#2}{end}% - }{% - \csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}% - \enddateuncertainprint - \dateeraprint{#2endyear}}}}}} - -\DeclareRobustCommand*{\mkdaterangetrunc}[2]{% - \blx@metadateinfo{#2}% - \iffieldundef{#2year}{% - \iffieldundef{#2month}{}{% - \datecircaprint - \printtext[#2date]{% + \bibdaterangesep + \enddatecircaprint \iffieldundef{#2season}{% - \ifboolexpr{ - test {\iffieldsequal{labelyear}{labelendyear}} - and - test {\iffieldsequal{#2month}{#2endmonth}} - }{% - \csuse{mkbibdate#1}{}{}{#2day}% - }{% - \csuse{mkbibdate#1}{}{#2month}{#2day}}% + \csuse{mkbibdate#1}{}{#2endmonth}{#2endday}% + \blx@printtime{#2}{end}% }{% - \csuse{mkbibseasondate#1}{}{#2season}}% - \dateuncertainprint - \iffieldundef{#2endmonth}{}{% - \iffieldequalstr{#2endmonth}{}{% - \mbox{\bibdaterangesep}% - }{% - \bibdaterangesep - \enddatecircaprint - \iffieldundef{#2season}{% - \csuse{mkbibdate#1}{}{#2endmonth}{#2endday}% - }{% - \csuse{mkbibseasondate#1}{}{#2endseason}}% - \enddateuncertainprint}}}}% - }{% + \csuse{mkbibseasondate#1}{}{#2endseason}}% + \enddateuncertainprint}}}}} +\newrobustcmd*{\mknoyeardaterangetrunc}[2]{% + \iffieldundef{#2month}{}{% \datecircaprint \printtext[#2date]{% \iffieldundef{#2season}{% - \iffieldsequal{#2year}{#2endyear}{% - \iffieldsequal{#2month}{#2endmonth}{% - \csuse{mkbibdate#1}{}{}{#2day}% - }{% - \csuse{mkbibdate#1}{}{#2month}{#2day}}% - }{% - \csuse{mkbibdate#1}{#2year}{#2month}{#2day}% - \iffieldsequal{#2dateera}{#2enddateera}{}{% - \dateeraprint{#2year}}}% - }{% - \iffieldsequal{#2year}{#2endyear}{% - \csuse{mkbibseasondate#1}{}{#2season}% + \ifboolexpr{ + test {\iffieldsequal{labelyear}{labelendyear}} + and + test {\iffieldsequal{#2month}{#2endmonth}} }{% - \csuse{mkbibseasondate#1}{#2year}{#2season}% - \iffieldsequal{#2dateera}{#2enddateera}{}{% - \dateeraprint{#2year}}}}% - \dateuncertainprint - \iffieldundef{#2endyear}{}{% - \iffieldequalstr{#2endyear}{}{% - \mbox{\bibdaterangesep}% + \csuse{mkbibdate#1}{}{}{#2day}% }{% - \bibdaterangesep - \enddatecircaprint - \iffieldundef{#2season}{% - \iffieldundef{#2endmonth}{% - \blx@ox@compyear{\thefield{#2year}}{\thefield{#2endyear}}% - }{% - \csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}% - }{% - \csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}% - \enddateuncertainprint - \dateeraprint{#2endyear}}}}}} - -\DeclareRobustCommand*{\mkdaterangefullextra}[2]{% - \blx@metadateinfo{#2}% - \iffieldundef{#2year}{% - \iffieldundef{#2month}{}{% - \datecircaprint - \printtext[#2date]{% - \iffieldundef{#2season}{% - \csuse{mkbibdate#1}{}{#2month}{#2day}% - \blx@printtime{#2}{}% + \csuse{mkbibdate#1}{}{#2month}{#2day}}% }{% \csuse{mkbibseasondate#1}{}{#2season}}% \dateuncertainprint @@ -296,122 +186,29 @@ \enddatecircaprint \iffieldundef{#2season}{% \csuse{mkbibdate#1}{}{#2endmonth}{#2endday}% - \blx@printtime{#2}{end}% }{% \csuse{mkbibseasondate#1}{}{#2endseason}}% - \enddateuncertainprint}}}}% - }{% - \datecircaprint - \printtext[#2date]{% - \printtext{% - \iffieldundef{#2season}{% - \csuse{mkbibdate#1}{#2year}{#2month}{#2day}% - \blx@printtime{#2}{}% - }{% - \csuse{mkbibseasondate#1}{#2year}{#2season}}% - \dateuncertainprint - \dateeraprint{#2year}% - \iffieldundef{#2endyear}{% - \printfield{extrayear}% - }{% - \iffieldequalstr{#2endyear}{}{% - \printfield{extrayear}% - \printtext{\mbox{\bibdaterangesep}}% - }{% - \printtext{% - \bibdaterangesep - \enddatecircaprint - \iffieldundef{#2season}{% - \csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}% - \blx@printtime{#2}{end}% - }{% - \csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}% - \printfield{extrayear}% - \enddateuncertainprint - \dateeraprint{#2endyear}}}}}}} - -\DeclareRobustCommand*{\mkdaterangetruncextra}[2]{% - \blx@metadateinfo{#2}% - \iffieldundef{#2year}{% - \iffieldundef{#2month}{}{% - \datecircaprint - \printtext[#2date]{% - \iffieldundef{#2season}{% - \iffieldsequal{#2month}{#2endmonth}{% - \csuse{mkbibdate#1}{}{}{#2day}% - }{% - \csuse{mkbibdate#1}{}{#2month}{#2day}}% - }{% - \csuse{mkbibseasondate#1}{}{#2season}}% - \dateuncertainprint - \iffieldundef{#2endmonth}{}{% - \iffieldequalstr{#2endmonth}{}{% - \mbox{\bibdaterangesep}% - }{% - \bibdaterangesep - \enddatecircaprint - \iffieldundef{#2season}{% - \csuse{mkbibdate#1}{}{#2endmonth}{#2endday}% - }{% - \csuse{mkbibseasondate#1}{}{#2endseason}}% - \enddateuncertainprint}}}}% - }{% - \datecircaprint - \printtext[#2date]{% - \iffieldundef{#2season}{% - \iffieldsequal{#2year}{#2endyear}{% - \iffieldsequal{#2month}{#2endmonth}{% - \csuse{mkbibdate#1}{}{}{#2day}% - }{% - \csuse{mkbibdate#1}{}{#2month}{#2day}}% - }{% - \csuse{mkbibdate#1}{#2year}{#2month}{#2day}% - \iffieldsequal{#2dateera}{#2enddateera}{}{% - \dateeraprint{#2year}}}% - }{% - \iffieldsequal{#2year}{#2endyear}{% - \csuse{mkbibseasondate#1}{}{#2season}% - }{% - \csuse{mkbibseasondate#1}{#2year}{#2season} - \iffieldsequal{#2dateera}{#2enddateera}{}{% - \dateeraprint{#2year}}}}% - \dateuncertainprint - \iffieldundef{#2endyear}{% - \printfield{extrayear}% - }{% - \iffieldequalstr{#2endyear}{}{% - \printfield{extrayear}% - \printtext{\mbox{\bibdaterangesep}}% - }{% - \printtext{% - \bibdaterangesep - \enddatecircaprint - \iffieldundef{#2season}{% - \iffieldundef{#2endmonth}{% - \blx@ox@compyear{\thefield{#2year}}{\thefield{#2endyear}}% - }{% - \csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}% - }{% - \csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}% - \printfield{extrayear}% - \enddateuncertainprint - \dateeraprint{#2endyear}}}}}} - -\DeclareLabeldate{% - \field{origdate} - \field{date} - \field{year} - \field{eventdate} - \field{pubstate} - \literal{nodate} -} -\DeclareFieldFormat{extrayear}{% - \iffieldundef{\thefield{labeldatesource}}{% - \iffieldnums{\thefield{labeldatesource}year}{}{~}% - }{% - \iffieldnums{\thefield{labeldatesource}}{}{~}% - }% - \mkbibemph{\mknumalph{#1}}}% + \enddateuncertainprint}}}}} +\xpatchcmd{\mkdaterangefull}{% + \iffieldundef{#2year} {}% +}{% + \iffieldundef{#2year} {\mknoyeardaterangefull{#1}{#2}}% +}{}{} +\xpatchcmd{\mkdaterangetrunc}{% + \iffieldundef{#2year} {}% +}{% + \iffieldundef{#2year} {\mknoyeardaterangetrunc{#1}{#2}}% +}{}{} +\xpatchcmd{\mkdaterangefullextra}{% + \iffieldundef{#2year} {}% +}{% + \iffieldundef{#2year} {\mknoyeardaterangefull{#1}{#2}}% +}{}{} +\xpatchcmd{\mkdaterangetruncextra}{% + \iffieldundef{#2year} {}% +}{% + \iffieldundef{#2year} {\mknoyeardaterangetrunc{#1}{#2}}% +}{}{} \DeclareFieldFormat{shorthandwidth}{#1} \xpretonameformat{family-given}{% @@ -473,7 +270,7 @@ \xpatchbibmacro{author}{% \iffieldundef{authortype}% }{% - \usebibmacro{date+extrayear}% + \usebibmacro{date+extradate}% \setunit*{\addspace}% \iffieldundef{authortype}% }{}{}% @@ -483,7 +280,7 @@ \global\undef\bbx@lasthash \usebibmacro{labeltitle}% \setunit*{\addspace}% - \usebibmacro{date+extrayear}% + \usebibmacro{date+extradate}% }{}{}% \xpatchbibmacro{namepairs}{% \printnames[by#1]% @@ -506,7 +303,7 @@ \xpatchbibmacro{bbx:editor}{% \usebibmacro{#1}% }{% - \usebibmacro{date+extrayear}% + \usebibmacro{date+extradate}% \setunit*{\addspace}% \usebibmacro{#1}% }{}{}% @@ -516,7 +313,7 @@ \global\undef\bbx@lasthash \usebibmacro{labeltitle}% \setunit*{\addspace}% - \usebibmacro{date+extrayear}% + \usebibmacro{date+extradate}% }{}{}% \xpatchbibmacro{editor+alteditor}{% \printnames[byeditor]% @@ -542,12 +339,12 @@ \global\undef\bbx@lasthash \usebibmacro{labeltitle}% \setunit*{\addspace}% - \usebibmacro{date+extrayear}% + \usebibmacro{date+extradate}% }{}{}% \xpatchbibmacro{bbx:translator}{% \usebibmacro{#1}% }{% - \usebibmacro{date+extrayear}% + \usebibmacro{date+extradate}% \setunit*{\addspace}% \usebibmacro{#1}% }{}{}% @@ -590,7 +387,11 @@ \xpatchbibdriver{online}{% \iffieldundef{year}% }{% - \iffieldundef{month}% + \ifboolexpr{ + test {\iffieldundef{season}} + and + test {\iffieldundef{month}} + }% }{}{} \DeclareFieldFormat[online,image]{citetitle}{\mkbibquote{#1\isdot}} \DeclareFieldFormat[legislation,legal]{citetitle}{#1} -- cgit v1.2.3