12

I am struggling to combine multiple citations with individual page numbers.

I have used this natbib reference sheet, but I am stuck (with what is displayed below). It seems as I cannot combine multiple citations and reference page numbers at the same time?

This is what I got and what I would like (working example below),

enter image description here

\documentclass[11pt,letter]{article}
     \usepackage{hyperref}
     \usepackage[round]{natbib}

\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@book{Veblen2005:1899,
    author = {Veblen, Thorstein},
    Isbn = {978-81-87879-29-9},
    publisher = {Aakar Books},
    title = {The Theory of the Leisure Class},
    subtitle = {An Economic Study of Institutions},
    Year = {[1899] 2005}}

@book{Weber2013,
    Author = {Weber, Max},
    Isbn = {9781135973988},
    Language = {en},
    Month = {jul},
    Publisher = {Routledge},
    Title = {The Protestant Ethic and the Spirit of Capitalism},
    Year = {[1905] 2013}} 

\end{filecontents*}

\begin{document}

% These citations will work but in the apalike bibstyle they will not be sorted
% in citation order (the first citation is [2]).
According to \citet[p. 19]{Weber2013, Veblen2005:1899}, this paragraph---and certainly this section---should be \ldots \\

\noindent I would like it show up like this,\\

According to Weber (2013, p. 213); Veblen (2005, p. 19), this paragraph---and certainly this section---should be \ldots \\

\noindent Also, why isn't the year in brackets show in the actual text (Weber ([1905] 2013, p. 213); Veblen ([1899] 2005, p. 19))?

\bibliography{\jobname}
\bibliographystyle{cell}
\end{document}
Eric Fail
  • 1,077

2 Answers2

7

A citation command like \citet[]{} has two parts: the mandatory tag for the citation, and the optional part to "pinpoint" the reference within the citation.

So long as you don't use the optional part, \citet{} can be used on its own to cite multiple works: \citet{a,b,c}. But obviously that doesn't work with the optional argument, because it's ambiguous which work it relates to. In general, that ambiguity is resolved by assuming it is a pinpoint citation for the last work cited.

If you want pinpoint citations for multiple sources, you have (as far as I know) three options:

  1. Switch to biblatex, which has special citation commands intended for exactly this, which are described in multiplace citations with pages using biblatex. There are many good reasons to make that switch, of which this cannot be said to be one of the most important. (It may be worth noting that for APA-style citations biblatex has a particularly carefully written, stable, and actively maintained package: biblatex-apa.)

  2. Simply do what you have done in your example: instead of \cites[1]{a}[2]{b}, where the software inserts the "separator" between the citations, which is what biblatex provides, put it in yourself \cite[1]{a}; \cite[2]{b}. Unless you have lots of these and expect to change the "separator" rather often, this is fine. (If you did think you might want to change the "separator" you could always define a macro for it, which could be redefined to ensure consistency. For most cases that would be overkill.)

  3. If you are very enthusiastic, write something that emulates the biblatex \cites command. This is left, as they say, as an exercise for the reader, though I'm sure the biblatex code would give you some ideas.

Paul Stanley
  • 18,151
3

For any other readers that try to attempt something similar but do not require a complex citation style, here is a simple reimplementation of \cites for natbib:

\makeatletter
\newcommand{\citecomment}[2][]{\citenum{#2}#1\citevar}
\newcommand{\citeone}[1]{\citecomment{#1}}
\newcommand{\citetwo}[2][]{\citecomment[,~#1]{#2}}
\newcommand{\citevar}{\@ifnextchar\bgroup{;~\citeone}{\@ifnextchar[{;~\citetwo}{]}}}
\newcommand{\citefirst}{\@ifnextchar\bgroup{\citeone}{\@ifnextchar[{\citetwo}{]}}}
\newcommand{\cites}{[\citefirst}
\makeatother

Usage:

According to \cites[p. 213]{Weber2013}[p. 19]{Veblen2005:1899}, this paragraph---and certainly this section---should be \ldots \\

Result:

According to [2, p. 213; 1, p. 19], this paragraph—and certainly this
section—should be . . .

It is taken from this TeX.SE answer by Jean Olivier, I only adjusted it by replacing \citen with \citenum.

In the context of the concrete present question, it has the following limitations:

  • only numerical citations: No complex citation styles with author/date are supported.
  • no sorting: Citations will appear in the order mentioned in LaTeX, not by their order in the bibliography.