将编辑器(小写)更改为 BibTeX 样式的编辑器(斜体),类似于 apalike

将编辑器(小写)更改为 BibTeX 样式的编辑器(斜体),类似于 apalike

我正在尝试让 BibTeX 符合特定期刊的标准(它们与 APA 非常相似)。我使用可爱的包 custom-bib 构建了一个自定义 .bst 文件,除了两点之外,它运行良好。

对于一本没有作者但有编辑的书,我的 .bst 文件生成

Cook,E.和Kariukstis,L.(编辑),1990年。树木年轮学方法:在环境科学中的应用、克鲁维尔学术出版社

但我希望它能产生

Cook, E. 和 Kariukstis, L. (編輯), 1990. 树木年轮学方法:在环境科学中的应用, Kluwer Academic Publishers

请注意 (Editors) 中的差异以及缺少标题斜体。我知道如果没有实际的 .bst 文件,这是无法重现的,但我希望有人能给我指出正确的方向。也许以下函数是相关的。BST 语法对我来说很难理解。

FUNCTION {bbl.editors}
{ "editors" }

FUNCTION {format.editors}
{editor "editor" format.names duplicate$ empty$ 'skip$
    {
      " " *
      get.bbl.editor
   "(" swap$ * ")" *
      *
    }
  if$
}

FUNCTION {format.names}
{ 'bibinfo :=
  duplicate$ empty$ 'skip$ {
  's :=
  "" 't :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{vv~}{ll}{, jj}{, f{.}.}"
      format.name$
      bibinfo bibinfo.check
      't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              numnames #2 >
                { "," * }
                'skip$
              if$
              t "others" =
                {
                  " " * bbl.etal *
                }
                {
                  bbl.and
                  space.word * t *
                }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
  } if$
}

相关内容