如何按年份对文内引用进行排序,但按名称对参考书目进行排序?
\documentclass{MastersDoctoralThesis} % Online template
\usepackage[backend=bibtex,style=authoryear-comp, natbib=true, maxcitenames=1, url=false, doi=false, sorting=ynt]{biblatex}
\bibliography{mybib}
mybib 是一个 bib 文件,包含:
@ARTICLE{neu1984,
author = {{Neugebauer}, G. and {Habing}, H.~J. and {van Duinen}, R.},
year = 1984}
@ARTICLE{kes1996,
author = {{Kessler}, M.~F. and {Steinz}, J.~A. and {Anderegg}, M.~E.},
year = 1996}
梅威瑟:
\begin{document}
\citealt{neu1984,kes1996}
\printbibliography
\end{document}
结果按文本中的时间顺序排序:
在参考书目中,它按时间顺序排列,但我希望它按字母顺序:
1)我尝试过,如其他解决方案所建议的那样:
\begin{refcontext}[sorting=ny]
\printbibliography
\end{refcontext}
它说:
!LaTeX 错误:环境 refcontext 未定义。
2)我尝试过:
\printbibliography[sorting=ny]
它说:
!包 keyval 错误:排序未定义。
答案1
对于当前版本,biblatex
正确的方法是使用refcontext
s,类似于问题中显示的方法 1。但refcontext
s 仅适用于 Biber 作为后端,您不能使用 BibTeX。
因此您需要切换到 Biber。理论上,这应该很简单,只需更改backend=bibtex,
为backend=biber,
并运行(或指示您的编辑器运行)Biber 而不是 BibTeX(请参阅Biblatex 与 Biber:配置我的编辑器以避免未定义的引用) 。(如果您在运行 Biber 时遇到问题,请查看biber 故障排除用于急救。如果您在阅读完该帖子后仍然无法运行 Biber,请随时提出新问题。.blg
在这种情况下,请发布文件。)
sorting=ynt,
然后,将所需的引用排序作为全局选项并包装\printbibliography
在新的refcontext
选项中就足够了sorting=nyt
。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,
style=authoryear-comp,
sorting=ynt,
maxcitenames=1,
natbib=true,
url=false, doi=false,
]{biblatex}
\begin{filecontents}[force]{\jobname.bib}
@ARTICLE{neu1984,
author = {Neugebauer, G. and Habing, H. J. and van Duinen, R.},
year = 1984,
}
@ARTICLE{kes1996,
author = {Kessler, M. F. and Steinz, J. A. and Anderegg, M. E.},
year = 1996,
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\autocite{kes1996,neu1984}
\begin{refcontext}[sorting=nyt]
\printbibliography
\end{refcontext}
\end{document}