我希望natbib
在 bibtex 中将包与 bibliographystyle 一起使用apalike
,并在参考书目中使用特定类型的作者年份排序。我希望项目通常根据作者姓名的字母顺序进行排序/排列,但对于已知多个项目的作者,项目应根据出版年份排序。单一作者项目应与有两个作者的项目分开,后者应与有三个或更多作者的项目分开。
apalike
接近我想要实现的目标,但也存在一些问题。只要只有单一作者的出版物,我就能得到我想要的结果:项目按作者的姓氏排序。当已知同一位作者有多个单一作者的项目时,它们将根据出版年份排序。到目前为止,一切都很好。
但是,当同一作者的已知项目不是单一作者时,字母表就会接管,突然会出现一些项目出版较晚(出版年份),但在参考书目中出现在其他较早出版的项目之前的项目。一个简单的例子是:Joe(1972 年)、Joe(1980 年)、Joe & Mike(1999 年)、Joe & Frank(2016 年)、Joe & Mike & Tom(2000 年)、Joe & Mike & Alexander(2011 年)。使用这种apalike
样式,书目将按以下方式排列它们:
- 乔(1972)
- 乔(1980)
- 乔与弗兰克 (2016)
- 乔与迈克 (1999)
- 乔、麦克和亚历山大 (2011)
- 乔、迈克和汤姆 (2000)
但我希望这样:
- 乔(1972)
- 乔(1980)
- 乔与迈克 (1999)
- 乔与弗兰克 (2016)
- 乔、迈克和汤姆 (2000)
- 乔、麦克和亚历山大 (2011)
下列的Natbib 按出现顺序排序和引用我尝试创建自定义 BST,它应该与上述问题类似apalike
但可以规避上述问题。我设法做到的比原始apalike
样式更好,但仍然不是我想要的。当使用生成自定义 BST 时,latex makebst
我选择了以下相关选项:
STYLE OF CITATIONS:
(a) Author-year with some non-standard interface
AUTHOR-YEAR SUPPORT SYSTEM (if author-year citations)
(l) Apalike for use with apalike.sty
ORDERING OF REFERENCES (if author-year citations)
(l) By label (Jones before Jones and James before Jones et al)
单一作者的项目仍将按我想要的方式排序。但是,使用此新的自定义 BST,"Authorname et al." 项目也将按我想要的方式排序,即在检查了第一作者的姓氏后,按照出版年份排序(实际上检查的是标签,但我们不会关心这一点)。剩下的问题是恰好有两个作者的项目(显然,因为这些项目没有生成“et al.”标签)。这些项目仍将按字母顺序排序。以上面的例子为例,我将得到:
- 乔(1972)
- 乔(1980)
- 乔与弗兰克 (2016)
- 乔与迈克 (1999)
- 乔、迈克和汤姆 (2000)
- 乔、麦克和亚历山大 (2011)
因此,单一作者的作品和两个以上作者的作品都可以,但有两个作者的作品不行。
下面我提供了我的 .tex 文件的最小示例和 .bib 文件中一些条目的最小示例:
\documentclass[12pt,a4paper,hidelinks]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[authoryear,sort&compress]{natbib} %Calls bibliography commands + Cite with author-year style (Harvard) instead of the numeric style.
\begin{document}
\section*{References}
\label{sec:References}
\citep{Owen1876,
Berman1977,
Berman1987,
Berman1992,
Berman1993,
Berman1993_Seymouria,
Berman2003_Aspidosaurus,
Berman2004,
Berman2010_Fedexia,
Berman2011_Rotaryus,
Berman2014,
Berman2015}
\bibliographystyle{apalike}
\bibliography{myrefs}
\end{document}
这是我的最小 myrefs.bib 文件:
@Book{Owen1876,
title = {{Descriptive and illustrated catalogue of the Fossil Reptilia of South Africa in the collection of the British Museum}},
publisher = {British Museum (Natural History)},
year = {1876},
author = {Richard Owen},
address = {London, United Kingdom},
note = {88 pp.},
url = {http://gallica.bnf.fr/ark:/12148/bpt6k987042},
}
@Article{Berman1977,
author = {Berman, David S},
title = {{A new species of \textit{Dimetrodon} (Reptilia, Pelycosauria) from a non-deltaic facies in the Lower Permian of north-central New Mexico}},
journal = {Journal of Paleontology},
year = {1977},
volume = {51},
number = {1},
pages = {108--115},
}
@Article{Berman1987,
author = {David S. Berman and Robert R. Reisz and David A. Eberth},
title = {{\textit{Seymouria sanjuanensis} (Amphibia, Batrachosauria) from the Lower Permian Cutler Formation of north-central New {Mexico} and the occurrence of sexual dimorphism in that genus questioned}},
journal = {Canadian Journal of Earth Sciences},
year = {1987},
volume = {24},
number = {9},
pages = {1769--1784},
}
@Article{Berman1992,
author = {David S. Berman and Stuart S. Sumida and R. Eric Lombard},
title = {{Reinterpretation of the temporal and occipital regions in \textit{Diadectes} and the relationships of diadectomorphs}},
journal = {Journal of Paleontology},
year = {1992},
volume = {66},
number = {3},
pages = {481--499},
}
@InCollection{Berman1993,
author = {Berman, D. S.},
title = {{Lower Permian vertebrate localities of New Mexico and their assemblages}},
booktitle = {{Vertebrate Paleontology in New Mexico}},
publisher = {New Mexico Museum of Natural History},
year = {1993},
editor = {Spencer G. Lucas AND Jiri Zidek},
volume = {2},
pages = {11--21},
}
@Article{Berman1993_Seymouria,
author = {Berman, David S. and Martens, Thomas},
title = {{First occurrence of \textit{Seymouria} (Amphibia: Batrachosauria) in the Lower Permian Rotliegend of central Germany}},
journal = {Annals of Carnegie Museum},
year = {1993},
volume = {62},
number = {1},
pages = {63--79},
}
@Article{Berman2003_Aspidosaurus,
author = {Berman, David S. and Lucas, Spencer G.},
title = {{\textit{Aspidosaurus binasser} (Amphibia, Temnospondyli), a new species of Dissorophidae from the Lower Permian of Texas}},
journal = {Annals of Carnegie Museum},
year = {2003},
volume = {72},
number = {4},
pages = {241--262},
}
@Article{Berman2004,
author = {Berman, David S and Henrici, Amy C and Sumida, Stuart S and Martens, Thomas},
title = {{New materials of \textit{Dimetrodon teutonis} (Synapsida: Sphenacodontidae) from the Lower Permian of Germany}},
journal = {Annals of Carnegie Museum},
year = {2004},
volume = {73},
number = {2},
pages = {48--56},
}
@Article{Berman2010_Fedexia,
author = {David S Berman and Amy C. Henrici and David K. Brezinski and Albert D. Kollar},
title = {{A new trematopid amphibian (Temnospondyli: Dissorophoidea) from the Upper Pennsylvanian of Western Pennsylvania: earliest record of terrestrial vertebrates responding to a warmer, drier climate}},
journal = {Annals of Carnegie Museum},
year = {2010},
volume = {78},
number = {4},
pages = {289--318},
}
@Article{Berman2011_Rotaryus,
author = {David S Berman and Amy C. Henrici and Thomas Martens and Stuart S. Sumida and Jason S. Anderson},
title = {{\textit{Rotaryus gothae}, a new trematopid (Temnospondyli: Dissorophoidea) from the Lower Permian of central {Germany}}},
journal = {Annals of Carnegie Museum},
year = {2011},
volume = {80},
number = {1},
pages = {49--65},
}
@InCollection{Berman2014,
author = {Berman, David S and Henrici, Amy C. and Sumida, Stuart S. and Martens, Thomas and Pelletier, Valerie},
title = {{First European Record of a Varanodontine (Synapsida: Varanopidae): Member of a Unique Early Permian Upland Paleoecosystem, Tambach Basin, Central Germany}},
booktitle = {{Early Evolutionary History of the Synapsida}},
publisher = {Springer},
year = {2014},
editor = {Kammerer, Christian F. and Angielczyk, Kenneth D. and Fr{\"o}bisch, J{\"o}rg},
series = {Vertebrate Paleobiology and Paleoanthropology},
chapter = {5},
pages = {69--86},
address = {Dordrecht},
}
@InCollection{Berman2015,
author = {David S. Berman AND Amy C. Henrici AND Spencer G. Lucas},
title = {{Pennsylvanian-Permian Red Bed vertebrate localities of New Mexico an their assemblages}},
booktitle = {{Fossil Vertebrates in New Mexico}},
publisher = {New Mexico Museum of Natural History},
year = {2015},
editor = {Lucas, S. G. AND Sullivan, R. M.},
volume = {68},
pages = {65--76},
}
这将生成以下文档(仅显示第一页):
[
如果我们\bibliographystyle{apalike}
用替换\bibliographystyle{myapalike}
,即我的自定义 BST,我们会得到以下输出(再次仅显示第一页):
请注意,使用自定义 BST 我们接近我想要实现的目标。但有两位作者的项目不符合我设想的模式。
我认为在 Bibtex 中生成我想要的模式应该非常简单(至少我猜是这样 - 应该有更多人遇到这个问题?),但我不知道怎么做。请注意,使用\noopsort
此处建议的根据第一作者的姓氏,然后是年份对书目条目进行排序,忽略任何其他作者
不是一个选项,因为我的参考书目太大,无法进行这样的手动更改。如果可能的话,我想避免使用 biblatex,我更喜欢适用于 bibtex 的选项。
有没有我不知道的替代样式,可以在这种情况下提供帮助?或者在生成自定义 BST 时进行更改?或者是否真的需要手动修改自定义 BST?如果是这样,那么需要如何/进行哪些更改?
另外一个问题:如果我希望所有属于同一作者的条目都只遵循出版年份,即不将单一作者的条目与两位或多位作者的条目分开,我该如何进行?
答案1
稍微玩一下,就可以apalike.bst
仅按第一作者对条目进行排序,然后直接按年份和标题进行排序。
修改步骤apalike.bst
如下。
在您的机器上找到
apalike.bst
。您可以通过输入kpsewhich apalike.bst
。您可以通过在命令行/终端中输入来执行此操作。或者,从 CTAN 获取该文件的副本http://mirrors.ctan.org/biblio/bibtex/base/apalike.bst将文件复制到 TeX 可以找到的位置。文档目录就可以了。另请参阅https://texfaq.org/FAQ-inst-wlcf
将文件重命名为
apalike-onesort.bst
(许可证apalike.bst
要求您在修改文件时更改名称)查找
FUNCTION {sort.format.names}
(ll. 914-934)并将整个函数替换为更短的FUNCTION {sort.format.names} { 's := s num.names$ #0 > { s #1 "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ sortify } { "" } if$ }
在文件顶部添加一条包含您的姓名、当前日期和更改的简短描述的评论。
在您的文档中使用
\bibliographystyle{apalike-onesort}
而不是。\bibliographystyle{apalike}
作为步骤 1 至 5 的替代方案,您可以在以下位置获取该文件的修补版本https://gist.github.com/moewew/952669080e9cbc20f987d3ed42cf6606
使用新方法,apalike-onesort.bst
您的 MWE 会生成仅按第一作者、年份和标题排序的参考书目。
如果你想先对所有一位作者的项目进行排序,然后对所有两位作者的项目进行排序,最后对所有三位或更多作者的项目进行排序,请将函数替换为
FUNCTION {sort.format.names}
{ 's :=
s num.names$ #0 >
{
s #1 "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ sortify
s num.names$
duplicate$ #3 <
{ int.to.str$ * }
{
pop$
"3" *
}
if$
}
{ "" }
if$
}
这会在作者姓名后添加“1”、“2”或“3”以进行排序并强制采用所需的方案。