2

I am trying to alter the chapter heading that is preset in the book template. I have found a style I like from Vincent Zoonekynd’s web-page, http://zoonek.free.fr/LaTeX/LaTeX_samples_chapter/0.html, however it has a large gap above the chapter heading and I cannot work out how to reduce this. My code is,

\documentclass[11pt, oneside]{book}   

\makeatletter
\def\thickhrulefill{\leavevmode \leaders \hrule height ex \hfill \kern \z@}
\def\@makechapterhead#1{%
\vspace*{5\p@}%
{\parindent \z@ 
{\raggedleft \reset@font
  \scshape \@chapapp{} \thechapter\par\nobreak}%
\par\nobreak
\vspace*{10\p@}
\interlinepenalty\@M
{\raggedright \Huge \bfseries #1}%
\par\nobreak
\hrulefill
\par\nobreak
\vskip 20\p@
 }}
\def\@makeschapterhead#1{%
\vspace*{10\p@}%
{\parindent \z@ 
{\raggedleft \reset@font
  \scshape \vphantom{\@chapapp{} \thechapter}\par\nobreak}%
\par\nobreak
\vspace*{30\p@}
\interlinepenalty\@M
{\raggedright \Huge \bfseries #1}%
\par\nobreak
\hrulefill
\par\nobreak
\vskip 10\p@
 }}

enter image description here

Can anyone help me reduce the white space above this?

Using the show frame package this is what my document looks like

enter image description here

4
  • The vertical spaces are introduced with \vspace. Please load package showframe to see what all this white space actually is.
    – Johannes_B
    May 20, 2015 at 9:16
  • I guess ideally I would like the 'Chapter 1' to be written in the first box and then the 'Introduction' to be higher up..
    – ERW
    May 20, 2015 at 9:29
  • But the firs box is dedicated to pages header, not for any part of text. If you like to enlarge text height, than you need to change page layout in which you eliminate place for heading (by setting their height and after skip to zero).
    – Zarko
    May 20, 2015 at 9:48
  • is there anyway to at least remove the space above Chapter 1? And perhaps reduce the space between Introduction and the subheading? I have tried altering the above code, but cannot work out how to do this.
    – ERW
    May 20, 2015 at 9:51

2 Answers 2

0

A simple code with titlesec. You can play with \titlespacing: the first argument increases the left margin, the second is vertical space before the heading, and the third, vertical space after the heading.

\documentclass[11pt, oneside]{book}
\usepackage{showframe}

 \usepackage{titlesec}
 \titleformat{\chapter}[display]{}{\filleft\scshape\chaptername\enspace\thechapter}{-2pt}{\filright \Huge \bfseries}[\vskip4.5pt\titlerule]
 \titleformat{name=\chapter, numberless}[block]{}{}{0pt}{\filright \Huge \bfseries}[\vskip4.5pt\titlerule]

 \titlespacing{\chapter}{0pt}{-15pt}{25.5pt}
 \titlespacing{name=\chapter, numberless}{0pt}{16pt}{15pt}

 \begin{document}

 \chapter*{Introduction}

 \section{Intended Application of Particles}

 \end{document} 

enter image description here

1

The vertical spacing is controlled using \vspace*. You can set th value to your needs, negative values are also allowed, moving the text up on the page. A negative space of 105pt gives you the following output, though i cannot recommend to do that.

erwChapterTitle

\documentclass[11pt, oneside]{book}   
\usepackage{showframe,blindtext}

\makeatletter
\def\thickhrulefill{\leavevmode \leaders \hrule height ex \hfill
\kern \z@}
\def\@makechapterhead#1{%
    \vspace*{-105\p@}%<-------------
    {\parindent \z@ 
        {\raggedleft \reset@font
            \scshape \@chapapp{}
        \thechapter\par\nobreak}%
        \par\nobreak
        \vspace*{10\p@}
        \interlinepenalty\@M
        {\raggedright \Huge \bfseries #1}%
        \par\nobreak
        \hrulefill
        \par\nobreak
        \vskip 20\p@
    }}
        \begin{document}
        \chapter{Beloved Banana}
        \blindtext
        \end{document}
2
  • Using \xpatchcmd{\@makechapterhead} would be shorter ;-)
    – user31729
    May 23, 2015 at 7:40
  • Might be, or not ;-)
    – Johannes_B
    May 23, 2015 at 8:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .