
biber
/データbiblatex
モデルを使用すると、ユーザーは を使用してデータ モデルに制約を指定できます\DeclareDatamodelConstraints
。 によって定義されるデフォルトのデータ モデルには次のblx-dm.def
ものがあります。
\DeclareDatamodelConstraints[article]{
\constraint[type=mandatory]{
\constraintfield{author}
\constraintfield{journaltitle}
\constraintfield{title}
}
}
私の知る限り、制約は何もしません。次の MWE を考えてみましょう。
\documentclass{article}
\usepackage{biblatex}
\begin{filecontents*}{\jobname.bib}
@article{myarticle,
title = {Some Title}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\cite{myarticle}
\printbibliography
\end{document}
pdflatex
これを、biber
、で実行すると、制約が満たされていないために停止するか、少なくとも大きな警告が出るとpdflatex
予想しますが、 または のどちらのファイルにも制約が満たされていないことを示すものは何も見当たりません。制約が満たされていない場合に/が警告を出すように制約を定義することは可能ですか?biber
log
blg
biber
pdflatex
答え1
--validate_datamodel
これらの制約をチェックするには、オプションを に渡す必要がありますbiber
。
biber --validate_datamodel file
私は
[...] WARN - Datamodel: Entry 'myarticle' (file.bib): Missing mandatory field - one of 'date, year' must be defined WARN - Datamodel: Entry 'myarticle' (file.bib): Missing mandatory field 'author' WARN - Datamodel: Entry 'myarticle' (file.bib): Missing mandatory field 'journaltitle' [...] INFO - WARNINGS: 3
必要に応じて、このオプションをbiber.conf
以下のファイルで設定することができます。
<?xml version="1.0" encoding="UTF-8"?>
<config>
<validate_datamodel>1</validate_datamodel>
</config>
biber
毎回コマンドラインオプションを書き込む代わりに。
答え2
既存のフィールドの制約を変更する場合は、忘れずに呼び出してください。
\ResetDatamodelConstraints
独自の制約を定義する前に。