最近我发现我的Access Date
参考书目条目丢失了。在搜索了我的整个代码后,我发现这是由于 造成的\DeclareSourcemap
。
在下一个使用空的构建示例中\DeclareSourcemap{}
,Access Date
参考书目条目将被删除:
但是如果你删除该行\DeclareSourcemap{}
,那么该Access Date
字段就会正确显示:
如何阻止\DeclareSourcemap{}
命令删除我的Access Date
参考书目条目?
我做什么都没关系。例如,如果我声明一个空的\DeclareSourcemap
,如下所示:
\DeclareSourcemap{}
我的Access Date
书目将被删除。
如果我让我的原创\DeclareSourcemap
:
\DeclareSourcemap
{
\maps[datatype=bibtex]
{
\map{
\step[fieldset=pagetotal, null]
}
\map
{
\pertype{inproceedings}
\step[fieldset=venue, null]
\step[fieldset=eventdate, null]
\step[fieldset=eventtitle, null]
\step[fieldset=isbn, null]
\step[fieldset=volume, null]
}
}
}
我的Access Date
书目条目仍然被删除。
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@mvbook{assis08,
author = {Machado de Assis},
title = {Obra completa em quatro volumes},
year = {2008},
editor = {Aluizio Leite and Ana Lima Cecilio and Heloisa Jahn},
editortype = {organizer},
edition = {2},
volumes = {4},
publisher = {Nova Fronteira},
location = {Rio de Janeiro},
series = {Biblioteca luso-brasileira. Série brasileira brasileira brasiled},
urlaccessdate = {2018-02-17},
}
\end{filecontents*}
\PassOptionsToPackage{brazil,main=english,spanish,french}{babel}
\documentclass[12pt,a4paper,english]{abntex2}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage[style=abnt,repeatfields=true,backend=biber,backref=true]{biblatex}
\pdfstringdefDisableCommands{\let\uppercase\relax}
\addbibresource{\jobname.bib}
\DeclareSourcemap{} % <-- Remove this and the `Access Date` will show up correctly
\begin{document}
Citing \cite{assis08}. \printbibliography
\end{document}
答案1
您正在运行的版本已过时,biblatex
不允许使用多个\DeclareSourcemap
s。此限制已在 3.11 版(2018-02-20)中解除biblatex
,请参阅https://github.com/plk/biblatex/issues/227。
urlaccessdate
不是biblatex
URL 访问日期的标准字段。标准字段是urldate
。为了向后兼容abntex2cite
biblatex-abnt
重新映射urlaccessdate
和其他字段到biblatex
中的等价字段\DeclareSourcemap
。
在您的过时版本中biblatex
只能有一个源映射,并且序言中的文档级源映射将覆盖样式级源映射。这就是为什么\DeclareStyleSourcemap
可以使用样式而不会干扰用户级映射的原因。
如果你更新,biblatex
一切都会按预期工作。biblatex-abnt
应该使用DeclareStyleSourcemap
,但是,请参阅https://github.com/abntex/biblatex-abnt/pull/56。
作为临时解决方法,您可以abnt.bbx
从https://github.com/abntex/biblatex-abnt/pull/56或者将您的源图和样式源图合并到
\DeclareSourcemap{%% >>>2
% This maps some fields used in abntex2cite to biblatex fields.
\maps[datatype=bibtex]{%
\map{%
\step[fieldsource=conference-number,fieldtarget=number]%
\step[fieldsource=conference-year,fieldtarget=eventdate]%
\step[fieldsource=conference-location,fieldtarget=venue]%
\step[fieldsource=conference-number,fieldtarget=number]%
\step[fieldsource=org-short,fieldtarget=shortauthor]%
\step[fieldsource=urlaccessdate,fieldtarget=urldate]%
\step[fieldsource=year-presented,fieldtarget=eventyear]%
\step[fieldsource=furtherresp,fieldtarget=titleaddon]%
\step[typesource=journalpart,typetarget=supperiodical]%
}%
\map[overwrite=false]{%
\step[fieldsource=reprinted-from, final]%
\step[fieldset=related, origfieldval]%
}%
\map[overwrite=false]{%
\step[fieldsource=reprinted-text, final]%
\step[fieldset=relatedtype, fieldvalue={reprintfrom}]%
}%
\map{%
\pertype{patent}% Use the organization as sourcekey for patents
\step[fieldsource=organization, final]%
\step[fieldset=sortkey, origfieldval]%
}%
\map[overwrite=false]{%
\pertype{thesis}%
\pertype{phdthesis}%
\pertype{mastersthesis}%
\pertype{monography}%
\step[fieldset=bookpagination, fieldvalue={sheet}]%
}%
\map{
\step[fieldset=pagetotal, null]
}
\map
{
\pertype{inproceedings}
\step[fieldset=venue, null]
\step[fieldset=eventdate, null]
\step[fieldset=eventtitle, null]
\step[fieldset=isbn, null]
\step[fieldset=volume, null]
}
}%
}% <<<2
在您的文档中。