将项目添加到bst

将项目添加到bst

我有一个自定义的 .bstmakebst。它运行良好,但我想为翻译作品添加一个额外的字段。理想情况下,我希望在适当的时候,在书名后面出现类似“由 [translator] 翻译”的内容,其中 [translator] 是译者的名字。我已将信息存储在我的 .bib 中(在 translator 下),但我不知道如何对 .bst 进行编码。

答案1

我有一个解决方案,基于这个问题.book函数变为

FUNCTION {book}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      format.number.series output
      format.publisher.address output
    }
    {
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.translator output
  format.date "year" output.check
  new.sentence
  format.eprint output
  fin.entry
}

我定义了一个新函数

FUNCTION {format.translator}
{ translator "translator" format.names
  duplicate$ empty$ 'skip$
  {
     "translated by " swap$ *
  } if$
}

相关内容