Seite 1 von 1
Umlaute abgleichen ->code fehler (ä...)
Verfasst: Sonntag 29. Juli 2007, 12:53
von iceman21
hi@ all
ich wollte ein programm schreiben, mit dem aus einem dokument alle umlaute (äöüß) in die latex schreibweise umgewandelt werden. ('\"{a}' ... )
leider musste ich feststellen, dass es schonprobleme gibt mit:
hat jemand von euch einen tipp wie man das anders lösen kann... ich bekomme aus der textdatei ja die umlaute ... wie soll ich die denn abgleichen wenn python umlaute im code nicht erlaubt?
MfG
Verfasst: Sonntag 29. Juli 2007, 13:28
von BlackJack
Python erlaubt Umlaute im Quelltext, Du hast nur keinen Umlaut sondern ein oder mehrere Bytes, die in der Kodierung die Dein Editor benutzt zufällig ein 'ä' darstellen.
Auf jeden Fall musst Du die Kodierung im Quelltext als speziellen "coding"-Kommentar angeben, damit der Compiler nicht meckert.
Und dann musst Du entweder dafür sorgen, dass Du im Quelltext die gleiche Kodierung benutzt wie in den LaTeX-Quelltexten, dann kannst Du Bytes vergleichen die Umlaute darstellen, oder Du musst konsequent mit Unicode arbeiten. Siehe dazu:
[wiki]Unicode[/wiki]
Letzteres ist die sauberere Methode und erlaubt es auch den Quelltext so zu schreiben, dass die Kodierung von LaTeX-Quelltexten und dem Programm-Quelltext nicht zwingend übereinstimmen müssen, ja sogar, dass man die Kodierung der LaTeX-Quelltexte als Argument übergeben kann.
Edit: Und Unicode hat den Vorteil, dass man eine Ersetzungstabelle für die `translate()`-Methode anlegen kann:
Code: Alles auswählen
def main():
translation = dict((ord(old), new)
for old, new in ((u'ä', u'\\"{a}'),
(u'ö', u'\\"{o}')))
print u'Hällö'.translate(translation)
Ausgabe:
Verfasst: Sonntag 29. Juli 2007, 13:32
von HWK
Schau Dir auch mal dies hier an: [wiki]Von Umlauten, Unicode und Encodings[/wiki]
MfG
HWK
Verfasst: Sonntag 29. Juli 2007, 17:32
von lunar
Mmmh, andere Frage: Du weißt schon, dass man Umlaute auch direkt in LaTeX Dokumenten verwenden kann, wenn man fontenc, inputenc und babel richtig einstellt?
Verfasst: Montag 30. Juli 2007, 15:19
von iceman21
ja ich ahbe das auch mal gehört und ausprobiert aber bisher hat es noch nicht funktioniert ... wie muss man es denn genau einstellen?
Verfasst: Montag 30. Juli 2007, 15:27
von lunar
So:
Code: Alles auswählen
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
inputenc muss dabei zum Encoding der Datei passen.
Verfasst: Montag 30. Juli 2007, 17:35
von birkenfeld
Für bestimmte Zeichen (° z.B. IIRC) braucht man außerdem