我想分别打印文章和会议论文集。
我有以下 Latex 代码
\documentclass{article}
\usepackage[margin=0.5in]{geometry}
\usepackage[backend=bibtex,style=numeric]{biblatex}
\addbibresource{lib.bib}
\begin{document}
My articles
\nocite{*}
\printbibliography[heading=none, type=article]
My conferences
\nocite{*}
\printbibliography[heading=none, type=conference]
\end{document}
和 lib.bib 文件
@article{article1,
author = "author1",
title = "title1",
journal = "journal1",
year = "2007",
url = "library.com/334"
}
@conference{conference2,
author = "W",
booktitle = "bookt",
title = "title2",
year = "2008"
}
然而,类型
conference
似乎没有被拾起:
Package biblatex Warning: Type 'conference' not found on input line 11.
任何问题?
答案1
有两个问题。第一个问题是 BibTeX 在处理您的示例时会出错,因为它会尝试将所有内容包含两次。删除其中一个\nocite{*}
s 即可解决此问题。
第二个是 BibTeX '解析'@conference
到这个别名的目标,即@inproceedings
。因此,从 Biblatex 的角度来看,没有conference
引用类型的条目。
.bbl
以下是经过 BibTeX 处理后的文件相关摘录:
\entry{conference2}{inproceedings}{}
\name{author}{1}{}{%
{{hash=W}{%
family={W},
familyi={W},
}}%
}
\strng{namehash}{W1}
\strng{fullhash}{W1}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{sortinit}{W}
\field{sortinithash}{W}
\field{booktitle}{bookt}
\field{title}{title2}
\field{year}{2008}
\endentry
请注意,@conference
在 中.bib
已成为inproceedings
中的类型.bbl
。因此,Biblatex 为类型列表生成一个空的参考书目conference
。
解决方案是简单地使用type=inproceedings
。无需更改.bib
文件中的数据,因为@conference
在 Biblatex 看到条目之前它就消失了。
\begin{filecontents}{\jobname.bib}
@article{article1,
author = "author1",
title = "title1",
journal = "journal1",
year = "2007",
url = "library.com/334"
}
@conference{conference2,
author = "W",
booktitle = "bookt",
title = "title2",
year = "2008"
}
\end{filecontents}
\documentclass{article}
\usepackage[margin=0.5in]{geometry}
\usepackage[backend=bibtex,style=numeric]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
My articles
\nocite{*}
\printbibliography[heading=none, type=article]
My conferences
\printbibliography[heading=none, type=inproceedings]
\end{document}