JabRef kann die von JabRef 3.0 erstellte BIB-Datei nicht lesen

JabRef kann die von JabRef 3.0 erstellte BIB-Datei nicht lesen

Ich migriere auf ein neues Computer-Setup und als ich JabRef 3.8.2 installierte, stellte ich fest, dass es die von JabRef 3.0 erstellten .bib-Dateien nicht lesen konnte. Nur 991 von 3140 Einträgen werden angezeigt und es gibt eine Fehlermeldung (siehe Ende dieses Beitrags).

Ich habe mir die angeblich fehlerhaften Zeilen in einem Texteditor angesehen und sehe wirklich keine fehlenden Kommas. Aber das ist zu erwarten, denn ich bearbeite die .bib-Datei nie manuell, sie wird von JabRef generiert.

Gibt es eine Möglichkeit, das Problem zu beheben? Ich erhole mich gerade von den Schmerzen beim Tippen, deshalb werde ich zuerst die weniger tippintensiven Methoden ausprobieren.

Hier ist die Fehlermeldung:

1. Beim Parsen des Eintrags ist ein Fehler aufgetreten: ,,Fehler in Zeile 4815 oder höher: Leeres Texttoken.
Die Ursache könnte ein fehlendes Komma zwischen zwei Feldern sein.‘ Eintrag übersprungen.
2. Beim Parsen des Eintrags ist ein Fehler aufgetreten: ,,Fehler in Zeile 6304 oder höher: Leeres Texttoken.
Die Ursache könnte ein fehlendes Komma zwischen zwei Feldern sein.‘ Eintrag übersprungen.
3. Beim Parsen des Eintrags ist ein Fehler aufgetreten: ,,Fehler in Zeile 6393 oder höher: Leeres Texttoken.
Die Ursache könnte ein fehlendes Komma zwischen zwei Feldern sein.‘ Eintrag übersprungen.
4. Beim Parsen des Eintrags ist ein Fehler aufgetreten: ,,Fehler in Zeile 6904 oder höher: Leeres Texttoken.
Die Ursache könnte ein fehlendes Komma zwischen zwei Feldern sein.‘ Eintrag übersprungen.
5. Beim Parsen des Eintrags ist ein Fehler aufgetreten: ,,Fehler in Zeile 8560 oder höher: Leeres Texttoken.
Die Ursache könnte ein fehlendes Komma zwischen zwei Feldern sein.‘ Eintrag übersprungen.
6. Beim Parsen des Eintrags ist ein Fehler aufgetreten: ,,Fehler in Zeile 9697 oder höher: Leeres Texttoken.
Die Ursache könnte ein fehlendes Komma zwischen zwei Feldern sein.‘ Eintrag übersprungen.
7. Beim Parsen des Eintrags ist ein Fehler aufgetreten: ,,Fehler in Zeile 13249 oder höher: Leeres Texttoken.
Die Ursache könnte ein fehlendes Komma zwischen zwei Feldern sein.‘ Eintrag übersprungen.
8. Beim Parsen des Eintrags ist ein Fehler aufgetreten: ,,Fehler in Zeile 13646 oder höher: Leeres Texttoken.
Die Ursache könnte ein fehlendes Komma zwischen zwei Feldern sein.‘ Eintrag übersprungen.
9. Beim Parsen des Eintrags ist ein Fehler aufgetreten: ,,Fehler in Zeile 14067 oder höher: Leeres Texttoken.
Die Ursache könnte ein fehlendes Komma zwischen zwei Feldern sein.‘ Eintrag übersprungen.
10. Beim Parsen des Eintrags ist ein Fehler aufgetreten: ,,Fehler in Zeile 15177 oder höher: Leeres Texttoken.
Die Ursache könnte ein fehlendes Komma zwischen zwei Feldern sein.‘ Eintrag übersprungen.
11. Beim Parsen des Eintrags ist ein Fehler aufgetreten: ,,Fehler in Zeile 15530 oder höher: Leeres Texttoken.
Die Ursache könnte ein fehlendes Komma zwischen zwei Feldern sein.‘ Eintrag übersprungen.
12. Beim Parsen des Eintrags ist ein Fehler aufgetreten: ,,Fehler in Zeile 16010 oder höher: Leeres Texttoken.
Die Ursache könnte ein fehlendes Komma zwischen zwei Feldern sein.‘ Eintrag übersprungen.
13. Beim Parsen des Eintrags ist ein Fehler aufgetreten: „Fehler in Zeile 51479: EOF in der Mitte der Zeichenfolge“. Eintrag übersprungen.

