使用 bibtex/.bst 在期刊名称上设置 DOI 链接

使用 bibtex/.bst 在期刊名称上设置 DOI 链接

可能重复:
如何在参考书目中获取 DOI 链接

我正在努力解决书目样式问题。我想在期刊名称上设置 doi 链接,然后从书目列表中隐藏 doi 键。

我曾尝试编写一些 bst-bibtex 函数,它会产生很多错误,警告我堆栈为空。我记不清所有的错误。如果你对bibtex代码有所了解,请帮助我。

FUNCTION {journal_doi}
{ doi duplicate$ empty$
  { }
  { "\href{http://doi.org/" doi * "}" *
    journal empty$
      { }
      { "{" * journal * "}" * }
    if$ 
  if$
  }
}

答案1

构建于这个帖子,我将在文件中定义一个新函数.bst

FUNCTION {doilink}
{ duplicate$ empty$
{ pop$ "" }
{ doi empty$
    { skip$ }
    { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * }
  if$
}
if$
}

然后,您需要找到期刊信息在文件中的打印方式.bst(这取决于.bst您使用的具体内容)。只需doilink在输出期刊信息之前添加一个调用即可。如果您还想从输出中删除 doi,您还需要找到.bst打印此内容的位置并删除这些行。如果不了解有关特定书目配置的更多信息,很难更具体。

请注意,可以找到一个非常好的 BibTeX 指南这里(或者texdoc tamethebeast在 shell 中)。也会有biblatex解决方案。

编辑:这里有一个基于plain.bst样式文件的例子:

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { journal emphasize doilink "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
  fin.entry
}

我刚刚在适当的位置添加了对该doilink函数的调用(并且您还需要doiENTRY {...}文件开头添加字段描述.bst

相关内容