最近在使用“ACM-Reference-Format.bst”的参考文献风格时候,遇到Deep Speech 2文章的作者人数实在太多了,想要只显示其中的三个,网上百度的一下,需要将“.bst”文件中的format.names函数的其中三行代码:
{ namesleft #1 >
{ ", " * t * }
{ numnames #2 >
替换为以下的代码:
{
nameptr #3
#1 + =
numnames #4
> and
{ "\bibinfo{person}{others}" 't :=
#1 'namesleft := }
'skip$
if$
namesleft #1 >
{ ", " * t * }
{
s nameptr "{ll}" format.name$ duplicate$ "\bibinfo{person}{others}" =
{ 't := }
{ pop$ }
if$
numnames #2 >
即可。
但是因为是在Overleaf上在线书写的,我修改了“bst”文件后发现编译后的文章并没有修改,再仔细想想会不会是Overleaf自带了一个“ACM-Reference-Format.bst”,没有使用我修改的文件。
所以试着删除了目录下的“ACM-Reference-Format.bst”文件,发现还是能正常编译。果然。
不清楚Overleaf自带的“ACM-Reference-Format.bst”文件在哪里修改,所以我就试着将目录下的“ACM-Reference-Format.bst”文件名修改为“myACM-Reference-Format.bst”,同时在TEX主文件中将:
\bibliographystyle{ACM-Reference-Format}
修改为:
\bibliographystyle{myACM-Reference-Format}
这样Overleaf就不会使用自带的bst文件,而是使用我修改后的bst文件了。