![使用 natbib 限制参考文献中的作者列表](https://linux22.com/image/376562/%E4%BD%BF%E7%94%A8%20natbib%20%E9%99%90%E5%88%B6%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE%E4%B8%AD%E7%9A%84%E4%BD%9C%E8%80%85%E5%88%97%E8%A1%A8.png)
natbib
我正在用撰写论文\bibliographystyle{abbrvnat}
。我想要參考文獻表(書目)遵守以下规则:
- 当作者人数少于 5 人时显示所有作者姓名。
- 当作者数量大于 4 时,显示“第一作者等”。
我不想改变文本中的引用外观。我在寻找上述解决方案时非常困惑。我有点着急。请帮助我,请不要责骂。
\documentclass[openright, twoside, 12pt, a4paper]{report}
\usepackage{amstext,amssymb,amsmath,amsfonts}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{color}
\usepackage{hyperref}
\usepackage{subfigure,float}
\usepackage{multirow}
\usepackage{array,booktabs}
\usepackage{siunitx}
\usepackage{physics}
\usepackage{float}
\usepackage{natbib}
\usepackage[sc]{mathpazo}
\usepackage{fancyhdr}
\usepackage{rotating}
\usepackage{lscape}
\usepackage{longtable}
\usepackage{tabularx}
\usepackage{makecell}
\usepackage{afterpage}
\begin{document}
\pagenumbering{roman}
\include{cover/title}
\begin{spacing}{1.5}
\tableofcontents
\pagenumbering{arabic}
\include{cover/def} %include all the definitions
\include{chapter_01/introduction}
\appendix
\bibliographystyle{abbrvnat}
\bibliography{thesis_bib}
\end{spacing}
\end{document}
答案1
据我所知,没有方便的选项可以做到这一点,您必须修改样式.bst
。
abbrvnat.bst
在您的机器上找到。您可以通过kpsewhich abbrvnat.bst
在命令行/终端中输入来执行此操作。或者,从 CTAN 获取该文件的副本http://mirrors.ctan.org/macros/latex/contrib/natbib/abbrvnat.bst- 将文件复制到 TeX 可以找到的位置。文档目录就可以了。
- 将文件重命名为
abbrvnat-maxbibnames4.bst
(这是 的许可证的要求abbrvnat.bst
, 的修改版本abbrvnat.bst
不应使用相同的名称) 打开文件并找到函数
FUNCTION {format.names}
(在我的版本中为 ll. 216-243)并将整个块替换为FUNCTION {format.names} { 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { numnames #2 > { "," * } 'skip$ if$ t "others" = { " et~al." * } { " and " * t * } if$ } if$ } { t namesleft #4 > { " et al." * #1 'namesleft := } 'skip$ if$ } if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ }
在文件顶部的注释中添加您的姓名和日期并解释修改。
在您的文档中使用
\bibliographystyle{abbrvnat-maxbibnames4}
而不是。\bibliographystyle{abbrvnat}