我迷失在某个地狱里。基本上,我正试图获得 Springer 的spbasic.bst
文件可以正常工作。我快完成了,但还有一些烦人的问题。首先,Address: Publisher
我得到的不是 ,而是Publisher, Address
。这是不正确的。
我看到了功能format.publisher.address
和book
部分:
FUNCTION {book}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check
editor format.key output
add.blank
}
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
format.date "year" output.check
new.sentence
format.btitle "title" output.check
crossref missing$
{ format.bvolume output
format.edition output
new.sentence
format.number.series output
format.publisher.address output
}
{
new.sentence
format.book.crossref output.nonnull
}
if$
format.doi output
format.url output
format.note output
format.eprint output
fin.entry
}
我该如何修复它?这种bst
语法肯定是我见过的最难理解的语言之一。
答案1
出版商和地址由该函数格式化并打印
format.publisher.address
FUNCTION {format.publisher.address}
{ publisher "publisher" bibinfo.warn format.org.or.pub
}
如您所见,此函数调用了另一个函数function.org.or.pub
FUNCTION {format.org.or.pub}
{ 't :=
""
address empty$ t empty$ and
'skip$
{
t empty$
{ address "address" bibinfo.check *
}
{ t *
address empty$
'skip$
{ ", " * address "address" bibinfo.check * }
if$
}
if$
}
if$
}
如您所见,有一条指令", "
(位于文件的第 1044 行spbasic.bst
)。这就是您必须修改的内容,具体来说,您可以将其替换为": "
。