I'd like to change the authoryear citations using \parencite
, so that authors appear as:
(AUTHOR, year) and/or (AUTHOR, year, p.) (one page) (AUTHOR, year, pp.) (multiple pages)
So far I managed to change last names to uppercase (not my choice, but I'm trying to implements this) in citations and in the bibliography using:
\renewcommand{\mkbibnamefirst}[1]{\MakeUppercase{#1}}
\renewcommand{\mkbibnamelast}[1]{\MakeUppercase{#1}}
\renewcommand{\mkbibnameprefix}[1]{\MakeUppercase{#1}}
\renewcommand{\mkbibnameaffix}[1]{\MakeUppercase{#1}}
\DeclareNameFormat{author}{%
\ifthenelse{\value{listcount}=1}
{\MakeUppercase{#1}%
\ifblank{#3}{}{\addcomma\space #3}}
{\ifblank{#3}{}{#3\space}%
\MakeUppercase{#1}}%
\ifthenelse{\value{listcount}<\value{liststop}}
{\addcomma\space}
{}}
I have also tried to change multi-author delimiters in-text \parencite
citations using
\renewcommand*{\finalnamedelim}{;\space}
\renewcommand*{\multicitedelim}{;\space}
So that references look like:
(AUTHOR1; AUTHOR2; AUTHOR3, year).
But it didn't work.
I would also like to set all multi-author names as last-first in the references list, separated by semicolons, but the following didn't work either:
\DeclareNameAlias{sortname}{last-first}
I'm using the following in my preamble:
\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{EB Garamond}
\setsansfont{Candara}
\setmonofont{Consolas}
\usepackage{polyglossia}
\setmainlanguage{brazil}
\usepackage{csquotes}
\usepackage[style=historian,doi=false,citestyle=authoryear]{biblatex}
\DefineBibliographyStrings{brazil}{namedash={---},volumeof={de},url={Disponível em: }}
\renewcommand{\mkbibnamefirst}[1]{\MakeUppercase{#1}}
\renewcommand{\mkbibnamelast}[1]{\MakeUppercase{#1}}
\renewcommand{\mkbibnameprefix}[1]{\MakeUppercase{#1}}
\renewcommand{\mkbibnameaffix}[1]{\MakeUppercase{#1}}
\DeclareNameFormat{author}{%
\ifthenelse{\value{listcount}=1}
{\MakeUppercase{#1}%
\ifblank{#3}{}{\addcomma\space #3}}
{\ifblank{#3}{}{#3\space}%
\MakeUppercase{#1}}%
\ifthenelse{\value{listcount}<\value{liststop}}
{\addcomma\space}
{}}
Best Answer
I do not know what the
historian
style is (it's not a standard one), but I see you usecitestyle=authoryear
anyway, so this should be the same.The example below does what you want, I believe. It uses the
biblatex
example bibliography. Note that some years have letters after them, this happens when the same author has several works in the same year.Explanation
If you want to know the nitty gritty, compare what I have here with what's in
authoryear.cbx
, you should see what I changed. However, in short:\renewcommand*{\nameyeardelim}{\addcomma\addspace}
to make sure name and year are separated by a space and a commacite_p
, basically a copy ofcite
, but added the pages bit at the endparencite
to use our customcite_p
.Update
Fixed some bugs, as per comments below