Was ist die typographisch beste Art, Werke in die Bibliographie aufzunehmen, wenn der Autorname deutsch ist und der Werkname englisch? Beispiel:

Öffne in Overleaf
@Book{Kroeger_-_The_temporal_logic_of_programs,
  author = {Fred Kröger},
  title = {The temporal logic of programs},
  publisher = {Springer Verlag},
  year = 1987,
  isbn={978-3-642-71551-8},
  doi={10.1007/978-3-642-71549-5},
  langid={british}
}

Fred Kröger ist ein deutscher Name, und demnach soll es sortiert und, sollte es am Zeilenende sein, aufgebrochen werden. Das Werk selbst wurde in BrE geschrieben. Ferner ist das Buch, in dem der Bibliographieeintrag auftaucht, auf Deutsch geschrieben, sollte's eine Rolle spielen. Umbrüche an Zeilenenden, Ligaturen und variable Leerzeichenbreite soll der Typographie der jeweiligen Sprache entsprechen. Ich denke dabei an zwei Möglichkeiten: (1) den Eintrag insgesamt auf Deutsch und den Titel ausnahmsweise auf Englisch oder (2) den Eintrag insgesamt auf Englisch und den Autorennamen ausnahmsweise auf Deutsch.

Also:

Öffne in Overleaf
@Book{Kroeger_-_The_temporal_logic_of_programs,
  author = {Fred Kröger},
  title = {\foreignlanguage{british}{The temporal logic of programs}},
  publisher = {Springer-Verlag},
  year = 1987,
  isbn={978-3-642-71551-8},
  doi={10.1007/978-3-642-71549-5},
  langid={ngerman}
}

oder

Öffne in Overleaf
@Book{Kroeger_-_The_temporal_logic_of_programs,
  author = {\foreignlanguage{german}{Fred Kröger}},
  title = {The temporal logic of programs},
  publisher = {Springer Verlag},
  year = 1987,
  isbn={978-3-642-71551-8},
  doi={10.1007/978-3-642-71549-5},
  sortname={Fred Kroeger},
  langid={british}
}

Es ist zu beachten, dass der obige Eintrag klein und lediglich ein Beispiel ist. Bei größeren Biliographieverzeichnissen gibt es viel mehr Einträge, die mitunter auch stärker sprachlich gemischt sind.

Gibt's im Allgemeinen eine eindeutig bevorzugte Variante: (1) oder (2)? Ich nutze

Öffne in Overleaf
\usepackage[american,british,french,german,latin,norsk,ngerman]{babel}
\usepackage[backend=biber,style=alphabetic,sortcites=true,maxbibnames=99,useprefix=true,dateabbrev=true,autolang=other]{biblatex}

und

Öffne in Overleaf
biber --isbn-normalise

, sollte es eine Rolle spielen.

gefragt 26 Feb, 12:42

user0's gravatar image

user0
2415
Akzeptiert: 11%

bearbeitet 26 Feb, 13:56

Wenn du die .bib-Datei »recyclen« willst, solltest du jedes Feld mit \foreignlanguage bestücken, weil man ja vorher nicht wissen kann in welcher Sprache ein Dokument verfasst wird. Eine andere Option, die tatsächlich sehr oft gewählt wird, ist das Literaturverzeichnis im Flattersatz zu setzen (\raggedright) womit man verhindert, dass es überhaupt zu Trennungen kommen kann. Ich habe mir darüber aber noch nie so richtig Gedanken gemacht, weil das Literaturverzeichnis eh niemand aufmerksam liest.

(26 Feb, 16:26) Henri

@henri Verstehe. Recyclnen möchte ich die bib-Datei nur selten. Ferner kann ich immer langid setzen; soviel ich verstehe würden sich dadurch die meisten \foreignlanguage erübrigen. Auf die Leerzeichenbreite nach einem Punkt und auf Ligaturen hat \raggedright keinen Einfluss, stimmt's?

(26 Feb, 22:37) user0
1

