[Tex/LaTex] multiple citations with individual page numbers using natbib

citingnatbib

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}

Best Answer

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.