Hallo,

ich habe mir einen neuen Rechner gekauft und bereits MiKTeX und alles weitere eingerichtet. Leider kompiliert eines meiner Dokumente nicht. Ich konnte den Fehler auch schon isolieren, nur merkwürdigerweise tritt dieser auf meinem alten Rechner nicht auf. Ich weiß nicht was mir fehlt und werde aus der Fehlermeldung auch nicht schlau. Das MB kompiliert, solange ich nicht fncychap einbinde. Binde ich fncychap ein, erhalte ich folgende Fehlermeldung:

Open in writeLaTeX
Use of \@icentercr doesn't match its definition \tableofcontents

Im log file steht:

Open in writeLaTeX
! Use of \@icentercr doesn't match its definition.
<argument> \def
l.6 \tableofcontents
If you say, e.g., `\def\a1{...}', then you must always put `1' after `\a', since control sequence names are made up of letters only. The macro here has not been followed by the required stuff, so I'm ignoring it. ! Argument of \reserved@a has an extra }.

MiKTeX installiert bei mir alle Pakete onthefly, daher weiß ich wirklich nicht, woran es liegen könnte, insbesondere deshalb, weil genau dasselbe Dokument auf meinem alten Rechner ja kompiliert wird. Vielen Dank schonmal für die Hilfe.

Open in writeLaTeX
\documentclass{scrbook}
%\usepackage[Glenn]{fncychap}

\begin{document}
    \frontmatter
        \tableofcontents

    \mainmatter
    \chapter{First}
    \section{Introduction}
    Hello.
    \section{Second Section}
    Good bye.
\end{document}

gefragt 26 Jan '15, 11:43

josephine's gravatar image

josephine
944253035
Akzeptiert-Rate: 0%

bearbeitet 26 Jan '15, 20:50

cgnieder's gravatar image

cgnieder
22.1k253463

Das funktioniert in overleaf problemlos, genauso mit meiner MikTex-Installation. Hast Du mal ein Update der packages gemacht (Admin & User)?

(26 Jan '15, 13:08) BraBra
1

@BraBra Während Overleaf derzeit noch die KOMA-Script Version 3.12 nutzt, hat @josephine vermutlich eine neuere. Zumindest bekomme ich mit der aktuellen Version 3.15 die gleiche Fehlermeldung.

(26 Jan '15, 13:50) esdd

@esdd Vermutlich hab ich die neuste KOMA-Script Version, da ich erst heute versucht habe, das Dokument zu kompilieren. Da MikTex on the fly nachinstalliert, habe ich wahrscheinlich die neuste Version. Könnte ich eine ältere Version installieren, damit ich zumindest mal das Dokument kompilieren kann? Falls ja, wie müsste man das machen?

(26 Jan '15, 16:35) josephine

@BraBra Ich habe für die Packages updates gemacht, aber das hat nicht geholfen.

Außerdem habe ich gerade mal einige Optionen des Pakets durchprobiert und festgestellt, dass einige funktionieren und andere wiederum nicht. Folgende Optionen funktionieren: Sonny, Lenny, Bjornstrup. Diese hier funktionieren nicht: Glenn, Conny, Rejne, Bjarne. Meine alte Formatierung über Glenn ist natürlich bei denjenigen dabei, die nicht funktionieren;( Tja, jetzt weiß ich auch nicht mehr weiter.

(26 Jan '15, 20:01) josephine

Offenbar hat das Paket fncychap einen Bug. Bereits

Open in writeLaTeX
\documentclass{book}
\usepackage[Glenn]{fncychap}
\begin{document}
\tableofcontents
\end{document}

produziert genau denselben Fehler. Da das Problem also auch mit einer Standardklasse auftritt, ist es wohl kein Fehler von KOMA-Script.

Mir scheint, fncychap kommt mit \chapter*{Test\markboth{Test}{Test}} nicht klar. Es ist wohl eher ein glücklicher Zufall, wenn es mit einer älteren Version von KOMA-Script trotzdem funktioniert. Fast ebenso zufällig scheint das ganze zu funktionieren, wenn man \protect vor \markboth setzt. Dass das notwendig ist, ist einigermaßen erstaunlich, denn eigentlich sind die Argumente der Sternvariante der Gliederungsbefehle keine moving arguments und eigentlich ist \markboth auch nicht sooo zerbrechlich. Wie dem auch sei, wenn die Lösung darin besteht, \markboth ein \protect voran zu stellen, dann funktioniert derzeit (also wieder eher zufällig):

Open in writeLaTeX
\documentclass{scrbook}
\usepackage[Glenn]{fncychap}

\makeatletter
\BeforeTOCHead[toc]{%
  \ifx\@mkboth\@gobbletwo\else\def\@mkboth{\protect\markboth}\fi}
\makeatother

\begin{document}
   \frontmatter
        \tableofcontents

    \mainmatter
    \chapter{First}
    \section{Introduction}
    Hello.
    \section{Second Section}
    Good bye.
\end{document}

Der Trick dabei ist, dass KOMA-Script im Inhaltsverzeichnis nicht wirklich \markboth, sondern \@mkboth verwendet. Das kann man dann mit Hilfe von \BeforeTOCHead im Inhaltsverzeichnis noch vor der Ausgabe der Überschrift so umdefinieren, dass es nicht \markboth, sondern \protect\markboth verwendet.

Ist natürlich nur ein Hack. Besser wäre, wenn man den Bug in fncychap beseitigen würde. Am besten schreibst Du einen Bugreport an den Autor. Du kannst gerne mein 5-Zeilen-Minimalbeispiel vom Anfang dieser Antwort verwenden.

Es sei außerdem darauf hingewiesen, dass mit fncychap natürlich diverse Features von KOMA-Script bezüglich der Überschriften nicht funktionieren.

Permanenter link

beantwortet 26 Jan '15, 22:16

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 26 Jan '15, 22:50

Johannes's gravatar image

Johannes
7.3k294566

@saputello Vielen Dank. Das hat man davon, wenn man KOMA-Script an die Wäsche geht;) Ich werde mich mal an den Autor von fncychap wenden.

(28 Jan '15, 22:51) josephine
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×78
×2

gestellte Frage: 26 Jan '15, 11:43

Frage wurde gesehen: 8,362 Mal

zuletzt geändert: 28 Jan '15, 22:52