我正在尝试制作一个出版物列表,其中显示我的所有出版物(在 .bib 文件中)(最新出版物在前),并按类型(文章、论文、书籍等)进行划分。目前,我想到了一个或多或少可行的方法,只是计数器在所有不同的书目之间共享,请参见下图。
我希望文章中的计数器为[1]
、,然后[2]
将...
书籍中的计数器重置为[1]
、,[2]
等等...
。
上面 MWE 的代码如下:
\documentclass{article}
\usepackage[sorting=ymdnt, backend=biber]{biblatex}
\DeclareSortingScheme{ymdnt}{
\sort{
\field{presort}
}
\sort[final]{
\field{sortkey}
}
\sort[direction=descending]{
\field[strside=left,strwidth=4]{sortyear}
\field[strside=left,strwidth=4]{year}
\literal{9999}
}
\sort[direction=descending]{
\field{month}
\literal{9999}
}
\sort{
\field{sortname}
\field{author}
\field{editor}
\field{translator}
\field{sorttitle}
\field{title}
}
\sort{
\field{sorttitle}
\field{title}
}
}
\usepackage{filecontents}
\begin{filecontents}{references.bib}
@book{knuth1986texbook,
keywords = {book},
title={The texbook},
author={Knuth, D.E. and Bibby, D.},
volume={1993},
year={1986},
publisher={Addison-Wesley}
}
@article{knuth1977fast,
keywords = {article},
title={Fast pattern matching in strings},
author={Knuth, D.E. and Morris Jr, J.H. and Pratt, V.R.},
journal={SIAM journal on computing},
volume={6},
number={2},
pages={323--350},
year={1977},
publisher={SIAM}
}
@article{doe2001,
keywords = {article},
title={Whatever},
author={Doe, John},
journal={SIAM journal on computing},
volume={6},
number={2},
pages={323--350},
year={2001},
publisher={SIAM}
}
\end{filecontents}
\addbibresource{references.bib}
\begin{document}
\nocite{*}
\printbibliography[type=article,title=Articles]
\printbibliography[type=book,title=Books]
\end{document}
答案1
您需要两样东西:(1)全局defernumbers
(包)选项和(2)本地(每个\printbibliography
)选项resetnumbers
。
当然,这意味着标签极不唯一,不能用于引用条目,但您无疑意识到了这一点。
\documentclass{article}
\usepackage[sorting=ydnt, backend=biber, defernumbers]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\nocite{*}
\printbibliography[type=article, title=Articles, resetnumbers]
\printbibliography[type=book, title=Books, resetnumbers]
\end{document}
我简化了 MWE,使其更紧凑,更容易将注意力集中在重要的事情上。但请注意,在较新版本的biblatex
命令中\DeclareSortingScheme
,现在称为\DeclareSortingTemplate
。旧名称仍然有效,但会生成警告。