如何仅为特定作者打印参考书目?

如何仅为特定作者打印参考书目?

背景:我把所有书目条目都放在一个巨大的 .bib 文件中。在我的简历中,我希望有一个部分列出我所有的文章,另一个部分列出我所有的会议演讲。我目前的方法是这样的:我用关键字“own”标记我自己的条目,然后使用 biblatex:

\printbibliography[type=article,keyword=own,heading="Articles"]
\printbibliography[type=inproceedings,keyword=own,heading="Conference Presentations"]

这种方法有两个缺点。首先,我必须标记我的所有条目,但有时我可能会漏掉一些。其次,我必须标记我的所有条目,这又是一个犯错的好机会。

第一个问题可以通过使用 bib2bib 来解决,它允许我通过为字段指定过滤器从大 .bib 文件中提取我自己的文章author。但是,我想知道是否有更简单的解决方案,只使用 LaTeX 中的工具。 \printbibliography似乎已经有一些过滤功能,但从阅读手册中我无法弄清楚如何根据字段的值过滤条目。

答案1

您可以使用 regexp 将字段映射到field viakeyword = {own},中具有给定模式的所有条目,如下所示author\DelclareSourcemapPLK 的回答biblatex:在参考书目中分离特定作者的出版物(还有一个例子文档为每个具有给定标题的条目添加一个关键字,参见§4.5.2)。例如:

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=author,
            match=Kant,
            final]
      \step[fieldset=keywords, fieldvalue=own]
    }
  }
}

此后,你可以使用\printbibliography[keyword={own}] refsection环境中为了\nocite{*}打印出所有标有你的关键字(称为 via )的条目,如下图所示Marco Daniel 对同一问题的回答

\begin{refsection}
\nocite{*}
\printbibliography[keyword=own,title={These are my Works}]
\end{refsection}

这是 MWE

\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=author,
            match=Kant,
            final]
      \step[fieldset=keywords, fieldvalue=own]
    }
  }
}
\begin{document}
\null\vfill
\thispagestyle{empty}
Hi, I'm Kant.
\autocites{knuth:ct,knuth:ct:a,companion}
\begin{refsection}
\nocite{*}
\printbibliography[keyword=own,title={These are my Works}]
\end{refsection}
\printbibliography[notkeyword=own,title={These are awesome works by other people I like}]
\end{document}

姆韦

* 编辑:我已从\regexp内部match=Kant删除了它\DeclareSourceMap,因为不再需要它了。

答案2

我在使用 CITAVI 的 .bib 文件当前的 EXPORT 函数时遇到了与 tmalsburg 类似的问题。

问题是 CITAVE 通常使用“;”作为分隔符,而 LATEX 使用“,”

所以如果你从 CITAVI 导出,.bib 中的关键字行如下所示:

 keywords = {Result CV;wearable},

但你需要的是:

 keywords = {Result CV,wearable},

因此,通过直接导出结果,您可以在乳胶中选择关键字“Result CV;wearable”,然后它会打印相应的参考资料......所以它将其视为一个关键字......

我还没有在 citavi 中找到解决这个问题的方法,但会向他们报告这个问题。

目前我能给出的最佳解决方案是:

在 Citavi 中分配您的关键字

从 Citavi 导出 .bib 文件

使用 notepad++ 打开 .bib 文件,并在替换函数中执行以下操作

找什么:^(.*keywords.*);

用。。。来代替:$1,

重复运行直到出现 0 次。

相关内容