Sonderzeichen in Jabref verursachen Kompilierungsfehler

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


gause
Forum-Newbie
Forum-Newbie
Beiträge: 1
Registriert: Fr 23. Nov 2018, 11:08

Sonderzeichen in Jabref verursachen Kompilierungsfehler

Beitrag von gause »

Windows 7 (32bit)
MikTeX 2.9
TeXstudio 2.12.10
Biber 2.11
bibLaTeX 3.4 (in TeXstudio) [heruntergeladen: Version 3.08a von sourceforge.net]
jabRef 4.3.1
-----------------------


Einen schönen guten Tag,




meine Frage zuerst:
Ist es möglich Sonderzeichen in der Zuisammenfassung bei JabRef mit Benutzung von Biber und bibLaTeX zu erhalten?

___
Zu meinem Fall:

Plötzlicher Fehler bei
\begin{document} und (in anderen Dokumenten) \begin{itemize} und \include:

Nach Umstellung auf Biber+bibLaTeX erschien plötzlich
Fehler Zeile 6: File ended while scanning use of \field. \begin{document},
wo vorher oder ohne Literaturverzeichnis alles bestens durchlief/-läuft.

Der angezeigte Fehler war erst im Kompiliervorgang nach dem Biberlauf, also der dritten Kompilierung entstanden:

___
Ich habe nun geschätzte 12 Stunden insgesamt damit verbracht umzurüsten und meinen Fehler im System zu finden.
Mir gefiel lediglich das "and" im Literaturverzeichnis nicht, welches zwischen den Autoren stand.
Somit stieg ich auf Biber und bibLaTeX um, was ein ganz schöner Krampf war, da die Versionsnummern von BibLaTeX intern bei mir nicht übereinstimmten und getestet werden mussten.
Update in der MikTeX Console für alle Pakete ging auch nicht, da danach nichts mehr lief und ich neu installieren musste.
Die mitgelieferte Biberversion behielt ich bei, da eine neuere 32bit Version auf sourceforge nicht zu finden war. bibLaTeX wurde wie in dessen Readme Datei beschrieben, in den entsprechenden MikTeX Ordnern ergänzt.

Also viel Versuch-und-Irrtum bis alles lief.


Nun stellte sich nach ewiger Fehlersuche in meiner Arbeit heraus, dass nur eine Zitierung für obigen Fehler sorgte.


Nach erneut vielen Versuchen in JabRef fand ich heraus, dass dafür ein paar Prozentzeichen in der Zusammenfassung des Buches verantwortlich waren, welche ich nun entfernt habe.

Vielleicht erspart dies ja jemandem ein paar Stunden Lebenszeit, da ich persönlich von der plötzlich auftauchenden und mMn völlig deplazierten Fehlermeldung überrascht war.

(Damit alles wieder lief, löschte ich nach Fehlerbehebung alle gleichnamigen Hilfsdateien um die .tex herum und kompilierte alles neu.)
____
Mein Beispielcode (Minimal gehalten aber effektiv, um den Biber zu stören)
\documentclass[]{article}
\title{Sonderzeichen in JabRef Zusammenfassung und der Biber zickt}
\author{ikke}
\usepackage[sorting=none]{biblatex}	
\addbibresource{Beispielliteraturverzeichnis.bib}

\begin{document}
\maketitle
\section{}
Buch A ohne Sonderzeichen \cite{BuchA}
Buch B mit Sonderzeichen %**%\cite{BuchB}
\printbibliography
\end{document}


Mit %**% läuft es,
ohne %**% läuft es nicht
und oben erwähnter Fehler weist auf mein \begin{document} hin.
___




Vielen Dank fürs Lesen

Ich freue mich über eine Antwort und eventuell bekomme ich ja eine Erklärung, warum dies passierte und Vorschläge zur Verbesserung.


Viele Grüße
Bernd

Gast

Beitrag von Gast »

Wenn ich richtig verstehe, was Du gemacht hast (und da bin ich mir keineswegs sicher), dann ist dein Hauptfehler, dass Du biber von Hand installiert hast, statt die Version zu verwenden, die MiKTeX bereitstellt. Man muss biber und biblatex immer in zusammenpassenden Versionen verwenden und das geht am besten, wenn man beide gleichzeitig über MiKTeX console und (bei einer Multiuser-Installation) über die Admin-Version von MiKTeX console updatet.

Dein anderer Fehler ist, dass Du kein vollständiges Minimalbeispiel bereitgestellt hast und auch sämtliche Angaben zu den Einstellungen von jabRef verschweigst. Man sollte für biber beispielsweise in UTF8-Codierung exportieren.

Außerdem sollte man natürlich bei der Eingabe auf TeX-Sonderzeichen (außer in URLs) wie das Kommentarzeichen % und dessen korrekte Behandlung achten. Dass man das muss, wird schnell klar, wenn man darüber nachdenkt, wie man wohl TeX-Befehle eingibt.

Gast

Beitrag von Gast »

Vorab: Die eingangs genannten biblatex 3.4 und auch 3.8a sind mit Biber 2.11 inkompatibel. Die genaue Liste kompatibler Versionen kannst Du der [d]biblatex[/d]- oder [d]biber[/d]-Dokumentation entnehmen (Stichwort "compatibility matrix"), aktuell sind biblatex 3.12 und Biber 2.12.

