确定 bibtex 中缺少哪个 ??? 键

确定 bibtex 中缺少哪个 ??? 键

我正在努力确定 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{???}.bbladdressbother

请注意,该文件不会发出常规 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{???}写入到的,没有其他真正的方法可以解释为什么输出中会出现问号。当然,您可能已经根据命令的名称猜到了这一点(顺便说一下,这是字段的名称)。.bbladdresslocationbiblatexaddress

因此,为了解决这个问题,你应该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.}
}

相关内容