%20UTF-8-Namen%2C%20Teil%20II.png)
Ich suchte nach einem Beispiel mit biblatex
einem biber
gemischten lateinischen/griechischen/kyrillischen Dokument und fandbiblatex biber nicht-lateinische (kyrillische) UTF-8-NamenUndbiblatex: Abkürzen kyrillischer Autorennamen mit der Option firstinits, aber keiner von ihnen ist schlüssig (und sie sind geschlossen). Also habe ich mir ein MWE (unten) ausgedacht, das mit pdflatex test.tex; biber test; pdflatex test.tex; pdflatex test.tex
TexLive 2014 kompiliert wird und Folgendes erzeugt:
Im Großen und Ganzen sieht es so aus, wie es sollte - meine Fragen sind:
- Ist dies die richtige Art, kyrillische Namen/Titel mit Biblatex/Biber zu verwenden? (also mit
\foreignlanguage
?) - Wie im obigen Beitrag wird der kyrillische Name nicht abgekürzt, der lateinische hingegen schon. Wie kann ich beide Namen abkürzen?
EDIT: Der Grund für die fehlende Abkürzung ist in der .bbl
Datei zu sehen:
\name{author}{1}{}{%
{{hash=3bd6100cde97ee45844a484f7fc7612b}{Goethe}{G\bibinitperiod}{Johann\bibnamedelima Wolfgang}{J\bibinitperiod\bibinitdelim W\bibinitperiod}{von}{v\bibinitperiod}{}{}}%
...
\name{author}{1}{}{%
{{hash=c78e01570c60a06ba7419ac38e11ab99}{\foreignlanguage{russian}{Фёдор\bibnamedelimb Михайлович\bibnamedelimb Достоевский}}{\\bibinitperiod}{}{}{}{}{}{}}%
Anscheinend ist biblatex
/ biber
schlau genug, um das zu durchschauen \foreignlanguage
und auch für den kyrillischen Namen ein einzufügen \bibnamedelimb
, füllt aber irgendwie nicht alle Felder aus (insbesondere die mit den Abkürzungen). Wenn ich versuche, es manuell zu hacken und analog zum lateinischen Namen für labelname
und einzufügen author
, erscheint stattdessen Folgendes:
{{hash=c78e01570c60a06ba7419ac38e11ab99}{\foreignlanguage{russian}{Достоевский}}{\foreignlanguage{russian}{Д\bibinitperiod}}{\foreignlanguage{russian}{Фёдор\bibnamedelima Михайлович}}{\foreignlanguage{russian}{Ф\bibinitperiod\bibinitdelim М\bibinitperiod}}{}{}{}{}}%
... dann funktioniert das Abkürzen - aber natürlich möchte ich das nicht für jeden kyrillischen Eintrag manuell machen, also stellt sich die Frage: Kann ich biber
das irgendwie automatisch machen lassen, vielleicht indem ich einige Befehle in die .bib
Datei eingebe?
EDIT2: Ich habe auch versucht, jedes Wort des Autorennamens in der .bib-Datei in eine Fremdsprache zu setzen:
author={\foreignlanguage{russian}{Фёдор} \foreignlanguage{russian}{Михайлович} \foreignlanguage{russian}{Достоевский}},
... das funktioniert überhaupt nicht (es gibt keine Abkürzung und tatsächlich werden in der endgültigen Ausgabe einige Wörter übersprungen).
EDIT3: Wie @egreg in den Kommentaren (einzelnes Objekt) anmerkte, habe ich versucht, den \foreignlanguage
Autorennamen zu entfernen und direkt in UTF-8 zu schreiben:
author={Фёдор Михайлович Достоевский},
... und dies trennt nun die Namensbestandteile in der .bbl
Datei richtig:
\name{author}{1}{}{%
{{hash=e3c9a72252d468ac324a38026797e091}{Достоевский}{Д\bibinitperiod}{Фёдор\bibnamedelima Михайлович}{Ф\bibinitperiod\bibinitdelim М\bibinitperiod}{}{}{}{}}%
... aber dann, wenn pdflatex
es zum zweiten Mal ausgeführt wird, stürzt es mit folgendem ab:
! LaTeX Error: Command \CYRF unavailable in encoding T1.
... also ist offensichtlich immer noch ein Wechsel der Schriftkodierung erforderlich.
Hier ist der Code:
\documentclass{article}
\usepackage{filecontents} % tlmgr install filecontents
\begin{filecontents*}{\jobname.bib}
@BOOK{von1841faust,
title={Faust: Eine Tragödie. Erster Theil},
author={Johann Wolfgang von Goethe},
url={http://books.google.dk/books?id=zF8-AAAAYAAJ},
year={1841},
publisher={Hermann Passarge}
}
% see: https://tex.stackexchange.com/questions/215447/using-cyrillic-with-tex-gyre-pagella-and-pdflatex
% if fonts are properly set-up, there's no need for separate \fontencoding{T2A}\selectfont, as in:
% title={\fontencoding{T2A}\selectfont \foreignlanguage{russian}{Двойник}},
% else - with or without \fontencoding{T2A}\selectfont:
% ! LaTeX Error: Command \CYRD unavailable in encoding T1.
% with \foreignlanguage and \fontencoding{T2A}:
% LaTeX Font Warning: Font shape `T2A/qpl/m/n' undefined
% (Font) using `T2A/cmr/m/n' instead on input line 48.
% kpathsea: Running mktexmf larm1000
% ! I can't find file `larm1000'.
% <*> ...ljfour; mag:=1; nonstopmode; input larm1000
% mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input larm1000' failed to make larm1000.tfm.
% ! Font T2A/cmr/m/n/10=larm1000 at 10.0pt not loadable: Metric (TFM) file not found.
@book{dostoevskij2014dvoinik,
title={\foreignlanguage{russian}{Двойник}},
author={\foreignlanguage{russian}{Фёдор Михайлович Достоевский}},
isbn={9785000640227},
url={http://books.google.dk/books?id=OR7BAQAAQBAJ},
year={2014},
publisher={Aegitas}
}
\end{filecontents*}
\usepackage[utf8]{inputenc}
\usepackage[T2A, T1]{fontenc} % before babel!
\usepackage[russian,greek,english]{babel} % tlmgr install babel-russian
\usepackage[sc]{mathpazo}
\usepackage{paratype} % tlmgr install paratype
\usepackage{tgpagella}
% T2A for cyrillic - paratype
\usepackage{substitutefont}
\substitutefont{T2A}{\rmdefault}{PTSerif-TLF}
\usepackage{siunitx}
\usepackage[%
style=ieee,
isbn=true,
url=true,
defernumbers=true,
sorting=nyt, % "Sort by name, year, title."
%sorting=none, % "Do not sort at all. All entries are processed in citation order." (order of appearance)
bibencoding=utf8,
backend=biber
]{biblatex}
\bibliography{\jobname}
\begin{document}
From \si{\mega\ohm} to \si{\micro\watt} -- consider "Faust" \cite{von1841faust}, which is in (extended) Latin script; or "\foreignlanguage{russian}{Двойник}" \cite{dostoevskij2014dvoinik}, which is in Cyrillic script.
\printbibliography
\end{document}
Antwort1
Sie brauchen es nicht \foreignlanguage
in der .bib
Datei. Verwenden Sie autolang=other
stattdessen die Option biblatex. Sie umschließt Bib-Einträge automatisch in der otherlanguage
Umgebung. Damit dies funktioniert, benötigen Sie auch langid
Felder in der .bib
Datei.
Dies ist Ihr korrigiertes MWE (ich habe die Schriftartkonfiguration entfernt, aus irgendeinem Grund funktioniert es auf meinem Computer nicht – aber ich vermute, es ist ein anderes Problem):
\documentclass{article}
\usepackage{filecontents} % tlmgr install filecontents
\begin{filecontents*}{\jobname.bib}
@BOOK{von1841faust,
title={Faust: Eine Tragödie. Erster Theil},
author={Johann Wolfgang von Goethe},
url={http://books.google.dk/books?id=zF8-AAAAYAAJ},
year={1841},
publisher={Hermann Passarge},
langid={german},
}
@book{dostoevskij2014dvoinik,
title={Двойник},
author={Фёдор Михайлович Достоевский},
isbn={9785000640227},
url={http://books.google.dk/books?id=OR7BAQAAQBAJ},
year={2014},
publisher={Aegitas},
langid={russian},
}
\end{filecontents*}
\usepackage[utf8]{inputenc}
\usepackage[T2A,T1]{fontenc} % before babel!
\usepackage[russian,greek,german,english]{babel} % tlmgr install babel-russian
\usepackage{siunitx}
\usepackage[%
style=ieee,
isbn=true,
url=true,
defernumbers=true,
sorting=nyt, % "Sort by name, year, title."
%sorting=none, % "Do not sort at all. All entries are processed in citation order." (order of appearance)
bibencoding=utf8,
backend=biber,
language=auto, % get main language from babel
autolang=other,
]{biblatex}
\bibliography{\jobname}
\begin{document}
From \si{\mega\ohm} to \si{\micro\watt} -- consider "Faust" \cite{von1841faust}, which is in (extended) Latin script; or "\foreignlanguage{russian}{Двойник}" \cite{dostoevskij2014dvoinik}, which is in Cyrillic script.
\printbibliography
\end{document}
Ausgabe: