如何在参考文献/bibtex 样式中有效使用逗号和点

如何在参考文献/bibtex 样式中有效使用逗号和点

我想使用这样的文章参考样式:

作者,杂志 体积第 23-34 页(年份)。网页链接

例如:

AN 俄亥俄州,BR Gerrad 和 M. Forsyth,纳特。媽媽。 24第 345-456 页(2002 年)。CrossRef

请帮助我更改 bibtex 格式样式 (.bst),以便我可以有效地使用逗号和点。


FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { " " * write$ }
    { output.state after.block =
    { " " * write$
      newline$
      "\newblock " write$
    }
    { output.state before.all =
        'write$
        { add.period$ " " * write$ }
      if$
    }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}


FUNCTION {fin.entry}
 { write$
  newline$
}

FUNCTION {format.authors}
{ author empty$
    { "," }
    { author format.names }
    if$
}

FUNCTION {format.date}
{ year empty$
    'year 
    {" ("   year * ")." * }
  if$
}

FUNCTION {format.vol.num.pages}
{ volume field.or.null boldface
  number empty$
    'skip$
    { "(" number * ")" * *
      volume empty$
    { "there's a number but no volume in " cite$ * warning$ }
    'skip$
      if$
    }
  if$
  pages empty$
    'skip$
    { duplicate$ empty$
    { pop$ format.pages }
    { ", pp. " * pages n.dashify * }
      if$
    }
  if$
}

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
      nameptr #1 >
    { namesleft #1 >
        { ", " * t * }
        { numnames #2 >
        { "," * }
        'skip$
          if$
          t "others" =
        { " et~al." * }
        { " and " * t * }
          if$
        }
      if$
    }
    't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  new.block
  ", " * write$ 
  format.title "title" output.check
  new.block
  crossref missing$
    { journal emphasize "journal" output.check
      format.vol.num.pages output
      format.date "year" output.check
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  new.block
  howpublished output 
  fin.entry
}

我使用了 acs.bst,在进行更改的部分...我复制粘贴了上面的内容。可以通过将这些部分与原始 acs.bst 文件进行比较来交叉检查更改。它让我可以完全控制逗号和点。

相关内容