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}
For you extra question, try
\DeclareFieldFormat*{title}{\mkbibemph{#1}}
\DeclareFieldFormat{journaltitle}{#1}
(Or \DeclareFieldFormat[article]{title}{\mkbibemph{#1}}
instead of \DeclareFieldFormat*{title}{\mkbibemph{#1}}
to restrict the change to @article
s only.)