Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bibstring owntranslation funktioniert, aber mit Fehlermeldung #140

Closed
LukasCBossert opened this issue Feb 26, 2018 · 15 comments
Closed

bibstring owntranslation funktioniert, aber mit Fehlermeldung #140

LukasCBossert opened this issue Feb 26, 2018 · 15 comments
Assignees

Comments

@LukasCBossert
Copy link
Owner

Folgendes MWE

\documentclass[ngerman]{article}
\usepackage{filecontents,babel}
\begin{filecontents*}{\jobname.bib}
  @Book{Plin_epist,
    author       = {Plinius Caecilius Secundus, Caius},
    editor       = {Helmut Kasten},
    title        = {Briefe},
    subtitle     = {Epistularum libri decem},
    publisher    = AWi,
    location     = {Düsseldorf},
    year         = {1990},
    edition      = {6},
    origlanguage = {latin},
    shorthand    = {Plin. epist.},
    shortauthor  = {Plinius},
    keywords     = {ancient},
    options      = {ancient},
  }
\end{filecontents*}
\usepackage[backend=biber,style=archaeologie]{biblatex}

\addbibresource{\jobname.bib}
\DefineBibliographyStrings{ngerman}{%
  owntranslation = {L.\,C. Bossert},%
}

\begin{document}
Die Übersetzung ist von \citetranslator{Plin_epist}
\printbibliography
\end{document}

produziert dieses PDF:

bildschirmfoto 2018-02-26 um 19 12 36

womit alles korrekt ist, aber in der .log gibt es dennoch eine Fehlermeldung:

/usr/local/texlive/2017/texmf-dist/tex/latex/archaeologie/german-archaeologie.lb
x:15: Package keyval Error: owntranslation undefined.

See the keyval package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.15 \InheritBibliographyExtras{ngerman}
                                      
Try typing  <return>  to proceed.
If that doesn't work, type  X <return>  to quit.


/usr/local/texlive/2017/texmf-dist/tex/latex/archaeologie/german-archaeologie.lb
x:15: Package keyval Error: owntranslation undefined.

See the keyval package documentation for explanation.
Type  H <return>  for immediate help.

Könntest du, @moewew , da bitte einen Blick drauf werfen?

@LukasCBossert
Copy link
Owner Author

