修改作者列表(`format.names` 问题)

修改作者列表(`format.names` 问题)

我正在使用 natbib,并开始apa-good.bst进行微小的修改;例如,使用全名而不是缩写:)但即使在阅读了用于指定 bst 文件的“未命名编程语言”的几篇教程之后,我还是不明白以下内容:

我目前{ll}, {ff}为所有在&最后一个作者之前加上了;即:

  Aurnague, Michel, Hickmann, Maya, & Vieu, Laure

但我只想第一的{ll}, {ff},且在一个逗号后所有其他作者应跟在{ff} {ll}; 即:

  Aurnague, Michel, Maya Hickmann & Laure Vieu

任何提示都非常感谢。我的教授不允许我将参考书目更改为任何一致的东西 :|

目前的状况如下format.names

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

答案1

默认情况下,参考书目样式文件apa-good.bst确实不提供根据作者/编辑是否列在第一位而对名字和姓氏进行不同排序的功能。不过幸运的是,添加此功能并不难实现。

复制该文件apa-good.bst并将副本命名为 。myapa-good.bst然后,在函数中format.names(从我的系统的该文件副本的第 365 行开始),搜索以下行块:

numnames 'namesleft :=
  { namesleft #0 > }
  { s nameptr
    "{vv~}{ll}{, ff}{, jj}"
    format.name$
    bibinfo bibinfo.check

并将其替换为

numnames 'namesleft :=
  { namesleft #0 > }
  { s nameptr
    duplicate$ #1 >
      { "{ff }{vv~}{ll}{, jj}" }
      { "{vv~}{ll}{, ff}{, jj}" }
    if$
    format.name$
    bibinfo bibinfo.check

在这些代码片段中,我已经{, f.}在原始 bst 文件中替换了,{, ff}因为你已表明你这样做不是希望缩写作者的名字。

使用此补丁,您可以指示 BibTeX 执行检查以查看剩余待处理的作者/编辑者姓名数量是否大于 1。如果是,它使用格式化字符串{ff }{vv~}{ll}{, jj};如果不是,即,如果只剩下一个名称需要处理(由于 BibTeX 处理堆栈的“逆波兰表示法”方法,它必须是第一的作者/编辑),它使用字符串{vv~}{ll}{, ff}{, jj}

接下来,您应该将新.bst文件存储在 TeX 发行版自动搜索的目录中,并在必要时运行texhash(或任何适合您的 TeX 发行版的命令)来更新发行版的文件名数据库。最后,请务必发出命令

\bibliographystyle{myapa-good}

代替\bibliographystyle{apa-good}

祝您 BibTeX 愉快!

答案2

我建议改用,biblatex原因有二。第一,它biblatx-apa试图完全符合 APA6 的要求。第二,它的格式是用“标准” LaTex 宏定义的,而不是 bst 样式。

相关内容