PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sonderzeichen in Überschrift, Logdatei extrem groß



feuerwehr
25-08-2014, 20:58
Heyho,
ich sitze an der Erstellung eines umfangreichen Handschriftenkatalogs, wo gerade zum Ende ein Problem auftritt, das ich leider nicht lösen kann. Vielleicht habt ihr da draußen eine Idee.

LaTeX meldet Fehler zu einer Zeile, in der die folgende Gliederungsüberschrift steht:


\chapter{Literatur: Die Ḫamsa Nr. 255}

Es treten Kapitelüberschriften vor dieser Stelle auf, in denen auch Sonderzeichen vorkommen, hier hat LaTeX aber nichts zu beanstanden.

Allerdings meldet das Programm im Gesamtdokument etwa ab Zeile 3500 (von 16000) immer mal wieder vollkommen willkürlich, so scheints, Fehler (text contains an invalid character) in Bezug auf die arabische Umschrift, stellt aber die Zeichen in der Ausgabe korrekt dar. Warum meckert LaTeX erst so spät rum, falls etwas in der Präambel nicht stimmen sollte?

Bei der Konzeption des Minimalbeispiels wurden allerdings komischerweise manche Sonderzeichen nicht korrekt dargestellt, erst mit


\PrerenderUnicode{Ḫ}

\PrerenderUnicode{ü}

in der Präambel ließ sich das ausgleichen. Warum das ausgerechnet im Minimalbeispiel auftritt - keine Ahnung. Im Quellcode des Gesamtdokuments werden sie ohne diese Befehle korrekt dargestellt. Das nur zur Erläuterung und zum Hintergrund.


Nun aber mal das Minimalbeispiel mit dem für mich so zentralen Problem:




