我正在使用 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
、、等) report
,book
而不是使用引用键进行引用?
答案1
labelnumber
当子书目条目来自单独的文件时,很容易获得书目中的降序bib
。该问题已得到解决在这篇文章中。
与任何引文命令一样,\nocite
使书目数据可供使用biblatex
。它不能仅限于entrytype
先验除非你传递了特定于的输入键列表entrytype
。例如:
\nocite{<articlekey1>, <articlekey2>, <articlekey3>, ...}
...
\nocite{<reportkey1>, <reportkey2>, <reportkey3>, ...}
可以通过使项目计数器特定于 来实现使用labelnumber
一个文件降序排列。执行计数和打印的一种简单方法是修改。下面的代码演示了这种方法。它假设书目数据仅通过 提供。bib
entrytype
entrytype
\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}