为了在 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,则只能使用默认数据模型。
这基本上意味着您无法使用isbn10
或isbn13
添加新字段backend=bibtex,
。标准数据模型具有自定义字段usera
、userb
、...,userf
您可以将其用于任何目的,因此如果您绝对需要坚持使用 BibTeX 并且绝对需要两个 ISBN 字段,这将是一个选择。当然,字段名称不太有用,这有点不令人满意。
理论上,可以通过修改本地版本来添加新字段biblatex.bst
(就像使用经典 BibTeX 样式一样),但由于biblatex.bst
是包不可或缺的一部分biblatex
,因此在更新时必须将此本地副本与包的其余部分保持同步。这非常繁琐且容易出错,所以我绝对不推荐这样做。
许多高级biblatex
功能仅可用于 Biber,这就是为什么它长期以来一直是默认后端,并且文档通常假设每个人都使用 Biber。BibTeX 仅作为传统选项受支持。