Fix citation keys

This commit is contained in:
2024-09-30 14:09:51 +02:00
parent 4c7eca5804
commit eb5514622b

View File

@@ -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}%