% Last modified: Wed 03 May 2023 06:54:38 PM CDT

% Permission is granted to copy, distribute and/or modify this
% software under the terms of the LaTeX Project Public License (LPPL),
% version 1.3.
%
% The LPPL maintenance status of this software is 'author-maintained'.
%
% This software is provided 'as is', without warranty of any kind,
% either expressed or implied, including, but not limited to, the
% implied warranties of merchantability and fitness for a particular
% purpose.

\ProvidesFile{windycity.cbx}[2023/05/03 Windy City citation style for
  biblatex]
\@ifpackagelater{biblatex}{2019/08/17}
  {}
  {\PackageError{biblatex}
     {Outdated 'biblatex' package}
     {Windy City is for biblatex v3.13 and above.\MessageBreak
      You are using: '\csuse{ver@biblatex.sty}'.\MessageBreak
      This is a fatal error. I'm aborting now.}%
   \endinput}%

%%%%%%%%%%%%%%
%%  Basics  %%
%%%%%%%%%%%%%%

\AtEveryCite{%
  \global\togglefalse{bibliography}%
  \global\togglefalse{cbx:first}%
  \global\togglefalse{cbx:idem}%
  \global\togglefalse{ibid:loccit}%
  \global\togglefalse{multicite}%
  \AtEveryItem}%
\AtEveryMultiCite{\toggletrue{multicite}}%
\DeclareAutoPunctuation{.,;:!?}
\DeclareCitePunctuationPosition{cite}{r}
\InitializeCitationStyle{\let\crossreflist\empty}%

\renewcommand{\bibfootnotewrapper}[1]{%
  \clearfield{postpunct}%
  \bibsentence#1}%
\renewcommand{\bibendnotewrapper}[1]{%
  \clearfield{postpunct}%
  \bibsentence#1}%

% Protect commas against abbreviation dots and terminal punctuation.
% Note '\addspace'. Using '\space' there causes problems.

\renewcommand*{\newunitpunct}{\ifterm{,\addspace}{\addcomma\space}}%

% Prevent errant space after a colon.

\renewcommand*{\multicitedelim}{\setunit{\addsemicolon\space}}%

%%%%%%%%%%%%%%%%%%%%%%%%%
%%  Citation Commands  %%
%%%%%%%%%%%%%%%%%%%%%%%%%

\DeclareCiteCommand{\cite}
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{cite:postnote}}%

\DeclareCiteCommand*{\cite}
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \toggletrue{noauth}%
   \usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{cite:postnote}}%

\DeclareCiteCommand{\footcite}[\mkbibfootnote]
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{cite:postnote}}%

\DeclareCiteCommand*{\footcite}[\mkbibfootnote]
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \toggletrue{noauth}%
   \usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{cite:postnote}}%

\DeclareCiteCommand{\footfullcite}[\mkbibfootnote]
  {\usebibmacro{prenote}}%
  {\citereset
   \usebibmacro{citeindex}%
   \usebibmacro{cite:new}}%
  {\multicitedelim}%
  {\usebibmacro{cite:postnote}}%

\DeclareCiteCommand{\fullcite}
  {\usebibmacro{prenote}}%
  {\citereset
   \usebibmacro{citeindex}%
   \usebibmacro{cite:new}}%
  {\multicitedelim}%
  {\usebibmacro{cite:postnote}}%

\DeclareCiteCommand{\parencite}[\mkbibparens]
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \usebibmacro{parencite}}%
  {\multicitedelim}%
  {\usebibmacro{postnote}}%

\DeclareCiteCommand*{\parencite}[\mkbibparens]
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \toggletrue{noauth}%
   \usebibmacro{parencite}}%
  {\multicitedelim}%
  {\usebibmacro{postnote}}%

\DeclareCiteCommand{\smartcite}[\iffootnote{}{\mkbibfootnote}]
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{cite:postnote}}%

\DeclareCiteCommand*{\smartcite}[\iffootnote{}{\mkbibfootnote}]
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \toggletrue{noauth}%
   \usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{cite:postnote}}%

