14

I am trying to understand how to change the order in which citations appear when I use multiple entries. Unfortunately the BibLatex documentation is not really helpful, its so complicated.

Lets say I have this citation \citep{Smith2003,Black2011,Church2012} I want them to appear (Smith, 2003; Black, 2011; Church, 2012), but I am instead getting (Black, 2011; Church, 2012; Smith, 2003).

I presume it is sorting them alphabetically by default. How do I change this? I don't want to change the order in which they appear in the Bibliography, they're alphabetical and I want them that way. Its the in-citation ordering I want to change.

Is there a way to tell it not to sort them and put them in the order I put them when doing citations with multiple references?

  • 4
    See the documentation of the option sortcites. – Ulrike Fischer May 14 '15 at 16:50
  • Cheers, I was looking at citeorder and couldn't understand anything! Is there any option to make them sort by year instead of no sorting or alphabetical? – jbx May 14 '15 at 16:56
  • By default it uses either the sorting of the bibliography or no sorting. Other sortings are imho possible but rather tricky to implement. – Ulrike Fischer May 14 '15 at 17:12
  • Thanks. Well this is enough. I can put the cite ordering in the way I like anyway in this way, not that 2 or 3 citations need to be automated. – jbx May 14 '15 at 18:03
  • biblatex allows for a different sort order in citations and the bibliography, until version 2.9a that is. As soon as I have the new version up and running, I will investigate about version 3.0. – moewe May 15 '15 at 17:28
5

See Biblatex: how to automatically sort citation by year (sortcites=ynt) when references are sorted by name (sorting=nyt) for why this is potentially a bad idea.

You can specify the sorting of the bibliography separately from the sorting of the citations (enabled via sortcites).

In the pre-biblatex 3.0 days you would just have used an optional argument to \printbibliography, but now (i.e. starting from version 3.0) you have to use an optional argument to a new "refcontext" environment and wrap the bibliography in said environment.

In the following example, the citation sorting order is set globally at loading time sorting=ydnt. We need the \assignrefcontextentries[]{*} to make citations pick up the global refsection instead of falling back to the last \printbibliography.

The order for the bibliography is determined by the optional argument to the refcontext environment in which the \printbibliography is wrapped, the order is ynt (i.e. the exact opposite of the citation order).

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,style=authoryear,sorting=ydnt,sortcites]{biblatex}
\addbibresource{biblatex-examples.bib}

\assignrefcontextentries[]{*}
\begin{document}
\cite{worman,geer,baez/article,wilde,knuth:ct:a,knuth:ct:b}

\begin{refcontext}[sorting=ynt]
\printbibliography
\end{refcontext}
\end{document}

enter image description here

So specify the citation sorting order globally (and let all entries pick that up with \assignrefcontextentries[]{*}) and the order for the bibliography in the refcontext for the relevant \printbibliography.

  • Thanks for the answer, but this gives me an "empty bibliography" warning, and no bibliography. If I comment out the refcontext environment it works, albeit with the wrong sorting in the bibliography. In case it matters, all of the citations (but not the \addbibresource commands) are in \include files. (BibLaTeX 3.1) – Flyto May 5 '16 at 16:30
  • @SimonW Can you update to version 3.3 and try again? If that doesn't help, please ask a new question with an MWE that demonstrates the problem. – moewe May 5 '16 at 16:36
  • 1
    Biblatex 3.6/Biber 2.5 appears to break this. Presumably a bug? See tex.stackexchange.com/questions/332978/… – cfr Oct 7 '16 at 0:54
0

If you just want your multi-citations to appear in the order that you cite them, while keeping your bibliography sorted, you need to specify sortcites=false when you load biblatex.

For example:

\usepackage[style=authoryear,sorting=nyt,sortcites=false]{biblatex}

I owe this to @UlrikeFischer's comment, but because I missed it on first read, I thought I would add it as an actual answer.

-1

This is very simple, you just need to specify in the preamble:

\usepackage[comma]{natbib}

See more in: https://es.sharelatex.com/learn/Bibliography_management_with_natbib

  • 1
    What does this have to do with the order of authors in a citation? – jbx Mar 2 '17 at 15:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.