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

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

我需要僅根據第一作者(作者標題樣式)對 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)。然後加載biblatexwhith:

\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}

在此輸入影像描述

相關內容