如何将 biblatex 数据模型与 bibtex 后端一起使用?

如何将 biblatex 数据模型与 bibtex 后端一起使用?

为了在 bib 条目中添加对 ISBN-10 和 ISBN-13 的支持,我借用了以下代码片段:这里,但用作bibtex后端。但是,这似乎不起作用,而它可以与biber后端配合使用。我能做些什么让它与一起工作bibtex?下面提供了 MWE。

\documentclass{article}
\usepackage{filecontents}
\usepackage[backend=bibtex,datamodel=biblatex-dm,isbn=true]{biblatex}

\begin{filecontents}{\jobname.bib}
@book{drucker1959landmarks,
  title={Landmarks of Tomorrow: A Report on the New},
  author={Drucker, Peter},
  publisher={Transaction Publishers},
  year={1996},
  isbn={1560006226},
  ISBN10={1560006226},
  ISBN13={978-1560006220},
  note={[original edition 1959]}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{filecontents}{biblatex-dm.cfg}
\DeclareDatamodelFields[type=field,datatype=literal]{isbn10,isbn13}
\DeclareDatamodelEntryfields[book]{isbn10,isbn13}
\end{filecontents}

\DeclareFieldFormat{isbn}{\textsc{isbn-13}~\printfield{isbn13}, \textsc{isbn-10}~\printfield{isbn10}}

\title{title}
\author{A.U. Thor}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

答案1

仅当您使用 Biber 后端时才可以自定义数据模型。如果您使用 BibTeX,则只能使用默认数据模型。

这基本上意味着您无法使用isbn10isbn13添加新字段backend=bibtex,。标准数据模型具有自定义字段userauserb、...,userf您可以将其用于任何目的,因此如果您绝对需要坚持使用 BibTeX 并且绝对需要两个 ISBN 字段,这将是一个选择。当然,字段名称不太有用,这有点不令人满意。

理论上,可以通过修改本地版本来添加新字段biblatex.bst(就像使用经典 BibTeX 样式一样),但由于biblatex.bst是包不可或缺的一部分biblatex,因此在更新时必须将此本地副本与包的其余部分保持同步。这非常繁琐且容易出错,所以我绝对不推荐这样做。


许多高级biblatex功能仅可用于 Biber,这就是为什么它长期以来一直是默认后端,并且文档通常假设每个人都使用 Biber。BibTeX 仅作为传统选项受支持。

相关内容