首先我的问题是:如何调整 biblatex 以仅显示日期的年份并且不从 ISBN 中删除破折号?
这是我的 MWE:
BetterBibLaTeXZotero Standalone 4.0 中的 1.6.6 可以导出如下书:
@book{west_introduction_2000,
edition = {2},
title = {Introduction to Graph Theory},
isbn = {978-0-13-014400-3},
pagetotal = {470},
timestamp = {2015-11-23T15:45:12Z},
publisher = {{Prentice Hall}},
author = {West, Douglas Brent},
year = {22.08.2000}
}
使用 MWE LaTeX 文档
\documentclass{scrartcl}
\usepackage[style = authoryear, url = false]{biblatex}
\addbibresource{book.bib}
\begin{document}
\textcite{west_introduction_2000}
\printbibliography
\end{document}
编辑:
这里是 GitHub 上对应的问题。
答案1
由于 Biber 的新 ISBN 功能存在错误,ISBN 被删除了连字符(根据自动验证和格式化 ISBN) 已在 2.3 版中修复(请参阅github 上的 Biber bugtracker 中的 #89)。Biber 2.3 版目前在 CTAN 上不可用,但作为开发/测试版本源码。
第二个问题与格式错误的字段有关year
。它只能容纳一年(或者说,你在其中写入的所有内容都将被视为年份),可以在date
正确输入格式的字段中指定整个日期YYYY-MM-DD
(如果需要,可以使用前导零)
date = {2000-08-22}
如果你需要格式错误的year
字段才能工作现在开箱即用,您可以使用以下源映射作为临时解决方案
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=year, match=\regexp{([0-9]{2}).([0-9]{2}).([0-9]{4})}, final]
\step[fieldset=date, fieldvalue={$3-$2-$1}]
\step[fieldset=year, null]
}
}
}
这将匹配格式year
中的字段DD.MM.YYY
,并将格式正确的日期写入YYYY-MM-DD
字段date
。然后清除该year
字段以避免混淆。
当然,该代码仅适用于上述 MWE 中的特定问题;如果您的year
字段格式更加奇怪,那么您将不得不考虑另一种临时解决方案来解决这些问题。
平均能量损失
\documentclass{scrartcl}
\usepackage[style = authoryear, url = false]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{west_introduction_2000,
edition = {2},
title = {Introduction to Graph Theory},
isbn = {978-0-13-014400-3},
pagetotal = {470},
publisher = {{Prentice Hall}},
author = {West, Douglas Brent},
year = {22.08.2000}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=year, match=\regexp{([0-9]{2}).([0-9]{2}).([0-9]{4})}, final]
\step[fieldset=date, fieldvalue={$3-$2-$1}]
\step[fieldset=year, null]
}
}
}
\begin{document}
\textcite{west_introduction_2000}
\printbibliography
\end{document}
答案2
真正的 BibLaTeX 专家需要对 ISBN 进行补充,但对于日期,该 biblatex 文件是错误的:它应该有
date = {2000-08-22}
而不是年份条目,这就是我从 Zotero/Better BibLaTex 获得的结果。因此,请确保您 1) 使用最新版本的 Better BibLaTeX 2) 选择 Better BibTeX 自己的 BibLaTeX 导出格式(“Better BibLaTeX”)
结果应该正确。