\DeclareMultiCiteCommand{\smartcites}[\iffootnote{}\mkbibfootnote]
  {\smartcite}{\multicitedelim}

\DeclareCiteCommand{\textcite}
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{postnote}}%

\DeclareCiteCommand*{\textcite}
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \toggletrue{noauth}%
   \usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{postnote}}%

\DeclareCiteCommand{\idemcite}
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \toggletrue{cbx:idem}%
   \usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{cite:postnote}}%

\DeclareCiteCommand{\footidemcite}[\mkbibfootnote]
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \toggletrue{cbx:idem}%
   \usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{cite:postnote}}%

\DeclareCiteCommand{\parenauth}[\mkbibparens]
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \toggletrue{cbx:skipdate}%
   \usebibmacro{parencite}}%
  {\multicitedelim}%
  {\usebibmacro{postnote}}%

\DeclareMultiCiteCommand{\idemcites}{\idemcite}{\multicitedelim}%
\DeclareMultiCiteCommand{\footidemcites}[\mkbibfootnote]{\footidemcite}{\multicitedelim}%
\DeclareMultiCiteCommand{\parenauths}[\mkbibparens]{\parenauth}{\multicitedelim}%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%  Parenthetical Citations  %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newbibmacro*{parencite}{%
  \ifboolexpr{ test \ifciteibid
               and not test \iffirstonpage}
    {\usebibmacro{test:collection}%
     \iffieldundef{postnote}
       {\printtext[bibhyperref]{%
          \usebibmacro{parencite:date}%
          \usebibmacro{cite:volume}}}% needs '%'
       {}}
    {\usebibmacro{test:collection}%
     \usebibmacro{parencite:crossref}%
     \usebibmacro{parencite:multicite}}}

\newbibmacro*{parencite:date}{%
  \iftoggle{cbx:skipdate}
    {}
    {\ifboolexpr{ test {\ifentrytype{online}}
                  and test {\iffieldundef{year}}}
       {\newunit
        \usebibmacro{pubstate}{}}%
       {\usebibmacro{parencite:origyear}%
        \iffieldnums{labelyear}
          {}% needs '%'
          {\newunit}%
        \usebibmacro{labeldate+endyear}%
        \printfield{extradate}}}}

\newbibmacro*{parencite:origyear}{%
  \iffieldundef{origyear}
    {}
    {\printfield[brackets]{origyear}%
     \space}}%

\newbibmacro*{parencite:crossref}{%
  \ifboolexpr{ test {\ifentrytype{book}}
               or test {\ifentrytype{collection}}
               or test {\ifentrytype{incollection}}
               or test {\ifentrytype{inbook}}
               or test {\ifentrytype{letter}}}
    {\usebibmacro{test:crossref}}%
    {}}

\newbibmacro*{parencite:multicite}{%
  \ifboolexpr{ test {\iffieldequals{namehash}{\bbx@lasthash}}
               and togl {multicite}}
   {\iffieldundef{postnote}
      {\newunit}%
      {}% needs '%'
    \printtext[bibhyperref]{%
      \usebibmacro{parencite:date}%
      \usebibmacro{cite:volume}}}% needs '%'
   {\printtext[bibhyperref]{%
      \usebibmacro{parencite:new}%
      \usebibmacro{cite:volume}}}}% needs '%'

\newbibmacro*{parencite:new}{%
  \iffieldundef{shorthand}
    {\usebibmacro{parencite:auth+title}}%
    {\usebibmacro{test:format}{shorthand}{field}}%
  \setunit{\addspace}% not '\setunit{\space}'
  \usebibmacro{parencite:date}}%