@user0 Nein, die Leerzeichenbreite bleibt unbeeinflusst (zumindest in LaTeX, plain TeX verändert tatsächlich \spaceskip). Von Ligaturen weiß LaTeX gar nichts, weil das ja von der Schrift abhängig ist.

(26 Feb, 22:43) Henri

Die Sortierung wird immer durch die Dokumentensprache oder die Option sortlocale bestimmt. Die Sprache einzelner Einträge spielt bei der Sortierung keine Rolle. Siehe https://gist.github.com/moewew/bab770efd51bdeede466059a583b5cfd, dort wird das schwedische "Ö" genau so behandelt wie das deutsche (wenn die Dokumentensprache auf swedish umgestellt wird, dann werden die "Ö"s ans Ende sortiert; für die deutsche "Ö=OE"-Sortierung braucht es übrigens sortlocale=de_DE_phonebook).

(27 Feb, 02:24) moewe

Konstrukte wie author = {\foreignlanguage{ngerman}{Fred Kröger}}, haben den großen Nachteil, dass sie das Parsen des Namens durch Biber oder BibTeX komplett unterbinden. Das gezeigte Beispiel würde nicht als "Vorname=Fred, Nachname=Kröger + bitte auf Deutsch setzen" interpretiert sondern als "Nachname=\foreignlanguage{ngerman}{Fred Kröger}" mit allen Nachteilen für die Sortierung (das gilt auch für weniger schlimme Fälle in title) und Namensbehandlung (uniquename, uniquelist, \mkbibnamegiven etc.).

(27 Feb, 02:29) moewe

Was man hier brauchen würde, wäre die Möglichkeit, die Sprache pro Feld (und Listeneintrag) zu ändern. Zur Zeit ist das nicht möglich, es kann nur der ganze Eintrag in eine Sprachumgebung gewickelt werden. Es gab vor einiger Zeit mal den Versuch, eine Multiscript-Version von biblatex zu entwickeln, bei der bessere Kontrolle über einzelne Felder möglich sein sollte https://github.com/plk/biblatex/issues/416, aber leider ist die Entwicklung etwas eingeschlafen. Siehe auch die Diskussion gegen Ende von https://github.com/plk/biblatex/issues/757 und https://tex.stackexchange.com/q/444016/

(27 Feb, 02:39) moewe

@moewe, @henri Ah du meine Güte, all das habe ich nicht gewusst... Danke für die Erklärungen! Irgendwelcher Lösungsvorschlag, die zwar eigene Probleme hervorruft, aber zumindest am wenigsten solcher Probleme? \raggedright?

(27 Feb, 05:28) user0
Ergebnis 5 von 7 Alle anzeigen

Wie bereits in den Kommentaren angerissen sind biblatexs Lokalisierungsfähigkeiten zwar sehr weitgehend, erlauben aber out of the box nicht in allen Fällen die chirurgische Präzision, die man sich vielleicht wünschen würde.

So ist es mit dem langid-Feld zwar möglich, die Sprache eines Eintrages umzuschalten, man schaltet dann aber den gesamten Eintrag um. Mit autolang=other würden dann beispielsweise alle Strings wie "und" in der Autorenliste oder "S." in der Seitenzahl in der langid-Sprache ausgegeben. Es mag Menschen geben, denen das gefällt; ich finde, es macht ein Literaturverzeichnis sehr unruhig, wenn zwischendrin "and", "en" oder "et" statt "und" steht. Ich würde noch akzeptieren, dass es sinnvoll ist, bestimmte Informationen wie die Auflage in der Originalsprache zu setzen, aber den ganzen Eintrag würde ich nicht in der Originalsprache setzen. Prinzipiell gilt ein ähnliches Problem, wenn man nur autolang=hyphen nutzt. Man kann dann entscheiden, ob die Teile des Eintrages in der Originalsprache oder die in der Dokumentensprache korrekt getrennt werden. Beides ist so einfach nicht möglich. Siehe z.B. auch https://github.com/plk/biblatex/issues/757

