PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : utf8x und \chapter



TheLawyer
07-06-2009, 16:07
Hallo zusammen,

ich bin neulich auf ein Verhalten gestoßen das ich mir nicht erklären kann. Hier erstmal das (fast) Minimalbeispiel:



\documentclass{report}
\usepackage[utf8x]{inputenc}

\begin{document}
\tableofcontents

\chapter{ohneumlaut}
\chapter{örstes Kapitel}
\section{ärster Teil} \label{eins}
"orem" ipsüm
\chapter{zwö}
\section{teil}
\section{ipßum}
ipsum ipsum
\end{document}


Wenn ich darüber PDFLaTex kaufen lasse, geht das ohne Probleme. Nach dem ersten Durchlauf fehlt natürlich das Inhaltsverzeichnis, aber sonst ist alles in Ordnung.
Nach dem zweiten Durchlauf wird im Inhaltsverzeichnis das "ö" im zweiten Kapitel nicht richtig dargestellt. Das passiert aber nur an dieser einen Stelle. "[Pleaseinsertintopreamble]rstes Kapitel" ist der Eintrag im Inhaltverzeichnis für Kapitel 2.
Ein dritter Durchlauf beseitigt den Fehler und das ganze Dokument ist in Ordnung.
Mit jedem weiteren Durchlauf ist das Ergebniss immer abwechselnd das gleiche wie nach dem 2. oder 3. Durchlauf.

Das alles passiert (soweit ich bisher weiß) nur mit \chapter. \section ist nicht betroffen. Außerdem lässt sich das Problem durch Verwendung von utf8 statt utf8x lösen.

Meine Frage ist jetzt eigentlich nur, warum das überhaupt passiert und ob ich das irgendwie umgehen kann, ohne auf den eingeschränkten utf8 Zeichensatz zu wechseln.

Danke schonmal fürs Lesen!

u_fischer
07-06-2009, 22:58
Versuch \PrerenderUnicode{ä} in der Preambel. (Es ist wahrscheinlich egal welchen Buchstaben du benutzt.)

Abgesehen davon: Welche unicode-Buchstaben fehlen dir denn bei utf8? Ist dir bekannt, dass weitere Definitionen nachgeladen werden, wenn du weitere encodings bei fontenc angibst?

Ulrike Fischer

TheLawyer
08-06-2009, 07:29
Danke! Mit \PrerenderUnicode funktioniert es.

Ist dir bekannt, dass weitere Definitionen nachgeladen werden, wenn du weitere encodings bei fontenc angibst?
Das wusste ich noch nicht. Muss ich mal ausprobieren, aber ich denke das müsste für meine Zwecke reichen.

Ich verstehe nur noch nicht, warum er die .toc einmal richitg erstellt und sie dann wieder ändert.

u_fischer
08-06-2009, 08:44
Nun, genau wie inputenc+utf8 lädt ucs nicht standardmäßig alle unicode-Definitionen. Wenn es auf einen Buchstaben trifft, den es nicht kennt, lädt es weitere Definitionsdateien oder wenn das aus irgendeinem Grunde nicht geht, schreibt eine Meldung:

"[Please insert \PrerenderUnicode {ö} into preamble]"

Da bei dir der problematische Umlaut im \chapter-Befehl ist, landet diese Meldung im toc. Bei nächsten Lauf wird die toc-Datei geladen, dein Dokument hat den \Prerender-Befehl, der Umlaut in \chapter ist nicht mehr problematisch, also landet die Meldung nicht mehr im toc ...


Anmerkung: ucs hat auch einen Befehl \PreloadUnicodePage.
\PreloadUnicodePage{0} lädt uni-0.def usw.


Ulrike Fischer

TheLawyer
08-06-2009, 12:19
Danke für die Erklärung
\Preload und \Prerender schau ich mir mal genauer an.


Da bei dir der problematische Umlaut im \chapter-Befehl ist, landet diese Meldung im toc.

Ich will jetzt nicht nerven, aber wenn ich \chapter durch \section ersetze, tritt das Problem gar nicht erst auf. Das versteh ich immer noch nicht.

u_fischer
08-06-2009, 13:04
Ich will jetzt nicht nerven, aber wenn ich \chapter durch \section ersetze, tritt das Problem gar nicht erst auf. Das versteh ich immer noch nicht.


Ich nehme mal an, das liegt daran, dass \chapter intern zuerst in die toc-Datei (mit \addcontentsline{toc}{chapter}) und danach erst den Titel "druckt", während \section es andersherum macht.

Ulrike Fischer

TheLawyer
08-06-2009, 14:16
Nochmal herzlichen Dank. Jetzt komm ich selbst weiter.