在 biblatex 中使用拆分参考书目列表和 defernumbers=true 时如何获取排序和压缩的引文?

在 biblatex 中使用拆分参考书目列表和 defernumbers=true 时如何获取排序和压缩的引文?

我的参考文献列表根据 bib 参考的条目类型显示在 2 个列表中。

我希望列表按数字排序。另外,我希望引用以排序和压缩的方式显示。问题是我只能得到其中一个。

当我以这种方式使用 biblatex 时:

\usepackage[style=numeric,citestyle=numeric-comp,sorting=ynt,defernumbers=true,backend=biber]{biblatex}

文中引用及参考文献保留:

defernumbers=true,但引用顺序混乱 当我不使用延迟数字=真它得到:

\usepackage[style=numeric,citestyle=numeric-comp,sorting=ynt,backend=biber]{biblatex}

在此处输入图片描述 我已经在 Google 上搜索了许多类似的问题,但没有一个能解决这个问题。

如果这是 biblatex 中的一个错误,我认为唯一的方法是以手动排序的方式引用参考文献,因为当我使用时,参考文献看起来是按引用顺序显示的延迟数字=真

有没有好心人可以帮助我避免花费大量时间手动解决这个问题?

MWE 与 defernumbers=true:

\documentclass{article}
\usepackage[style=numeric,citestyle=numeric-comp,sorting=ynt,defernumbers=true,backend=biber]{biblatex}
\usepackage{filecontents}

\begin{filecontents}{jobname.bib}
    @inproceedings{Kim2010,
    author = {Kim, Duk Sang and Chuc, Nguyen Huu},
    title = {A flexible fingertip tactile sensor},
    year = {2010}
    }
    @article{Yang2010,
    author = {Yang, Y.-J. and Cheng, M.-Y.},
    title = {A 32 x 32 temperature and tactile sensing array using PI-copper films},
    year = {2010}
    }
    @article{Okuyama2012,
    title = {Miniature ultrasonic and tactile sensors for dexterous robot},
    author = {Okuyama, Masanori and Yamashita, Kaoru},
    year = {2012}
    }
    @inproceedings{Bimbo2012,
    author = {J. Bimbo and S. Rodriguez-Jimenez},
    title = {Object pose estimation and tracking by fusing visual and tactile information},
    year = {2012}
    }
\end{filecontents}

\addbibresource{jobname.bib}

\begin{document}

    Citations: \cite{Kim2010,Bimbo2012,Yang2010,Okuyama2012}
    \printbibliography[title={Article}, type=article]
    \printbibliography[title={Inproceedings}, type=inproceedings]

\end{document}

答案1

您需要告诉 biber 如何对条目进行排序,请参阅biblatex - 根据数字对引用进行排序(拆分参考书目)

\documentclass{article}
\usepackage[style=numeric,citestyle=numeric-comp,sorting=ynt,defernumbers=true,backend=biber]{biblatex}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
     \pertype{article}
     \step[fieldset=presort, fieldvalue = {A}]
    }
    \map{
      \pertype{inproceedings}
      \step[fieldset=presort, fieldvalue = {B}]
    }
  }
}

\usepackage{filecontents}

\begin{filecontents}{jobname.bib}
    @inproceedings{Kim2010,
    author = {Kim, Duk Sang and Chuc, Nguyen Huu},
    title = {A flexible fingertip tactile sensor},
    year = {2010}
    }
    @article{Yang2010,
    author = {Yang, Y.-J. and Cheng, M.-Y.},
    title = {A 32 x 32 temperature and tactile sensing array using PI-copper films},
    year = {2010}
    }
    @article{Okuyama2012,
    title = {Miniature ultrasonic and tactile sensors for dexterous robot},
    author = {Okuyama, Masanori and Yamashita, Kaoru},
    year = {2012}
    }
    @inproceedings{Bimbo2012,
    author = {J. Bimbo and S. Rodriguez-Jimenez},
    title = {Object pose estimation and tracking by fusing visual and tactile information},
    year = {2012}
    }
\end{filecontents}

\addbibresource{jobname.bib}

\begin{document}

Citations: \cite{Kim2010,Bimbo2012,Yang2010,Okuyama2012}
\printbibliography[title={Article}, type=article]
\printbibliography[title={Inproceedings}, type=inproceedings]

\end{document}

在此处输入图片描述

相关内容