Unerwartete Interaktion zwischen Biber und einer Sonderform des Vornamenbestandteils des „vollständigen“ Namens eines Autors

Unerwartete Interaktion zwischen Biber und einer Sonderform des Vornamenbestandteils des „vollständigen“ Namens eines Autors

Vor einigen Jahren,eine Fragewurde darüber gepostet, wie man die Anrede „Sir“ in das authorFeld eines bibliographischen Eintrags eintragen soll. (Abgesehen davon: Ich nehme an, die Abfrage ist auch für die Verwendung der Anrede „Dame“ relevant. Eine zweite Anmerkung: Ich halte es nicht für eine gute Idee, die Anrede „Sir“ und „Dame“ in das Feld einzutragen author. Lassen Sie uns jedoch fortfahren.)

Betrachten wir beispielsweise den Fall von Sir Isaac Newton. Wenn man einfach schreibt

author = "Sir Isaac Newton",

und man verwendet einen Bibliographiestil, der Vornamen abschneidet, endet man mit entweder S. I. Newtonoder Newton, S. I.. Nicht gut! Laut Konvention müssen „Sir“ und „Dame“niemalsabgekürzt werden. Ich habe damals eineAntwortdas den folgenden „Fix“ auf das authorFeld anwendet:

author = "{\relax Sir I}saac Newton",

Dieser Fix funktioniert mit BibTeX einwandfrei. Er funktioniert auch, biblatexwenn BibTeX als Backend verwendet wird oder wenn angegebene Namen gekürzt werden (über eine Option wie giveninits=true). Wie ich jedoch kürzlich in einem Kommentar darauf hingewiesen wurde, gibt es ein Problem, wenn (a) biberals Backend verwendet wirdUnd(b) die Option giveninits=falsegesetzt ist, d.h. wenn Vornamennichtabgeschnitten werden. Betrachten Sie die Ausgabe eines einfachen MWE mit zwei Einträgen (Code weiter unten veröffentlicht; die Autorenfelder sind author = "{\relax Sir I}saac Newton",bzw. author = "Zoe Zerlina Zwicky",):

Bildbeschreibung hier eingeben

Beachten Sie das Leerzeichen unmittelbar vor „Sir“. Das MWE wurde mit MacTeX2017, biblatex3.7 und biber2.7 kompiliert. Hier sind die beiden givenvon erstellten Felder biber(kopiert und eingefügt von \jobname.bbl):

given={{\relax\bibnamedelimb Sir\bibnamedelimb I}saac},
given={Zoe\bibnamedelima Zerlina},

Beachten Sie, dass zwischen und bibereingefügt wurde . Das Vorhandensein dieses Makros ist für das Einfügen des unerwünschten Leerzeichens verantwortlich.\bibnamedelimb\relaxSir

Frage: Gibt es eine Option, die gesetzt werden kann/muss, um entweder die erste Instanz \bibnamedelimboder die gesamte Zeichenfolge \relax\bibnamedelimbaus dem givenFeld zu entfernen? Oder handelt es sich hierbei um einen Fehler biber(der irgendwann behoben wird)?


\RequirePackage{filecontents}
\begin{filecontents*}{mybib.bib}
@misc{SIN, author = "{\relax Sir I}saac Newton", title = "Opticks", year = 1730, note = "Fourth edition"}
@misc{ZZZ, author = "Zoe Zerlina Zwicky", title = "Thoughts", year = 3001}
\end{filecontents*}

\documentclass{article}
\usepackage[giveninits=false,backend=biber]{biblatex}
\addbibresource{mybib.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

Antwort1

Bei Biber können Sie das „erweiterte Namensformat“ verwenden. Dort können Sie die Kurzform eines Namensteils explizit angeben, wenn Ihnen die Vorgabe nicht gefällt.

Sie verwenden

author  = {family={Newton}, given={Sir Isaac}, given-i={Sir I}},

Und würde bekommen

Herr Isaac Newton

vollständig oder

Sir I. Newton

in Kurzform.

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@misc{IsaacNewton,
  author  = {family={Newton}, given={Sir Isaac}, given-i={Sir I}},
  title   = {Opticks},
  year    = 1730,
  edition = {4},
}
@misc{xyz,
  author = {Zoe Zwicky},
  title  = {Thoughts},
  year   = 3001,
}
\end{filecontents*}

\documentclass{article}
\usepackage[giveninits=true,backend=biber]{biblatex}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

Antwort2

Angeregt durch Kommentare von @moewe unter seinemgute Antwort-- und insbesondere durch die Anspielung darauf, wie biberMaterial in sogenannten „Klammerngruppen“ (jedes Material, das in ein zusätzliches Paar geschweifter Klammern eingeschlossen ist) behandelt wird -- habe ich eine andere funktionierende Lösung gefunden. Sie ist nicht so gründlich wie die von @moewe, aber sie ist recht einfach, da sie nur die Verwendung einer zusätzlichen Klammergruppe erfordert, um herauszufinden, biberwas die Vornamenskomponente des vollständigen Namens ist. Konkret muss lediglich ersetzt werden

author = "{\relax Sir I}saac Newton", 

mit

author = "{{\relax Sir I}saac} Newton", 

Mit der zusätzlichen Klammergruppe biberkommt man nicht dazu, eine \bibnamedelimbDirektive zwischen \relaxund Siroder zwischen „Sir“ und dem Anfangsbuchstaben „I“ einzufügen. Als Ergebnis werden normale Leerzeichen zwischen Wörtern eingefügt. Ich nehme an, dass dies ein neues Problem verursachen könnte, wenn aus irgendeinem Grund \bibnamedelimbetwas anderes als eingestellt würde \space; glücklicherweise scheint dies hier nicht der Fall zu sein.

Ein vollständiges MWE:

Bildbeschreibung hier eingeben

\RequirePackage{filecontents}
\begin{filecontents*}{mybib.bib}
@misc{SIN0, 
  author = "{\relax Sir I}saac Newton", 
  title  = "Opticks", note = "Not correct"
}
@misc{SIN1,
  author = {family={Newton}, given={Sir Isaac}, given-i={Sir I}},
  title  = {Opticks}, note = "Correct"
}
@misc{SIN2, 
  author = "{{\relax Sir I}saac} Newton", 
  title  = "Opticks", note = "Also correct"
}
\end{filecontents*}

\documentclass{article}
\usepackage[giveninits=false,backend=biber]{biblatex}
\addbibresource{mybib.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

verwandte Informationen