Sprachabhängiger (angepasster) Text im Literaturverzeichnis (Fehler bei \DefineBibliographyStrings{language} und fehlerhafter \iffieldequalstr{Silbentrennung})

Sprachabhängiger (angepasster) Text im Literaturverzeichnis (Fehler bei \DefineBibliographyStrings{language} und fehlerhafter \iffieldequalstr{Silbentrennung})

Ich versuche, mit pdflatex (biber) eine sprachabhängige (angepasste) textBibliographie zu erhalten.

Ich habe mindestens drei Ansätze gefunden, um dies zu tun:

  1. \DefineBibliographyStrings{language}{bibfield={formatting}}
  2. \NewBibliographyString- neue Bibstrings erstellen und wie indieses Beispiel
  3. \iffieldequalstr{hyphenation}{language}{true}{false}

Jedoch,erste Ansatz

\DefineBibliographyStrings{english}{series = {Ser\adddot\addcolon\space{#1}\isdot}}

\DefineBibliographyStrings{russian}{series = {Сер\adddot\addcolon\space{#1}\isdot}}

führt zu dem Fehler:

Paket-Keyval-Fehler: Serie nicht definiert. }

Zweiter Ansatzist schwierig umzusetzen, wenn viele text tuplesAnpassungen erforderlich sind.

Dritter Ansatz

\DeclareFieldFormat{series}{\iffieldequalstr{hyphenation}{russian}{Сер}{Ser}\adddot\addcolon\space{#1}\isdot} % 

funktioniert nicht mit sprachorientierten Feldern wie hyphenation.

Bitte helfen Sie mir mit der Antwort, die die Probleme mit den Ansätzen 1 und 3 löst.

MWE

\documentclass{memoir}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@INBOOK{Inbook,
  author       = {Peter Eston},
  title        = {The title of the work},
  booktitle    = {Book title},
  chapter      = {8},
  pages        = {201-213},
  publisher    = {The name of the publisher},
  year         = {1993},
  volume       = {4},
  series       = {5},
  address      = {The address of the publisher},
  edition      = {3},
  month        = {7},
  hyphenation     = {english}
}

@Book{avtonomova:fya,
  author = {Н. С. Автономова},
  title = {Философский язык Жака Деррида},
  year = 2011,
  publisher = {Российская политическая энциклопедия (РОССПЭН)},
  location = {М.},
  isbn = {978-5-8243-1618-6},
  series = {Российские Пропилеи},
  pagetotal = 510,
  hyphenation =russian,
}
\end{filecontents}

\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}[2014/04/30]         %
\usepackage[english, russian]{babel}[2014/03/24]% 


\usepackage[%
backend=biber,
bibencoding=utf8,
style=gost-numeric,
babel=other, 
defernumbers=true,
sortcites=true,
doi=true,
]{biblatex}[2016/09/17]
%add Ser.: to series format

%%% First approach
%\DefineBibliographyStrings{english}{series = {Ser\adddot\addcolon\space{#1}\isdot}}
%
%\DefineBibliographyStrings{russian}{series = {Сер\adddot\addcolon\space{#1}\isdot}}


%%% Third approach
\DeclareFieldFormat{series}{\iffieldequalstr{hyphenation}{russian}{Сер}{Ser}\adddot\addcolon\space{#1}\isdot} % do not work

%% Work perfectly
%\DeclareFieldFormat{series}{\iffieldequalstr{pagetotal}{510}{Сер}{Ser}\adddot\addcolon\space{#1}\isdot} %
\addbibresource{\jobname.bib}

\begin{document}

\cite{avtonomova:fya,Inbook}

\printbibliography

\end{document}

Gewünschte Ausgabe

Bildbeschreibung hier eingeben

Antwort1

Beachten Sie zunächst, dass Sie nicht numerische Werte in der .bibDatei mit geschweiften Klammern (oder Anführungszeichen) angeben müssen. hyphenation = russianist falsch und erzeugt die Warnung WARN - BibTeX subsystem: <filename>, line 29, warning: undefined macro "russian". Es sollte sein

hyphenation = {russian},

Das \iffieldequalstr{hyphenation}{russian}funktioniert nicht, weil hyphenationes sich um einen veralteten Alias ​​handelt. Intern heißt das Feld jetzt langid. Daher

\iffieldequalstr{langid}{russian}

funktioniert.

Ich würde jedoch einen Ansatz mit Bibliographie-Strings bevorzugen. Da der String seriesnoch nicht definiert ist, müssen Sie ihn zuerst mit deklarieren \NewBibliographyString{series}. Dann können Sie seine Definition in angeben \DefineBibliographyStrings. Beachten Sie, dass diese Definition nur den übersetzten String enthalten sollte, keine zusätzliche Interpunktion und keine andere makroähnliche Formatierung. Schließlich können Sie den String mit \bibsringim Feldformat verwenden. Dies ist im Grunde der zweite Ansatz vonErstellen neuer Befehle innerhalb der Bibdatei.

\documentclass{memoir}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}[2014/04/30]         %
\usepackage[english, russian]{babel}[2014/03/24]%

\usepackage[%
  backend=biber,
  style=gost-numeric,
  babel=other,
  defernumbers=true,
  sortcites=true,
  doi=true,
]{biblatex}[2016/09/17]

\NewBibliographyString{series}
\DefineBibliographyStrings{english}{series = {Ser\adddot}}
\DefineBibliographyStrings{russian}{series = {Сер\adddot}}

\DeclareFieldFormat{series}{\bibstring{series}\addcolon\space{#1}\isdot}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@INBOOK{Inbook,
  author       = {Peter Eston},
  title        = {The title of the work},
  booktitle    = {Book title},
  chapter      = {8},
  pages        = {201-213},
  publisher    = {The name of the publisher},
  year         = {1993},
  volume       = {4},
  series       = {5},
  address      = {The address of the publisher},
  edition      = {3},
  month        = {7},
  hyphenation  = {english}
}
@Book{avtonomova:fya,
  author      = {Н. С. Автономова},
  title       = {Философский язык Жака Деррида},
  year        = 2011,
  publisher   = {Российская политическая энциклопедия (РОССПЭН)},
  location    = {М.},
  isbn        = {978-5-8243-1618-6},
  series      = {Российские Пропилеи},
  pagetotal   = 510,
  hyphenation = {russian},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\cite{avtonomova:fya,Inbook}

\printbibliography
\end{document}

„Ser.: 5“ auf Englisch und „Сер.: Российские Пропилеи“ auf Russisch.

Beachten Sie, dass der dritte Ansatz schnell außer Kontrolle gerät, wenn Sie eine dritte Sprache hinzufügen möchten. Der erste Ansatz funktioniert einfach nicht, da biblatexLokalisierung (Bibstrings) und allgemeine Formatierung (Feldformate usw.) getrennt werden. Der zweite Ansatz ist jedoch nicht viel aufwändiger als der erste. Tatsächlich vermeiden Sie in diesem Beispiel sogar Code-Duplikation.

verwandte Informationen