How to write abstract and acknowledgement in book format?

A few weeks ago I tried to add a dedication and an abstract to my book-document and this is what I found on the net and adapted:

dedication.tex

\thispagestyle{empty}
    \null\vspace{\stretch {1}}
        \begin{flushright}
                This is the Dedication.
        \end{flushright}
\vspace{\stretch{2}}\null

abstract.tex

\newenvironment{abstract}%
    {\cleardoublepage\thispagestyle{empty}\null\vfill\begin{center}%
    \bfseries\abstractname\end{center}}%
    {\vfill\null}
        \begin{abstract}
        This is the abstract.
        \end{abstract}

acknowledgements.tex

\newenvironment{acknowledgements}%
    {\cleardoublepage\thispagestyle{empty}\null\vfill\begin{center}%
    \bfseries Acknowledgements\end{center}}%
    {\vfill\null}
        \begin{acknowledgements}
        These are the acknowledgements.
        \end{acknowledgements}

main-file.tex

\frontmatter
    \include{content/frontmatter/titlepage}
    \include{content/frontmatter/dedication}
    \include{content/frontmatter/abstract}
    \include{content/frontmatter/acknowledgements}
    \include{content/frontmatter/preface}
    \tableofcontents
        ... and so on ...

I'd simply do

\begin{document}

\frontmatter

\tableofcontents

\chapter{Abstract}

<text of the abstract>


\chapter{Acknowledgment}

<text of the acknowledgment>

\cleardoublepage
\thispagestyle{empty}
\vspace*{\stretch{1}}
\begin{flushright}
\itshape
Dedicated to my cat\\
and my dog
\end{flushright}
\vspace{\stretch{3}}
\cleardoublepage

\mainmatter
...

If you load the emptypage package, pages with no text added by explicit or implicit \cleardoublepage commands will be empty.

Note that there is no need to use \chapter* in the \frontmatter: it's instead better to use \chapter, because the entries will automatically go in the table of contents.

I'd not put the dedication in the table of contents, but feel free to do it with \addcontentsline.

If you want to use different files and \include, do it: it doesn't make any difference (but remember that \include always issues a \clearpage command).


I had a similar problem when typing up my thesis. I read a few possible work-arounds and ended up with this one. First of all I'm used to not having abstract and acknowledgments in toc, but my solution can be tweaked to accommodate this wish with \addcontentsline.

To use this solution simply copy the two .sty-files below into an empty text-file and save them as bookabstract.sty and acknowledgments.sty in the same folder as your .tex-file and load them with \usepackage{bookabstract} and \usepackage{acknowledgments}. Then it's straight forward with \begin{abstract}, \end{abstract}, \begin{acknowledgments} and \end{acknowledgments}.

Here's what I did: First I made a two new .sty-files. One called bookabstract.sty and one called acknowledgments.sty (I should stress that these are not of my own making. I'm much obliged to whoever it was that posted this abstract-definition on another forum.) The only differences between them is that everywhere bookabstracts.sty contains the word "abstract" acknowledgments.sty contains the word "acknowledgments", and acknowledgments.sty contains a line defining \acknowledgmentsname. My thesis has two abstracts, one in English and one in Norwegian, so instead of defining \abstractname in the bookabstract.sty, I simply loaded babel with \usepackage[british,norsk]{babel} and used \selectlanguage. \abstractname is defined in babel, so this way my English abstract is called "Abstract" and my Norwegian abstract is called "Sammendrag" (which, as you may have guessed, is Norwegian for abstract). If you do not want to use babel, then you can simply define the \abstractname in the .sty-file.

Here is my bookabstract.sty:

%% Remember to load babel before loading this package or define the command \abstractname!
\makeatletter
\if@titlepage
  \newenvironment{abstract}{%
      \titlepage
      \null\vfil
      \@beginparpenalty\@lowpenalty
      \begin{center}%
        \bfseries \abstractname
        \@endparpenalty\@M
      \end{center}}%
     {\par\vfil\null\endtitlepage}
\else
  \newenvironment{abstract}{%
      \if@twocolumn
        \section*{\abstractname}%
      \else
        \small
        \begin{center}%
          {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
        \end{center}%
        \quotation
      \fi}
      {\if@twocolumn\else\endquotation\fi}
\fi
\makeatother

And this is my acknowledgments.sty:

\newcommand\acknowledgmentsname{Acknowledgments}  %%copy this to the other package if you don't want to use babel (replace Acknowledgments with Abstract).
\makeatletter
\if@titlepage
  \newenvironment{acknowledgments}{%
      \titlepage
      \null\vfil
      \@beginparpenalty\@lowpenalty
      \begin{center}%
        \bfseries \acknowledgmentsname
        \@endparpenalty\@M
      \end{center}}%
     {\par\vfil\null\endtitlepage}
\else
  \newenvironment{acknowledgments}{%
      \if@twocolumn
        \section*{\acknowledgmentsname}%
      \else
        \small
        \begin{center}%
          {\bfseries \acknowledgmentsname\vspace{-.5em}\vspace{\z@}}%
        \end{center}%
        \quotation
      \fi}
      {\if@twocolumn\else\endquotation\fi}
\fi
\makeatother

Tags:

Abstract