Fncychap mit scrbook Thema ist als GELÖST markiert

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


Phil90

Fncychap mit scrbook

Beitrag von Phil90 »

Hallo!

Ich habe ein problem entdeckt, welches mit dem Paket fncychap und scrbook auftritt. Ich habe als eine Komaoption parskip=half gesetzt, welche auf irgendeine Art und Weise die Anordnung der Objekte in der Überschrift verändern. Weiß jemand einen guten Fix für dieses Problem?

Minimalbeispiel:
\documentclass[parskip=half]{scrbook} % Vergleich: Parskip=false!
\usepackage[Conny]{fncychap}

\begin{document}
\chapter{Test Chapter}
\end{document}

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Da wird in der Umdefinition des Überschriftenlayouts offensichtlich \par nach den oberen Linien verwendet. Dadurch wird mit der Option parskip=half der Absatzabstand zwischen den beiden Linien eingefügt. Außerdem sorgt die Option dafür, dass am Ende der letzten Zeile eines Absatzes ein Leerraum von mindestens 1em eingefügt wird. Dadurch sind dann die Linien entsprechend kürzer.

Falls nur die Länge der Linien ein Problem ist, kannst du parskip=half- verwenden. Dann werden die Absatzenden nicht mehr durch Leerraum gekennzeichnet.
\documentclass[parskip=half-]{scrbook} % Vergleich: Parskip=false! 
\usepackage[Conny]{fncychap} 

\begin{document} 
\chapter{Test Chapter} 
\end{document} 

Der Unterschied zwischen half und half- (sowie zwei weiteren Varianten) ist ausführlich in der [URL=http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf]Dokumentation zu den KOMA-Script-Klassen[/url] erklärt.

Gruß
Elke

Phil90

Danke!

Beitrag von Phil90 »

Super! Ich war da auf der falschen Fährte.... Es macht natürlich sinn, dass das Absatzende dafür verantwortlich ist.

Für diesen Style funktioniert das jetzt. Wenn man allerdings "Glenn" verwendet, dann ist wirklich die Option "half" das Problem, egal, was man sonst einfügt.
\documentclass[parskip=never]{scrbook}

\usepackage[Glenn]{fncychap}
\usepackage{lipsum}

\begin{document}
\tableofcontents

\chapter{Test Chapter}
\lipsum[3-9]

\end{document}
Ich hatte erst vor die Definition von Chapter zu ergänzen, was aber nicht einfach war und meine derzeitige Kompetenz übersteigt. Gibt es da einen einfacheren Weg?

Phil90

Korrektur

Beitrag von Phil90 »

Mir ist gerade aufgefallen, dass mein Minimalbeispiel falsch war. Hier ist die richtige Variante, welche das Problem verursacht:
\documentclass[parskip=half-]{scrbook} % Vgl. mit "parskip=false"!

\usepackage[Glenn]{fncychap}
\usepackage{lipsum}

\begin{document}
\tableofcontents

\chapter{Test Chapter}
\lipsum[3-9]

\end{document}
 
 


Ich suche nach einer möglichkeit den parskip kurzzeitig auszuschalten, nur solange die Überschrift erzeugt wird.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4297
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

\documentclass[parskip=half]{scrbook} % Vgl. mit "parskip=false"!

\usepackage[Glenn]{fncychap}

\makeatletter
\def\@makechapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \parskip=0pt \raggedright \normalfont
    \ifnum \c@secnumdepth >\m@ne
      \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 040920
        \DOCH
      \fi
    \fi
    \interlinepenalty\@M
    \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 060424
      \DOTI{#1}%
    \else%
      \DOTIS{#1}%
    \fi
  }}
  
  
\def\@makeschapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \parskip=0pt \raggedright
    \normalfont
    \interlinepenalty\@M
    \DOTIS{#1}
    \vskip 40\p@
  }}  
  
\usepackage{lipsum}

\begin{document}
\tableofcontents

\chapter{Test Chapter}
\lipsum[3-9]

\end{document}

Gelöst!

Gelöst!

Beitrag von Gelöst! »

Vielen Dank!

Ich habe auch angefangen umzudefinieren, aber ich wollte \KOMAoptions{...} verwenden, was nicht geglückt ist. Deine Lösung hat auf jeden fall super funktioniert.

Ich glaube am Ende deiner Einfügung müsste nur noch \makeatother stehen, oder?
[/code]

Antworten