\documentclass[12pt,paper=a4,open=any,headings=small,titlepage]{scrbook}
\usepackage[T3,T1]{fontenc}
\usepackage{tocloft}
\usepackage{textcomp}
\usepackage{arabtex}
\usepackage[utf8x]{inputenc}
\usepackage{utf8}
\PrerenderUnicode{Ḫ}
\PrerenderUnicode{ü}
\usepackage[english,ngerman]{babel}
\usepackage{verses}
\usepackage{blindtext}
\usepackage{microtype}
\usepackage{amssymb}
\usepackage[noenc]{tipa}
\usepackage{soul}
\usepackage{lmodern}
\setkomafont{sectioning}{\rmfamily}
\usepackage[bf,tiny,center]{titlesec}
\newcommand{\kap}[1]{\textsc{#1}}
\makeatletter
\let\partbackup\l@part
\renewcommand*\l@part[2]{\partbackup{#1}{}}
\makeatother
\tolerance 1414
\hbadness 1414
\emergencystretch 1,5em
\hfuzz 0.3pt
\widowpenalty=10000
\vfuzz \hfuzz
\raggedbottom
\advance \textwidth 15mm
\begin{document}

\tableofcontents
\yahnodots\setfarsi\novocalize % Sprachspezifische Einstellungen arabisch

\chapter{Einleitung}

\mainmatter

\part{Beschreibungen der tschaghataisch-türkischen Handschriften}

\chapter{Literatur}

\section{Dichtung \emph{Dīvāne, Me\b snevīs} u.\,a. Nr. 176--199}

\chapter{Pflichtenlehre Nr. 254}

\chapter{Literatur: Die Ḫamsa Nr. 255}

% eigentlich vollständig \chapter{Literatur: Die Ḫamsa des Mīr ʿAlī Šīr Navāʾī Nr. 255}

\section*{255 -- Cod. turc. 298}
\vskip 3mm
\begin{small}
Restaurierter Ledereinband. Grüner Originallederbezug mit stark abgegriffenen Medaillons vorn und hinten aufgeklebt.
\end{small}
\vskip 3mm
\noindent \kap{Mīr ʿAlī Šīr Navāʾī}.

Geb. am 17. Ramaḍān 844/9. Febr. 1441 in Herat. Er starb dort am 12. Ǧum. II 906/3.~Jan. 1501, \emph{s.} İA I 349ff. (\kap{Zeki Velidi Togan}) und \kap{J. Eckmann}, \emph{Die tschaghataische Literatur} in Philologiae Turcicae Fundamenta, Bd. 2, Wiesbaden 1964, S. 329--31.
\vskip 3mm

\begin{large}
\noindent1. \emph{Ḫamsa}
\end{large}
\vskip 3mm

\setfarsi
\begin{RLtext}
\noindent\LR{ (1b) A} bism al-llah alra.hman al-ra.hIm

\hspace{20ex} ra^sta.gah \hspace{0,5ex} ^gaikaty nai^gah\hspace{0,6ex} darr \hspace{0,5ex} yatIm
\vskip 2mm
\noindent\LR{ (75b) E} tA 'Any \hspace{0,6ex} kaup kaup 'AlIbAn saibqArAy

\hspace{17ex} kaup kaup iy^gIb brdam awzyamdIn bArAy
\vskip 2mm

\hspace{20ex} taukAndy \hspace{10ex} wa al-llah a`lam bi-al-.siwAb
\end{RLtext}
\vskip 6mm
\end{document}



Hier gibt LaTeX in der Log diese drei Fehler aus, und zwar in Bezug auf die genannte Gliederungsüberschrift:


! Illegal parameter number in definition of \reserved@a.

Und


! Illegal parameter number in definition of \@themark.

Außerdem:


! Only one # is allowed per tab.


Zusätzlich meldet die toc-Datei:


\select@language {ngerman}
\contentsline {chapter}{\numberline {1}Einleitung}{2}
\contentsline {part}{\numberline {I}Beschreibungen der tschaghataisch-t\IeC {\"u}rkischen Handschriften}{1}
\contentsline {chapter}{\numberline {2}Literatur}{2}
\contentsline {section}{\numberline {2.1}Dichtung \emph {D\IeC {\=\i }v\IeC {\=a}ne, Me\b snev\IeC {\=\i }s} u.\,a. Nr. 176--199}{2}
\contentsline {chapter}{\numberline {3}Pflichtenlehre Nr. 254}{3}
\contentsline {chapter}{\numberline {4}Die \IeC {\unhbox \voidb@x \vtop {\baselineskip \z@skip \lineskip .25ex\everycr {}\tabskip \z@skip \halign {####\crcr H\crcr \hskip \hideskip \vbox to.2ex{\hbox {\kern -0.0em\u {}}\vss }\hskip \hideskip \crcr }}}amsa}{4}


Tatsächlich ist die oben genannte Überschrift noch gar nicht vollständig, eigentlich sollte sie so lauten:


\chapter{Literatur: Die Ḫamsa des Mīr ʿAlī Šīr Navāʾī Nr. 255}

wenn ich dies übersetzen lasse, meldet LaTeX über ein extra Fenster:


Die Logdatei ist zu groß

wenn ich das Dokument trotz Warnung lade, gibt LaTeX kein PDF aus, sondern eben nur eine tatsächlich stark angeschwollene Logdatei, die zu der eben genannten Zeile immer dieselben Fehlerkommentare aufführt.

Was kann ich tun?

Ich danke euch sehr für eure Hilfe!!
Franziska

u_fischer
26-08-2014, 08:28
ucs (das Paket, dass du mit utf8x lädts) benützt für Ḫ einen Befehl, der nicht robust ist. Du kannst das mit

\usepackage{etoolbox}
\robustify\charettesubbreve

reparieren. Du solltest das auch als Fehler melden.

feuerwehr
26-08-2014, 16:24
Liebe Ulrike,
danke erstmal.

wenn ich die Befehle in die Präambel setze, gibt mir LaTeX zwar die Gliederungsüberschrift korrekt aus, aber im Inhaltsverzeichnis wird weder das Ḫ, noch das ü oder ʿ ausgegeben, stattdessen das hier: [Pleaseinsertintopreamble]

Dazu meldet die Log:

Package etoolbox Warning: Patching '\end' failed!
(etoolbox) '\AfterEndEnvironment' will not work.

)

! Package etoolbox Error: \charettesubbreve undefined.

was kann ich da tun? danke!

u_fischer
26-08-2014, 16:33
Du musst die Befehle natürlich hinter \PrerenderUnicode schreiben. Und ich habe nur für dein Beispiel den Befehl rausgesucht. Ob du noch weitere Befehle für andere Zeichen anpassen muss, weiß ich nicht.

klops
26-08-2014, 17:24
@feuerwehr: Bitte markiere Deinen Code im Beitrag (http://www.mrunix.de/forums/misc.php?do=bbcode). Das erhöht die Lesbarkeit und die Kopierfähigkeit. Optimal wäre, wenn Du Deinen obigen Beitrag noch einmal editierst, um das nachzuholen. Danke.

feuerwehr
26-08-2014, 19:05
...das Grundproblem scheinen also die Diakritika zu sein. Ich dachte bisher, wenn ich


\usepackage[utf8x]{inputenc}

lade, gibt es kein Problem. Entschuldigt meine Unbedarftheit, was den Umgang mit den vielen Meldungen angeht...
Wie es aussieht, muss ich für die anderen benötigten Zeichen auch die entsprechenden Befehle anpassen - in welchen Dokumentationen aber finde ich diese Befehle? Zum Beispiel für ʿ und ʾ ? In der Comprehensive Latex Symbol List?

Im Übrigen habe ich einen älteren Thread gefunden, der das Problem auch behandelt (dumm gelaufen, sorry - ich hatte bis jetzt unter anderen Stichworten gesucht):

[url]http://www.golatex.de/utf8x-is-dead-t6509.html[/url}

allerdings werde ich hieraus auch nicht so recht schlau, warum ucs bei mir "versagt", wo ich nicht biblatex nutze..

u_fischer
27-08-2014, 09:41
Schreib an den Autor von ucs und frag ihn, warum er zerbrechliche Befehle benützt für Zeichen, die in "moving arguments" benutzt werden können und gib ihm eine der Liste der Zeichen, die problematisch sind.

feuerwehr
27-08-2014, 15:33
ok.
aber das sind dann echt einige.. auch so simple Zeichen wie das Ā, das auch von leuten, die nicht unbedingt arabisch transkribieren, oft gebraucht wird. Da muss es doch ne einfachere Lösung geben...?

Vielleicht bleibt das das Geheimnis von LaTeX, aber wie kann es denn sein, dass LaTeX erst ab Zeile 3500 Probleme mit bestimmten Sonderzeichen hat, und abgesehen von der oben problematisierten Stelle zwar Fehler meldet, aber die Zeichen immer korrekt ausgibt? Deswegen hab ich das dummerweise nie ernst genommen, wenn er sie doch korrekt ausgibt..

u_fischer
27-08-2014, 15:45
Die einfache Lösung für Dokumenten mit fremden Skripten ist xelatex oder lualatex.

Warum das Problem bei dir erst spät auftritt, kann ich dir nicht sagen, vielleicht benützt du eines der problematischen Zeichen erst dann, oder bei Zeile 3500 hast du den 100sten Fehler und TeX gibt auf. Fehler sollte man daher nie irgnorieren.

Du wirst das Problem aber nicht lösen können, indem du hier immer weitere Fragen in den Raum stellst. Das ist ein Bug in ucs, und solche Bugs werden nur dann korrigiert, wenn jemand sich die Mühe macht, die zu melden.

feuerwehr
27-08-2014, 16:22
Danke für deine Geduld und deine Hilfe, dann melde ich mich beim Autoren.