我需要僅根據第一作者(作者標題樣式)對 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
.然後,如果將其設為1
biber,則僅使用第一作者(實際上是姓氏)來製作labelalpha
.最後,有必要指定一個排序方案,labelalpha
例如使用anyt
(第 254 頁,biblatex.pdf)。然後加載biblatex
whith:
\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}