includefoot nur für Kapitelseiten

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: includefoot nur für Kapitelseiten

von Besserwisser » Mo 16. Nov 2015, 07:57

Man könnte bei dem Patch, natürlich einfach einen String-Vergleich verwenden, der vor dem Vergleich expandiert, beispielsweise das von KOMA-Script mitgelieferte \ifstr:
\documentclass[a4paper,11pt,twoside,openright,pdftex]{scrbook}
\usepackage[showframe]{geometry}
\geometry{a4paper,left=1.0in,right=1.0in,top=1.0in,bottom=1.0in,
   includehead,
%includefoot
}

\usepackage{etoolbox}
%\patchcmd{\chapter}
% {\thispagestyle{\chapterpagestyle}}
% {\thispagestyle{\chapterpagestyle}\enlargethispage{-5cm}}%was auch immer
% {\message{patching chapter}}
% {\message{patching chapter failed!!}}
%
\apptocmd\thispagestyle{%
 \ifstr{#1}{plain}{\enlargethispage{-5cm}}{}}
 {\message{patching thispagestyle}}
 {{\message{patching thispagestyle failed!!}}}
 
 

 
\usepackage{blindtext}
\usepackage{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{\headmark}
\ohead{\pagemark}
\cfoot[\pagemark]{}
\addtokomafont{pagenumber}{\small\scshape}

\begin{document}

\chapter{Minimalbeispiel}
\Blindtext
\Blindtext
\section{Kleiner Test}
\Blindtext

\end{document}
So hat man das Problem nicht, dass es eine Rolle spielt, wie tief das Argument von \thispagestyle in Makros verpackt ist. Patchen bedeutet aber immer, dass man das Risiko eingeht, dass es irgendwann nicht mehr funktioniert, weil man sich auf Interna verlässt.

Außerdem hat das Patchen von \thispagestyle mit dem Vergleich auf Seitenstil plain gleich zwei Probleme. Zum einen werden dadurch nicht Kapitelanfangsseiten verkürzt, sondern Seiten mit dem Seitenstil plain. Ändert man den Seitenstil von Kapitelanfangsseiten, dann muss man den Patch ändern. Das könnte man ändern, indem man auf den Stil von Kapitelanfangsseiten prüft:
\apptocmd\thispagestyle{%
 \ifstr{#1}{\chapterpagestyle}{\enlargethispage{-5cm}}{}}
 {\message{patching thispagestyle}}
 {{\message{patching thispagestyle failed!!}}}
Das hat außerdem den Vorteil, dass wenn man Alias-Seitenstile nutzt, wie sie von dem von Dir verwendeten scrlayer-scrpage bereitgestellt werden, tatsächlich auf den Seitenstil geprüft wird, der für Kapitelanfangsseiten an \thispagestyle übergeben wird, aber andere Namen für denselben Seitenstil ignoriert. Warum ist das ein Vorteil? Dazu komme ich jetzt.

Es ja noch das zweite Problem, dass u. U. nicht nur Kapitelanfangsseiten diesen Seitenstil (im Beispiel plain) verwenden. Wenn du irgend eine andere Seite hast, die aus irgend einem Grund denselben Seitenstil per \thispagestyle gesetzt hat, dann wird diese ebenfalls verkürzt. Wenn die Verkürzung also wirklich nur für die Kapitelanfangsseiten gelten soll und man über den Seitenstil patchen will, dann wäre es in der Tat geschickt, einen Alias-Seitenstil für Kapitelanfänge zu definieren, der wirklich nur für Kapitelanfänge verwendet wird:
\documentclass[a4paper,11pt,twoside,openright,pdftex]{scrbook}
\usepackage[showframe]{geometry}
\geometry{a4paper,left=1.0in,right=1.0in,top=1.0in,bottom=1.0in,
   includehead,
%includefoot
}

\usepackage{etoolbox}
%\patchcmd{\chapter}
% {\thispagestyle{\chapterpagestyle}}
% {\thispagestyle{\chapterpagestyle}\enlargethispage{-5cm}}%was auch immer
% {\message{patching chapter}}
% {\message{patching chapter failed!!}}
%
\apptocmd\thispagestyle{%
 \ifstr{#1}{\chapterpagestyle}{\enlargethispage{-5cm}}{}}
 {\message{patching thispagestyle}}
 {{\message{patching thispagestyle failed!!}}}

\usepackage{mwe} 
\usepackage{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{\headmark}
\ohead{\pagemark}
\cfoot[\pagemark]{}
\addtokomafont{pagenumber}{\small\scshape}

\DeclarePageStyleAlias{chapter}{plain}
\renewcommand*{\chapterpagestyle}{chapter}

\begin{document}

\chapter{Minimalbeispiel}
\Blindtext
\Blindtext
\section{Kleiner Test}
\Blindtext

\clearpage
Ich habe hier eine Seite auf der aus irgendwelchen Gründen ebenfalls
Seitenstil \texttt{plain} verwendet wird, aber die nicht verkürzt werden soll.
\thispagestyle{plain}
\lipsum[1-5]
\blindtext

\end{document}
Alternativ – und das ist der Weg, den ich gehen würde – könnte man sich vom Seitenstil lösen und tatsächlich Kapitelanfangsseiten patchen:
\documentclass[a4paper,11pt,twoside,openright,pdftex]{scrbook}
\usepackage[showframe]{geometry}
\geometry{a4paper,left=1.0in,right=1.0in,top=1.0in,bottom=1.0in,
   includehead,
%includefoot
}

\usepackage{etoolbox}
\apptocmd\chapterheadendvskip{\enlargethispage{-5cm}}
 {\message{patching chapter starts}}
 {{\message{patching chapter starts failed!!}}}

\usepackage{mwe} 
\usepackage{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{\headmark}
\ohead{\pagemark}
\cfoot[\pagemark]{}
\addtokomafont{pagenumber}{\small\scshape}

\begin{document}

\chapter{Minimalbeispiel}
\Blindtext
\Blindtext
\section{Kleiner Test}
\Blindtext

\clearpage
Ich habe hier eine Seite auf der aus irgendwelchen Gründen ebenfalls
Seitenstil \texttt{plain} verwendet wird, aber die nicht verkürzt werden soll.
\thispagestyle{plain}
\lipsum[1-5]
\blindtext

\end{document}
Bei diesem Patch ist nur eines zu beachten: Neuerdings erlaubt KOMA-Script weitere Gliederungsbefehle im Stil chapter zu definieren. Wenn man das macht, dann sind auch diese von dem Patch betroffen. Ich gehe aber davon aus, dass das dann tatsächlich auch gewünscht ist.

von Bananarama » So 15. Nov 2015, 22:31

Noch eine abschließende Frage:

Wie stell ich nun sicher, dass mir dieses Layout erhalten bleibt? LaTeX nicht mehr updaten? Oder gibts noch eine weitere Lösung?

von Bananarama » So 15. Nov 2015, 22:27

Du bist die aller Beste :D
Vielen lieben Dank!

von u_fischer » So 15. Nov 2015, 22:23

KOMA versteckt den Namen jetzt in einem weiteren Befehl, also müsste man zweimal expandieren. Versuchs mal hiermit:
\apptocmd\thispagestyle{%
 \edef\myarg{#1}%
 \expandafter\ifstrequal\expandafter{\myarg}{plain}{\enlargethispage{-5cm}}{}}
 {\message{patching thispagestyle}}
 {{\message{patching thispagestyle failed!!}}}

von Bananarama » So 15. Nov 2015, 20:53

Hallo u_fischer,

lange ist es her, dass du mir deine ausgezeichnete Lösung zur Verfügung gestellt hast. Es hat wunderbar geklappt! Jetzt wollte ich ein neues Dokument mit gleichem Layout beginnen und musste feststellen, dass die Lösung
u_fischer hat geschrieben:Du solltest das Layout so definieren, dass es für normale Seiten richtig ist. Kapitelseiten kannst du dann kürzen, indem du \chapter oder \thispagestyle patchst (zweiteres ist logischer, aber wegen der komplizierten Wege, die pagestsyle-Namen in KOMA gehen, nicht ganz so einfach):
\documentclass[a4paper,11pt,twoside,openright,pdftex]{scrbook}
\usepackage[showframe]{geometry}
\geometry{a4paper,left=1.0in,right=1.0in,top=1.0in,bottom=1.0in,
   includehead,
%includefoot
}

\usepackage{etoolbox}
%\patchcmd{\chapter}
% {\thispagestyle{\chapterpagestyle}}
% {\thispagestyle{\chapterpagestyle}\enlargethispage{-5cm}}%was auch immer
% {\message{patching chapter}}
% {\message{patching chapter failed!!}}
%
\apptocmd\thispagestyle{%
 \expandafter\ifstrequal\expandafter{#1}{plain}{\enlargethispage{-5cm}}{}}
 {\message{patching thispagestyle}}
 {{\message{patching thispagestyle failed!!}}}
 
 

 
\usepackage{blindtext}
\usepackage{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{\headmark}
\ohead{\pagemark}
\cfoot[\pagemark]{}
\addtokomafont{pagenumber}{\small\scshape}

\begin{document}

\chapter{Minimalbeispiel}
\Blindtext
\Blindtext
\section{Kleiner Test}
\Blindtext

\end{document} 
nun nicht mehr funktioniert :cry:
Egal welchen Wert ich bei
\enlargethispage{-5cm}
eingebe.... es tut sich nichts mehr!
Was ist da los? Mein TeX wurde zwischenzeitlich ge-updated und ist auf dem neuesten Stand!

Kannst du mir bitte helfen!
Dateianhänge
minimal.pdf
PDF des Minimalbeispiels
(46.78 KiB) 238-mal heruntergeladen

von Bananarama » Mo 23. Feb 2015, 22:24

Sehr schöne und einfache Lösung!
Vielen Dank!

von u_fischer » Mo 23. Feb 2015, 22:13

Du willst die Seitenzahl unten höher haben?

\cfoot[{\raisebox{4cm}[0pt][0pt]{\pagemark}}]{}

von Bananarama » Mo 23. Feb 2015, 21:59

Ok, danke! Jedoch war ich auch schon so weit es mit \enlargethispage{} zu versuchen. Das Problem ist jedoch immer noch das selbe: Die Fußzeile ist im Rand.

von u_fischer » Mo 23. Feb 2015, 14:34

Du solltest das Layout so definieren, dass es für normale Seiten richtig ist. Kapitelseiten kannst du dann kürzen, indem du \chapter oder \thispagestyle patchst (zweiteres ist logischer, aber wegen der komplizierten Wege, die pagestsyle-Namen in KOMA gehen, nicht ganz so einfach):
\documentclass[a4paper,11pt,twoside,openright,pdftex]{scrbook}
\usepackage[showframe]{geometry}
\geometry{a4paper,left=1.0in,right=1.0in,top=1.0in,bottom=1.0in,
   includehead,
%includefoot
}

\usepackage{etoolbox}
%\patchcmd{\chapter}
% {\thispagestyle{\chapterpagestyle}}
% {\thispagestyle{\chapterpagestyle}\enlargethispage{-5cm}}%was auch immer
% {\message{patching chapter}}
% {\message{patching chapter failed!!}}
%
\apptocmd\thispagestyle{%
 \expandafter\ifstrequal\expandafter{#1}{plain}{\enlargethispage{-5cm}}{}}
 {\message{patching thispagestyle}}
 {{\message{patching thispagestyle failed!!}}}
 
 

 
\usepackage{blindtext}
\usepackage{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{\headmark}
\ohead{\pagemark}
\cfoot[\pagemark]{}
\addtokomafont{pagenumber}{\small\scshape}

\begin{document}

\chapter{Minimalbeispiel}
\Blindtext
\Blindtext
\section{Kleiner Test}
\Blindtext

\end{document} 

von Bananarama » So 22. Feb 2015, 14:05

Vielen Dank für deine Antwort!

Ja, du hast mich richtig verstanden! Habe das auch so schon in einem (math.) Buch gesehen. Falls das in meinem Fall jedoch nicht klappen sollte, oder mehr als merkwürdig aussehen sollte, werde ich für Kapitelstartseiten einfach "empty" wählen.
Im Moment finde ich es jedoch unschön wenn mitten im Rand eine Seitenzahl steht.

Nach oben