我正在使用makebst
创建自己的 bib 样式。我希望 DOI 出现在引文中(作为超链接),只要 DOI 存在。我已经成功做到了这一点。当 DOI 存在时,我不希望URL
使用该字段,因为这通常是多余的或毫无意义的。因此,我URL
在 中禁用了使用该字段makebst
。但是,当没有DOI
字段时(我拥有的一些期刊等没有 DOI),我希望该URL
字段出现。makebst 中没有这个选项(据我所知)。
那么,我如何使用我makebst
制作的bst
文件并优先使用 DOI,但在没有 DOI 时使用 URL。
我正在使用的可能会产生影响的软件包:hyperref
,,cite
。url
[我没有使用biblatex
,这会给我带来一些其他问题。]
答案1
在尝试了 makebst 输出 bst 文件后,我发现以下方法有效。这相当于更改 doi 格式。确保首先告诉 makebst 不要包含 url(默认选项)。
打开 .bst 文件(makebst 输出)
在 ENTRY 部分(第一部分没有注释掉),你会看到一堆字段,包括 doi。将“url”(不带引号)添加到此列表。
转到显示 FUNCTION {format.doi} 的行。下一行应该显示 { "" }。至少,这就是我所得到的。现在,用以下代码块替换 { "" }:
{ url empty$ { "" } { new.block "\url{" url * "}" * } if$ }
完成第 3 步后,我的 format.doi 块如下所示(但如果您选择了不同的 makebst 选项,您的格式可能会有所不同):
FUNCTION {format.doi}
{ doi empty$
{ url empty$
{ "" }
{
new.block
"\url{" url * "}" *
}
if$
}
{
new.block
"\doi{" doi * "}" *
}
if$
}