43

When using biblatex I often use \textcite. Sometimes I want to write things like "Smith's (2000) formulation of x is" instead of "Smith (2000) formulates x as". How do I achieve this? Or more generally, how do I make the author's name output by \textcite to be in the possessive case? I'm mainly looking for an English variant. This means that I want \textcite to be able to add "'s" to the author's name, e.g. to output

Knuth's (1984)

instead of

Knuth (1984)

Ideally I want a solution to be able to put any author's or authors' name in the possessive case and for it to be able to cope with other languages than English.

The following example might clarify what I'm asking for:

\documentclass{article}

\usepackage[style=authoryear-comp]{biblatex}

\usepackage{filecontents}

\begin{filecontents*}{database.bib}
@book{texbook,
    author  = {Donald E. Knuth},
    title   = {The {{\TeX}book}},
    publisher   = {Addison-Wesley},
    date    = {1984}
    }
\end{filecontents*}

\bibliography{database.bib}

\begin{document}

\textcite{texbook}% Standard use. Output: "Knuth (1984)"

\textcite{texbook}'s% Failed try to get output in the possesive case. Output: "Knuth (1984)'s"

Knuth's (1984)% The ouput that I want

\end{document}
3
  • 1
    Does the kind of references I'm trying to use conflict with convention or publishers?
    – N.N.
    Jul 4, 2011 at 12:57
  • 7
    \citeauthor{texbook}'s \citeyear{texbook} should work?
    – Seamus
    Jul 4, 2011 at 13:17
  • 2
    See also this question.
    – domwass
    Jul 4, 2011 at 14:56

5 Answers 5

35

This answer extends Philipp Lehman's method for generating a possessive labelname using a format alias. It should work for all variants of the standard author-year styles.

Note that the solution is bad for plural labelnames, where the possessive is formed with just ' and not 's. This case is probably very rare, though. Other languages may not be as easy to handle. For an example refer to a previous question, which considers Norwegian possessives.

\documentclass{article}
\usepackage[style=authoryear-comp]{biblatex}
\usepackage{filecontents}

