% $Id: chicago-authordate.cbx,v 0.8.1.1 2011/02/15 17:09:04 dfussner Exp $ % This is a biblatex citation style file, adapted from Lehman's % authoryear-comp.cbx. It is heavily modified, with the intention of % providing inline citations (and a reference list) for the % author-date style of the Chicago Manual of Style, 15th edition. \ProvidesFile{chicago-authordate.cbx}[2011/02/15 v 1.2a biblatex citation style] %%%% Biblatex initialization + Chicago options + Toggles %%%% \newbool{cbx:parens} \providecommand*{\mkibid}[1]{#1} \providetoggle{cms@inlineibid} \providetoggle{cms@origlabel} \providetoggle{cms@bothlabelold} \providetoggle{cms@bothlabelnew} \providetoggle{cms@reprint} \providetoggle{cms@switchdates} \providetoggle{cms@los} \providetoggle{cms@oneyear} \providetoggle{cms@nodates} \providetoggle{cms@url}% These are for the field-exclusion options \providetoggle{cms@doi} \providetoggle{cms@isbn} \providetoggle{cms@numbermonth} \providetoggle{cms@bookpages} \providetoggle{cms@jrcomma}% Comma after Jr./Sr. \providetoggle{cms@headlessnote}% Keep \providetoggle{cms@noibid}% Keep \providetoggle{cms@usecompiler}% Keep \providetoggle{cms@origpublished}% Keep \providetoggle{cms@annotation}% Keep \providetoggle{cms@postposit}% Keep \AtEveryCitekey{% \iffieldundef{userc}% {}% {\nocite{\thefield{userc}}}% \iffieldequalstr{entrytype}{patent}% {\toggletrue{cms@origlabel}}% {}% \iffieldequalstr{pubstate}{reprint}% {\toggletrue{cms@reprint}}% {\togglefalse{cms@reprint}}}% \DeclareBibliographyOption{cmsdate}{% Trying to implement origyear as \ifcsdef{cms@opt@cmsdate@#1}% labelyear. Sorting will be an issue. {\csuse{cms@opt@cmsdate@#1}} {\blx@err@invopt{cmsdate=#1}{}}} \def\cms@opt@cmsdate@on{% \toggletrue{cms@origlabel}} \def\cms@opt@cmsdate@new{% \toggletrue{cms@bothlabelnew}} \def\cms@opt@cmsdate@old{% \toggletrue{cms@bothlabelold}} \DeclareEntryOption{cmsdate}[off]{% Trying to implement origyear as \ifcsdef{cms@opt@cmsdate@#1}% labelyear. Sorting will be an issue. {\iftoggle{cms@origlabel} {\togglefalse{cms@origlabel}% \def\@cms@tempdate{cms@origlabel}}% {\iftoggle{cms@bothlabelnew}% {\togglefalse{cms@bothlabelnew}% \def\@cms@tempdate{cms@bothlabelnew}}% {\iftoggle{cms@bothlabelold}% {\togglefalse{cms@bothlabelold}% \def\@cms@tempdate{cms@bothlabelold}}% {}}}% \csuse{cms@opt@cmsdate@#1}}% {\blx@err@invopt{cmsdate=#1}{}}} \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@off{} \DeclareBibliographyOption{annotation}[true]{% \global\toggletrue{cms@annotation}} \DeclareBibliographyOption{cmslos}[true]{% \global\settoggle{cms@los}{#1}} \DeclareBibliographyOption{noibid}[true]{% \global\toggletrue{cms@noibid}} \DeclareBibliographyOption{usecompiler}[true]{% \settoggle{cms@usecompiler}{#1}} \DeclareBibliographyOption{nodates}[true]{% \settoggle{cms@nodates}{#1}} \DeclareEntryOption{usecompiler}[true]{% \settoggle{cms@usecompiler}{#1}} \DeclareBibliographyOption{juniorcomma}[true]{% \settoggle{cms@jrcomma}{#1}} \DeclareEntryOption{juniorcomma}[true]{% \settoggle{cms@jrcomma}{#1}} % The field-exclusion options % \DeclareBibliographyOption{isbn}[true]{% \settoggle{cms@isbn}{#1}} \DeclareBibliographyOption{url}[true]{% \settoggle{cms@url}{#1}} \DeclareBibliographyOption{doi}[true]{% \settoggle{cms@doi}{#1}} \DeclareBibliographyOption{numbermonth}[true]{% \settoggle{cms@numbermonth}{#1}} \DeclareBibliographyOption{bookpages}[true]{% \settoggle{cms@bookpages}{#1}} \DeclareBibliographyOption{includeall}[true]{% \settoggle{cms@isbn}{#1}% \settoggle{cms@url}{#1}% \settoggle{cms@doi}{#1}% \settoggle{cms@numbermonth}{#1}% \settoggle{cms@bookpages}{#1}} \DeclareEntryOption{isbn}[true]{% \settoggle{cms@isbn}{#1}} \DeclareEntryOption{url}[true]{% \settoggle{cms@url}{#1}} \DeclareEntryOption{doi}[true]{% \settoggle{cms@doi}{#1}} \DeclareEntryOption{numbermonth}[true]{% \settoggle{cms@numbermonth}{#1}} \DeclareEntryOption{bookpages}[true]{% \settoggle{cms@bookpages}{#1}} \ExecuteBibliographyOptions{includeall}% % More authordate options % \DeclareEntryOption{switchdates}[true]{% \settoggle{cms@switchdates}{#1}} \DeclareBibliographyOption{strict}[true]{% \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}% }} \protected\def\blx@newcunit{% \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}{2010/08/28} {} {\PackageError{biblatex} {Outdated 'biblatex' package} {The Chicago style requires biblatex v0.9c or later.\MessageBreak You are using: '\csuse{ver@biblatex.sty}'.\MessageBreak This is a fatal error. I'm aborting now.}% \endinput} %%%% Initialize and define bibstrings %%%% %%%% Now in cms-*.lbx %%%% %%%% Macros from authoryear-comp.cbx, revised for CMS %%%% \newbibmacro*{cite:init}{% \ifnumless{\value{multicitecount}}{2} {\global\boolfalse{cbx:parens}% \global\undef\cbx@lasthash \global\undef\cbx@lastyear} {\iffieldundef{prenote} {} {\global\undef\cbx@lasthash \global\undef\cbx@lastyear}}} \newbibmacro*{cite:reinit}{% \global\undef\cbx@lasthash \global\undef\cbx@lastyear} \newbibmacro*{cite}{% \ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} {\usebibmacro{cite:ibid}}% {\iffieldequalstr{entrysubtype}{classical}% Similar to notes+bib {\iffieldundef{shorthand}% {\ifthenelse{\ifnameundef{labelname}\OR \iffieldequalstr{entrytype}{inreference}\OR \iffieldequalstr{entrytype}{reference}}% Simplified for CMS {\usebibmacro{cite:label}% \setunit{\addspace}% \usebibmacro{cite:reinit}} {\iffieldequals{namehash}{\cbx@lasthash}% {\iffieldundef{postnote}% {\setunit{\compcitedelim}}% {}% \usebibmacro{cite:label}} {\iffieldequals{namehash}{\cbx@lastyear}% {}% {\usebibmacro{cmsbracketname}% For names in [] \iffieldequalstr{entrytype}{customc}% {\newcunit}% {\setunit{\addspace}}}% \usebibmacro{cite:label}% \iffieldundef{postnote}% {\savefield{namehash}{\cbx@lasthash}}% {\savefield{namehash}{\cbx@lastyear}}}}}% {\usebibmacro{cite:shorthand+title}}} {\iffieldundef{shorthand}% {\ifthenelse{\ifnameundef{labelname}\OR \iffieldequalstr{entrytype}{inreference}\OR \iffieldequalstr{entrytype}{reference}}% Simplified for CMS {\usebibmacro{cite:label}% \setunit{\addspace}% \usebibmacro{cmscitesortdate}% \usebibmacro{cite:reinit}} {\iffieldequals{namehash}{\cbx@lasthash}% {\iffieldundef{postnote}% {\setunit{\compcitedelim}}% {}% \usebibmacro{cmscitesortdate}} {\iffieldequals{namehash}{\cbx@lastyear}% Is this right? {}% {\usebibmacro{cmsbracketname}% \setunit{\nameyeardelim}}% \usebibmacro{cmscitesortdate}% \iffieldundef{postnote}% {\savefield{namehash}{\cbx@lasthash}}% {\savefield{namehash}{\cbx@lastyear}}}}}% {\usebibmacro{cite:shorthand}}}}% \setunit{\multicitedelim}}% ??? \newbibmacro*{cmsbracketname}{% \iffieldequalstr{authortype}{anon}% {\bibleftbracket\printnames{labelname}% \bibrightbracket}% {\iffieldequalstr{authortype}{anon?}% {\bibleftbracket\printnames{labelname}?% \bibrightbracket}% {\printnames{labelname}}}} \newbibmacro*{citeyear}{% \iffieldequalstr{entrysubtype}{classical}% {\iffieldundef{shorthand}% {\usebibmacro{citeyear:noshort}}% {\iftoggle{cms@los}% {\usebibmacro{citeyear:noshort}}% {\usebibmacro{cite:shorthand+title}}}}% {\iffieldundef{shorthand}% {\usebibmacro{citeyear:noshort}}% {\iftoggle{cms@los}% {\usebibmacro{citeyear:noshort}}% {\usebibmacro{cite:shorthand}}}}% \setunit{\multicitedelim}} \newbibmacro*{citeyear:noshort}{% \iffieldequalstr{entrysubtype}{classical}% Altered for CMS {\iffieldequals{namehash}{\cbx@lasthash}% {\iffieldundef{postnote}% {\setunit{\compcitedelim}}% {}% \usebibmacro{cite:label}} {\usebibmacro{cite:label}% \iffieldundef{postnote}% {\savefield{namehash}{\cbx@lasthash}}% {}}} {\iffieldequals{namehash}{\cbx@lasthash}% {\iffieldundef{postnote}% {\setunit{\compcitedelim}}% {}% \usebibmacro{cmscitesortdate}} {\usebibmacro{cmscitesortdate}% \iffieldundef{postnote}% {\savefield{namehash}{\cbx@lasthash}}% {}}}}% \newbibmacro*{textcite}{% \iftoggle{cms@los}% {\usebibmacro{textcite:authshort}}% {\usebibmacro{textcite:citeshort}}} \newbibmacro*{textcite:authshort}{% \iffieldequals{namehash}{\cbx@lasthash} {\iffieldundef{postnote}% {\iffieldequals{namehash}{\cbx@lastyear}% {\setunit{\multicitedelim}% \global\undef\cbx@lastyear}% {\setunit{\compcitedelim}}}% {\setunit{\multicitedelim}}% \iffieldequalstr{entrysubtype}{classical}% {\usebibmacro{cite:label}}% {\usebibmacro{cmscitesortdate}}}% {\iffieldundef{shorthand} {\ifthenelse{\ifnameundef{labelname}\OR \iffieldequalstr{entrytype}{inreference}\OR \iffieldequalstr{entrytype}{reference}}% {\iffieldequalstr{entrysubtype}{classical}% {\setunit{% \global\booltrue{cbx:parens}% \addspace\bibopenparen}% \ifnumequal{\value{citecount}}{1}% {\usebibmacro{prenote}} {}% \usebibmacro{cite:label}} {\usebibmacro{cite:label}% \setunit{% \global\booltrue{cbx:parens}% \addspace\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% \usebibmacro{cmscitesortdate}}} {\printnames{labelname}% \setunit{% \global\booltrue{cbx:parens}% \addspace\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% \iffieldequalstr{entrysubtype}{classical}% {\usebibmacro{cite:label}} {\usebibmacro{cmscitesortdate}}% \savefield{namehash}{\cbx@lasthash}}} {\printfield{shorthand}% \setunit{% \global\booltrue{cbx:parens}% \addspace\bibopenparen}% \ifnumequal{\value{citecount}}{1}% {\usebibmacro{prenote}}% {}% \iffieldequalstr{entrysubtype}{classical}% {\usebibmacro{cite:label}} {\usebibmacro{cmscitesortdate}}% \savefield{namehash}{\cbx@lasthash}}}% \setunit{% \ifbool{cbx:parens}% {\bibcloseparen\global\boolfalse{cbx:parens}}% {}% \multicitedelim}} \newbibmacro*{textcite:citeshort}{% \iffieldequals{namehash}{\cbx@lasthash} {\iffieldundef{shorthand} {\iffieldundef{postnote}% {\iffieldequals{namehash}{\cbx@lastyear}% {\setunit{\multicitedelim}% \global\undef\cbx@lastyear}% {\setunit{\compcitedelim}}}% {\setunit{\multicitedelim}}% \iffieldequalstr{entrysubtype}{classical}% {\usebibmacro{cite:label}}% {\usebibmacro{cmscitesortdate}}} {\iffieldundef{postnote}% {\iffieldequals{namehash}{\cbx@lastyear}% {\setunit{\multicitedelim}% \global\undef\cbx@lastyear}% {\setunit{\compcitedelim}}}% {\setunit{\multicitedelim}}% \printtext[bibhyperref]{% \printfield{shorthand}}}}% {\ifthenelse{\ifnameundef{labelname}\OR \iffieldequalstr{entrytype}{inreference}\OR \iffieldequalstr{entrytype}{reference}}% {\iffieldundef{shorthand} {\iffieldequalstr{entrysubtype}{classical}% {\setunit{% \global\booltrue{cbx:parens}% \addspace\bibopenparen}% \ifnumequal{\value{citecount}}{1}% {\usebibmacro{prenote}} {}% \usebibmacro{cite:label}} {\usebibmacro{cite:label}% \setunit{% \global\booltrue{cbx:parens}% \addspace\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% \usebibmacro{cmscitesortdate}}} {\printtext[bibhyperref]{% \printfield{shorthand}}}} {\printnames{labelname}% \setunit{% \global\booltrue{cbx:parens}% \addspace\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% \iffieldundef{shorthand} {\iffieldequalstr{entrysubtype}{classical}% {\usebibmacro{cite:label}} {\usebibmacro{cmscitesortdate}}}% {\printtext[bibhyperref]{% \printfield{shorthand}}}% \savefield{namehash}{\cbx@lasthash}}}% \setunit{% \ifbool{cbx:parens} {\bibcloseparen\global\boolfalse{cbx:parens}} {}% \multicitedelim}} \newbibmacro*{textcite:postnote}{% \iffieldundef{postnote}% {}% {\savefield{namehash}{\cbx@lastyear}% \setunit{\postnotedelim}% \printfield{postnote}}% \ifthenelse{\value{multicitecount}=\value{multicitetotal}}% {\setunit{}% \printtext{% \ifbool{cbx:parens} {\bibcloseparen\global\boolfalse{cbx:parens}} {}}}% {\setunit{% \ifbool{cbx:parens} {\bibcloseparen\global\boolfalse{cbx:parens}} {}% \multicitedelim}}} \newbibmacro*{cite:shorthand}{% \iftoggle{cms@los}% {\iffieldequals{namehash}{\cbx@lasthash}% {\printtext[bibhyperref]{% \setunit{\compcitedelim}% \usebibmacro{cmscitesortdate}}} {\printtext[bibhyperref]{% \printfield{shorthand}% \setunit{\nameyeardelim}% \usebibmacro{cmscitesortdate}}% \savefield{namehash}{\cbx@lasthash}}}% {\printtext[bibhyperref]{\printfield{shorthand}}% \usebibmacro{cite:reinit}}} \newbibmacro*{cite:shorthand+title}{% \iftoggle{cms@los}% {\iffieldequals{namehash}{\cbx@lasthash}% {\printtext[bibhyperref]{% \setunit{\compcitedelim}% \usebibmacro{cite:label}}} {\printtext[bibhyperref]{% \printfield{shorthand}% \setunit{\nameyeardelim}% \usebibmacro{cite:label}}% \savefield{namehash}{\cbx@lasthash}}}% {\printtext[bibhyperref]{\printfield{shorthand}}% \usebibmacro{cite:reinit}}} \newbibmacro*{cite:label}{% Test this \iffieldundef{label}% {\iffieldequalstr{entrysubtype}{magazine}% Simplifies .bib creation {\printtext[bibhyperref]{\printfield[journaltitle]{journaltitle}}}% {\iffieldequalstr{entrytype}{manual}% {\printtext[bibhyperref]{\printlist{organization}}}% {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}}}% {\printtext[bibhyperref]{\printfield{label}}}} \newbibmacro*{cite:labelyear+extrayear}{% \iffieldundef{labelyear} {\ifboolexpr{ test {\iffieldequalstr{entrytype}{misc}} or test {\iffieldequalstr{entrytype}{inreference}} or test {\iffieldequalstr{entrytype}{reference}} or not togl {cms@nodates} }% {}% {\bibstring{nodate}}}% For CMS? {\printtext[bibhyperref]{% \printfield{labelyear}\setunit{}% Needed for patent type \printfield{extrayear}}}} \newbibmacro*{cmscitesortdate}{% Attempt to solve date-related problems \iffieldundef{origyear}% {\usebibmacro{cmsciteyear}}% {\iffieldint{year}% {\iffieldundef{endyear}% Needed for date ranges -- video type, esp. {\ifthenelse{\thefield{origyear}>\thefield{year}}% {\toggletrue{cms@switchdates}% \usebibmacro{cmsciteyear}}% {\usebibmacro{cmsciteyear}}}% {\ifthenelse{\thefield{origyear}>\thefield{endyear}}% {\toggletrue{cms@switchdates}% \usebibmacro{cmsciteyear}}% {\usebibmacro{cmsciteyear}}}}% {\usebibmacro{cmsciteyear}}}} \newbibmacro*{cmsciteyear}{% \iftoggle{cms@origlabel}% {\usebibmacro{cite:origyear+labelyear}}% {\iftoggle{cms@bothlabelnew}% {\usebibmacro{cite:bothyear+newstyle}}% {\iftoggle{cms@bothlabelold}% {\usebibmacro{cite:bothyear+oldstyle}}% {\usebibmacro{cite:labelyear+extrayear}}}}% \ifcsdef{@cms@tempdate}% {\toggletrue{\@cms@tempdate}}% {}} \newbibmacro*{cite:origyear+labelyear}{% \iftoggle{cms@switchdates}% {\usebibmacro{cite:labelyear+extrayear}} {\iffieldundef{origyear}% {\usebibmacro{cite:labelyear+extrayear}}% {\printtext[bibhyperref]{% \printfield{origyear}}}}} \newbibmacro*{cite:bothyear+newstyle}{% \iftoggle{cms@switchdates}% {\usebibmacro{cite:labelyear+extrayear}/\printfield{origyear}}% {\iffieldundef{origyear}% {\usebibmacro{cite:labelyear+extrayear}}% {\printtext[bibhyperref]{% \printfield{origyear}/\printfield{labelyear}}}}} \newbibmacro*{cite:bothyear+oldstyle}{% \iftoggle{cms@switchdates}% {\printtext[bibhyperref]{% \bibopenbracket% \usebibmacro{cite:labelyear+extrayear}% \bibclosebracket% \addspace\printfield{origyear}}}% {\iffieldundef{origyear}% {\usebibmacro{cite:labelyear+extrayear}}% {\printtext[bibhyperref]{% \printfield[brackets]{origyear}% \addspace\printfield{labelyear}}}}} \newbibmacro*{cite:save}{% \savefield{entrykey}{\cbx@lastkey}} \newbibmacro*{cite:ibid}{% \iftoggle{cms@noibid}% {\blx@ibidreset% \usebibmacro{cite}}% {\toggletrue{cms@inlineibid}}} %%%% Citation Commands, internal and external %%%% \DeclareCiteCommand{\cite} {\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{cite}} {}%\multicitedelim {\usebibmacro{postnote}} \DeclareCiteCommand*{\cite} {\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{citeyear}} {}%\multicitedelim {\usebibmacro{postnote}} \DeclareCiteCommand{\parencite}[\mkbibparens] {\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{cite}} {}%\setunit{\multicitedelim} {\usebibmacro{postnote}} \DeclareCiteCommand*{\parencite}[\mkbibparens] {\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{citeyear}} {}%\setunit{\multicitedelim} {\usebibmacro{postnote}} \DeclareCiteCommand{\footcite}[\mkbibfootnote] {\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{cite}} {}%\multicitedelim {\usebibmacro{postnote}} \DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] {\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{cite}} {} {\usebibmacro{postnote}} \DeclareCiteCommand{\textcite} {\usebibmacro{cite:init}} {\usebibmacro{citeindex}% \usebibmacro{textcite}} {} {\usebibmacro{textcite:postnote}} \DeclareMultiCiteCommand{\cites}{\cite}{\setunit{\multicitedelim}} \DeclareMultiCiteCommand{\parencites}[\mkbibparens]{\parencite}% {\setunit{\multicitedelim}} \DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]{\footcite}% {\setunit{\multicitedelim}} \DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext]% {\footcitetext}{\setunit{\multicitedelim}} \DeclareMultiCiteCommand{\textcites}{\textcite}{} \DeclareCiteCommand{\bibxrefcite} {\usebibmacro{cite:init}}%\usebibmacro{clearalmostall}} (?) {\usebibmacro{cms-in:}% \blx@ibidreset% For authordate style \usebibmacro{cite}} {} {} \DeclareCiteCommand{\origfullcite} {\nopunct\unspace% \savebibmacro{cmsbibsortdate}% \renewbibmacro*{cmsbibsortdate}{}}% {\usedriver {\DeclareNameAlias{sortname}{default}\clearfield{postnote} \clearname{author}\clearfield{userf}%\toggletrue{cms@fullnote}% \toggletrue{cms@headlessnote}\frenchspacing}% {\thefield{entrytype}}}% {\multicitedelim}% {\restorebibmacro{cmsbibsortdate}} \DeclareCiteCommand{\origpublcite}% Similar to above, w/o title. {\nopunct\unspace% \savebibmacro{cmsbibsortdate}% \renewbibmacro*{cmsbibsortdate}{}}% {\usedriver {\DeclareNameAlias{sortname}{default}\clearfield{postnote}% \usebibmacro{clearpublin}% \toggletrue{cms@headlessnote}%\toggletrue{cms@fullnote}% \toggletrue{cms@origpublished}\frenchspacing}% {\thefield{entrytype}}}% {\multicitedelim}% {\restorebibmacro{cmsbibsortdate}} %%%% List Formats %%%% \DeclareListFormat{language}{% \ifthenelse{\value{listcount}=1}% {\bibleftbracket\bibstring{inlang}\addspace% \ifbibstring{#1} {\bibstring{#1}} {\ifbibstring{lang#1} {\bibstring{lang#1}} {#1}}% \ifthenelse{\value{listtotal}=1}% {\bibrightbracket}% {}}% {\ifthenelse{\value{listcount}=\value{listtotal}}% {\multilangdelim% \ifbibstring{#1} {\bibstring{#1}} {\ifbibstring{lang#1} {\bibstring{lang#1}} {#1}}% \bibrightbracket}% {\multilangdelim% \ifbibstring{#1} {\bibstring{#1}} {\ifbibstring{lang#1} {\bibstring{lang#1}} {#1}}}}% \usebibmacro{langlist:andothers}} \DeclareListFormat{publisher}{% \ifthenelse{\value{listtotal}<2}% {#1\isdot}% {\ifthenelse{\value{listcount}=1}% {#1}% {\multipubsdelim #1\isdot}}} \DeclareListFormat{periodplace}{\mkbibparens{#1}} \DeclareListFormat{lista}{% \ifthenelse{\value{listtotal}<2} {s\adddot v\adddot\addspace\mkbibquote{#1\isdot}}% {\ifthenelse{\value{listcount}=1}% {s\adddot vv\adddot\addspace \mkbibquote{#1\isdot}\addcomma}% {\ifthenelse{\value{listcount}<\value{listtotal}}% {\addspace\mkbibquote{#1\isdot}\addcomma}% {\addspace\mkbibquote{#1\isdot}}}}} %%%% Field Formats -- Title, Citetitle, Lostitle %%%% \DeclareFieldFormat[article]{title}{% \iffieldundef{title}% {}% {\MakeSentenceCase*{#1}}} \DeclareFieldAlias[article]{citetitle}[article]{lostitle} \DeclareFieldFormat[article]{lostitle}{\MakeSentenceCase*{#1}} \DeclareFieldFormat[artwork]{title}{% \iffieldundef{entrysubtype}% {\mkbibemph{\MakeSentenceCase*{#1}}\isdot}% {\MakeSentenceCase*{#1}\isdot}} \DeclareFieldAlias[artwork]{citetitle}[artwork]{title} \DeclareFieldFormat[artwork]{lostitle}{% \iffieldundef{entrysubtype}% {\mkbibemph{\MakeSentenceCase*{#1}}\isdot}% {\MakeSentenceCase*{#1}\isdot}} \DeclareFieldFormat[book]{title}{% \mkbibemph{\MakeSentenceCase*{#1}}\isdot} \DeclareFieldAlias[book]{citetitle}[book]{title} \DeclareFieldFormat[book]{title}{% \mkbibemph{\MakeSentenceCase*{#1}}\isdot} \DeclareFieldAlias[bookinbook]{title}[book]{title} \DeclareFieldAlias[bookinbook]{citetitle}[book]{title} \DeclareFieldAlias[bookinbook]{lostitle}[book]{lostitle} \DeclareFieldAlias[collection]{title}[book]{title} \DeclareFieldAlias[collection]{citetitle}[book]{title} \DeclareFieldAlias[collection]{lostitle}[book]{lostitle} \DeclareFieldFormat[periodical]{title}{\mkbibemph{#1}\isdot} \DeclareFieldFormat[periodical]{citetitle}{\mkbibemph{#1}\isdot} \DeclareFieldFormat[periodical]{lostitle}{\mkbibemph{#1}\isdot} \DeclareFieldAlias[image]{title}[article]{title} \DeclareFieldAlias[image]{citetitle}[article]{title} \DeclareFieldAlias[image]{lostitle}[article]{lostitle} \DeclareFieldAlias[incollection]{title}[article]{title}% Change article? \DeclareFieldAlias[incollection]{citetitle}[article]{title} \DeclareFieldAlias[incollection]{lostitle}[article]{lostitle} \DeclareFieldAlias[inreference]{title}[book]{title} \DeclareFieldAlias[inreference]{citetitle}[book]{title} \DeclareFieldAlias[inreference]{lostitle}[book]{lostitle} \DeclareFieldAlias[reference]{title}[book]{title} \DeclareFieldAlias[reference]{citetitle}[book]{title} \DeclareFieldAlias[reference]{lostitle}[book]{lostitle} \DeclareFieldFormat[letter]{title}{#1\isdot} \DeclareFieldFormat[letter]{citetitle}{#1\isdot} \DeclareFieldFormat[letter]{lostitle}{#1\isdot} \DeclareFieldAlias[inproceedings]{title}[article]{title}% As above \DeclareFieldAlias[inproceedings]{citetitle}[article]{title} \DeclareFieldAlias[inproceedings]{lostitle}[article]{lostitle} \DeclareFieldAlias[thesis]{title}[article]{title} \DeclareFieldAlias[thesis]{citetitle}[article]{title} \DeclareFieldAlias[thesis]{lostitle}[article]{lostitle} \DeclareFieldAlias[patent]{title}[article]{lostitle} \DeclareFieldAlias[patent]{citetitle}[article]{title} \DeclareFieldAlias[patent]{lostitle}[article]{lostitle} \DeclareFieldAlias[unpublished]{title}[article]{title} \DeclareFieldAlias[unpublished]{citetitle}[article]{title} \DeclareFieldAlias[unpublished]{lostitle}[article]{lostitle} \DeclareFieldFormat{postnote}{% Removed \isdots -- required \iffieldundef{pagination}% elsewhere also? {#1}% {\mkpageprefix[pagination]{#1}}} \DeclareFieldFormat[inreference]{postnote}{% \iffieldundef{pagination}% {s\adddot v\adddot\addspace\mkbibquote{#1}} {\mkpageprefix[pagination]{#1}}}% Removed \isdots here, also. \DeclareFieldFormat{pages}{% \iffieldundef{bookpagination}% {#1\isdot}% {\mkpageprefix[bookpagination]{#1\isdot}}} \DeclareFieldFormat{bibnote}{\MakeCapital{#1}} \DeclareFieldFormat{edlang}{% \ifbibstring{#1} {\bibstring{#1}} {\ifbibstring{ed#1} {\bibstring{ed#1}} {\ifcapital{\MakeCapital{#1}}{#1}}}} \DeclareFieldAlias[inbook]{title}[article]{title} \DeclareFieldAlias[inbook]{citetitle}[article]{title} \DeclareFieldAlias[inbook]{lostitle}[article]{lostitle} \DeclareFieldFormat[suppbook]{title}{% \mkbibemph{\MakeSentenceCase*{#1}}\isdot} \DeclareFieldAlias[suppbook]{citetitle}[suppbook]{lostitle} \DeclareFieldFormat[suppbook]{lostitle}{% \usebibmacro{inforaft}% \addspace% \mkbibemph{\MakeSentenceCase*{#1}}\isdot} \DeclareFieldFormat[customc]{title}{% \iffieldundef{nameaddon}% {\mkbibemph{\bibstring{see}}% \addspace% #1}% {#1}} \DeclareFieldFormat[customc]{citetitle}{% \ifnameundef{author}% {#1} {\iffieldundef{nameaddon}% {\mkbibemph{\bibstring{see}}% \addspace% #1}% {\printfield{nameaddon}\addspace #1}}} \DeclareFieldAlias[suppcollection]{title}[suppbook]{title} \DeclareFieldAlias[suppcollection]{citetitle}[suppbook]{lostitle} \DeclareFieldAlias[suppcollection]{lostitle}[suppbook]{lostitle} \DeclareFieldAlias[booklet]{title}[book]{title} \DeclareFieldFormat[booklet]{citetitle}[book]{\mkbibemph{#1}\isdot} \DeclareFieldAlias[booklet]{lostitle}[book]{lostitle} \DeclareFieldAlias[manual]{title}[book]{title} \DeclareFieldAlias[manual]{citetitle}[book]{title} \DeclareFieldAlias[manual]{lostitle}[book]{lostitle} \DeclareFieldAlias[report]{title}[book]{title} \DeclareFieldAlias[report]{citetitle}[book]{title} \DeclareFieldAlias[report]{lostitle}[book]{lostitle} \DeclareFieldFormat[misc]{title}{% \iffieldundef{entrysubtype}% {\mkbibemph{\MakeSentenceCase*{#1}}\isdot}% {\ifcapital{\MakeCapital{#1\isdot}}% {#1\isdot}}} \DeclareFieldAlias[misc]{citetitle}[misc]{title} \DeclareFieldAlias[misc]{lostitle}[misc]{title} \DeclareFieldFormat[review]{title}{% \ifcapital{\MakeCapital{#1\isdot}}% {#1\isdot}} \DeclareFieldAlias[review]{lostitle}[review]{title} \DeclareFieldAlias[review]{citetitle}[review]{title} \DeclareFieldAlias[suppperiodical]{title}[review]{title} \DeclareFieldAlias[suppperiodical]{citetitle}[review]{title} \DeclareFieldAlias[suppperiodical]{lostitle}[review]{title} \DeclareFieldAlias[online]{title}[article]{title} \DeclareFieldAlias[online]{citetitle}[article]{title} \DeclareFieldAlias[online]{lostitle}[article]{lostitle} \DeclareFieldFormat{booktitle}{\mkbibemph{\MakeSentenceCase*{#1}}} \DeclareFieldFormat{maintitle}{\mkbibemph{\MakeSentenceCase*{#1}}} \DeclareFieldFormat[video]{title}{% \iffieldundef{booktitle}% {\mkbibemph{\MakeSentenceCase*{#1}}\isdot}% {\MakeSentenceCase*{#1}\isdot}} \DeclareFieldFormat[video]{citetitle}{% \iffieldundef{booktitle}% {\mkbibemph{\MakeSentenceCase*{#1}}\isdot}% {\MakeSentenceCase*{#1}\isdot}} \DeclareFieldFormat[video]{lostitle}{% \iffieldundef{booktitle}% {\mkbibemph{\MakeSentenceCase*{#1}}\isdot}% {\MakeSentenceCase*{#1}\isdot}} \DeclareFieldAlias[music]{title}[video]{title} \DeclareFieldAlias[music]{citetitle}[video]{citetitle} \DeclareFieldAlias[music]{lostitle}[video]{lostitle} \DeclareFieldAlias[audio]{title}[video]{title} \DeclareFieldAlias[audio]{citetitle}[video]{citetitle} \DeclareFieldAlias[audio]{lostitle}[video]{lostitle} %%%% Other Field Formats %%%% \DeclareNumChars*{:}% \DeclareFieldFormat{letterday}{\mkbibcurdinal{#1}} \DeclareFieldFormat{note}{% \ifcapital{\MakeCapital{#1}}{#1}}% \DeclareFieldFormat[suppbook]{type}{% \ifbibstring{#1}% {\bibstring{#1}}% {\ifcapital% {\MakeCapital{#1}}% {#1}}} \DeclareFieldFormat[artwork]{type}{% \ifcapital% {\MakeCapital{#1}}% {#1}} \DeclareFieldAlias[image]{type}[artwork]{type} \DeclareFieldAlias[suppcollection]{type}[suppbook]{type} \DeclareFieldAlias[video]{type}[suppbook]{type} \DeclareFieldAlias[music]{type}[suppbook]{type} \DeclareFieldAlias[audio]{type}[suppbook]{type} \DeclareFieldFormat{url}{\url{#1}} \DeclareFieldFormat{doi}{% \textrm{doi}\addcolon \ifhyperref {\href{http://dx.doi.org/#1}{\nolinkurl{#1}}} {\nolinkurl{#1}}} \DeclareFieldFormat{nameaddon}{\mkbibbrackets{#1\bibsentence}}% ?! \DeclareFieldFormat[customc]{nameaddon}{% For cross-refs \ifbibstring{#1}% {\mkbibemph{\bibstring{#1}}}% {#1}}% \DeclareFieldFormat{edition}{% New in 0.8 \ifinteger{#1} {\mkbibordinal{#1}~\bibstring{edition}}% {\ifcapital {\MakeCapital{#1\isdot}}% {#1\isdot}}} \DeclareFieldFormat{usere}{[#1]} % Better than mkbibbrackets? \DeclareFieldFormat{titleaddon}{% \ifcapital{\MakeCapital{#1\isdot}}{#1\isdot}}%\custpunctc? \DeclareFieldAlias{booktitleaddon}{titleaddon} \DeclareFieldAlias{maintitleaddon}{titleaddon} \DeclareFieldFormat{issuetitle}{\MakeSentenceCase*{#1\isdot}} \DeclareFieldFormat{jourser}{% \ifinteger{#1}% {\mkbibordinal{#1}% \addnbspace% \bibstring{jourser}}% {\ifbibstring{#1}{\bibstring{#1}}{#1}}} \DeclareFieldFormat{journum}{% Revised for 0.9.5 \ifboolexpr{% test {\ifnumerals{#1}} and not test {\ifnumeral{#1}} }% {\bibstring{numbers}\addspace #1}% {\bibstring{number}\addspace #1}} \DeclareFieldFormat{sernum}{% \ifnumeral{#1}% {\addnbspace #1}% {\addcomma\addspace #1}} \DeclareFieldFormat{addendum}{% \ifcapital{\MakeCapital{#1\isdot}}{#1\isdot}} % This works better here than in the entrytail macro -- userf use is % no longer a problem, though the page breaking still isn't ideal. \DeclareFieldFormat{annotation}{\par\nobreak \vskip \bibitemsep #1} \DeclareFieldFormat{part}{\addcomma\bibstring{partvolume}~#1} \DeclareFieldAlias[review]{volume}[article]{volume} \DeclareFieldAlias[suppperiodical]{volume}[article]{volume} %%%% Commands, for users and internal %%%% \newcommand*{\cbytypeeditor}{% \iffieldundef{editortype} {\bibstring{cbytypeeditor}} {\bibstring{cbytype\thefield{editortype}}}} \renewcommand*{\multicitedelim}{\addsemicolon\space} \renewcommand*{\nameyeardelim}{% \iffieldundef{origyear}% Is this test correct? {\iffieldundef{year}% {\addspace} {\NumCheckSetup{\renewcommand{\mkbibbrackets}{\expandonce}% \DeclareNumChars*{[?]s}}% For bracketed dates, and decades. \iffieldnums{year}% This one works. {\addspace}% {\iffieldequalstr{year}{\bibstring{nodate}}% This also works. {\addspace} {\addcomma\addspace}}}}% {\addspace}} \newcommand{\classicpunct}{% \ifthenelse{\iffieldequalstr{entrysubtype}{classical}\OR% \iffieldequalstr{entrytype}{letter}}% {\setunit*{\addspace}}% {\setunit*{\addcomma\addspace}}} \newcommand{\parttrans}{% {\bibstring{cbytranslator}\space}}% \newcommand{\partedit}{% \iftoggle{cms@postposit}% Kludge to make it work in French. {\bibstring{cbyeditoralt}\addspace}% {\bibstring{cbyeditor}\addspace}}% \newcommand{\partcomp}{% {\bibstring{cbycompiler}\space}}% \newcommand{\parteditandcomp}{% {\bibstring{cbyeditorcp}\space}}% \newcommand{\parttransandcomp}{% {\bibstring{cbytranslatorcp}\space}}% \newcommand{\partedittransandcomp}{% {\bibstring{cbyeditortrcp}\space}}% \newcommand{\parteditandtrans}{% {\bibstring{cbyeditortr}\space}}% \newcommand{\reprint}{\bibstring{reprint}}% \newcommand*{\multipubsdelim}{\addnbspace/\addspace} \newcommand*{\multilocsdelim}{% \ifthenelse{\value{listcount}<\value{liststop}}% {\ifthenelse{\numexpr\value{listcount}+1<\value{liststop}}% {\addcomma\addspace}% {\ifthenelse{\value{liststop}>2}% {\addcomma\addspace\bibstring{and}\addspace}% {\addspace\bibstring{and}\addspace}}}% {}} \newcommand*{\multilangdelim}{% \ifthenelse{\value{listtotal}<3}% {\addspace\bibstring{and}\addspace}% {\ifthenelse{\value{listcount}<\value{listtotal}}% {\addcomma\addspace}% {\addcomma\addspace\bibstring{and}\addspace}}} \renewcommand*{\postnotedelim}{% \iftoggle{cms@inlineibid}% {\togglefalse{cms@inlineibid}}% {\iffieldequalstr{entrysubtype}{classical}% For Notes+Bib, too? {\NumCheckSetup{\DeclareNumChars*{abcdeABCDE}}% \iffieldpages{postnote}% {\addspace}% {\addcomma\addspace}}% {\addcomma\addspace}}} \newcommand*{\lbx@cfromlang}{% \iffieldundef{userf} {\iffieldundef{origlanguage} {\unspace} {\bibstring{cfrom\thefield{origlanguage}}}}% {\unspace}} \renewcommand*{\lbx@fromlang}{% \iffieldundef{userf} {\iffieldundef{origlanguage} {\unspace} {\bibstring{from\thefield{origlanguage}}}}% {\unspace}} \renewcommand*{\lbx@lfromlang}{% \iffieldundef{userf} {\iffieldundef{origlanguage} {\unspace} {\biblstring{from\thefield{origlanguage}}}}% {\unspace}} \renewcommand*{\lbx@sfromlang}{% \iffieldundef{userf} {\iffieldundef{origlanguage} {\unspace} {\bibsstring{from\thefield{origlanguage}}}}% {\unspace}} %%%% Formatting macros, called both by cbx and bbx %%%% \newbibmacro*{finentry}{%{\finentry} To make annotated bibliography \ifbibliography {\usebibmacro{entrytail}} {}% \finentry} \newbibmacro*{entrytail}{% From reading.bbx, for annotated bibliography \newunit\newblock \iftoggle{cms@annotation} {\usebibmacro{annotation}% \newunit\newblock} {}}% \newbibmacro*{author+holder}{% \ifnameundef{author} {} {\usebibmacro{author/editor}% \ifthenelse{\ifnameundef{holder}\OR \ifnamesequal{author}{holder}} {} {\setunit{\addspace}% \printtext[parens]{\printnames{holder}}}}} \renewbibmacro*{byauthor}{% \ifthenelse{\ifuseauthor\OR \ifnameundef{author}} {} {\bibstring{by}\addspace \printnames[byauthor]{author}}} \newbibmacro*{byauthorpunct}{% \ifthenelse{\ifuseauthor\OR\ifnameundef{author}}% {\addperiod\addspace}% {\newcunit}} \renewbibmacro*{bybookauthor}{% \ifnameundef{bookauthor} {} {\ifnamesequal{author}{bookauthor} {} {\bibstring{by}\addspace\printnames[default]{bookauthor}% \newcunit\newblock}}} \newbibmacro*{editorpunct}{% \ifthenelse{\(\iffieldundef{booktitle}\AND\iffieldundef{maintitle}\)% \OR\iffieldsequal{booktitle}{title}% Changed these for crossrefed \OR\iffieldsequal{maintitle}{title}}% entries. Create problems? {\iffieldequalstr{entrytype}{video}% {\newcunit\newblock}% {\newunit\newblock}}% {\newcunit\newblock}} \newbibmacro*{edition}{% \printfield{edition}% \clearfield{edition}}% \newbibmacro*{inforaft}{% \ifnameundef{introduction}% {\ifnameundef{afterword}% {\ifnameundef{foreword}% {\printfield{type}}% {\bibstring{forewordto}}}% {\bibstring{afterwordto}}}% {\bibstring{introductionto}}} \newbibmacro*{langlist:andothers}{% \ifthenelse{\value{listcount}=\value{liststop}\AND \ifmoreitems} {\ifnum\value{liststop}>1 \finalandcomma\fi \andmoredelim\bibstring{andmore}\bibrightbracket} {}} \newbibmacro*{reference+title}{% \ifthenelse{\iffieldequals{title}{\bbx@lasthash}\AND\NOT \iffirstonpage}% {\bibnamedash\addperiod\addspace}% {\usebibmacro{italtitle+stitle}% \savefield{title}{\bbx@lasthash}}} \newbibmacro*{mag+news+author}{% \ifnameundef{author}% {\ifthenelse{\iffieldequals{journaltitle}{\bbx@lasthash}\AND\NOT \iffirstonpage}% {\bibnamedash\addperiod\addspace}% {\usebibmacro{journal+sub}% \setunit*{\addspace}% \printlist[periodplace]{location}% \savefield{journaltitle}{\bbx@lasthash}}}% {\usebibmacro{author}}} \newbibmacro*{cmag+news+author}{% \ifnameundef{author}% {\usebibmacro{journal+sub}% \setunit*{\addspace}% \printlist[periodplace]{location}}% {\usebibmacro{author}}} \newbibmacro*{type+inst+year}{% \printfield{type} \newcunit \printlist{institution}% \setunit*{\addcomma\space}% \printfield{year}} \newbibmacro*{institution+organization}{% \iflistundef{organization}% {\iflistundef{institution}% {}% {\printlist{institution}}}% {\printlist{organization}% \newcunit% \printlist{institution}}} \newbibmacro*{author+org}{% \ifnameundef{author}% {\ifnameundef{editor}% {\iflistundef{organization}% {}% {\ifboolexpr{ test {\iflistequals{organization}{\bbx@lasthash}} and not test {\iffirstonpage} }% {\bibnamedash\addperiod\addspace}% {\printlist{organization}% \savelist{organization}{\bbx@lasthash}}}}% {\usebibmacro{editor}}}% {\usebibmacro{author/editor}}} \newbibmacro*{cbytypestrg}[2]{% \iffieldundef{#1type} {\bibstring{cby#2}} {\bibstring{cby\thefield{#1type}}}} \newbibmacro*{cbyeditor}{% \ifnameundef{editor} {} {\usebibmacro{cbytypestrg}{editor}{editor}% \setunit{\addspace}% \printnames[byeditor]{editor}% \newcunit}% \usebibmacro{cbyeditorx}} \newbibmacro*{cbyeditorx}{% \ifnameundef{editora} {} {\usebibmacro{cbytypestrg}{editora}{editor}% \setunit{\addspace}% \printnames[byeditora]{editora}% \newcunit}% \ifnameundef{editorb} {} {\usebibmacro{cbytypestrg}{editorb}{editor}% \setunit{\addspace}% \printnames[byeditorb]{editorb}% \newcunit}% \ifnameundef{editorc} {} {\usebibmacro{cbytypestrg}{editorc}{editor}% \setunit{\addspace}% \printnames[byeditorc]{editorc}% \newcunit}} \newbibmacro*{cbytranslator}{% \ifnameundef{translator} {} {\bibstring{cbytranslator}% \addspace \printnames[bytranslator]{translator}}} \newbibmacro*{cbycompiler}{% \ifnameundef{namec} {} {\bibstring{cbycompiler}\addspace \printnames[bycompiler]{namec}}} \newbibmacro*{cbyredactor}{% \ifnameundef{redactor} {} {\bibstring{cbyredactor}\addspace \printnames[byredactor]{redactor}}} \newbibmacro*{cwithcommentator}{% \ifnameundef{commentator} {} {\bibstring{withcommentator}\addspace \printnames[withcommentator]{commentator}}} \newbibmacro*{cwithannotator}{% \ifnameundef{annotator} {} {\bibstring{withannotator}\addspace \printnames[withannotator]{annotator}}} \newbibmacro*{cwithintroduction}{% \ifnameundef{introduction} {} {\bibstring{withintroduction}\addspace \printnames[withintroduction]{introduction}}} \newbibmacro*{cwithforeword}{% \ifnameundef{foreword} {} {\bibstring{withforeword}\addspace \printnames[withforeword]{foreword}}} \newbibmacro*{cwithafterword}{% \ifnameundef{afterword} {} {\bibstring{withafterword}\addspace \printnames[withafterword]{afterword}}} \newbibmacro*{cbyeditor+others}{% \ifthenelse{\NOT\ifnameundef{editor}\AND \(\iffieldundef{editortype}\OR \iffieldequalstr{editortype}{editor}\)} {\def\@tempa{cbyeditor}% \ifnamesequal{editor}{translator} {\edef\@tempa{\@tempa tr}% \clearname{translator}} {}% \ifnamesequal{editor}{namec} {\edef\@tempa{\@tempa cp}% \clearname{namec}} {}% \ifnamesequal{editor}{commentator} {\edef\@tempa{\@tempa co}% \clearname{commentator}} {\ifnamesequal{editor}{annotator} {\edef\@tempa{\@tempa an}% \clearname{annotator}} {}}% \ifnamesequal{editor}{introduction} {\edef\@tempa{\@tempa in}% \clearname{introduction}} {\ifnamesequal{editor}{foreword} {\edef\@tempa{\@tempa fo}% \clearname{foreword}} {\ifnamesequal{editor}{afterword} {\edef\@tempa{\@tempa af}% \clearname{afterword}} {}}}% \bibstring{\@tempa}\space \printnames[byeditor]{editor}% \clearname{editor}% \newcunit% \usebibmacro{cbyeditorx}}% {\usebibmacro{cbyeditor}}% \usebibmacro{cbytranslator+others}} \newbibmacro*{cbytranslator+others}{% \ifnameundef{translator} {} {\def\@tempa{cbytranslator}% \ifnamesequal{translator}{namec} {\edef\@tempa{\@tempa cp}% \clearname{namec}} {}% \ifnamesequal{translator}{commentator} {\edef\@tempa{\@tempa co}% \clearname{commentator}} {\ifnamesequal{translator}{annotator} {\edef\@tempa{\@tempa an}% \clearname{annotator}} {}}% \ifnamesequal{translator}{introduction} {\edef\@tempa{\@tempa in}% \clearname{introduction}} {\ifnamesequal{translator}{foreword} {\edef\@tempa{\@tempa fo}% \clearname{foreword}} {\ifnamesequal{translator}{afterword} {\edef\@tempa{\@tempa af}% \clearname{afterword}} {}}}% \bibstring{\@tempa}\space \printnames[bytranslator]{translator}% \clearname{translator}% \newcunit}% \usebibmacro{cbycompiler+others}} \newbibmacro*{cbycompiler+others}{% \ifnameundef{namec} {} {\def\@tempa{cbycompiler}% \ifnamesequal{namec}{commentator} {\edef\@tempa{\@tempa co}% \clearname{commentator}} {\ifnamesequal{namec}{annotator} {\edef\@tempa{\@tempa an}% \clearname{annotator}} {}}% \ifnamesequal{namec}{introduction} {\edef\@tempa{\@tempa in}% \clearname{introduction}} {\ifnamesequal{namec}{foreword} {\edef\@tempa{\@tempa fo}% \clearname{foreword}} {\ifnamesequal{namec}{afterword} {\edef\@tempa{\@tempa af}% \clearname{afterword}} {}}}% \bibstring{\@tempa}\space \printnames[bycompiler]{namec}% \clearname{namec}% \newcunit}% \usebibmacro{cbyothers}} \newbibmacro*{cbyothers}{% \usebibmacro{cbytranslator}% \setunit*{\addcomma\addspace}% \usebibmacro{cbycompiler}% \setunit*{\addcomma\addspace}% \usebibmacro{cbyredactor}% \setunit*{\addcomma\addspace}% \usebibmacro{cwithcommentator}% \setunit*{\addcomma\addspace}% \usebibmacro{cwithannotator}% \setunit*{\addcomma\addspace}% \usebibmacro{cwithintroduction}% \setunit*{\addcomma\addspace}% \usebibmacro{cwithforeword}% \setunit*{\addcomma\addspace}% \usebibmacro{cwithafterword}} \newbibmacro*{cms-in:}{% Fix for 0.9a compat. \iftoggle{cms@origpublished}% {}% {\bibstring{in}% \setunit{\addspace}}} \newbibmacro*{alt-in:}{% \iffieldundef{booktitle}% {} {\bibstring{in}% \setunit{\addspace}}} \newbibmacro*{chapincoll}{% \iffieldundef{chapter}% {} {\printfield{chapter}\addspace}} \newbibmacro*{chapinscore}{% \iffieldundef{chapter}% {} {\printfield{chapter}% \addspace\bibstring{of}\setunit{\addspace}}} \newbibmacro*{music+ser+num}{% \iffieldundef{series}% {\iffieldundef{number}% {}% {\printfield{number}}} {\printfield{series}% \setunit{\addspace}% \printfield{number}}}% \newbibmacro*{music+publisher}{% \iffieldundef{howpublished}% {\iffieldundef{pubstate}% {}% {\printfield{pubstate}}}% {\printfield{howpublished}}}% \newbibmacro*{ser+num}{% \printfield{series}% \printfield[sernum]{number}% \newunit} \newbibmacro*{italtitle+stitle}{% \printtext{% \printfield{title}% \setunit{\addcolon\addspace}% \printfield[title]{subtitle}}% \newunit\newblock% \printfield{titleaddon}% \setunit{\addspace}% \usebibmacro{language+transtitle}% \newunit\newblock} \newbibmacro*{mag+news+title}{% \printtext{% \printfield{title}% \setunit{\addcolon\addspace}% \printfield[title]{subtitle}}% \newunit%\setunit{\addcomma\addspace} \printfield{titleaddon}% }%\newcunit\newblock \newbibmacro*{language+transtitle}{% \iffieldundef{usere}% {\printlist[][-\value{listtotal}]{language}}% {\printfield{usere}}} \newbibmacro*{issuetitle}{% \iffieldundef{issuetitle}% {} {\ifthenelse{\iffieldequalstr{entrytype}{article}\OR% \iffieldequalstr{entrytype}{review}\OR% \iffieldequalstr{entrytype}{suppperiodical}}% This test is for {\usebibmacro{cms-in:}}% periodical entries {}% \printtext{% \printfield{issuetitle}% \setunit{\addcolon\addspace}% \printfield[issuetitle]{issuesubtitle}}}} \newbibmacro*{btitle+bstitle}{% \iffieldundef{booktitle} {} {\printtext{% \printfield{booktitle}% \setunit{\addcolon\addspace}% \printfield[booktitle]{booksubtitle}}% \newcunit \printfield{booktitleaddon}}} \newbibmacro*{publ+loc+year}{% \printlist{location}% \iflistundef{publisher}% {\setunit*{\addcomma\addspace}}% {\setunit*{\addcolon\addspace}}% \printlist{publisher}% \setunit*{\addcomma\addspace} \usebibmacro{date}% For the author-date style. Tricky. }% \newbibmacro*{howpubl+loc+year}{% \printlist{location}% \iffieldundef{howpublished}% {\setunit*{\addcomma\space}}% {\setunit*{\addcolon\space}}% \printfield{howpublished}% \setunit*{\addcomma\space}% \usebibmacro{date}% }% \newbibmacro*{inst+loc+year}{% \printlist{location}% \iflistundef{institution}% {\setunit*{\addcomma\space}}% {\setunit*{\addcolon\space}}% \printlist{institution}% \setunit*{\addcomma\space}% \usebibmacro{date}% }% \newbibmacro*{originally+published+as}{% Punctuation fix now in \iffieldundef{userf}% \origfullcite for 0.8e. {\iffieldundef{reprinttitle}% {} {\bibstring{origpublin}% \origpublcite{\thefield{reprinttitle}}% \newunit}} {\iffieldundef{origlanguage}% {\bibstring{origpub}% \origfullcite{\thefield{userf}} \newunit}% {\iftoggle{cms@postposit}% {\bibstring{origedition}% \setunit{\addspace}% \printfield[edlang]{origlanguage}% \addcolon% \origfullcite{\thefield{userf}}% \newunit}% {\printfield[edlang]{origlanguage}% \setunit{\addspace}% \bibstring{origedition}% \origfullcite{\thefield{userf}} \newunit}}}} \newbibmacro*{org+publ+loc+year}{% What was wrong with \ifthenelse here? \printlist{location}% \iflistundef{organization}% {\iflistundef{publisher}% {\setunit*{\addcomma\addspace}}% {\setunit*{\addcolon\addspace}}}% {\setunit*{\addcolon\addspace}}% \printlist{organization}% \setunit*{\addcomma\space}% \printlist{publisher}% \setunit*{\addcomma\addspace}% \usebibmacro{date}} \newbibmacro*{year+in+parens}{% \iffieldundef{volume}% {noformat}% {parens}} \newbibmacro*{letter+date}{% New for 0.9 \iftoggle{cms@switchdates}% {\ifthenelse{\iffieldundef{year}\AND\iffieldundef{month}}% {}% {\cms@datelongalt}}% {\ifthenelse{\iffieldundef{origyear}\AND\iffieldundef{origmonth}}% {}% {\cms@datelong}}} \newbibmacro*{unpubl+letter+date}{% For the Misc type. \iftoggle{cms@switchdates}% {\ifthenelse{\iffieldundef{year}\AND\iffieldundef{month}}% {}% {\cms@datelongalt}}% {\ifthenelse{\iffieldundef{origyear}\AND\iffieldundef{origmonth}}% {\printdate}% For interviews and other dated non-letters {\cms@datelong}}} \newbibmacro*{cmsbookdate}{% \ifthenelse{\iffieldundef{year}\AND\iffieldundef{origyear}}% {\newunit}% {\iftoggle{cms@switchdates}% {\iffieldundef{origyear}% {\newunit}% {\newcunit\printorigdate}}% {\iffieldundef{year}% {\newunit}% {\newcunit\printdate}}}} \renewbibmacro*{date}{% Adding the test solved some issues in 0.9 with \iftoggle{cms@switchdates} {\ifthenelse{\iffieldundef{origyear}\AND\iffieldundef{origmonth} \AND\iffieldundef{origday}}% {}% {\printorigdate}}% {\ifthenelse{\iffieldundef{year}\AND\iffieldundef{month} \AND\iffieldundef{day}}% punctuation in some entry types (Misc). The {}% whole \printdate thing may need further work. {\printdate}}} \newcommand*{\cms@datelong}{% Modified for 0.9 \iffieldundef{origmonth}% {\printfield{origyear}}% {\printfield[letterday]{origday}\setunit{\nobreakspace}% \mkbibmonth{\thefield{origmonth}}\setunit{\nobreakspace}% \printfield{origyear}}}% \newcommand*{\cms@datelongalt}{% Modified for 0.9 \iffieldundef{month}% {\printfield{year}}% {\printfield[letterday]{day}\setunit{\nobreakspace}% \mkbibmonth{\thefield{month}}\setunit{\nobreakspace}% \printfield{year}}}% \newcommand*{\letterdatelong}{% Modified for 0.9 \iftoggle{cms@switchdates}% This one for users {\iffieldundef{year}% Previous two for internal use {}% {\iffieldundef{month}% {\printfield{year}}% {\printfield[letterday]{day}\setunit{\nobreakspace}% \mkbibmonth{\thefield{month}}\setunit{\nobreakspace}% \printfield{year}}}}% {\iffieldundef{origyear}% {}% {\iffieldundef{origmonth}% {\printfield{origyear}}% {\printfield[letterday]{origday}\setunit{\nobreakspace}% \mkbibmonth{\thefield{origmonth}}\setunit{\nobreakspace}% \printfield{origyear}}}}}% \newbibmacro*{cjournal+ser+vol+num}{% \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}}% {\iffieldundef{volume}% {\newcunit% \printfield[journum]{number}% \clearfield{number}% \setunit{\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} \newbibmacro*{cperiodical+ser+vol+num}{% For periodical entries, \printtext{% article subtype \printfield{title}% \setunit{\addcolon\addspace}% \printfield{subtitle}}% \setunit*{\addspace}% \printlist[periodplace]{location}% \setunit*{\addspace}% \iffieldundef{series} {} {\newcunit \printfield[jourser]{series}% \newcunit}%\setunit*{\addspace}? \ifthenelse{\iffieldundef{year}\AND\iffieldundef{month}}% {\printfield[jourvol]{volume}% \setunit{\addcomma\addspace}}% {\printfield[jourvol]{volume}% \setunit{\addcomma\addspace}% need * here? \printfield[journum]{number}% \clearfield{number}% \setunit{\addcomma\addspace}}% \printfield{eid}% \newunit} \newbibmacro*{journal+sub}{% \iffieldundef{journaltitle} {} {\printtext[journaltitle]{% \printfield[noformat]{journaltitle}% \setunit{\addcolon\addspace}% \printfield[noformat]{journalsubtitle}}}} \newbibmacro*{url+date}{% Changed for 0.9 \printfield{url}% \iffieldundef{urlyear} {} {\setunit{\addspace}% \printtext[urldate]{\printurldate}}} \newbibmacro*{chap+pag}{% \printfield{chapter}% \setunit*{\addcomma\space}% \printfield{pages}} \newbibmacro*{mag+news+date}{% \ifnameundef{author}% {\usebibmacro{date+issue}}% {\usebibmacro{mag+date+issue}}} \newbibmacro*{date+issue}{% \iffieldundef{issue} {\iffieldundef{number}% {\usebibmacro{date}}% {\iftoggle{cms@numbermonth}% {\usebibmacro{date}}% {\usebibmacro{cmsyear}}% \setunit*{\addcomma\addspace}% Starred version for when the \printfield[journum]{number}}}% month isn't printed because of {\printfield{issue}% the toggle. \setunit{\addspace}% \usebibmacro{cmsyear}}} \newbibmacro*{mag+date+issue}{% \usebibmacro{journal+sub}% \setunit*{\addspace}% \printlist[periodplace]{location}% \newcunit\newblock \printfield{usera}% For network ID and possible section of newspaper. \newcunit\newblock \usebibmacro{date+issue}} \newbibmacro*{cmsyear}{% \iftoggle{cms@switchdates}% {\printfield{origyear}}% {\printfield{year}}} \newbibmacro*{periodical+date+issue}{% For periodical type & \printtext[title]{% magazine subtype \printfield[noformat]{title}% \setunit{\addcolon\addspace}% \printfield[noformat]{subtitle}}% \setunit*{\addspace}% \printlist[periodplace]{location}% \newcunit\newblock \printfield{usera}% For network ID and possible section of newspaper. \newcunit\newblock \usebibmacro{date+issue}} \newbibmacro*{cmtitle+mstitle+vol+part+title+stitle}{% \iffieldundef{maintitle} {} {\iffieldundef{volume} {\printtext{% \printfield{maintitle}% \setunit{\addcolon\addspace}% \printfield[maintitle]{mainsubtitle}}% \newcunit \printfield{maintitleaddon}} {\printfield{volume}% \printfield{part}% \setunit{\addspace} \bibstring{ofseries}% \setunit{\addspace} \printtext{% \printfield{maintitle}% \setunit{\addcolon\addspace}% \printfield[maintitle]{mainsubtitle}}% \newcunit \printfield{maintitleaddon}}}} \newbibmacro*{cmtitle+mstitle+vol+part+btitle+bstitle}{% \usebibmacro{btitle+bstitle}% \newcunit \iffieldundef{maintitle} {} {\iffieldundef{volume} {\printtext{% \printfield{maintitle}% \setunit{\addcolon\addspace}% \printfield[maintitle]{mainsubtitle}}% \newcunit \printfield{maintitleaddon}} {\printfield{volume}% \printfield{part}% \setunit{\addspace} \bibstring{ofseries}% \setunit{\addspace} \printtext{% \printfield{maintitle}% \setunit{\addcolon\addspace}% \printfield[maintitle]{mainsubtitle}}% \newcunit \printfield{maintitleaddon}}}} \renewbibmacro*{postnote}{% \iffieldundef{postnote}% {}% {\setunit{\postnotedelim}% \printfield{postnote}}} \newbibmacro*{part+editor+translator}{% \ifnameundef{namea}% {\ifnameundef{nameb}% {} {\bibstring{cbytranslator}\space% \printnames[bytranslator]{nameb}}}% {\ifnamesequal{namea}{nameb}% {\bibstring{cbyeditortr}\space% \printnames[byeditor]{namea}}% {\bibstring{cbyeditor}\space% \printnames[byeditor]{namea}% \ifnameundef{nameb}% {} {\newunit \bibstring{cbytranslator}\space% \printnames[bytranslator]{nameb}}}}} \newbibmacro*{compilestrg}{% \ifthenelse{\value{namec}>1\OR\ifandothers{namec}} {\bibstring{compilers}} {\bibstring{compiler}} \clearname{namec}} \newbibmacro*{transstrg}{% \ifthenelse{\value{translator}>1\OR\ifandothers{translator}} {\ifnamesequal{translator}{namec}% {\bibstring{transcompilers}% \clearname{namec}}% {\bibstring{translators}}}% {\ifnamesequal{translator}{namec}% {\bibstring{transcompiler}% \clearname{namec}}% {\bibstring{translator}}} \clearname{translator}} \newbibmacro*{parttransstrg}{% \ifthenelse{\value{nameb}>1\OR\ifandothers{nameb}} {\ifnamesequal{nameb}{namec}% {\bibstring{transcompilers}% \clearname{namec}}% {\bibstring{translators}}}% {\ifnamesequal{nameb}{namec}% {\bibstring{transcompiler}% \clearname{namec}}% {\bibstring{translator}}} \clearname{nameb}} \newbibmacro*{editstrg}{% Test added for 0.9 \ifthenelse{\iffieldundef{editortype}\OR \iffieldequalstr{editortype}{editor}} {\ifthenelse{\value{editor}>1\OR\ifandothers{editor}} {\ifthenelse{\ifnamesequal{editor}{translator}\AND \ifnamesequal{editor}{namec}} {\bibstring{editortranscompilers}% \clearname{translator}% \clearname{namec}}% {\ifnamesequal{editor}{namec}% {\bibstring{editorcompilers}% \clearname{namec}}% {\ifnamesequal{editor}{translator}% {\bibstring{editortranslators}% \clearname{translator}}% {\bibstring{editors}}}}}% {\ifthenelse{\ifnamesequal{editor}{translator}\AND \ifnamesequal{editor}{namec}} {\bibstring{editortranscompiler}% \clearname{translator}% \clearname{namec}}% {\ifnamesequal{editor}{namec}% {\bibstring{editorcompiler}% \clearname{namec}}% {\ifnamesequal{editor}{translator}% {\bibstring{editortranslator}% \clearname{translator}}% {\bibstring{editor}}}}}}% {\ifthenelse{\value{editor}>1\OR\ifandothers{editor}} {\bibstring{\thefield{editortype}s}} {\bibstring{\thefield{editortype}}}} \clearname{editor}} \newbibmacro*{parteditstrg}{% \ifthenelse{\value{namea}>1\OR\ifandothers{namea}} {\ifthenelse{\ifnamesequal{namea}{nameb}\AND \ifnamesequal{namea}{namec}} {\bibstring{editortranscompilers}% \clearname{nameb}% \clearname{namec}}% {\ifnamesequal{namea}{namec}% {\bibstring{editorcompilers}% \clearname{namec}}% {\ifnamesequal{namea}{nameb}% {\bibstring{editortranslators}% \clearname{nameb}}% {\bibstring{editors}}}}}% {\ifthenelse{\ifnamesequal{namea}{nameb}\AND \ifnamesequal{namea}{namec}} {\bibstring{editortranscompiler}% \clearname{nameb}% \clearname{namec}}% {\ifnamesequal{namea}{namec}% {\bibstring{editorcompiler}% \clearname{namec}}% {\ifnamesequal{namea}{nameb}% {\bibstring{editortranslator}% \clearname{nameb}}% {\bibstring{editor}}}}}% \clearname{namea}} \newbibmacro*{clearpublin}{% \clearname{author}% \clearname{namea}% \clearname{nameb}% \clearfield{nameaddon}% \clearfield{title}% \clearfield{subtitle}% \clearfield{titleaddon}% \clearfield{reprinttitle}% \clearfield{usere}% \clearlist{language}% } \endinput