9

The purpose of marks in TeX is to generate running heads. One inserts material to a mark, simply by:

  \mark{A running head}

If we write a short TeX program, we can see that the contents of \mark are not available to the \meaning or \show commands (they are displayed as \mark).

\mark{A running head}
\tt
\meaning\mark
\show\mark
\show\mark
\bye

How can one view the contents of a \mark?

  • Doesn't that mean that it is a TeX primitive so that it is not decomposable into simpler functions? – Peter Grill Jan 30 '12 at 19:44
  • @PeterGrill Since one is adding user content, I am sure there is a probably a devious way of finding what it holds. – Yiannis Lazarides Jan 30 '12 at 19:57
  • @PeterGrill: Yes, but there must be some formal definition of it. I'm thinking this lies in the TeX Program. – Werner Jan 30 '12 at 19:57
11

only really makes sense to look in the output routine, but....

\documentclass{article}

\begin{document}

\mark{aaa}
\toks0\expandafter{\botmark}\showthe\toks0

aaa

\clearpage

\toks0\expandafter{\botmark}\showthe\toks0

\end{document}

shows aaa on the page after the mark

  • that was quick:-) – David Carlisle Jan 30 '12 at 20:12
  • 1
    With e-TeX, you could use \showtokens\expandafter{\botmark} rather than the toks here. – Joseph Wright Jan 30 '12 at 20:18
  • Ah, yes. I must get my TeX usage into this millennium one of these days. – David Carlisle Jan 30 '12 at 20:20
  • @DavidCarlisle --Thanks that was quick, indeed:) – Yiannis Lazarides Jan 30 '12 at 20:25
  • @JosephWright Thanks also for your comment. – Yiannis Lazarides Jan 30 '12 at 20:25
2

You can't. The \mark command just adds material to the vertical list; in the output routine, you have access to various marks via \topmark (latest mark on the previous page), \firstmark (first mark on the present page), and \botmark (last mark on the present page).

I suppose you can examine marks by writing a special output routine, triggering it out of turn, examine the expansions of the above control sequences, and have the special output routine put everything back without doing any output. I am not at all sure why you would want to do such a thing, though.

  • Harald -- Thanks. I am trying to manipulate the contents of a vbox, which has a height of \textheight, then split it do some manipulation etc, if possible before the contents reach the output routine, my understanding is that I maybe able to see the contents via splittopmark, splitbotmark, however I haven't managed to achieve it, hence the question. – Yiannis Lazarides Jan 30 '12 at 20:07

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.