静音 biber 警告“输入类型‘YYY’的字段‘XXX’无效”

静音 biber 警告“输入类型‘YYY’的字段‘XXX’无效”

我创建了一些书目类型的别名,例如standardis areportsoftwareis online。现在,当我在 bib 文件中使用这些类型并启用时--validate-datamodel,我收到如下警告:

数据模型:条目“Spread”(thesis.bib):条目类型“software”的字段“url”无效

我怎样才能让 biber 再次对此感到高兴?有什么方法可以增强别名的数据模型吗?

平均能量损失

\documentclass{article}

\usepackage{filecontents}

\begin{filecontents}{test.bib}
@standard{RFC4627,
 date = {2006},
 editor = {IETF},
 number = {4627},
 title = {The application/json Media Type for {JavaScript} Object Notation ({JSON})},
 type = {RFC},
 url = {http://www.ietf.org/rfc/rfc4627.txt},
 urldate = {2016-09-08}
}

@software{Spread,
 label = {Spread},
 title = {The Spread Toolkit},
 url = {http://www.spread.org/},
 urldate = {2016-09-08}
}
\end{filecontents}

\usepackage[backend=biber,style=alphabetic]{biblatex}

\DeclareBibliographyAlias{software}{online}
\DeclareBibliographyAlias{standard}{report}
\bibliography{test}

\begin{document}
    \nocite{*}
    \printbibliography{}
    % should still work
    \printbibliography[heading=bibintoc,type=software,title={Lis‌​t of Software Packages}]{}
\end{document}

使用 latexmk 编译,内容如下latexmkrc

$pdf_mode = 1;
$pdflatex = 'pdflatex -shell-escape -interaction=nonstopmode';

$biber = 'biber --validate-datamodel %O %S';

答案1

正如解释的那样BibLaTeX 所指的条目类型别名关系究竟是什么?别名条目类型的格式应如何配置?定义的别名\DeclareBibliographyAlias仅用于参考书目驱动程序。该别名仅供 访问biblatex。特别是 Biber 不知道它。

你可以做

\DeclareDriverSourcemap[datatype=bibtex]{
  \map{
    \pertype{software}
    \step[typesource=software, typetarget=online, final]
    \step[fieldset=keywords, fieldvalue={,type:software}, append]
  }
  \map{
    \pertype{standard}
    \step[typesource=standard, typetarget=report, final]
    \step[fieldset=keywords, fieldvalue={,type:standard}, append]
  }
}

在所有意图和目的上,这将重新映射@software到和@online@standard@report因此您不能再选择type)。为了解决这个问题,我们添加了关键字,使用关键字 给出前一种类型type:<type>

现在你的过滤不是type=<type>,而是keyword = {type:<type>},即

\printbibliography[heading=bibintoc, keyword=type:software],

代替\printbibliography[heading=bibintoc, type=software]

相关内容