13

Friends, I've never used \part{} before, so bear with me. =)

Consider the following code:

\documentclass[twoside]{book}
\usepackage{lipsum}

\begin{document}

\pagestyle{empty}
\begin{titlepage}
My title page.
\end{titlepage}

\cleardoublepage
\pagestyle{plain}

\frontmatter
\tableofcontents
\clearpage
\mainmatter

\part{Hello World}
\chapter{Test one}
\lipsum[1]
\section{My section one}
\lipsum[1]

\part{Goodbye World}
\chapter{Test two}    
\lipsum[1]
\section{My section two}
\lipsum[1]

\end{document}

I'd like to have page numbers in the even pages right after the Part x titles. It would be pages 6 and 10 of my example.

Pages

I could redefine the empty pagestyle to act as plain, but I didn't want to do that. In fact, I tried that - and it works - but I also need empty pagestyles in my original document.

I suppose \part is like a book division, so it should look like another "cover" (what would explain why there's no number in the hm... back of the page). In my particular case, I need that number to be in there.

Does anybody have an idea?

4 Answers 4

11

But you can redefine the empty page style to be plain and do it locally using \begingroup, \endgroup; for example (only the page following part one will receive number):

\documentclass[twoside]{book}
\usepackage{lipsum}

\begin{document}

\pagestyle{empty}

\begin{titlepage}
My title page.
\end{titlepage}

\cleardoublepage

\pagestyle{plain}

\frontmatter

\tableofcontents

\clearpage

\mainmatter

\begingroup
\makeatletter
\let\ps@empty\ps@plain
\makeatother

\part{Hello World}

\endgroup\chapter{Test one}
\lipsum[1]

\section{My section one}
\lipsum[1]

\part{Goodbye World}

\chapter{Test two}    
\lipsum[1]

\section{My section two}
\lipsum[1]

\end{document}

Remark:

As Frank Mittelbach says in his comment, introducing groupings that go across the LaTeX concepts can be "dangerous". In this particular case, there's no harm, but in case of chapter and section one might see side effects already (the indentation is no longer suppressed for example).

5
  • Wow! Thanks for the enlightenment, Gonzalo! I didn't know I could redefine the scope locally. That's certainly a great solution! Aug 26, 2011 at 17:36
  • 1
    On the whole it is not a good idea to do something like this. Introducing groupings that go across the LaTeX concepts will eventually generate issues down the road. For part there is no harm, but in case of chapter and section you might see side effects already (the indentation is no longer suppressed for example). So this is not the solution that should be accepted as it gives dangerous advice. May 2, 2012 at 16:46
  • @FrankMittelbach: I agree that using groupings could be dangerous (not in the case of the answer I gave), but I don't see that grouping will result in inappropriate indentation of the first line after a sectional unit: \documentclass{book} \usepackage{lipsum} \begin{document} \begingroup \chapter{Test one} \lipsum[1] \section{My section one} \lipsum[1] \endgroup \end{document} behaves as one would expect regarding indentation. Am I misunderstanding your comment? May 2, 2012 at 23:19
  • @Gonzalo in your example you moved the \endgroup to the natural end of the chapter (which is equiv to a chapter environment - which is ok). But in the answer your group ends directly after the heading title - which is not ok. So move the \endgroup directly after chapter to see the effect. May 3, 2012 at 6:58
  • @FrankMittelbach: Oh, now I see. Thanks. I will add some warning message to my answer. May 3, 2012 at 20:35
9

Here is a patch with etoolbox for numbered pages following part pages:

\usepackage{etoolbox}
\makeatletter
\patchcmd{\@endpart}{empty}{plain}
\makeatother

The macro \@endpart causes the empty page style, which is replaced by plain by this patch.

1
  • Thanks Stefan! You guys are awesome, we can always learn new things every day! Aug 26, 2011 at 17:46
7

You could also redefine the macro \@endpart from the file book.cls, which looks like:

\def\@endpart{\vfil\newpage
          \if@twoside
           \if@openright
            \null
            \thispagestyle{empty}% the instruction I believe you want to remove
            \newpage
           \fi
          \fi
          \if@tempswa
            \twocolumn
          \fi}

If I understand your explanation correctly, all you require is to suppress the instruction \thispagestyle{empty}. This may be achieved by (i) commenting out this instruction in the file book.cls and saving the class file to a new file, say, "mybook.cls" -- note that it is very much against the LPPL to save the change under the existing file name -- or (ii) by providing a modified definition for this macro in the preamble of your document, sandwiched between \makeatletter and \makeatother instructions:

\makeatletter
\def\@endpart{\vfil\newpage
          \if@twoside
           \if@openright
            \null
            %%\thispagestyle{empty}% this instruction is now commented out
            \newpage
           \fi
          \fi
          \if@tempswa
            \twocolumn
          \fi}
\makeatother

See also @StefanKottwitz's answer for a way to achieve this objective using the tools of the etoolbox package.

3
  • TBH, I was tempted on commenting the pagestyle instruction, but since I'm still in the beginning of the learning process, I would not even know where to start. =) Thankfully, there are better (should I say safer) ways to solve my issue. Thanks for posting the book class code snippet, it's great to know how things work under the hood. Aug 26, 2011 at 18:08
  • 1
    Changing book.clswithout marking it as private (for example by renaming it) is against its license LPPL. So this is not the way to go. The correct solution is to patch \@endpart either in the preamble of your document or in a package of your own. The shortest way to do this is as in @Stephan's answer. May 2, 2012 at 16:52
  • @FrankMittelbach -- Thanks for clarifying the legal situation. I'll modify my answer to alert readers to the fact that they should not modify the file book.cls without renaming the copy to something different.
    – Mico
    May 2, 2012 at 18:04
6

In memoir, this is very simple (that's why I love memoir). In the preamble:

\aliaspagestyle{afterpart}{plain}  % (Instead of plain, whatever you want)
1
  • Fantastic, Brent! :) I'm considering migrating to memoir. :) May 4, 2012 at 0:14

You must log in to answer this question.

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