我有大量资料,我发现 Mandeley 是一款非常有用的生成 .bib 文件的工具。但是,Mendeley 不支持 biblatex 的额外功能。虽然您可以在 Mendeley 中将文档分类为“专利”或“网页”,但它们都会被导出为“杂项”。例如
网页:
@misc{Label1,
abstract = {...},
author = {...},
file = {:...:pdf},
institution = {...},
title = {{...}},
url = {http://....pdf},
year = {...}
}
专利:(注意愚蠢的 Mendeley 不出口专利数字,但必须指定)
@misc{Label2,
abstract = {....},
author = {...},
file = {:...:pdf},
institution = {...},
title = {{...}},
year = {...}
}
了解了 biblatex 的功能,有没有办法重新解释条目类型?例如:
\DeclareStyleSourcemap{%
\maps[datatype=bibtex, overwrite=true]{%
\map{%
\pertype{misc}%
\step[entrynewtype=patent]%
\step[fieldsource=url, final]%
\step[entrynewtype=online]
}%
}%
}
但这段代码似乎不起作用......
考虑这个例子:
\documentclass{article}
\usepackage[style=science,article-title=true]{biblatex}
%\usepackage{csquotes}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{Johannes2007,
author = {Johannes, Michael S. and Polson, Nick},
title = {{Particle Filtering and Parameter Learning}},
url = {http://www.ssrn.com/abstract=983646},
month = {10},
year = {2007}
}
@misc{Pronk2013,
author = {Pronk, Serverius Petrus Paulus and Musch, Guido Josef and Maass, Henning and Aubert, Xavier Louis Marie Antoine and Most, Else Inger Stapel},
institution = {Koninklijke Philips N.V.},
number = {{WO 2013/132454 A1}},
title = {{Generating a circadian time difference}},
year = {2013}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Text \cite{Pronk2013} More Text \cite{Johannes2007}
\printbibliography
\end{document}
将会呈现
将其更改为类型时online
将patent
显示
尤其重要的是,后者仅显示了至关重要的专利号。
(然而,在后一种情况下,我错过了专利的标题和在线文档的日期......叹息)
答案1
\DeclareSourcemap{
\maps[datatype=bibtex, overwrite=true]{
\map{
\step[fieldsource=url, final]
\step[typesource=misc, typetarget=online]
}
\map{
\step[typesource=misc, typetarget=patent, final]
\step[fieldsource=institution, final]
\step[fieldset=holder, origfieldval]
}
}
}
将所有@misc
带有 URL 的 转换为 ,@online
并将所有其他转换@misc
为@patent
。此外,该institution
字段被复制到holder
,因为@patent
无法识别该institution
字段。
biblatex-science
不会打印holder
或institution
字段,因此最后的映射步骤虽然在概念上很好,但实际上并不会导致特定示例中的输出有任何差异。
\DeclareSourcemap{
\maps[datatype=bibtex, overwrite=true]{
\map{
\step[typesource=misc, typetarget=patent, final]
\step[fieldsource=url, final]
\step[typesource=patent, typetarget=online]
}
}
}
会更接近您的建议。如果您想更改条目类型,则需要typesource
和。这意味着如果我们在第一步中添加typetarget
,我们可以取消。第一步将所有 转换为。第二步过滤所有带有 URL 的 ,并将其转换为。使用您的设置,这应该等同于另一个建议。\pertype
final
@misc
@patent
@patent
@online
编辑切换到用户级命令\DeclareSourcemap
。仅应在样式(或文件)\DeclareStyleSourcemap
中使用。.bbx
.cbx