2

With authoryear.cbx citation style – \textcite “Author (2012)” or \parencite “(Author 2012)” – you’ll usually get lowercase letter suffixes if there are multiple entries by the same author(s) from a single year: “Author (2013b)”. Otherwise the (mandatory) year part disambiguates multiple entries by the same author(s) and serves to show that there is a citation (with accompanying bibliography entry) at all. Page numbers and the like may be appended to the year with a colon prefix: “Author (2012:123)” / “(Author 2012:123)”.

That’s a very useful style if one cites authors who wrote several texts relevant to your work. In some cases, though, the bibliography hardly contains multiple entries for authors, i.e. the year becomes redundant. A simple author citation style would suffice then – “Author” or “(Author)” –, although \textcite (and perhaps \autocite) should probably use some font styling, e.g. small caps or italics “Author”, to emphasize that the name is to be treated as a citation and does not just appear arbitrarily.

There can, of course, still arise the need for disambiguation. This could be done by adding the (possibly shortened) year – “Author14” / “Author ’14” / “Author2014” / “Author 2014” / “Author (2014)” – or by an alphabetic or numeric index: “AuthorA” / “Author a” / “Author (a)” / “Authora” // “Author1” / “Author 1” / “Author1”. I tend to prefer superscript letters that cannot be mistaken for footnote marks.

Is there an author.cbx that I overlooked which accomplishes just that?

Would you derive such a style from authoryear.cbx or from something else? What additional code is necessary?

\documentclass{scrartcl}
\usepackage[style=authoryear]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{foo12, Author={A. Uthor}, Title={Some Title}, Year={2012}, Publisher={Standard Press}, Address={Global}}
@book{foo13a, Author={A. Uthor}, Title={Another Title}, Year={2013}, Publisher={Standard Press}, Address={Global}}
@book{foo13b, Author={A. Uthor}, Title={Boring Title}, Year={2013}, Publisher={Standard Press}, Address={Global}}
@book{foos10, Author={A. Uthor and A. Uteur}, Title={International Title}, Year={2010}, Publisher={Standard Press}, Address={Global}}
@book{foos11, Author={A. Uthor and C. Utor}, Title={Collaboration Title}, Year={2011}, Publisher={Standard Press}, Address={Global}}
@book{foos12, Author={A. Uteur and B. Uteur}, Title={Foreign Title}, Year={2012}, Publisher={Standard Press}, Address={Global}}
@book{bar14, Author={B. Uteur}, Title={Interesting Title}, Year={2014}, Publisher={Standard Press}, Address={Global}}
@book{baz14, Author={A. Uteur}, Title={New Title}, Year={2014}, Publisher={Standard Press}, Address={Global}}
\end{filecontents}
\addbibresource{\jobname.bib}
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}} % smallcaps for last names
\begin{document}
Let’s cite some book \autocite{foo12} or a particular page therein \autocite[123]{foo12}.

Its author also published two works during the following year \autocite{foo13a,foo13b}.

Our friend did two collaborations \autocite{foos10,foos11},
but others worked together as well \autocite{foos12}.

Those two authors with same last name are also cited individually \autocite{bar14,baz14}.
\printbibliography
\end{document}

