-1

I'm using the biblatex package for my thesis (class style: book -- although technically I'm using the MastersDoctoralThesis template from Gunn and Patel*).

*source: https://www.latextemplates.com/template/masters-doctoral-thesis

Let's say I'm starting to write the thesis from Chapter 2. I cite Ref3 and Ref4 from topic2.bib using \cite{Ref3} and \cite{Ref4}; they appear in-text and in the "References" section as [1] and [2]. No problem here, since these are the first citations I've made. However, what if I wanted to combine Ref3 and Ref4 into one "Reference" entry (so [1] in-text will appear as "[1] Ref3, Ref4" in "References"). In my experience, I would use \cite{Ref3,*Ref4}. However, I have found that this is not working here. I've tried using mcite, but it seems that Ref4 is simply being... absorbed?

Am I supposed to define a "MySet" command first, and then use \mcite{MySet,*Ref3,*Ref4}?

Let's say I now move to Chapter 1. I have just added Ref1 and Ref2 from topic1.bib to Chapter 1. These appear in my "References" as [3] Ref1 and [4] Ref2, even though they appear in the text before Ref3 and Ref4 of Chapter 2. In other words, my ordering in-text is [3], [4], [1], [2]. How can I fix this?

Here is the minimal working example:

\documentclass[12pt,english,singlespacing]{MastersDoctoralThesis}
\usepackage[
    backend=bibtex, 
    natbib=true,
    mcite=true,
    style=phys,
    citestyle=numeric,
    biblabel=brackets,
    giveninits=true,
    abbreviate=false,
    doi=false, url=false, isbn=false, eprint=true,
    sortcites=true,
    block=space,
    backref=true, backrefstyle=two,
    ]{biblatex}
\addbibresource{topic1.bib}
\addbibresource{topic2.bib}
\addbibresource{topic3.bib}

\usepackage[autostyle=true]{csquotes}

...

\begin{document}

\chapter{Chapter One}

When Mr Bilbo Baggins of Bag End announced that he would shortly be celebrating his eleventifirst birthday with a party of special magnificence, there was much talk and excitement in Hobbiton \mcite{Ref1,*Ref2}. ...

\chapter{Chapter Two}

In the land of Mordor \cite{Ref3} where the shadows lie \cite{Ref4}.

...

\printbibliography[heading=bibintoc,title={References}] \end{document}

After LaTex + BibTex + 2x LaTex, my bibliography reads as

References

[1] Ref3

[2] Ref4

[3] Ref1

