PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : special characters



syrvn
25-05-2011, 15:00
Hallo,

ich schreibe gerade einen Artikel mit Latex. Als Texteditor verwende ich Eclipse auf einem Mac Computer. Manchmal benutze ich Wörter/Zeichen die nicht aus dem Englischen kommen wie z.b. naïve. Eclipse zeigt mir dann einen Fehler an. Wenn ich das latex dokument übersetzte erhalte ich folgende Fehlermeldung/Warnung:



See the inputenc package documentation for explanation.
pdflatex> Type H <return> for immediate help.
pdflatex> ...
pdflatex>
pdflatex> l.36 drug naïve


Das Dokument wird zwar erstellt aber im Text wird dann anstelle 'naïve' einfach nur 'na' dargestellt weil er das ' ï ' nicht als Zeichen erkennt. Wie kann ich das beheben?

Meine Preamble sieht wie folgt aus:


\documentclass[10pt,a4paper,numbers=noenddot]{scrreprt}

\usepackage[english]{babel}
\usepackage[T1]{fontenc}
% \usepackage[macce]{inputenc}
\usepackage[utf8]{inputenc}


Eclipse als editor verwendet auch UTF-8.

Vielen Dank!

Gruß
syrvn

Festus
25-05-2011, 15:09
Hi,

erstmal solltest du bei babel alle Sprachen im Dokument laden, die letzte ist die Hauptsprache. Die zweite Sprache ist französisch, wie mir scheint!? Dann schreib:


\usepackage[french,english]{babel}

Zweitens: Wie willst du dieses und andere Wörter schreiben? Wenn du es z.B. aus einer Zeichentabelle einfügst kann es sein, dass dein Editor das Zeichen zwar darstellen kann, es in deiner Latex-Codierung aber nicht enthalten ist. Du kannst alle Zeichen, die Probleme machen, als Befehle schreiben. In deinem Fall sollte


na\"{i}ve

funktionieren!

Gruß, Festus

u_fischer
25-05-2011, 15:27
Wenn deine Datei wirklich in utf8 kodiert wäre, dann müsste "naïve" funktionieren. Deine Fehlermeldung deutet darauf hin, dass deine Datei in Wirklichkeit 8bit-kodiert ist. Also ändere die inputenc-Option.

syrvn
25-05-2011, 17:07
Hallo,

so fürs Erste hab ich allen Text bis auf 'naïve' and na\"{i}ve aus meiner
Textdatei entfernt. Letzteres wird nun korrekt im übersetzten Latex-Dokument angezeigt. für Ersteres bekomme ich folgende Fehlermeldung




pdflatex> ! Package inputenc Error: Unicode char \u8:ïve not set up for use with LaTeX.
pdflatex>
pdflatex> See the inputenc package documentation for explanation.
pdflatex> Type H <return> for immediate help.
pdflatex> ...
pdflatex>
pdflatex> l.4 naïve



Jetzt gibt es ein paar Dinge die ich nicht verstehe.

1) Wenn ich french aus \usepackage[english]{babel} entferne, wird das wort immer noch korrekt angezeigt. warum?

2) Woher weiss Latex, dass er aus "{i} ein ï machen soll?

3) Dass 'naïve' im Editor auch als Fehler markiert wird, liegt das daran, dass der Editor nicht die korrekte Zeichenkodierung verwendet? Das heisst ja dann nicht automatisch, dass das Wort im übersetzten Latex-Dokument falsch angezeigt werden muss, oder? Die Latex-Übersetzung kann ja ein andere Zeichenkodierung verwenden als der Editor selbst.

4) Wenn ich den 'inputenc' verändere bezieht sich das aber ja nur auf die Zeichenkodierung für das Übersetzen des Latex-Dokuments und nicht auf den des Editors selbst. Welche Zeichenkodierung sollte ich denn für den Mac nehmen? UTF-8 oder macce?



Grüße,
syrvn

