我想按照添加的顺序在文本中显示引用,并按字母顺序在参考表中显示引用。我试过了,\newrefcontext
但出现错误。还有其他解决方案吗?
以下是代码:
\documentclass{article}
\usepackage[backend=bibtex,maxbibnames=5,maxcitenames=2,style=authoryear,citestyle=authoryear-comp,sorting=nyt,natbib=true,firstinits=true]{biblatex}
\begin{filecontents}{name.bib}
@book{denhartog_mechanical_1956,
title = {Mechanical {{Vibrations}}, {{Fourth Edition}}},
author = {Den Hartog, J. P},
year = {1956},
publisher = {{McGraw-Hill}}
}
@book{clough_dynamics_1975,
title = {Dynamics of {{Structures}}},
author = {Clough, Ray W. and Penzien, Joseph},
year = {1975},
publisher = {{McGraw-Hill}}
}
\end{filecontents}
\addbibresource{name.bib}
\begin{document}
\section*{Body}
Citations \autocite[e.g.,][]{denhartog_mechanical_1956,clough_dynamics_1975}.
\printbibliography[heading=bibintoc,title={References}]
\end{document}
结果如下:
参考文献表没问题,但文中的引用顺序错误。如果我使用,sorting=none
则会得到相反的结果。
答案1
您希望该选项sortcites=false,
停止biblatex
对引文进行排序。将选项sortcites
设置为true
by 是(cite)style=authoryear-comp,
因为-comp
样式的功能只有在引文按有用的顺序排序时才能正常工作。
这里不需要refcontext
s,这很好,因为 BibTeX 并不真正支持它们。
\documentclass{article}
\usepackage[backend=bibtex,
style=authoryear-comp,
sortcites=false,
maxbibnames=5,maxcitenames=2,
giveninits=true,
natbib=true,
]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{denhartog_mechanical_1956,
title = {Mechanical Vibrations},
author = {Den Hartog, J. P},
year = {1956},
publisher = {McGraw-Hill},
edition = {4},
}
@book{clough_dynamics_1975,
title = {Dynamics of Structures},
author = {Clough, Ray W. and Penzien, Joseph},
year = {1975},
publisher = {McGraw-Hill},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Citations \autocite[e.g.,][]{denhartog_mechanical_1956,clough_dynamics_1975}.
\printbibliography[heading=bibintoc]
\end{document}
请注意,我style=authoryear,citestyle=authoryear-comp,
用更短但等效的替换了
style=authoryear-comp,
我还删除了,sorting=nyt,
因为这已经是风格所暗示的。
该选项firstinits
现在称为giveninits
。
该课程的默认英文书目标题是“参考文献”,因此在调用选项中article
不需要。,title={References}
\printbibliography
您可能需要考虑从 切换backend=bibtex,
到backend=biber,
。使用 BibTeX 您只能使用有限的biblatex
功能子集,只有 Biber 才能提供全套功能。理论上,切换应该很容易,只需替换backend=bibtex,
为backend=biber,
,然后在编译周期中运行 Biber 而不是 BibTeX(或告诉您的编辑器运行 Biber 而不是 BibTeX,请参阅Biblatex 与 Biber:配置我的编辑器以避免未定义的引用)。