Eingabedateien mit unterschiedlichen Zeichenkodierungen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Eingabedateien mit unterschiedlichen Zeichenkodierungen

von peekay » Do 13. Mai 2010, 14:42

Danke für die Antwort, es funktioniert! Ich habe die "schönere" 2. Lösung umgesetzt. Nach der Makrodefinition habe ich noch ein
\makeatother 
eingefügt.

von Eina Derskan » Mo 15. Feb 2010, 08:06

Variablen gibt es nicht, aber Makros. Man kann nun einfach ein neues Makro definieren, das den expandierten Inhalt eines anderes Makros enthält:
\newcommand\LastInputEncoding{}% irgendwo in der Präambel
% ...
\edef\LastInputEncoding{\inputencodingname}
\inputencoding{foo}
% Hier beliebiger Code
\inputencoding{\LastInputEncoding}
Schöner wird es natürlich, wenn man richtiges logisches Markup dafür definiert (ungetestet):
% Irgendwo in der Präambel:
\makeatletter
\newcommand*{\inputencodingstack}{}
\newcommand*{\pushinputencoding}{%
  \xdef\inputencodingstack{{\inputencodingname}{\inputencodingstack}}%
}
\newcommand*{\popinputencoding}{%
  \expandafter\pop@inputencoding\inputencodingstack\@empty\@empty}%
\newcommand*{\pop@inputencoding}[2]{%
  \xdef\inputencodingstack{#2}%
  \inputencoding{#1}%
}
\usepackage[latin1]{inputenc}% oder welche Codierung auch immer
% ...
% Und dann irgendwo im Dokument
\pushinputencoding
\inputencoding{utf8}
% Hier irgendwas in der angegebenen Codierung
\popinputencoding
% Und hier geht es in der ursprünglichen Codierung weiter.
Wenn ich keinen Fehler gemacht habe, kann man die Codierung beliebig schachteln. Wenn man zu viele Pop-Anweisungen verwendet, meckert \inputencoding wegen einer nicht definierten Codierung. Wenn ich einen Fehler gemacht habe, funktioniert gar nichts.

Da \xdef im Gegensatz zu \edef nicht im Wiki zu finden ist, sei erwähnt, dass \xdef einfach nur ein \global\edef ist, also auch über die aktuele Gruppe hinaus wirkt. Ich halte das an der Stelle für besser.

automatisch in die ursprüngliche Kodierung zurückschalten?

von peekay » Sa 13. Feb 2010, 11:51

Ich öffne diese Frage noch einmal mit einer Nachfrage:

Kann ich vor
\inputencoding{Codierung}
die bisherige Kodierung in einer Variablen merken, die ich ja mit
\inputencodingname
herausbekomme,
und danach in die vorangegangene Kodierung zurück wechseln? Soweit ich das mitbekommen habe gibt es in Latex keine Variablen für Strings - oder doch?

von pekay » Mi 27. Jan 2010, 11:30

Danke - es funktioniert wunderbar!

Da hatte ich wohl zu kompliziert gedacht. Jedenfalls hatte ich über "google" nichts verwertbares gefunden. Anderseits konnte ich mir nicht vorstellen, dass Latex mit solchen Problemen nicht umgehen kann ...

von KOMA » Mi 27. Jan 2010, 10:50

Man kann sogar unterschiedliche Codierungen innerhalb einer Datei verwenden. Das Paket inputenc stellt nämlich auch die Anweisung \inputencoding{Codierung} bereit, mit der man jederzeit umschalten kann.

Eingabedateien mit unterschiedlichen Zeichenkodierungen

von peekay » Mi 27. Jan 2010, 10:06

Ich habe ein Hauptdokument welches mit dem Zeichensatz utf8 kodiert ist und entsprechend
\usepackage[utf8]{inputenc}
in meiner Latex-Datei stehen. Soweit ist alles gut.

Jetzt sollen Ausgaben einer MS Access Anwendung als separate Dateien mit eingebunden werden. Die Ausgaben sind standardmäßig in latin1.

Jetzt meine Frage:
Gibt es in Latex die Möglichkeit, unterschiedliche Zeichensätze für ein Dokument zu verwenden, wenn mehrere Dateien im Spiel sind?

Der Weg über Umkodierung mittels eines externen Programms (beispielsweise recode) ist mir klar. Insofern sollte eine vorgeschlage Lösung mit Bordmitteln von Latex nicht aufwendiger sein.

Nach oben