Error "Undefined control sequence. \chapter"

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Error "Undefined control sequence. \chapter"

Re: Error "Undefined control sequence. \chapter"

von ich meine ja nur » Mo 29. Aug 2022, 09:57

Da dir englische Seiten offenbar näher liegen, hier noch der Link zu der passenden Seite im KOMA-Script-Wiki: https://sourceforge.net/p/koma-script/wiki-en/HowTo_ChapterWithLines/. Für die deutsche Version einfach wiki-en durch wiki-de ersetzen. Das funktioniert bei allen Seiten in diesem Wiki so. Dort die eine oder andere Linie einfach auszukommentieren oder noch hinzu zu fügen, dürfte nicht das große Problem sein. Wenn doch, dann stelle am besten eine Frage Abschnitt KOMA-Script. Dort liest der Autor AFAIK mit. Hier übersieht er es hingegen möglicherweise. Wie das mit dem vollständigen Minimalbeispiel geht, habe ich dir ja oben gezeigt und kannst du auch an den Beispielen im KOMA-Script-Wiki sehen. Dort gibt es allerdings keinen Online-Editor/Compiler.

Achso: Die Fehlermeldung aus dem Betreff gibt es übrigens weder bei dem Bastelbeispiel aus deinem zip noch bei einem Minimalbeispiel in meinen Beiträgen. Der ist also inzwischen recht irreführend. :|

Re: Error "Undefined control sequence. \chapter"

von BleenPaper » Mo 29. Aug 2022, 09:52

Merke ich mir fürs nächste mal, Danke dir vielmals!

Re: Error "Undefined control sequence. \chapter"

von ich meine ja nur » Mo 29. Aug 2022, 09:14

Oh, für die tatsächliche Lösung muss es natürlich:
\documentclass[chapterprefix]{scrreprt}

% Changes the chapter mark in the header to "Chapter #:" instead
% of "Chapter #":
\renewcommand*{\chaptermarkformat}{\chapapp\nobreakspace\thechapter:\enskip}

% Create Chapter Headings separated by a line and with upper case prefix line.
\iffalse % change to \iftue to see the issue instead of a possible solution
% OLD: Code with \MakeUppercase issue
\usepackage{ifthen}% The old code uses package ifthen, which is not really
                   % needed, because KOMA-Script provides \IfArgIsEmpty
                   % and alternatively \Ifstr. However, we use the
                   % original code and therefore have to load the package.
