使用 natbib 进行多处引用并附上单独的页码

使用 natbib 进行多处引用并附上单独的页码

我正在努力将多个引用与单独的页码结合起来。

我用过natbib参考表,但我被卡住了(如下所示)。似乎我无法同时合并多个引用和参考页码?

这就是我得到的和我想要的(下面的工作示例),

在此处输入图片描述

\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}

答案1

类似的引用命令\citet[]{}有两个部分:引用的强制标签,以及用于“精确定位”引用中的参考的可选部分。

只要不使用可选部分,\citet{}就可以单独使用来引用多个作品:\citet{a,b,c}。但显然这不适用于可选参数,因为它与哪部作品相关是模棱两可的。一般来说,这种歧义可以通过假设它是对最后的引用的文章。

如果您想要精确引用多个来源,您有(据我所知)三个选择:

  1. 切换到 biblatex,它有专门用于此目的的特殊引用命令,具体描述如下使用 biblatex 进行页面多处引用。有很多很好的理由来进行这种转换,但这并不是其中最重要的一个。(可能值得注意的是,对于 APA 风格的引用,biblatex 有一个特别精心编写、稳定且积极维护的软件包:biblatex-apa

  2. 只需按照示例中的操作操作即可:不要使用\cites[1]{a}[2]{b},因为软件会在引文之间插入“分隔符”(biblatex 提供),而是自己将其放入\cite[1]{a}; \cite[2]{b}。除非您有很多这样的分隔符,并且预计会经常更改“分隔符”,否则这样做是可以的。(如果您确实认为您可能需要更改“分隔符”,则可以为其定义一个宏,可以重新定义该宏以确保一致性。在大多数情况下,这样做会有些过头。)

  3. 如果您非常热心,可以编写一些模拟 biblatex\cites命令的东西。正如他们所说,这留给读者作为练习,尽管我相信 biblatex 代码会给您一些想法。

答案2

对于尝试类似但不需要复杂引用风格的其他读者,这里是\citesnatbib 的简单重新实现:

\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

用法:

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

结果:

根据 [2,第 213 页;1,第 19 页],本段(当然还有本节)应该……

它取自这个 TeX.SE 答案由 Jean Olivier 编写,我仅通过替换对其进行了\citen调整\citenum

就目前具体的问题来看,它有以下局限性:

  • 仅限数字引用:不支持带有作者/日期的复杂引​​用样式。
  • 无排序:引用将按照 LaTeX 中提到的顺序出现,而不是按照参考书目中的顺序出现。

相关内容