Zotero 的 BetterBibLaTeX 年份和 ISBN 在 LaTeX 中的显示

Zotero 的 BetterBibLaTeX 年份和 ISBN 在 LaTeX 中的显示

首先我的问题是:如何调整 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}

我得到以下结果: 错误的日期和 isbn

编辑:

这里是 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”)

结果应该正确。

相关内容