Seite 1 von 1
Unknown pagination type
Verfasst: Sa 31. Okt 2015, 08:01
von faultier
Guten Morgen,
in meiner Bibdatei habe ich bei einem Datensatz als Pagination den Wert 'can' gesetzt.
@book{CIC2009,
Address = {Kevelaer},
Author = {{Johannes Paul II.} and Aymans, Winfried},
Date-Modified = {2015-10-30 17:38:04 +0000},
Edition = {5},
Isbn = {9783766603210},
Keywords = {Kanon},
Options = {postnotedelim=\addspace},
Publisher = {{Butzon {\&} Bercker}},
Rating = {5},
Read = {1},
Pagination = {can},
Shorthand = {CIC/1983},
Shortitle = {Codex Iuris Canonici:1983},
Title = {Codex Iuris Canonici: Codex des kanonischen Rechtes},
Year = {2009}}
Diesen habe ich in meiner .lbx-Datei folgendermaßen deklariert:
\ProvidesFile{stil-theologie.lbx}
\DeclareBibliographyStrings{%
can = {{Canon}{c\adddot}},
canones = {{Canones}{cc\adddot}},
}
In der gleichen Weise sind die anderen Strings in ngerman.lbx deklariert worden, ich habe mich daran als Vorgabe orientiert.
Wenn ich mein Dokument kompiliere, nutzt Latex die Standardvorgabe der Pagination "S." und bringt die Meldung
Package biblatex Warning: Unknown pagination type 'can'
(biblatex) at entry 'CIC2009' on input line 13.
Zwischenzeitlich hatte ich noch probiert, zusätzlich in der lbx-Datei die Zeile "\NewBibliographyString{can}" einzutragen, aber auch das führte nicht zum Erfolg.
Viele Grüße
faultier
Verfasst: Sa 31. Okt 2015, 08:35
von Johannes_B
Mach doch bitte ein Beispiel was man einfach so kompilieren kann.
Verfasst: Sa 31. Okt 2015, 08:40
von Gast
Der Name für den Plural deines pagination-Types muss - egal was sinnvoll wäre - der des Singular mit einem s am Ende sein, also
can (für Singular) und cans (für Plural).
Du müsstest eigentlich immer den string mit \NewBibliographyString bestellen, sonst würde ich böse Fehlermeldungen erwarten
\NewBibliographyString{can}
\NewBibliographyString{cans}
Hier mein MWE (ohne .lbx sondern mit \DefineBibliographyStrings), aber es funktioniert
\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=authortitle,
maxbibnames=999,
backend=biber,
sorting=nyt,
abbreviate=false]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{CIC2009,
Address = {Kevelaer},
Author = {{Johannes Paul II.} and Aymans, Winfried},
Date-Modified = {2015-10-30 17:38:04 +0000},
Edition = {5},
Isbn = {9783766603210},
Keywords = {Kanon},
Options = {postnotedelim=\addspace},
Publisher = {{Butzon {\&} Bercker}},
Rating = {5},
Read = {1},
Pagination = {can},
Shorthand = {CIC/1983},
Shortitle = {Codex Iuris Canonici:1983},
Title = {Codex Iuris Canonici: Codex des kanonischen Rechtes},
Year = {2009}}
\end{filecontents}
\addbibresource{\jobname.bib}
\NewBibliographyString{can}
\NewBibliographyString{cans}
\DefineBibliographyStrings{english}{%
can = {c\adddot},
cans = {cc\adddot},
}
\begin{document}
\cite[12]{CIC2009} und \cite[13-15]{CIC2009}
\printbibliography
\end{document}
Verfasst: Sa 31. Okt 2015, 09:32
von faultier
Danke für das Minibeispiel. Da war ich etwas hilflos, weil ich nicht wusste, wie es aussehen muss.
Das Minibeispiel funktioniert bei mir. Auch wenn ich es in meiner .cbx oder .bbx Datei unterbringe. Wenn ich den Codeblock in meiner .lbx Datei unterbringe, kommt der gleiche Fehler wie gehabt.
Offensichtlich gibt es ein Problem mit der Einbindung der lbx Datei.
Verfasst: Sa 31. Okt 2015, 11:25
von Gast
Nein, in der .lbx-Datei werden Strings anders angegeben. Das kannst Du in der [d]biblatex[/d]-Doku nachlesen, Du brauchst etwas wie
\NewBibliographyString{can}
\NewBibliographyString{cans}
\DeclareBibliographyStrings{%
inherit = {ngerman},
can = {{Canon}{c\adddot}},
cans = {{Canones}{cc\adddot}},
}
in der Datei. Wie sieht die .lbx denn jetzt aus?
Verfasst: Sa 31. Okt 2015, 11:52
von faultier
Ich hatte sie noch einmal angepasst, die lbx-Datei enthält folgenden Code:
\ProvidesFile{stil-theologie.lbx}
\NewBibliographyString{can}
\NewBibliographyString{cans}
\DeclareBibliographyStrings{%
inherit = {ngerman},
can = {{Canon}{c\adddot}},
cans = {{Canones}{cc\adddot}},
}
Die Einbindung der Stil-Dateien erfolgt bei mir über
\RequirePackage[backend=biber,style=stil-theologie]{biblatex}
Eigentlich sollte doch "style=..." nicht nur stil-theologie.bbx und stil-theologie.cbx einbinden, sondern ebenfalls die .lbx-Datei.
Verfasst: Sa 31. Okt 2015, 12:26
von Gast
Nein. Die .lbx bekommst Du nur mit \DeclareLanguageMapping, style hat damit gar nichts zu tun. Die Idee dahinter ist wohl, dass Stile und sprachspezifische Einstellungen nicht unbedingt einander entsprechen, das sind zwei verschiedene Ebenen (Du kannst ja den Stil authoryear auf deutsch oder englisch nutzen). Zumindest im Standard wäre es Quatsch für jeden Stil noch eine Sprachdatei mitzuliefern (denn die Stile sind obendrein mehrsprachig).
Du brauchst also
\DeclareLanguageMapping{ngerman}{ngerman-theo}
Der Inhalt Deiner .lbx reicht so auch nicht aus, um den Rest zu übernehmen, die .lbx wird nicht zusätzlich zu ngerman.lbx sondern stattdessen geladen, sollte also zumindest zu ngerman.lbx zurückfallen. Minimal brauchst Du also
\ProvidesFile{ngerman-theo.lbx}
[2015/10/31 German localization with additions for theology]
\InheritBibliographyExtras{ngerman}
\NewBibliographyString{can}
\NewBibliographyString{cans}
\DeclareBibliographyStrings{%
inherit = {ngerman},
can = {{Canon}{c\adddot}},
cans = {{Canones}{cc\adddot}},
}
\endinput
In einem MWE (das die Datei ngerman-theo.lbx überschreibt, falls sie vorhanden ist)
\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authortitle-dw,
maxbibnames=999,
backend=biber,
sorting=nyt,
abbreviate=true]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{CIC2009,
Address = {Kevelaer},
Author = {{Johannes Paul II.} and Aymans, Winfried},
Date-Modified = {2015-10-30 17:38:04 +0000},
Edition = {5},
Isbn = {9783766603210},
Keywords = {Kanon},
Options = {postnotedelim=\addspace},
Publisher = {{Butzon {\&} Bercker}},
Rating = {5},
Read = {1},
Pagination = {can},
Shorthand = {CIC/1983},
Shortitle = {Codex Iuris Canonici:1983},
Title = {Codex Iuris Canonici: Codex des kanonischen Rechtes},
Year = {2009}}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{filecontents}{ngerman-theo.lbx}
\ProvidesFile{ngerman-theo.lbx}
[2015/10/31 German localization with additions for theology]
\InheritBibliographyExtras{ngerman}
\NewBibliographyString{can}
\NewBibliographyString{cans}
\DeclareBibliographyStrings{%
inherit = {ngerman},
can = {{Canon}{c\adddot}},
cans = {{Canones}{cc\adddot}},
}
\endinput
\end{filecontents}
\DeclareLanguageMapping{ngerman}{ngerman-theo}
\begin{document}
\cite[12]{CIC2009} und \cite[13-15]{CIC2009}
\printbibliography
\end{document}
Verfasst: Sa 31. Okt 2015, 12:50
von faultier
Vielen Dank für die Erklärung der dahinterstehenden Logik. Dann macht es für meinen Bedarfsfall wahrscheinlich mehr Sinn, mit dem DefineBibliographyString-Befehl zu arbeiten und die beiden Definitionen mit in der .bbx Datei unterzubringen.
Verfasst: Sa 31. Okt 2015, 13:04
von Gast
Naja, das bleibt Dir überlassen.
Es gibt Stile, die eigene .lbx-Dateien definieren.
biblatex-apa verlangt vom Nutzer, die .lbx selbst zu laden (was viele, die die Dokumentation nicht lesen, dann vor Probleme Stellt, da sie Fehlermeldungen bekommen, wenn sie die \DeclareLanguageMapping vergessen), biblatex-philsophy und biblatex-chicago laden sie automatisch im Hintergrund.
Ein paar Stile der biblatex-chem-Familie und ein paar andere nutzen aber auch \DefineBibliographyStrings in der .bbx.
Der Nachteil von \DefineBibliographyStrings ist, dass dort nur eine Form des bibstrings angegeben werden kann und nicht eine Kurz- und eine Langform wie in der .lbx.