fjurt
fjurt

Reputation: 793

How to adjust the order of author names in Latex references (Journal of Finance style)

I try to replicate the Journal of Finance reference style. In order to do that, the names in the references should be ordered and written with full names as:

This is the example reference:

@article{examplesource,
  title={Title of article},
  author={LastName1, FirstName1 and LastName2, FirstName2 and LastName3, FirstName3},
  journal={Journal of Finance},
  volume={40},
  number={1},
  pages={3--73},
  year={2005}}

This is what I have defined so far (based on: https://tex.stackexchange.com/questions/379901/biblatex-how-to-match-the-journal-of-finance-bibliographic-style)

\documentclass{article}

\usepackage[style=ext-authoryear, backend=biber, giveninits=true, uniquelist = false, uniquename=init, isbn=false, maxcitenames=3, dashed=false, maxbibnames=999, doi=false, url=false]{biblatex}

\addbibresource{biblatex-examples.bib}

\setlength{\bibhang}{15pt}
\DeclareNameAlias{sortname}{family-given}
\renewcommand*{\labelnamepunct}{\addspace}

\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished]{title}{#1}

\DeclareFieldFormat{titlecase}{\MakeSentenceCase*{#1}}

\renewbibmacro*{in:}
    {\ifentrytype{article}
    {\setunit{\addcomma\space}}
    {\printtext{\bibstring{in}\intitlepunct}}}

\DeclareFieldFormat{journaltitlecase}{#1}

\renewbibmacro*{journal}{
  \ifboolexpr{
    test {\iffieldundef{journaltitle}}
    and
    test {\iffieldundef{journalsubtitle}}}
    {\printtext[journaltitle]{
       \printfield[journaltitlecase]{journaltitle}
       \setunit{\subtitlepunct}
       \printfield[journaltitlecase]{journalsubtitle}}}}

\renewbibmacro*{volume+number+eid}{
  \printfield{volume}
  \setunit{\addcomma\space}
  \printfield{eid}}

\DeclareFieldFormat[article,periodical]{volume}{{#1}}

\DeclareFieldFormat{pages}{#1}

\UndeclareInnerCiteDelims{parencite}
\DeclareInnerCiteDelims{parencite}{(}{)}

\DeclareFieldFormat{biblabeldate}{#1}
\DeclareDelimFormat[bib]{nameyeardelim}{\addcomma\space}

\ExecuteBibliographyOptions{innamebeforetitle=true} \DeclareDelimFormat[bib]{nametitledelim}{\addcomma\space}



\begin{document}
\textcite{examplesource} lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\\

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua \parencite{examplesource}.

\printbibliography
\end{document}

Upvotes: 1

Views: 1661

Answers (1)

  • you get the full given names with giveninits=false
  • the sorting you are looking is actually the default behaviour, so you just need to NOT overwrite it with \DeclareNameAlias{sortname}{family-given}

\documentclass{article}

\usepackage[style=ext-authoryear, backend=biber, giveninits=true, uniquelist = false, uniquename=init, isbn=false, maxcitenames=3, dashed=false, maxbibnames=999, doi=false, url=false,giveninits=false]{biblatex}

\addbibresource{biblatex-examples.bib}

\setlength{\bibhang}{15pt}
%\DeclareNameAlias{sortname}{family-given}
\renewcommand*{\labelnamepunct}{\addspace}

\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished]{title}{#1}

\DeclareFieldFormat{titlecase}{\MakeSentenceCase*{#1}}

\renewbibmacro*{in:}
    {\ifentrytype{article}
    {\setunit{\addcomma\space}}
    {\printtext{\bibstring{in}\intitlepunct}}}

\DeclareFieldFormat{journaltitlecase}{#1}

\renewbibmacro*{journal}{
  \ifboolexpr{
    test {\iffieldundef{journaltitle}}
    and
    test {\iffieldundef{journalsubtitle}}}
    {\printtext[journaltitle]{
       \printfield[journaltitlecase]{journaltitle}
       \setunit{\subtitlepunct}
       \printfield[journaltitlecase]{journalsubtitle}}}}

\renewbibmacro*{volume+number+eid}{
  \printfield{volume}
  \setunit{\addcomma\space}
  \printfield{eid}}

\DeclareFieldFormat[article,periodical]{volume}{{#1}}

\DeclareFieldFormat{pages}{#1}

\UndeclareInnerCiteDelims{parencite}
\DeclareInnerCiteDelims{parencite}{(}{)}

\DeclareFieldFormat{biblabeldate}{#1}
\DeclareDelimFormat[bib]{nameyeardelim}{\addcomma\space}

\ExecuteBibliographyOptions{innamebeforetitle=true} \DeclareDelimFormat[bib]{nametitledelim}{\addcomma\space}



\begin{document}
\textcite{baez/article} lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\\

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua \parencite{aksin}.

\printbibliography
\end{document}

enter image description here

Upvotes: 1

Related Questions