Ich stelle gerade fest (https://tex.stackexchange.com/a/242268/98739), die Fehlermeldung verschwindet, wenn ich

\NewBibliographyString{owntranslation}

eintippe. Aber der String ist ja eigentlich bereits definiert. ich will ihn ja nur re-definieren.

@moewew
Copy link
Contributor

moewew commented Feb 26, 2018

Mhh, keine Ahnung woran es liegt. Müsste ich mir mal genauer ansehen. Im Allgemeinen würde ich aber davon abraten, \NewBibliographyString erst in der .lbx zu verwenden. Definier doch die neuen Strings schon in der .bbx.

@LukasCBossert
Copy link
Owner Author

Stimmt - dann brauch ich die ja auch nur einmal für alle Sprachen definieren. Jetzt passiert das immer für jede Sprache extra (habe ich mir wohl irgendwo mal abgeschaut).

Wird geändert.

@moewew
Copy link
Contributor

moewew commented Feb 26, 2018

Folgende Theorie (müsste ich noch verifizieren): Die .lbx-Dateien werden im Allgemeinen recht spät geladen. Man kann sagen, frühestens in etwa wie \AtBeginDocument. Du möchtest in der Präambel (woanders geht es ja auch nicht) mit \DefineBibliographyStrings den String owntranslation definieren. Zu dem Zeitpunkt ist die .lbx aber noch gar nicht geladen und daher der String auch noch gar nicht bekannt. -> Tada, Fehler!

Es gibt in der Tat einige .lbxen die eigene Strings definieren und daher \NewBibliographyString selbst nutzen. Da dies aber Nachteile hat, wie wir gerade gesehen haben, sollten wir darüber nachdenken, das zu ändern. Oder halt die .lbxen am Anfang einmal durchladen ...

@LukasCBossert
Copy link
Owner Author

Das ist sehr einleuchtend.
Zumal das Ergebnis ja korrekt war, weil wohl intern der re/neu-definierte String gespeichert war, obwohl TeX erst später den angelegt bekommen hat. Man müsste also die .lbx direkt nach biblatex einmal laden.

@moewew
Copy link
Contributor

moewew commented Feb 26, 2018

Habs ausprobiert, die Ladereihenfolge ist wie beschrieben.

Das Durchladen aller .lbx-Dateien direkt nach dem Laden von biblatex geht nicht. Wenn biblatex selbst geladen wird, weiß es noch nicht, welches Sprachpaket genutzt wird und welche Sprachen geladen werden. Damit vernünftiges Verhalten von biblatex nicht von der Ladereihenfolge in der Präambel abhängt, wird der ganze Sprachkram erst in \AtEndPreamble behandelt. Aber da ist es schon zu spät für Dich. Man könnte natürlich die jetzt schon bekannten Sprachen behandeln, aber ehrlich gesagt müsste man mir dafür zu viel rumfrickeln und Code auseinanderreißen oder doppeln.

@LukasCBossert
Copy link
Owner Author

Ok, aber jetzt, da ich weiß, woran es liegt, ist es wohl am einfachsten, ich lade in der Präambel einfach

\NewBibliographyString{owntranslation}

. Danke dir!

@moewew
Copy link
Contributor

moewew commented Feb 26, 2018

Besser in der .bbx und nicht der Präambel.

@LukasCBossert
Copy link
Owner Author

äh, genau. aber für die Redefinition (da ich individuell den Übersetzer mit meinem Namen angeben möchte), füge ich eben \NewBibliographyString{owntranslation} ein. Die Standard-Strings kommen in die .bbx.

@moewew
Copy link
Contributor

moewew commented Feb 26, 2018

Aber owntranslation wird doch in allen .lbxen von archaeologie selbst übersetzt, muss also bekannt sein. Daher sollte auch für diesen String \NewBibliographyString{owntranslation} in der .bbx stehen. Egal wo Du das nachher umdefinierst. Wenn man es richtig macht, ist nur ein \NewBibliographyString{owntranslation} nötig. Aber vielleicht reden wir aneinander vorbei.

@LukasCBossert
Copy link
Owner Author

Ich denke, wir reden von dem gleichen. Ich wollte in meiner Diss als owntranslation nicht eig. Übers. stehen haben, sondern mein Name. Daher habe ich das in der Präambel re-definiert (wäre wohl nicht notwendig, denn mit eig. Übers. wird ja im Text schon auf mich verwiesen.)

@moewew
Copy link
Contributor

moewew commented Feb 26, 2018

OK. Ich wollte nur sagen, dass es absolut ausreichend ist, nur genau einmal (idealerweise in der .bbx-Datei) \NewBibliographyString{owntranslation} stehen zu haben. In der Präambel Deines Dokumentes solltest Du \NewBibliographyString{owntranslation} nicht aufrufen müssen, da ist \DefineBibliographyStrings{ngerman} genug, wenn \NewBibliographyString{owntranslation} ordnungsgemäß angemeldet wurde. Ich war verwirrt, weil Du

aber für die Redefinition (da ich individuell den Übersetzer mit meinem Namen angeben möchte), füge ich eben \NewBibliographyString{owntranslation} ein.

geschrieben hast. Eben das ist ja nicht notwendig, wenn owntranslation einmal korrekt angemeldet wird.

@LukasCBossert
Copy link
Owner Author

danke für die Klarstellung. Genau, aber momentan sind die Strings ja noch in der .lbx definiert und bis ich ein CTAN-update fertig habe, rufe ich \NewBibliographyString{owntranslation} noch(mals) in der Präambel auf – da ich Donnerstag die Diss abgeben werde, wollte ich jetzt nicht auf das CTAN update warten, bzw. geht es einfach schneller, diese Zeile in die Präambel einzufügen als in der installierten .bbx.
Ist also nur ein Workaround aus Zeit- und Faulheitsgründen.

@moewew
Copy link
Contributor

moewew commented Feb 26, 2018

Ach so, na dann. Ich wollte nur nicht, dass wir uns in unnötigem Code verheddern.

Viel Erfolg mit der Dissertation!

@LukasCBossert
Copy link
Owner Author

Vielen Dank!

Ne, werde demnächst alls \NewBibliographyString{} nur einmal in der .bbx definieren, dann brauch ich meinen Workaround auch nicht mehr.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants