diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-ms/cbx/authortitle-comp-ms.cbx')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex-ms/cbx/authortitle-comp-ms.cbx | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-ms/cbx/authortitle-comp-ms.cbx b/Master/texmf-dist/tex/latex/biblatex-ms/cbx/authortitle-comp-ms.cbx new file mode 100644 index 00000000000..6c4e411fc80 --- /dev/null +++ b/Master/texmf-dist/tex/latex/biblatex-ms/cbx/authortitle-comp-ms.cbx @@ -0,0 +1,198 @@ +\ProvidesFile{authortitle-comp-ms.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% + \ifnumgreater{\value{textcitetotal}}{0} + {\cbx@savedcites} + {}} + +\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 |