2

I have been writing for a dissertation and struggling with referencing styles. As we know, some unis and departments are very specific in what they want...

I use the "Bath" style from biblatex and natbib commands to cite. Most of the time the command \citep does the work for my in-line citations, however I sometimes need to use multiple references with different page references eg.

(Last Name 2050, 12; Last name 2 2030, 40).

I generally do that using the \citealp command:

(\citealp[12]{last_name_fake_2050}; \citealp[40]{last_name_2_fake_2030}). 

My problem My university is asking a style which is (Last name year, page; last name year, page). For the \citep command and single references, I had managed with the code below:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[style=bath,backend=biber,maxcitenames=2,natbib=true,uniquelist=false,uniquename=false]{biblatex}
\DeclareDelimFormat[parencite, bib]{nameyeardelim}{\addspace} 
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}

\addbibresource{references.bib}

\begin{document}

\printbibliography \end{document}

However, with the \citealp command, I end up with

(Last Name,2050, 12; Last name 2,2030, 40)

and I'd like to remove the commas between the last name and the date as I had done with the \citep command. I would need about how to do this.

As an illustration:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[style=bath,backend=biber,maxcitenames=2,natbib=true,uniquelist=false,uniquename=false]{biblatex}
\DeclareDelimFormat[parencite, bib]{nameyeardelim}{\addspace} 
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}

\addbibresource{references.bib}

\begin{document} when I use citep command \citep[12]{last_name_fake_2050}

when I use citealp (\citealp[12]{last_name_fake_2050}; \citealp[40]{last_name_2_fake_2030})

\printbibliography \end{document}

with these two entries in the references.bib

@article{last_name_2_fake_2030,
    title = {Fake article 2},
    author = {Last name 2, First},
    year = {2030},
}

@article{last_name_fake_2050, title = {Fake article 1}, author = {Last Name, First}, year = {2050}, }

moewe
  • 175,683
EmR
  • 115

1 Answers1

0

Use biblatex's multicite features, then there is no need to fiddle around with several cite commands and manual parentheses. See Multiple citations with pages using BibLaTeX.

The multicite commands are not available with the natbib compatibility names, so you will have to use \parencites or \autocites.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[style=bath, backend=biber, maxcitenames=2, uniquelist=false, uniquename=false]{biblatex}

\DeclareDelimFormat[parencite, bib]{nameyeardelim}{\addspace} \DeclareFieldFormat{postnote}{\mknormrange{#1}}

\addbibresource{biblatex-examples.bib}

\begin{document} Lorem \autocite[12]{sigfridsson} ipsum \autocites[12]{sigfridsson}[40]{worman}

\printbibliography \end{document}

Lorem (Sigfridsson and Ryde 1998, 12) ipsum (Sigfridsson and Ryde 1998, 12; Worman 2002, 40)


If you insist on using \citealp, you can solve the issue by noting that \citealp is basically just \cite, so that you need to change the nameyeardelim delimiter not only in the parencite, but also in the cite context.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[
  backend=biber, 
  style=bath,
  maxcitenames=2, uniquelist=false, uniquename=false,
  natbib=true, 
]{biblatex}

\DeclareDelimFormat[cite, parencite, bib]{nameyeardelim}{\addspace} \DeclareFieldFormat{postnote}{\mknormrange{#1}}

\addbibresource{biblatex-examples.bib}

\begin{document} Lorem \autocite[12]{sigfridsson} ipsum (\citealp[12]{sigfridsson}; \citealp[40]{worman})

\printbibliography \end{document}

gives the same output.

moewe
  • 175,683