diff options
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/langsci/langsci-authoryear-comp.cbx')
-rw-r--r-- | Master/texmf-dist/tex/xelatex/langsci/langsci-authoryear-comp.cbx | 289 |
1 files changed, 289 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/xelatex/langsci/langsci-authoryear-comp.cbx b/Master/texmf-dist/tex/xelatex/langsci/langsci-authoryear-comp.cbx new file mode 100644 index 00000000000..12638193071 --- /dev/null +++ b/Master/texmf-dist/tex/xelatex/langsci/langsci-authoryear-comp.cbx @@ -0,0 +1,289 @@ +\ProvidesFile{sp-authoryear-comp.cbx} + +\ExecuteBibliographyOptions{labeldate,uniquename,uniquelist,autocite=inline} +% disabled sortcites option, since it was sorting by name, instead of +% year, and we often want to keep citations in the order chosen by the +% author +\newbool{cbx:parens} + +\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}{% Based on cite bib macro from authoryear-comp.cbx + \iffieldundef{shorthand} + {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}} + {\printtext[bibhyperref]{% Include labelname in hyperlink + \DeclareFieldAlias{bibhyperref}{default}% Prevent nested hyperlinks + \usebibmacro{cite:label}% + \setunit{\addspace}% + \usebibmacro{cite:labelyear+extrayear}}% + \usebibmacro{cite:reinit}} + {\iffieldequals{namehash}{\cbx@lasthash} + {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND + \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)} + {\setunit{\addcomma}% + \usebibmacro{cite:extrayear}} + {\setunit{\compcitedelim}% + \usebibmacro{cite:labelyear+extrayear}% + \savefield{labelyear}{\cbx@lastyear}}} + {\printtext[bibhyperref]{% Include labelname in hyperlink + \DeclareFieldAlias{bibhyperref}{default}% Prevent nested hyperlinks + \printnames{labelname}% + \setunit{\nameyeardelim}% + \usebibmacro{cite:labelyear+extrayear}}% + \savefield{namehash}{\cbx@lasthash}% + \savefield{labelyear}{\cbx@lastyear}}}} + {\usebibmacro{cite:shorthand}% + \usebibmacro{cite:reinit}}% + \setunit{\multicitedelim}} + +\newbibmacro*{citeyear}{% + \iffieldundef{shorthand} + {\iffieldundef{labelyear} + {\usebibmacro{cite:label}% + \usebibmacro{cite:reinit}} + {\iffieldequals{namehash}{\cbx@lasthash} + {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND + \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)} + {\setunit{\addcomma}% + \usebibmacro{cite:extrayear}} + {\setunit{\compcitedelim}% + \usebibmacro{cite:labelyear+extrayear}% + \savefield{labelyear}{\cbx@lastyear}}} + {\usebibmacro{cite:labelyear+extrayear}% + \savefield{namehash}{\cbx@lasthash}% + \savefield{labelyear}{\cbx@lastyear}}}} + {\usebibmacro{cite:shorthand}% + \usebibmacro{cite:reinit}}% + \setunit{\multicitedelim}} + +\renewbibmacro*{textcite}{% Based on textcite bib macro from authoryear-comp.cbx + \iffieldequals{namehash}{\cbx@lasthash} + {\iffieldundef{shorthand} + {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND + \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)} + {\setunit{\addcomma}% + \usebibmacro{cite:extrayear}} + {\setunit{\compcitedelim}% + \usebibmacro{cite:labelyear+extrayear}% + \savefield{labelyear}{\cbx@lastyear}}} + {\setunit{\compcitedelim}% + \usebibmacro{cite:shorthand}% + \global\undef\cbx@lastyear}} + {\ifnameundef{labelname} + {\printtext[bibhyperref]{% Include labelname in hyperlink + \DeclareFieldAlias{bibhyperref}{default}% Prevent nested hyperlinks + \iffieldundef{shorthand} + {\usebibmacro{cite:label}% + \setunit{% + \global\booltrue{cbx:parens}% + \addspace\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \usebibmacro{cite:labelyear+extrayear}} + {\usebibmacro{cite:shorthand}}% + \ifthenelse{\iffieldundef{postnote}\AND + \(\value{multicitetotal}=0\AND\value{citetotal}=1\)} + {\bibcloseparen% Include closing parenthesis in hyperlink + \global\boolfalse{cbx:parens}} + {}}} + {\printtext[bibhyperref]{% Include labelname in hyperlink + \DeclareFieldAlias{bibhyperref}{default}% Prevent nested hyperlinks + \printnames{labelname}% + \setunit{% + \global\booltrue{cbx:parens}% + \addspace\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\iffieldundef{labelyear} + {\usebibmacro{cite:label}} + {\usebibmacro{cite:labelyear+extrayear}}% + \savefield{labelyear}{\cbx@lastyear}} + {\usebibmacro{cite:shorthand}% + \global\undef\cbx@lastyear}% + \ifthenelse{\iffieldundef{postnote}\AND + \(\value{multicitetotal}=0\AND\value{citetotal}=1\)} + {\bibcloseparen% Include closing parenthesis in hyperlink + \global\boolfalse{cbx:parens}} + {}}% + \savefield{namehash}{\cbx@lasthash}}}% + \setunit{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \multicitedelim}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperref]{\printfield{shorthand}}} + +\newbibmacro*{cite:label}{% + \iffieldundef{label} + {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}} + {\printtext[bibhyperref]{\printfield{label}}}} + +\newbibmacro*{cite:labelyear+extrayear}{% + \iffieldundef{labelyear} + {} + {\printtext[bibhyperref]{% + \printfield{labelyear}% + \printfield{extrayear}}}} + +\newbibmacro*{cite:extrayear}{% + \iffieldundef{extrayear} + {} + {\printtext[bibhyperref]{\printfield{extrayear}}}} + +\newbibmacro*{textcite:postnote}{% + \usebibmacro{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}}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\cite} + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citeyear}} + {} + {\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{citeyear}} + {} + {\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{\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{\smartcites}[\iffootnote\mkbibparens\mkbibfootnote]{\smartcite} + {\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\textcites}{\textcite}{} + +\renewcommand*{\nameyeardelim}{\addspace} + +\let\citealt\cite +\let\citet\textcite +\let\Citet\Textcite +\newcommand{\pgcitep}[2]{(\cite{#1}:~#2)} +\newcommand{\pgcitealt}[2]{\cite{#1}:~#2} +\newcommand{\pgcitet}[2]{\citeauthor{#1} (\citeyear{#1}:~#2)} +\newcommand{\pgposscitet}[2]{\citeauthor{#1}'s (\citeyear{#1}:~#2)} +\let\citep\parencite + +\DeclareCiteCommand{\citeauthor} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\ifciteindex + {\indexnames{labelname}} + {}% + \printtext[bibhyperref]{\printnames{labelname}}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citeyear} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\printfield[bibhyperref]{year}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citeyearpar}[\mkbibparens] + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\printfield[bibhyperref]{year}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\posscitet} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}} + {\printtext[bibhyperref]{\printnames{labelname}'s \printfield[parens]{year}}} + {} + {} + +\DeclareCiteCommand{\possciteauthor} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}} + {\printtext[bibhyperref]{\printnames{labelname}'s}} + {} + {} + +\renewcommand*{\multicitedelim}{\addcomma\space} + + \endinput |