Unicode Fehler

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


yarafee
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Sa 26. Dez 2020, 15:25

Unicode Fehler

Beitrag von yarafee »

Hey :)
Dies ist mein erster Beitrag hier, verzeit mir bitte falls das mit der Formatierung nicht ganz hinhauen sollte, ich gebe mir Mühe.

Ich muss für die Uni Protokolle mit LaTeX schreiben. Nun soll man natürlich alles schön zitieren und verweisen, also habe ich mit einige Youtube-Tutorials zum Thema Literaturverzeichnisse in LaTeX angeschaut und es sowohl mit JabRef als auch mit Citavi versucht. Beides mal gleiches Problem:

Das ist meine LaTeX-Syntax:

 \documentclass[a4paper,11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage[scaled]{uarial}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{float}
\usepackage{subcaption}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{lmodern}
\usepackage{pdfpages}
\usepackage{kpfonts}
\usepackage{hyperref}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage[german]{cleveref}
\usepackage[onehalfspacing]{setspace}

\bibliographystyle{unsrt}

\title{Protokoll}
\author{yarafee}

\begin{document}
\section{Einleitung}
 Hier kommt Text 
\cite{Werner.2012}

\newpage
\bibliography{Literatur}

\end{document} 

Jetzt bekomme ich beim Kompilieren immer den Fehler

 ! Package inputenc Error: Unicode character (U+2005)
(inputenc) not set up for use with LaTeX.
See the inputenc package documentation for explanation.
Type H <return> for immediate help. 

Der Fehler beziet sich auf line 5, also \usepackage{amsmath}. Die Syntax der Packages sollte aber passen, mit dem gleichen Header habe ich ohne Literaturverzeichnis keine Probleme.

Die JabRef- und Citavi- Files habe ich auf UTF8 gestellt, genau wie das LaTeX-Dokument. Es muss am Einbinden des Literaturverzeichnis liegen, wenn ich \bibliographistyle, \cite und \bibliography raus nehme, kommt der Fehler nicht mehr. Ich habe aber leider keine Ahnung, wie ich das behoben bekomme...

Kann mir hier jemand weiter helfen? Sonst fürchte ich, doch wieder auf schlechtere Schreibprogramme umsteigen zu müssen...

Danke schon mal im Vorraus für Hilfe :)


MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Unicode Fehler

Beitrag von MoeWe »

U+2005 ist ein 1/4 em breites Leerzeichen. Das Zeichen wird man durch Draufschauen kaum erkennen können, da es höchstwahrscheinlich wie ein normales Leerzeichen aussieht. Oft kommen solche Zeichen durch Copy-und-Paste in Dateien.

Wenn Du

\DeclareUnicodeCharacter{2005}{XXX}

zu Deiner Präambel hinzufügst, sollte Dein Dokument ohne diesen Fehler kompilieren. In der Ausgabe kannst Du dann nach "XXX" suchen. Das sollte es wesentlich einfacher machen, herauszufinden, wo das Problem liegt.

Wahrscheinlich bezieht sich die Zeilenangabe aus der Fehlermeldung nicht auf Deine .tex-Datei, sondern auf eine Hilfsdatei. Wenn das Problem nur in Verbindung mit dem Literaturverzeichnis auftaucht, liegt die .bbl-Datei nah. Du kannst also auch die .bbl-Datei mit einem Texteditor öffnen und Dir dort Zeile 5 ansehen, um zu schauen, wo das Problem sein könnte. Die von Dir gezeigte Fehlermeldung sieht ein bisschen wie eine Zusammenfassung von einem Editor aus. Wenn Du Dir die Meldung in der .log-Datei direkt ansiehst, bekommst Du möglicherweise noch ein paar Informationen zum Kontext. Ferner kannst Du mit etwas Übung herausfinden, in welcher Datei der Fehler gemeldet wird: Wann immer TeX eine Datei öffnet, schreibt es ( in die .log-Datei, gefolgt von dem Dateinamen. Wenn die Datei geschlossen wird, schreibt TeX ). Daher kann man durch Nachverfolgen der ( und ) Zeichen vor der Fehlermeldung erkennen, in welcher Datei sie ausgelöst wurde (es gibt da sicher gute Erklärungen online zu, ich kann sie nur gerade nicht finden).

