% This is a biblatex citation style file, originally adapted from % Lehman's authoryear-comp.cbx. It is heavily modified, and contains % the common code for providing inline citations (and a reference % list) for the two author-date styles of the Chicago Manual of Style, % 17th edition. \ProvidesFile{chicago-dates-common.cbx}[2024/04/15 v 3.20 biblatex citation style] %%%% Biblatex initialization + Chicago options + Toggles %%%% \newbool{cbx:parens} \newbool{cms:bracket} \newbool{cms:extraparens} \newbool{cms:comma} \newbool{cms:atcite} \newbool{cms:tcit} \newbool{cms:postsh} % Here we provide a slightly improved \if@cms@capital replacement % using expl3 facilities, and also backport a patch for a bug in % (older versions of) expl3's case-changing code. \ifdef{\ExplSyntaxOff}{}{\RequirePackage{xparse}\RequirePackage{expl3}}% \ExplSyntaxOn% \NewDocumentCommand \IfCMSFieldInitCS {m} { \regex_match:nnTF {\A(?:\c{citeincite(?:f|s){0,2}}|\cM.)} {#1} {\use_i:nn} {\use_ii:nn} } \cs_if_exist:NTF \__text_change_case_switch_titleonly:nnNnnnn {} {\cs_new:Npn \__text_change_case_switch_titleonly:nnNnnnn #1#2#3#4#5#6#7 { \__text_change_case_store:n {#7} \__text_change_case_break:w } } \ExplSyntaxOff \providecommand*{\mkibid}[1]{#1} \providetoggle{cms@inlineibid} \providetoggle{cms@origlabel} \providetoggle{cms@bothlabelold} \providetoggle{cms@bothlabelnew} \providetoggle{cms@fulldate} \providetoggle{cms@switchdates} \providetoggle{cms@los} \providetoggle{cms@avdate} \providetoggle{cms@ordate} \providetoggle{cms@nodates} \providetoggle{cms@bc}% Attempt to provide correct dateera handling \providetoggle{cms@alwaysrange}% Turns off decade and century handling \providetoggle{cms@decaderange}% Only turns off decade handling \providetoggle{cms@centuryrange}% Only turns off century handling \providetoggle{cms@nodatebrackets}% For brackets in uncertain & circa \providetoggle{cms@noyearbrackets}% \providetoggle{cms@authorparens} \providetoggle{cms@strippunct} \providetoggle{cms@postspace} \providetoggle{cms@modpostnote} \providetoggle{cms@ukord} \providetoggle{cms@fullnote}% For the legal entry types \providetoggle{cms@shortnote}% Ditto \providetoggle{cms@url}% These are for the field-exclusion options \providetoggle{cms@urltime}% 17th ed. \providetoggle{cms@doi} \providetoggle{cms@doionly} \providetoggle{cms@doinodate} \providetoggle{cms@eprint} \providetoggle{cms@isbn} \providetoggle{cms@numbermonth} \providetoggle{cms@bookpages} \providetoggle{cms@shser} \providetoggle{cms@addendum} \providetoggle{cms@hidevolumes}% Modify Volume fix \providetoggle{cms@notitle}% For classical short notes \providetoggle{cms@comprange} \providetoggle{cms@compyears} \providetoggle{cms@jrcomma}% Comma after Jr./Sr. \providetoggle{cms@strict} \providetoggle{cms@headlessnote}% Keep \providetoggle{cms@noibid}% Keep \providetoggle{cms@namedash} \providetoggle{cms@nona} \providetoggle{cms@subseqnona} \providetoggle{cms@usecompiler}% Keep \providetoggle{cms@origpublished}% Keep \providetoggle{cms@annotation}% Keep \providetoggle{cms@cbxannote} \providetoggle{cms@postposit}% Keep \providetoggle{cms@fullshhand}% \providetoggle{cms@allshort}% For legal types \providetoggle{cms@noneshort}% Ditto \providetoggle{cms@legalnotes}% Ditto \providetoggle{cms@supranotes}% Ditto \providetoggle{cms@running@text}% For Jurisdiction entries \providetoggle{cms@vol}% \providetoggle{cms@crossref}% \providetoggle{cms@bookcrossref} \providetoggle{cms@gencite} \providetoggle{cms@genallnames} \providetoggle{cms@xrefurl} \providetoggle{cms@related} \providetoggle{cms@linkit} \providetoggle{cms@linkname} \providetoggle{cms@leaveit} \providetoggle{cms@authortitle} \providetoggle{cms@shortrelated} \AtEveryCitekey{% \iffieldundef{userc}% {}% {\nocite{\thefield{userc}}}% \global\csundef{@cmsst}}% \protected\def\cms@warning@noline#1{% \begingroup \blx@safe@actives \PackageWarningNoLine{biblatex-chicago}{#1}% \endgroup}% \DeclareBibliographyOption[string]{avdate}[true]{% \ifcsdef{cms@opt@avdate@#1}% {\csuse{cms@opt@avdate@#1}}% {\blx@err@invopt{avdate=#1}{}}}% \def\cms@opt@avdate@true{% \DeclareLabeldate[music,review,standard,suppperiodical,video]% 17th ed. {\field{eventdate} \field{origdate} \field{date} \field{year}% \field{urldate} \literal{nodate}}% \toggletrue{cms@avdate}}% \def\cms@opt@avdate@false{% \togglefalse{cms@avdate}}% \DeclareBibliographyOption[string]{cmsdate}[off]{% Implement origyear as \ifcsdef{cms@global@cmsdate@#1}% labelyear. Sorting will be an issue. {\csuse{cms@global@cmsdate@#1}}% {\csuse{cms@global@cmsdate@off}\cms@warning@noline% {'cmsdate=#1' isn't a valid option.\MessageBreak The default - 'off' - has been set.\MessageBreak Please see biblatex-chicago.pdf for valid\MessageBreak option keys}}}% \def\cms@global@cmsdate@on{% \toggletrue{cms@origlabel}% \ExecuteBibliographyOptions{cmsorigdate=true}}% \def\cms@global@cmsdate@new{% \toggletrue{cms@bothlabelnew}% \ExecuteBibliographyOptions{cmsorigdate=true}}% \def\cms@global@cmsdate@old{% \toggletrue{cms@bothlabelold}% \ExecuteBibliographyOptions{cmsorigdate=true}}% \def\cms@global@cmsdate@both{% \toggletrue{cms@bothlabelold}% \ExecuteBibliographyOptions{cmsorigdate=true}}% \def\cms@global@cmsdate@full{}% \def\cms@global@cmsdate@off{}% \DeclareBibliographyOption[string]{cmsorigdate}[true]{% ? Also need new macros \ifcsdef{cms@opt@origdate@#1}% for printing dates. Worth it ? {\csuse{cms@opt@origdate@#1}}% {\blx@err@invopt{cmsorigdate=#1}{}}}% \def\cms@opt@origdate@true{% \DeclareLabeldate{\field{origdate} \field{origyear} \field{date}% \field{year} \field{eventdate} \field{urldate}% \literal{nodate}}% \DeclareLabeldate[patent]{\field{date} \field{year}% \field{eventdate} \field{origdate} \field{origyear}% \field{urldate}}% \global\toggletrue{cms@ordate}}% \def\cms@opt@origdate@false{\togglefalse{cms@ordate}}% \DeclareEntryOption[string]{cmsdate}[off]{% Trying to implement origyear as \ifcsdef{cms@opt@cmsdate@#1}% labelyear. Sorting will be an issue. {\csuse{cms@opt@cmsdate@#1}}% {\csuse{cms@opt@cmsdate@off}\cms@warning@noline% {'cmsdate=#1' isn't a valid option.\MessageBreak The default - 'off' - has been set.\MessageBreak Please see biblatex-chicago.pdf for valid\MessageBreak option keys}}}% \def\cms@opt@cmsdate@on{% \toggletrue{cms@origlabel}}% \def\cms@opt@cmsdate@new{% \toggletrue{cms@bothlabelnew}}% \def\cms@opt@cmsdate@old{% \toggletrue{cms@bothlabelold}}% \def\cms@opt@cmsdate@both{% \toggletrue{cms@bothlabelold}}% \def\cms@opt@cmsdate@full{% \toggletrue{cms@fulldate}}% \def\cms@opt@cmsdate@off{}% \DeclareBiblatexOption{global,entry}[boolean]{alwaysrange}[true]{% \settoggle{cms@alwaysrange}{#1}}% \DeclareBiblatexOption{global,entry}[boolean]{decaderange}[true]{% \settoggle{cms@decaderange}{#1}}% \DeclareBiblatexOption{global,entry}[boolean]{centuryrange}[true]{% \settoggle{cms@centuryrange}{#1}}% \DeclareBiblatexOption{global,type,entry}[boolean]{nodatebrackets}[true]{% \settoggle{cms@nodatebrackets}{#1}}% \DeclareBiblatexOption{global,type,entry}[boolean]{noyearbrackets}[true]{% \settoggle{cms@noyearbrackets}{#1}}% \DeclareBiblatexOption{global,entry}[boolean]{genallnames}[true]{% \settoggle{cms@genallnames}{#1}}% \DeclareBiblatexOption{global,type,entry}[boolean]{hypertitle}[true]{% \settoggle{cms@linkit}{#1}}% \DeclareBiblatexOption{global,type,entry}[boolean]{hypername}[true]{% \settoggle{cms@linkname}{#1}}% \DeclareBiblatexOption{global,type,entry}[boolean]{hyperall}[true]{% \settoggle{cms@linkit}{#1}\settoggle{cms@linkname}{#1}}% \DeclareBiblatexOption{global,type,entry}[string]{annotation}[true]{% \ifcsdef{cms@opt@annot@#1}% {\csuse{cms@opt@annot@#1}}% {\blx@err@invopt{annotation=#1}{}}}% \def\cms@opt@annot@true{% \toggletrue{cms@annotation}% \togglefalse{cms@cbxannote}} \def\cms@opt@annot@false{% \togglefalse{cms@annotation}% \togglefalse{cms@cbxannote}} \def\cms@opt@annot@notes{% \togglefalse{cms@annotation}% \toggletrue{cms@cbxannote}} \def\cms@opt@annot@bib{% \toggletrue{cms@annotation}% \togglefalse{cms@cbxannote}} \def\cms@opt@annot@all{% \toggletrue{cms@annotation}% \toggletrue{cms@cbxannote}} \DeclareBiblatexOption{global,type,entry}[string]{bibannotesep}[vpar]{% \ifcsdef{cms@opt@bannsep@#1}% {\csuse{cms@opt@bannsep@#1}}% {\blx@err@invopt{bibannotesep=#1}{}}} \def\cms@opt@bannsep@none{% \let\bibannotesep\@empty}% \def\cms@opt@bannsep@comma{% \def\bibannotesep{\addcomma\addspace}}% \def\cms@opt@bannsep@colon{% \def\bibannotesep{\addcolon\addspace}}% \def\cms@opt@bannsep@space{% \def\bibannotesep{\addspace}}% \def\cms@opt@bannsep@semicolon{% \def\bibannotesep{\addsemicolon\addspace}}% \def\cms@opt@bannsep@period{% \def\bibannotesep{\addperiod\addspace}}% \def\cms@opt@bannsep@par{% \def\bibannotesep{\addperiod\par\nobreak}}% \def\cms@opt@bannsep@vpar{% \def\bibannotesep{\addperiod\par\nobreak \vskip \bibitemsep}}% \def\cms@opt@bannsep@parbreak{% \def\bibannotesep{\addperiod\par}}% \def\cms@opt@bannsep@vparbreak{% \def\bibannotesep{\addperiod\par \vskip \bibitemsep}}% \DeclareBiblatexOption{global,type,entry}[string]{citeannotesep}[period]{% \ifcsdef{cms@opt@cannsep@#1}% {\csuse{cms@opt@cannsep@#1}}% {\blx@err@invopt{citeannotesep=#1}{}}} \def\cms@opt@cannsep@none{% \let\citeannotesep\@empty}% \def\cms@opt@cannsep@comma{% \def\citeannotesep{\addcomma\addspace}}% \def\cms@opt@cannsep@colon{% \def\citeannotesep{\addcolon\addspace}}% \def\cms@opt@cannsep@space{% \def\citeannotesep{\addspace}}% \def\cms@opt@cannsep@semicolon{% \def\citeannotesep{\addsemicolon\addspace}}% \def\cms@opt@cannsep@period{% \def\citeannotesep{\addperiod\addspace}}% \def\cms@opt@cannsep@par{% \def\citeannotesep{\addperiod\par\nobreak}}% \def\cms@opt@cannsep@vpar{% \def\citeannotesep{\addperiod\par\nobreak \vskip\p@}}% \def\cms@opt@cannsep@parbreak{% \def\citeannotesep{\addperiod\par}}% \def\cms@opt@cannsep@vparbreak{% \def\citeannotesep{\addperiod\par \vskip\p@}}% \DeclareBiblatexOption{global}[string]{formatbib}[max]{% \ifcsdef{cms@opt@formatbib@#1}% {\csuse{cms@opt@formatbib@#1}}% {\blx@err@invopt{formatbib=#1}{}}}% \def\cms@opt@formatbib@max{}% \def\cms@opt@formatbib@min{% \renewcommand*{\bibsetup}{% \interlinepenalty=0\relax \widowpenalty=0\relax \@clubpenalty=0\relax \clubpenalty=0\relax \brokenpenalty=0\relax \raggedbottom \frenchspacing \biburlsetup}}% \def\cms@opt@formatbib@minwo{% \patchcmd\bibsetup% {\interlinepenalty=5000\relax}% {\interlinepenalty=0\relax}{}{}}% \def\cms@opt@formatbib@annote{% \patchcmd\bibsetup% {\interlinepenalty=5000\relax}% {\interlinepenalty=0\relax}{}{}% \AtEveryBibitem{% \interlinepenalty=5000\relax}}% \def\cms@opt@formatbib@annotenp{% \AtEndPreamble{% \ifdefvoid{\cms@entrybreak}% {\patchcmd\bibsetup% {\interlinepenalty=5000\relax}% {\interlinepenalties\cmspens{3}\relax}{}{}}% {\patchcmd\bibsetup% {\interlinepenalty=5000\relax}% {\interlinepenalties\cmspens{\cms@entrybreak}\relax}{}{}}}}% \DeclareBiblatexOption{global}[integer]{entrybreak}[3]{% \IfInteger{#1}% {\numdef\cms@entrybreak{#1}}% {\numdef\cms@entrybreak{3}\cms@warning@noline% {'entrybreak=#1' isn't a valid option.\MessageBreak This option only accepts integers.\MessageBreak It has been set to the default '3'.\MessageBreak Please see biblatex-chicago.pdf for\MessageBreak more information}}} \def\cmspens@i#1{\space \ifnum#1>\@ne\number5000 \expandafter\cmspens@i \expandafter{\number\numexpr#1-\@ne\expandafter}% \else \ifnum#1>\z@\number10 \else\unspace \fi\fi} \def\cmspens#1{\space #1\cmspens@i{#1}} \DeclareBiblatexOption{global,type,entry}[boolean]{dashed}[true]{% \settoggle{cms@namedash}{#1}} \DeclareBiblatexOption{global,type,entry}[boolean]{short}[true]{% \settoggle{cms@allshort}{#1}} \DeclareBiblatexOption{global,type,entry}[boolean]{noneshort}[true]{% \settoggle{cms@noneshort}{#1}} \DeclareBibliographyOption[boolean]{legalnotes}[true]{% \global\settoggle{cms@legalnotes}{#1}} \DeclareBiblatexOption{global,entry}[boolean]{supranotes}[true]{% \settoggle{cms@supranotes}{#1}} \DeclareBibliographyOption[boolean]{cmslos}[true]{% \global\settoggle{cms@los}{#1}}% \DeclareBiblatexOption{global,type,entry}[boolean]{noibid}[true]{% \settoggle{cms@noibid}{#1}}% \DeclareBibliographyOption[boolean]{compresspages}[true]{% \global\settoggle{cms@comprange}{#1}}% \DeclareBibliographyOption[boolean]{compressyears}[true]{% \global\settoggle{cms@compyears}{#1}}% \DeclareBibliographyOption[boolean]{postnotepunct}[true]{% \global\settoggle{cms@modpostnote}{#1}}% \DeclareBiblatexOption{global,entry}[boolean]{usecompiler}[true]{% \settoggle{blx@usenamec}{#1}}% \DeclareBiblatexOption{global,type,entry}[boolean]{nodates}[true]{% \settoggle{cms@nodates}{#1}}% \DeclareBiblatexOption{global,entry}[boolean]{juniorcomma}[true]{% \settoggle{cms@jrcomma}{#1}}% \DeclareBibliographyOption[boolean]{shorthandfull}[true]{% \settoggle{cms@fullshhand}{#1}}% \DeclareBiblatexOption{global,entry}[string]{longcrossref}[false]{% \ifcsdef{cms@opt@lxref@#1}% {\csuse{cms@opt@lxref@#1}}% {\blx@err@invopt{longcrossref=#1}{}}}% \def\cms@opt@lxref@none{% \togglefalse{cms@crossref}% \togglefalse{cms@bookcrossref}}% \def\cms@opt@lxref@true{% \toggletrue{cms@crossref}}% \def\cms@opt@lxref@false{% \togglefalse{cms@crossref}}% \def\cms@opt@lxref@notes{% \togglefalse{cms@crossref}}% \def\cms@opt@lxref@bib{% \toggletrue{cms@crossref}}% \DeclareBiblatexOption{global,entry}[boolean]{booklongxref}[true]{% \ifcsdef{cms@opt@bklxref@#1}% {\csuse{cms@opt@bklxref@#1}}% {\blx@err@invopt{booklongxref=#1}{}}}% \def\cms@opt@bklxref@true{% \toggletrue{cms@bookcrossref}}% \def\cms@opt@bklxref@false{% \togglefalse{cms@bookcrossref}}% \def\cms@opt@bklxref@notes{% \togglefalse{cms@bookcrossref}}% \def\cms@opt@bklxref@bib{% \toggletrue{cms@bookcrossref}}% \DeclareBiblatexOption{global,entry}[boolean]{xrefurl}[true]{% \settoggle{cms@xrefurl}{#1}}% \DeclareBiblatexOption{global,entry}[string]{journalabbrev}[false]{% \ifcsdef{cms@opt@jtabb@#1}% {\csuse{cms@opt@jtabb@#1}}% {\csuse{cms@opt@jtabb@false}\cms@warning@noline% {'journalabbrev=#1' isn't a valid option.\MessageBreak The default - 'false' - has been set.\MessageBreak Please see biblatex-chicago.pdf for valid\MessageBreak option keys}}}% \def\cms@opt@jtabb@true{% \toggletrue{cms@citejtabb}% \toggletrue{cms@bibjtabb}}% \def\cms@opt@jtabb@false{% \togglefalse{cms@citejtabb}% \togglefalse{cms@bibjtabb}}% \def\cms@opt@jtabb@notes{% \toggletrue{cms@citejtabb}% \togglefalse{cms@bibjtabb}}% \def\cms@opt@jtabb@bib{% \togglefalse{cms@citejtabb}% \toggletrue{cms@bibjtabb}}% \DeclareBiblatexOption{global,type,entry}[boolean]{seriesabbrev}[true]{% \settoggle{cms@shser}{#1}} \DeclareBiblatexOption{global,type,entry}[boolean]{related}[true]{% \settoggle{cms@related}{#1}}% \DeclareBibliographyOption[boolean]{ordinalgb}[true]{% \settoggle{cms@ukord}{#1}}% % Controlling formatting of, and punctuation before, nameaddon fields % \DeclareBiblatexOption{global,type,entry}[string]{nameaddonformat}{% \def\cms@naformat{#1}} \DeclareBiblatexOption{global,type,entry}[string]{nameaddonsep}[space]{% \ifcsdef{cms@opt@nasep@#1}% {\csuse{cms@opt@nasep@#1}}% {\csuse{cms@opt@nasep@space}\cms@warning@noline% {'nameaddonsep=#1' is not a valid option.\MessageBreak The default - 'space' - has been set.\MessageBreak Please see biblatex-chicago.pdf for valid\MessageBreak option keys}}}% \def\cms@opt@nasep@none{% \let\nameaddonpunct\@empty}% \def\cms@opt@nasep@comma{% \def\nameaddonpunct{\addcomma\addspace}}% \def\cms@opt@nasep@colon{% \def\nameaddonpunct{\addcolon\addspace}}% \def\cms@opt@nasep@space{% \def\nameaddonpunct{\addspace}}% \def\cms@opt@nasep@semicolon{% \def\nameaddonpunct{\addsemicolon\addspace}}% \def\cms@opt@nasep@period{% \def\nameaddonpunct{\addperiod\addspace}}% % Controlling punctuation before titleaddon fields % \DeclareBiblatexOption{global,type,entry}[string]{ptitleaddon}[period]{% \ifcsdef{cms@opt@ptao@#1}% {\csuse{cms@opt@ptao@#1}}% {\csuse{cms@opt@ptao@period}\cms@warning@noline% {'ptitleaddon=#1' is not a valid option.\MessageBreak The default - 'period' - has been set.\MessageBreak Please see biblatex-chicago.pdf for valid\MessageBreak option keys}}}% \def\cms@opt@ptao@none{% \let\ptitleaddonpunct\@empty}% \def\cms@opt@ptao@comma{% \def\ptitleaddonpunct{\addcomma\addspace}}% \def\cms@opt@ptao@colon{% \def\ptitleaddonpunct{\addcolon\addspace}}% \def\cms@opt@ptao@space{% \def\ptitleaddonpunct{\addspace}}% \def\cms@opt@ptao@semicolon{% \def\ptitleaddonpunct{\addsemicolon\addspace}}% \def\cms@opt@ptao@period{% \def\ptitleaddonpunct{\newunitpunct}}% \DeclareBiblatexOption{global,type,entry}[string]{ctitleaddon}[comma]{% \ifcsdef{cms@opt@ctao@#1}% {\csuse{cms@opt@ctao@#1}}% {\csuse{cms@opt@ctao@comma}\cms@warning@noline% {'ctitleaddon=#1' is not a valid option.\MessageBreak The default - 'comma' - has been set.\MessageBreak Please see biblatex-chicago.pdf for valid\MessageBreak option keys}}}% \def\cms@opt@ctao@none{% \let\ctitleaddonpunct\@empty}% \def\cms@opt@ctao@comma{% \def\ctitleaddonpunct{\addcomma\addspace}}% \def\cms@opt@ctao@colon{% \def\ctitleaddonpunct{\addcolon\addspace}}% \def\cms@opt@ctao@space{% \def\ctitleaddonpunct{\addspace}}% \def\cms@opt@ctao@semicolon{% \def\ctitleaddonpunct{\addsemicolon\addspace}}% \def\cms@opt@ctao@period{% \def\ctitleaddonpunct{\newunitpunct}}% \DeclareBiblatexOption{global,type,entry}[string]{jtitleaddon}[space]{% \ifcsdef{cms@opt@jtao@#1}% {\csuse{cms@opt@jtao@#1}}% {\csuse{cms@opt@jtao@space}\cms@warning@noline% {'jtitleaddon=#1' is not a valid option.\MessageBreak The default - 'space' - has been set.\MessageBreak Please see biblatex-chicago.pdf for valid\MessageBreak option keys}}}% \def\cms@opt@jtao@none{% \let\jtitleaddonpunct\@empty}% \def\cms@opt@jtao@comma{% \def\jtitleaddonpunct{\addcomma\addspace}}% \def\cms@opt@jtao@colon{% \def\jtitleaddonpunct{\addcolon\addspace}}% \def\cms@opt@jtao@space{% \def\jtitleaddonpunct{\addspace}}% \def\cms@opt@jtao@semicolon{% \def\jtitleaddonpunct{\addsemicolon\addspace}}% \def\cms@opt@jtao@period{% \def\jtitleaddonpunct{\newunitpunct}}% % The field-exclusion options % \DeclareBiblatexOption{global,type,entry}[boolean]{notitle}[true]{% \settoggle{cms@notitle}{#1}% \iftoggle{cms@notitle}{\toggletrue{cms@linkname}}{}}% \DeclareBiblatexOption{global,type,entry}[boolean]{urlstamp}[true]{% \settoggle{cms@urltime}{#1}}% \DeclareBiblatexOption{global,type,entry}[boolean]{isbn}[true]{% \settoggle{cms@isbn}{#1}}% \DeclareBiblatexOption{global,type,entry}[boolean]{url}[true]{% \settoggle{cms@url}{#1}}% \DeclareBiblatexOption{global,type,entry}[string]{doi}[true]{% \ifcsdef{cms@opt@doi@#1}% {\csuse{cms@opt@doi@#1}}% {\blx@err@invopt{doi=#1}{}}}% \def\cms@opt@doi@true{% \toggletrue{cms@doi}}% \def\cms@opt@doi@false{% \togglefalse{cms@doi}}% \def\cms@opt@doi@only{% \toggletrue{cms@doionly}}% \def\cms@opt@doi@onlynd{% \toggletrue{cms@doionly}% \toggletrue{cms@doinodate}}% \DeclareBiblatexOption{global,type,entry}[boolean]{eprint}[true]{% \settoggle{cms@eprint}{#1}}% \DeclareBiblatexOption{global,type,entry}[boolean]{numbermonth}[true]{% \settoggle{cms@numbermonth}{#1}}% \DeclareBiblatexOption{global,type,entry}[boolean]{bookpages}[true]{% \settoggle{cms@bookpages}{#1}}% \DeclareBiblatexOption{global,type,entry}[boolean]{includeall}[true]{% \settoggle{cms@isbn}{#1}% \settoggle{cms@url}{#1}% \settoggle{cms@urltime}{#1}% 17th ed. \settoggle{cms@doi}{#1}% \settoggle{cms@eprint}{#1}% \settoggle{cms@numbermonth}{#1}% \settoggle{cms@bookpages}{#1}}% \DeclareBiblatexOption{global,type,entry}[boolean]{hidevolumes}[true]{% \settoggle{cms@hidevolumes}{#1}}% \DeclareBiblatexOption{global,type,entry}[string]{nameaddon}[all]{% \ifcsdef{cms@gopt@na@#1}% {\csuse{cms@gopt@na@#1}}% {\csuse{cms@gopt@na@all}\cms@warning@noline% {'nameaddon=#1' is not a valid option.\MessageBreak The default - 'all' - has been set.\MessageBreak Please see biblatex-chicago.pdf for valid\MessageBreak option keys}}}% \def\cms@gopt@na@all{}% \def\cms@gopt@na@none{% \settoggle{cms@nona}{true}}% \def\cms@gopt@na@cite{\settoggle{cms@nona}{true}}% \def\cms@gopt@na@bib{}% \def\cms@gopt@na@first{\settoggle{cms@subseqnona}{true}}% \def\cms@gopt@na@citefirst{\settoggle{cms@nona}{true}}% \def\cms@gopt@na@bibfirst{\settoggle{cms@subseqnona}{true}}% \DeclareBiblatexOption{type,entry}[boolean]{authortitle}[true]{% \settoggle{cms@authortitle}{#1}}% \ExecuteBibliographyOptions{includeall,hidevolumes,booklongxref,related,% ctitleaddon,ptitleaddon,jtitleaddon,journalabbrev=notes,legalnotes,% supranotes,dashed,bibannotesep,citeannotesep,nameaddonsep=space}% \ExecuteBibliographyOptions[standard]{useeditor=false,usenamec=false}% \ExecuteBibliographyOptions[dataset]{authortitle=true,nodates=false}% \ExecuteBibliographyOptions[misc]{nodates=false}% \ExecuteBibliographyOptions[article,review,suppperiodical]{labeltitleyear=true} \iftoggle{cms@legalnotes}% {\ExecuteBibliographyOptions[jurisdiction,legal,legislation]{skipbib}}% {}% \AtEndPreamble{% \iftoggle{cms@los}% Automatic sorting by shorthand when it appears {\DeclareSourcemap{% at the head of the entry. \maps[datatype=bibtex]{ \map{ \step[fieldsource=shorthand, final] \step[fieldset=sortname, origfieldval]}}}}% {}% \iftoggle{cms@strict}% {\let\splitfootnoterule\footnoterule \renewcommand\footnoterule{}% \advance\skip\footins 4\p@\@plus2\p@\relax \gdef\split@prev{0}% \let\pagefootnoterule\footnoterule % \def\splitfootnoterule{\kern-3\p@ \hrule \kern2.6\p@} \def\footnoterule{\relax \ifnum\split@prev=\z@ \pagefootnoterule \else \splitfootnoterule \fi \xdef\split@prev{\the\insertpenalties}% }}% {}} \DeclareLabeltitle[legislation]{% \field{shorttitle}% \field{titleaddon}% \field{title}}% %% This is an ugly kludge, only required because we need the extradate %% mechanism for authorless articles in magazines where the %% journaltitle takes the place of the author, and the labelname %% mechanism won't accept non-name fields. No other idea presenting %% itself, we use the extratitleyear mechanism in these 3 types, and %% this declaration keeps any article with an author from interfering %% with it. It means we can't simply print the labeltitle for these %% entry types. \DeclareLabeltitle[article,review,suppperiodical]{% \field{shortauthor} \field{author} \field{shorteditor} \field{namea} \field{editor} \field{nameb} \field{translator} \field{namec} \field{shortjournal} \field{journaltitle}}% \DeclareDataInheritance{collection}{suppcollection}{% \inherit{title}{title} \inherit{subtitle}{subtitle} \inherit{titleaddon}{titleaddon}} \DeclareDataInheritance{mvbook}{incollection}{% \inherit{title}{maintitle} \inherit{subtitle}{mainsubtitle} \inherit{titleaddon}{maintitleaddon} \noinherit{shorttitle} \noinherit{sorttitle} \noinherit{indextitle} \noinherit{indexsorttitle} } \DeclareDataInheritance{book}{incollection}{% \inherit{title}{booktitle} \inherit{subtitle}{booksubtitle} \inherit{titleaddon}{booktitleaddon} \noinherit{shorttitle} \noinherit{sorttitle} \noinherit{indextitle} \noinherit{indexsorttitle} } \DeclareDataInheritance{book,collection}{letter}{% \inherit{title}{booktitle} \inherit{subtitle}{booksubtitle} \inherit{titleaddon}{booktitleaddon} \noinherit{shorttitle} \noinherit{sorttitle} \noinherit{indextitle} \noinherit{indexsorttitle} } \DeclareDataInheritance{mvbook,mvcollection}{letter}{% \inherit{title}{maintitle} \inherit{subtitle}{mainsubtitle} \inherit{titleaddon}{maintitleaddon} \noinherit{shorttitle} \noinherit{sorttitle} \noinherit{indextitle} \noinherit{indexsorttitle} } \DeclareDataInheritance{audio,music,video}{audio,music,video}{% \inherit{title}{booktitle} \inherit{subtitle}{booksubtitle} \inherit{titleaddon}{booktitleaddon} \noinherit{shorttitle} \noinherit{sorttitle} \noinherit{indextitle} \noinherit{indexsorttitle} } \DeclareDataInheritance{*}{*}{% \noinherit{namea} \noinherit{nameb} \noinherit{sortyear} \noinherit{sortname} \noinherit{sorttitle} \noinherit{sorttitle} \noinherit{urlyear} \noinherit{urlmonth} \noinherit{urlday} \noinherit{urlyeardivision} \noinherit{urlhour} \noinherit{urlminute} \noinherit{doi} \noinherit{eprint} \noinherit{eprinttype} \noinherit{url}} \DeclareDataInheritance{mvbook,mvcollection,mvproceedings,mvreference}% {*}{% ??? \noinherit{year} \noinherit{month} \noinherit{day} \noinherit{yeardivision} \noinherit{endyear} \noinherit{endmonth} \noinherit{endday} \noinherit{endyeardivision} \noinherit{origyear} \noinherit{origmonth} \noinherit{origday} \noinherit{origyeardivision} \noinherit{origendyear} \noinherit{origendmonth} \noinherit{origendday} \noinherit{origendyeardivision}} % More authordate options % \DeclareExtradate{% \scope{ \field{labelyear} \field{year} } \scope{ \field{verbc} } } \DeclareSortingTemplate{cms}{% Updated to >3.7 format \sort{ \field{presort} } \sort[final]{ \field{sortkey} } \sort{ \field{sortname} \field{author} \field{namea} \field{editor} \field{nameb} \field{translator} \field{namec} \field{sorttitle} \field{journaltitle} \field{organization} \field{title} } \sort{ \field{sortyear} \field{labelyear} \field{year} \field{origyear} } \sort{ \field{sorttitle} \field{title} } \sort{ \field{endyear} \field{eventendyear} \field{origendyear} } \sort{ \field[padside=left,padwidth=4,padchar=0]{volume} \literal{0000} } } \DeclareSortExclusion{misc,online}{organization} \DeclareSortExclusion{inreference,mvreference,reference}{% author,editor,namea,nameb,namec,translator} \DeclareSortingTemplate{shortjournal}{% \sort{ \field{shortjournal} } } \DeclareSortingTemplate{shortseries}{% \sort{ \field{shortseries} } } \DeclareLabelname{\field{shortauthor} \field{author}% \field{shorteditor} \field{namea} \field{editor}% \field{nameb} \field{translator} \field{namec}}% \DeclareEntryOption[boolean]{switchdates}[true]{% \settoggle{cms@switchdates}{#1}}% \DeclareBibliographyOption[boolean]{strict}[true]{% \settoggle{cms@strict}{#1}}% \protected\def\blx@newcunit{% \iftoggle{blx@keepunit}% {}% {\global\let\blx@unitpunct\newcunitpunct \global\toggletrue{blx@unit}}}% \appto\blx@blxinit{% \let\newcunit\blx@newcunit}% \newcommand*{\newcunitpunct}{\addcomma\space} \def\mkbibcurdinal#1{% \@tempcnta0#1 \the\@tempcnta}% \@ifpackagelater{biblatex}{2011/01/04}% {}% {\PackageError{biblatex}% {Outdated 'biblatex' package}% {The Chicago style requires biblatex v1.1 or later.\MessageBreak You are using: '\csuse{ver@biblatex.sty}'.\MessageBreak This is a fatal error. I'm aborting now.}% \endinput}% % American-specific punctuation change for 16th edition % \DefineBibliographyExtras{american}{% \DeclarePunctuationPairs{comma}{*!?}} %%%% These are the macros and declarations needed to use non-default %%%% name presentations, including new name parts and different %%%% orderings of existing name parts. All of this becomes available %%%% only when a user sets the "cmsnameparts" option. Nearly all of it %%%% comes from the standard biblatex example file 93-nameparts.tex, %%%% with changes to make it possible for users to add new name %%%% treatments and also to set a new default name presentation style %%%% for their documents. \ifdefvoid{\cms@ldt@cmsnameparts}{}{% %% Wrapper for biblatex's Template declarations, allowing a chosen %% named template also to provide the default ("global") template. %%