我正在努力将多个引用与单独的页码结合起来。
我用过此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}
。但显然这不适用于可选参数,因为它与哪部作品相关是模棱两可的。一般来说,这种歧义可以通过假设它是对最后的引用的文章。
如果您想要精确引用多个来源,您有(据我所知)三个选择:
切换到 biblatex,它有专门用于此目的的特殊引用命令,具体描述如下使用 biblatex 进行页面多处引用。有很多很好的理由来进行这种转换,但这并不是其中最重要的一个。(可能值得注意的是,对于 APA 风格的引用,biblatex 有一个特别精心编写、稳定且积极维护的软件包:biblatex-apa。
只需按照示例中的操作操作即可:不要使用
\cites[1]{a}[2]{b}
,因为软件会在引文之间插入“分隔符”(biblatex 提供),而是自己将其放入\cite[1]{a}; \cite[2]{b}
。除非您有很多这样的分隔符,并且预计会经常更改“分隔符”,否则这样做是可以的。(如果您确实认为您可能需要更改“分隔符”,则可以为其定义一个宏,可以重新定义该宏以确保一致性。在大多数情况下,这样做会有些过头。)如果您非常热心,可以编写一些模拟 biblatex
\cites
命令的东西。正如他们所说,这留给读者作为练习,尽管我相信 biblatex 代码会给您一些想法。
答案2
对于尝试类似但不需要复杂引用风格的其他读者,这里是\cites
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
用法:
According to \cites[p. 213]{Weber2013}[p. 19]{Veblen2005:1899}, this paragraph---and certainly this section---should be \ldots \\
结果:
它取自这个 TeX.SE 答案由 Jean Olivier 编写,我仅通过替换对其进行了\citen
调整\citenum
。
就目前具体的问题来看,它有以下局限性:
- 仅限数字引用:不支持带有作者/日期的复杂引用样式。
- 无排序:引用将按照 LaTeX 中提到的顺序出现,而不是按照参考书目中的顺序出现。