diff options
author | Karl Berry <karl@freefriends.org> | 2020-04-20 21:05:08 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-04-20 21:05:08 +0000 |
commit | 24c953dcb93919a65e5830191614a1f7538616c7 (patch) | |
tree | 4294e1d5a329fc8c1b9ef49cb6b817b9fe51fc7a /Master/texmf-dist/tex/latex/biblatex-chicago/chicago-authordate.bbx | |
parent | fd4bc79730244980c6fff55f3487edd94a88b15b (diff) |
biblatex-chicago (20apr20)
git-svn-id: svn://tug.org/texlive/trunk@54809 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-chicago/chicago-authordate.bbx')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex-chicago/chicago-authordate.bbx | 2433 |
1 files changed, 1867 insertions, 566 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-chicago/chicago-authordate.bbx b/Master/texmf-dist/tex/latex/biblatex-chicago/chicago-authordate.bbx index 7032fd8b019..b5e787803e6 100644 --- a/Master/texmf-dist/tex/latex/biblatex-chicago/chicago-authordate.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-chicago/chicago-authordate.bbx @@ -1,10 +1,8 @@ -% $Id: chicago-authordate.bbx,v 0.9.1.13 2018/01/11 09:25:52 dfussner Exp $ - -% This is a biblatex style file, adapted mainly from Lehman's -% standard.bbx and from chicago-notes.bbx. It provides the +% This is a biblatex style file, originally adapted mainly from +% Lehman's standard.bbx and from chicago-notes.bbx. It provides the % reference list formatting for the Chicago author-date style. -\ProvidesFile{chicago-authordate.bbx}[2018/01/11 v 3.10 biblatex +\ProvidesFile{chicago-authordate.bbx}[2020/04/20 v 3.14 biblatex bibliography style] %%%% Initialize and format bibliography and los %%%% @@ -14,7 +12,13 @@ bibliography style] \DeclareFieldFormat{shorthandwidth}{#1} -\DeclareFieldFormat{shortjournalwidth}{\mkbibemph{\textbf{#1}}\isdot} +\DeclareFieldFormat{shortserieswidth}{#1} + +\DeclareFieldFormat{shortjournalwidth}{% + \ifthenelse{\ifentrytype{jurisdiction}\OR% + \ifentrytype{legal}\OR\ifentrytype{legislation}}% + {\textbf{#1}\isdot}% + {\mkbibemph{\textbf{#1}}\isdot}}% \newlength{\lositemsep} @@ -28,19 +32,6 @@ bibliography style] {\endlist} {\item} -\defbibenvironment{shorthands}% biblatex < 2.9 - {\list - {\printfield[shorthandwidth]{shorthand}}% - {\setlength{\labelwidth}{\shorthandwidth}% - \setlength{\leftmargin}{\labelwidth}% - \setlength{\labelsep}{\biblabelsep}% - \addtolength{\leftmargin}{\labelsep}% - \setlength{\itemsep}{\lositemsep}% - \setlength{\parsep}{\bibparsep}% - \renewcommand*{\makelabel}[1]{##1\hss}}} - {\endlist} - {\item} - \defbibenvironment{shorthand} {\list {\printfield[shorthandwidth]{shorthand}}% @@ -123,6 +114,15 @@ bibliography style] {\endlist\nopunct\vspace{-\baselineskip}} {\item} +\defbibcheck{shorthand}{% + \iftoggle{cms@los}% + {\iffieldundef{shorthand}% + {\skipentry}% + {\ifcsdef{\strfield{shorthand}}% + {\skipentry}% + {\savefieldcs{shorthand}{\strfield{shorthand}}}}}% + {}}% + \defbibcheck{shortjournal}{% Only one list \iffieldundef{shortjournal}% {\skipentry}% @@ -138,20 +138,65 @@ bibliography style] % {\savefield{shortjournal}{\cms@shjour}}}% % {\savefield{shortjournal}{\cms@shjour}}} +\defbibenvironment{shortseries}% + {\list + {\printfield[shortserieswidth]{shortseries}}% + {\setlength{\labelwidth}{\shortserieswidth}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\labelsep}{.7\biblabelsep}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\lositemsep}% + \setlength{\parsep}{\bibparsep}% + \renewcommand*{\makelabel}[1]{##1\hss}}} + {\endlist} + {\item} + +\defbibenvironment{shsernotes}% + {\list + {\printfield[shortserieswidth]{shortseries}}% + {\footnotesize% + \setlength{\labelwidth}{\shortserieswidth}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\labelsep}{.3\biblabelsep}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\lositemsep}% + \setlength{\parsep}{\bibparsep}% + \renewcommand*{\makelabel}[1]{##1\hss}}} + {\endlist} + {\item} + +\defbibenvironment{shserendnotes}% + {\list + {\printfield[shortserieswidth]{shortseries}}% + {\enotesize% + \setlength{\labelwidth}{\shortserieswidth}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\labelsep}{.3\biblabelsep}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\lositemsep}% + \setlength{\parsep}{\bibparsep}% + \renewcommand*{\makelabel}[1]{##1\hss}}} + {\endlist\nopunct\vspace{-\baselineskip}} + {\item} + +\defbibcheck{shortseries}{% Only one list + \ifthenelse{\iffieldundef{shortseries}\OR% + \iffieldundef{series}\OR% + \iffieldsequal{series}{shortseries}}% + {\skipentry}% + {\ifcsdef{\strfield{shortseries}}% + {\skipentry}% + {\savefieldcs{shortseries}% + {\strfield{shortseries}}}}}% + \AtBeginBibliography{% \togglefalse{cms@headlessnote}}% \AtEveryBibitem{% - \global\csundef{@cmsst}% - \iffieldequalstr{pubstate}{reprint}% - {\toggletrue{cms@reprint}}% - {\togglefalse{cms@reprint}}}% + \global\csundef{@cmsst}}% \AtEveryLositem{% - \global\csundef{@cmsst}% - \iffieldequalstr{pubstate}{reprint}% - {\toggletrue{cms@reprint}}% - {\togglefalse{cms@reprint}}}% + \global\csundef{@cmsst}}% \AtEveryBiblistitem{shortjournal}{% \global\csundef{@cmsst}% @@ -234,7 +279,7 @@ bibliography style] and test {\ifdefvoid{#3}}% }% - {}{\revsdnamepunct}% + {}{\revsdnamepunct}% \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}% \ifdefvoid{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}% \ifdefvoid{#4}{}{\revsdnamepunct\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}}% @@ -290,28 +335,50 @@ bibliography style] \newbibmacro*{justauthor}{% \ifthenelse{\ifnameundef{author}\OR\NOT\ifuseauthor}% {\let\bbx@lasthash\undefined}% - {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND\NOT% - \iffirstonpage}% + {\ifboolexpr{% + test {\iffieldequals{fullhash}{\bbx@lasthash}}% + and + not test {\iffirstonpage}% + and + togl {cms@namedash}% + }% {\iffieldundef{nameaddon}% - {\bibnamedash\addperiod\addspace}% - {\bibnamedash\addspace}}% + {\printtext{\bibnamedash}}% + {\printtext{\bibnamedash}% + \ifentrytype{customc}% + {\newunit}% + {\setunit{\addspace}}\printfield{nameaddon}}}% {\iffieldequalstr{authortype}{anon}% {\bibleftbracket\printnames{author}\bibrightbracket% \savefield{fullhash}{\bbx@lasthash}}% {\iffieldequalstr{authortype}{anon?}% {\bibleftbracket\printnames{author}\addquestion\bibrightbracket% \savefield{fullhash}{\bbx@lasthash}}% - {\printnames{author}% + {\iftoggle{cms@authorparens}% + {\bibopenparen\printnames{author}% + \ifentrytype{customc}{}% + {\setunit{\addspace}\printfield{nameaddon}}\bibcloseparen% + \ifentrytype{customc}% + {\newunit\printfield{nameaddon}}% + {}}% + {\printnames{author}% + \ifentrytype{customc}{\newunit}{\setunit{\addspace}}% + \printfield{nameaddon}}% \savefield{fullhash}{\bbx@lasthash}}}}}} \newbibmacro*{moreauthor}{% \ifthenelse{\ifnameundef{author}\OR\NOT\ifuseauthor}% {\usebibmacro{pickeditor}}% - {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND\NOT% - \iffirstonpage}% + {\ifboolexpr{% + test {\iffieldequals{fullhash}{\bbx@lasthash}}% + and + not test {\iffirstonpage}% + and + togl {cms@namedash}% + }% {\iffieldundef{nameaddon}% - {\bibnamedash\addperiod\addspace}% - {\bibnamedash\addspace}}% + {\printtext{\bibnamedash}}% + {\printtext{\bibnamedash}\setunit{\addspace}\printfield{nameaddon}}}% {\iffieldequalstr{authortype}{anon}% {\bibleftbracket\printnames{author}\bibrightbracket% \savefield{fullhash}{\bbx@lasthash}}% @@ -319,8 +386,11 @@ bibliography style] {\bibleftbracket\printnames{author}\addquestion\bibrightbracket% \savefield{fullhash}{\bbx@lasthash}}% {\iftoggle{cms@authorparens}% - {\bibopenparen\printnames{author}\bibcloseparen}% - {\printnames{author}}% + {\bibopenparen\printnames{author}% + \setunit{\addspace}\printfield{nameaddon}\bibcloseparen}% + {\printnames{author}% + \setunit{\addspace}% + \printfield{nameaddon}}% \savefield{fullhash}{\bbx@lasthash}}}}}} \newbibmacro*{pickeditor}{% @@ -331,15 +401,26 @@ bibliography style] \newbibmacro*{moreeditor}{% \ifthenelse{\ifnameundef{editor}\OR\NOT\ifuseeditor}% {\usebibmacro{picktranslator}}% - {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND\NOT% - \iffirstonpage}% - {\bibnamedash\editordelim}% + {\ifboolexpr{% + test {\iffieldequals{fullhash}{\bbx@lasthash}}% + and + not test {\iffirstonpage}% + and + togl {cms@namedash}% + }% + {\iffieldundef{nameaddon}% + {\printtext{\bibnamedash}\editordelim}% + {\printtext{\bibnamedash}\setunit{\addspace}% + \printfield{nameaddon}\editordelim}}% {\iftoggle{cms@authorparens}% {\bibopenparen\printnames{editor}% + \setunit{\addspace}\printfield{nameaddon}% \bibcloseparen\editordelim}% - {\printnames{editor}\editordelim}% + {\printnames{editor}% + \setunit{\addspace}% + \printfield{nameaddon}\editordelim}% \savefield{fullhash}{\bbx@lasthash}}% - \usebibmacro{editstrg}}} + \usebibmacro{editstrg}}}% \renewbibmacro*{editor}{% \iftoggle{cms@headlessnote}% @@ -347,35 +428,68 @@ bibliography style] {\ifthenelse{\ifnameundef{namea}\OR\NOT\ifusenamea}% {\ifthenelse{\ifnameundef{editor}\OR\NOT\ifuseeditor}% {\usebibmacro{picktranslator}}% - {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND\NOT% - \iffirstonpage}% - {\bibnamedash\editordelim}% + {\ifboolexpr{% + test {\iffieldequals{fullhash}{\bbx@lasthash}}% + and + not test {\iffirstonpage}% + and + togl {cms@namedash}% + }% + {\iffieldundef{nameaddon}% + {\printtext{\bibnamedash}\editordelim}% + {\printtext{\bibnamedash}\setunit{\addspace}% + \printfield{nameaddon}\editordelim}}% {\iftoggle{cms@authorparens}% {\bibopenparen\printnames{editor}% + \setunit{\addspace}\printfield{nameaddon}% \bibcloseparen\editordelim}% - {\printnames{editor}\editordelim}% + {\printnames{editor}% + \setunit{\addspace}% + \printfield{nameaddon}\editordelim}% \savefield{fullhash}{\bbx@lasthash}}% \usebibmacro{editstrg}}}% - {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND\NOT% - \iffirstonpage}% - {\bibnamedash\nameadelim}% + {\ifboolexpr{% + test {\iffieldequals{fullhash}{\bbx@lasthash}}% + and + not test {\iffirstonpage}% + and + togl {cms@namedash}% + }% + {\iffieldundef{nameaddon}% + {\printtext{\bibnamedash}\nameadelim}% + {\printtext{\bibnamedash}\setunit{\addspace}% + \printfield{nameaddon}\nameadelim}}% {\iftoggle{cms@authorparens}% {\bibopenparen\printnames[sortname]{namea}% + \setunit{\addspace}\printfield{nameaddon}% \bibcloseparen\nameadelim}% - {\printnames[sortname]{namea}\nameadelim}% + {\printnames[sortname]{namea}% + \setunit{\addspace}% + \printfield{nameaddon}\nameadelim}% \savefield{fullhash}{\bbx@lasthash}}% \usebibmacro{parteditstrg}}}} \newbibmacro*{parteditor}{% \ifthenelse{\ifnameundef{namea}\OR\NOT\ifusenamea}% {\usebibmacro{picktranslator}}% - {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND\NOT% - \iffirstonpage}% - {\bibnamedash\nameadelim}% + {\ifboolexpr{% + test {\iffieldequals{fullhash}{\bbx@lasthash}}% + and + not test {\iffirstonpage}% + and + togl {cms@namedash}% + }% + {\iffieldundef{nameaddon}% + {\printtext{\bibnamedash}\nameadelim}% + {\printtext{\bibnamedash}\setunit{\addcomma}% + \printfield{nameaddon}\nameadelim}}% {\iftoggle{cms@authorparens}% {\bibopenparen\printnames[sortname]{namea}% + \setunit{\addspace}\printfield{nameaddon}% \bibcloseparen\nameadelim}% - {\printnames[sortname]{namea}\nameadelim}% + {\printnames[sortname]{namea}% + \setunit{\addspace}% + \printfield{nameaddon}\nameadelim}% \savefield{fullhash}{\bbx@lasthash}}% \usebibmacro{parteditstrg}}} @@ -387,39 +501,72 @@ bibliography style] \newbibmacro*{moretranslator}{% \ifthenelse{\ifnameundef{translator}\OR\NOT\ifusetranslator}% {\usebibmacro{compiler}}% - {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND\NOT% - \iffirstonpage}% - {\bibnamedash\addcomma\addspace}% + {\ifboolexpr{% + test {\iffieldequals{fullhash}{\bbx@lasthash}}% + and + not test {\iffirstonpage}% + and + togl {cms@namedash}% + }% + {\iffieldundef{nameaddon}% + {\printtext{\bibnamedash}\newcunit}% + {\printtext{\bibnamedash}\setunit{\addspace}% + \printfield{nameaddon}\newcunit}}% {\iftoggle{cms@authorparens}% {\bibopenparen\printnames[sortname]{translator}% - \bibcloseparen\addcomma\addspace}% - {\printnames[sortname]{translator}\addcomma\addspace}% + \setunit{\addspace}\printfield{nameaddon}% + \bibcloseparen\newcunit}% + {\printnames[sortname]{translator}% + \setunit{\addspace}% + \printfield{nameaddon}\newcunit}% \savefield{fullhash}{\bbx@lasthash}}% \usebibmacro{transstrg}}} \newbibmacro*{parttranslator}{% \ifthenelse{\ifnameundef{nameb}\OR\NOT\ifusenameb}% {\usebibmacro{compiler}}% - {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND\NOT% - \iffirstonpage}% - {\bibnamedash\addcomma\addspace}% + {\ifboolexpr{% + test {\iffieldequals{fullhash}{\bbx@lasthash}}% + and + not test {\iffirstonpage}% + and + togl {cms@namedash}% + }% + {\iffieldundef{nameaddon}% + {\printtext{\bibnamedash}\newcunit}% + {\printtext{\bibnamedash}\setunit{\addspace}% + \printfield{nameaddon}\newcunit}}% {\iftoggle{cms@authorparens}% {\bibopenparen\printnames[sortname]{nameb}% - \bibcloseparen\addcomma\addspace}% - {\printnames[sortname]{nameb}\addcomma\addspace}% + \setunit{\addspace}\printfield{nameaddon}% + \bibcloseparen\newcunit}% + {\printnames[sortname]{nameb}% + \setunit{\addspace}% + \printfield{nameaddon}\newcunit}% \savefield{fullhash}{\bbx@lasthash}}% \usebibmacro{parttransstrg}}} \newbibmacro*{compiler}{% \ifthenelse{\ifnameundef{namec}\OR\NOT\ifusenamec}% {\let\bbx@lasthash\undefined}% - {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND\NOT% - \iffirstonpage}% - {\bibnamedash\addcomma\addspace}% + {\ifboolexpr{% + test {\iffieldequals{fullhash}{\bbx@lasthash}}% + and + not test {\iffirstonpage}% + and + togl {cms@namedash}% + }% + {\iffieldundef{nameaddon}% + {\printtext{\bibnamedash}\newcunit}% + {\printtext{\bibnamedash}\setunit{\addcomma}% + \printfield{nameaddon}\newcunit}}% {\iftoggle{cms@authorparens}% {\bibopenparen\printnames[sortname]{namec}% - \bibcloseparen\addcomma\addspace}% - {\printnames[sortname]{namec}\addcomma\addspace}% + \setunit{\addspace}\printfield{nameaddon}% + \bibcloseparen\newcunit}% + {\printnames[sortname]{namec}% + \setunit{\addspace}% + \printfield{nameaddon}\newcunit}% \savefield{fullhash}{\bbx@lasthash}}% \usebibmacro{compilestrg}}} @@ -439,34 +586,20 @@ bibliography style] \usebibmacro{shorthand:label}}% {\mkbibemph{\bibstring{see}}% \addspace% - \usebibmacro{author/editor}}% - \finentry}% - {\iftoggle{cms@fullshhand}% - {\usedriver{\frenchspacing}% - {\thefield{entrytype}}% - \finentry}% - {\ifnameundef{labelname}% - {\ifthenelse{\iffieldequalstr{entrysubtype}{magazine}\AND\NOT% - \ifentrytype{periodical}}% - {\printtext[bibhyperref]{\printfield[journaltitle]{journaltitle}% - \newcunit}}% - {\ifentrytype{manual}% - {\printtext[bibhyperref]{\printlist{organization}\newcunit}}% - {}}}% - {\usebibmacro{author/editor}% - \setunit{\addcomma\space}}% - \printfield[lostitle]{title}% - \finentry}}} - -\DeclareBibliographyDriver{shorthands}{% biblatex < 2.9 - \iftoggle{cms@los}% - {\ifnameundef{labelname}% - {\mkbibemph{\bibstring{see}}% - \addspace% - \usebibmacro{shorthand:label}}% - {\mkbibemph{\bibstring{see}}% - \addspace% - \usebibmacro{author/editor}}% + \ifboolexpr{% + test {\iffieldequalstr{labelnamesource}{shortauthor}}% + and + ( + test {\ifentrytype{manual}}% + or + test {\ifentrytype{standard}}% + ) + }% + {\printnames{\thefield{labelnamesource}}}% + {\ifentrytype{customc}% + {\clearfield{nameaddon}}% + {}% + \usebibmacro{author/editor}}}% \finentry}% {\iftoggle{cms@fullshhand}% {\usedriver{\frenchspacing}% @@ -480,8 +613,19 @@ bibliography style] {\ifentrytype{manual}% {\printtext[bibhyperref]{\printlist{organization}\newcunit}}% {}}}% - {\usebibmacro{author/editor}% - \setunit{\addcomma\space}}% + {\ifboolexpr{% + test {\iffieldequalstr{labelnamesource}{shortauthor}}% + and + ( + test {\ifentrytype{manual}}% + or + test {\ifentrytype{standard}}% + ) + }% + {\printnames{\thefield{labelnamesource}}\newunit}% + {\ifentrytype{customc}% + {\usebibmacro{justauthor}\setunit{\addspace}}% + {\usebibmacro{author/editor}\newunit}}}% \printfield[lostitle]{title}% \finentry}}} @@ -501,6 +645,9 @@ bibliography style] \printlist[periodplace]{location}}% \finentry}% +\DeclareBibliographyDriver{shortseries}{% + \printfield{series}\finentry} + \DeclareStyleSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -509,9 +656,11 @@ bibliography style] \step[fieldset=shortjournal, origfieldval] } \map{ - \step[fieldsource=pubstate, match={forthcoming}, final] + \step[fieldsource=pubstate, + match=\regexp{forthcoming|inpreparation|submitted|inpress}, final] \step[fieldset=year, origfieldval, final] - \step[fieldsource=year, match=\regexp{(forthcoming)}, + \step[fieldsource=year, + match=\regexp{(forthcoming|inpreparation|submitted|inpress)}, replace=\regexp{\\bibstring\{$1\}}]%$ \step[fieldset=pubstate, null] } @@ -582,7 +731,78 @@ bibliography style] match=\regexp{\\(mkbib|en)quote\{.+((\?|\!)\})$},%$ final] \step[fieldset=maintitle, fieldvalue=\csgdef{@cmsst}{\@ne}, append] - } + } + \map{ + \pertype{standard} + \step[notfield=author, final] + \step[fieldsource=organization, final] + \step[fieldsource=organization, match=\regexp{(.*)}] + \step[fieldset=shortauthor, fieldvalue=\regexp{{$1}}]%$ + } + \map{ + \pertype{manual} + \step[notfield=author, final] + \step[notfield=editor, final] + \step[fieldsource=organization, final] + \step[fieldsource=organization, match=\regexp{(.*)}] + \step[fieldset=shortauthor, fieldvalue=\regexp{{$1}}]%$ + } + \map[overwrite]{ + \pertype{review} + \pertype{online} + \pertype{suppperiodical} + \step[fieldsource=relatedtype, match=\regexp{commenton}, final] + \step[fieldsource=options, final] + \step[fieldsource=options, notmatch=\regexp{skipbib|cmsdate}, final] + \step[fieldset=options, fieldvalue={,skipbib,cmsdate=full}, + append] + \step[notfield=verbc, final] + \step[fieldsource=entrykey] + \step[fieldset=verbc, origfieldval] + } + \map{ + \pertype{review} + \pertype{online} + \pertype{suppperiodical} + \step[fieldsource=relatedtype, match=\regexp{commenton}, final] + \step[notfield=options, final] + \step[fieldset=options, fieldvalue={skipbib,cmsdate=full}] + \step[fieldsource=entrykey] + \step[fieldset=verbc, origfieldval] + } + \map{ + \pertype{review} + \pertype{online} + \pertype{suppperiodical} + \step[fieldsource=relatedtype, match=\regexp{commenton}, final] + \step[fieldsource=related, match=\regexp{(.*)}] + \step[entrynew=$1-customc, entrynewtype=customc]%$ + \step[fieldset=options, fieldvalue={skipbib,authortitle}, + entrytarget=$1-customc]%$ + \step[fieldset=pubstate, fieldvalue=cms-generated, + entrytarget=$1-customc]%$ + \step[fieldsource=relatedtype] + \step[fieldsource=relatedstring] + \step[fieldset=title, origfieldval, entrytarget=$1-customc]%$ + } + \map{ + \pertype{video} + \step[fieldsource=entrysubtype, match=tvepisode, final] + \step[fieldsource=title, final] + \step[fieldsource=booktitle, final] + \step[fieldset=sorttitle, origfieldval] + } + \map[overwrite]{% Backward compatibility kludges + \step[fieldsource=year, + match=\regexp{^\[(.+)\](.*)}, + replace=\regexp{\[$1\]\\midsentence$2}] + \step[fieldsource=year, + match=\regexp{^\\bibopenbracket\s*(.+)\\bibclosebracket(.*)}, + replace=\regexp{\[$1\]\\midsentence$2}] + \step[fieldsource=year, + match=\regexp{^\\mkbibbrackets\{(.+)\}(.*)}, + replace=\regexp{\[$1\]\\midsentence$2}] + } } }% @@ -590,8 +810,6 @@ bibliography style] \iffieldequalstr{entrysubtype}{magazine}% {\usebibmacro{bibindex}% \usebibmacro{mag+news+author}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \usebibmacro{cmsbibsortdate}% \newunit\newblock @@ -607,10 +825,12 @@ bibliography style] \usebibmacro{issuetitle}% \setunit*{\addcomma\addspace}% \usebibmacro{byeditor+others}% - \usebibmacro{editorpunct}%\newunit\newblock + \newunit\newblock% 17th ed. clarifies punctuation \printfield{note}% \setunit*{\addcomma\addspace}\newblock% \usebibmacro{mag+news+date}% + \newunit\newblock + \printfield{type}% \newcunit\newblock \usebibmacro{chap+pag}% \newunit\newblock @@ -639,8 +859,6 @@ bibliography style] \usebibmacro{finentry}} {\usebibmacro{bibindex}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef{\bbx@lasthash}{\usebibmacro{mag+news+title}\newunit}{}% \usebibmacro{cmsbibsortdate}% @@ -657,10 +875,12 @@ bibliography style] \usebibmacro{issuetitle}% \setunit*{\addcomma\addspace}% \usebibmacro{byeditor+others}% - \usebibmacro{editorpunct}%\newunit\newblock + \newunit\newblock% 17th ed. \printfield{note}% \setunit*{\addcomma\addspace}\newblock% (changed for 0.7)?? - \usebibmacro{journal+issue+year+pages}% + \iftoggle{cms@switchdates}% + {\usebibmacro{journal+issue+year+pages}{orig}}% + {\usebibmacro{journal+issue+year+pages}{}}% \newunit\newblock \usebibmacro{pubstate}% \newunit\newblock @@ -690,26 +910,23 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% - \usebibmacro{cmsbibsortdate}% + \usebibmacro{cmscitesortdate}% 17th ed. ?? \newunit\newblock \ifundef\bbx@lasthash{}{\usebibmacro{italtitle+stitle}}% - \newcunit\newblock - \usebibmacro{date}% + \newunit\newblock + \usebibmacro{artwork+dates}% \newunit% 16th ed. \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \usebibmacro{bibreprint}% - \printfield{howpublished}% \newunit\newblock \printfield{type}% \newcunit\newblock - \printfield{version}% + \printfield[type]{version}% \newcunit\newblock \printfield{note}% \newunit\newblock @@ -717,6 +934,10 @@ bibliography style] \setunit*{\addcomma\addspace}\newblock \printlist{location}% \newunit\newblock + \printfield{howpublished}% + \setunit*{\addspace}% + \usebibmacro{music+eventdate}% + \newunit\newblock \usebibmacro{pubstate}% \newunit\newblock \printfield{addendum}% @@ -737,8 +958,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifboolexpr{% test {\ifundef{\bbx@lasthash}}% @@ -758,7 +977,11 @@ bibliography style] \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{part+editor+translator}% - \newcunit%\setunit{\addperiod\addspace}% + \newunit\newblock + \usebibmacro{music+eventdate}% 17th ed. + \iffieldundef{eventyear}% + {\newcunit}% + {\newunit}% \usebibmacro{chapinscore}% \usebibmacro{btitle+bstitle}% \iffieldundef{booktitle}% @@ -767,7 +990,7 @@ bibliography style] \iffieldundef{edition}% {}% {\usebibmacro{edition}}% - \newunit% unit, not cunit? + \usebibmacro{editorpunct}%\newunit% unit, not cunit? \usebibmacro{bybookauthor}% \usebibmacro{byeditor+others}% \newunit% ??? Editorpunct maybe not right here? @@ -834,8 +1057,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% \usebibmacro{cmsbibsortdate}% @@ -845,7 +1066,9 @@ bibliography style] \iffieldundef{maintitle}% {\iffieldundef{edition}% {}% - {\usebibmacro{edition}}}% + {\usebibmacro{edition}}% + \setunit*{\addcomma\addspace}% + \usebibmacro{version}}% {}% \newunit\newblock% 16th ed. \usebibmacro{byauthor}% @@ -867,6 +1090,10 @@ bibliography style] \iffieldundef{edition}% {}% {\usebibmacro{edition}}% + \newcunit + \iffieldundef{version}% + {}% + {\printfield{version}} \usebibmacro{editorpunct}% \usebibmacro{byeditor+others}% \usebibmacro{editorpunct}% @@ -888,6 +1115,8 @@ bibliography style] \newcunit\newblock \printlist[][-\value{listtotal}]{lista}% \newunit\newblock + \printfield{type}% + \newunit\newblock \usebibmacro{pubstate}% \newunit\newblock \printfield{addendum}% @@ -948,8 +1177,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% \usebibmacro{cmsbibsortdate}% @@ -1059,8 +1286,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% \usebibmacro{cmsbibsortdate}% @@ -1096,8 +1321,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% \usebibmacro{cmsbibsortdate}% @@ -1193,37 +1416,104 @@ bibliography style] \DeclareBibliographyDriver{customc}{% \usebibmacro{bibindex}% + \usebibmacro{shorthand:author}% + \usebibmacro{justauthor}% + \iffieldundef{nameaddon}% + {\newunit}% + {\setunit{\addspace}}% + \usebibmacro{italtitle+stitle}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{dataset}{% + \usebibmacro{bibindex}% + \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% \newunit\newblock - \printfield{nameaddon}% - \setunit*{\addspace}% - \usebibmacro{italtitle+stitle}% + \usebibmacro{cmsbibsortdate}% + \newunit\newblock% + \printtext[parens]{% + \printfield{title}% + \setunit{\subtitlepunct}% + \printfield[noformat]{subtitle}% + \setunit{\ctitleaddonpunct}% + \printfield{titleaddon}% + \setunit{\addspace}% + \usebibmacro{language+transtitle}% + \newunit% 16th ed. + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \setunit{\addspace}\newblock% + \ifthenelse{\iffieldundef{howpublished}\AND% + \iffieldundef{number}\AND\iffieldundef{type}}% + {}% + {\printtext[parens]{% + \printfield{howpublished}% + \newcunit + \printfield{type}% + \setunit{\addspace}% + \printfield{number}}}% + \newunit\newblock + \printfield{version}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{institution+organization}% + \setunit*{\addcomma\addspace}\newblock + \printlist{location}% + \setunit{\addsemicolon\addspace}% + \printurldate% + \ifboolexpr{% + togl {cms@urltime}% + and + not test {\iffieldundef{urlhour}}% + }% + {\newcunit\printurltime}% + {}}% + \newunit\newblock + \usebibmacro{bibreprint}% + \usebibmacro{date}% + \clearfield{urlyear}\clearfield{urlmonth}% + \newunit\newblock + \printfield{addendum}% + \setunit*{\addcomma\addspace}\newblock% + \usebibmacro{bib+doi+url}% + \newunit\newblock + \usebibmacro{pageref}% + \newunit\newblock + \ifboolexpr{% + togl {cms@related}% + and + not test {\iffieldundef{related}}% + }% + {\usebibmacro{related:init}% + \usebibmacro{related}% + \newunit}% + {}% + \usebibmacro{originally+published+as}% \usebibmacro{finentry}} \DeclareBibliographyDriver{image}{% \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% - \usebibmacro{cmsbibsortdate}% + \usebibmacro{cmscitesortdate}% \newunit\newblock \ifundef\bbx@lasthash{}{\usebibmacro{italtitle+stitle}}% - \setunit*{\addcomma\addspace}% 16th ed. added * (?) - \usebibmacro{date}% + \newunit\newblock% 16th ed. added * (?) + \usebibmacro{artwork+dates}% \newunit% 16th ed. \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \usebibmacro{bibreprint}% - \printfield{howpublished}% \newunit\newblock \printfield{type}% \newcunit\newblock - \printfield{version}% + \printfield[type]{version}% \newcunit\newblock \printfield{note}% \newunit\newblock @@ -1231,6 +1521,10 @@ bibliography style] \setunit*{\addcomma\addspace}\newblock \printlist{location}% \newunit\newblock + \printfield{howpublished}% + \setunit*{\addspace}% + \usebibmacro{music+eventdate}% + \newunit\newblock \usebibmacro{pubstate}% \newunit\newblock \printfield{addendum}% @@ -1251,8 +1545,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% \usebibmacro{cmsbibsortdate}% @@ -1354,8 +1646,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% \usebibmacro{cmsbibsortdate}% @@ -1457,8 +1747,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% \usebibmacro{cmsbibsortdate}% @@ -1798,8 +2086,6 @@ bibliography style] \DeclareBibliographyDriver{legal}{% \usebibmacro{bibindex}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newcunit\newblock \usebibmacro{clegis+news+title}% \setunit{\addspace}% @@ -1865,8 +2151,6 @@ bibliography style] \iffieldequalstr{entrysubtype}{uk}% FIXME? {\usebibmacro{bibindex}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newcunit\newblock \usebibmacro{clegis+news+title}% \setunit{\addspace}% @@ -1930,8 +2214,6 @@ bibliography style] {\iffieldequalstr{entrysubtype}{hansard}% FIXME? {\usebibmacro{bibindex}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newcunit\newblock \usebibmacro{clegis+news+title}% \setunit{\addspace}% @@ -1988,8 +2270,6 @@ bibliography style] \usebibmacro{finentry}} {\usebibmacro{bibindex}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newcunit\newblock \usebibmacro{clegis+news+title}% \setunit{\addspace}% @@ -2063,8 +2343,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \usebibmacro{cmsbibsortdate}% \newunit\newblock @@ -2168,8 +2446,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author+org}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% \usebibmacro{cmsbibsortdate}% @@ -2213,8 +2489,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \iffieldundef{entrysubtype}% {\ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}}% @@ -2231,7 +2505,9 @@ bibliography style] \setunit{\addspace}% \usebibmacro{language+transtitle}% \newcunit\newblock% - \usebibmacro{unpubl+letter+date}}% + \usebibmacro{unpubl+letter+date}% + \newcunit + \printlist{origlocation}}% 17th ed. \newunit% 16th ed. \usebibmacro{byauthor}% \newunit\newblock @@ -2246,7 +2522,10 @@ bibliography style] \newunit\newblock \printfield{note}% \newunit\newblock - \usebibmacro{institution+organization}% + \iffieldundef{entrysubtype}% + {\printfield{venue}\setunit*{\addcomma\addspace}}% + {}% + \usebibmacro{misc+institution+organization}% \setunit*{\addcomma\addspace}\newblock \printlist{location}% \iffieldundef{entrysubtype}% @@ -2274,8 +2553,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifboolexpr{% test {\ifundef{\bbx@lasthash}}% @@ -2296,9 +2573,16 @@ bibliography style] \newunit\newblock \usebibmacro{part+editor+translator}% \newunit\newblock + \ifthenelse{\iffieldundef{booktitle}\AND\iffieldundef{entrysubtype}}% + {\usebibmacro{byeditor+others}\newunit\newblock}{}% \usebibmacro{music+eventdate}%\printeventdate \newunit\newblock - \usebibmacro{chapinscore}% + \printfield{note}% + \newunit\newblock + \printfield{howpublished}% + \newunit\newblock + \usebibmacro{chap+as+track}%inscore% 17th ed. + \usebibmacro{music+bookauthor}% Ditto. \usebibmacro{btitle+bstitle}% \iffieldundef{booktitle}% {\newunit}% Fix customc? @@ -2306,9 +2590,9 @@ bibliography style] \iffieldundef{edition}% {}% {\usebibmacro{edition}}% - \newunit% unit, not cunit? - \usebibmacro{bybookauthor}% - \usebibmacro{byeditor+others}% + \usebibmacro{editorpunct}%\newunit% unit, not cunit? + \ifthenelse{\iffieldundef{booktitle}\AND\iffieldundef{entrysubtype}}% + {}{\usebibmacro{byeditor+others}}% \newunit% ??? Editorpunct maybe not right here? \iffieldundef{maintitle}% {}% @@ -2338,14 +2622,14 @@ bibliography style] \newunit\newblock \printfield{version}% \newunit\newblock - \printfield{note}% - \newunit\newblock - \usebibmacro{music+origdate}%\printtext[eventdate]{\printeventdate}% + \usebibmacro{music+origdate}% Changed for 17th ed. \newunit\newblock \printlist{publisher}% \setunit*{\addcomma\addspace}\newblock - \printfield{series}% - \setunit{\addspace}% + \usebibmacro{series+or+shortser}% + \ifboolexpr{test {\iflistundef{publisher}} and test {\iffieldundef{series}}}% + {\newunit}% + {\setunit{\addspace}}% \printfield{number}% \newcunit\newblock \usebibmacro{date}% @@ -2388,26 +2672,79 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock - \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% + \ifundef\bbx@lasthash% + {\ifboolexpr{% + togl {cms@related}% + and + test {\iffieldequalstr{relatedtype}{commenton}}% + }% + {\ifthenelse{\iffieldundef{title}\AND\iffieldundef{titleaddon}}% + {\usebibmacro{related:init}% + \usebibmacro{related}}% + {\usebibmacro{italtitle+stitle}}}% + {\usebibmacro{italtitle+stitle}}}% + {}% \usebibmacro{cmsbibsortdate}% \newunit\newblock - \ifundef\bbx@lasthash{}{\usebibmacro{italtitle+stitle}}% + \ifundef\bbx@lasthash% + {\ifthenelse{\iffieldundef{title}\AND\iffieldundef{titleaddon}}% + {}% + {\ifboolexpr{% + togl {cms@related}% + and + test {\iffieldequalstr{relatedtype}{commenton}}% + }% + {\usebibmacro{related:init}% + \usebibmacro{related}}% + {}}}% + {\ifboolexpr{% + togl {cms@related}% + and + test {\iffieldequalstr{relatedtype}{commenton}}% + }% + {\ifthenelse{\iffieldundef{title}\AND\iffieldundef{titleaddon}}% + {}% + {\usebibmacro{italtitle+stitle}% + \newcunit\newblock + \usebibmacro{date}% + \usebibmacro{time+stamp}% + \iftoggle{cms@switchdates}% + {\clearfield{orighour}\clearfield{origyear}\clearfield{origmonth}% + \clearfield{origday}\clearfield{origseason}}% + {\clearfield{hour}\clearfield{year}\clearfield{month}% + \clearfield{day}\clearfield{season}}% + \newunit\newblock}% + \usebibmacro{related:init}% + \usebibmacro{related}}% + {\usebibmacro{italtitle+stitle}}}% \newunit% 16th ed. \usebibmacro{byauthor}% \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock \usebibmacro{bibreprint}% \printlist{organization}% 16th ed. \newunit\newblock \printfield{note}% - \newunit\newblock + \newcunit\newblock% 17th ed. comma \usebibmacro{date}% + \usebibmacro{time+stamp}% 17th ed. + \newunit\newblock + \printfield{type}% + \newunit\newblock + \printfield{addendum}% \newunit\newblock \ifthenelse{\iffieldundef{urlyear}\AND\iffieldundef{urlmonth}}% {}% - {\printurldate}% Date fix + {\printurldate% + \ifboolexpr{% + togl {cms@urltime}% + and + not test {\iffieldundef{urlhour}}% + }% + {\newcunit\printurltime}% + {}}% Date fix \newunit\newblock \iftoggle{cms@doionly}% {\iffieldundef{doi}% @@ -2422,11 +2759,13 @@ bibliography style] \newunit\newblock \usebibmacro{pubstate}% \newunit\newblock - \printfield{addendum}% - \newunit\newblock \usebibmacro{pageref}% \newunit\newblock - \iftoggle{cms@related}% + \ifboolexpr{% + togl {cms@related}% + and + not test {\iffieldequalstr{relatedtype}{commenton}}% + }% {\usebibmacro{related:init}% \usebibmacro{related}% \newunit}% @@ -2438,10 +2777,10 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{author+holder}% + holder? \newunit\newblock - \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% + \ifundef\bbx@lasthash{\usebibmacro{patenttitle+stitle}}{}% \usebibmacro{cmscitesortdate}% \newunit\newblock - \ifundef\bbx@lasthash{}{\usebibmacro{italtitle+stitle}}% + \ifundef\bbx@lasthash{}{\usebibmacro{patenttitle+stitle}}% \setunit{\addperiod\addspace}% \printfield{note}% \setunit{\addperiod\addspace}% @@ -2490,25 +2829,82 @@ bibliography style] {}% \usebibmacro{finentry}} +\DeclareBibliographyDriver{performance}{% + \usebibmacro{bibindex}% + \usebibmacro{shorthand:author}% + \usebibmacro{author/editor}% + \newunit\newblock + \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% + \usebibmacro{cmsbibsortdate}% + \newunit\newblock + \ifundef\bbx@lasthash{}% + {\usebibmacro{italtitle+stitle}}% + \newunit% 16th ed. + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{howpublished}% + \newunit\newblock + \printfield{type}% + \newunit\newblock + \printfield{version}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \printfield{venue}% + \setunit*{\addcomma\addspace}% + \usebibmacro{institution+organization}% + \setunit*{\addcomma\addspace}\newblock + \printlist{location}% + \newcunit\newblock + \usebibmacro{date}% + \newunit\newblock + \printfield{addendum}% + \setunit*{\addcomma\addspace}\newblock% + \usebibmacro{bib+doi+url}% + \newunit\newblock + \usebibmacro{pageref}% + \newunit\newblock + \ifboolexpr{% + togl {cms@related}% + and + not test {\iffieldundef{related}}% + }% + {\usebibmacro{related:init}% + \usebibmacro{related}% + \newunit}% + {}% + \usebibmacro{originally+published+as}% + \usebibmacro{finentry}} + \DeclareBibliographyDriver{periodical}{% \iffieldequalstr{entrysubtype}{magazine}% {\usebibmacro{bibindex}% \usebibmacro{editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifboolexpr{% test {\ifundef{\bbx@lasthash}}% and not togl {cms@origpublished}% }% - {\printtext[title]{% magazine subtype - \printfield[tnoformat]{title}% - \setunit{\subtitlepunct}% - \printfield[stnoformat]{subtitle}}% + {\ifboolexpr{% + togl {cms@bibjtabb}% + and + test {\ifbibliography}% + and + not test {\iffieldundef{shorttitle}}% + }% + {\clearlist{location}\printtext[shorttitle]{% + \printfield[tnoformat]{shorttitle}}}% + {\printtext[title]{% + \printfield[tnoformat]{title}% + \setunit{\subtitlepunct}% + \printfield[stnoformat]{subtitle}}}% \setunit*{\addspace}% \printlist[periodplace]{location}% \clearlist{location}% + \clearfield{shorttitle}% \clearfield{title}% \clearfield{subtitle}% \newunit\newblock}{}% @@ -2548,21 +2944,29 @@ bibliography style] \usebibmacro{finentry}} {\usebibmacro{bibindex}% \usebibmacro{editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifboolexpr{% test {\ifundef{\bbx@lasthash}}% and not togl {cms@origpublished}% }% - {\printtext[title]{% magazine subtype - \printfield[tnoformat]{title}% - \setunit{\subtitlepunct}% - \printfield[stnoformat]{subtitle}}% + {\ifboolexpr{% + togl {cms@bibjtabb}% + and + test {\ifbibliography}% + and + not test {\iffieldundef{shorttitle}}% + }% + {\clearlist{location}\printtext[shorttitle]{% + \printfield[tnoformat]{shorttitle}}}% + {\printtext[title]{% + \printfield[tnoformat]{title}% + \setunit{\subtitlepunct}% + \printfield[stnoformat]{subtitle}}}% \setunit*{\addspace}% \printlist[periodplace]{location}% \clearlist{location}% + \clearfield{shorttitle}% \clearfield{title}% \clearfield{subtitle}% \newunit\newblock}{}% @@ -2579,7 +2983,9 @@ bibliography style] \usebibmacro{bibreprint}% \printfield{note}% \setunit*{\addcomma\addspace}\newblock% (changed for 0.7)?? - \usebibmacro{periodical+issue+year+pages}% + \iftoggle{cms@switchdates}% + {\usebibmacro{periodical+issue+year+pages}{orig}}% + {\usebibmacro{periodical+issue+year+pages}{}}% \newunit\newblock \usebibmacro{pubstate}% \newunit\newblock @@ -2605,8 +3011,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% \usebibmacro{cmsbibsortdate}% @@ -2755,8 +3159,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% \usebibmacro{cmsbibsortdate}% @@ -2767,8 +3169,10 @@ bibliography style] \newunit\newblock \printfield{type}% \newcunit - \printfield{series}% - \setunit{\addnbspace}% + \usebibmacro{series+or+shortser}% + \ifthenelse{\iffieldundef{type}\AND\iffieldundef{series}}% + {\newunit}% + {\setunit{\addnbspace}}% \printfield{number}% \newunit \printfield{note}% @@ -2801,14 +3205,16 @@ bibliography style] \iffieldequalstr{entrysubtype}{magazine}% {\usebibmacro{mag+news+author}}% {\usebibmacro{author/editor}}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef{\bbx@lasthash}% {\ifboolexpr{% togl {cms@related}% and + ( test {\iffieldequalstr{relatedtype}{reviewof}}% + or + test {\iffieldequalstr{relatedtype}{commenton}}% + ) }% {\usebibmacro{related:init}% \usebibmacro{related}}% @@ -2824,7 +3230,11 @@ bibliography style] {\ifboolexpr{% togl {cms@related}% and + ( test {\iffieldequalstr{relatedtype}{reviewof}}% + or + test {\iffieldequalstr{relatedtype}{commenton}}% + ) }% {\usebibmacro{related:init}% \usebibmacro{related}}% @@ -2835,6 +3245,8 @@ bibliography style] \printfield{titleaddon}% \newcunit\newblock \usebibmacro{music+eventdate}% 16th ed. + \newcunit\newblock + \printeventtime% \setunit{\addspace}% \usebibmacro{language+transtitle}% \newunit\newblock% @@ -2846,14 +3258,18 @@ bibliography style] \usebibmacro{issuetitle}% \setunit*{\addcomma\addspace}% \usebibmacro{byeditor+others}% - \usebibmacro{editorpunct}%\newunit\newblock + \newunit\newblock% 17th ed. \printfield{note}% \setunit*{\addcomma\addspace}\newblock% \iffieldequalstr{entrysubtype}{magazine}% {\usebibmacro{mag+news+date}% - \newcunit\newblock - \usebibmacro{chap+pag}}% - {\usebibmacro{journal+issue+year+pages}}% + \newunit\newblock + \printfield{type}% + \newcunit\newblock + \usebibmacro{chap+pag}}% + {\iftoggle{cms@switchdates}% + {\usebibmacro{journal+issue+year+pages}{orig}}% + {\usebibmacro{journal+issue+year+pages}{}}}% \newunit\newblock \usebibmacro{pubstate}% \newunit\newblock @@ -2871,6 +3287,96 @@ bibliography style] togl {cms@related}% and not test {\iffieldequalstr{relatedtype}{reviewof}}% + and + not test {\iffieldequalstr{relatedtype}{commenton}}% + }% + {\usebibmacro{related:init}% + \usebibmacro{related}% + \newunit}% + {}% + \usebibmacro{originally+published+as}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{standard}{% + \usebibmacro{bibindex}% + \usebibmacro{shorthand:author}% + \ifnameundef{author}% + {\iflistundef{organization}% + {\let\bbx@lasthash\undefined}% + {\ifboolexpr{% + test {\iflistequals{organization}{\bbx@lasthash}}% + and + not test {\iffirstonpage}% + and + togl {cms@namedash}% + }% + {\iffieldundef{nameaddon}% + {\printtext{\bibnamedash}}% + {\printtext{\bibnamedash}\setunit{\addspace}% + \printfield{nameaddon}}}% + {\iftoggle{cms@authorparens}% + {\bibopenparen\printlist{organization}\bibcloseparen}% + {\printlist{organization}}% + \savelist{organization}{\bbx@lasthash}}}}% + {\usebibmacro{justauthor}}% + \newunit\newblock + \ifundef{\bbx@lasthash}{\usebibmacro{italtitle+stitle}}{}% + \ifthenelse{\iffieldundef{userd}\AND\iffieldundef{howpublished}}% + {\usebibmacro{cmsbibsortdate}}% + {\usebibmacro{cmscitesortdate}}% Like Patent entries (?) + \newunit\newblock + \ifundef{\bbx@lasthash}{}% + {\usebibmacro{italtitle+stitle}}% + \newunit\newblock + \usebibmacro{edition}% + \newunit% 16th ed. + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \usebibmacro{series+or+shortser}% + \setunit*{\addspace}% + \printfield{number}% + \newunit\newblock + \printfield{type}% + \newunit + \printfield{note}% + \newunit\newblock% + \usebibmacro{origpubl+loc+year}%{cmsorigdate}% 16th ed. + \newunit\newblock% + \usebibmacro{bibreprint}% + \printlist{location}% + \iflistundef{publisher}% + {\iflistundef{organization}% + {\setunit*{\addcomma\addspace}}% + {\setunit*{\addcolon\addspace}% + \printlist{organization}% + \setunit*{\addcomma\addspace}}}% + {\setunit*{\addcolon\addspace}% + \printlist{publisher}% + \setunit*{\addcomma\addspace}}% + \usebibmacro{date} + \setunit{\addsemicolon\addspace}% + \printfield{howpublished}% + \setunit*{\addspace}% + \usebibmacro{music+eventdate}% + \newunit\newblock + \usebibmacro{pubstate}% + \newunit\newblock + \printfield{addendum}% + \setunit*{\addcomma\addspace}\newblock% + \iftoggle{cms@isbn}% + {\printfield{isbn}}% + {}% + \setunit*{\addcomma\addspace}\newblock% + \usebibmacro{bib+doi+url}% + \newunit\newblock + \usebibmacro{pageref}% + \newunit\newblock + \ifboolexpr{% + togl {cms@related}% + and + not test {\iffieldundef{related}}% }% {\usebibmacro{related:init}% \usebibmacro{related}% @@ -2883,8 +3389,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{% \usebibmacro{inforaft}% @@ -2958,8 +3462,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% \usebibmacro{cmsbibsortdate}% @@ -2993,8 +3495,6 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{\usebibmacro{italtitle+stitle}}{}% \usebibmacro{cmsbibsortdate}% @@ -3042,35 +3542,40 @@ bibliography style] \usebibmacro{bibindex}% \usebibmacro{shorthand:author}% \usebibmacro{author/editor}% - \setunit{\addspace}% - \printfield{nameaddon}% \newunit\newblock \ifundef\bbx@lasthash{% - \usebibmacro{video+title}% Simplifies trad style - \iffieldundef{booktitle}% Comma after italics, period after quotes - {\setunit{\ctitleaddonpunct}}% - {\setunit{\ptitleaddonpunct}}%\setunit{\addspace}\newblock% - \printfield{titleaddon}%\usebibmacro{title+stitle}% - \setunit{\addspace}\newblock%\bibsentence - \usebibmacro{language+transtitle}% - \newunit\newblock}{}% + \usebibmacro{video+tv+title}% + \newunit\newblock}{}% \usebibmacro{cmsbibsortdate}% \newunit\newblock \ifundef\bbx@lasthash{}{% - \usebibmacro{video+title}% Simplifies trad style - \iffieldundef{booktitle}% Comma after italics, period after quotes - {\setunit{\ctitleaddonpunct}}% - {\setunit{\ptitleaddonpunct}}%\setunit{\addspace}\newblock% - \printfield{titleaddon}%\usebibmacro{title+stitle}% - \setunit{\addspace}\newblock%\bibsentence - \usebibmacro{language+transtitle}}% - \setunit{\addperiod\addspace}% 16th ed. - \usebibmacro{byauthor}% - \setunit{\addperiod\addspace}% - \usebibmacro{part+editor+translator}% - \setunit{\addperiod\addspace}% - \usebibmacro{chapinscore}% - \usebibmacro{btitle+bstitle}% + \usebibmacro{video+tv+title}}% + \ifboolexpr{% + test {\iffieldequalstr{entrysubtype}{tvepisode}}% + and + ( + not test {\iffieldundef{title}}% + and + not test {\iffieldundef{booktitle}}% + ) + }% + {\usebibmacro{video+title}% + \iffieldundef{booktitle}% + {\setunit{\ctitleaddonpunct}}% + {\setunit{\ptitleaddonpunct}}% + \printfield{titleaddon}% + \setunit{\addspace}\newblock% + \usebibmacro{language+transtitle}% + \usebibmacro{byauthor}% + \setunit{\addperiod\addspace}% + \usebibmacro{part+editor+translator}} + {\setunit{\addperiod\addspace}% 16th ed. + \usebibmacro{byauthor}% + \setunit{\addperiod\addspace}% + \usebibmacro{part+editor+translator}% + \setunit{\addperiod\addspace}% + \usebibmacro{chapinscore}% + \usebibmacro{btitle+bstitle}}% \iffieldundef{booktitle}% {\setunit{\addperiod\addspace}}% Fix customc? {\setunit{\addcomma\addspace}}% @@ -3109,12 +3614,15 @@ bibliography style] \newunit\newblock \usebibmacro{ser+num}% \newunit\newblock + \printfield{note}% + \newunit\newblock \usebibmacro{music+eventdate}% + \setunit*{\addcomma\addspace}% + \printfield{usera}% \newunit\newblock \usebibmacro{origpubl+loc+year}% 16th ed. \newunit\newblock - \printfield{note}% - \newunit\newblock + \usebibmacro{bibreprint}% 17th ed. \usebibmacro{publ+loc+year}% \newunit\newblock \printfield{type}% @@ -3152,7 +3660,14 @@ bibliography style] ) }% {}% - {\printurldate}% Date fix + {\printurldate% + \ifboolexpr{% + togl {cms@urltime}% + and + not test {\iffieldundef{urlhour}}% + }% + {\newcunit\printurltime}% + {}}% Date fix \iffieldundef{addendum}% {\newunit\newblock}% {\newcunit\newblock}% @@ -3192,18 +3707,30 @@ bibliography style] or not togl {cms@los}% }% - {\togglefalse{cms@authorparens}}% - {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND\NOT - \iffirstonpage}% + {\togglefalse{cms@authorparens}% + \global\csundef{cms@shauthor}}% + {\ifboolexpr{% + (( + test {\iffieldequals{fullhash}{\bbx@lasthash}}% + or + test {\iffieldequals{shorthand}{\cms@shauthor}}% + ) + and + togl {cms@namedash}% + ) + and + not test {\iffirstonpage}% + }% {\togglefalse{cms@authorparens}}% {\toggletrue{cms@authorparens}% + \savefield{shorthand}{\cms@shauthor}% \printfield{shorthand}\addspace}}} \newbibmacro*{shorthand:label}{% Test this \ifthenelse{\iffieldequalstr{entrysubtype}{magazine}\AND\NOT% \ifentrytype{periodical}}% Simplifies .bib creation {\printtext[bibhyperref]{\printfield[journaltitle]{journaltitle}}}% - {\ifentrytype{manual}% + {\ifthenelse{\ifentrytype{manual}\OR\ifentrytype{standard}}% {\printtext[bibhyperref]{\printlist{organization}}}% {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}}}% @@ -3213,6 +3740,8 @@ bibliography style] or test {\ifentrytype{review}}% or + test {\ifentrytype{standard}}% + or test {\ifentrytype{suppperiodical}}% or test {\ifentrytype{video}}% @@ -3225,17 +3754,646 @@ bibliography style] {\usebibmacro{origfirst+labelyear+extrayear}}% {\usebibmacro{standard+labelyear+extrayear}}}} +\protected\def\cmsunspecified#1#2{% + \ifboolexpr{% + test {\iffieldundef{#2dateunspecified}}% + or + togl {cms@alwaysrange}% + }% + {\ifboolexpr{% + test {\iffieldundef{#2endyear}}% + or + test {\iffieldequalstr{#2dateera}{bce}}% + or + not togl {cms@compyears}% + or + not test {\iffieldnum{#2year}}% + or + not test {\iffieldnum{#2endyear}}% + or + not test {\if@cms@onlyyears{#2}}% + }% + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}\cmsdateeraprint{#2year}}% + {\cmscompcenturies{#2}% + \ifboolexpr{% + ( + test {\if@cms@bracket}% + and + not test {\if@cms@endbracket} + ) + or + ( + not test {\if@cms@bracket}% + and + test {\if@cms@endbracket}% + ) + or + ( + test {\if@cms@endcirca}% + and + not test {\if@cms@circa}% + ) + or + not test {\ifnumequal{\cms@tempcnta}{\cms@tempcntb}}% + }% + {\csuse{mkbibdate#1}{#2year}{}{}\cmsdateeraprint{#2year}}% + {\cmsdateeraprintpre{#2year}\cmscompressyears{#2}% + \cmsdateeraprint{#2endyear}\clearfield{#2endyear}}}}% + {\ifboolexpr{% + test {\iffieldequalstr{#2dateunspecified}{yearindecade}}% + and + test {\ifbibstring{decade}}% + and + not togl {cms@decaderange}% + }% + {\cmsmkdecade{#1}{#2}}% + {\ifboolexpr{% + test {\iffieldequalstr{#2dateunspecified}{yearincentury}}% + and + test {\ifbibstring{century}}% + and + not togl {cms@centuryrange}% + }% + {\cmsmkcentury{#2}}% + {\iftoggle{cms@compyears}% + {\cmsdateeraprintpre{#2year}\cmscompressyears{#2}% + \cmsdateeraprint{#2endyear}\clearfield{#2endyear}}% + {\csuse{mkbibdate#1}{#2year}{}{}\cmsdateeraprint{#2year}}}}}}% + +\protected\def\cmscompressyears#1{% + \def\cms@tempa{\thefield{#1year}--\thefield{#1endyear}}% + \edef\cms@tempb{\mkcomprange{\csuse{cms@tempa}}}% + \cms@tempb}% + +\newcount\cms@tempcnta +\newcount\cms@tempcntb + +\def\cmscompcenturies#1{% + \cms@tempcnta=\thefield{#1year}% + \divide\cms@tempcnta100 + \cms@tempcntb=\thefield{#1endyear}% + \divide\cms@tempcntb100} + +\protected\def\cmsformatextra{% + \ifboolexpr{% + test {\if@cms@bracket}% + and + not togl {cms@noyearbrackets}% + }% + {\usebibmacro{cmsextradate}% + \global\boolfalse{cms:extraparens}}% + {\ifbool{cms:extraparens}% + {\usebibmacro{cmsparensextradate}% + \global\boolfalse{cms:extraparens}}% + {\usebibmacro{cmsextradate}}}} + +\protected\def\cmsformatendextra{% + \ifboolexpr{% + test {\if@cms@endbracket}% + and + test {\if@cms@bracket}% + and + not togl {cms@noyearbrackets}% + }% + {\usebibmacro{cmsextradate}% + \global\boolfalse{cms:extraparens}}% + {\ifbool{cms:extraparens}% + {\usebibmacro{cmsparensextradate}% + \global\boolfalse{cms:extraparens}}% + {\usebibmacro{cmsextradate}}}} + +\newbibmacro*{cmsextradate}{% For use with some date specs + \iffieldundef{extradate}% + {}% + {\setunit*{}% + \printfield{extradate}\clearfield{extradate}}} + +\newbibmacro*{cmsparensextradate}{% For use with other date specs + \iffieldundef{extradate}% + {}% + {\setunit*{}% + \mkbibparens{\printfield{extradate}}\clearfield{extradate}}} + +\protected\def\cmsdateeraprintpre#1{% AD/BC order depends on language + \ifdefstring\blx@dateera{astronomical}% + {\iffieldnum{#1}% + {\begingroup% + \let\blx@tempa\@empty% + \blx@ifstrendswith{#1}{endyear}% + {\blx@stripfromendinto{#1}{endyear}\blx@datetype% + \def\blx@tempa{end}}% + {\blx@stripfromendinto{#1}{year}\blx@datetype}% + \csuse{if\blx@datetype\blx@tempa dateera}{bce}% + {\ifnumless{0-\thefield{#1}}{0}% + {\printtext{\csuse{bibdateera\blx@tempa prefix}}}% + {}}% + {}% + \endgroup}% + {}}% + {\ifboolexpr{% + test {\ifdefstring\blx@dateera{christian}}% + and + test {\if@cms@adfirst}% + }% + {\iffieldnum{#1}% + {\begingroup% + \let\blx@tempa\@empty% + \blx@ifstrendswith{#1}{endyear}% + {\blx@stripfromendinto{#1}{endyear}\blx@datetype% + \def\blx@tempa{end}}% + {\blx@stripfromendinto{#1}{year}\blx@datetype}% + \csuse{if\blx@datetype\blx@tempa dateera}{bce}% + {\ifdefstring\blx@tempa{end}{}{\global\toggletrue{cms@bc}}}% + {\ifnumless{\thefield{#1}}\blx@dateeraauto% + {\ifdefstring\blx@tempa{end}% + {\iftoggle{cms@bc}% + {\printtext{% + \bibsstring{\blx@dateera@ce}\printdelim{dateaddelim}}% + \global\togglefalse{cms@bc}}% + {}}% + {\printtext{% + \bibsstring{\blx@dateera@ce}\printdelim{dateaddelim}}% + \global\togglefalse{cms@bc}}}% + {}}% + \endgroup}% + {}}% + {}}} + +\protected\def\cmsdateeraprint#1{% AD/BC order depends on language + \ifboolexpr{% + test {\ifdefstring\blx@dateera{christian}}% + and + test {\if@cms@adfirst}% + }% + {\iffieldnum{#1} + {\begingroup + \let\blx@tempa\@empty + \blx@ifstrendswith{#1}{endyear} + {\blx@stripfromendinto{#1}{endyear}\blx@datetype + \def\blx@tempa{end}} + {\blx@stripfromendinto{#1}{year}\blx@datetype}% + \csuse{if\blx@datetype\blx@tempa dateera}{bce}% + {\ifdefstring\blx@tempa{end}% + {\ifnum\numexpr0-\thefield{#1}\relax<\blx@dateeraauto% + \printtext{\printdelim{dateeradelim}\midsentence% + \bibsstring{\blx@dateera@bce}}% + \global\booltrue{cms:extraparens}\relax% + \fi}% + {\csuse{if\blx@datetype enddateera}{bce}% + {}% + {\ifnum\numexpr0-\thefield{#1}\relax<\blx@dateeraauto% + \printtext{\printdelim{dateeradelim}\midsentence% + \bibsstring{\blx@dateera@bce}}% + \global\booltrue{cms:extraparens}\relax% + \fi}}}% + {}% + \endgroup} + {}}% + {\ifboolexpr{% + test {\ifdefstring\blx@dateera{secular}}% + or + ( + test {\ifdefstring\blx@dateera{christian}}% + and + not test {\if@cms@adfirst}% + ) + }% + {\iffieldnum{#1}% + {\begingroup% + \let\blx@tempa\@empty% + \blx@ifstrendswith{#1}{endyear}% + {\blx@stripfromendinto{#1}{endyear}\blx@datetype% + \def\blx@tempa{end}}% + {\blx@stripfromendinto{#1}{year}\blx@datetype}% + \csuse{if\blx@datetype\blx@tempa dateera}{bce}% + {\ifdefstring\blx@tempa{end}% + {\ifnum\numexpr0-\thefield{#1}\relax<\blx@dateeraauto% + \printtext{\printdelim{dateeradelim}\midsentence% + \bibsstring{\blx@dateera@bce}}% + \global\booltrue{cms:extraparens}\relax% + \fi}% + {\csuse{if\blx@datetype enddateera}{bce}% + {}% + {\ifnum\numexpr0-\thefield{#1}\relax<\blx@dateeraauto% + \printtext{\printdelim{dateeradelim}\midsentence% + \bibsstring{\blx@dateera@bce}}% + \global\booltrue{cms:extraparens}\relax% + \fi}}}% + {\ifdefstring\blx@tempa{end}% + {\ifnumless{\thefield{#1}}\blx@dateeraauto% + {\printtext{\printdelim{dateeradelim}\midsentence% + \bibsstring{\blx@dateera@ce}}% + \global\booltrue{cms:extraparens}}% + {}}% + {\csuse{if\blx@datetype enddateera}{ce}% + {}% + {\ifnumless{\thefield{#1}}\blx@dateeraauto% + {\printtext{\printdelim{dateeradelim}\midsentence% + \bibsstring{\blx@dateera@ce}}% + \global\booltrue{cms:extraparens}}% + {}}}}% + \endgroup}% + {}}% + {}}} + +\newrobustcmd*{\cms@datebrackets}{% + \iftoggle{cms@nodatebrackets}% + {\global\boolfalse{cms:bracket}}% + {\global\booltrue{cms:bracket}% + \bibopenbracket}}% + +\newrobustcmd*{\cms@yearbrackets}{% + \iftoggle{cms@noyearbrackets}% + {\global\boolfalse{cms:bracket}}% + {\global\booltrue{cms:bracket}% + \bibopenbracket}}% + +\newrobustcmd*{\cms@mkbibrangetrunc}[2]{% DATE FIX + \begingroup + \blx@metadateinfo{#2}% + \clearfield{extradate}% + \ifthenelse{\iffieldundef{#2year}\AND\iffieldundef{#2month}\AND% + \iffieldundef{#2season}}% + {}% + {\printtext[#2date]{% + \if@cms@bracket% + {\cms@datebrackets% + \if@cms@circa% + {\bibsstring{circa}\printdelim{datecircadelim}}% + {}}% + {\global\boolfalse{cms:bracket}}% + \iffieldundef{#2season}% + {\ifdateyearsequal{#2}{#2end}% + {\iffieldsequal{#2month}{#2endmonth}% + {\csuse{mkbibdate#1}{}{}{#2day}}% + {\ifthenelse{\iffieldundef{#2month}\AND\iffieldundef{#2day}}% + {\csuse{mkbibdate#1}{#2year}{}{}\cmsdateeraprint{#2endyear}% + \clearfield{#2endyear}}% Clear up inheritance problem ??? + {\csuse{mkbibdate#1}{}{#2month}{#2day}}}}% + {\cmsunspecified{#1}{#2}}}% + {\ifdateyearsequal{#2}{#2end}% + {\ifthenelse{\iffieldundef{#2endseason}\OR% + \iffieldsequal{#2season}{#2endseason}}% + {\csuse{mkbibseasondate#1}{#2year}{#2season}% + \cmsdateeraprint{#2endyear}\clearfield{#2endyear}}% + {\csuse{mkbibseasondate#1}{}{#2season}}}% + {\csuse{mkbibseasondate#1}{#2year}{#2season}% + \cmsdateeraprint{#2year}}}% + \if@cms@bracket% + {\if@cms@uncertain% + {\if@cms@enduncertain% + {\iffieldundef{#2endyear}% + {\bibdateuncertain}% + {}}% + {\bibdateuncertain}}% + {\if@cms@enduncertain% + {\iffieldundef{#2endyear}% + {\bibdateuncertain}% + {}}% + {}}}% + {}% + \iffieldundef{#2endyear}% + {\iffieldundef{#2endmonth}% + {\ifthenelse{\iffieldundef{#2endseason}\OR% + \iffieldsequal{#2season}{#2endseason}}% + {\ifbool{cms:bracket}% + {\bibclosebracket\global\boolfalse{cms:bracket}}% + {}}% + {\bibdaterangesep% + \csuse{mkbibseasondate#1}{}{#2endseason}}}% + {\bibdaterangesep% + \csuse{mkbibdate#1}{}{#2endmonth}{#2endday}}}% + {\iffieldequalstr{#2endyear}{}% + {\ifbool{cms:bracket}% + {\bibclosebracket\global\boolfalse{cms:bracket}}% + {}% + \mbox{\bibdaterangesep}}% + {\ifbool{cms:bracket}% + {\if@cms@circa% + {\if@cms@endbracket% + {\bibdaterangesep}% + {\bibclosebracket\global\boolfalse{cms:bracket}% + \bibdaterangesep}}% + {\if@cms@endcirca% + {\bibdaterangesep\bibsstring{circa}\printdelim{datecircadelim}}% + {\if@cms@enduncertain% + {\bibdaterangesep}% + {\bibclosebracket\global\boolfalse{cms:bracket}% + \bibdaterangesep}}}}% + {\if@cms@endbracket% + {\bibdaterangesep% + \cms@datebrackets% + \if@cms@endcirca% + {\if@cms@circa% + {}% + {\bibsstring{circa}\printdelim{datecircadelim}}}% + {}}% + {\bibdaterangesep}}%\bibdatedash% + \iffieldundef{#2endseason}% + {\ifdateyearsequal{#2}{#2end}% + {\csuse{mkbibdate#1}{#2year}{#2endmonth}{#2endday}}% + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}% + {\ifdateyearsequal{#2}{#2end}% + {\csuse{mkbibseasondate#1}{#2year}{#2endseason}}% + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}% + \ifbool{cms:bracket}% + {\if@cms@bracket% + {\cmsdateeraprint{#2endyear}% + \enddateuncertainprint% + \bibclosebracket\global\boolfalse{cms:bracket}}% + {\enddateuncertainprint% + \bibclosebracket\global\boolfalse{cms:bracket}% + \cmsdateeraprint{#2endyear}}}% + {\enddateuncertainprint% + \cmsdateeraprint{#2endyear}}}}}}% + \endgroup} + +\newrobustcmd*{\cms@mkbibrangefull}[2]{% + \begingroup + \blx@metadateinfo{#2}% + \clearfield{extradate}% + \ifthenelse{\iffieldundef{#2year}\AND\iffieldundef{#2month}\AND% + \iffieldundef{#2season}}% + {}% + {\printtext[#2date]{% + \if@cms@bracket% + {\cms@datebrackets% + \if@cms@circa% + {\bibsstring{circa}\printdelim{datecircadelim}} + {}}% + {\global\boolfalse{cms:bracket}}% + \iffieldundef{#2season}% + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + \ifboolexpr{% + test {\ifdateyearsequal{#2}{#2end}}% + and + test {\iffieldundef{#2month}}% + and + test {\iffieldundef{#2day}}% + }% + {\cmsdateeraprint{#2endyear}\clearfield{#2endyear}}% + {\cmsdateeraprint{#2year}}}% + {\csuse{mkbibseasondate#1}{#2year}{#2season}% + \cmsdateeraprint{#2year}}% + \if@cms@bracket% + {\if@cms@uncertain% + {\if@cms@enduncertain% + {\iffieldundef{#2endyear}% + {\bibdateuncertain}% + {}}% + {\bibdateuncertain}}% + {\if@cms@enduncertain% + {\iffieldundef{#2endyear}% + {\bibdateuncertain}% + {}}% + {}}}% + {}% + \ifthenelse{\iffieldundef{#2endyear}\AND\iffieldundef{#2endmonth}% + \AND\iffieldundef{#2endseason}}% + {\ifbool{cms:bracket}% + {\bibclosebracket\global\boolfalse{cms:bracket}}% + {}}% + {\iffieldequalstr{#2endyear}{}% + {\ifbool{cms:bracket}% + {\bibclosebracket\global\boolfalse{cms:bracket}}% + {}% + \mbox{\bibdaterangesep}}% + {\ifbool{cms:bracket}% + {\if@cms@circa% + {\if@cms@endbracket% + {\bibdaterangesep}% + {\bibclosebracket\global\boolfalse{cms:bracket}% + \bibdaterangesep}}% + {\if@cms@endcirca% + {\bibdaterangesep\bibsstring{circa}\printdelim{datecircadelim}}% + {\if@cms@enduncertain% + {\bibdaterangesep}% + {\bibclosebracket\global\boolfalse{cms:bracket}% + \bibdaterangesep}}}}% + {\if@cms@endbracket% + {\bibdaterangesep% + \cms@datebrackets% + \if@cms@endcirca% + {\if@cms@circa% + {}% + {\bibsstring{circa}\printdelim{datecircadelim}}}% + {}}% + {\bibdaterangesep}}%\bibdaterangesep% + \iffieldundef{#2endseason}% + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}% + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}% + \ifbool{cms:bracket}% + {\if@cms@bracket% + {\cmsdateeraprint{#2endyear}% + \enddateuncertainprint% + \bibclosebracket\global\boolfalse{cms:bracket}}% + {\enddateuncertainprint% + \bibclosebracket\global\boolfalse{cms:bracket}% + \cmsdateeraprint{#2endyear}}}% + {\enddateuncertainprint% + \cmsdateeraprint{#2endyear}}}}}}% + \endgroup} + +\newrobustcmd*{\cms@mkyearrangeextra}[3][]{% + \global\boolfalse{cms:extraparens}% + \begingroup + \clearfield{#3month}\clearfield{#3day}\clearfield{#3endmonth}% + \clearfield{#3endday}\clearfield{#3season}\clearfield{#3endseason}% + \blx@metadateinfo{#3}% + \iffieldundef{#3year} + {\blx@nounit}% + {\printtext{% + \if@cms@bracket% + {\cms@yearbrackets% + \if@cms@circa% + {\bibsstring{circa}\printdelim{datecircadelim}} + {}}% + {\global\boolfalse{cms:bracket}}% + \ifdateyearsequal{#3}{#3end}% + {\csuse{mkbibdate#2}{#3year}{}{}\cmsdateeraprint{#3endyear}% + \clearfield{#3endyear}}% + {\ifblank{#1}% + {\cmsunspecified{#2}{#3}}% + {\csuse{mkbibdate#2}{#3year}{}{}\cmsdateeraprint{#3year}}}% + \if@cms@bracket% + {\if@cms@uncertain% + {\if@cms@enduncertain% + {\iffieldundef{#3endyear}% + {\global\booltrue{cms:extraparens}% + \bibdateuncertain}% + {}}% + {\ifthenelse{\iffieldundef{#3endyear}\OR% + \iffieldequalstr{#3endyear}{}}% + {\global\booltrue{cms:extraparens}}% + {}% + \bibdateuncertain}}% + {\if@cms@enduncertain% + {\iffieldundef{#3endyear}% + {\global\booltrue{cms:extraparens}% + \bibdateuncertain}% + {}}% + {}}}% + {}% + \iffieldundef{#3endyear} + {\ifbool{cms:bracket}% + {\bibclosebracket\global\boolfalse{cms:bracket}}% + {}% + \cmsformatextra}%\usebibmacro{cmsextradate}% + {\iffieldequalstr{#3endyear}{}% + {\ifbool{cms:bracket}% + {\bibclosebracket\global\boolfalse{cms:bracket}}% + {}% + \cmsformatextra%\usebibmacro{cmsextradate}% + \mbox{\bibdaterangesep}}% + {\ifbool{cms:bracket}% + {\if@cms@circa% + {\if@cms@endbracket% + {\bibdaterangesep}% + {\bibclosebracket\global\boolfalse{cms:bracket}% + \bibdaterangesep}}% + {\if@cms@endcirca% + {\bibdaterangesep\bibsstring{circa}\printdelim{datecircadelim}}% + {\if@cms@enduncertain% + {\bibdaterangesep}% + {\bibclosebracket\global\boolfalse{cms:bracket}% + \bibdaterangesep}}}}% + {\if@cms@endbracket% + {\bibdaterangesep% + \cms@yearbrackets% + \if@cms@endcirca% + {\if@cms@circa% + {}% + {\bibsstring{circa}\printdelim{datecircadelim}}}% + {}}% + {\bibdaterangesep}}% + \csuse{mkbibdate#2}{#3endyear}{}{}% + \ifbool{cms:bracket}% + {\if@cms@bracket% + {\cmsdateeraprint{#3endyear}% + \enddateuncertainprint% + \bibclosebracket\global\boolfalse{cms:bracket}}% + {\enddateuncertainprint% + \bibclosebracket\global\boolfalse{cms:bracket}% + \cmsdateeraprint{#3endyear}}}% + {\if@cms@enduncertain% + {\global\booltrue{cms:extraparens}% + \bibdateuncertain}% + {}% + \cmsdateeraprint{#3endyear}}% + \cmsformatendextra}}}}% + \endgroup}% + +\def\if@cms@adfirst{% + \ifboolexpr{% + test {\ifdefstring\blx@languagename{american}}% + or + test {\ifdefstring\blx@languagename{british}}% + or + test {\ifdefstring\blx@languagename{canadian}}% + or + test {\ifdefstring\blx@languagename{english}}% + or + test {\ifdefstring\blx@languagename{UKenglish}}% + or + test {\ifdefstring\blx@languagename{USenglish}}% + or + test {\ifdefstring\blx@languagename{australian}}% + or + test {\ifdefstring\blx@languagename{newzealand}}% + }% + {\@firstoftwo}% + {\@secondoftwo}} + +\def\if@cms@bracket{% + \ifboolexpr{% + ( + test {\ifdatecirca}% + and + togl {blx@datecirca}% + ) + or + ( + test {\ifdateuncertain}% + and + togl {blx@dateuncertain}% + ) + }% + {\@firstoftwo}% + {\@secondoftwo}} + +\def\if@cms@endbracket{% + \ifboolexpr{% + ( + test {\ifenddatecirca}% + and + togl {blx@datecirca}% + ) + or + ( + test {\ifenddateuncertain}% + and + togl {blx@dateuncertain}% + ) + }% + {\@firstoftwo}% + {\@secondoftwo}} + +\def\if@cms@circa{% + \ifboolexpr{% + test {\ifdatecirca}% + and + togl {blx@datecirca}% + }% + {\@firstoftwo}% + {\@secondoftwo}} + +\def\if@cms@uncertain{% + \ifboolexpr{% + test {\ifdateuncertain}% + and + togl {blx@dateuncertain}% + }% + {\@firstoftwo}% + {\@secondoftwo}} + +\def\if@cms@endcirca{% + \ifboolexpr{% + test {\ifenddatecirca}% + and + togl {blx@datecirca}% + }% + {\@firstoftwo}% + {\@secondoftwo}} + +\def\if@cms@enduncertain{% + \ifboolexpr{% + test {\ifenddateuncertain}% + and + togl {blx@dateuncertain}% + }% + {\@firstoftwo}% + {\@secondoftwo}} + +\def\if@cms@onlyyears#1{% + \ifboolexpr{% + test {\iffieldundef{#1month}}% + and + test {\iffieldundef{#1endmonth}}% + and + test {\iffieldundef{#1day}}% + and + test {\iffieldundef{#1endday}}% + }% + {\@firstoftwo}% + {\@secondoftwo}} + \newbibmacro*{standard+labelyear+extrayear}{% \ifthenelse{\iffieldundef{labelyear}\OR% \iffieldequalstr{labelyear}{nodate}}% or new declaration ??? {\ifboolexpr{% test {\ifentrytype{misc}}% or - test {\ifentrytype{inreference}}% - or - test {\ifentrytype{reference}}% - or - test {\ifentrytype{mvreference}}% + test {\ifentrytype{dataset}}% or not togl {cms@nodates}}% {}% @@ -3243,86 +4401,24 @@ bibliography style] {\iffieldundef{year}% {\iffieldundef{eventyear}% {\iffieldundef{origyear}% - {\printfield{labelyear}% - \iffieldundef{extradate}% - {}% - {\setunit*{}% - \printfield{extradate}}% - \iffieldundef{urlendyear}% - {\clearfield{urlyear}}% + {\iffieldundef{userd}% {\ifboolexpr{% - test {\iffieldequalstr{urlendyear}{}}% + togl {cms@nodates}% and - not togl {cms@datedash}% - }% - {\mbox{\bibdatedash}% - \clearfield{urlyear}}% - {\iffieldundef{urlmonth}% - {\clearfield{urlyear}}% - {\iffieldsequal{urlyear}{urlendyear}% - {\clearfield{urlyear}\clearfield{urlendyear}}% - {}}% - \usebibmacro{cms@test@labelend}}}}% - {\printfield{labelyear}% - \iffieldundef{extradate}% - {}% - {\setunit*{}% - \printfield{extradate}}% - \iffieldundef{origendyear}% - {\clearfield{origyear}}% - {\ifboolexpr{% - test {\iffieldequalstr{origendyear}{}}% + not test {\ifentrytype{misc}}% and - not togl {cms@datedash}% + not test {\ifentrytype{dataset}}% }% - {\mbox{\bibdatedash}% - \clearfield{origyear}}% - {\iffieldundef{origmonth}% - {\clearfield{origyear}}% - {\iffieldsequal{origyear}{origendyear}% - {\clearfield{origyear}\clearfield{origendyear}}% - {}}% - \usebibmacro{cms@test@labelend}}}}}% - {\printfield{labelyear}% - \iffieldundef{extradate}% - {}% - {\setunit*{}% - \printfield{extradate}}% - \iffieldundef{eventendyear}% - {\clearfield{eventyear}}% - {\ifboolexpr{% - test {\iffieldequalstr{eventendyear}{}}% - and - not togl {cms@datedash}% - }% - {\mbox{\bibdatedash}% - \clearfield{eventyear}}% - {\iffieldundef{eventmonth}% - {\clearfield{eventyear}}% - {\iffieldsequal{eventyear}{eventendyear}% - {\clearfield{eventyear}\clearfield{eventendyear}}% - {}}% - \usebibmacro{cms@test@labelend}}}}}% - {\printfield{labelyear}% - \iffieldundef{extradate}% - {}% - {\setunit*{}% - \printfield{extradate}}% - \iffieldundef{endyear}% DATE FIX - {\clearfield{year}}% - {\ifboolexpr{% - test {\iffieldequalstr{endyear}{}}% - and - not togl {cms@datedash}% - }% - {\mbox{\bibdatedash}% - \clearfield{year}}% - {\iffieldundef{month}% - {\clearfield{year}}% - {\iffieldsequal{year}{endyear}% - {\clearfield{year}\clearfield{endyear}}% + {\bibstring{nodate}}% {}}% - \usebibmacro{cms@test@labelend}}}}}}% + {\printurldateextra% + \usebibmacro{clear+datefield}{url}}}% + {\printorigdateextra% + \usebibmacro{clear+datefield}{orig}}}% + {\printeventdateextra% + \usebibmacro{clear+datefield}{event}}}% + {\printdateextra% + \usebibmacro{clear+datefield}{}}}}% \newbibmacro*{origfirst+labelyear+extrayear}{% \ifthenelse{\iffieldundef{labelyear}\OR% @@ -3330,11 +4426,7 @@ bibliography style] {\ifboolexpr{% test {\ifentrytype{misc}}% or - test {\ifentrytype{inreference}}% - or - test {\ifentrytype{reference}}% - or - test {\ifentrytype{mvreference}}% + test {\ifentrytype{dataset}}% or not togl {cms@nodates}}% {}% @@ -3342,86 +4434,24 @@ bibliography style] {\iffieldundef{origyear}% {\iffieldundef{year}% {\iffieldundef{eventyear}% - {\printfield{labelyear}% - \iffieldundef{extradate}% - {}% - {\setunit*{}% - \printfield{extradate}}% - \iffieldundef{urlendyear}% - {\clearfield{urlyear}}% + {\iffieldundef{userd}% {\ifboolexpr{% - test {\iffieldequalstr{urlendyear}{}}% + togl {cms@nodates}% and - not togl {cms@datedash}% - }% - {\mbox{\bibdatedash}% - \clearfield{urlyear}}% - {\iffieldundef{urlmonth}% - {\clearfield{urlyear}}% - {\iffieldsequal{urlyear}{urlendyear}% - {\clearfield{urlyear}\clearfield{urlendyear}}% - {}}% - \usebibmacro{cms@test@labelend}}}}% - {\printfield{labelyear}% - \iffieldundef{extradate}% - {}% - {\setunit*{}% - \printfield{extradate}}% - \iffieldundef{eventendyear}% - {\clearfield{eventyear}}% - {\ifboolexpr{% - test {\iffieldequalstr{eventendyear}{}}% + not test {\ifentrytype{misc}}% and - not togl {cms@datedash}% + not test {\ifentrytype{dataset}}% }% - {\mbox{\bibdatedash}% - \clearfield{eventyear}}% - {\iffieldundef{eventmonth}% - {\clearfield{eventyear}}% - {\iffieldsequal{eventyear}{eventendyear}% - {\clearfield{eventyear}\clearfield{eventendyear}}% - {}}% - \usebibmacro{cms@test@labelend}}}}}% - {\printfield{labelyear}% - \iffieldundef{extradate}% - {}% - {\setunit*{}% - \printfield{extradate}}% - \iffieldundef{endyear}% - {\clearfield{year}}% - {\ifboolexpr{% - test {\iffieldequalstr{endyear}{}}% - and - not togl {cms@datedash}% - }% - {\mbox{\bibdatedash}% - \clearfield{year}}% - {\iffieldundef{month}% - {\clearfield{year}}% - {\iffieldsequal{year}{endyear}% - {\clearfield{year}\clearfield{endyear}}% - {}}% - \usebibmacro{cms@test@labelend}}}}}% - {\printfield{labelyear}% - \iffieldundef{extradate}% - {}% - {\setunit*{}% - \printfield{extradate}}% - \iffieldundef{origendyear}% DATE FIX - {\clearfield{origyear}}% - {\ifboolexpr{% - test {\iffieldequalstr{origendyear}{}}% - and - not togl {cms@datedash}% - }% - {\mbox{\bibdatedash}% - \clearfield{origyear}}% - {\iffieldundef{origmonth}% - {\clearfield{origyear}}% - {\iffieldsequal{origyear}{origendyear}% - {\clearfield{origyear}\clearfield{origendyear}}% + {\bibstring{nodate}}% {}}% - \usebibmacro{cms@test@labelend}}}}}}% + {\printurldateextra% + \usebibmacro{clear+datefield}{url}}}% + {\printeventdateextra% + \usebibmacro{clear+datefield}{event}}}% + {\printdateextra% + \usebibmacro{clear+datefield}{}}}% + {\printorigdateextra% + \usebibmacro{clear+datefield}{orig}}}}% \newbibmacro*{av+labelyear+extrayear}{% \ifthenelse{\iffieldundef{labelyear}\OR% @@ -3429,11 +4459,7 @@ bibliography style] {\ifboolexpr{% test {\ifentrytype{misc}}% or - test {\ifentrytype{inreference}}% - or - test {\ifentrytype{reference}}% - or - test {\ifentrytype{mvreference}}% + test {\ifentrytype{dataset}}% or not togl {cms@nodates}}% {}% @@ -3441,106 +4467,77 @@ bibliography style] {\iffieldundef{eventyear}% {\iffieldundef{origyear}% {\iffieldundef{year}% - {\printfield{labelyear}% - \iffieldundef{extradate}% - {}% - {\setunit*{}% - \printfield{extradate}}% - \iffieldundef{urlendyear}% - {\clearfield{urlyear}}% + {\iffieldundef{userd}% {\ifboolexpr{% - test {\iffieldequalstr{urlendyear}{}}% + togl {cms@nodates}% and - not togl {cms@datedash}% - }% - {\mbox{\bibdatedash}% - \clearfield{urlyear}}% - {\iffieldundef{urlmonth}% - {\clearfield{urlyear}}% - {\iffieldsequal{urlyear}{urlendyear}% - {\clearfield{urlyear}\clearfield{urlendyear}}% - {}}% - \usebibmacro{cms@test@labelend}}}}% - {\printfield{labelyear}% - \iffieldundef{extradate}% - {}% - {\setunit*{}% - \printfield{extradate}}% - \iffieldundef{endyear}% - {\clearfield{year}}% - {\ifboolexpr{% - test {\iffieldequalstr{endyear}{}}% + not test {\ifentrytype{misc}}% and - not togl {cms@datedash}% + not test {\ifentrytype{dataset}}% }% - {\mbox{\bibdatedash}% - \clearfield{year}}% - {\iffieldundef{month}% - {\clearfield{year}}% - {\iffieldsequal{year}{endyear}% - {\clearfield{year}\clearfield{endyear}}% - {}}% - \usebibmacro{cms@test@labelend}}}}}% - {\printfield{labelyear}% - \iffieldundef{extradate}% - {}% - {\setunit*{}% - \printfield{extradate}}% - \iffieldundef{origendyear}% - {\clearfield{origyear}}% - {\ifboolexpr{% - test {\iffieldequalstr{origendyear}{}}% - and - not togl {cms@datedash}% - }% - {\mbox{\bibdatedash}% - \clearfield{origyear}}% - {\iffieldundef{origmonth}% - {\clearfield{origyear}}% - {\iffieldsequal{origyear}{origendyear}% - {\clearfield{origyear}\clearfield{origendyear}}% - {}}% - \usebibmacro{cms@test@labelend}}}}}% - {\printfield{labelyear}% - \iffieldundef{extradate}% - {}% - {\setunit*{}% - \printfield{extradate}}% - \iffieldundef{eventendyear}% DATE FIX - {\clearfield{eventyear}}% - {\ifboolexpr{% - test {\iffieldequalstr{eventendyear}{}}% - and - not togl {cms@datedash}% - }% - {\mbox{\bibdatedash}% - \clearfield{eventyear}}% - {\iffieldundef{eventmonth}% - {\clearfield{eventyear}}% - {\iffieldsequal{eventyear}{eventendyear}% - {\clearfield{eventyear}\clearfield{eventendyear}}% + {\bibstring{nodate}}% {}}% - \usebibmacro{cms@test@labelend}}}}}}% + {\printurldateextra% + \usebibmacro{clear+datefield}{url}}}% + {\printdateextra% + \usebibmacro{clear+datefield}{}}}% + {\printorigdateextra% + \usebibmacro{clear+datefield}{orig}}}% + {\printeventdateextra% + \usebibmacro{clear+datefield}{event}}}}% -\newbibmacro*{origyear+endyear}{% - \printfield{origyear}% - \ifthenelse{\iffieldundef{origendyear}\OR% - \iffieldsequal{origyear}{origendyear}}% Same fix as in .lbx - {}% - {\iffieldequalstr{origendyear}{}% - {\mbox{\bibdatedash}}% - {\bibdatedash\csuse{mkbibdatelong}{origendyear}{}{}}}}% ??? - -% \printfield{origendyear}}}} Peculiar bug with this after \bibnamedash +\newbibmacro{artwork+dates}{% 17th ed. + \iftoggle{cms@ordate}% + {\IfBeginWith{\thefield{labeldatesource}}{orig}% + {\iftoggle{cms@switchdates}% + {\printdate\newunit\printorigdate}% + {\ifthenelse{\iffieldundef{origmonth}\AND\iffieldundef{origseason}}% + {\iffieldundef{year}{}{\printdate}}% + {\printorigdate% + \iffieldundef{year}% + {}% + {\newunit\printdate}}}}% + {\IfBeginWith{\thefield{labeldatesource}}{event}% + {}% + {\ifthenelse{\iffieldundef{month}\AND\iffieldundef{season}}% + {}{\printdate}}}}% + {\ifboolexpr{% + togl {cms@origlabel}% + or + togl {cms@bothlabelold}% + or + togl {cms@bothlabelnew}% + }% + {\iftoggle{cms@switchdates}% + {\ifthenelse{\iffieldundef{month}\AND\iffieldundef{season}}% + {\printorigdate}% + {\printdate\newunit\printorigdate}}% + {\ifthenelse{\iffieldundef{origmonth}\AND\iffieldundef{origseason}}% + {\printdate}% + {\printorigdate\newunit\printdate}}}% + {\iftoggle{cms@switchdates}% + {\ifthenelse{\iffieldundef{month}\AND\iffieldundef{season}}% + {\printorigdate}% + {\printdate\newunit\printorigdate}}% + {\iffieldundef{origyear}% + {\ifthenelse{\iffieldundef{month}\AND\iffieldundef{season}}% + {}% + {\printdate}}% + {\printorigdate% + \iffieldundef{year}% + {}% + {\newunit\printdate}}}}}} -\newbibmacro*{year+endyear}{% - \printfield{year}% - \ifthenelse{\iffieldundef{endyear}\OR% - \iffieldsequal{year}{endyear}}% Same fix as in .lbx - {}% - {\iffieldequalstr{endyear}{}% - {\mbox{\bibdatedash}}% - {\bibdatedash\printfield{endyear}}}} +\newbibmacro*{clear+datefield}[1]{% + \iffieldundef{#1day}% + {\iffieldundef{#1endyear}% + {\clearfield{#1year}}% + {\ifthenelse{\iffieldundef{#1month}\AND\iffieldundef{#1season}}% + {\clearfield{#1year}}% + {\ifdateyearsequal{#1}{#1end}% + {\clearfield{#1year}\clearfield{#1endyear}}% + {}}}}% + {}} \newbibmacro*{cmsbibsortdate}{% Attempt to solve date-related problems \ifboolexpr{% @@ -3572,10 +4569,10 @@ bibliography style] {\usebibmacro{bothyear+oldstyle}}% {\iftoggle{cms@bothlabelold}% {\usebibmacro{bothyear+oldstyle}}% - {\usebibmacro{labelyear+extrayear}}}}% - \ifcsdef{@cms@tempdate}% - {\toggletrue{\@cms@tempdate}}% - {}}% + {\usebibmacro{labelyear+extrayear}}}}}% + % \ifcsdef{@cms@tempdate}% + % {\toggletrue{\@cms@tempdate}}% + % {}}% \newbibmacro*{origyear+labelyear}{% \ifboolexpr{ ( @@ -3583,6 +4580,8 @@ bibliography style] or test {\ifentrytype{review}}% or + test {\ifentrytype{standard}}% + or test {\ifentrytype{suppperiodical}}% or test {\ifentrytype{video}}% @@ -3600,8 +4599,9 @@ bibliography style] \usebibmacro{standard+labelyear+extrayear}}% {\iftoggle{cms@ordate}% {\usebibmacro{origfirst+labelyear+extrayear}}% - {\usebibmacro{origyear+endyear}% - \clearfield{origyear}}}}}}% + {\clearfield{extradate}% + \printorigdateextra%\usebibmacro{origyear+endyear}% + \usebibmacro{clear+datefield}{orig}}}}}}% \newbibmacro*{bothyear+oldstyle}{% \ifboolexpr{ ( @@ -3609,6 +4609,8 @@ bibliography style] or test {\ifentrytype{review}}% or + test {\ifentrytype{standard}}% + or test {\ifentrytype{suppperiodical}}% or test {\ifentrytype{video}}% @@ -3622,9 +4624,11 @@ bibliography style] \bibopenparen% \usebibmacro{labelyear+extrayear}% \bibcloseparen% - \setunit{\addspace}\usebibmacro{origyear+endyear}}% - \clearfield{year}% - \clearfield{origyear}}% + \setunit{\addspace}% + \clearfield{extrayear}% + \printorigdateextra}% \usebibmacro{origyear+endyear} + \usebibmacro{clear+datefield}{}% + \usebibmacro{clear+datefield}{orig}}% {\iffieldundef{origyear}% {\iftoggle{cms@ordate}% {}% @@ -3638,18 +4642,23 @@ bibliography style] \usebibmacro{origfirst+labelyear+extrayear}% \bibcloseparen% \setunit*{\addspace}% - \usebibmacro{year+endyear}}}}% - {\printtext{% - \bibopenparen% - \usebibmacro{origyear+endyear}% - \bibcloseparen% - \clearfield{extradate}\setunit*{\addspace}% - \usebibmacro{standard+labelyear+extrayear}}}% - \clearfield{origyear}% - \clearfield{year}}}}}% + \clearfield{extradate}% + \printdateextra}}}% \usebibmacro{year+endyear} + {\iffieldundef{year}% + {\usebibmacro{origfirst+labelyear+extrayear}}% + {\printtext{% + \bibopenparen% + \clearfield{extradate}% + \printorigdateextra% + % \usebibmacro{origyear+endyear}% + \bibcloseparen% + \setunit*{\addspace}% + \usebibmacro{standard+labelyear+extrayear}}}}% + \usebibmacro{clear+datefield}{orig}% + \usebibmacro{clear+datefield}{}}}}}% \newbibmacro*{pubstate}{% - \iftoggle{cms@reprint}% + \iffieldequalstr{pubstate}{reprint}% {\iftoggle{cms@switchdates}% {\iffieldundef{year}% Fix for consistency??? {}% @@ -3661,22 +4670,28 @@ bibliography style] {\printtext{% 16th ed. \usebibmacro{choosepubstring}% \printorigdate}}}}% Need \addperiod & \nopunct ?? - {\printfield{pubstate}}}% + {}}% 17th ed. \newbibmacro*{choosepubstring}{% \ifthenelse{\ifentrytype{video}\OR% \ifentrytype{music}}% {\bibstring{origreleaseyear}}% - {\bibstring{origpubyear}}}% + {\bibstring{origpubyearalt}}}% \newbibmacro*{bibreprint}{% - \iftoggle{cms@reprint}% - {\iffieldundef{origyear}% - {\bibstring{reprint}\newcunit}% 16th ed. - {\iftoggle{cms@switchdates}% - {\bibstring{reprint}\newcunit}% 16th ed. - {}}}% - {}}% + \iffieldequalstr{pubstate}{reprint}% + {\ifentrytype{video}% + {}% + {\iffieldundef{origyear}% + {\bibstring{reprint}\reprintpunct}% 16th ed. \newcunit + {\iftoggle{cms@switchdates}% + {\bibstring{reprint}\reprintpunct}% 16th ed. \newcunit + {}}}}% + {\iffieldundef{pubstate}% + {}% + {\iffieldbibstring{pubstate}% + {\biblstring{\thefield{pubstate}}\reprintpunct}% \newcunit + {\printfield[prenote]{pubstate}\reprintpunct}}}}% \newcunit \newbibmacro*{volume+pages}{% Volume fix (modified) \ifboolexpr{% @@ -3872,46 +4887,48 @@ bibliography style] \setunit{\ctitleaddonpunct}% \printfield{maintitleaddon}}}}% -\newbibmacro*{cjournal+ser+vol+num}{% Moved to bbx +\newbibmacro*{cjournal+ser+vol+num}[1]{% Moved to bbx \usebibmacro{journal+sub}% \setunit*{\addspace}% \printlist[periodplace]{location}% \setunit*{\addspace}% \iffieldundef{series}% - {}% - {\newcunit - \printfield[jourser]{series}% - \newcunit}%\setunit*{\addspace}? - \ifthenelse{\iffieldundef{year}\AND\iffieldundef{month}}% + {}% + {\newcunit + \printfield[jourser]{series}% + \newcunit}%\setunit*{\addspace}? + \ifthenelse{\iffieldundef{#1year}\AND\iffieldundef{#1month}\AND% + \iffieldundef{issue}\AND\iffieldundef{#1season}}% {\iffieldundef{volume}% {\newcunit% \printfield[journum]{number}% \clearfield{number}% - \setunit{\addcomma\addspace}}% + \printunit{\addcomma\addspace}}% {\printfield[jourvol]{volume}% \setunit{\addcomma\addspace}}}% {\printfield[jourvol]{volume}% \newcunit% \printfield[journum]{number}% \clearfield{number}% - \setunit{\addcomma\addspace}}% need * here? - \printfield{eid}% - \newunit}% + \setunit{\addcomma\addspace}}}% eid moved for 17th ed. + % \printfield{eid}% + % \newunit}% -\newbibmacro*{journal+issue+year+pages}{% +\newbibmacro*{journal+issue+year+pages}[1]{% \ifboolexpr{% not togl {cms@numbermonth}% or test {\ifcsstring{blx@dateformat@date}{year}}% }% - {\clearfield{month}}% + {\clearfield{#1month}}% {}% - \usebibmacro{cjournal+ser+vol+num}% + \usebibmacro{cjournal+ser+vol+num}{#1}% \setunit{\addspace}% - \ifthenelse{\iffieldundef{issue}\AND\iffieldundef{month}% - \AND\iffieldundef{number}\AND\iffieldundef{year}}% Test year for - {\ifthenelse{\iffieldundef{bookpagination}\AND\NOT% related entries?? - \iffieldundef{volume}}% Removed kludge for French colon spacing? + \ifthenelse{\iffieldundef{issue}\AND\iffieldundef{#1month}% + \AND\iffieldundef{number}\AND\iffieldundef{#1year}\AND% + \iffieldundef{#1season}}% Test year for related entries?? + {\ifthenelse{\iffieldundef{bookpagination}\AND% + \iffieldundef{eid}\AND\NOT\iffieldundef{volume}}% {\setunit{\postvolpunct}}% {\setunit{\addcolon\addspace}}}% This may not be universally correct. {\printtext[parens]{% Perhaps if it's wrong use magazine subtype? @@ -3922,22 +4939,23 @@ bibliography style] \setunit{\addspace}% \usebibmacro{cmsyear}}}% \setunit{\addcolon\addspace}}% - \printfield{pages}}% + \usebibmacro{eid+or+pages}}% -\newbibmacro*{periodical+issue+year+pages}{% +\newbibmacro*{periodical+issue+year+pages}[1]{% \ifboolexpr{% not togl {cms@numbermonth}% or test {\ifcsstring{blx@dateformat@date}{year}}% }% - {\clearfield{month}}% + {\clearfield{#1month}}% {}% - \usebibmacro{cperiodical+ser+vol+num}% + \usebibmacro{cperiodical+ser+vol+num}{#1}% \setunit{\addspace}% - \ifthenelse{\iffieldundef{issue}\AND\iffieldundef{month}% - \AND\iffieldundef{number}\AND\iffieldundef{year}}% See prev. macro - {\ifthenelse{\iffieldundef{bookpagination}\AND\NOT% - \iffieldundef{volume}}% Removed kludge for French ??? + \ifthenelse{\iffieldundef{issue}\AND\iffieldundef{#1month}% + \AND\iffieldundef{number}\AND\iffieldundef{#1year}\AND% + \iffieldundef{#1season}}% See prev. macro + {\ifthenelse{\iffieldundef{bookpagination}\AND% + \iffieldundef{eid}\AND\NOT\iffieldundef{volume}}% {\setunit{\postvolpunct}}% {\setunit{\addcolon\addspace}}}% {\printtext[parens]{% @@ -3948,7 +4966,12 @@ bibliography style] \setunit{\addspace}% \usebibmacro{cmsyear}}}% \setunit{\addcolon\addspace}}% - \printfield{pages}}% + \usebibmacro{eid+or+pages}}% + +\newbibmacro*{eid+or+pages}{% + \iffieldundef{eid}% + {\printfield{pages}}% + {\printfield{eid}}} \newbibmacro*{bycompiler}{% \ifnameundef{namec}% @@ -3959,7 +4982,7 @@ bibliography style] \renewbibmacro*{byeditor}{% \ifnameundef{editor}% {}% - {\usebibmacro{cbytypestrg}{editor}{editor}% + {\usebibmacro{bytypestrg}{editor}{editor}% \setunit{\addspace}% \printnames[byeditor]{editor}% \usebibmacro{editorpunct}}% @@ -3968,19 +4991,19 @@ bibliography style] \renewbibmacro*{byeditorx}{% \ifnameundef{editora}% {}% - {\usebibmacro{cbytypestrg}{editora}{editor}% + {\usebibmacro{bytypestrg}{editora}{editor}% \setunit{\addspace}% \printnames[byeditora]{editora}% \usebibmacro{editorpunct}}% \ifnameundef{editorb}% {}% - {\usebibmacro{cbytypestrg}{editorb}{editor}% + {\usebibmacro{bytypestrg}{editorb}{editor}% \setunit{\addspace}% \printnames[byeditorb]{editorb}% \usebibmacro{editorpunct}}% \ifnameundef{editorc}% {}% - {\usebibmacro{cbytypestrg}{editorc}{editor}% + {\usebibmacro{bytypestrg}{editorc}{editor}% \setunit{\addspace}% \printnames[byeditorc]{editorc}% \usebibmacro{editorpunct}}} @@ -4115,6 +5138,9 @@ bibliography style] \newbibmacro*{begrelatedloop}{} \newbibmacro*{endrelatedloop}{} +\newcommand*{\begrelateddelimmaintitle}{\newunitpunct\par\nobreak}% +\newcommand*{\begrelateddelimmaintitlenc}{\newunitpunct\par\nobreak}% + \def\ifrelatedloop{% \ifboolexpr{ test {\xifinlistcs{\strfield{entrykey}}{bbx:relatedloop}}% or test {\xifinlistcs{\strfield{clonesourcekey}}{bbx:relatedloop}} }}% @@ -4122,12 +5148,15 @@ bibliography style] \newbibmacro*{related}{% \ifboolexpr{ test {\iffieldundef{related}} or test {\ifrelatedloop} }% {}% - {\usebibmacro{begrelated}% + {\ifcsundef{begrelateddelim\strfield{relatedtype}}% + {\printunit{\begrelateddelim}}% + {\printunit{\csuse{begrelateddelim\strfield{relatedtype}}}}% + \usebibmacro{begrelated}% \def\bbx@tempa{}% \setcounter{bbx:relatedtotal}{0}% \def\do##1{% \entrydata{##1}{% - \ifrelatedloop + \ifrelatedloop% {}% {\stepcounter{bbx:relatedtotal}% \gappto{\bbx@tempa}{##1,}}}}% @@ -4142,7 +5171,13 @@ bibliography style] \def\do{% \stepcounter{bbx:relatedcount}% \ifnumgreater{\value{bbx:relatedcount}}{1}% - {\printtext{\relateddelim}}% + {\ifcsundef{relateddelim\strfield{relatedtype}}% + {\printunit{\relateddelim}}% + {\expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\printunit + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter{% + \csuse{relateddelim\strfield{relatedtype}}}}}% {}}% \ifbibmacroundef{related:\strfield{relatedtype}}% {\appto{\do}{\usebibmacro{related:default}}}% @@ -4176,4 +5211,270 @@ bibliography style] {}% \usebibmacro{endrelated}}}% +\NewBibliographyString{% + afterwordto,% + broadcast,% + by,% + bychoreographer,% + bycompileraf,% + bycompileran,% + bycompileranaf,% + bycompileranfo,% + bycompileranin,% + bycompilerco,% + bycompilercoaf,% + bycompilercofo,% + bycompilercoin,% + bycompilerfo,% + bycompilerin,% + byconductor,% + bydirector,% + byeditoralt,% + byeditorcp,% + byeditorcpaf,% + byeditorcpan,% + byeditorcpanaf,% + byeditorcpanfo,% + byeditorcpanin,% + byeditorcpco,% + byeditorcpcoaf,% + byeditorcpcofo,% + byeditorcpcoin,% + byeditorcpfo,% + byeditorcpin,% + byeditortrcp,% + byeditortrcpaf,% + byeditortrcpan,% + byeditortrcpanaf,% + byeditortrcpanfo,% + byeditortrcpanin,% + byeditortrcpco,% + byeditortrcpcoaf,% + byeditortrcpcofo,% + byeditortrcpcoin,% + byeditortrcpfo,% + byeditortrcpin,% + bynone,% + byproducer,% + bytranslatorcp,% + bytranslatorcpaf,% + bytranslatorcpan,% + bytranslatorcpanaf,% + bytranslatorcpanfo,% + bytranslatorcpanin,% + bytranslatorcpco,% + bytranslatorcpcoaf,% + bytranslatorcpcofo,% + bytranslatorcpcoin,% + bytranslatorcpfo,% + bytranslatorcpin,% + canadasection,% + canadasections,% + cbyannotator,% + cbyauthor,% + cbychoreographer,% + cbycollaborator,% + cbycommentator,% + cbycompiler,% + cbycompileraf,% + cbycompileran,% + cbycompileranaf,% + cbycompileranfo,% + cbycompileranin,% + cbycompilerco,% + cbycompilercoaf,% + cbycompilercofo,% + cbycompilercoin,% + cbycompilerfo,% + cbycompilerin,% + cbyconductor,% + cbycontinuator,% + cbydirector,% + cbyeditor,% + cbyeditoraf,% + cbyeditoralt,% + cbyeditoran,% + cbyeditoranaf,% + cbyeditoranfo,% + cbyeditoranin,% + cbyeditorco,% + cbyeditorcoaf,% + cbyeditorcofo,% + cbyeditorcoin,% + cbyeditorcp,% + cbyeditorcpaf,% + cbyeditorcpan,% + cbyeditorcpanaf,% + cbyeditorcpanfo,% + cbyeditorcpanin,% + cbyeditorcpco,% + cbyeditorcpcoaf,% + cbyeditorcpcofo,% + cbyeditorcpcoin,% + cbyeditorcpfo,% + cbyeditorcpin,% + cbyeditorfo,% + cbyeditorin,% + cbyeditortr,% + cbyeditortraf,% + cbyeditortran,% + cbyeditortranaf,% + cbyeditortranfo,% + cbyeditortranin,% + cbyeditortrco,% + cbyeditortrcoaf,% + cbyeditortrcofo,% + cbyeditortrcoin,% + cbyeditortrcp,% + cbyeditortrcpaf,% + cbyeditortrcpan,% + cbyeditortrcpanaf,% + cbyeditortrcpanfo,% + cbyeditortrcpanin,% + cbyeditortrcpco,% + cbyeditortrcpcoaf,% + cbyeditortrcpcofo,% + cbyeditortrcpcoin,% + cbyeditortrcpfo,% + cbyeditortrcpin,% + cbyeditortrfo,% + cbyeditortrin,% + cbyfounder,% + cbynone,% + cbyorganizer,% + cbyproducer,% + cbyredactor,% + cbytranslator,% + cbytranslatoraf,% + cbytranslatoran,% + cbytranslatoranaf,% + cbytranslatoranfo,% + cbytranslatoranin,% + cbytranslatorco,% + cbytranslatorcoaf,% + cbytranslatorcofo,% + cbytranslatorcoin,% + cbytranslatorcp,% + cbytranslatorcpaf,% + cbytranslatorcpan,% + cbytranslatorcpanaf,% + cbytranslatorcpanfo,% + cbytranslatorcpanin,% + cbytranslatorcpco,% + cbytranslatorcpcoaf,% + cbytranslatorcpcofo,% + cbytranslatorcpcoin,% + cbytranslatorcpfo,% + cbytranslatorcpin,% + cbytranslatorfo,% + cbytranslatorin,% + century,% + cfromamerican,% + cfrombrazilian,% + cfrombulgarian,% + cfromcatalan,% + cfromcroatian,% + cfromczech,% + cfromdanish,% + cfromdutch,% + cfromenglish,% + cfromestonian,% + cfromfinnish,% + cfromfrench,% + cfromgalician,% + cfromgerman,% + cfromgreek,% + cfromitalian,% + cfromjapanese,% + cfromlatin,% + cfromnorwegian,% + cfrompolish,% + cfromportuguese,% + cfromrussian,% + cfromslovak,% + cfromslovene,% + cfromspanish,% + cfromswedish,% + cfromukrainian,% + choreographer,% + choreographers,% + commenton,% + conductor,% + conductors,% + decade,% + director,% + directors,% + discrecorded,% + edamerican,% + edbrazilian,% + edbulgarian,% + edcatalan,% + edcroatian,% + edczech,% + eddanish,% + eddutch,% + edenglish,% + edestonian,% + edfinnish,% + edfrench,% + edgalician,% + edgerman,% + edgreek,% + editalian,% + editorcompiler,% + editorcompilers,% + editortranscompiler,% + editortranscompilers,% + editortranslator,% + editortranslators,% + edjapanese,% + edlatin,% + ednorwegian,% + edpolish,% + edportuguese,% + edrussian,% + edslovak,% + edslovene,% + edspanish,% + edswedish,% + edukrainian,% + forewordto,% + hereinafter,% + inlang,% + introductionto,% + none,% + nones,% + note,% + numbers,% + of,% + on,% + origedition,% + origpub,% + origpublin,% + origpubyear,% + origpubyearalt,% + origreleaseyear,% + origshownyear,% + partvolume,% + patentfiled,% + patentissued,% + preface,% + printed,% + producer,% + producers,% + pseudonym,% + review,% + revisededition,% + selfpublished,% + songrecorded,% + subsection,% + subsections,% + subverbis,% + subverbo,% + supranote,% + track,% + transcompiler,% + transcompilers% + }% + \endinput |