Mendeley 和 Biblatex:如何将“misc”解释为“patent”或“online”

Mendeley 和 Biblatex:如何将“misc”解释为“patent”或“online”

我有大量资料,我发现 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}

将会呈现

enter image description here

将其更改为类型时onlinepatent显示

enter image description here

尤其重要的是,后者仅显示了至关重要的专利号。

(然而,在后一种情况下,我错过了专利的标题和在线文档的日期......叹息)

答案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不会打印holderinstitution字段,因此最后的映射步骤虽然在概念上很好,但实际上并不会导致特定示例中的输出有任何差异。


\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 的 ,并将其转换为。使用您的设置,这应该等同于另一个建议。\pertypefinal@misc@patent@patent@online


编辑切换到用户级命令\DeclareSourcemap。仅应在样式(或文件)\DeclareStyleSourcemap中使用。.bbx.cbx

相关内容