PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : unicode in latex



sancho1980
02-10-2006, 14:59
hi
ich hab ehrlich gesagt mit latex nicht viel am hut und dementsprechen wenig ahnung
alles was ich machen will, ist daten aus einer datenbank auslesen und diese nach einer bestimmten formatierung in ein pdf-file umwandeln
jetz ist es folgendermaßen: die daten in der datenbank sind in unicode formatiert..ich weiß nicht wie ich das ordentlich in ein tex-file geschrieben bekomme...wenn ich einfach unicode-zeichen in ein tex-file kopiere, dann bekomm ich nur fragezeichen angezeigt
wenn ich im hexeditor die genaue utf8-sequenz einfüge, dann beschwert sich der latex-compiler (undefined control sequence)
hier ist das beispiel, von dem ich rede:

\documentclass{article}
\usepackage[utf8x]{inputenc}
\begin{document}
Ñ„
\end{document}


Ñ„ ist die utf8-sequenz für den kyrillischen buchstaben ф

wie bekomme ich das hin?

danke schonmal,

martin

etilli33
02-10-2006, 18:51
utf8x ist die Kodierung, die zusammen mit dem ucs-Paket verwendet wird, also \usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[OT2,T1]{fontenc}
%\usepackage{autofe}
\usepackage[russian,german]{babel}

Du brauchst noch eine Kodierung für die Umsetzung in Latex, das macht fontenc. Und über Babel sagst du dann auch, dass du in einer anderen Sprach schreiben, willst, also \selectlanguage{russian} und dann müsste auch Kyrillica angezeigt werden.
Es gibt auch ein Zusatzpaket von ucs, das automatisch die richtige Kodierung heraussucht: autofe, das funktioniert aber nach meinen Testn nur mit längeren Texten, also nicht mit einzelnen Buchstaben. Aber du kannst es ja mal versuchen, du musst dann entsprechend fontenc auskommentieren.

Schließlich kannst du ucs weglassen und das x von utf8 löschen, das ist dann der von inputenc direkt bereitgestellte Kodierungsfall, aber ich weiß nicht, wie da die Auswahl geschieht, wahrscheinlich musst du es Latex doch noch über die Babel-Funktion sagen. Das Problem ist eben, dass die Schriften nicht unicode sind, und Latex muss eben wissen, welchen Schriftsatz es benutzen muss, um ein bestimmtes Zeichen darzustellen.

Ein ganz anderer Ansatz ist xetex (http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=xetex), das aber noch im Entwicklungsstadium steckt und eine etwas andere Behandlung von manchen Befehlen und Paketen erfordert, aber umso besser ist, wenn man mit verschiedenen Schriftsystemen hantieren muss. Für Kyrillisch und latenisch sollte aber das oben beschriebene reichen.

Gruß
Till

pospiech
02-10-2006, 19:06
hi
hier ist das beispiel, von dem ich rede:

\documentclass{article}
\usepackage[utf8x]{inputenc}
\begin{document}
Ñ„
\end{document}

Ñ„ ist die utf8-sequenz für den kyrillischen buchstaben ф


Das kann niemals gehen. Nur wenn du im Editor auch ein ф siehst UND LaTeX dieses Zeichen kennt und in den entsprechenden Quellcode umsetzten kann dann funktioniert es.

Oder anders gesagt, LaTeX versteht nur genau die UTF8 Zeichen für die es auch einen Befehl kennt. Beliebige utf8 Zeichen erzeugen daher immer einen Fehler.

Matthias

etilli33
02-10-2006, 19:11
Ah, man sollte wohl noch hinzufügen: die latex-datei muss natürlich utf8-kodiert gespeichert werden... Das kann meines Wissens nach unter den Latexeditoren unter Windows nur texedit (?), unter linux eigentlich alle, unter mac auf jeden Fall texshop

RedCloud
02-10-2006, 19:47
Ah, man sollte wohl noch hinzufügen: die latex-datei muss natürlich utf8-kodiert gespeichert werden... Das kann meines Wissens nach unter den Latexeditoren unter Windows nur texedit (?), unter linux eigentlich alle, unter mac auf jeden Fall texshop

http://www.xm1math.net/texmaker/

rc

sancho1980
02-10-2006, 20:57
ich bekomm das irgendwie nicht gebacken
hab mir jetz den texmaker runtergeladen
da kann ich jetz unicode ins editor-feld schreiben
aber beim compilieren in bspweise pdf kommen da dann immer noch fragezeichen
könnt ihr mir nicht mal ein kleines beispiel geben, wie ich das anstelle, unicode-zeichen zu verwenden; wär echt nett
danke,
martin

pospiech
02-10-2006, 21:45
\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}
äöüß
\end{document}


als utf8 speichern und kompilieren. Alle Umlaute werden als 2-Byte Zeichen gespeichert und reichen daher aus um utf8 zu demonstrieren.

Matthias