Bei Problemen mit dem Literaturverzeichnis musst Du im Hinterkopf behalten, dass der falsche Code sich noch in den temporären Dateien halten kann, auch wenn das Problem in der .bib-Datei schon gelöst wurde. Lösche daher nachdem Du den Fehler behoben hast, die .aux- und .bbl-Dateien.

----

Technisch gesehen kann BibTeX nicht mit Unicode/UTF-8 umgehen. Es weiß nur mit US-ASCII etwas anzufangen. Nicht-ASCII-Zeichen werden einfach so durchgereicht, was meist OK ist, aber in gewissen Situationen (Sortieren, Buchstaben zählen z.B. für Initialen) schief gehen kann. Für eine halbwegs vernünftige Behandlung müssen Nicht-ASCII-Zeichen mit Makros escaped werden (https://tex.stackexchange.com/q/57743/35864). Wenn Du gerne echte Unicode-Unterstützung hättest, dann musst Du biblatex und Biber nehmen. Siehe https://tex.stackexchange.com/q/25701/35864 und https://tex.stackexchange.com/q/5091/35864 sowie die wichtigen Hinweise aus diesem Unterforum.


gast

Re: Unicode Fehler

Beitrag von gast »

uarial ist übrigens nicht zu empfehlen. Das ist kein richtiger Arial-Clone, sondern eine Mischung aus Arial und Helvetica mit uneinheitlichen Zeichenhöhen. Einer der schlechtesten Fonts, die ich kenne. Dann lieber direkt helvet verwenden (wer bei uarial den Unterschied zu Arial nicht erkennt, der erkennt den auch bei Helvetica nicht). Wenn man unbedingt eine echte Arial will, dann mit lualatex oder xelatex arbeiten und Arial einfach per fontspec laden.

Zum Thema YouTube-Tutorial und LaTeX gibt es übrigens einige kritische Hinweise.


gast

Re: Unicode Fehler

Beitrag von gast »

Achja: Das Laden von lmodern hebt das vorherige Laden von uarial quasi wieder auf, wodurch ohnehin kein URW Arial mehr verwendet wird. :roll:

Und das Laden von kpfonts hebt das vorherige Laden von lmodern wieder auf, wodurch dann weder Latin Modern noch URW Arial verwendet wird. :roll: :roll:

Das ist dann wieder mal so ein Beispiel einer sinnlos überfrachteten Dokumentpräambel. Daher auch noch der Hinweis: Minimale Vorlage vs. maximale Probleme


yarafee
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Sa 26. Dez 2020, 15:25

Re: Unicode Fehler

Beitrag von yarafee »

Vielen Dank euch zwei, jetzt funktioniert es! :)

Die Schriftart habe ich jetzt mit XeLaTeX und fontspec auf Arial umgestellt und das unnötige Zeug aus dem Header raus. Arial ist Vorgabe von der Uni, da bin ich so glaub sicherer als mit Helvet.

Jetzt habe ich nur noch ein kleines Problem:
Mein Literaturverzeichnis sieht so aus:

[1] Helmut Werner. 60 jahre (und mehr) ferrocen: Die entdeckung und wiederentdeckung der sandwichkomplexe. Angewandte Chemie, 124(25):6156–6162, 2012.

Soll aber so aussehen (Auch hier wieder Vorgabe der Uni):

[1] Helmut Werner, Angewandte Chemie, 2012, 124(25), 6156–6162

Wie bekomme ich die Reihenfolge geändert, den Titel raus und das Fett und Kursiv hin?
Und ist das normal, dass in meiner .bib Datei die Groß- und Kleinschreibung des Titels korrekt ist, in der Datei dann aber Groß- zu Kleinbuchstaben werden?


MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Unicode Fehler

Beitrag von MoeWe »

Der Stil sieht in etwa so aus wie der der Angewandten Chemie.

Wenn Du bei BibTeX bleiben möchtest, dann solltest Du Dir entweder \bibliographstyle{angew} aus dem Paket rsc oder \bibliographystyle{ChemEurJ} aus ChemEurJ ansehen.
Also

\documentclass{article}
\usepackage[sort&compress,numbers]{natbib}
\usepackage{mciteplus}

