PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit selbst definiertem Verzeichnis



Puka
06-07-2006, 21:06
Hallo.
Ich wollte mir selbst ein Anlagenverzeichnis erstellen, da ich hier im Forum zu diesem Thema keine passende Lösung gefunden habe.
Als Basis nutze ich das tocloft Paket, welches eigentlich die Möglichkeit bietet, eigene Verzeichnis zu erstellen.
Nachdem ich eigentlich nur das Beispiel in der Doku zum Paket nachgebaut habe, bekomm ich immer eine Fehlermeldung.
Mein Bastelbeispiel sieht so aus:


\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{tocloft}
\newcommand{\listanlagenname}{Anlagenverzeichnis}
\newlistof[chapter]{Anlagen}{anl}{\listanlagenname}

\newcommand{\anlage}[1]{
\refstepcounter{Anlagen}
\par\noindent\textbf{Anlage \anlage. #1}
\addcontentsline{anl}{Anlagen}{\protect\numberline {\anlage}#1}\par}

\begin{document}
\listofAnlagen
\anlage{bla}
\end{document}

und die Fehlermeldung so, mit dem Verweis auf den rot gekennzeichneten Befehl


! TeX capacity exceeded, sorry [input stack size=1500].
<to be read again>
\reserved@b
l.25 \anlage{bla}

If you really absolutely need more capacity,
you can ask a wizard to enlarge me.


Here is how much of TeX's memory you used:
1340 strings out of 95518
16675 string characters out of 1189422
82175 words of memory out of 1083391
4464 multiletter control sequences out of 60000
5147 words of font info for 19 fonts, out of 500000 for 1000
14 hyphenation exceptions out of 607
1500i,7n,1001p,229b,8953s stack positions out of 1500i,500n,5000p,200000b,32768s
44 PDF objects out of 300000
0 named destinations out of 300000
1 words of extra memory for PDF output out of 65536
! ==> Fatal error occurred, the output PDF file is not finished!

Wie ich die Fehlermeldung deute, gibt es irgendwo Probleme mit irgendeinem Stackspeicher...Kann mir vielleicht jemand bei der Lösung dieses Problems helfen bzw. sagen, was ich falsch mache?
Danke

Martin

countbela666
06-07-2006, 21:39
Hallo Martin,


\newcommand{\anlage}[1]{
\refstepcounter{Anlagen}
\par\noindent\textbf{Anlage \anlage. #1}
\addcontentsline{anl}{Anlagen}{\protect\numberline {\anlage}#1}\par}dieser Code sieht mir verdammt nach einem rekursiv definierten Befehl aus: du rufst \anlage in seiner eigenen Definition mehrfach auf; dumm nur, dass es keine Abbruchbedingung gibt. Beim Aufruf terminiert der Befehl nicht und schreibt dir irgendwann den Stack voll...

Meinst du vielleicht das hier: :D

\newcommand{\anlage}[1]{
\refstepcounter{Anlagen}
\par\noindent\textbf{Anlage \theAnlagen. #1}
\addcontentsline{anl}{Anlagen}{\protect\numberline {\theAnlagen}#1}\par}Grüße,
Marcel

Puka
07-07-2006, 06:32
Hallo Marcel,
das funktioniert schon recht gut. Danke erstmal. Ich habe jetzt aber noch das Problem, dass die Überschriften folgendermaßen aussehen:
Anlage 0.1. bla1
Anlage 0.2. bla2
Anlage 0.3. bla3
Wenn mir jetzt vielleicht jemand sagen könnte, wie ich die Null und den darauffolgenden Punkt wegbekomme, wäre ich mehr als glücklich :-)
Ich habe schon das ein oder andere ausprobiert, finde aber keine Lösung. Mich wundert es sowieso, denn jetzt sieht der Quellcode eigentlich identisch dem in der Doku aus und dort wird keine Null gesetzt.
Hier nochmal mein Quellcode:


\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{tocloft}
\newcommand{\listanlagenname}{Anlagenverzeichnis}
\newlistof[chapter]{Anlagen}{anl}{\listanlagenname}

\newcommand{\anlage}[1]{
\refstepcounter{Anlagen}
\par\noindent\textbf{Anlage \theAnlagen. #1}
\addcontentsline{anl}{Anlagen}{Anlage \protect\numberline{\theAnlagen}#1}\par}

\begin{document}
\listofAnlagen
\anlage{bla1}
\anlage{bla2}
\anlage{bla3}
\end{document}

Danke

Martin

daswaldhorn
07-07-2006, 07:27
Hallo Martin,

den Punkt hast du doch selbst in deiner Defininition stehen ;)
Und die führende Null kam durch die Kopplung an chapter. So müsste es jetzt klappen:
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{tocloft}
\newcommand{\listanlagenname}{Anlagenverzeichnis}
\newlistof{Anlagen}{anl}{\listanlagenname} % [chapter] entfernt

\newcommand{\anlage}[1]{
\refstepcounter{Anlagen}
\par\noindent\textbf{Anlage \theAnlagen\ #1} % Punkt weg, dafür ein Leerzeichen
\addcontentsline{anl}{Anlagen}{Anlage \protect\numberline{\theAnlagen}#1}\par}

\begin{document}
\listofAnlagen
\anlage{bla1}
\anlage{bla2}
\anlage{bla3}
\end{document}Grüße, Carsten

Puka
07-07-2006, 11:18
Danke für den Tip.
Jetzt ist das ganze für meine Zwecke perfekt :-)
Da muss es aber in der Doku falsch beschrieben sein...
Quellcode und Ergebnis passen dort nicht zusammen.

Martin