我正在尝试制作参考书目列表和文内引文,以模仿我所在机构使用的风格,但我遇到了有关文内引文排序的问题。我很感激能得到任何帮助。
文内引用应按时间顺序排序,但同一作者的作品应按姓名/作者“分组”。参考书目列表应按“nyt”排序。我在下面整理了一个例子:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[swedish,french,english]{babel}
\usepackage[]{xpatch}
\usepackage[style=authoryear-comp,backend=biber,dashed=false,dateabbrev=false,doi=true,firstinits=true,isbn=false,maxbibnames=8,minbibnames=8,maxcitenames=2,sortcites=true,sorting=ynt,url=false,urldate=comp,uniquename=false,uniquelist=false,useprefix=true]{biblatex}
\usepackage[]{csquotes}
\usepackage[]{doi}
\usepackage{hyperref}\urlstyle{same}
\hypersetup{
colorlinks=false
,pdfborder={0 0 0}
}
\begin{filecontents}{\jobname.bib}
@article{van_wagner_conditions_1977,
title = {Conditions for the start and spread of crown fire},
volume = {7},
journaltitle = {Canadian Journal of Forest Research},
author = {van Wagner, C. E.},
date = {1977},
pages = {23--34}
}
@report{albini_estimating_1976,
location = {{Ogden, UT, USA}},
title = {Estimating {{Wildfire Behavior}} and {{Effects}}},
number = {INT-30},
institution = {{USDA Forest Service, Intermountain Forest and Range Experiment Station}},
type = {General {{Technical Report}}},
author = {Albini, Frank A.},
date = {1976-01-01},
pages = {92}
}
@article{richards_mathematical_1999,
title = {The mathematical modelling and computer simulation of wildland fire perimeter growth over a 3-dimensional surface},
volume = {9},
number = {3},
journaltitle = {International Journal of Wildland Fire},
author = {Richards, Gwynfor D.},
date = {1999-01-01},
pages = {213--221}
}
@article{richards_elliptical_1990,
title = {An elliptical growth model of forest fire fronts and its numerical solution},
volume = {30},
number = {6},
journaltitle = {International Journal for Numerical Methods in Engineering},
author = {Richards, Gwynfor D.},
date = {1990-10-20}
}
@article{richards_properties_1993,
title = {The {{Properties}} of {{Elliptical Wildfire Growth}} for {{Time Dependent Fuel}} and {{Meteorological Conditions}}},
volume = {95},
number = {1-6},
author = {Richards, Gwynfor D.},
date = {1993-12-01},
pages = {357--383}
}
@article{richards_general_1995,
title = {A {{General Mathematical Framework}} for {{Modeling Two-Dimensional Wildland Fire Spread}}},
volume = {5},
number = {2},
journaltitle = {International Journal of Wildland Fire},
author = {Richards, Gwynfor D.},
date = {1995-01-01},
pages = {63--72}
}
@inproceedings{finney_modeling_1994,
location = {{Bethesda, MD, USA}},
title = {Modeling the spread and behavior of prescribed natural fires},
booktitle = {Proceedings of the 12th {{International Conference}} on {{Fire}} and {{Forest Meteorology}}},
publisher = {{Society of American Foresters}},
author = {Finney, M. A.},
date = {1994},
pages = {138--143}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\noindent\textcite{van_wagner_conditions_1977,richards_mathematical_1999,richards_elliptical_1990,finney_modeling_1994,richards_properties_1993,richards_general_1995,albini_estimating_1976}
\vspace{1cm}\noindent\parencite{van_wagner_conditions_1977,richards_mathematical_1999,richards_elliptical_1990,finney_modeling_1994,richards_properties_1993,richards_general_1995,albini_estimating_1976}
\printbibliography
\end{document}
我使用了soting=ynt
上面的方法,因为这样可以按时间顺序排序,但它不能按我想要的方式对引用进行分组。我一直在尝试排序方案,但无法让它正常工作。
当使用时\textcite
,上面的代码会打印出:
阿尔比尼 (1976 年), 范·瓦格纳 (1977 年), 理查兹 (1990 年, 1993 年), 芬尼 (1994 年), 理查兹 (1995 年, 1999 年)
使用时\parencite
:
(Albini 1976;van Wagner 1977;Richards 1990、1993;Finney 1994;Richards 1995、1999)
不过,我希望在使用时获得以下信息\textcite
:
阿尔比尼 (1976 年)、范·瓦格纳 (1977 年)、理查兹 (1990 年、1993 年、1995 年、1999 年) 和芬尼 (1994 年)
使用时\parencite
:
(Albini 1976;van Wagner 1977;Richards 1990、1993、1995、1999;Finney 1994)
\DeclateSortingScheme{}
我猜想这与我还不明白的事情有关。
(我打算使用refcontext
如下所示的代码片段而不是\printbibliography
,但由于某种原因,它将引用的排序更改为nyt
。我不知道为什么,但它可能与 biber v2.6 中的错误有关,如下所示:Biblatex 中针对多个引用和参考书目的不同排序方案。也许这个错误仍然存在于 biber v2.7 中?)
\begin{refcontext}[sorting=nyt]
\begingroup
\raggedleft
\sloppy
\printbibliography
\endgroup
\end{refcontext}
我正在使用 biblatex v3.7 和 biber v2.7。提前致谢!
答案1
就目前的排序实现方式而言,永远不可能有一个排序方案能满足您的要求。目前您无法进行上下文相关排序。每当您比较两个条目以确定谁先出现时,您总会得到相同的答案。
您可以先按author
/ editor
/... 排序,也可以先按 排序year
。这两种方式都无法满足您的需求。
对于您的引用方案,首先要列出所有作者,然后列出每个作者的所有年份。然后排序将开始,不是按作者姓名排序,而是按与他们相关的第一个年份排序。很明显,这种排序方案依赖于上下文。
你要
Richards(1990、1993、1995、1999)和 Finney(1994)
但
Finney(1994)和 Richards(1995、1999)
在第一种情况下,Finney1994 排在 Richards1999 之后,但在第二种情况下,排在 Richards1999 之前。