\ProvidesFile{authortitle-comp.cbx} [\abx@cbxid] \ExecuteBibliographyOptions{uniquename,uniquelist,sortcites,autocite=footnote} \renewcommand*{\iffinalcitedelim}{% \ifnameundef{labelname} {\ifnumequal{\value{textcitecount}}{\value{textcitetotal}}} {\ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}} \newbool{cbx:parens} \newbibmacro*{cite:init}{% \ifnumless{\value{multicitecount}}{2} {\global\boolfalse{cbx:parens}% \global\undef\cbx@lasthash} {\iffieldundef{prenote} {} {\global\undef\cbx@lasthash}}} \newbibmacro*{cite:reinit}{% \global\undef\cbx@lasthash} \newbibmacro*{cite}{% \iffieldundef{shorthand} {\iffieldequals{namehash}{\cbx@lasthash} {\setunit{\compcitedelim}} {\printnames{labelname}% \setunit*{\printdelim{nametitledelim}}% \savefield{namehash}{\cbx@lasthash}}% \usebibmacro{cite:title}} {\usebibmacro{cite:shorthand}% \usebibmacro{cite:reinit}}% \setunit{\multicitedelim}} \newbibmacro*{citetitle}{% \iffieldundef{shorthand} {\usebibmacro{cite:title}} {\usebibmacro{cite:shorthand}}% \setunit{\multicitedelim}} \newbibmacro*{textcite}{% \iffieldequals{namehash}{\cbx@lasthash} {\setunit{\compcitedelim}} {\printnames{labelname}% \setunit*{% \global\booltrue{cbx:parens}% \printdelim{nametitledelim}\bibopenparen}% \stepcounter{textcitecount}% \savefield{namehash}{\cbx@lasthash}}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% \iffieldundef{shorthand} {\usebibmacro{cite:title}}% {\usebibmacro{cite:shorthand}}% \setunit{% \ifbool{cbx:parens} {\bibcloseparen\global\boolfalse{cbx:parens}} {}% \textcitedelim}} \newbibmacro*{cite:title}{% \printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}} \newbibmacro*{cite:shorthand}{% \printtext[bibhyperref]{\printfield{shorthand}}} \newbibmacro*{textcite:postnote}{% \ifnameundef{labelname} {\setunit{% \global\booltrue{cbx:parens}% \printdelim{extpostnotedelim}\bibopenparen}} {\setunit{\printdelim{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}} {}% \textcitedelim}}} \DeclareCiteCommand{\cite} {\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{cite}} {} {\usebibmacro{postnote}} \DeclareCiteCommand*{\cite} {\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{citetitle}} {} {\usebibmacro{postnote}} \DeclareCiteCommand{\parencite}[\mkbibparens] {\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{cite}} {} {\usebibmacro{postnote}} \DeclareCiteCommand*{\parencite}[\mkbibparens] {\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{citetitle}} {} {\usebibmacro{postnote}} \DeclareCiteCommand{\footcite}[\mkbibfootnote] {\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{cite}} {} {\usebibmacro{postnote}} \DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] {\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{cite}} {} {\usebibmacro{postnote}} \DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] {\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{cite}} {} {\usebibmacro{postnote}} \DeclareCiteCommand{\cbx@textcite} {\usebibmacro{cite:init}} {\usebibmacro{citeindex}% \usebibmacro{textcite}} {} {\usebibmacro{textcite:postnote}} \DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite] {\gdef\cbx@savedkeys{}% \citetrackerfalse% \pagetrackerfalse% \DeferNextCitekeyHook% \usebibmacro{cite:init}} {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}% \global\clearfield{multipostnote}} {}% \xappto\cbx@savedkeys{\thefield{entrykey},}% \iffieldequals{namehash}{\cbx@lasthash} {} {\stepcounter{textcitetotal}% \savefield{namehash}{\cbx@lasthash}}} {} {\protected@xappto\cbx@savedcites{% [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}} % textcite has nested \DeclareCiteCommand definitions for textcite and we want to use % the normal textcite context \DeclareDelimcontextAlias{cbx@textcite}{textcite} \newrobustcmd{\cbx@textcite@init}[2]{% \setcounter{textcitetotal}{0}% \setcounter{textcitecount}{0}% \def\cbx@savedcites{#1}#2\cbx@savedcites\empty} \DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} \DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{} \let\cbx@textcites@init\cbx@textcite@init \pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{} \DeclareMultiCiteCommand{\cites}{\cite}{\setunit{\multicitedelim}} \DeclareMultiCiteCommand{\parencites}[\mkbibparens] {\parencite}{\setunit{\multicitedelim}} \DeclareMultiCiteCommand{\footcites}[\mkbibfootnote] {\footcite}{\setunit{\multicitedelim}} \DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext] {\footcitetext}{\setunit{\multicitedelim}} \DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibparens\mkbibfootnote] {\smartcite}{\setunit{\multicitedelim}} \endinput