\newbibmacro*{parencite:auth+title}{%
  \iftoggle{noauth}
    {}
    {\ifboolexpr{ test {\ifnameundef{labelname}}
                  or test {\iffieldundef{labelyear}}}
       {\printfield[citetitle]{labeltitle}}%
       {\global\toggletrue{cbx:short}%
        \renewcommand*{\cbx@deflabel}{labelname}%
        \clearfield{handle}%
        \clearfield{nameaddon}%
        \ifboolexpr{ test {\ifnameundef{afterword}}
                     and test {\ifnameundef{foreword}}
                     and test {\ifnameundef{introduction}}
                     and test {\ifnameundef{preface}}}
          {\usebibmacro{collection+author+etc}}%
          {\usebibmacro{supplement}}}}}

%%%%%%%%%%%%%%%%%%%%%%%%%%
%%  Citations in Notes  %%
%%%%%%%%%%%%%%%%%%%%%%%%%%

\newbibmacro*{cite}{%
  \ifciteseen
    {\usebibmacro{test:collection}%
     \renewcommand*{\cbx@deflabel}{labelname}%
     \iftoggle{shortlinks}
       {\usebibmacro{cite:seen}}%
       {\printtext[bibhyperref]{\usebibmacro{cite:seen}}}}
    {\iftoggle{shortlinks}
       {\usebibmacro{cite:new}}%
       {\printtext[bibhyperref]{\usebibmacro{cite:new}}}}% needs '%'
  \usebibmacro{savefields}}%

\newbibmacro*{cite:seen}{%
  \usebibmacro{test:loccit}%
  \iffieldundef{shorthand}
    {\ifboolexpr{ test \ifciteibid
                  and togl {short}
                  and not test \iffirstonpage}
       {\usebibmacro{cite:ibid}}%
       {\usebibmacro{cite:short}}}
    {\iftoggle{shortlinks}
       {\printtext[bibhyperref]{%
          \usebibmacro{test:format}{shorthand}{field}%
          \usebibmacro{cite:volume}}}
       {\usebibmacro{test:format}{shorthand}{field}%
        \usebibmacro{cite:volume}}}}

\newbibmacro*{test:loccit}{%
  \ifboolexpr{ togl {ibidpage}
               and test \ifciteibid
               and test \ifloccit
               and not test \iffirstonpage}
    {\global\toggletrue{ibid:loccit}}%
    {}}

\newbibmacro*{cite:ibid}{%
  \iftoggle{ibid}
    {\iftoggle{shortlinks}
       {\printtext[bibhyperref]{%
          \bibcpstring{ibidem}%
          \usebibmacro{cite:volume}}}
       {\bibcpstring{ibidem}%
        \usebibmacro{cite:volume}}}
    {\global\toggletrue{cbx:short}%
     \ifentrytype{review}
       {\usebibmacro{ibid:review}}%
       {\iftoggle{shortlinks}
          {\printtext[bibhyperref]{%
             \usebibmacro{cite:author+title+etc}}}
          {\usebibmacro{cite:author+title+etc}}}}}

\newbibmacro*{ibid:review}{%
  \ifnameundef{author}
    {\bibcpstring{reviewnoauth}%
     \space
     \usebibmacro{shorttitle+crossref}{}}%
    {\usebibmacro{author+bookauthor+etc}}%
  \usebibmacro{cite:volume}}%

\newbibmacro*{cite:author+title+etc}{%
  \usebibmacro{author+bookauthor+etc}%
  \iftoggle{noauth}
    {\usebibmacro{shorttitle+crossref}{}}%
    {}% needs '%'
  \usebibmacro{cite:volume}}%

\newbibmacro*{cite:short}{%
  \global\toggletrue{cbx:short}%
  \usebibmacro{test:multicite}%
  \ifentrytype{review}
    {\usebibmacro{short:review}}%
    {\usebibmacro{collection+author+etc}%
     \usebibmacro{shorttitle+crossref}{}%
     \ifboolexpr{ togl {ibidpage}
                  and test \ifloccit
                  and not test \iffirstonpage}
       {\global\toggletrue{ibid:loccit}}%
       {\usebibmacro{cite:volume}}}}

\newbibmacro*{test:multicite}{%
  \ifboolexpr{ test {\iffieldequals{namehash}{\bbx@lasthash}}
               and togl {multicite}
               and togl {short}}
   {\toggletrue{noauth}}%
   {}}

