我正在写我的简历,虽然我只想打印我的部分内容@unpublished
和@inproceedings
参考书目中的条目,但我确实想打印我的所有@article
条目。
有什么方法可以让我获得\nocite
特定类型的所有条目(@article
在这种情况下)?
考虑到我根据条目的类型将其放在不同的文件中。以下是 MWE:
\documentclass{article}
\usepackage[backend=biber]{biblatex}
\addbibresource{articles.bib}
\addbibresource{talks.bib}
\addbibresource{unpublished.bib}
\begin{document}
% How do I nocite all @article entries?
\nocite{<all @article entries>}
\nocite{sometalk, someothertalk}
\nocite{someunpublished, someotherunpublished}
% This should print all articles
\printbibliography[title=Articles, type=article]
% This should print sometalk and someothertalk
\printbibliography[title=Talks, type=inproceedings]
% This should print someunpublished and someotherunpublished
\printbibliography[title=Unpublished, type=unpublished]
\end{document}
答案1
\nocite
仅支持列表输入键你想添加到你的参考书目或\nocite{*}
允许全部.bib
要添加的文件中可用的条目。
没有办法告诉\nocite
只选择@article
s 或具有其他属性的条目,请参阅\nocite{*} 用于 biblatex/biber 的单个 bibdatasources,是否可以使用 Biblatex/Biber 并在文档代码内根据关键字向参考书目添加条目?。
不过,在较新版本的 Biber 中有一个解决方法,它允许您使用源映射清除不需要的条目。这将产生预期的输出。
您将需要在3.15/Biber 2.15starnocited
中添加的关键字(biblatex
https://github.com/plk/biber/issues/319)。
\documentclass{article}
\usepackage[backend=biber, defernumbers=true]{biblatex}
\DeclareSourcemap{
\maps[datatype=bibtex, overwrite]{
\map{
\pernottype{article}
\step[starnocited=true, final]
\step[entrynull]
}
}
}
\addbibresource{biblatex-examples.bib}
\begin{document}
\nocite{*}
\nocite{westfahl:space,gaonkar:in}
\nocite{salam} % we don't want moraux
% This should print all articles
\printbibliography[title=@article, type=article]
% This should print salam but not moraux
\printbibliography[title=@inproceedings, type=inproceedings]
% This should print westfahl:space gaonkar:in and nothing else
\printbibliography[title=@incollection, type=incollection]
\end{document}
这将清除所有非@article
s 的条目,这些条目仅因为\nocite{*}
(即未使用其密钥明确\cite
d 或d 的条目) 而存在\nocite