0

I have quite a long list of references in an untidy .bib file. Everything works fine except for the order of publications of the same author, written in 19xx and 20xx. Here is a MWE:

\documentclass{article}
\usepackage[backend=biber,
    sortlocale=auto,
    natbib,
    hyperref,
    style=alphabetic,
    citestyle=authoryear]{biblatex}
\addbibresource{testbib.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

.bib file:

@article{article1,
  title={The First Title},
  author={Author, A.},
  journal={Journal},
  volume={42},
  pages={1--100},
  year={1994}
}

@article{article2,
  title={The Second Title},
  author={Author, A.},
  journal={Journal},
  volume={42},
  pages={1--100},
  year={1996}
}

@article{article3,
  title={The Third Title},
  author={Author, A.},
  journal={Journal},
  volume={42},
  pages={1--100},
  year={2009}
}

Output: enter image description here

Apparently biblatex sorts the entries only by the last two digits which is the wrong order. How can I fix that in general? If there is no 'nice' solution to the problem, how can I change the order of those three entries without changing the order of the rest? As I said, my references are really untidy and still growing, so I don't want to sort them all by myself.

By the way, how can I print the title in italics and the journal in normal font? I tried

\DeclareFieldFormat{title}{\textit{#1}}
\DeclareFieldFormat{journal}{#1}

but it didn't work.

1 Answer 1

1

With style=alphabetic biblatex sorts the reference by the alphabetic label and only by the alphabetic label. This sorting is a simple string sorting, so naturally "Aut09" comes before "Aut94", which in turn comes before "Aut96". No other information is used to determine the order.

This makes sense when you look at it from the perspective of your reader (who usually does not know the entire bibliographic data of your references before consulting the bibliography) and not from your point of view (you naturally know when an article was published and may prefer a chronological order). In a normal style=alphabetic situation (more on that shortly) the reader has only the alphabetic label to go by. So when she looks up the citation in the bibliography naturally she should be able to find the references sorted by their label. Imagine, if you will, a situation where you cite many, many works of a prolific author who not only lived for a very long time, but some of whose works were also published posthumously many years after his death. In this situations there are some works from 1900 to 1960 and let's say again 1990-2010. When your reader now sees "[Aut09]" she can't know whether "09" is 1909 or 2009, so in a long list ordered by year she would not know where to look. If the list were ordered by label only, however, it would be very easy for your reader to locate the information. Only sort your references by data that is clearly indicated in the citation label. Now you may argue that this example is contrived, that no one lives long enough to have works published in two centuries in such a way that the two-letter part of the label become ambiguous and you may be right, still I would like to argue why I think the default is not that wrong after all. You might also argue that in short bibliography lists any sort of slight sort "inconsistency" might not be a big problem because your reader will find the right item sooner or later in the vicinity of the place they thought they should find the reference. By the way: This whole alphabetic label malarkey makes me think that alphabetic styles are just not really great in general. They are neither here (numeric) nor there (authoryear). If you like short and concise labels, go for numeric. If you like longer and potentially slightly more informative labels, go for authoryear. While alphabetic styles may combine the advantages of both ("short and informative") this is not guaranteed: They need not be informative, or short for that matter, and come with problems of their own.

Your situation is actually more complicated since you use citestyle=authoryear. This means that the alphabetic label in the bibliography actually save no useful purpose. After all a citation in the text actually uses the full author-year format. In that case I would just drop the alphabetic label and go for

 style=authoryear,

If you do that, your citations will be sorted by author and year (chronologically) and the information will be available in the citation label as well.

If you must retain the alphabetic label and your mixture of style=alphabetic, citestyle=authoryear, I would probably just add sorting=nyt to sort by author and year.

\documentclass{article}
\usepackage[backend=biber,
    natbib,
    style=alphabetic,
    citestyle=authoryear,
    sorting=nyt]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{article1,
  title={The First Title},
  author={Author, A.},
  journal={Journal},
  volume={42},
  pages={1--100},
  year={1994}
}

@article{article2,
  title={The Second Title},
  author={Author, A.},
  journal={Journal},
  volume={42},
  pages={1--100},
  year={1996}
}

@article{article3,
  title={The Third Title},
  author={Author, A.},
  journal={Journal},
  volume={42},
  pages={1--100},
  year={2009}
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

The references appear sorted in the order Aut94, Aut96, Aut09

For you extra question, try

\DeclareFieldFormat*{title}{\mkbibemph{#1}}
\DeclareFieldFormat{journaltitle}{#1}

Article titles are italic, the journal name is upright again.

(Or \DeclareFieldFormat[article]{title}{\mkbibemph{#1}} instead of \DeclareFieldFormat*{title}{\mkbibemph{#1}} to restrict the change to @articles only.)

1
  • Thanks a lot! The sorting-command did the trick. Your DeclareFieldFormat-commands also work (although I decided to stick to the default there... somehow it looks more professional after all :D ). I agree with your point of view to the sorting of the last two digits. However, I'm just the script writer of another one who would like to have the above asked way of sorting. Have a nice day!
    – Carolin
    Commented Sep 3, 2018 at 20:31

You must log in to answer this question.

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