仅按第一作者排序(不是所有姓名),而不是按年份排序,或按 biblatex 中的部分条目排序

仅按第一作者排序(不是所有姓名),而不是按年份排序,或按 biblatex 中的部分条目排序

我需要仅根据第一作者(authortitle 样式)对我的 biblatex 条目进行排序,但我需要参考书目中的完整作者列表。我可以使用类似

\DeclareSortingScheme{mio}{
 \sort{\field{author}}
}

但是我怎样才能只提取第一作者呢?换句话说,我怎样才能从 bibtex 条目中提取部分信息(以第一作者为例?)

谁能帮我?

谢谢

我使用 biblatex biber teklive

此处的引用顺序应相反

在此处输入图片描述

例子:

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\usepackage[natbib = true, backend = biber, style = authoryear, sorting = nyt]{biblatex}

\begin{filecontents}{\jobname.bib}

@article{A2014,
author={A,B and C,D},
title={Test},
year = {2014}
}

@article{A2000,
author={A,B and D,E},
title={Test},
year = {2000}
}

\end{filecontents} 

\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
\printbibliography

\end{document}

更新

我现在有答案了,但我还是编辑了这个问题,因为我认为这对于像我这样的新手来说可能是一个常见问题,而且我在网上没有找到例子

因此,请回答这个问题并提供一些有关使用的详细信息sortname\DeclareSourcemap \DeclareSortingScheme以帮助我学习。

答案1

我如何在您的问题中进行评论我看到了对参考书目条目进行排序的两种可能性:

第一种:仅使用第一作者的姓氏

biber您可以使用labelalpha(biblatex.pdf,第 59 页)。使用 时,您labelalpha只能使用一位作者,即maxalphanames。然后,如果设置为1biber,则仅使用第一位作者(实际上是姓氏)来制作labelalpha。最后,需要指定使用的排序方案,labelalpha例如anyt(第 254 页,biblatex.pdf)。然后加载biblatex

\usepackage[maxalphanames=1,labelalpha,maxbibnames=99, sorting=anyt, style=authoryear, natbib=true,  backend=biber]{biblatex}

平均能量损失

\documentclass{article}
\begin{filecontents}{MWE.bib}
@article{A2014,
author={A,B and C,D},
title={Test},
year = {2014}
}

@article{A2000,
author={A,B and D,E},
title={Test},
year = {2000}
}

\end{filecontents}
\usepackage[maxalphanames=1,labelalpha,maxbibnames=99, sorting=anyt, style=authoryear, natbib=true,  backend=biber]{biblatex}
\addbibresource{MWE.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

在此处输入图片描述

maxbibanames=99为打印书目中的完整作者。

第二种:使用第一作者的全名

这可以使用DeclareStyleSourcemap。大多数 的默认字母排序方案都biblatex可以使用sortname字段。然后可以使用DeclareStyleSourcemap复制字段中第一作者的全名sortname。有关说明,Regular Expressions请阅读perl文档这里

\DeclareStyleSourcemap{
    \maps[datatype=bibtex]{
      \map{
        \step[fieldsource=author, match=\regexp{(.+)\sand}, final]
        \step[fieldset=sortname, fieldvalue=$1, final]  }
}}

平均能量损失

\documentclass{article}
\begin{filecontents}{MWE.bib}
@article{A2014,
author={A,Bo and M,M},
title={Test},
year = {2014}
}

@article{A2000,
author={A,Co and D,E},
title={Test},
year = {2000}
}

\end{filecontents}

\RequirePackage[maxbibnames=99, sorting=nyt, style=authoryear,  backend=biber]{biblatex}

\DeclareStyleSourcemap{
    \maps[datatype=bibtex]{
      \map{
        \step[fieldsource=author, match=\regexp{(.+)\sand}, final]
        \step[fieldset=sortname, fieldvalue=$1, final]  }
}}

\addbibresource{MWE.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

在此处输入图片描述

相关内容