根据年份对引用进行排序,同时按作者“分组”

根据年份对引用进行排序,同时按作者“分组”

我正在尝试制作参考书目列表和文内引文,以模仿我所在机构使用的风格,但我遇到了有关文内引文排序的问题。我很感激能得到任何帮助。

文内引用应按时间顺序排序,但同一作者的作品应按姓名/作者“分组”。参考书目列表应按“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 之前。

相关内容