Sie sind hier

titlesec und scrpage 2

Hallo,

folgendes Beispiel führt zu grauenhaften Fehlermeldungen ("texmf/tex/latex/koma-script/scrpage2.sty:165:Undefined control sequence. \def@onesidehead"):

\documentclass{article}
\usepackage{titlesec}
\usepackage{scrpage2}
%
\begin{document}
Here we (don't) go!
\end{document}

Der Fehler tritt bei alter (texlive 2007) und neuer titlesec-Version auf:

 *File List*
 article.cls    2005/09/16 v1.4f Standard LaTeX document class
  size10.clo    2005/09/16 v1.4f Standard LaTeX file (size option)
titlesec.sty    2007/08/12 v2.8 Sectioning titles
scrpage2.sty    2007/07/23 v2.2e LaTeX2e KOMA-Script package
 ***********
*File List*
 article.cls    2005/09/16 v1.4f Standard LaTeX document class
  size10.clo    2005/09/16 v1.4f Standard LaTeX file (size option)
titlesec.sty    2005/01/22 v2.6 Sectioning titles
scrpage2.sty    2007/07/23 v2.2e LaTeX2e KOMA-Script package

Muss ich mich an den Autor von titlesec halten? Der Fehler kann übrigens vermieden werden, wenn man scrpage2 vor titlesec lädt.

Gruß und Danke,
Alexander

forum: 
Bild von Markus Kohm

\def@onesidehead ist in scrpage2 definiert und wird von scrpage2 verwendet. Was titlesec alles fummelt, dass die eigentlich nicht weiter wilde Definition in scrpage2 nicht mehr funktioniert, kann ich Dir nicht sagen. Ich habe weder Zeit noch Lust, dem nachzulaufen. Ich kann nur vermute, dass titlesec zu irgendwelchen Expansionen führt, die es eigentlich nicht geben sollte.

Du kannst natürlich auch einfach die Reihenfolge der Pakete vertauschen.

Allerdings kann ich Dir auch nicht sagen, ob die Umdefinierungen von \markboth etc. in titlesec kompatibel mit scrpage2 sind. So definiert und verwendet scrpage2 ggf. auch \markleft, das natürlich von titlesec bei seinen Änderungen nicht berücksichtigt wird. Ich weiß nicht einmal, ob das nicht am Ende vielleicht sogar gut so ist.

Man muss sich bei der Verwendung von titlesec immer bewusst sein, dass es sehr tief in LaTeX eingreift. Da kann schon mal das Zusammenspiel mit mit dem eine oder andere Feature eines anderen Pakets oder einer Klasse, das sich ebenfalls mit Überschriften, Kolumnentitel oder Verzeichnissen befasst, auf der Strecke bleiben.

Ich habe Javier Bezos eine E-Mail geschrieben und werde über eine etwaige Antwort berichten.

Das Problem liegt für Leute wie mich darin, den Fehler zu finden, denn die Meldung selbst ist ja völlig nichtssagend.

Gruß,
Alexander

Bild von Markus Kohm

Mit scrpage2 tritt der beschriebene Fehler übrigens inzwischen nicht mehr auf. Verwendet man statt scrpage2 nun scrlayer-scrpage, was ich unbedingt empfehlen würde, tritt das Problem auf, dass titlesec auch eine Anweisung \newpagestyle definiert (was die meisten Anwender gar nicht wissen). Damit kann dann scrlayer-scrpage die darin enthaltene gleichnamige Anweisung nicht mehr definieren. Man muss sich nun entscheiden, welches \newpagestyle man haben will. Will man das von titlesec, so muss man es nach scrlayer-scrpage laden. Will man dagegen das von scrlayer-scrpage muss man dieses Paket mit Option forceoverwrite laden:

\documentclass{article}
\usepackage{titlesec}
\usepackage[forceoverwrite]{scrlayer-scrpage}
%
\begin{document}
Here we go!
\end{document}
Comments for "titlesec und scrpage 2" abonnieren