MDPI的bib参考文献不显示会议地址
过程描述
- MDPI 的 bib 引用中,有地址信息,使用其它期刊的可以正常显示,但 MDPI 的不行。
- 查看缺失地址的文献,发现地址虽然缺失了,但逗号还在,猜测可能是渲染出了问题。
- 查看 mdpi.bst,看不懂,但可以猜测
inproceddings
是会议渲染函数,删除后,会议文献消失,猜测正确。 - 找到包含年份的地方,有很多个,需要测试出错的位置。
- 通过删除
format.pages output
,发现页码删除,因此可以知道这个可以输出信息。 - 多次测试,发现
format.publisher.and.address output.nonnull
导致不输出地址,更换为address output
即可。 - 看起来是缺失 publisher 这个字段。
解决方法
- 找到下面这个函数,将17行的
format.publisher.and.address output.nonnull
换成address output
即可。
FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
new.block
format.title "title" output.check
new.block
crossref missing$
{ format.in.ed.booktitle.proc "booktitle" output.check
address empty$
{ organization publisher new.sentence.checkb
organization output
publisher output
format.bdate "year" output.check
}
{ after.item 'output.state :=
organization output
format.publisher.and.address output.nonnull
format.bdate "year" output.check
after.item 'output.state :=
}
if$
format.number.series output
format.bvolume output
format.pages output
}
{ format.incoll.inproc.crossref output.nonnull
format.pages output
}
if$
format.eprint output
new.block
note output
formatfull.doi output
fin.entry
}
更改结果如下
FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
new.block
format.title "title" output.check
new.block
crossref missing$
{ format.in.ed.booktitle.proc "booktitle" output.check
address empty$
{ organization publisher new.sentence.checkb
organization output
publisher output
format.bdate "year" output.check
}
{ after.item 'output.state :=
organization output
address output
format.bdate "year" output.check
after.item 'output.state :=
}
if$
format.number.series output
format.bvolume output
format.pages output
}
{ format.incoll.inproc.crossref output.nonnull
format.pages output
}
if$
format.eprint output
new.block
note output
formatfull.doi output
fin.entry
}
共有 0 条评论