1

I want to remove separators such as , and . from my references. Furthermore I want to position the listed data of publishing from the end of the reference to after the author names. Example shown below;

From:

[1] Doe, J., John, A., & Davies,K. Journal, 100-200 (2021)

To:

[1] Doe J John A and Davies K 2021 Journal 100-200

How may I do this with the packages used below?

\usepackage[style=nature,
            sorting=none,
            doi=false, isbn=false, url=false, eprint=false]{biblatex}
\addbibresource{bibliography.bib}            
\DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{#1}}
\DeclareFieldFormat[article]{title}{}

1 Answer 1

1

biblatex offers many customisable delimiters between fields and there is no simple switch to make all of them disappear. Redefining \newunitpunct is a start, but even in a simple example there are many other commands you also need to redefine. I probably missed a few things, but this should get you going.

You can load the authoryear style with \input{authoryear.bbx} to move the year from the end of the entry to after the names. But then you need to issue \defbibenvironment{bibliography} again with a definition appropriate for numeric bibliographies.

Don't suppress the title of @article entries with \DeclareFieldFormat[article]{title}{}, biblatex-nature has the option articletitle=false, for that.

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[
  style=nature,
  articletitle=false,
  doi=false, isbn=false, url=false, eprint=false,
]{biblatex}

\makeatletter
\input{authoryear.bbx}
\makeatother

% must be delayed to counter authoryear's sort settings
\ExecuteBibliographyOptions{sorting=none,}

\DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{#1}}

\renewcommand*{\newunitpunct}{\addspace}

\DeclareNameAlias{sortname}{default}

\DeclareDelimFormat{multinamdelim}{\addspace}
\DeclareDelimFormat{finalnamedelim}{\addspace\bibstring{and}\space}

\renewcommand*{\revsdnamepunct}{}
\renewcommand*{\bibinitperiod}{}
\renewcommand*{\bibinitdelim}{}

\renewbibmacro*{date+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\iflabeldateisdate
       {\printdateextra}
       {\printlabeldateextra}}}

\renewcommand*{\bibpagespunct}{\addspace}

\defbibenvironment{bibliography}
  {\list
     {\printtext[labelnumberwidth]{%
        \printfield{labelprefix}%
        \printfield{labelnumber}}}
     {\setlength{\labelwidth}{\labelnumberwidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}%
      \renewcommand*{\makelabel}[1]{\hss##1}}
  {\endlist}
  {\item}

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite{sigfridsson}

\printbibliography
\end{document}

Sigfridsson E and Ryde U 1998 Journal of Computational Chemistry 19 377–395.

4
  • Sorry for the late response. I would like to thank you for your answer however, I found that the references are now arranged in alphabetical order instead. How can I rectify this? Jan 6, 2021 at 14:40
  • 1
    @GitGoodCodes Ooops, I missed that, sorry. Try the edited answer, please.
    – moewe
    Jan 6, 2021 at 15:06
  • This works perfectly now! Thank you. I have also noticed that the author name format changes from "Surname Initials" to "Initials Surname" after the first author. Why is this the case? Jan 6, 2021 at 15:25
  • 1
    @GitGoodCodes See the edit, please.
    – moewe
    Jan 6, 2021 at 15:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .