natbib + BibTeX:如果 doi 可用则隐藏 url

natbib + BibTeX:如果 doi 可用则隐藏 url

我正在使用natbib(+ BibTeX)。我的参考书目文件 ( .bib) 中的一些条目有字段doi,一些有url,一些同时有。我想编辑参考书目样式文件 ( .bst),以便如果doi可用,url则将其隐藏。

目前该.bst文件具有以下功能:

FUNCTION {format.doi}
{ doi empty$
    { "" }
    {
      new.block
      "\doi{" doi * "}" *
    }
  if$
}

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

[我正在寻找此问题的解决方案,并找到了一些类似的问题和答案。但是,他们没有解决这个具体案例。经过搜索和尝试,我可以解决它。我将解决方案作为我自己问题的回复来记录它。]

答案1

你可以通过测试doi函数内部是否为空来实现它format.urlformat.url用以下内容替换你的代码:

FUNCTION {format.url}
{
  doi empty$
    {    
      url
      duplicate$ empty$
        { pop$ "" }
        { "\urlprefix\url{" swap$ * "}" * }
      if$
    }
    { "" }
  if$
}

相关内容