PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TeX capacity error wegen besonderen Zeichens in Überschrift



weaker
16-11-2008, 17:37
Hallo,

ich bekomme einen TeX capacity error weil ich ein besonderes Zeichen in einer Überschrift verwende und er das nicht ins Inhaltsverzeichnis transferiert bekommt. In der Überschrift selbst wird es fehlerfrei gesetzt.

\subsection{Das Symbol \mysymb}
Das Zeichen ist so definiert:

\newcommand{\mysymb}{\textswab{B}}
wobei ich die Type1-Schwabacher nehme und nicht die Bitmap-Variante.

Was auch nicht geholfen hat war protect.

\subsection{Das Symbol \protect\mysymb}
LaTeX hatte laut Fehlermeldung selbst glaub ich schon protect vorangestellt.

Als Workaround hab ich zur Zeit

\subsection[Widerwillig halt kein Symbol im TOC]{Das Symbol \mysymb}

Gibt es da eine richtige Lösung? Ich habe gelesen, dass man die TeX capacity eigentlich nie hochsetzen muss, sondern, dass man halt irgendwo Mist gebaut hat.

Was eventuell damit zu tun hat, ist, dass ich, wenn ich das Symbol im Fließtext verwende, immer noch ein [backslash][leer] anfügen muss, damit danach ein Leerzeichen gesetzt wird. Also \mysymb\ muss im Text stehen.

Wie kann ich das Zeichen besser definieren, dass es doch ins Inhaltsverzeichnis aufgenommen wird?

Viele Grüße
weaker

mechanicus
16-11-2008, 17:45
Hallo,


\documentclass[ngerman,12pt,a4paper]{scrreprt}
\usepackage{babel}
\usepackage[latin1]{inputenc}
\usepackage{yfonts}
\usepackage{hyperref}
\usepackage{blindtext}
\newcommand{\mysymb}{\textswab{B}}
\begin{document}
\tableofcontents
\chapter{foo \texorpdfstring{\mysymb}{}}
\blindtext
\section{bar \texorpdfstring{\mysymb}{}}
\blindtext
\end{document}

Gruß
Marco

Stefan_K
16-11-2008, 17:48
Hallo Weaker,

bei mir funktioniert dieses Symbol sowohl im Dokument als auch im Inhaltsverzeichnis, mit Deinen obigen Zeilen. Poste am besten ein vollständiges Minimalbeispiel (http://minimalbeispiel.de/mini.html), um das Problem nachvollziehbar zu machen.
Falls Du hyperref verwendest, was Du nicht nanntest, könnte es Probleme geben, dann siehe Marcos Post.

Stefan

weaker
16-11-2008, 19:24
Ihr seid die Götter! Mit dem Vorschlag von marco funktioniert es!
Ja, ich benutze hyperref. Hab ich natürlich vergessen zu erwähnen.

Das Problem war anscheinend ja nur dem geschuldet, dass im PDF-Inhaltsverzeichnis keine Spezialzeichen möglich sind.
Wie komme ich denn auf diesen Befehl? Woran sehe ich, dass das das Problem ist?

Vielen Dank schonmal!

Stefan_K
16-11-2008, 19:39
Hallo Weaker,

das kann man z.B. im hyperref-Manual (http://tug.ctan.org/tex-archive/macros/latex/contrib/hyperref/doc/manual.html) unter 4.1 Replacement macros nachlesen. Klar liest man nicht alle Handbücher durch, bei auftretenden Problemen findet man da jedoch oft schon Lösungen. Oft kommt man leichter auf die Ursache, wenn man die Fehler in der .log-Datei nachschlägt.
Und schließlich gibts einerseits Suchmaschinen, die man einfach mal mit der Fehlermeldung füttern kann und dann Foren wie dieses hier ;) in denen man gut Tipps von Leuten erhalten kann, die das Problem bereits einmal gesehen haben.

Stefan

weaker
16-11-2008, 20:32
Gegoogelt hab ich natürlich, aber dann meist nur gefunden, wie ich die capacity hochsetzen kann. Und den Hinweis, dass es im Grunde wohl weniger mit der capacity selbst zu tun hat.

Die Frage ist: Woher weiß ich, dass das an hyperref liegt? Woher weiß ich, dass es um das PDF-Inhaltsverzeichnis geht und nicht um das gedruckte Inhaltsverzeichnis? Es waren in der Ausgabe ja keine Hinweise darauf. Zumindest keine, die mir ins Auge springt "hyperref error: problem hier" oder so.

Naja, LaTeX scheint auch doch viel mit Erfahrung zu tun zu haben.

Vielen Dank allen Helfern!

mechanicus
16-11-2008, 21:14
Naja, LaTeX scheint auch doch viel mit Erfahrung zu tun zu haben.

Hallo,

Erfahrungen sind gut. Ich selbst habe vor einem Jahr angefangen mein erstes Latex-Dokument zu erstellen. Dein Problem war deswegen leicht zu lösen, weil ich viel in Foren unterwegs bin und mir das eine oder andere anlese. Und dabei stößt man auf die häufigsten Probleme. Ich denke, wenn du deine erste große Arbeit mit Latex durch hast, dann ist dass alles nicht mehr so schlimm.

Ich wollte dir hiermit nur MUT machen.

Gruß
Marco

Stefan_K
16-11-2008, 21:32
Ich kann Marco nur zustimmen. Die Erfahrung kommt von allein. Auf dem Wege dahin wird einem von LaTeX-Nutzern gern geholfen, wie hier z.B.
Zur letzten Frage: Ursachen findet man durch Eingrenzen auch selbst, indem man z.B. eine Kopie des problematischen Dokumentes anlegt, nicht relevante Dokumentteile löscht und auch die Pakete in der Präambel schrittweise reduziert. Während dieses Löschens und dauernden Tests hat man das problematische Paket bald gefunden oder wenigstens eingegrenzt.

Stefan

weaker
16-11-2008, 21:51
Das schlimme ist ja, dass ich LaTeX schon seit 5 Jahren kenne (allerdings recht selten verwende). Jetzt mache ich die aber die erste richtig umfangreiche Arbeit damit.

@StefanK: Dass es was mit dem Inhaltsverzeichnis zu tun haben muss, war mir recht schnell klar, weil alles noch prima lief, als es in einem \paragraph steckte (tocdepth ist nicht so hoch), aber der Fehler kam, als es in einer \subsection landete. Und ohne das Zeichen hat auch alles geklappt. Aber der Gedankensprung, dass hyperref schuld sein könnte, war - obwohl eigentlich logisch - noch einen Schritt zu groß für mich. Allerdings ist hyperref ja generell ein Paket, mit dem es öfters Problemchen gibt, wenn man es an der falschen Stelle lädt usw.

Und ich weiß schon auch, dass man mit einem Minimalbeispiel oft weiterkommt. Das Problem ist nur, dass ich die sehr umfangreiche Vorlage von M. Pospiech verwende und selbst abwandle und ergänze. Da ein Minimalbeispiel zu bauen braucht recht viel Zeit und jemand anders hatte das gleiche Problem in aller Regel schon im vorhinein.

Die Fehlermeldungen richtig zu parsen ist noch ein wenig mein Problem mit LaTeX.

Viele Grüße
weaker