X-Bit
07-01-2009, 14:57
Hallo @all!
Da mir hier so super geholfen wurde möchte ich kurz ein paar Ideen zum Package fncychap in der aktuellen Version 1.34 hier für andere interessierte Leser deponieren. Entschuldigt, wenn ich Ausdrücke falsch verwende... ich bin kein LaTeX-Profi... auf jeden Fall im Moment noch nicht:rolleyes:
Grundsätzlich geht es mir um die Abstände welche ich optisch als zu gross empfinde und, leider, habe ich noch keine für mich brauchbaren Anleitungen zu diesem Thema gefunden.
Alle Änderungen werden im jeweiligen Dokument vorgenommen. Ich empfinde diese Lösung als "sauberer", da das Verändern der *.sty Datei permanent sind und somit, vielleicht in einem anderen Fall, unerwünscht.
Für Anfänger, wie ich es bin, kurz die Einleitung zu jeder dieser Veränderungen im Dokument welche vor "\begin{document}" ein zu fügen sind (stimmts, mechanicus?;)):
\makeatletter
... >>> Hier die jeweiligen Veränderungen einfügen!
\makeatother
Ich verwende das Layout "Glenn". Wenn man die fncychap.sty studiert (bei mir zu finden unter "C:\Programme\MiKTeX 2.7\tex\latex\fncychap", was aber je nach LaTeX Packet verschieden sein kann), was ich auf jeden Fall anrate, versteht man schnell, dass je nach Layout eine entsprechend andere Massnahme nötig ist und meine Vorlagen entsprechend abgeändert werden müssen. Aber es ist nicht so schwierig! Eigentlich kann man die entsprechenden Zeilen mit Copy/Paste in sein Dokument übernehmen und noch ein wenig abändern...
Zum Beispiel wird aus:
\renewcommand{\DOTI}
einfach nur
\renewcommand\DOTI
...ist wirklich keine Hexerei und die restlichen Zeilen können mehrheitlich genau so belassen werden, wie man sie aus der fncychap.sty herauskopiert.
Grundsätzlich aber kann man folgendes festhalten:
1. Abstand für Kapitel oben verringern
Diese Einstellung ist für alle Layouts gültig. Es wird der Abstand vom Kapitel-Layout OBEN verringert indem man mit der Zahl bei "\vspace" experimentiert. Das gilt nicht für ToC usw...
In meinem Fall also:
\renewcommand*\@makechapterhead[1]{%
\vspace*{-10\p@} % Hier wird der Abstand oben verringert
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter%
\DOCH
\fi
\fi
\interlinepenalty\@M
\DOTI{#1}
}}
Ab hier unterscheiden sich die Informationen, je nach gewünschtem Layout. Alle Layouts sind aber innerhalb der fncychap.sty mit "%%%%%%% Layout DEF" gekennzeichnet und sind somit schnell in einem Editor auffindbar.
2. Kapitelabstand unten verringern.
Grundsätzlich wird über "DOTI" der Abstand UNTEN definiert. Dies geschieht erst global, wird aber jeweils von den Layouts überschrieben. Es ist deshalb wichtig, die vom gewünschten Layout angegebenen Parameter zu verwenden.
In meinem Fall für "Glenn":
\renewcommand\DOTI[1]{%
\addtolength{\pyy}{-4pt}
\settoheight{\myhi}{\CTV\FmTi{#1}}
\addtolength{\myhi}{\py}
\addtolength{\myhi}{-1\RW}
\vskip -1\pyy
\rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt
\raggedleft\CTV\FmTi{#1}\par\nobreak
\vskip 50\p@} % Hier wird der Abstand nach unten angegeben
3. Abstand für Index neu definieren.
Dies geschieht über "DOTIS" welcher genauso erst global, dann im jeweiligen Layout definiert wird.
Bei mir und für "Glenn" sieht es so aus:
\renewcommand\DOTIS[1]{%
\setlength{\py}{25pt} % eller vad man vill >>>Hier wir übrigens die Höhe der "Box" definiert.
\setlength{\pyy}{\py}
\setlength{\backskip}{\py}
\addtolength{\backskip}{2pt}
\addtolength{\pyy}{\RW}
\setlength{\myhi}{\baselineskip}
\addtolength{\myhi}{\pyy}
\mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak
\vskip -1\backskip
\rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 3pt %
\raggedleft\CTV\FmTi{#1}\par\nobreak
\vskip 30\p@ % Hier wird der Abstand nach unten angegeben
Nachtrag: Mit viel Schützenhilfe und ein paar höchst logischen Überlegungen ("\tableofcontents" kommt nach "\begin{document}"... danke Marco!) hier nun noch das fehlende Teil.
4 . ToC (also der Seitenindex usw.) nach oben verschieben. Dieser Bereich ist global definiert (wie auch der Punkt 1) und nicht vom jeweiligen Layout abhängig.
Auch dieser Teil wird mit
\makeatletter
.... >>> Veränderungen einfügen!
\makeatother
eingeleitet!
\def\@makeschapterhead#1{%
% Nicht zu verwechseln mit makechapterhead von Punkt 1!
\vspace*{50\p@} % Hier wird der Abstand nach oben verringert
{\parindent \z@ \raggedright
\normalfont
\interlinepenalty\@M
\DOTIS{#1}
\vskip 40\p@
}}
Ich hoffe diese kurze Erklärung hilft Anfängern wie mir und ich bedanke mich nochmals ganz herzlich bei Marco für die unermüdliche Schützenhilfe!
P.s.: Vielleicht ist es noch wichtig zu sagen, dass alle Werte für die Abstände auch minus (z.B. {-50\p@} sein können), man muss einfach ein wenig experimentieren!
Da mir hier so super geholfen wurde möchte ich kurz ein paar Ideen zum Package fncychap in der aktuellen Version 1.34 hier für andere interessierte Leser deponieren. Entschuldigt, wenn ich Ausdrücke falsch verwende... ich bin kein LaTeX-Profi... auf jeden Fall im Moment noch nicht:rolleyes:
Grundsätzlich geht es mir um die Abstände welche ich optisch als zu gross empfinde und, leider, habe ich noch keine für mich brauchbaren Anleitungen zu diesem Thema gefunden.
Alle Änderungen werden im jeweiligen Dokument vorgenommen. Ich empfinde diese Lösung als "sauberer", da das Verändern der *.sty Datei permanent sind und somit, vielleicht in einem anderen Fall, unerwünscht.
Für Anfänger, wie ich es bin, kurz die Einleitung zu jeder dieser Veränderungen im Dokument welche vor "\begin{document}" ein zu fügen sind (stimmts, mechanicus?;)):
\makeatletter
... >>> Hier die jeweiligen Veränderungen einfügen!
\makeatother
Ich verwende das Layout "Glenn". Wenn man die fncychap.sty studiert (bei mir zu finden unter "C:\Programme\MiKTeX 2.7\tex\latex\fncychap", was aber je nach LaTeX Packet verschieden sein kann), was ich auf jeden Fall anrate, versteht man schnell, dass je nach Layout eine entsprechend andere Massnahme nötig ist und meine Vorlagen entsprechend abgeändert werden müssen. Aber es ist nicht so schwierig! Eigentlich kann man die entsprechenden Zeilen mit Copy/Paste in sein Dokument übernehmen und noch ein wenig abändern...
Zum Beispiel wird aus:
\renewcommand{\DOTI}
einfach nur
\renewcommand\DOTI
...ist wirklich keine Hexerei und die restlichen Zeilen können mehrheitlich genau so belassen werden, wie man sie aus der fncychap.sty herauskopiert.
Grundsätzlich aber kann man folgendes festhalten:
1. Abstand für Kapitel oben verringern
Diese Einstellung ist für alle Layouts gültig. Es wird der Abstand vom Kapitel-Layout OBEN verringert indem man mit der Zahl bei "\vspace" experimentiert. Das gilt nicht für ToC usw...
In meinem Fall also:
\renewcommand*\@makechapterhead[1]{%
\vspace*{-10\p@} % Hier wird der Abstand oben verringert
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter%
\DOCH
\fi
\fi
\interlinepenalty\@M
\DOTI{#1}
}}
Ab hier unterscheiden sich die Informationen, je nach gewünschtem Layout. Alle Layouts sind aber innerhalb der fncychap.sty mit "%%%%%%% Layout DEF" gekennzeichnet und sind somit schnell in einem Editor auffindbar.
2. Kapitelabstand unten verringern.
Grundsätzlich wird über "DOTI" der Abstand UNTEN definiert. Dies geschieht erst global, wird aber jeweils von den Layouts überschrieben. Es ist deshalb wichtig, die vom gewünschten Layout angegebenen Parameter zu verwenden.
In meinem Fall für "Glenn":
\renewcommand\DOTI[1]{%
\addtolength{\pyy}{-4pt}
\settoheight{\myhi}{\CTV\FmTi{#1}}
\addtolength{\myhi}{\py}
\addtolength{\myhi}{-1\RW}
\vskip -1\pyy
\rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt
\raggedleft\CTV\FmTi{#1}\par\nobreak
\vskip 50\p@} % Hier wird der Abstand nach unten angegeben
3. Abstand für Index neu definieren.
Dies geschieht über "DOTIS" welcher genauso erst global, dann im jeweiligen Layout definiert wird.
Bei mir und für "Glenn" sieht es so aus:
\renewcommand\DOTIS[1]{%
\setlength{\py}{25pt} % eller vad man vill >>>Hier wir übrigens die Höhe der "Box" definiert.
\setlength{\pyy}{\py}
\setlength{\backskip}{\py}
\addtolength{\backskip}{2pt}
\addtolength{\pyy}{\RW}
\setlength{\myhi}{\baselineskip}
\addtolength{\myhi}{\pyy}
\mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak
\vskip -1\backskip
\rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 3pt %
\raggedleft\CTV\FmTi{#1}\par\nobreak
\vskip 30\p@ % Hier wird der Abstand nach unten angegeben
Nachtrag: Mit viel Schützenhilfe und ein paar höchst logischen Überlegungen ("\tableofcontents" kommt nach "\begin{document}"... danke Marco!) hier nun noch das fehlende Teil.
4 . ToC (also der Seitenindex usw.) nach oben verschieben. Dieser Bereich ist global definiert (wie auch der Punkt 1) und nicht vom jeweiligen Layout abhängig.
Auch dieser Teil wird mit
\makeatletter
.... >>> Veränderungen einfügen!
\makeatother
eingeleitet!
\def\@makeschapterhead#1{%
% Nicht zu verwechseln mit makechapterhead von Punkt 1!
\vspace*{50\p@} % Hier wird der Abstand nach oben verringert
{\parindent \z@ \raggedright
\normalfont
\interlinepenalty\@M
\DOTIS{#1}
\vskip 40\p@
}}
Ich hoffe diese kurze Erklärung hilft Anfängern wie mir und ich bedanke mich nochmals ganz herzlich bei Marco für die unermüdliche Schützenhilfe!
P.s.: Vielleicht ist es noch wichtig zu sagen, dass alle Werte für die Abstände auch minus (z.B. {-50\p@} sein können), man muss einfach ein wenig experimentieren!