
Ich schreibe häufig Texte auf Deutsch und Englisch und verwende JabRef, um meine Referenzen zu organisieren. Da ich viele Konferenzbeiträge zitiere, ist es oft ziemlich nervig, die Sprache der Stellen immer entsprechend der Dokumentsprache ändern zu müssen. Daher habe ich mich gefragt, ob ich biblatex eine Art Wörterbuch zur Verfügung stellen könnte, damit ich meine Datenbank nicht jedes Mal anpassen muss.
Beispielsweise möchte ich in der Präambel Folgendes definieren:
Munich = München
Germany = Deutschland
falls das Dokument oder die Babel-Sprache ist ngerman
.
Ist das möglich?
MWE
\documentclass[ngerman]{article}
\usepackage[ngerman]{babel}
\begin{filecontents}{bla.bib}
@inproceedings{Orwell1984,
author = "George Orwell",
title = "1984",
year = "1948",
booktitle = "Books about big brothers",
location = "Munich, Germany",
}
\end{filecontents}
\RequirePackage[backend=biber,style=ieee-alphabetic]{biblatex}
\addbibresource{bla.bib}
\begin{document}
\cite{Orwell1984}. \\
\printbibliography
\end{document}
Antwort1
Sie können biblatex
die Bibstrings von verwenden, um bestimmte Ausdrücke zu übersetzen. Die Frage ist, was eine gute Schnittstelle wäre. Wenn Sie beliebige Begriffe in einem Feld kombinieren möchten, müssen Sie etwas wie das Folgende tun (was sich etwas klobig anfühlt).
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=ieee-alphabetic]{biblatex}
\NewBibliographyString{munich,germany}
\DefineBibliographyStrings{german}{
munich = {München},
germany = {Deutschland},
}
\begin{filecontents}{\jobname.bib}
@inproceedings{Orwell1984,
author = {George Orwell},
title = {1984},
year = {1948},
booktitle = {Books about big brothers},
location = {\bibstring{munich}, \bibstring{germany}},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\autocite{Orwell1984}
\printbibliography
\end{document}
Wenn Sie damit einverstanden sind, nur eine Zeichenfolge pro Feld zu verwenden, können Sie die Dinge ein wenig schöner gestalten
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=ieee-alphabetic]{biblatex}
\NewBibliographyString{de-munich}
\DefineBibliographyStrings{german}{
de-munich = {München},
}
\DefineBibliographyStrings{english}{
de-munich = {Munich, Germany},
}
\DeclareListFormat{location}{%
\usebibmacro{list:delim}{#1}%
\ifbibstring{#1}{\bibstring{#1}}{#1}\isdot
\usebibmacro{list:andothers}}
\begin{filecontents}{\jobname.bib}
@inproceedings{Orwell1984,
author = {George Orwell},
title = {1984},
year = {1948},
booktitle = {Books about big brothers},
location = {de-munich},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\autocite{Orwell1984}
\printbibliography
\end{document}
Eine eher BibTeX-artige Lösung verwendet @string
s. Sie können Zeichenfolgen für jeden Standort in verschiedenen .bib
Dateien definieren (eine für jede Sprache) und dann die .bib
Datei für die Sprache auswählen, die Sie in Ihrem Dokument benötigen.
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=ieee-alphabetic]{biblatex}
\begin{filecontents}{locationstrings-german.bib}
@string{de:munich = "München"}
\end{filecontents}
\begin{filecontents}{locationstrings-english.bib}
@string{de:munich = "Munich, Germany"}
\end{filecontents}
% select the bib file for the language you want
\addbibresource{locationstrings-german.bib}
\begin{filecontents}{\jobname.bib}
@inproceedings{Orwell1984,
author = {George Orwell},
title = {1984},
year = {1948},
booktitle = {Books about big brothers},
location = de:munich,
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\autocite{Orwell1984}
\printbibliography
\end{document}
biblatex
Interessant könnte auch die noch sehr experimentelle Multiscript-Version von sein:https://github.com/plk/biblatex/issues/416
Antwort2
\documentclass[ngerman]{article}
\usepackage[ngerman]{babel}
\begin{filecontents}{german-strings.bib}
@string{muenchen={München}}
@string{germany={Deutschland}}
\end{filecontents}
\begin{filecontents}[overwrite]{bla.bib}
@inproceedings{Orwell1984,
author = "George Orwell",
title = "1984",
year = "1948",
booktitle = "Books about big brothers",
location = muenchen # ", " # germany
}
\end{filecontents}
\RequirePackage[backend=biber,style=ieee-alphabetic]{biblatex}
\addbibresource{german-strings.bib}
\addbibresource{bla.bib}
\begin{document}
\cite{Orwell1984}. \\
\printbibliography
\end{document}