My sincere apologies for asking so many questions in a single post. Any guidance, as always, is highly appreciated!

  • Please consider splitting up your two different questions into two separate questions (https://tex.meta.stackexchange.com/q/7425/35864), that makes your questions easier to answer and more helpful for future readers. Please also consider adding a fully compilable example document instead of just a preamble code snippet. – moewe Jan 28 '21 at 21:46
  • biblatex has an emulation of mcite's * syntax, but it works slightly differently, see §3.9.10 mcite-like Citation Commands (note that the support for dynamic entry sets with backend=bibtex, is limited compared to backend=biber,. If you are running an older version of biblatex there might not be any set support with BibTeX.) – moewe Jan 28 '21 at 21:48
  • I don't think I quite understand your second issue. Do you have separate bibliographies for each chapter? Did you recompile with a full LaTeX, BibTeX, LaTeX, LaTeX run after you added the citations? – moewe Jan 28 '21 at 21:50
  • @moewe Thanks for your advice -- I'll be more careful about multiple questions in the future! – PhysicsHobbit Jan 30 '21 at 12:32
  • @moewe Regarding issue 1: backend=biber fails to read my aux file correctly, I'm afraid. Currently, I've included mcite=true, which groups the references but fails to recognise citations following the asterisk (i.e. in \mcite{Ref1,*Ref2}, only Ref1 appears in the "References". – PhysicsHobbit Jan 30 '21 at 12:33
  • You may have to delete your .aux, .bbl and .bcf files when you switch from backend=bibtex, to backend=biber,. If you have an editor that runs BibTeX for you, you will also have to tell it to run Biber: https://tex.stackexchange.com/q/154751/35864. – moewe Jan 30 '21 at 12:38
  • @moewe Regarding issue 2: Apologies for my lack of clarity! The issue here is that the references are not appearing in the correct order in the text. I tried including sortcites=true in the preamble, but it had no effect. – PhysicsHobbit Jan 30 '21 at 12:38
  • As I said, biblatex's mcite emulation has a slightly different syntax. You don't say \mcite{Ref1,*Ref2} to cite Ref1 and Ref2 at the same time. You need to say \mcite{MySet,*Ref1,*Ref2} where MySet is a new name that you are now giving to the 'virtual' reference entry consisting of both Ref1 and Ref2. – moewe Jan 30 '21 at 12:39
  • "Correct order" can mean many things depending on what exactly you expect. I think I will only be able to say anything useful about that if you can post a fully compilable (yet minimal) example document that shows what goes wrong. – moewe Jan 30 '21 at 12:41
  • Thanks for your advice and patience!! I've made some edits to the question(s), which I hope makes more sense. – PhysicsHobbit Jan 30 '21 at 14:38
  • Any reason why you don't accept or upvote the excellent provided answer? – Dr. Manuel Kuehner Feb 11 '21 at 07:46

1 Answers1

1

There are two issues here

  1. The mcite compatibility interface of biblatex has a slightly different syntax than mcite. Details can be found in §3.9.10 mcite-like Citation Commands of the biblatex documentation.

    In particular \mcite{Ref1,*Ref2} will not just add Ref2 to the bibliography entry of Ref1. Instead you will need to say something like \mcite{myset,*Ref1,*Ref2} to create a 'virtual' set entry myset containing both Ref1 and Ref2.

    Keep in mind that backend=bibtex, may not fully support mcite and dynamic sets. BibTeX support for a subset of the available features was added in v3.15 (2020-08-16), see https://github.com/plk/biblatex/issues/921 and https://github.com/plk/biblatex/issues/985.

  2. Because you are loading style=phys, citestyle=numeric, you get the sort order sorting=nty, so all of your entries are sorted by author, title and year and not by occurrence in the text. I see little point in separating style and citestyle here, so I suggest you use

    style=phys,
    

    which automatically sets sorting=none,.

    Alternatively, if you insist on loading different styles, force sorting=none, explicitly and do yourself the favour of specifying bibstyle=phys, instead of style=phys, so you can see what is going on.

    bibstyle=phys,
    citestyle=numeric,
    sorting=none,
    

With those two issues fixed and using a .bib file that is available on every system with biblatex, I'd go with

\documentclass[12pt,english,singlespacing]{book}
\usepackage[
  backend=bibtex, 
  natbib=true,
  mcite=true,
  style=phys,
  biblabel=brackets,
  giveninits=true,
  abbreviate=false,
  doi=false, url=false, isbn=false, eprint=true,
  block=space,
  backref=true, backrefstyle=two,
]{biblatex}
\addbibresource{biblatex-examples.bib}

\usepackage[autostyle=true]{csquotes}

\begin{document} \chapter{Chapter One} Lorem \mcite{myset,sigfridsson,worman}.

\chapter{Chapter Two} ipsum \cite{nussbaum} dolor \cite{geer}.

\printbibliography[heading=bibintoc,title={References}] \end{document}

Bibliography.

moewe
  • 175,683
  • Issue 2: perfectly fixed with bibstyle=phys and the preamble suggested -- thank you so much! Issue 1: persists -- could it be my bibtex version? I'm running on Ubuntu 20.04: BibTeX 0.99d (TeX Live 2019/Debian), kpathsea version 6.3.1. Biber produces errors but no bibliography. – PhysicsHobbit Feb 01 '21 at 10:55
  • @PhysicsHobbit Issue1 is your biblatex version. It is too old for the BibTeX emulation that was added in 2020. I think your best bet is trying to get Biber to work. Ask a new question with an MWE about the errors you get. – moewe Feb 01 '21 at 11:05