在 .bst 文件中将 urldate 添加到 url 函数

在 .bst 文件中将 urldate 添加到 url 函数

我正在使用大学提供的 .bst 文件。不幸的是,它没有将 urldate 添加到我的参考文献中。所以我尝试在我的 .bst 文件中手动添加它。

这是杂项的功能:

FUNCTION {misc}
{ output.bibitem
  format.authors output
  author format.key output
  format.date "year" output.check
  date.block
  format.title output
  end.quote.title
  % new.block
  howpublished "howpublished" bibinfo.check output
  % new.block
  format.note output
  fin.entry
  write.url
}

这是 write.url 的函数:

FUNCTION {write.url}
{
  url
  duplicate$ empty$
    { pop$ }
    { "\newline\urlprefix\url{" swap$ * "}" * write$ newline$ }
  if$
}

我想将 urldate 添加到函数 write.url 中。我以前从未做过这样的事情,所以我用 Google 搜索了一下,发现了这个问题:使用 natbib 对 .bst 进行破解,在 BibTex 中的 @misc 中添加 urldate

我尝试复制 .bst 文件的结果并将 urldate 添加到条目中,但不起作用。出现错误“您无法弹出空的文字堆栈...”。这是我的代码:

FUNCTION {write.url}
{
  url
  duplicate$ empty$
    { pop$ }
    { "\newline\urlprefix\url{" swap$ * "}" * write$ newline$ * urldate dublicate$ empty$ 
    { pop$ }
    { "~(Accessed: " swap$ * ")" * *}
    if$
    }
  if$
}

谁能告诉我我做错了什么或者我还能怎样添加 urldate?

答案1

使FUNCTION {format.url}读取

FUNCTION {format.url}
{ url duplicate$ empty$
    { pop$ "" }
    { "\url{" swap$ * "}" * 
      urldate duplicate$ empty$
        { pop$ }
        { " (Accessed: "  swap$ * ")" * * }
      if$
    }
  if$
}

并按如下方式使用

format.url output

之前fin.entry。因此函数misc看起来像

FUNCTION {misc}
{ output.bibitem
  format.authors output
  author format.key output
  format.date "year" output.check
  date.block
  format.title output
  end.quote.title
  % new.block
  howpublished "howpublished" bibinfo.check output
  % new.block
  format.note output
  format.url output
  fin.entry
}

通过这些改变,你可以

在此处输入图片描述

相关内容