PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Konflikt zwischen \section und \addtocontents



vflocke
08-07-2012, 21:02
Ich würde gerne mit \addtocontents eine Zeile am Ende meines Inhaltsverzeichnises hinzufügen. Ich erhalte aber eine Fehlermeldung, wenn ich den Befehl \addtocontents nach dem ersten Befehl \section{} einfüge. Meine Präambel sieht wie folgt aus:

\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{geometry}
\geometry{letterpaper}

\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{epstopdf}
\DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .tif`.png}
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{}
\chead{}
\rhead{}
\lfoot{}
\cfoot{}
\rfoot{\thepage}
\usepackage[table]{xcolor}
\usepackage{natbib}
\usepackage{stmaryrd}
\usepackage{MnSymbol}
\usepackage{ngerman}
\usepackage{csquotes}
\usepackage[all,color]{xy}
\usepackage{tocloft}
\usepackage{ gensymb }
\usepackage{tipa}
\usepackage{ marvosym }

\begin{document}



Wenn ich den Befehl \addtocontents wie folgt einfüge gibt es keine Probleme:

\setcounter{tocdepth}{2}
\renewcommand{\contentsname}{Contents}
\tableofcontents
\addtocontents{toc}{\contentsline {section}{\textnormal{\textit{Acknowledgements}}}{ \normalfont{4}}}



\rhead{Contents}

\newpage

\section*{Acknowledgements}



Wenn ich den Befehl \addtocontents aber wie folgt einfüge gibt es eine Fehlermeldung:


\setcounter{tocdepth}{2}
\renewcommand{\contentsname}{Contents}
\tableofcontents




\rhead{Contents}

\newpage

\section*{Acknowledgements}

\addtocontents{toc}{\contentsline {section}{\textnormal{\textit{Acknowledgements}}}{ \normalfont{4}}}


Die Fehlermeldung, die ich erhalte, ist:

[1])

Package Fancyhdr Warning: \headheight is too small (12.0pt):
Make it at least 13.59999pt.
We now make it that large for the rest of the document.
This may cause the page layout to be inconsistent, however.

[2])

! Incomplete \iffalse; all text was ignored after line 68.
<inserted text> \fi
<*>Quantifier_Variacne_final.tex

?


Weiß jemand eine Lösung? Danke! Vera

hakaze
09-07-2012, 09:46
Die Warnung von fancyhdr bekomme ich auch, die ist aber nicht kritisch.

Die zweite Fehlermeldung scheint von irgendetwas anderem verursacht zu werden, aber nicht von den von dir geposteten Codeschnipseln.

Hier ist mal ein (entschlackter) Gegenvorschlag für die Benutzung von addcontentsline und Kopfzeilen:
\documentclass[11pt]{article}
% diese Pakete reichen!!! Selbst geometry ist vernachlässigbar für das Problem.
\usepackage{geometry}
\geometry{letterpaper}
\usepackage[american]{babel} % englische Trennung und Bezeichnungen, u.a. Contents fürs Inhaltsverz.
\usepackage{lipsum} % lorem ipsum Blindtext

\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{}
\chead{}
\rhead{\leftmark} % automatische Markierung in der Kopfzeile
\lfoot{}
\cfoot{}
\rfoot{\thepage}

\begin{document}

\setcounter{tocdepth}{2}
\tableofcontents

\newpage
\markboth{\uppercase{Acknowledgements}}{} % für Kopfzeile
\addcontentsline{toc}{section}{Acknowledgements} % für Eintrag im TOC
\section*{Acknowledgements}

Thanks to mrunix.de \dots

\clearpage

\section{Normal section}
\lipsum

\section{Another section}
\lipsum[1]

\end{document}Damit wird die Kopfzeile auch im Inhaltsverzeichnis richtig angezeigt. das Paket tocloft überschreibt dies und stellt den pagestyle auf plain im TOC. Da muss man eventuell gegensteuern:
\clearpage
\pagestyle{fancyhdr}
\tableofcontents

u_fischer
09-07-2012, 09:54
Wenn ich den Befehl \addtocontents wie folgt einfüge gibt es keine Probleme:

Doch gibt es schon. Wenn du in die log-Datei schaust, wird du sowas finden:


(\end occurred when \iftrue on line 48 was incomplete)
(\end occurred when \ifnum on line 48 was incomplete)

Du hast einfach nur Glück, dass es nicht explodiert.

Benutze lieber


\addcontentsline{toc}{section}{\normalfont\itshape Acknowledgements}

Wenn du unbedingt \addtocontents benutzen willst, musst den \contentsline-Befehl schützen. Du solltest auch ein weiteres Argument anhängen, damit der der Kram nicht um die Ohren fliegt, wenn du mal hyperref benutzt. Außerdem ist es albern, die Seitenzahl manuel einzutragen:


\addtocontents{toc}{\protect\contentsline {section}{\normalfont\itshape Acknowledgements}{\thepage}{}}

vflocke
11-07-2012, 18:20
Perfekt, danke! Was mein Problem gelöst hat war deine letzte Bemerkung: "du musst den \contentsline-Befehl schützen". Jetzt läuft alles gut!