\begin{filecontents*}{\jobname.bib}
@article{Ache1989,
  author  = {H. J. Ache},
  journal = {Angew. Chem. Int. Ed.},
  year    = {1989},
  volume  = {28},
  pages   = {1-20},
}
\end{filecontents*}

\begin{document}
\cite{Ache1989}
\bibliographystyle{ChemEurJ}
\bibliography{\jobname}
\end{document}

oder

\documentclass{article}
\usepackage[sort&compress,numbers]{natbib}
\usepackage{mciteplus}

\begin{filecontents*}{\jobname.bib}
@article{Ache1989,
  author  = {H. J. Ache},
  journal = {Angew. Chem. Int. Ed.},
  year    = {1989},
  volume  = {28},
  pages   = {1-20},
}
\end{filecontents*}

\begin{document}
\cite{Ache1989}
\bibliographystyle{ChemEurJ}
\bibliography{\jobname}
\end{document}

Wenn Du zu biblatex wechseln möchtest, dann gibt es von biblatex-chem style=chem-angew,

\documentclass{article}
\usepackage[backend=biber, style=chem-angew,]{biblatex}

\begin{filecontents*}{\jobname.bib}
@article{Ache1989,
  author  = {H. J. Ache},
  journal = {Angew. Chem. Int. Ed.},
  year    = {1989},
  volume  = {28},
  pages   = {1-20},
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
\autocite{Ache1989}

\printbibliography
\end{document}

Siehe auch https://tex.stackexchange.com/q/223334/35864 (von wo ich die Beispiele geklaut habe).

----

Die Sache mit der Groß- und Kleinschreibung ist zumindest in Deinem ursprünglichen Beispiel zu erwarten gewesen. Manche Stile (wie z.B. unsrt) konvertieren die Titel in sogenannten sentence case (indem sie alle Buchstaben außer dem ersten in Kleinbuchstaben ändern). Das ist von gewissen englischsprachigen Stilen für bestimmte Titelarten so vorgeschrieben (APA, Chicago, ...). Im Deutschen ist das natürlich Mist, da es dort die Unterscheidung zwischen title case und sentence case nicht gibt. Bei BibTeX bleibt einem dann nichts anderes übrig, als die Titel mit geschweiften Klammern von der Groß- und Kleinschreibungsänderung auszunehmen (https://tex.stackexchange.com/q/10772/35864). Bei biblatex kann das Verhalten per Sprache angepasst werden. So wird bei Einträgen mit langid = {ngerman}, keine Änderung vorgenommen.


gast

Re: Unicode Fehler

Beitrag von gast »

MoeWe hat geschrieben:
So 27. Dez 2020, 12:45

Manche Stile (wie z.B. `unsrt`) konvertieren die Titel in sogenannten *sentence case* (indem sie alle Buchstaben außer dem ersten in Kleinbuchstaben ändern). Das ist von gewissen englischsprachigen Stilen für bestimmte Titelarten so vorgeschrieben (APA, Chicago, ...). Im Deutschen ist das natürlich Mist, da es dort die Unterscheidung zwischen *title case* und *sentence case* nicht gibt. Bei BibTeX bleibt einem dann nichts anderes übrig, als die Titel mit geschweiften Klammern von der Groß- und Kleinschreibungsänderung auszunehmen (https://tex.stackexchange.com/q/10772/35864).

Wobei eigentlich anzumerken wäre, dass unsrt ohnehin nur für englische Dokumente geeignet ist, weil auch so Dinge, wie Herausgeber, Band etc. fest auf Englisch eingestellt sind. Wenn man also unbedingt die alte BibTeX verwenden will, sollte man bei Dokumenten in anderen Sprachen besser gleich babelbib verwenden. Das Paket liefert auch gleich passende BibTeX-Stile zu den Standardstilen, beispielsweise babunsrt, babunsrt-fl und babunsrt-lf. Das Problem mit der Änderung der Groß-/Kleinschreibung wird dabei ebenfalls gelöst. Siehe dazu bei Bedarf die Anleitung des Pakets. Das sei auch nur der Vollständigkeit halber erwähnt. Passendere Stile und Verwendung von biblatex + biber hat MoeWe ja bereits genannt und gezeigt.


Antworten