我正在尝试按年份和月份对我的出版物列表进行排序,以区分同一年的出版物。我有点难以做到这一点。我使用了您的一个实现,我设法将正确的项目拆分成不同的子部分,调用我自己的 .bib 文件,但每个子部分的排序都是错误的。有什么帮助吗?
\documentclass{article}
\usepackage[utf8]{inputenc}
%\usepackage[T1]{fontenc}
%\usepackage[french]{babel}
\usepackage[latin1]{inputenc}
\usepackage{amsmath, amssymb}
\usepackage[backend=biber,sorting=ndymdt,style=phys]{biblatex}
\DeclareFieldFormat{labelnumberwidth}{}
\setlength{\biblabelsep}{0pt}
\DeclareSortingScheme{ndymdt}{
\sort{
\field{presort}
}
\sort[final]{
\field{sortkey}
}
\sort{
\name{sortname}
\name{author}
\name{editor}
\name{translator}
\field{sorttitle}
\field{title}
}
\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}
}
}
\addbibresource{mybiblio2016.bib}
\begin{document}
\nocite{*}
\printbibliography[type=article,title={Journal articles}]
\printbibliography[type=inproceedings,title={Conference papers}]
\printbibliography[type=book,title={Books chapters}]
\printbibliography[type=unpublished,title={Presentations}]
\printbibliography[type=misc,title={Invited talks}]
\printbibliography[type=artwork,title={Posters}]
\printbibliography[type=report,title={Technical notes}]
\printbibliography[type=thesis,title={Thesis}]
\printbibliography[type=patent,title={Patents}]
\end{document}
答案1
ndymdt
MWE 中的排序首先按名称( sortname
、author
等editor
)排序,然后按年、月、日排序,然后按标题排序。因此,您可能会得到
土豚 2010
香蕉 2011
酒吧 2009
2009 年
佐伊德伯格 2015
如果你想先按日期排序,然后按名称排序,最后按标题排序,以获得
佐伊德伯格 2015
香蕉 2011
土豚 2010
酒吧 2009
2009 年
你需要
\DeclareSortingScheme{ddatent}{
\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[padside=left,padwidth=2,padchar=0]{month}
\literal{00}
}
\sort[direction=descending]{
\field[padside=left,padwidth=2,padchar=0]{day}
\literal{00}
}
\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{
\field{sorttitle}
\field{title}
}
}
与 一起使用sorting=ddatent
。