diff --git a/config/bibliography.tex b/config/bibliography.tex index 305a3dc..a85f9e3 100644 --- a/config/bibliography.tex +++ b/config/bibliography.tex @@ -1,48 +1,35 @@ \usepackage[ backend=biber, - style=alphabetic, + style=ext-authoryear-comp, backref=true,% Show page numbers where citations appear maxbibnames=99,% Show all authors in bibliography maxalphanames=1,% Show only one author in citations keys maxcitenames=1,% Show only one authors in citations in text + uniquelist=false, % Force to show only one author in citations ]{biblatex} -% Define citation style to be [Author, Year] -% From https://tex.stackexchange.com/a/176119 -\DeclareLabelalphaTemplate{ - \labelelement{% Author - \field[final]{shorthand} - \field{labelname} - \field{label} - } - \labelelement{% Comma - \literal{,\addhighpenspace} - } - \labelelement{% Year - \field{year} - } -} -\DeclareLabelalphaNameTemplate{% Use prefix + family name for 'Author' in citation keys - \namepart[use]{prefix} - \namepart{family} -} -\renewcommand*{\labelalphaothers}{} % Remove "et al." in citation keys +% Use square brackets instead of parentheses for citations (https://tex.stackexchange.com/a/499667) +\DeclareOuterCiteDelims{cite}{\bibopenbracket}{\bibclosebracket} +\DeclareInnerCiteDelims{textcite}{\bibopenbracket}{\bibclosebracket} +\DeclareOuterCiteDelims{parencite}{\bibopenbracket}{\bibclosebracket} -% Define \textcite to be Author [Yeara] (magically defined by Copilot) -\DeclareCiteCommand{\textcite} -{\usebibmacro{prenote}} -{% - \ifciteindex{\indexnames{labelname}}{}% - \bibhyperref{\printnames{labelname}}% Author - \setunit{\addspace}% Space - \printtext[brackets]{\bibhyperref{\printdateextra}}% Year +\DeclareDelimFormat{nameyeardelim}{\addcomma\space} % Add comma between author and year in citations + +% Include the author's name in the hyperlink to the reference (https://tex.stackexchange.com/a/499667) +\DeclareFieldFormat{linkallcite}{% + \DeclareFieldFormat{bibhyperref}{##1}% + \bibhyperref{#1}% +} +\AtIntrocite{\DeclareFieldFormat{linkallcite}{#1}} + +\letbibmacro{oldcite}{cite} +\renewbibmacro{cite}{% + \printtext[linkallcite]{\usebibmacro{oldcite}}% } -{\multicitedelim} -{\usebibmacro{postnote}} % Remove some fields from bibliography \AtEveryBibitem{ - \ifentrytype{book}{}{ + \ifentrytype{book}{}{ % Keep ISBN only for books \clearfield{isbn}% } \clearfield{day}%