Hallo!
Ich versuche jetzt schon seit geraumer Zeit perl mit utf-8 und latex (bzw. pdflatex) zwecks Erstellung eines Fax-Gateways zum Laufen zu bekommen. Beides gelingt mir schlichtweg nicht.
ps: Ich nehme an, der Fehler liegt bei latex, da ich mich hier am wenigsten auskenne.
pps: Wg. utf-8 und perl: Perl hält doch intern alle strings als utf-8 im Speicher (ab 5.8 glaub ich), es sei denn, das Encoding ist vorher ein anderes, oder?
Habt schon mal Dank für die Hilfe! Ich komm hier niet mehr weiter!
Der PERL-Teil:
Grundsätliches:
use strict;
use utf8;
...
Allgemein:
* Lese E-mails aus einem Verzeichnis ein, parse mit Email::Simple und erhalte Content-Type charset der Textinhalte. Attachements werden "weggeworfen" da ich nur text im PDF ausgeben will.
* Wenn charset != utf-8, dann encode('utf-8', $string)
(Das mache ich für alles ausser dem Body, welcher später unbehandelt (bis auf escaping) zwischen \begin{verbatim} ... \end{verbatim} stehen soll
* Schliesslich werden alle (ausser Body) Variablen mit encode('latex', $VAR) noch a la latex escaped. (mit TeX::Encode)
* Variablen welche in Perl stehen (Begrüßung/addresse...) sind mit einem utf-8 fähigen Terminal erstellt, direkt als solche im Quelltext definiert (einfache Anführgszeichen), Bsp (innerhalb eines hashes):
my %conf = (
closing => 'In der Hoffnung, daß Sie mit unserem Dienst zufrieden sind,\Mit freundlichen Grüßen',
...
);
LATEX:
"Header":
\documentclass[fontsize=12pt]{scrlttr2}
\usepackage{ngerman}
\usepackage{newcent}
\usepackage[ngerman]{varioref}
\usepackage[T1]{fontenc}
%\usepackage[ngerman,english,spanish,french,italian,spanish]{babel}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
%\usepackage[latin1]{inputenc}
\usepackage{verbatim}
Später:
\begin{letter}{__TOADDRESS__}
\opening{__OPENING__}
__INTRO__
\begin{center}\begin{tabular}{|c|c|c|c||c|}
\hline
.....
__UNTERSTRICHE__ wird entsprechend ersetzt.
So, das funktioniert einigermaßen. Das fertige .tex Dokument sieht so schleht nicht aus, zB
...
\begin{letter}{Herr W. Test\
Teststraße 1\
D-1234 Wahlstadt}
\opening{Sehr geehrter Herr W. Test}
Anbei eine Liste aller Gestern eingegangener E-Mail-Nachrichten. Bitte beachten Sie, daß weder........
Leider sagt mir pdflatex schon direkt bei \opening{...} folgendes:
! Package utf8x Error: Malformed UTF-8 sequence.
See the utf8x package documentation for explanation.
Type H <return> for immediate help.
...
l.54 \opening{Sehr geehrter Herr W. Test}
?
Hat da jemand eine Idee?