syrvn
25-05-2011, 17:10
Ich habe gerade noch herausgefunden, dass Eclipse nicht UTF-8 als Zeichenkodierung verwendet, sondern MacRoman. Ich hab das jetzt auf UTF-8 umgestellt und die Textdatei geschlossen und wieder geöffnet. Das Wort 'naïve' wird aber immer noch als Fehler markiert. Woran liegt das?

u_fischer
25-05-2011, 18:39
1. Warum sollte es nicht?

2. \" ist halt so definiert. Woher weiß LaTeX, dass \section{} eine Überschrift sein soll?

3.+4. Wenn du deine Datei in Kodierung "A" speicherst, in inputenc aber behauptest, dass die "B"-kodiert ist, dann kann alles mögliche passieren. Fehler, falsche Zeichen, oder auch gar nichts.

Wenn du nicht weiß, welche Kodierung deine Datei benutzt, kannst du selinput statt inputenc benutzen:


\documentclass[10pt,a4paper,numbers=noenddot]{scrreprt}

\usepackage[english]{babel}
\usepackage[T1]{fontenc}

\usepackage{selinput}
\SelectInputMappings{
adieresis={ä},
germandbls={ß},
Euro={€},
}

\begin{document}
naïve

\end{document}

Es wird dann versuchen die richtige Kodierung zu identifizieren. (Es wird auf jeden Fall erkennen, ob die Datei utf8 kodiert ist.)

Festus
25-05-2011, 19:19
Zu 1: Das war nur ein allgemeiner Hinweis von mir. babel hat mit der Codierung nichts zu tun, es lädt nur Trennmuster und andere Grammatik-Regeln für die Sprachen.

Zu 2: Wie u-fischer schon sagte ist das einfach die Codierung von TeX. Man kann mit einer normalen QWERTZ Tastatur alle Sonderzeichen, Akzente usw. erzeugen wenn man die richtigen Codierungen kennt. Wie die aussehen steht in verschiedenen LaTeX Büchern und sicher auch im Internet.

Zu 3 und 4: Wörter die im Editor als falsch markiert sind heißen ja nur, dass die Rechtschreibkontrolle dieses Editors (mit der eingestellten Sprache) das Wort nicht kennt und daher als potentiell falsch geschrieben markiert. Mit der Codierung hat das nichts zu tun. Und die Codierung die der Editor benutzt hat auch mit der LaTeX Codierung herzlich wenig zu tun.

syrvn
25-05-2011, 19:59
Hi,

danke noch einmal für deine Antwort.

Ich habe jetzt den Editor auf UTF-8 gestellt und verwende in der Preamble auch UTF-8:


\usepackage[utf8]{inputenc}


Ich hab eine neue Latex-Datei kreiert die wie folgt aussieht:


\section*{test}

naïve



Was passiert ist, dass mir mein Editor einen Fehler bei 'naïve' anzeigt und außerdem im Latex-Dokument nur 'na' angezeigt wird. Das heisst ja, dass das 'ï' in 'naïve' nicht der UTF-8 Zeichenkodierung entspricht. Richtig? Würde ich die Zeichenkodierung meines Editors entsprechend anpassen, so dass er das Wort 'naïve' erkennen würde, würde es aber trotzdem nicht im Latex-Dokument angezeigt werden. Stimmt das?

Also entweder ich passe die Zeichenkodierung an oder verwende 'selinput', um zumindest im Latex-Dokument die richtige Darstellung zu erhalten. Oder aber ich verwende na\"{i}ve um sowohl im Editor als auch im Latex-Dokument eine Fehlermeldung zu vermeide.

Ich glaube das fast alles ganz gut zusammen, oder?

LG
syrvn

syrvn
25-05-2011, 20:05
Hm, muss noch einmal etwas hinzufügen :)

Ich habe gerade gegooglet und folgende UTF-8 Charttabelle gefunden:

http://www.utf8-chartable.de/

diese halt folgenden Eintrag:


U+00EF ï c3 af LATIN SMALL LETTER I WITH DIAERESIS

