修改 Bibtex 样式文件以获得不同形式的参考

修改 Bibtex 样式文件以获得不同形式的参考

我正在尝试修改某个.bst文件。目前,我可以破解该文件以获取以下条目的参考输出inbook

Jones, WP 1994. 变密度和燃烧流的湍流建模和数值求解方法,湍流反应流。收录于 Libby, PA 和 Williams, FA, (Eds.) 合著。Academic Press,伦敦,英国。第 309-374 页。

我唯一的问题是,如果你看上面,单词“In”后面有一个逗号。我知道这是因为我试图在文件中包含单词“In” .bst。有人知道如何正确地做到这一点吗?这是我修改以获得“In”的代码。

FUNCTION {format.editors}
{ editor empty$
     { "" }
     {
       add.period$ " In" * editor format.names
       editor num.names$ #1 >
         { ", " * bbl.editors * }
         { ", " * bbl.editor * }
       if$
     }
   if$
}

inbook这是入口的代码

FUNCTION {inbook}
{ output.bibitem
  format.authors output.nonnull
  new.block
  format.date "year" output.check
  new.sentence
  format.chapter.pages "chapter and pages" output.check
  format.btitle "title" output.check
  crossref missing$
    { format.editors output
      new.block
      format.publisher
      new.sentence
    }
    { format.chapter.pages "chapter and pages" output.check
      new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  new.sentence
  format.pages output
  new.block
  note output
  fin.entry
}

答案1

如果我理解正确的话,您想删除“In”和“Libby”之间的逗号:

Jones, WP 1994。变密度和燃烧流的湍流建模和数值解法,湍流反应流。在 Libby, PA 和 Williams, FA, (Eds.) 中。Academic Press,伦敦,英国。第 309-374 页。

如果是这样,这里是运算符的正确使用*

FUNCTION {format.editors}
{ editor empty$
     { "" }
     {
       add.period$ " In " editor format.names *
       editor num.names$ #1 >
         { ", " * bbl.editors * }
         { ", " * bbl.editor * }
       if$
     }
   if$
}

此外,字符串后还添加了空格" In"

stack表达式中 :的解释

" In" * editor format.names

运算符*连接editor并," In"然后使用 解析结果字符串format.names,这会添加额外的逗号。在表达式中

" In " editor format.names *

运算符将命令和*的结果连接起来。editor format.names" In "

相关内容