我需要仅根据第一作者(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
。然后,如果设置为1
biber,则仅使用第一位作者(实际上是姓氏)来制作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}