Also, laut dieser Tabelle sollte der Buchstabe/Zeichen 'ï' ja UTF-8 kodierbar sein. Warum zeigt mir das mein Editor als auch das übersetzte Latex-Dokument als Fehler an?

Ich glaub ich stehe auf dem Schlauch :)

syrvn
25-05-2011, 20:27
So ein letztes Update. Ich habe gerade herausgefunden, dass die Kodierung im Latex-Editor von Eclipse auf ISO-9xxx eingestellt war und den Editor für die ich die Zeichenkodierung geändert hatte war der general editor. Hab den latex editor jetzt auf utf-8 gestellt aber das ï wird jetzt im editor als schwarze raute mit fragezeichen dargestellt. Ist aber nicht so tragisch, weil ich herausgefunden habe, dass wenn man \usepackage{selinput} anstelle von UTF-8 verwendet der Latex-Editor sich anscheinend auch die richtige kodierung sucht. Wie verstehe ich nicht, weil das eine ja, wie Festus bereits gesagt hat, nichts mit dem anderen zu tun hat aber man muss ja nicht immer alles verstehen :) Wobei ichs eigentlich schon gerne verstehen würde aber....


Gruß

u_fischer
25-05-2011, 20:27
Stell mal deine Test-Datei irgendwo ins Netz. Am besten in einer zip-Datei damit die Kodierung nicht verändert wird.

syrvn
25-05-2011, 20:41
hier bitteschön :)

test projekt (http://www.elxsi.de/~wolfgang/Latex.zip)

u_fischer
25-05-2011, 21:03
Du sollst eine Datei, nicht ein Projekt ins Netz stellen.

Abgesehen davon: die test.tex ist wohl utf8-kodiert. Und es bringt nichts einfach nur selinput zu laden. Der \SelectInputMappings-Befehl ist auch wichtig, den habe ich nicht zum Spaß in mein Beispiel eingefügt.

syrvn
25-05-2011, 21:11
Das hab ich wohl falsch verstanden sorry. Was für eine Datei meinst du denn genau? Ist diese aber nicht vielleicht schon in meinem Test-Projekt enthalten?

Der \SelectInputMappings-Befehl hatte Fehler hervorgerufen, deswegen hatte ich den wieder herausgenommen. Werde mir das aber noch genauer anschauen.

esdd
26-05-2011, 09:04
Hallo,

die test.tex ist zwar utf8 kodiert, aber die beiden anderen document.tex und preamble.tex sind es nicht ;-) Speichere alle drei mit der gleichen Kodierung, dann sollte es mit dem \SelectInputMappings Befehl funktionieren.

Gruß
Elke

u_fischer
26-05-2011, 09:43
Der \SelectInputMappings-Befehl hatte Fehler hervorgerufen, deswegen hatte ich den wieder herausgenommen.

Das solltest du dir abgewöhnen. Probleme löst man nicht, indem man versucht sie zu ignorieren.

Abgesehen davon: Elke hat schon recht: wenn du zwischen Präambel (wo der \SelectInputMappings-Befehl steht) und Text die Kodierung wechselst, fällt selinput natürlich erstmal auf die Schnauze. Was du machen kannst (außer preambel.tex in utf8 zu kodieren), ist den \SelectInputMappings am Anfang von test.tex zu wiederholen, damit selinput die Eingabekodierung umstellt. Dann musst du aber evtl. Klammern um den \input-Befehl machen, damit nachfolgender Text nicht betroffen ist:



%Hauptdatei
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
adieresis={ä},
germandbls={ß},
Euro={€},
}

\begin{document}
naïve
{\input{test}}%anders kodiert, als Hauptdokument.
% test.tex enthält auch \SelectInputMappings{...}
naïve
\end{document}

syrvn
26-05-2011, 11:31
Hallo,

danke für euere weiteren Antworten. Ich werde mir das im Laufe des Nachmittags genau anschauen.

Gruß