Zusätzliche Informationen angefordert

Hier istein Link zu meiner vollständigen .bib-Datei.

Hier ist der erste Eintrag, der einen Fehler generiert hat:

@Book{burzio.1994,
  Titel = {{Grundsätze der {E}nglish {S}tress},
  Autor = {Burzio, L.},
  Herausgeber = {Cambridge University Press},
  Jahr = {1994},
  Adresse = {Cambridge, UK},
  Schlüsselwörter = {Phonologie, Betonung, },
  Lccn = {Angeforderte Direktausleihe 8. Mai 2008, 7. November 2008. },
  Besitzer = {Word},
  Zeitstempel = {2009.07.31}
}

Antwort1

Da ich derjenige bin, der Ihr Problem gelöst hatim Issue Tracker von JabRef, den Sie oben verlinkt haben, ich werde meine Lösungsantwort von GitHub direkt hier zu dieser Site hinzufügen. Dadurch wird tex.stackechange etwas eigenständiger.

Ich habe mir deine Datei angeschaut und mindestens einen Eintrag mit einem Fehler gefunden, ich gehe davon aus, dass die restlichen Probleme ähnlicher Natur sind. Hier ist der problematische Eintrag:

@Article{burrows.2007,
  Title                    = {{A}ll the way through: {T}esting for authorship in different frequency strata.\},
  Author                   = {Burrows, John.},
  Journal                  = {Literary and Linguistic Computing},
  Volume                   = {22},
  Year                     = {2007},
  Number                   = {1},
  Abstract                 = {Not very readable. Basic premise is that the most and least frequent
    words aren't so good as a guage, but maybe the middling frequency
    words will work as an indication of an author's style. I suppose
    the word 'stipulate' might never appear in my academic writing, but
    it would in Robert A. Heinlein's. That idea is useful, but I didn't
    understand the mechanics of his specific tests for them.},
  Endnotereftype           = {Journal Article},
  Keywords                 = {computational, stylometry},
  Owner                    = {EN},
  Shorttitle               = {All the way through: Testing for authorship in different frequency strata.},
  Timestamp                = {2009.08.06}
}

Das Problem liegt im Titelfeld, das mit endet \}. Der Backslash entgeht der geschweiften Klammer, was dazu führt, dass JabRef sie beim Parsen ignoriert und einen Fehler verursacht. Wenn Sie den Backslash entfernen, wird der Eintrag einwandfrei geladen.

Soweit ich weiß, hat JabRef Recht, diesen Eintrag abzulehnen. Warum JabRef 3.0 ihn jemals auf diese Weise serialisiert hat, kann ich nicht sagen, aber ich vermute, dass es sich um einen Fehler handelte (der nicht mehr auftreten sollte).

Ich empfehle Ihnen, die Datei in einem Texteditor zu überprüfen, nach Vorkommen \}des Backslashs zu suchen und diesen zu löschen. Wie Sie auf GitHub erwähnt haben, hat dies Ihr Problem gelöst.

Antwort2

Antwort3

Beachten Sie, dass ein ähnliches Problem auftreten kann, wenn Sie versuchen, das polnische „L mit Strich“ falsch zu schreiben.

Beispiel: Wenn Sie den Autorennamen „Tałanda, A.“ wie Ta{\{l}}anda, A.in Zeile 5000 Ihrer Bibtex-Datei angeben, meldet JabRef den folgenden Fehler:

1. Error occurred when parsing entry: 'Error in line 5000: Expected = but received a'. Skipped entry.

Um diesen Fehler zu vermeiden, müssen Sie das „L mit Strich“ folgendermaßen schreiben (ohne das „L“ in Klammern einzuschließen): Ta{\l}anda, A.

Ich lasse das einfach hier, für den Fall, dass jemand anders auf dieses Problem stößt.

verwandte Informationen