PDF Bookmarks and Headers

From ConTeXt wiki
Jump to: navigation, search

< Structurals | Titles | Interaction >

Contents

PDF Bookmarks

Quick start

For the impatient (like me), here is a complete example showing typical and useful commands, which are explained below:

\setupinteraction[state=start] % don't forget this line!
% make chapter, section bookmarks visible when opening document
\placebookmarks[chapter,section,subsection][chapter,section]
\setupinteractionscreen[option=bookmark]
\starttext
\startchapter[title=The beginning]
Hi!
\stopchapter
\startchapter[title={A very, very\\long title}]
Greetings!
\startsection[title=Why so long]
I don't know
\startsubsection[title=Why not?]
Good point.
\stopsubsection
\stopsection
\stopchapter
\startchapter[title=The never-ending story]
Oh no.
\stopchapter
\startchapter[title=The never-ending story,
                    bookmark=Forever!]
Oh no.
\stopchapter
\stoptext

Explanation

You need to activate the interaction handling in order to see the bookmarks using \setupinteraction.

\setupinteraction
  [state=start]

The bookmarks window is usually not visible by default. To have the bookmark window open automatically when the document is opened:

\setupinteractionscreen
   [option=bookmark] 

Disclaimer: \setupinteraction works with Adobe Reader/Acrobat, but other PDF viewers behave differently. E.g. xpdf v3.01 always opens the bookmark window.

To get bookmarks for chapters, sections, and subsections, use:

\placebookmarks[chapter,section,subsection]

In the bookmark window, only chapter bookmarks are visible by default. If chapter and section bookmarks should be visible:

\placebookmarks
   [chapter,section,subsection]
   [chapter]

This will open the document with the bookmarks for chapters and sections visible (read as: and open up the chapter bookmarks)

The unnumbered headings (\title, \subject etc.) do not create bookmarks, even when listed in \placebookmarks.

In order to create the bookmarks, you need to add force=yes, for example like this:

\placebookmarks
  [title, subject]
  [force=yes]

If you do not like seeing the structure numbering in the bookmarks, you can add number=no, like this:

\placebookmarks
  [chapter,section]
  [chapter]
  [number=no]

Unwanted output

With a long heading in a huge font, you might want to add linebreaks by hand. No problem, just use \\. The bookmark code ignores \\, so the bookmark itself won't have a linebreak. For example:

\setupinteraction[state=start]
\placebookmarks[chapter]
\setupinteractionscreen[option=bookmark]
\starttext
\startchapter[title=Long\\ title]
hello
\stopchapter
\stoptext

ConTeXt attempts to replace commands inside bookmarks with an acceptable string. However, the result is not always optimal. To tweak ConTeXts behaviour, add specific commands to \simplifiedcommands.

For example, to replace the \CONTEXT logo (which would normally become CONTEXT) with a camel-cased version, use the following:

 \appendtoks
     \def\CONTEXT{ConTeXt}
 \to \simplifiedcommands

A more general method, also usable for the above problem, is to use the bookmark option to specify the bookmark text explicitly. For example:

\setupinteraction[state=start]
\placebookmarks[chapter]
\setupinteractionscreen[option=bookmark]
\starttext
\startchapter[title=A very long chapter\\ about splines,
                     bookmark=Splines]
hello
\stopchapter
\stoptext
ConTeXt Mkii notes (See: Mkii):
In mkii, such manual bookmarks used the \bookmark command on a separate line following a \chapter command. With the new \startchapter command, this is no longer needed, nor recommended.


Private bookmarks

We can also place our own list of bookmarks:

\setupinteraction
  [state=start]
\setupinteractionscreen
  [option=bookmark]
\definelist
  [mylist]
\placebookmarks
  [chapter,mylist]
  [chapter,mylist]
\starttext
    \startchapter[title={My title}]
        \input knuth\page   
        \bookmark[mylist]{Before input zapf}\input zapf
    \stopchapter
\stoptext

PDF Headers

In order to add Author, Title, Keywords, ... to PDF headers, use:

\setupinteraction
   [state=start,
    title={...},
    author={...},
    subtitle={...},
    keyword={...}]

Prevent certain characters from appearing in pdf headers

To ignore certain TeX commands in \setupinteraction add them to \simplifiedcommands. For example, to ignore \quad in pdfauthor, use the following

 \appendtoks
     \let\quad\space
 \to \simplifiedcommands

\setupinteraction
    [author={Author1\quad Author2}]
ConTeXt Mkii notes (See: Mkii):
Accented characters like ä, č, ... will turn into their unaccented counterparts a, c, ... by default. If you want to prevent that, use
\input spec-tst

For example

\enableregime[utf]

\setupinteraction
   [state=start]
\setupinteractionscreen
   [option=bookmark]

% before \placebookmarks
\input spec-tst.tex 

\placebookmarks
   [chapter,section,subsection]
   [chapter]

... and here is your document with accented characters in titles & bookmarks ...


C O N T E X T G A R D E N

Personal tools
Namespaces
Variants
Actions
Help
External Help
Installation
Navigation
Toolbox