summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/langsci/langsci-authoryear-comp.cbx
diff options
context:
space:
mode:
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.cbx289
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