Headers and Footers

From ConTeXt wiki

Jump to: navigation, search

< Structurals |

Contents

[edit] Headers with centered content

ConTeXt offers the possibility to have mirrored headers (for odd and even pages); content can be in two parts, at the inner and outer margin of each page. But how do you get a header that will have one part of its content centered and one part in the outer margin? (This is a common setup for books: chapter title centered, page number in outer margin.) Hans posted this solution to the list:

\setuppagenumbering[alternative=doublesided]

\setupheadertexts[]
\setupheadertexts[\setups{text a}][][][\setups{text b}]

\startsetups[text a]
  \rlap{\pagenumber}
  \hfill
  \getmarking[chapter]
  \hfill
  \llap{whatever}
\stopsetups

\startsetups[text b]
  \rlap{whatever}
  \hfill
  \getmarking[section]
  \hfill
  \llap{\pagenumber}
\stopsetups

The use of the TeX macros rlap and llap allows centering of content.

[edit] Using capitals

In the previous example, the chapter title and the section title were fetched with the macro \getmarking which wraps around \fetchmark. However, in case you need a raw version of the mark, say for instance to put it uppercase, you may use this setup instead:


\startsetups[text a]
  \rlap{\pagenumber}
  \hfill
  \expanded{\uppercase{\fetchmark[chapter][first]}}
  \hfill
  \llap{whatever}
\stopsetups

\startsetups[text b]
  \rlap{whatever}
  \hfill
  \expanded{\uppercase{\fetchmark[section][first]}}
  \hfill
  \llap{\pagenumber}
\stopsetups


You can replace \uppercase by \WORD and so on.

[edit] Marginal headings and centered headings

The following file gives a way to achieve marginal and centered headings for doublesided documents. Experiment to achieve other effects!


% output=pdf interface=en

\setuppapersize [A5][A4]

\newdimen\Margin
\Margin=3cm

\newdimen\MarginRaise
\MarginRaise=56ex

\setuplayout[width=middle,
             height=middle,
             footer=3\bodyfontsize,
             header=\bodyfontsize,
             headerdistance=\bodyfontsize,
             bottom=3\bodyfontsize,
             location={middle,doublesided},
             margin=\Margin,
             marking=on]

\setuppagenumbering[alternative=doublesided,
                    location={footer,middle}]

\setuptexttexts[margin][][\setups{text a}][\setups{text b}][]
\setuptext[style=\tf,state=high]

\startsetups[text a]
\raise\MarginRaise\hbox{\vtop{\hsize=\Margin%
  \startalignment[right]
  \getmarking[chapter]
  \stopalignment
}}
\stopsetups

\startsetups[text b]
\raise\MarginRaise\hbox{\vtop{\hsize=\Margin%
  \startalignment[left]
  \getmarking[section]
  \stopalignment
}}
\stopsetups

\setupbottomtexts[pagenumber]
\setupbottom[style=\tf,state=high]

\setupfootertexts%
[][\setups{text c}][\setups{text d}][]
\setupfooter[style=\tf,
               state=high]

\startsetups[text c]
  \midaligned{\raise2\bodyfontsize\hbox{\getmarking[chapter]}}
\stopsetups

\startsetups[text d]
  \midaligned{\raise2\bodyfontsize\hbox{\getmarking[section]}}
\stopsetups

\setupinmargin[align=inner,
               style=\tfx\setupinterlinespace]

\showframe

\starttext

\chapter{Chapter Knuth Testing}

\section{Section Knuth Testing}
\dorecurse{20}{\input knuth\par\ }

\stoptext

[edit] Skipping headers or footers

You can suppress or bypass a header or footer on a chapter page like this, as Hans showed:

\setuphead[chapter][header=high,footer=none]

Also refer to this post about header and footer suppression: http://archive.contextgarden.net/message/20030329.100709.4c6212d5.en.html

Personal tools
Toolbox