可能重复:
如何在参考书目中获取 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
函数的调用(并且您还需要doi
在ENTRY {...}
文件开头添加字段描述.bst
。