删除最后一位作者后的逗号

删除最后一位作者后的逗号

我终于设法生成了我的自定义 \bibliographystyle (.bst) 文件。以下是列出的参考文献的输出(示例)。是否可以删除最后一位作者后面的逗号(就在年份之前)?我还想删除分配的“Literatura”标题。任何帮助表示感谢。

Literatura
Abbiati, M., Bianchi, C. N., Castelli, A., 1987. Polychaete vertical zonation along a
 littoral cliff in the western Mediterranean. Marine ecology, 8(1): 33–48.
Antoniadou, C., Nicolaidou, A., Chintiroglou, C., 2004. Polychaetes associated with
 the sciaphilic alga community in the northern Aegena Sea: spatial and temporal
 variability. Helgoland Marine Research, 58: 168–182.

答案1

关于“Literatura”标题:我想你正在使用 babel

\usepackage[slovene]{babel}

在这种情况下使用\addto如下方法:

\addto{\captionsslovene}{%
  \renewcommand*{\refname}{Bibliography title}%
  \renewcommand*{\bibname}{\refname}%
}

根据您的文档类别,可以使用\refname(文章) 或\bibname(书籍、报告)。此定义适用于两者。

答案2

我找到了这个小问题。为了删除最后一位作者后面的逗号,我在 .bst 文件中编辑了以下几行(删除第 4 行并用第 5 行替换):

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

答案3

参考书目的标题存储在标准类中的 \bibname 中。尝试:

\renewcommand\bibname{Your title}

至于作者列表后的逗号,您必须检查自定义 bst 文件以查看它来自哪里。

答案4

花了半天时间研究驯服野兽,终于找到了适合我的情况的解决方案。

最后一位作者后面的逗号是通过author函数的字段format.names或 函数output.nonnull或通过 函数date(位于author引用字段之后)添加到引用中的format.date。逗号的添加方式取决于文件.bst。在我的例子中,是后者。因此,我转到FUNCTION {format.date}最后的 ,,

before.all 'output.state :=
  ", " swap$ *

删除逗号,

before.all 'output.state :=
  " " swap$ *

如果是通过author字段添加的。您可以尝试修改format.namesoutput.nonnull按照之前的帖子所建议的进行操作。但看起来他们的答案都有缺陷,可能会影响其他字段的渲染。

相关内容