我正在使用 ACM 的模板 acmart。我遇到了一个问题:我的参考文献列表总是显示一篇文章的所有作者姓名。
是否有使用 ACM 模板来限制参考文献中作者数量的选项?
\bibliographystyle{ACM-Reference-Format}
\bibliography{bibliography}
谢谢
答案1
您可以修改ACM-Reference-Format.bst
以截断人员列表。有三个地方需要更改几行。
您可以直接从https://gist.github.com/moewew/1f7c74b4229fdb44bc9f05d6e96d915a或者应用以下补丁来ACM-Reference-Format.bst
获取ACM-Reference-Format-num.bst
。
--- ACM-Reference-Format.bst 2018-10-21 23:12:52.000000000 +0200
+++ ACM-Reference-Format-num.bst 2018-11-26 18:11:16.051275200 +0100
@@ -999,7 +999,14 @@
%NO: BAD ORDER: {"{" s nameptr "{ff~}{ll}{, jj}{, vv}" format.name$ * "}" * 't := }
%NO: BAD ORDER: {"{" s nameptr "{ff~}{ll}{, jj}{, vv}" format.name$ * "}" * 't := }
{"\bibinfo{person}{" s nameptr "{ff }{vv }{ll}{, jj}" format.name$ * "}" * 't := }
- {"\bibinfo{person}{" s nameptr "{ff }{vv }{ll}{, jj}" format.name$ * "}" * 't := }
+ {"\bibinfo{person}{"
+ nameptr #5 >
+ { #1 'namesleft :=
+ "others" }
+ { s nameptr "{ff }{vv }{ll}{, jj}" format.name$ }
+ if$
+ * "}" *
+ 't := }
if$
nameptr #1 >
{
@@ -1033,7 +1040,12 @@
numnames 'namesleft :=
{ namesleft #0 > }
- { s nameptr "{vv~}{ll}" format.name$ 't := % get the next name
+ { nameptr #5 >
+ { #1 'namesleft :=
+ "others" }
+ { s nameptr "{vv~}{ll}" format.name$ }
+ if$
+ 't := % get the next name
nameptr #1 >
{
namesleft #1 >
@@ -1072,7 +1084,13 @@
{ namesleft #0 > }
{
- "\bibinfo{person}{" s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ * "}" * 't :=
+ "\bibinfo{person}{"
+ nameptr #5 >
+ { #1 'namesleft :=
+ "others" }
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ }
+ if$
+ * "}" * 't :=
nameptr #1 >
{
将 更改#5
为#<number of people before truncation>
。引用标签的默认截断是#2
。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{natbib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{many,
author = {Anne Uthor and William Riter and Connie Ontributor and Emma Ditor
and Anne Elk and James Hacker and Sophie Cribe},
title = {The Book of Many Authors},
year = {1980},
publisher = {P. Ublisher},
address = {Place},
}
\end{filecontents}
\begin{document}
\cite{many}
\bibliographystyle{ACM-Reference-Format-num}
\bibliography{\jobname}
\end{document}
给出