biblatex:自定义条目类型的用户定义日期规范可以吗?

biblatex:自定义条目类型的用户定义日期规范可以吗?

我们部门使用JabRef来管理文献,基于自定义条目类型,字段主要是标准字段。

我现在想实现基于我们数据库的 LaTeX 文档中引用文献的功能。因此我遇到了不同的问题。

我发现我可以使用基于的自定义条目类型

\declarBibliographyDriver{customEntryType}{% 
\usebibmacro{begentry}%
...
\usebibmacro{finentry}%
}

现在我确实有两个问题:

  1. 标准字段所需的格式:

    如果所有内容都按照 biblatex 的要求格式化,则标准字段(例如 via\printnames{author}或 ) 的打印可以正常工作。不幸的是,对于以德语方式使用的字段,情况并非如此。根据 biblatex 文档(2.3.8 日期规范),日期必须采用 yyyy-mm-dd 样式进行格式化,因此我得到了错误。\printdatedatedd.mm.yyyyInvalid format '25.07.2016' of date field 'date' - ignoring

    是否可以获取用户定义的日期规范?也许可以结合自定义条目类型的定义,如中所述这个问题

  2. 自定义字段:

    我们使用的一些字段是自定义的。是否可以添加它们以便在定义中使用它们\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 等),也可以扩展数据模型。但您的信息将决定哪种方式更合理。

相关内容