\newbibmacro*{short:review}{%
  \ifboolexpr{ test {\ifnameundef{author}}
               and test {\iffieldundef{title}}}
    {\bibcpstring{reviewnoauth}%
     \setunit{\space}%
     \usebibmacro{shorttitle}{book}}%
    {\ifnameundef{author}
       {\usebibmacro{shorttitle+crossref}{}}%
       {\iffieldundef{title}
          {\usebibmacro{author+bookauthor+etc}%
           \bibstring{review}%
           \setunit{\space}%
           \usebibmacro{shorttitle}{book}}%
          {\usebibmacro{author+bookauthor+etc}%
           \usebibmacro{shorttitle+crossref}{}}}}}

\newbibmacro*{collection+author+etc}{%
  \ifboolexpr{ test {\ifentrytype{unpublished}}
               and test {\iffieldundef{title}}
               and not test {\iffieldundef{collection}}}
    {\usebibmacro{unpublished:collection}}%
    {\usebibmacro{author+bookauthor+etc}}}

\newbibmacro*{cite:volume}{%
  \iftoggle{ibid:loccit}
    {}
    {\usebibmacro{cite:punctuation}%
     \iftoggle{swapvol}
       {\ifboolexpr{ togl {collection:bk}
                     or togl {collection:ib}}
          {\usebibmacro{volume+page}}%
          {}}
       {}}}

\newbibmacro*{cite:punctuation}{%
  \iffieldstart{postnote}{;}
    {}
    {\newunit}}%

\newbibmacro*{volume+page}{%
  \iffieldundef{volume}
    {}
    {\iffieldpages{postnote}
       {\printfield[noformat]{volume}%
        \addcolon}%
       {\printfield{volume}}}}

\newbibmacro*{cite:new}{%
  \global\toggletrue{cbx:first}%
  \usebibmacro{idem+short+multicite}%
  \iftoggle{shortfirst}
    {\usebibmacro{cite:short}}%
    {\printtext{%
       \usedriver
         {\DeclareNameAlias{sortname}{default}}%
         {cite:\thefield{entrytype}}}}}

% By default, idemtracker is 'false'. With idemtracker set to 'true'
% (or to some value that implies 'true') the test below will print
% 'labelname' if it matches that of the previous citation.

\newbibmacro*{idem+short+multicite}{%
  \ifboolexpr{ test {\ifciteidem}
               or togl {cbx:idem}
               or togl {shortfirst}}
    {\renewcommand*{\cbx@deflabel}{labelname}}%
    {\ifboolexpr{ test {\iffieldequals{namehash}{\bbx@lasthash}}
                  and togl {multicite}}
       {\renewcommand*{\cbx@deflabel}{labelname}}%
       {\renewcommand*{\cbx@deflabel}{default}}}}

% Checking for 'title' below helps if you cross-reference volumes to a
% collection with entries containing just 'volume' and 'crossref'
% fields. Perhaps justifiable in very rare cases.

\newbibmacro*{test:crossref}{%
  \ifboolexpr{ test {\iffieldundef{crossref}}
               or test {\iffieldundef{title}}}
    {}
    {\xifinlist{\thefield{crossref}}{\crossreflist}
       {\toggletrue{cbx:collection}%
        \stepcounter{\thefield{crossref}}}
       {\listxadd{\crossreflist}{\thefield{crossref}}%
        \ifcsdef{c@\thefield{crossref}}
          {\setcounter{\thefield{crossref}}{0}}%
          {\newcounter{\thefield{crossref}}}}}}

\newbibmacro*{savefields}{%
  \iffieldundef{crossref}
    {\let\cbx@keyhash\empty}%
    {\savefield{crossref}{\cbx@keyhash}}}

% See CMOS, 17th ed., 14.174, 14.177, 14.185, and 14.188.