PS: I don’t like it when author-year citation styles are combined with a bibliography style where the authors come first, but the year comes (almost) last. I also dislike inconsistent name lists like “Uthor, A. and A. Uteur”, but that’s another story.

  • 1
    Regarding your PS: The inconsistent name thing can be mended by \DeclareNameAlias{sortname}{last-first} (I don't really understand the whole \DeclareNameAlias{sortname}{last-first/first-last} either). For authoryear styles, there is the mergedate option (see the authoryear example) to deal with the placement of year/date in the bibliography. – moewe Feb 13 '14 at 13:35
  • 1
    The problem with your request is to make biblatex disambiguate between different works by the same author (this is currently only implemented for works with the same date/the same title extrayear/extratitle). Besides, I do not think this is a particularly good idea: Author year and author title styles can give the reader (depending on his familiarity with the literature and the output of the author) a pretty good idea about the cited work without having to read the bibliography, you will take some of that information away from the reader. – moewe Feb 13 '14 at 13:56
  • Furthermore, a simple author only style makes it - as you note yourself - quite hard, at least on a swift read, to distinguish the difference between a citation and you just mentioning a name. Plus a "full" author year style citation does not take up a lot of space compared to an author-only one. (Just my two cents.) – moewe Feb 13 '14 at 13:59
2

It seems I was very wrong when I wrote in my comment earlier that there is no way for biblatex to tell whether one author (better: labelname) wrote one or more works. There is even a test for it: \ifsingletitle (see p. 174 of the biblatex documentation):

Expands to <true> if there is only one work by the labelname name in the bibliography, and to <false> otherwise. If there is no labelname name at all for the entry, then this expands to <true>if there is only one work with the labeltitle title in the bibliography and <false> otherwise. If neither labelname nor labeltitle are set for an entry, this will always expand to <false>. Note that this feature needs to be enabled explicitly with the package option singletitle.

So a very small modification to authoryear's cite macro,

\newbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\addspace}}
       {\printnames{labelname}%
        \setunit{\nameyeardelim}}%
     \ifsingletitle% this is new
       {}% do not print year if only work by labelname
       {\usebibmacro{cite:labelyear+extrayear}}}% print year to disambiguate
    {\usebibmacro{cite:shorthand}}}

gives us "Name" if there is only one work by that particular author, and "Name Year[+extrayear]" if there are more.

There might be ways to achieve "Author 1", "Author 2" etc. pp., but I thought "Author Year" to be the most natural (and given the format of the bibliography the easiest to find).

MWE

\documentclass{scrartcl}
\usepackage[style=authoryear,singletitle]{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@book{foo12, Author={A. Uthor}, Title={Some Title}, Year={2012}, Publisher={Standard Press}, Address={Global}}
@book{foo13a, Author={A. Uthor}, Title={Another Title}, Year={2013}, Publisher={Standard Press}, Address={Global}}
@book{foo13b, Author={A. Uthor}, Title={Boring Title}, Year={2013}, Publisher={Standard Press}, Address={Global}}
@book{foos10, Author={A. Uthor and A. Uteur}, Title={International Title}, Year={2010}, Publisher={Standard Press}, Address={Global}}
@book{foos11, Author={A. Uthor and C. Utor}, Title={Collaboration Title}, Year={2011}, Publisher={Standard Press}, Address={Global}}
@book{foos12, Author={A. Uteur and B. Uteur}, Title={Foreign Title}, Year={2012}, Publisher={Standard Press}, Address={Global}}
@book{bar14, Author={B. Uteur}, Title={Interesting Title}, Year={2014}, Publisher={Standard Press}, Address={Global}}
@book{baz14, Author={A. Uteur}, Title={New Title}, Year={2014}, Publisher={Standard Press}, Address={Global}}
\end{filecontents*}

\DeclareNameAlias{sortname}{last-first}

\addbibresource{\jobname.bib}
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}} % smallcaps for last names

\newbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\addspace}}
       {\printnames{labelname}%
        \setunit{\nameyeardelim}}%
     \ifsingletitle
       {}%
       {\usebibmacro{cite:labelyear+extrayear}}}%
    {\usebibmacro{cite:shorthand}}}

\begin{document}
Let’s cite some book \autocite{foo12} or a particular page therein \autocite[123]{foo12}.

Its author also published two works during the following year \autocite{foo13a,foo13b}.

Our friend did two collaborations \autocite{foos10,foos11},
but others worked together as well \autocite{foos12}.

Those two authors with same last name are also cited individually \autocite{bar14,baz14}.
\printbibliography
\end{document}

example output: Uthor 2012, Uthor 2012, p. 123; Uthor 2013a; Uthor 2013b; Uthor and A. Uteur, Uthor and Utor; A. Uteur and B. Uteur

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.