I'd like to automatically repeat section headings after a page break. My naive attempt at doing this is to check the page counter and print the extra text whenever the counter increments:



\ifnum \value{page} > \value{pagecnt}% are we on a new page?
  \normalfont\Large\bfseries\sectionheadinghere% print heading again                                                                                                                                                                                                                                                                  
  \setcounter{pagecnt}{\value{page}}% reset counter                                                                                                                                         

Except I'm not entirely sure what should 'trigger' this code? Is it possible or desirable to check after every line-break (or every word) if the page has flipped?

  • Perhaps the everyshi (which stands for 'Every Ship Out') package is appropriate here? It sounds like you want similar features provided by the fancyhdr package
    – cmhughes
    Mar 11, 2012 at 20:59
  • Thanks, it looks like that's the right track. It seems that I will have to learn more raw tex syntax to get it to format properly, though.
    – joeyo
    Mar 11, 2012 at 21:31
  • @cmhughes: Can you provide an answer? Apr 14, 2012 at 12:04
  • 1
    i interpret this question to mean that you want, at the top of a page when a section continues, the text (for example) "2.3 Title of section (cont.)", and not just the section heading in the running heads. if this is so, then the suggestion that you look at the package everyshi is appropriate. (i'm adding this comment because another comment points to running heads and footers, which is quite different.) Jul 6, 2012 at 21:03
  • a couple of answers dealing with similar situations mention the afterpage package: changing-the-table-of-contents and insert-text-before-end-of-page-and-at-the-begining-of-the-next-page Jul 6, 2012 at 21:18

2 Answers 2


The following patch (via etoolbox) saves the sectional content (number, title and font) in a macro that is re-evaluated at page shipout (as supplied by everyshi) if there is text overflow. Overflow is established using the condition

  % <do something>

that checks whether the gathered page content (of height \pagetotal) extends beyond the allowed total (of height \pagegoal).

enter image description here

\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{everyshi}% http://ctan.org/pkg/everyshi
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\let\@section@title@\relax% Sectional heading storage
\patchcmd{\@sect}% <cmd>
  {\@xsect}% <search>
  {\gdef\@section@title@{% Store sectional heading
    {\noindent#6\@svsec#8\normalfont\ \smash{(continued)}}\par\bigskip}\@xsect}% <replace>
  {}{}% <success><failure>
  \ifdim\pagetotal>\pagegoal% There is content overflow on this page
    \aftergroup\@section@title@% Reprint/-insert sectional heading
\section{A section}\lipsum[1-6]
\subsection{A subsection}\lipsum[7-14]

The sectional content is captured in \@section@title@ and includes the latest sectional title used (anything from level 1 = \section to level 5 = \paragraph).

Customizations include using only a specific sectional unit (like \section, say). Also, to duplicate the spacing after the sectional header when traditionally used, rather than issuing \bigskip.

The above works in the context of the standard LaTeX document classes (like book, article and report) and may require additional modifications if used in other document classes, or in conjunction with other sectional heading packages.

  • Is there anyway to get this to work when titlesec is loaded?
    – lyxicon
    Sep 2, 2013 at 4:24
  • @lyxicon: A completely different solution approach would be required, since titlesec changes the entire sectioning structure. I would suggest asking a follow-up question...
    – Werner
    Sep 2, 2013 at 5:23

I think you are looking for a definition of headers and footers. This can be done by packages like fancyhdr or scrpage21. However most document classes defining some predefined style which can be used by the command \pagestyle. Allowed arguments are:

  • empty -- no header or footer is printed
  • plain -- only the page number is printed
  • headings -- depends on the class. e.g. scrartcl will print the section.

1 The documentation of scrpage2 is located in the manual of KOMA

Here a small example:

\section{My section}
  • In case another user stumbles across this answer: scrpage2 is not the up-to-date KOMA-script package for headers and footers, but scrlayer-scrpage.
    – Skillmon
    Nov 13, 2017 at 20:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.