\renewcommand{\chapterlineswithprefixformat}[3]{%
   % if the chapter is unnumbered (prefix is empty)
   \ifthenelse{\equal{#2}{}}%
   % then only show the title text
   {#3}%
   % else if chapter is numbered
   {%
      % set numeration in uppercase letters right-aligned
      {\raggedleft \MakeUppercase{#2}}\nobreak
      % create a line spanning the whole page
      \rule[.5\baselineskip]{\textwidth}{0.4pt}\\*
      % insert the title text
      #3
   }%
}
\else
% NEW: Code without \MakeUppercase issue and several improvements.
\renewcommand*{\chapterformat}{\MakeUppercase{\chapapp~\thechapter\autodot}}% Uppercase prefix and number
\renewcommand{\chapterlineswithprefixformat}[3]{%
   % if the chapter is unnumbered (prefix is empty)
   \IfArgIsEmpty{#2}% Das zweite Argument ist ggf. die Nummer oder leer!
   {#3}% then only show the title text
   {% else if chapter is numbered
      % set numeration right-aligned
      {\raggedleft #2\par}\nobreak
      % create a line spanning the whole page
      \raggedchapter\noindent% \noindent only needed, if \raggedchapter is empty
      \rule[.5\baselineskip]{\textwidth}{0.4pt}\par\nobreak
      #3% last but not least the title text (with optionally additional formatting
   }%
}
\fi

\usepackage{blindtext}% Useful for small demonstration documents.

\begin{document}
\tableofcontents
\blinddocument
\end{document}
heißen. Man beachte die Änderung bei \IfArgIsEmpty. Das betrifft auch das erste Beispiel. Ich wollte das aber nicht noch einmal posten.

Re: Error "Undefined control sequence. \chapter"

von ich meine ja nur » Mo 29. Aug 2022, 09:09

Minimalbeispiele als Anhang sind suboptimal, weil sie nicht direkt im Online-Editor/Compiler verarbeitet werden können. Außerdem ist das Beispiel nicht ohne Änderung lauffähig, weil ein Kommentar ohne % am Zeilenanfang daher kommt. Der OLD-Teil ist ohnehin nicht funktionsfähig, weil er ein Paket verwendet, das nicht geladen wird. Hier zur Demonstration einmal, wie das gleiche als echtes Minimalbeispiel (verlinkte Anleitung beachten!) realisierbar wäre:
% First we generate the class from within the minimal working example
% using the filecontents environment as explained in
% <https://texwelt.de/fragen/569>.
\begin{filecontents}[force]{test-class.cls}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{fooClass}[]
\LoadClass{scrreprt}[]
\KOMAoptions{chapterprefix=true}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Changes the chapter mark in the header to "Chapter #:" instead
% of "Chapter #":
\renewcommand*{\chaptermarkformat}{\chapapp\nobreakspace\thechapter:\enskip}

% Create Chapter Headings separated by a line and with upper case prefix line.
\iftrue % change this to \iffalse to see a possible solution of the problem
% OLD: Code with \MakeUppercase issue
\RequirePackage{ifthen}% The old code uses package ifthen, which is not really
                       % needed, because KOMA-Script provides \IfArgIsEmpty
                       % and alternatively \Ifstr. However, we use the
                       % original code and therefore have to load the package.
\renewcommand{\chapterlineswithprefixformat}[3]{%
   % if the chapter is unnumbered (prefix is empty)
   \ifthenelse{\equal{#2}{}}%
   % then only show the title text
   {#3}%
   % else if chapter is numbered
   {%
      % set numeration in uppercase letters right-aligned
      {\raggedleft \MakeUppercase{#2}}\nobreak
      % create a line spanning the whole page
      \rule[.5\baselineskip]{\textwidth}{0.4pt}\\*
      % insert the title text
      #3
   }%
}
\else
% NEW: Code without \MakeUppercase issue and several improvements.
\renewcommand*{\chapterformat}{\MakeUppercase{\chapapp~\thechapter\autodot}}% Uppercase prefix and number
\renewcommand{\chapterlineswithprefixformat}[3]{%
   % if the chapter is unnumbered (prefix is empty)
   \IfArgIsEmpty{#1}%
   {#3}% then only show the title text
   {% else if chapter is numbered
      % set numeration right-aligned
      {\raggedleft #2\par}\nobreak
      % create a line spanning the whole page
      \raggedchapter\noindent% \noindent only needed, if \raggedchapter is empty
      \rule[.5\baselineskip]{\textwidth}{0.4pt}\par\nobreak
      #3% last but not least the title text (with optionally additional formatting
   }%
}
\fi
\end{filecontents}
% Now let's use it.
\documentclass{test-class}
\usepackage{blindtext}% Useful for small demonstration documents.

\begin{document}
\tableofcontents
\blinddocument
\end{document}
Aber genau genommen ist hier der Umweg über eine Wrapper-Klasse für scrreprt überhaupt nicht notwendig. Stattdessen würde:
\documentclass[chapterprefix]{scrreprt}

% Changes the chapter mark in the header to "Chapter #:" instead
% of "Chapter #":
\renewcommand*{\chaptermarkformat}{\chapapp\nobreakspace\thechapter:\enskip}

% Create Chapter Headings separated by a line and with upper case prefix line.
\iftrue % change to \iffalse to see a possible solution of the problem
% OLD: Code with \MakeUppercase issue
\usepackage{ifthen}% The old code uses package ifthen, which is not really
                   % needed, because KOMA-Script provides \IfArgIsEmpty
                   % and alternatively \Ifstr. However, we use the
                   % original code and therefore have to load the package.
\renewcommand{\chapterlineswithprefixformat}[3]{%
   % if the chapter is unnumbered (prefix is empty)
   \ifthenelse{\equal{#2}{}}%
   % then only show the title text
   {#3}%
   % else if chapter is numbered
   {%
      % set numeration in uppercase letters right-aligned
      {\raggedleft \MakeUppercase{#2}}\nobreak
      % create a line spanning the whole page
      \rule[.5\baselineskip]{\textwidth}{0.4pt}\\*
      % insert the title text
      #3
   }%
}
\else
% NEW: Code without \MakeUppercase issue and several improvements.
\renewcommand*{\chapterformat}{\MakeUppercase{\chapapp~\thechapter\autodot}}% Uppercase prefix and number
\renewcommand{\chapterlineswithprefixformat}[3]{%
   % if the chapter is unnumbered (prefix is empty)
   \IfArgIsEmpty{#1}%
   {#3}% then only show the title text
   {% else if chapter is numbered
      % set numeration right-aligned
      {\raggedleft #2\par}\nobreak
      % create a line spanning the whole page
      \raggedchapter\noindent% \noindent only needed, if \raggedchapter is empty
      \rule[.5\baselineskip]{\textwidth}{0.4pt}\par\nobreak
      #3% last but not least the title text (with optionally additional formatting
   }%
}
\fi

\usepackage{blindtext}% Useful for small demonstration documents.

\begin{document}
\tableofcontents
\blinddocument
\end{document}
vollkommen genügen. Bei beiden Beispielen kann man direkt im Online-Editor das \iftrue in \iffalse ändern, um statt des Problems eine mögliche Lösung zu testen. Das ist also ein klarer Vorteil gegenüber irgendwelchen Bastel-Archiven. Dazu wäre ich sogar unterwegs in der Bahn mit meinem Tablet in der Lage gewesen, statt erst jetzt im Büro.

Und wie bereits gesagt: Für Linien in Überschriften hat der KOMA-Script-Autor mehrere Vorschläge im KOMA-Script-Wiki.

Re: Error "Undefined control sequence. \chapter"

von BleenPaper » So 28. Aug 2022, 23:04

Soweit kann die Klasse mit deinem Ersatzcode genutzt werden, es treten keine Fehler auf.

Habe mal ein Minimalbeispiel gebaut, das hoffentlich minimal genug ist ^^. Beim Ausprobieren muss einer der beiden Abschnitte OLD und NEW gelöscht werden. Wenn OLD stehen bleibt, kann das PDF nicht gebaut werden und steckt während des Bauvorgangs fest. Wenn NEW (der Code von dir) stehen bleibt, baut das PDF. Ich hoffe, das ist bei dir reproduzierbar - wenn nicht würde ich es so stehen lassen und bin froh, dass soweit alles läuft :).
Dateianhänge
fooClass.zip
(978 Bytes) 108-mal heruntergeladen

Re: Error "Undefined control sequence. \chapter"

von ich meine ja nur » Sa 27. Aug 2022, 16:36

Das Problem ist das \MakeUppercase, das bei aktuellen LaTeX anders definiert ist als früher und deshalb an der Stelle nicht (mehr) funktioniert. Funktionieren dürfte (mangels Minimalbeispiel ungetestet):
\renewcommand*{\chapterformat}{\MakeUppercase{\chapapp~\thechapter\autodot}}
\renewcommand{\chapterlineswithprefixformat}[3]{%
   % if the chapter is unnumbered (prefix is empty)
   \IfArgIsEmpty{#1}%
   {#3}% then only show the title text
   { % else if chapter is numbered
      % set numeration right-aligned
      {\raggedleft #2\par}\nobreak
      % create a line spanning the whole page
      \raggedchapter\noindent
      \rule[.5\baselineskip]{\textwidth}{0.4pt}\par\nobreak
      % insert the title text
      #3
   }%
}
Ich würde das mit dem \MakeUppercase aber vermeiden. Automatischer Versalsatz ist eigentlich fast immer schlecht. Siehe auch: Tschicholds Hauptregeln der Typografie.

Ich glaube, der KOMA-Script-Autor hat ganz ähnliche Stile auch im KOMA-Script Wiki. Schau ggf. lieber dort.

Re: Error "Undefined control sequence. \chapter"

von BleenPaper » Sa 27. Aug 2022, 14:10

Wenn ich später Zeit finde schreibe ich vielleicht mal ein wirkliches Minimalbeispiel, bei welchem du oder andere das reproduzieren könnt.

Re: Error "Undefined control sequence. \chapter"

von BleenPaper » Sa 27. Aug 2022, 14:06

Das stimmt, mein Minimalbeispiel war nicht korrekt bzw. nicht vergleichbar mit meinem tatsächlichen Problem - das war mein Fehler. Das Beispiel müsste auf dem scrreport basieren, damit tritt aber kein Fehler auf und alles kompiliert korrekt.

Das das Template scheint wirklich nicht auf dem aktuellsten Stand zu sein, letztes Update ist ca. zwei Jahre her. Ich habe leider nicht die Zeit und Lust das zu überarbeiten, wenn es nicht unbedingt notwendig ist :').

Ich konnte das Problem zum Glück inzwischen durch stückweises löschen der Template Klasse auf einen Codeabschnitt eingrenzen. Wenn ich den folgenden Abschnitt lösche, kompilieren alle Dateien problemlos.
% Configuration of the Chapter Headings --------------------------
% Disable dots after section numbers
\KOMAoptions{numbers=nodotatend}
% Add one additional line over chapters saying "Chapter #"
\KOMAoptions{chapterprefix=true}
% Changes the chapter mark in the header to "Chapter #:" instead of
% "Chapter #"
\renewcommand*{\chaptermarkformat}{%
   \chapapp\nobreakspace\thechapter:\enskip%
}
% Create Chapter Headings separated by a line
\renewcommand{\chapterlineswithprefixformat}[3]{%
   % if the chapter is unnumbered (prefix is empty)
   \ifthenelse{\equal{#2}{}}%
   % then only show the title text
   {#3}%
   % else if chapter is numbered
   {%
      % set numeration in uppercase letters right-aligned
      {\raggedleft \MakeUppercase{#2}}\nobreak
      % create a line spanning the whole page
      \rule[.5\baselineskip]{\textwidth}{0.4pt}\\*
      % insert the title text
      #3
   }%
}
Ich kann damit aktuell nicht viel anfangen - kannst du anhand dessen erkennen, warum der "\chapter" command nicht funktioniert? Wenn du die Zeit hast freue ich mich über eine kurze Erklärung, sonst werde ich mich auch mal oberflächlich in die Klassenerstellung einarbeiten und versuchen das zu verstehen :].

Danke dir auf jeden Fall - es hat mir schonmal geholfen zu wissen, woran es alles nicht liegt!

Re: Error "Undefined control sequence. \chapter"

von ich meine ja nur » Sa 27. Aug 2022, 13:51

BleenPaper hat geschrieben:
Sa 27. Aug 2022, 11:27
Nichtsdestotrotz besteht das Problem tatsächlich, das Template erbt (?) von scrreport ("\LoadClass{scrreprt}[2015/10/03]") und hängt beim Compilieren von eingebundenen Kapiteln, die "\chapter" beinhalten.
Das passt aber nicht zu deinem obigen Beispiel. Dort wird keine Klasse verwendet, die auf scrreprt basiert, sondern article.

Ohne tatsächliches vollständiges Minimalbeispiel, mit dem wir das Problem reproduzieren können, könne wir dir nicht sagen, was da schief läuft. Wir können dir aber sagen, dass leider sehr viele Templates, die man im Internet findet oder die an Universitäten verteilt werden, total veraltet und schlecht gemacht sind. Für einen besseren Einstieg → Wie eine Dokumentvorlage auf Basis von KOMA-Script aussehen könnte oder How to make a document template based on KOMA-Script.

Re: Error "Undefined control sequence. \chapter"

von BleenPaper » Sa 27. Aug 2022, 11:27

Danke für die wirklich schnelle Antwort und sorry für die Anfängerfehler :') - da werde ich mir definitv mal ein paar Tutorials reinziehen müssen.

Nichtsdestotrotz besteht das Problem tatsächlich, das Template erbt (?) von scrreport ("\LoadClass{scrreprt}[2015/10/03]") und hängt beim Compilieren von eingebundenen Kapiteln, die "\chapter" beinhalten. Das hängen tritt nicht auf, wenn ich in den .tex Dateien das "\chapter" durch "\section" ersetze :(.

Nach oben