编辑 .bst 文件以修改出版商和地址信息的印刷

编辑 .bst 文件以修改出版商和地址信息的印刷

我迷失在某个地狱里。基本上,我正试图获得 Springer 的spbasic.bst文件可以正常工作。我快完成了,但还有一些烦人的问题。首先,Address: Publisher我得到的不是 ,而是Publisher, Address。这是不正确的。

我看到了功能format.publisher.addressbook部分:

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)。这就是您必须修改的内容,具体来说,您可以将其替换为": "

相关内容