![确定 bibtex 中缺少哪个 ??? 键](https://linux22.com/image/383972/%E7%A1%AE%E5%AE%9A%20bibtex%20%E4%B8%AD%E7%BC%BA%E5%B0%91%E5%93%AA%E4%B8%AA%20%3F%3F%3F%20%E9%94%AE.png)
我正在努力确定 bibtex 条目中缺少哪些元素,因为当我编译 pdf 输出时显示一些带有???的条目,例如:
这是输出
@book{friedman2016introduction,
title={Introduction to Apache Flink: Stream Processing for Real Time and Beyond},
author={Friedman, E. and Ellen Friedman, M.D. and Tzoumas, K.},
isbn={9781491977163},
lccn={2017385514},
year={2016},
publisher={O'Reilly Media}
}
当遇到此类问题时,我该如何确定缺少哪个条目?
以下是我在 .bbl 文件中看到的内容:
metafiles/bmc_article.bbl:\bpublisher{O'Reilly Media}, \blocation{???}
答案1
互联网搜索显示,\blocation
有许多人使用.bst
VTeX 为不同客户编写的https://github.com/search?p=1&q=blocation+extension%3Abst+user%3Avtex-soft&type=Code)根据你的文件名,.bbl
我猜你可能会使用bmc-mathphys.bst
使用https://www.biomedcentral.com/getpublished/writing-resources/additional-files这也是由 VTeX 编写的。该文件包含
address empty$
{ publisher empty$
{howpublished}
{springer.publisher}
if$
"publisher" make.tag
#1 bother =
{", \blocation{???}" * }
'skip$
if$
output
}
{
publisher empty$
{howpublished }
{springer.publisher }
if$
"publisher" make.tag output
insert.comma
address "location" make.tag output
}
if$
这表明,如果没有提供字段并且标志设置为 1,则文件将输出到\blocation{???}
。.bbl
address
bother
请注意,该文件不会发出常规 BibTeX 警告,而标准样式在这种情况下通常会这样做。plain.bst
例如
number empty$
'skip$
{ "(" number * ")" * *
volume empty$
{ "there's a number but no volume in " cite$ * warning$ }
'skip$
if$
}
if$
所有这些意味着,除了返回.bbl
并发现它们是由什么产生的\blocation{???}
,然后转到.bst
并发现如果字段缺失,则\blocation{???}
写入到的,没有其他真正的方法可以解释为什么输出中会出现问号。当然,您可能已经根据命令的名称猜到了这一点(顺便说一下,这是字段的名称)。.bbl
address
location
biblatex
address
因此,为了解决这个问题,你应该address
为发布者提供一个,可能是这样的
address={Sebastopol, Calif.}
正如评论中所讨论的,你也需要检查author
该作品的领域。完整的条目可能应该是
@book{friedman2016introduction,
title = {Introduction to Apache Flink: Stream Processing for Real Time and Beyond},
author = {Friedman, Ellen and Tzoumas, Kostas},
isbn = {9781491977163},
year = {2016},
publisher = {O'Reilly Media}
address = {Sebastopol, Calif.}
}