biblatex 切换行为是否符合预期或结果是否应该稳定

biblatex 切换行为是否符合预期或结果是否应该稳定

在我的上一个问题由于在给定的解决方案,我扩展了这里

因此问题是第二个参考书目中的编号在两种状态之间切换,如下所示:

固定的 固定切换

每次运行 都会pdflatex在这两个状态之间切换。这是个小故障吗?我还没有进一步测试,但正如 Andrew 在评论中提到的,问题可能是 的使用defernumbers。然而,如果没有它们,第二个参考书目将保持未分类。

是否可以稳定结果?或者使用这两个书目时其他地方是否存在问题?

编辑。这是下列示例的最小版本,也产生相同的切换行为。

\documentclass{article}
% include bib from full example here
\usepackage[backend=biber,bibencoding=utf8,citestyle=numeric,defernumbers=true]{biblatex}

\bibliography{ref2}

\begin{document}
\cite{J2010, Z2010, Z2007, C2009, T2010}    
\printbibliography
\newrefsection
\nocite{*}
\printbibliography[resetnumbers=true,keyword=publication,type=article,heading=subbibliography,title={Journals}]
\printbibliography[keyword=publication,type=inproceedings,heading=subbibliography,title={Conferences}]
\end{document}

图片原代码:

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{ref2.bib}
@INPROCEEDINGS{C2009,
  author = {C H.},
  title = {M},
  booktitle = {C},
  year = {2009},
  month = oct
}
@INPROCEEDINGS{J2010,
  author = {J O.},
  title = {L},
  booktitle = {P},
  year = {2010}
}
@ARTICLE{T2010,
  author = {X B.},
  title = {E},
  year = {2010},
  month = jun,
  journal = {I}
}
@ARTICLE{Z2010,
  author = {B},
  title = {L},
  year = {2010},
  volume = {19},
  month = feb,
  journal = {I}
}
@ARTICLE{Z2007,
  author = {B},
  title = {H},
  year = {2007},
  month = jan,
  journal = {I}
}
@ARTICLE{K2013,
  author = {K O.},
  title = {B},
  year = {2013},
  month = feb,
  journal = {I},
  keywords = {publication}
}
@INPROCEEDINGS{K2012,
  author = {K  O.},
  title = {S},
  booktitle = {I},
  year = {2012},
  month = jul,
  keywords = {publication}
}
@ARTICLE{M2011,
  author = {M O.},
  title = {M},
  year = {2011},
  month = jun,
  journal = {L},
  keywords = {publication}
}
@INPROCEEDINGS{M2010,
  author = {M O.},
  title = {S},
  booktitle = {A},
  year = {2010},
  month = aug,
  keywords = {publication}
}
@ARTICLE{M2012,
  author = {M O.},
  title = {S},
  year = {2012},
  month = jul,
  journal = {I},
  keywords = {publication}
}

\end{filecontents}

\usepackage[backend=biber,style=ieee,bibencoding=utf8,sorting=cymat,defernumbers=true]{biblatex}

\DeclareSortingScheme{ymdtn}{
  \sort{
    \field{presort}
  }
  \sort[final]{
    \field{sortkey}
  }
  \sort[direction=descending]{
    \field{sortyear}
    \field{year}
    \literal{9999}
  }
  \sort[direction=descending]{
    \field[padside=left,padwidth=2,padchar=0]{month}
    \literal{99}
  }
  \sort[direction=descending]{
    \field[padside=left,padwidth=2,padchar=0]{day}
    \literal{99}
  }
  \sort{
    \field{sorttitle}
  }
  \sort[direction=descending]{
    \field[padside=left,padwidth=4,padchar=0]{volume}
    \literal{9999}
  }
  \sort{
    \name{sortname}
    \name{author}
    \name{editor}
    \name{translator}
    \field{sorttitle}
    \field{title}
  }
}
% sort in citation order and then by year/month, and author and title
\DeclareSortingScheme{cymat}{
  \sort{\citeorder}
  \sort{
      \field{sortyear}
      \field{year}
      \literal{0}
    }
    \sort{
      \field[padside=left,padwidth=2,padchar=0]{month}
      \literal{0}
    }
    \sort[direction=descending]{
      \field[padside=left,padwidth=2,padchar=0]{day}
      \literal{99}
    }
  \sort{
      \name{sortname}
      \name{author}
      \name{editor}
      \name{translator}
      \field{sorttitle}
      \field{title}
  }
}

\bibliography{ref2}

\pagestyle{empty}

\begin{document}
\cite{J2010, Z2010, Z2007, C2009, T2010}
\printbibliography%[sorting=cymat] % removed the sorting from here to the package
\newrefsection
\nocite{*}
\printbibliography[resetnumbers=true,keyword=publication,type=article,heading=subbibliography,title={Journals},sorting=ymdtn]
\printbibliography[keyword=publication,type=inproceedings,heading=subbibliography,title={Conferences},sorting=ymdtn]

\end{document}

相关内容