我们部门使用JabRef来管理文献,基于自定义条目类型,字段主要是标准字段。
我现在想实现基于我们数据库的 LaTeX 文档中引用文献的功能。因此我遇到了不同的问题。
我发现我可以使用基于的自定义条目类型
\declarBibliographyDriver{customEntryType}{%
\usebibmacro{begentry}%
...
\usebibmacro{finentry}%
}
现在我确实有两个问题:
标准字段所需的格式:
如果所有内容都按照 biblatex 的要求格式化,则标准字段(例如 via
\printnames{author}
或 ) 的打印可以正常工作。不幸的是,对于以德语方式使用的字段,情况并非如此。根据 biblatex 文档(2.3.8 日期规范),日期必须采用 yyyy-mm-dd 样式进行格式化,因此我得到了错误。\printdate
date
dd.mm.yyyy
Invalid format '25.07.2016' of date field 'date' - ignoring
是否可以获取用户定义的日期规范?也许可以结合自定义条目类型的定义,如中所述这个问题?
自定义字段:
我们使用的一些字段是自定义的。是否可以添加它们以便在定义中使用它们
\DeclareBibliographyDriver
,或者我是否必须创建自定义条目类型,如中所述这里? 我遇到的主要问题是 JabRef 中用于自动链接 pdf 文件的字段key
。我想将其添加到参考书目中,以便更轻松地在 JabRef 中查找文章。不幸的是,密钥未写入 .bbl 文件中,我无法在 中使用它\DeclareBibliographyDriver
。
在此先非常感谢您的帮助!
答案1
关于日期,您可以使用正则表达式来更正格式:
\documentclass[11pt,a4paper]{article}
\usepackage{biblatex}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map[overwrite]{
\step[fieldsource=date,
fieldset=date,
match=\regexp{([0-9]+)\.([0-9]+)\.([0-9]+)},
fieldvalue={$3-$2-$1}
]
}
}
}
\addbibresource{test.bib}
\begin{document}
\cite{testdate1,testdate2}
\printbibliography
\end{document}
和
@misc{testdate1,
author = {testauthor},
title = {blblb},
date = {03.04.2016},
}
@misc{testdate2,
author = {testauthor},
title = {blblb},
date = {2016-03-04},
}
关于您的自定义字段,您可以将其映射到现有字段(例如 usera、customa 等),也可以扩展数据模型。但您的信息将决定哪种方式更合理。