\DeclareNameFormat{labelname:poss}{% Based on labelname from biblatex.def
  \ifcase\value{uniquename}%
    \usebibmacro{name:last}{#1}{#3}{#5}{#7}%
  \or
    \ifuseprefix
      {\usebibmacro{name:first-last}{#1}{#4}{#5}{#8}}
      {\usebibmacro{name:first-last}{#1}{#4}{#6}{#8}}%
  \or
    \usebibmacro{name:first-last}{#1}{#3}{#5}{#7}%
  \fi
  \usebibmacro{name:andothers}%
  \ifnumequal{\value{listcount}}{\value{liststop}}{'s}{}}

\DeclareFieldFormat{shorthand:poss}{%
  \ifnameundef{labelname}{#1's}{#1}}

\DeclareFieldFormat{citetitle:poss}{\mkbibemph{#1}'s}

\DeclareFieldFormat{label:poss}{#1's}

\newrobustcmd*{\posscitealias}{%
  \AtNextCite{%
    \DeclareNameAlias{labelname}{labelname:poss}%
    \DeclareFieldAlias{shorthand}{shorthand:poss}%
    \DeclareFieldAlias{citetitle}{citetitle:poss}%
    \DeclareFieldAlias{label}{label:poss}}}

\newrobustcmd*{\posscite}{%
  \posscitealias%
  \textcite}

\newrobustcmd*{\Posscite}{\bibsentence\posscite}

\newrobustcmd*{\posscites}{%
  \posscitealias%
  \textcites}

\begin{filecontents}{\jobname.bib}
@Article{bertram:sa,
  author = {Bertram, Aaron and Wentworth, Richard},
  shortauthor = {BW},
  title = {Gromov invariants for holomorphic maps on Riemann surfaces},
  journaltitle = {J.~Amer. Math. Soc.},
  volume = {9},
  number = {2},
  date = {1996},
  pages = {529--571}}
@Book{title,
  title = {A Book with No Author},
  date = {1933}}
@Book{shorthand,
  title = {A Book with No Author},
  shorthand = {ABWNA},
  date = {1933}}
@Book{label,
  label = {Fallback label},
  date = {1933}}
@Book{does,
  title = {A Book by the Does},
  author = {Doe, John and Doe, Jane},
  shortauthor = {{The Does}},
  date = {1990}}
\end{filecontents}

\addbibresource{\jobname.bib}
\bibliography{biblatex-examples}

\renewcommand{\baselinestretch}{1.25}

\begin{document}
\subsection*{cite with labelname}
posscite many authors: \posscite[3036]{aksin} \\
textcite shortauthor: \textcite[e.g.][3]{bertram:sa} \\
posscite shortauthor: \posscite[e.g.][4]{bertram:sa} \\
textcite shorthand: \textcite{kant:ku} \\
posscite shorthand: \posscite{kant:ku} \\
textcite compact: \textcite{aristotle:physics,aristotle:poetics} \\
posscite compact: \posscite{aristotle:physics,aristotle:poetics} \\
textcites: \textcites[3036]{aksin}[529]{bertram:sa} \\
posscites: \posscites[3036]{aksin}[529]{bertram:sa} \\
posscite with plural labelname (where this solution is bad): \posscite{does}
\subsection*{cite without labelname}
textcite shorthand: \textcite{shorthand} \\
posscite shorthand: \posscite{shorthand} \\
textcite title: \textcite{title} \\
posscite title: \posscite{title} \\
textcite label: \textcite{label} \\
posscite label: \posscite{label} \\
\end{document}

enter image description here

10
  • 4
    Great. I really appreciate that your solution seems to handle prenote and postnote just like any other biblatex cite command. Maybe someone should post this answer to the biblatex author so that possessive cites may be considered for implementation. I was worried that this question was too similar to the related question domwass posted but when a solution like this surfaces it seems to be a justified question.
    – N.N.
    Jul 5, 2011 at 7:57
  • 2
    @N.N. The solution relies on \DeclareCiteCommand to do all the work. Prenotes would appear within the parentheses as they do with \textcite. If you want the prenote to appear before the labelname/label, similar edits could be applied to the commands in authoryear-comp.cbx that define \cite. Possessive citations would be a nice feature to have, but a language-specific implementation would be a tall order.
    – Audrey
    Jul 5, 2011 at 13:33
  • 1
    @Psychonaut The possessive citation isn't the problem. That solution was intended for the numeric styles. Under author-year the texcite bibliography macro has more than one instance of \addspace, so it will have to be patched twice.
    – Audrey
    Oct 28, 2015 at 3:10
  • 2
    Thanks, Audrey. However, it seems your original answer no longer works at all now, at least in Biblatex 3.3, due to a recent change to the format of \DeclareNameFormat. Perhaps you might consider revising your solution?
    – Psychonaut
    Apr 1, 2016 at 13:47
  • 3
    I have adapted Audrey's code for Biblatex 3.3 and 3.4 and posted it as a separate answer to this question.
    – Psychonaut
    May 2, 2016 at 14:44
17

You could always define a "possessive cite" command yourself as follows:

\newcommand\posscite[1]{\citeauthor{#1}'s (\citeyear{#1})}

Although I can't promise it would look pretty or work properly for multiple author works...

Of course, properly speaking what you should do is use biblatex's own \DeclarCiteCommand and friends interface (and replace the parentheses with the right macro so that if you change the type of parens used, they change too...)

6
  • Ad for other languages, I guess you could patch into those parts of babel or polyglossia that deal with possessives? But as a near-monoglot I have no experience of those packages...
    – Seamus
    Jul 4, 2011 at 13:22
  • Indeed, I'm curious how this will work for multiple authors. I'm not even sure how multiple authors are written in the possessive case in English or how the possessive case is handled when the author's names are shortened with "et al.".
    – N.N.
    Jul 4, 2011 at 13:25
  • 6
    @N.N. A quick look at Chicago Manual of Style (16th ed.) suggests that it should be "Foo and Bar's (1999) work" for example. Can't find comments on what to do with et al...
    – Seamus
    Jul 4, 2011 at 13:33
  • I like your solution, but when I use it, the hyperlink from the citation to the bibliography is missing. Do you know how to get the hyperlink back?
    – Unicorn
    Sep 14, 2018 at 23:06
  • @Seamus thanks. I compile the above latex. However, it does not do cross-referencing. Especially on author1, but it does on (year).
    – aan
    Aug 20, 2019 at 22:46
14

A previous answer by Audrey provides a possessive citation command that works with older versions of Biblatex. However, this code does not work in Biblatex 3.3 due to a change to the format of \DeclareNameFormat.

The following adaptation of Audrey's code (to which I am grateful to PLK for a slight correction) should work with Biblatex 3.3. According to PLK, the \nameparts line isn't needed if you're using Biblatex 3.4. (I'm not sure whether leaving it in will cause any problems.)

\documentclass{article}
\usepackage[style=authoryear-comp]{biblatex}
\addbibresource{biblatex-examples.bib}

\DeclareNameFormat{labelname:poss}{% Based on labelname from biblatex.def
  \nameparts{#1}% Not needed if using Biblatex 3.4
  \ifcase\value{uniquename}%
    \usebibmacro{name:family}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}%
  \or
    \ifuseprefix
      {\usebibmacro{name:first-last}{\namepartfamily}{\namepartgiveni}{\namepartprefix}{\namepartsuffixi}}
      {\usebibmacro{name:first-last}{\namepartfamily}{\namepartgiveni}{\namepartprefixi}{\namepartsuffixi}}%
  \or
    \usebibmacro{name:first-last}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}%
  \fi
  \usebibmacro{name:andothers}%
  \ifnumequal{\value{listcount}}{\value{liststop}}{'s}{}}
\DeclareFieldFormat{shorthand:poss}{%
  \ifnameundef{labelname}{#1's}{#1}}
\DeclareFieldFormat{citetitle:poss}{\mkbibemph{#1}'s}
\DeclareFieldFormat{label:poss}{#1's}
\newrobustcmd*{\posscitealias}{%
  \AtNextCite{%
    \DeclareNameAlias{labelname}{labelname:poss}%
    \DeclareFieldAlias{shorthand}{shorthand:poss}%
    \DeclareFieldAlias{citetitle}{citetitle:poss}%
    \DeclareFieldAlias{label}{label:poss}}}
\newrobustcmd*{\posscite}{%
  \posscitealias%
  \textcite}
\newrobustcmd*{\Posscite}{\bibsentence\posscite}
\newrobustcmd*{\posscites}{%
  \posscitealias%
  \textcites}
5

With the new name wrapper format introduced in biblatex v3.12 (2018-10-30), Audrey's answer can be simplified quite a bit. We no longer need to redefine the whole labelname name format, we just append 's with the name wrapper.

\documentclass{article}
\usepackage[style=authoryear-comp]{biblatex}

\DeclareNameWrapperFormat{labelname:poss}{#1's}

\DeclareFieldFormat{shorthand:poss}{%
  \ifnameundef{labelname}{#1's}{#1}}

\DeclareFieldFormat{citetitle:poss}{\mkbibemph{#1}'s}

\DeclareFieldFormat{label:poss}{#1's}

\newrobustcmd*{\posscitealias}{%
  \AtNextCite{%
    \DeclareNameWrapperAlias{labelname}{labelname:poss}%
    \DeclareFieldAlias{shorthand}{shorthand:poss}%
    \DeclareFieldAlias{citetitle}{citetitle:poss}%
    \DeclareFieldAlias{label}{label:poss}}}

\newrobustcmd*{\posscite}{%
  \posscitealias%
  \textcite}

\newrobustcmd*{\Posscite}{\bibsentence\posscite}

\newrobustcmd*{\posscites}{%
  \posscitealias%
  \textcites}

\begin{filecontents}{\jobname.bib}
@article{bertram:sa,
  author       = {Bertram, Aaron and Wentworth, Richard},
  shortauthor  = {BW},
  title        = {Gromov invariants for holomorphic maps on Riemann surfaces},
  journaltitle = {J.~Amer. Math. Soc.},
  volume       = {9},
  number       = {2},
  date         = {1996},
  pages        = {529--571},
}
@book{title,
  title = {A Book with No Author},
  date  = {1993},
}
@book{shorthand,
  title     = {A Book with No Author},
  shorthand = {ABWNA},
  date      = {1993},
}
@book{label,
  label = {Fallback label},
  date  = {1993},
}
@book{does,
  title       = {A Book by the Does},
  author      = {Doe, John and Doe, Jane},
  shortauthor = {{The Does}},
  date        = {1990},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\bibliography{biblatex-examples}

\renewcommand{\baselinestretch}{1.25}

\begin{document}
\subsection*{cite with labelname}
posscite many authors: \posscite[3036]{aksin}

textcite shortauthor: \textcite[e.g.][3]{bertram:sa}

posscite shortauthor: \posscite[e.g.][4]{bertram:sa}

textcite shorthand: \textcite{kant:ku}

posscite shorthand: \posscite{kant:ku}

textcite compact: \textcite{aristotle:physics,aristotle:poetics}

posscite compact: \posscite{aristotle:physics,aristotle:poetics}

textcites: \textcites[3036]{aksin}[529]{bertram:sa}

posscites: \posscites[3036]{aksin}[529]{bertram:sa}

posscite with plural labelname (where this solution is bad): \posscite{does}

\subsection*{cite without labelname}
textcite shorthand: \textcite{shorthand}

posscite shorthand: \posscite{shorthand}

textcite title: \textcite{title}

posscite title: \posscite{title}

textcite label: \textcite{label}

posscite label: \posscite{label}
\end{document}

cite with labelname//posscite many authors: Aksın et al.’s (2006, p. 3036)//textcite shortauthor: BW (e.g. 1996, p. 3)//posscite shortauthor: BW’s (e.g. 1996, p. 4)//textcite shorthand: Kant (KU)//posscite shorthand: Kant’s (KU)//textcite compact: Aristotle (1929, 1968)//posscite compact: Aristotle’s (1929, 1968)//textcites: Aksın et al. (2006, p. 3036) and BW (1996, p. 529)//posscites: Aksın et al.’s (2006, p. 3036) and BW’s (1996, p. 529)//posscite with plural labelname (where this solution is bad): The Does’s//(1990)//cite without labelname//textcite shorthand: ABWNA//posscite shorthand: ABWNA’s//textcite title: A Book with No Author (1993)//posscite title: A Book with No Author’s (1993)//textcite label: Fallback label (1993)//posscite label: Fallback label’s (1993)

0

As a complement, here are the lines to add for a no-parentheses variant of \posscite (which is actually a possessive variant of \cite instead of \textcite).

            % Possessive Cite (no parentheses) \posscitenopar 
    
    \newrobustcmd*{\posscitenopar}{%
        \posscitealias%
        \cite}
    
    \newrobustcmd*{\Posscitenopar}{\bibsentence\posscite}
    
    \newrobustcmd*{\posscitesnopar}{%
        \posscitealias%
        \cites}

You must log in to answer this question.

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