\newbibmacro*{colon+comma+etc}{%
  \ifboolexpr{ test {\iffieldundef{pages}}
               and test {\iffieldundef{postnote}}}
    {}
    {\ifboolexpr{ test {\iffieldundef{year}}
                  and test {\iffieldundef{month}}
                  and test {\iffieldundef{issue}}}
       {\setunit{\addcolon}}%
       {\ifboolexpr{ test {\iffieldundef{number}}
                     and test {\iffieldundef{volume}}}
          {\newunit}%
          {\setunit{\addcolon\space}}}}}

\newbibmacro*{reference:howpublished+etc}{%
  \ifboolexpr{ test {\iffieldundef{howpublished}}
               and test {\iffieldundef{year}}}
    {}
    {\setunit{\addspace}%
     \iffieldundef{howpublished}
       {\printtext[parens]{\printfield{year}}}
       {\global\togglefalse{cbx:first}%
        \printtext[parens]{%
          \printfield{howpublished}%
          \newunit
          \printfield{version}%
          \newunit
          \printfield{year}}}}}

%%%%%%%%%%%%%%%%
%%  Postnote  %%
%%%%%%%%%%%%%%%%

\newbibmacro*{cite:postnote}{%
  \usebibmacro{postnote+etc}%
  \usebibmacro{postpunct+etc}}%

% In this context, '\ifloccit' is always true. Run it earlier and
% record the state with the 'loccit' toggle.

\newbibmacro*{postnote+etc}{%
  \iftoggle{ibid:loccit}
    {}
    {\iftoggle{cbx:first}
       {\usebibmacro{postnote:first}%
        \usebibmacro{shorthand+intro}}%
       {\usebibmacro{postnote}}}}

\newbibmacro*{postnote:first}{%
  \ifboolexpr{ test {\iffieldundef{postnote}}
               and test {\iffieldundef{pages}}
               and test {\iffieldundef{url}}}
    {\usebibmacro{unpublished:note+etc}%
     \usebibmacro{doi+url+etc}}%
    {\usebibmacro{cite:pages}%
     \usebibmacro{postnote}%
     \usebibmacro{unpublished:note+etc}%
     \usebibmacro{doi+url+etc}}}

% If the postnote is empty, print the page ranges of journal and
% review articles. See CMOS, 17th ed., 14.153, 14.167, and 14.174. As
% for incollection and inbook entries, 14.106 seems to suggest the
% same, but the example in 14.30 suggests otherwise, while the
% examples in 14.108 don't help. For magazines, CMOS is clear that the
% range can be left out. To do so, simply omit it from your
% bibliography database.

\newbibmacro*{cite:pages}{%
  \ifboolexpr{ test {\iffieldundef{pages}}
               or togl {nopages}}
    {}
    {\ifboolexpr{ test {\ifentrytype{article}}
                  or test {\ifentrytype{review}}}
       {\iffieldundef{postnote}
          {\iftoggle{shortlinks}
             {\printfield{pages}}%
             {\printtext[bibhyperref]{\printfield{pages}}}}
          {}}
       {}}}

\renewbibmacro*{postnote}{%
  \iffieldundef{postnote}
    {}
    {\iftoggle{shortlinks}
       {\printfield{postnote}}%
       {\printtext[bibhyperref]{\printfield{postnote}}}}}

\newbibmacro*{shorthand+intro}{%
  \iffieldundef{shorthand}
    {}
    {\iffieldundef{shorthandintro}
       {\setunit{\addspace}%
        \printtext[parens]{%
          \bibstring{citedas}\space
          \usebibmacro{test:format}{shorthand}{field}}}
       {\setunit{\addspace}%
        \printfield{shorthandintro}}}}

