printbibliography 使用 defernumber=true 结果

printbibliography 使用 defernumber=true 结果

我尝试将所有出版物列为章节、文章和会议论文集,使用\printbibliography

\nocite{*}
% \printbibheading[title={Book Chapters}]
\printbibliography[heading=subbibliography,type=inbook,title= {Book Chapters},resetnumbers=true]
\printbibliography[heading=subbibliography,type=article,title={Journal Articles},resetnumbers=true]
 \printbibliography[heading=subbibliography,type=inproceedings,title={Conference Proceedings},resetnumbers=true]

使用defernumbers=true在此处输入图片描述 使用defernumbers=false在此处输入图片描述

我正在寻找一种方法,让每个部分的参考文献从 1 开始(书籍第 1-5 章、文章 1-...)。非常感谢您阅读这篇文章。祝您有美好的一天。

答案1

幸运的是,我找到了答案,这是因为 .bbl 无法正确编译,因为其他引用错误。我检查并删除了错误的引用,然后重新编译了 bbl,整个文件夹就可以正常工作了。在此处输入图片描述

现在我想按降序对出版物从最新到最旧进行排序。例如书章节:5->1(年份从 2020 年开始)有人知道还有其他推荐吗?好孤单

答案2

找到了相当冗长的解决方案:

\AtDataInput[inbook]{%
 \xifinlistcs{\thefield{entrykey}}{entrylist:\therefsection}{}{%
  \listcsxadd{entrylist:\therefsection}{\thefield{entrykey}}%
  \csnumgdef{bookentrycount:\therefsection}{%
      \csuse{bookentrycount:\therefsection}+1}}}

\DeclareFieldFormat[inbook]{labelnumber}{\mkbibbookdesc{#1}}
\newrobustcmd*{\mkbibbookdesc}[1]{%
\number\numexpr\csuse{bookentrycount:\therefsection}+1-#1\relax}

\AtDataInput[article]{%
 \xifinlistcs{\thefield{entrykey}}{entrylist:\therefsection}{}{%
  \listcsxadd{entrylist:\therefsection}{\thefield{entrykey}}%
  \csnumgdef{articleentrycount:\therefsection}{%
      \csuse{articleentrycount:\therefsection}+1}}}

\DeclareFieldFormat[article]{labelnumber}{\mkbibarticledesc{#1}}
\newrobustcmd*{\mkbibarticledesc}[1]{%
 \number\numexpr\csuse{articleentrycount:\therefsection}+1-#1\relax}


\AtDataInput[inproceedings]{%
 \xifinlistcs{\thefield{entrykey}}{entrylist:\therefsection}{}{%
  \listcsxadd{entrylist:\therefsection}{\thefield{entrykey}}%
  \csnumgdef{inproceedingscount:\therefsection}{%
      \csuse{inproceedingscount:\therefsection}+1}}}

\DeclareFieldFormat[inproceedings]{labelnumber}{\mkbibinproceedingscountdesc{#1}}
\newrobustcmd*{\mkbibinproceedingscountdesc}[1]{%
 \number\numexpr\csuse{inproceedingscount:\therefsection}+1-#1\relax}

相关内容