Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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 a looking for an English variant. This mean 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}
share|improve this question
    
Does the kind of references I'm trying to use conflict with convention or publishers? –  N.N. Jul 4 '11 at 12:57
3  
\citeauthor{texbook}'s \citeyear{texbook} should work? –  Seamus Jul 4 '11 at 13:17
2  
See also this question. –  domwass Jul 4 '11 at 14:56

2 Answers 2

up vote 18 down vote accepted

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

share|improve this answer
3  
+1 very nice. Thanks. –  Alan Munn Jul 5 '11 at 5:02
2  
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 '11 at 7:57
    
@Alan You're welcome. Thanks for the upvote. –  Audrey Jul 5 '11 at 13:10
1  
@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 '11 at 13:33

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...)

share|improve this answer
    
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 '11 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 '11 at 13:25
3  
@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 '11 at 13:33

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.