%%
%% The LaTeX Companion, 3ed
%%
%% Example 5-3-4 on page I-394 in "\LaTeX {}'s new mark mechanism".
%%
%% Copyright (C) 2022 Frank Mittelbach
%%
%% It may be distributed and/or modified under the conditions
%% of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%%
%% See https://www.latex-project.org/lppl.txt for details.
%%

\documentclass{tlc3exa}
\pagestyle{empty}
\setcounter{page}{6}
\setlength\textwidth{95.40097pt}

  \setlength\textheight{8\baselineskip}

  % for the book examples we shorten the vertical spaces
  \addtolength\headsep{-12pt} % shortened for the book
  \addtolength\footskip{-12pt} % shortened for the book
  \raggedright % as these examples are so small

%StartShownPreambleCommands
\NewMarkClass{idxmark}
\usepackage{fancyhdr}
\pagestyle{fancy} \fancyhf{}
\newcommand\combinemarks{%
  \IfMarksEqualTF{idxmark}{first}{last}
    {\FirstMark{idxmark}}% equal values
    {\FirstMark{idxmark}---%
               \LastMark{idxmark}}}
\chead{\combinemarks} \cfoot{\thepage}
\newcommand\idxitem[1]{\par\vspace{8pt}%
  \textbf{#1}\InsertMark{idxmark}{#1}%
  \quad\ignorespaces}
%StopShownPreambleCommands

\begin{document}
\idxitem{galley} Text formatted but not
  cut into pages.
\idxitem{OR} Output routine.
\idxitem{mark} An object in the galley
 used to communicate with the OR.
\idxitem{running header} page title
 changing with page contents.
\end{document}
