Meine Vorgabe ist es zuerst nach dem Nachnamen des Erstautors, dann nach den Initialen des Erstautors, dann nach dem Jahr zu sortieren. Nächstes Kriterium ist erst dann der Zweitautor. Mein Beispielcode, der alles Referenzen von Kjaergaard J enthält, damit alle Fallstricke bzgl sorting abgedeckt sind: Open in Online-Editor
\documentclass{article} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} \usepackage[babel, german=quotes]{csquotes} \usepackage[backend=biber,citestyle=numeric,bibstyle=authoryear,firstinits=true,terseinits=true,maxbibnames=99,sorting=nyt]{biblatex} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage{filecontents} \begin{filecontents}{bib.bib} @article{ref1, author={J. Kjaergaard}, year={2012}, title={abc} } @article{ref2, author={J. Kjaergaard and C. L. Petersen and A. Kjaer and B. K. Schaadt and J. K. Oh and C. Hassager}, year={2006}, title={def} } @article{ref3, author={J. Kjaergaard and E. M. Snyder and C. Hassager and J. K. Oh and B. D. Johnson}, year={2006}, title={ghi} } @article{ref4, author={J. Kjaergaard and P. Sogaard and C. Hassager}, year={2006}, title={jkl} } @article{ref5, author={J. Kjaergaard and J. Hastrup Svendsen and P. Sogaard and X. Chen and H. Bay Nielsen and L. Kober and A. Kjaer and C. Hassager}, year={2007}, title={mno} } @article{ref6, author={J. Kjaergaard and E. M. Snyder and C. Hassager and T. P. Olson and J. K. Oh and B. D. Johnson and R. P. Frantz}, year={2007}, title={qrs} } @article{ref7, author={J. Kjaergaard and D. Akkan and K. K. Iversen and L. Kober and C. Torp-Pedersen and C. Hassager}, year={2007}, title={tuv} } @article{ref8, author={J. Kjaergaard and J. Korinek and M. Belohlavek and J. K. Oh and P. Sogaard and C. Hassager}, year={2006}, title={wxy} } \end{filecontents} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \nocite{*} %nur bibliographie ausgeben \addbibresource{bib.bib} \begin{document} \printbibliography \end{document} ergibt NB: Wie entferne ich noch die kleinen Buchstaben, die nach den Jahreszahl eingefügt wurden? (Diese sollen nach der Vorgabe erst auftauchen, wenn alle Kriterien bis zum Zweitautor identisch sind. Hier ist dies nicht der Fall.) gefragt 12 Okt '16, 20:08 tobsen |
Ich halte es zwar für groben Unfug ein Sortierschema zu verwenden, bei dem der Leser erst einmal eine Anleitung studieren muss, um es überhaupt zu verstehen und selbst nachdem er es verstanden hat noch ständig Datum und Autorenliste im Auge behalten muss, um mit der Sortierung klar zu kommen, aber ich habe trotzdem versucht, es halbwegs umzusetzen. Dabei habe ich schlicht das Jahr als weiteren Autorenname in die Sortierliste Open in Online-Editor
\documentclass{article} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} \usepackage[babel, german=quotes]{csquotes} \usepackage[backend=biber,citestyle=numeric,bibstyle=authoryear,firstinits=true,terseinits=true,maxbibnames=99,sorting=sortname]{biblatex} \DeclareStyleSourcemap{ \maps[datatype=bibtex]{ \map{ \step[fieldsource=author, match=\regexp{(.+?)\sand}, final] \step[fieldset=sortname, fieldvalue=$1, final]%$ } \map[overwrite]{ \step[fieldset=sortname,fieldvalue={\space and },append] \step[fieldset=sortname,fieldsource=year,origfieldval,append,final] } \map[overwrite]{ \step[fieldsource=author, match=\regexp{(\sand\s.+)}, final] \step[fieldset=sortname, fieldvalue={$1}, append, final]%$ } }} \DeclareSortingScheme{sortname}{% \sort[final]{\field{sortname}} \sort{\field{title}} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage{filecontents} \begin{filecontents}{bib.bib} @article{ref1, author={J. Kjaergaard}, year={2012}, title={abc} } @article{ref2, author={J. Kjaergaard and C. L. Petersen and A. Kjaer and B. K. Schaadt and J. K. Oh and C. Hassager}, year={2006}, title={def} } @article{ref3, author={J. Kjaergaard and E. M. Snyder and C. Hassager and J. K. Oh and B. D. Johnson}, year={2006}, title={ghi} } @article{ref4, author={J. Kjaergaard and P. Sogaard and C. Hassager}, year={2006}, title={jkl} } @article{ref5, author={J. Kjaergaard and J. Hastrup Svendsen and P. Sogaard and X. Chen and H. Bay Nielsen and L. Kober and A. Kjaer and C. Hassager}, year={2007}, title={mno} } @article{ref6, author={J. Kjaergaard and E. M. Snyder and C. Hassager and T. P. Olson and J. K. Oh and B. D. Johnson and R. P. Frantz}, year={2007}, title={qrs} } @article{ref7, author={J. Kjaergaard and D. Akkan and K. K. Iversen and L. Kober and C. Torp-Pedersen and C. Hassager}, year={2007}, title={tuv} } @article{ref8, author={J. Kjaergaard and J. Korinek and M. Belohlavek and J. K. Oh and P. Sogaard and C. Hassager}, year={2006}, title={wxy} } \end{filecontents} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \addbibresource{bib.bib} \begin{document} \section{test} \cite{ref1} and \cite{ref2} and \cite{ref3} and \cite{ref4} and \cite{ref5} and \cite{ref6} and \cite{ref7} and \cite{ref8}. \printbibliography \end{document} Das Beispiel zeigt auch gleich Probleme der Vermischung zweier gänzlich unterschiedlichen Stile für die Zitierung und das Literaturverzeichnis. Für sich genommen wäre es bezüglich der Frage sicher sinnvoller, sich für einen Stil zu entscheiden. Also Open in Online-Editor
\documentclass{article} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} \usepackage[babel,german=quotes]{csquotes} \usepackage[backend=biber,style=numeric,giveninits=true,terseinits=true,maxbibnames=99,sorting=sortname]{biblatex} \DeclareStyleSourcemap{ \maps[datatype=bibtex]{ \map{ \step[fieldsource=author, match=\regexp{(.+?)\sand}, final] \step[fieldset=sortname, fieldvalue=$1, final]%$ } \map[overwrite]{ \step[fieldset=sortname,fieldvalue={\space and },append] \step[fieldset=sortname,fieldsource=year,origfieldval,append,final] } \map[overwrite]{ \step[fieldsource=author, match=\regexp{(\sand\s.+)}, final] \step[fieldset=sortname, fieldvalue={$1}, append, final]%$ } }} \DeclareSortingScheme{sortname}{% \sort[final]{\field{sortname}} \sort{\field{title}} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %\RequirePackage{filecontents} \begin{filecontents}{\jobname.bib} @article{ref1, author={J. Kjaergaard}, year={2012}, title={abc} } @article{ref2, author={J. Kjaergaard and C. L. Petersen and A. Kjaer and B. K. Schaadt and J. K. Oh and C. Hassager}, year={2006}, title={def} } @article{ref3, author={J. Kjaergaard and E. M. Snyder and C. Hassager and J. K. Oh and B. D. Johnson}, year={2006}, title={ghi} } @article{ref4, author={J. Kjaergaard and P. Sogaard and C. Hassager}, year={2006}, title={jkl} } @article{ref5, author={J. Kjaergaard and J. Hastrup Svendsen and P. Sogaard and X. Chen and H. Bay Nielsen and L. Kober and A. Kjaer and C. Hassager}, year={2007}, title={mno} } @article{ref6, author={J. Kjaergaard and E. M. Snyder and C. Hassager and T. P. Olson and J. K. Oh and B. D. Johnson and R. P. Frantz}, year={2007}, title={qrs} } @article{ref7, author={J. Kjaergaard and D. Akkan and K. K. Iversen and L. Kober and C. Torp-Pedersen and C. Hassager}, year={2007}, title={tuv} } @article{ref8, author={J. Kjaergaard and J. Korinek and M. Belohlavek and J. K. Oh and P. Sogaard and C. Hassager}, year={2006}, title={wxy} } \end{filecontents} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \addbibresource{\jobname.bib} \begin{document} \section{test} \cite{ref1} and \cite{ref2} and \cite{ref3} and \cite{ref4} and \cite{ref5} and \cite{ref6} and \cite{ref7} and \cite{ref8}. \printbibliography \end{document} Erhält man dann: Dabei stehen dann auch die Jahreszahlen bereits wie (laut Nebenbemerkung aus einem Kommentar) gewünscht am Ende und tragen keine zusätzlichen Kleinbuchstaben. Die Nebenbedingung aus der Frage ist also ebenfalls unmittelbar erfüllt. Gleichzeitig gibt es wieder eine sichtbare Korrelation zwischen den Verweisen und dem Literaturverzeichnis in Form der im Literaturverzeichnis vorangestellten Zahlen in eckigen Klammern. Selbst mit ein brauchbareres Ergebnis als mit dem Mischmasch. Auch dabei entfallen die Kleinbuchstaben nach den Jahreszahlen automatisch. Trotzdem wäre schon aufgrund der seltsamen Sortierung ein beantwortet 13 Okt '16, 11:01 saputello Der Vollständigkeit halber noch: Wie entferne ich die eingefügten kleinen Buchstaben nach den Jahreszahlen: z.B. (2006a)?
(13 Okt '16, 11:20)
tobsen
@tobsen: Keine Ahnung. Müsste ich auch erst in der Anleitung nachlesen. IMHO ist das auch eine neue Frage, die mich aber eher noch weniger interessiert als die hier. Es gibt schon viel zu viele Dokumente mit schlechten Verzeichnissen.
(13 Okt '16, 11:21)
saputello
makeatletter AtEveryBibitem{% globalundefbbx@lasthash% clearfield{extrayear}} makeatother scheint die buchstaben generell auszuschalten...
(13 Okt '16, 11:46)
tobsen
@tobsen: Da Du numerisch zitierst, also in der Form
(13 Okt '16, 12:59)
saputello
@saputello Du kannst dich jetzt aber nicht beschweren, dass es ein weiteres schlechtes Dokument gibt. Das hast du jetzt freiwillig in die Welt gesetzt .... Das Ganze funktioniert übrigens nicht, wenn year nicht da ist, oder wenn stattdessen date benutzt wurde.
(13 Okt '16, 14:12)
Ulrike Fischer
@saputello: das funktioniert zwar bezüglich der Nummern, aber wirft durch die Änderung des style in numeric meine anderen Anpassungen durcheinander, so dass ich erst vorerst so lasse.
(14 Okt '16, 07:43)
tobsen
@tobsen: Aber wenn du numerische Verweise im Text hast ohne die Nummern im Literaturverzeichnis auch als Labels aufzuführen, wie soll der Leser dann die zu einer Nummer gehörenden Literatur finden? Da kann man sich den Literaturverweis gleich schenken. Deshalb rate ich schon, entweder die Verweise (
(14 Okt '16, 08:38)
saputello
Den Code um Nummern zu bekommen hab ich aus dem "Minimalbeispiel" eliminiert. Er funktioniert aber in meiner Version. Er ist zu lang um ihn hier einzuführen, siehe aber: http://texwelt.de/wissen/fragen/18724/anpassungen-fur-literaturtyp-phdthesis "% Schlüssel als Zahlen in eckigen Klammern"
(14 Okt '16, 09:05)
tobsen
@tobsen: Wenn Du gleich einen
(14 Okt '16, 09:13)
saputello
Sehe ich (mittlerweile) ein, andererseits wirft es dann die anderen erarbeiteten Formatierungsänderungen wie Jahreszahl ganz ans Ende, Nachname Initialen Reihenfolge usw. durcheinander und fügt z.B. einen langen Strich an den Beginn des Eintrags(Sortname?). Und so funktioniert es aktuell? Aufwand wert?
(14 Okt '16, 09:29)
tobsen
1
@tobsen: Wenn Du die bisherigen Änderungen verstanden hast, sollte es (insbesondere bei konsequenter Verwendung von
(14 Okt '16, 09:47)
saputello
Beim Testkompilieren ergeben sich trotzdem noch einige Baustellen. Ich denke ich belasse es erst mal beim alten Code mit der Standardsortierung und missachte erst mal die eigentümliche Sortiervorgabe. We will see.
(14 Okt '16, 14:46)
tobsen
Ergebnis 5 von 13
show 8 more comments
|
Beispielcode sollte einfach sein und sich auf das Problem konzentrieren. Ich will nicht dauernd durch all deine Änderungen waten. Abgesehen davon ist die Sortierung absurd. Man sollte nicht etwas am Ende des Eintrags für die Sortierung verwenden.
beispiel verkürzt
http://tex.stackexchange.com/questions/203185/order-by-first-author-only-not-all-names-than-by-year-or-sort-by-a-partial-ent
müsste so ähnlich wie hier funktionieren. Konnte es aber leider bislang nicht anpassen.
Das Beispiel in tex.sx sortiert m.E. nur nach dem ersten Autor. Du müsstest den ersten Namen in ein eigenes Feld überführen -- entweder manuell oder über eine Sourcemap und dann zuerst nach diesem Feld sortieren. Aber ich werde das nicht umsetzen. Es ist doch albern, dass
Kjaergaard/Petersen
plötzlich vorKjaergaard
undKjaergaard/Akkan
steht. Wenn die Vorlage das wirklich verlangt, solltest du sie ignorieren oder darauf hinwirken, dass sie geändert wird, statt sklavisch alles zu befolgen.