3

When I cite publications that have the same author and the same year but have different titles, my TeX document appears to provide some citation like "blah blah (Institute, 2016c)" ... "blah bla (Institute, 2016a)." Even though I would assume it should provide to the first mention automatically the "a" behind the year. That is what I want but what ever I try do not get.

I use biblatex with options natbib=true, style=apa, and backend=biber.

\documentclass[fontsize=12pt,oneside,headsepline]{scrbook}
\usepackage[ngerman]{babel} 
\usepackage{blindtext} 
\usepackage{graphicx} 
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage{microtype}
\usepackage[onehalfspacing]{setspace} %h
\usepackage[urlcolor = black,plainpages=false,pdfpagelabels=true, 
    colorlinks=true,linkcolor=black,citecolor=black,
    bookmarksopen=true]{hyperref} 

\usepackage[style=apa,natbib=true,backend=biber,uniquename=false, 
   pagetracker=true,sortcites=true,sorting=nyt,backref=true,
   hyperref=true]{biblatex}

\DeclareLanguageMapping{german}{german-apa}
\DeclareFieldFormat{apacase}{#1} 
\DefineBibliographyStrings{ngerman}{ 
    andothers = {{et al\adddot}},  } 

\usepackage{parskip} 
\usepackage[german]{algorithm2e} 
\usepackage{tabularx} 
\usepackage{longtable} 
\usepackage{tablefootnote}
\usepackage{lmodern} 
\usepackage{subfigure} 
\usepackage{comment} 
\usepackage{placeins} 
\usepackage{scrpage2} 
\addbibresource{BeispielQVZ.bib} 
\usepackage{nccmath} 
\usepackage{tikz} 
\usepackage{amsthm} 
\newtheoremstyle{break}
    {8pt}{}%
    {\itshape}{}%
    {\bfseries}{}%  % Note that final punctuation is omitted.
    {\newline}{}
\theoremstyle{break}
\newtheorem{mydef}{Definition}[chapter]

\usepackage{tikz} % Für Zeichnungen mit dem tikz-Package

\usepackage{tablefootnote}

    \usepackage[all]{nowidow}
    \makeatletter
    \@removefromreset{footnote}{chapter}
    \@removefromreset{footnote}{part}
    \makeatother


    \begin{document} 

[...]

I am sorry, I have a very complex document already and I tried different options in the biblatex-line.

Can you please help me to achieve that the first appearance of an author is shown as "a", the second as "b", etc.? Of course, those letters behind the years should be shown in the bibliography at the end of the document, too.

Institute, 2016a, ...

I use \citep{institute2016somestuff} for citing.

  • A quick question: Are they entries 2016a, 2016b, and 2016c by author Institute sorted alphabetically by their titles? If not, what does appear to be the sorting criterion? – Mico Dec 30 '16 at 22:57
  • @Mico Dear Mico, thanks a lot for your quick reply to this issue! After several hours of searching on various days, I decided to post this question. Just to find out minutes later, that I had to change sortcites to false. The entries, to answer your question, have been sorted alphabetically, as I find out now. Thanks! :)) – junkmaster Dec 30 '16 at 23:09
  • 1
    I realize that you are asking only for what you want (and that the question is therefore completely legitimate [so: +1]), but there is a good bibliographical reason to have your citations sorted according to some independent criterion such as 'author, then by date of publication, then by title' --- namely, it makes it simpler for the reader to navigate the bibliography. – jon Dec 30 '16 at 23:16
  • As I found out, my text now looks better but my bibliography does not. It would be nice to find all the entries listed like institute, 2016a – junkmaster Dec 30 '16 at 23:21
  • 2
    You question would be much clearer if you provided a complete, but minimal example (from \documentclass to \end{document} along with at least two relevant bibliographical entries, but without all the clearly irrelevant packages such as parskip, lmodern, tablefootnote, etc.). – jon Dec 31 '16 at 0:32
2

If I understand your setup correctly, what you really want to achieve is to have biber sort the bibliographic entries only by authors' names and publication years, but not also according to publications' titles, right? By not sorting entries according to their title fields, they will de facto be sorted according to the ordering of the first occurrences of their respective citation call-outs in the body of they document.

Because your code sets the biblatex option sorting=nyt, all entries are sorted by their authors' names, then their publication year, and then their titles. To achieve sorting by only authors' names and publication years, simply define a new sorting option called, say, ny, via a \DeclareSortingScheme directive. There's no need to set the sortcites option to false, though.

Consider the following screenshot and code. There are 3 bib entries with the exact same author and year but with different title fields. (The entries keys are formed to incorporate information about their title fields.) In the body of the document, entry inst:16c is cited before entry inst:16a. If sorting=nyt were in effect, the entry with key inst:16c would be sorted after the entry with key inst:16a, and their year labels would be 2016c and 2016a, respectively. However, because sorting=ny is in effect, entry inst:16c has 2016a as its call-out label, whereas entry inst:16a has call-out label 2016c; in addition, entry inst:16c is listed before entry inst:16a in the bibliography. Put differently, the year labels in the citation call-outs and the sorting in the bibliography are now determined by the first occurrence of the citations rather than according to the alphabetical ordering of the respective title fields. (Of course, the entries with different years are still sorted by year, irrespective of the call-out ordering.)

Is this what you want?

enter image description here

\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib} % create a dummy bib file with 5 entries
@misc{inst:15,  author="Institute", year=2015, title="zzz",}
@misc{inst:17,  author="Institute", year=2017, title="nnn",}
@misc{inst:16a, author="Institute", year=2016, title="aaa",}
@misc{inst:16b, author="Institute", year=2016, title="bbb",}
@misc{inst:16c, author="Institute", year=2016, title="ccc",}
\end{filecontents}

% I'm using 'scrarticl' instead of 'scrbook' so that output is all on a single page.
% I've also condensed the preamble to the bare minimum needed for this example.
\documentclass[fontsize=12pt,oneside,headsepline]{scrartcl}
\usepackage[ngerman]{babel} 
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc} 

\usepackage[style=apa, natbib=true, backend=biber,
   uniquename=false, pagetracker=true, sortcites=true,
   sorting=ny, backref=true, hyperref=true]{biblatex}

\addbibresource{mybib.bib}

\DeclareSortingScheme{ny}{ % see section 4.5.6 of the biblatex manual
  \sort{
    \field{presort}
  }
  \sort[final]{
    \field{sortkey}
  }
  \sort{
    \field{sortname}
    \field{author}
    \field{editor}
  }
  \sort{
    \field{sortyear}
    \field{year}
  }
}

\DeclareLanguageMapping{german}{german-apa}
\DeclareFieldFormat{apacase}{#1} 
\DefineBibliographyStrings{ngerman}{ 
    andothers = {{et~al\adddot}},  } 

% It's usually a good idea to load 'hyperref' last (with very few exceptions)
% Just for this example: set link color to 'red'
\usepackage[colorlinks=true,allcolors=red,plainpages=false, 
    pdfpagelabels=true,bookmarksopen=true]{hyperref} 

\begin{document} 
\citep{inst:16c,inst:16b,inst:16a,inst:17,inst:15}
\printbibliography
\end{document}
| improve this answer | |
  • @junkmaster -- Did this answer address and solve your issue? Please advise. – Mico Dec 31 '16 at 20:24

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.