Außer in begründeten Einzelfällen, zu denen der normale Gebrauch eigentlich nicht zählt, sollte man biblatex, Biber und alle in MikTeX und TeX live vorhandenen Pakete niemals händisch von CTAN oder anderen Quellen wie Sourceforge installieren. Das sollte immer über die TeX-Distribution (bei TeX live mit tlmgr bei MikTeX mit der Console) erfolgen. Bei einer Mehrbenutzer-/Admin-Installation von MikTeX muss man gegebenenfalls beachten, dass Pakete an zwei verschiedenen Leveln installiert werden können. Ferner sollte man nach der Installation neuer Pakete ein Update in Betracht ziehen, da es seien kann, dass Abhängigkeiten des neu installierten Pakets schon in einer alten (im schlimmsten Fall inkompatiblen) Version auf dem System vorhanden sind.

Da biblatex und Biber sehr enge Abhängigkeiten haben, es aber im schlimmsten Fall bei biblatex vier Konfigurationen gibt (oder drei? kann man als Nutzer in einem Mehrbenutzersystem ausführbare Programme installieren?), wie die beiden Pakete installiert sein können, sollte man bei der Installation immer genau beachten, ob man als Nutzer oder Admin arbeitet. Ferner sollte man zur Sicherheit nach der Installation ein Update im Nutzermodus und ein Update im Adminmodus machen.

Fast niemals sollte man bei manuellen Installationen in einem von der TeX-Distribution verwalteten Bereich schreiben. Wenn Du biblatex in einen MikTeX-Ordner kopierst, dann kann MikTeX Deine Version ohne Vorwarnung überschreiben.

Soviel dazu. Nun zu Deiner Frage: Grundsätzlich sind auch bei biblatex und Biber alle Sonderzeichen nutzbar, dabei sind aber folgende Dinge zu beachten.
  • Bei der Nutzung von Nicht-ASCII-Zeichen ist die gleiche Eingabecodierung zu nutzen wie in der TeX-Datei, die dort explizit angegeben werden muss, wenn es sich nicht um UTF-8 (neues LaTeX >= 2018-04-01) oder ASCII (altes LaTeX < 2018-04-01) handelt. Abweichende Codierungen müssen explizit angegeben werden. Ich empfehle heutzutage sowohl im .tex-Dokument als auch in der .bib-Datei nach Möglichkeit UTF-8 zu nutzen.
  • Zeichen, die für (La)TeX eine spezielle Bedeutung haben, müssen im Allgemeinen wie in einem normalen .tex-Dokument escaped werden. So kannst Du nicht title = {100\,% #Influencer}, schreiben, es müsste 100\,\% \#Influencer heißen. Davon ausgenommen sind nur bestimmte "verbatim"/"uri"-Felder wie url, doi oder eprint. Insbesondere gilt das selbst für Felder die biblatex bekannt sind, aber nicht im Literaturverzeichnis oder sonstwo ausgegeben werden. Dazu gehört zum Beispiel abstract. Bei BibTeX verhält sich das etwas anders, dort müssen zwar prinzipiell auch alle Zeichen mit Sonderbedeutung für TeX durch Escapen entschärft werden, allerdings ist das nur notwendig, wenn das Feld wirklich ausgegeben wird. Daher treten bei einigen Nutzern Schwierigkeiten beim Umstieg auf, wenn sie fehlerhafte abstract-Felder haben: Diese wurden bei BibTeX meist nicht ausgegeben, bei biblatex werden sie auch nicht ausgegeben, erzeugen aber dennoch einen Fehler.
Korrekt wäre es also, die Zeichen mit Sonderbedeutung für TeX wie üblich zu escapen, es sei denn sie stehen in einem Feld mit Sonderbehandlung wie url oder doi. Wenn Du das abstract-Feld eh nicht brauchst, kannst Du es auch von Biber entfernen lassen, die meisten derartigen Probleme sollten sich dadurch lösen lassen
\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldset=abstract, null]
    }
  }
}
Bitte beachte, dass dies ein Fehler ist, der sich in der temporären .bbl-Datei manifestiert. Es ist daher sinnvoll, die temporären Dateien zu löschen, nachdem Du den Fehler behoben hast, um zu vermeiden, dass sich die alte Information in der Hilfsdatei festtritt und einen neuen Kompilationsdurchgang unmöglich macht.

Dein Minimalbeispiel ist zur Darstellung des Problems leider etwas zu minimal geraten, da wir die beiden Einträge BuchA und BuchB aus Deiner Datei Beispielliteraturverzeichnis.bib nicht kennen. Für explizite Hilfe zu Deinem Problem müsstest Du uns die beiden schon zeigen, damit wir konkrete Aussagen machen können.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4297
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Also zwölf Stunden Suchen zeigt eine fehlerhafte Suchstrategie.

Eine simple google-Suche nach dem Fehler "File ended while scanning use of \field. biblatex" bringt als erste Treffer schon geeignete tex.SX Antworten.

https://tex.stackexchange.com/questions ... en-compile

https://tex.stackexchange.com/questions ... n-abstract

Antworten