\newbibmacro*{postpunct+etc}{%
  \iflastcitekey
    {\iffieldundef{postpunct}
       {\addperiod}%
       {}}
    {}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%  Bibliography Drivers for Notes  %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\DeclareBibliographyDriver{cite:article}{%
  \usebibmacro{newauth}%
  \usebibmacro{author+title+etc}%
  \usebibmacro{articles}%
  \usebibmacro{colon+comma+etc}}%

\DeclareBibliographyDriver{cite:artwork}{%
  \usebibmacro{bibindex}%
  \usebibmacro{artworks}}%

\DeclareBibliographyDriver{cite:book}{%
  \usebibmacro{test:crossref}%
  \iftoggle{cbx:collection}
    {\usebibmacro{author+incollection+etc}%
     \usebibmacro{crossref+entrydata}}%
    {\usebibmacro{author+collection+etc}%
     \usebibmacro{cite:punctuation}%
     \usebibmacro{volume+page}}}

\DeclareBibliographyDriver{cite:incollection}{%
  \ifentrytype{letter}
    {\toggletrue{noauth}}%
    {}% needs '%'
  \usebibmacro{test:crossref}%
  \iftoggle{cbx:collection}
    {\usebibmacro{author+incollection+etc}%
     \usebibmacro{crossref+entrydata}}%
    {\usebibmacro{author+incollection+etc}%
     \usebibmacro{incollections}%
     \usebibmacro{cite:punctuation}%
     \usebibmacro{volume+page}}}

\DeclareBibliographyDriver{cite:misc}{%
  \usebibmacro{author+bookauthor+etc}%
  \usebibmacro{title+titleaddon}{}%
  \newunit
  \printfield{usera}%
  \newunit}%

\DeclareBibliographyDriver{cite:online}{%
  \usebibmacro{newauth}%
  \usebibmacro{author+title+etc}%
  \setunit*{\newunitpunct}% needs '*'
  \usebibmacro{websites}%
  \usebibmacro{issue+month+etc}{parens}%
  \newunit}%

\DeclareBibliographyDriver{cite:patent}{%
  \usebibmacro{author+title+etc}%
  \newunit
  \printfield{number}%
  \newunit}%

\DeclareBibliographyDriver{cite:reference}{%
  \iftoggle{newauth}
    {\usebibmacro{author+bookauthor+etc}%
     \clearname{author}}%
    {\printlist{organization}}%
  \usebibmacro{edition}{}%
  \usebibmacro{reference:howpublished+etc}%
  \newunit
  \bibstring{subverbo}\space
  \usebibmacro{title+titleaddon}{}%
  \usebibmacro{byauthor}}%

\DeclareBibliographyDriver{cite:review}{%
  \usebibmacro{newauth}%
  \usebibmacro{reviews}%
  \usebibmacro{articles}%
  \usebibmacro{colon+comma+etc}}%

\DeclareBibliographyDriver{cite:standard}{%
  \toggletrue{noauth}%
  \usebibmacro{standards}%
  \usebibmacro{cite:punctuation}%
  \usebibmacro{volume+page}}%

\DeclareBibliographyDriver{cite:thesis}{%
  \usebibmacro{author+title+etc}%
  \setunit{\addspace}% not '\setunit{\space}'
  \printtext[parens]{%
    \usebibmacro{thesis:type+pubstate}%
    \usebibmacro{inst+loc+date}}%
  \newunit}%

\DeclareBibliographyDriver{cite:unpublished}{%
  \iffieldundef{collection}
    {\usebibmacro{author+title+etc}%
     \setunit{\addspace}% not '\setunit{\space}'
     \printtext[parens]{%
       \iffieldundef{type}
         {\usebibmacro{pubstate}{}}%
         {\printfield{type}%
          \setunit{\addcomma\space}}%
       \usebibmacro{unpublished:series}%
       \usebibmacro{inst+loc+date}}}
    {\usebibmacro{collection+author+etc}%
     \iffieldundef{title}
       {}
       {\usebibmacro{title+titleaddon}{}%
        \setunit{\addcomma\space}%
        \iffieldundef{year}
          {\printlabeldate}% for 'n.d.'
          {\printdate
           \global\clearfield{year}}% needs '\global'
        \newunit
        \usebibmacro{unpublished:collection}}}% needs '%'
  \newunit}%

\endinput
