Ich muss meine Biblatex-Einträge nur auf der Basis des ersten Autors sortieren (Authortitle-Stil), aber ich brauche die vollständige Liste der Autoren in der Bibliographie. Ich kann etwas wie
\DeclareSortingScheme{mio}{
\sort{\field{author}}
}
aber wie kann ich nur den ersten Autor extrahieren? Oder anders gesagt, wie kann ich Teilinformationen aus Bibtex-Einträgen extrahieren (zum Beispiel den ersten Autor)?
Kann mir jemand helfen?
Danke
Ich benutze biblatex biber teklive
Die Reihenfolge der Bezugnahme sollte hier umgekehrt sein.
Beispiel:
\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}
AKTUALISIEREN
Ich habe die Antwort jetzt, aber ich habe die Frage trotzdem bearbeitet, weil ich denke, dass dies ein häufiges Problem für Neulinge wie mich sein könnte und ich im Internet kein Beispiel gefunden habe
Beantworten Sie diese Frage daher bitte und geben Sie auch einige Einzelheiten zur Verwendung von an sortname
, \DeclareSourcemap
\DeclareSortingScheme
damit ich lernen kann.
Antwort1
Wie ich in Ihrer Frage bereits kommentiert habe, sehe ich zwei Möglichkeiten zum Sortieren der Bibliographieeinträge:
Erstens: Nur den Nachnamen des Erstautors verwenden
Wie Sie verwenden biber
, können Sie verwenden labelalpha
(biblatex.pdf, Seite 59). Wenn labelalpha
Sie verwenden, können Sie nur einen Autor verwenden, mit dem maxalphanames
. Wenn es dann auf biber eingestellt ist, 1
verwenden Sie nur den ersten Autor (eigentlich den Nachnamen), um das zu erstellen labelalpha
. Schließlich ist es notwendig, ein Sortierschema anzugeben, das labelalpha
beispielsweise verwendet wird anyt
(Seite 254, biblatex.pdf). Laden Sie dann biblatex
mit:
\usepackage[maxalphanames=1,labelalpha,maxbibnames=99, sorting=anyt, style=authoryear, natbib=true, backend=biber]{biblatex}
MWE
\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}
Die maxbibanames=99
vollständigen Autorenangaben sind im Literaturverzeichnis abgedruckt.
Die zweite: Verwendung des vollständigen Namens des Erstautors
Dies ist möglich mit DeclareStyleSourcemap
. Die meisten standardmäßigen alphabetischen Sortierschemata biblatex
können verwendet werden sortname
. Dann ist es möglich, DeclareStyleSourcemap
den vollständigen Namen des ersten Autors in das sortname
Feld zu kopieren. Eine Erklärung dazu Regular Expressions
finden Sie in der perl
Dokumentation .Hier.
\DeclareStyleSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=author, match=\regexp{(.+)\sand}, final]
\step[fieldset=sortname, fieldvalue=$1, final] }
}}
MWE
\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}