使用 biblatex 引用特定类型的参考文献

使用 biblatex 引用特定类型的参考文献

我正在使用 LaTeX 更新我的简历。我的简历中有一个出版物、报告等的列表,我想用它biblatex来管理这些列表。目前,我的所有出版物都保存在一个.bib文件中,理想情况下,我希望它保持这种状态。

这是一个简单的例子,说明我希望如何将我的出版物打印在我的简历中,其中最大的标签号也等于特定部分中的参考文献总数:

出版物和演示
文稿期刊
文章 [3] 作者,A.;作者,B. 期刊文章 1 ...
[2] 作者,C.;作者,D. 期刊文章 2 ...
[1] 作者,E.;作者,F. 期刊文章 3 ...

报告
[2] 作者,G.;作者,H. 报告 1 ...
[1] 作者,I.;作者,J. 报告 2 ...

\defbibfilter我可以使用和来区分参考文献类型\printbibliography[filter=...]。但是,我可以在不引用的情况下将参考文献打印在参考书目中的唯一方法是使用\nocite{*}。当我使用 时\nocite{*},文件中的所有参考文献.bib都会添加到.bbl文件中,因此标签编号大于特定类型的实际参考文献数量。例如,如果文件中共有 8 个参考文献.bib,其中 4 篇文章和 4 份报告,则参考书目打印为:

出版物和演讲
期刊文章
[8] 作者,作者 ...
[7] 作者,作者 ...
[6] 作者,作者 ...
[5] 作者,作者 ...

报告
[8] 作者...
[7] 作者...
[6] 作者...
[5] 作者...

有没有办法\nocite只引用文件中的某些类型的参考文献.bib?例如\nocite{type=article}?或者是否有另一个biblatex命令允许我引用特定的条目类型(article、、等) reportbook而不是使用引用键进行引用?

答案1

labelnumber当子书目条目来自单独的文件时,很容易获得书目中的降序bib。该问题已得到解决在这篇文章中

与任何引文命令一样,\nocite使书目数据可供使用biblatex。它不能仅限于entrytype 先验除非你传递了特定于的输入键列表entrytype。例如:

\nocite{<articlekey1>, <articlekey2>, <articlekey3>, ...}
...
\nocite{<reportkey1>, <reportkey2>, <reportkey3>, ...}

可以通过使项目计数器特定于 来实现使用labelnumber一个文件降序排列。执行计数和打印的一种简单方法是修改。下面的代码演示了这种方法。它假设书目数据仅通过 提供。bibentrytypeentrytype\bibbycategory\nocite

可以扩展灵活category定义和所有引用命令。有关示例,请参阅先前的答案

\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=numeric,sorting=ydnt,defernumbers=true]{biblatex}

\DeclareFieldFormat{labelnumber}{\mkbibdesc{#1}}

\makeatletter

% Print labelnumber as actual number, plus item total, minus one
\newrobustcmd{\mkbibdesc}[1]{%
  \number\numexpr\csuse{bbx@itemtotal}+1-#1\relax}

% Initialize category counters
\def\bbx@initcategory#1{\csnumgdef{bbx@count@#1}{0}}
\forlistloop{\bbx@initcategory}{\blx@categories}

% Increment category counters
\def\bbx@countcategory#1{%
  \ifentrytype{#1}
    {\csnumgdef{bbx@count@#1}{\csuse{bbx@count@#1}+1}%
     \addtocategory{#1}{\thefield{entrykey}}%
     \listbreak}
    {}}
\AtDataInput{\forlistloop{\bbx@countcategory}{\blx@categories}}

% Modify \bibbycategory to set item total
\patchcmd{\blx@bibcategory}
  {\blx@key@heading{#1}}
  {\blx@key@heading{#1}%
   \csnumdef{blx@labelnumber@\the\c@refsection}{0}%
   \csnumgdef{bbx@itemtotal}{\csuse{bbx@count@#1}}}
  {}{}

\makeatother

\DeclareBibliographyCategory{article}
\DeclareBibliographyCategory{report}
\DeclareBibliographyCategory{inproceedings}

\defbibheading{bibliography}{\section*{Publications and Presentations}}
\defbibheading{article}{\subsection*{Journal Articles}}
\defbibheading{report}{\subsection*{Reports}}
\defbibheading{inproceedings}{\subsection*{Presentations}}

\addbibresource{biblatex-examples.bib}

\begin{document}
\nocite{aksin,bertram,chiu,companion,padhye,angenendt,moraux}
\printbibheading
\bibbycategory
\end{document}

在此处输入图片描述

相关内容