我正在尝试使用它biblatex
来生成我的简历上的出版物列表。
这工作正常,但它没有生成我想要的输出:
\documentclass{article}
\usepackage[
sorting=ydnt,
bibstyle=ieee
]{biblatex} %ydnt: Sort by year (descending), name, title.
\addbibresource{MyPublications.bib}
\begin{document}
\cite{FirstPaper}
\printbibliography[title={Journal Papers}]
\end{document}
然后我尝试了这个,按照示例 3.10.4biblatex
用户手册:
\documentclass{article}
\usepackage[
sorting=ydnt,
bibstyle=ieee
]{biblatex} %ydnt: Sort by year (descending), name, title.
\addbibresource{MyPublications.bib}
\DeclareBibliographyCategory{primary}
\addtocategory{primary}{FirstPaper}
\begin{document}
\printbibheading
\printbibliography[category=primary,heading=subbibliography,title={Journal Papers}]
\end{document}
该代码生成一个空文档,其中只有一个名为“参考”的部分。
我正在使用 64 位 MiKTeX 2.9 和 TeXstudio(Windows),但我也尝试了 TeXnicCenter 和 WinEdt。
顺便说一句,在第二种情况下,.bbl
文件是空的(除了标题),这可能会给出一些关于哪里出了问题的迹象。
答案1
对于第一个问题,您能否详细说明您想要实现的目标以及“它没有生成您想要的输出”到底是什么意思?可能您还应该包含屏幕截图或示例文件.bib
。
第二次尝试没有显示任何内容,这是显而易见的,因为文档中没有引用任何内容。您可以使用\nocite{*}
before\printbibliography
来显示.bib
文件中的所有内容。
我认为添加一个关键词到你的书目条目,描述类别,例如keywords = {primary}
。这样你就不必每次添加新的 bib 条目时都更改你的 tex 文件。所以总的来说它应该像下面这样工作:
\documentclass{article}
\usepackage[
sorting=ydnt,
bibstyle=ieee
]{biblatex} %ydnt: Sort by year (descending), name, title.
\addbibresource{MyPublications.bib}
\begin{document}
\nocite{*}
\printbibheading
\printbibliography[keyword=primary,heading=subbibliography,title={Journal Papers}]
\printbibliography[keyword=secondary,heading=subbibliography,title={Books}]
\end{document}
但还要注意,如果您根据条目类型区分类别,如论文、书籍、网络链接等,您甚至可以使用\printbibliography[type=book,...]
。(您引用的用户指南中也提到过)
答案2
我将其添加为答案而不是对 canaaerus 答案的评论,因为否则它会太长。
即使您实际上没有引用任何内容,您也需要使用 Biblatex 的引用命令来处理条目,这是唯一的方法。开发人员已经考虑到了您的问题,他们创建了一个\nocite
命令,该命令的作用与通常的相同\cite
,只是它实际上不打印引用(仅打印参考书目)。
该\addtocategory
命令会将条目添加到参考书目中的特定类别(如“书籍”或“期刊论文”),但它不会取代引用命令。它只是将条目标记为属于某个类别,并且只有在引用后才会生效(因此您可以拥有一个定义类别的主文件并将其用于所有论文)。
为了将您的条目分类到子类别中,最简单的选择可能是使用type
和nottype
(它们指的是条目类型,例如“书籍”或“文章”),或keyword
和notkeyword
,category
和notcategory
等。您可以使用其中的几个来微调分段。
\documentclass{article}
\usepackage[sorting=ydnt,bibstyle=ieee]{biblatex}
\addbibresource{MyPublications.bib}
\begin{document}
\nocite{*}
\printbibheading
\printbibliography[type=article,heading=subbibliography,title={Journal Papers}]
\printbibliography[type=book,heading=subbibliography,title={Books}]
\end{document}
关于标签问题,我建议你看一下这个答案。我现在没有时间进行实验,但经过一番尝试后,它应该可以满足您的要求。请注意,此解决方案还实现了反向编号(我不确定您是否想要它,但它与反向时间顺序一致)。