Ich würde versuchen, das gesamte Literaturverzeichnis grundsätzlich in der Dokumentensprache zu setzen und dann für die relevanten Felder auf die in langid angegebene Sprache zu wechseln, um die Silbentrennung korrekt vollziehen zu können.

Bei TeX.SX habe ich in https://tex.stackexchange.com/q/444016/35864 eine Lösung vorgestellt, die zeigt wie man es hinbekommt, dass alle Felder in langid-Sprache ausgegeben werden, während der Rest in der Dokumentensprache bleibt. Ich bin mir fast sicher, dass es da an einigen Ecken und Enden noch Bedarf gibt, die Methode etwas zu verfeinern, aber als proof of concept taugt sie vielleicht schon.

Alternativ stelle ich hier eine Idee vor, bei der die langid für jedes Feld einzeln in der .bib-Datei angegeben werden muss. Gezeigt und implementiert ist das hier nur für title bei @book-Einträgen (und für andere Typen, die das generische title-Format nutzen), aber es lässt sich auf beliebige andere Felder anwenden. Die genutzten named annotations sind ein neues Feature von biblatex 3.12/Biber 2.12.

Öffne in Overleaf
\documentclass[french,british,ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=alphabetic, sortcites=true, maxbibnames=99, useprefix=true, dateabbrev=true]{biblatex}

% idea by Martin Scharrer
% https://tex.stackexchange.com/users/2975/martin-scharrer
% https://tex.stackexchange.com/a/15014/35864
\newenvironment{eotherlanguage}[1]{%
  \begingroup
  \edef\tmpa{\endgroup\noexpand\otherlanguage{#1}}%
  \tmpa
}{\endotherlanguage}
\newenvironment{ehyphenrules}[1]{%
  \begingroup
  \edef\tmpa{\endgroup\noexpand\hyphenrules{#1}}%
  \tmpa
}{\endhyphenrules}

\DeclareFieldFormat{title}{%
  \hasfieldannotation[title][langid]
    {% expandable low-level access to annotation, \getfieldannotation
     % is not expandable because it has optional arguments :-(
     \letcs\thislangid{abx@annotation@literal@field@title@langid}%
     \begin{eotherlanguage}{\thislangid}
     \mkbibemph{#1}%
     \end{eotherlanguage}}
    {\mkbibemph{#1}}}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{kroeger,
  author          = {Fred Kröger},
  title           = {The Temporal Logic of Programs: Foo},
  title+an:langid = {="french"},
  publisher       = {Springer-Verlag},
  date            = {1987},
  isbn            = {978-3-642-71551-8},
  doi             = {10.1007/978-3-642-71549-5},
}
\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{worman,kroeger}
\printbibliography
\end{document}

Bei der Idee habe ich mich von https://github.com/plk/biblatex/issues/594 inspirieren lassen.

Es bleibt zu erwähnen, dass es vor einigen Jahren, die Idee gab, eine multiscript-Version von biblatex zu entwickeln, die ähnliche Dinge zumindest vereinfachen sollte, siehe Z.B. https://github.com/plk/biblatex/issues/416. Leider ist das Projekt in letzter Zeit eingeschlafen.


Da ich es in den Kommentaren auch erwähnt hatte: Die Sortierung wird von langid nicht beeinflusst. Sie wird gewöhnlich von der Hauptsprache des Dokuments oder von der Option sortlocale gesteuert. Das kann man bei https://gist.github.com/moewew/bab770efd51bdeede466059a583b5cfd nachvollziehen.

Permanenter link

beantwortet 27 Feb, 15:31

moewe's gravatar image

moewe
52624

bearbeitet 27 Feb, 15:33

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×177
×48
×16
×4
×3

Frage gestellt: 26 Feb, 12:42

Frage wurde angeschaut: 284 Mal

Zuletzt aktualisiert: 27 Feb, 15:33