summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/fwlw/fwlw.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/fwlw/fwlw.tex
Initial commit
Diffstat (limited to 'macros/latex/contrib/fwlw/fwlw.tex')
-rw-r--r--macros/latex/contrib/fwlw/fwlw.tex87
1 files changed, 87 insertions, 0 deletions
diff --git a/macros/latex/contrib/fwlw/fwlw.tex b/macros/latex/contrib/fwlw/fwlw.tex
new file mode 100644
index 0000000000..674562d086
--- /dev/null
+++ b/macros/latex/contrib/fwlw/fwlw.tex
@@ -0,0 +1,87 @@
+\documentclass[pagesize=auto]{scrartcl}
+
+\usepackage{fixltx2e}
+\setlength\parskip{3pt}
+
+\newcommand*{\mail}[1]{\href{mailto:#1}{\texttt{#1}}}
+\newcommand*{\pkg}[1]{\textsf{#1}}
+\newcommand*{\cls}[1]{\textsf{#1}}
+\newcommand*{\cs}[1]{\texttt{\textbackslash#1}}
+\makeatletter
+\newcommand*{\cmd}[1]{\cs{\expandafter\@gobble\string#1}}
+\makeatother
+\newcommand*{\env}[1]{\texttt{#1}}
+\newcommand*{\opt}[1]{\texttt{#1}}
+\newcommand*{\meta}[1]{\textlangle\textsl{#1}\textrangle}
+\newcommand*{\marg}[1]{\texttt{\{}\meta{#1}\texttt{\}}}
+\newcommand*{\oarg}[1]{\texttt{[}\meta{#1}\texttt{]}}
+\newcommand*{\widevisiblespace}{%
+ \vrule height 2pt depth 0pt width 0.2pt
+ \kern -.1pt
+ \vrule height 0.2pt depth 0pt width 15pt
+ \kern -.1pt
+ \vrule height 2pt depth 0pt width 0.2pt}
+
+\addtokomafont{title}{\rmfamily}
+
+\title{The \pkg{fwlw} package}
+\subtitle{First Word, Last Word}
+\author{Donald Arseneau}
+\date{1995}
+
+
+\begin{document}
+
+\maketitle
+
+\noindent
+The fwlw package provides a mechanism to determine the first and
+last words on the current page, plus the first word on the \emph{next}
+page. (So perhaps it should have been named `fwlwnw'). These words
+can be used in head-lines or foot-lines. The `words' you see may
+not be real words, but any unbreakable object.
+
+Two pagestyles are defined to print these words:
+\verb+\pagestyle{NextWordFoot}+ which helps you read ahead to the
+word on the next page; and \verb+\pagestyle{fwlwhead}+ which is like
+the headers in a lexicon. Or you can use the
+words in your own page-style. The words are made available in the box
+registers:
+%
+\begin{labeling}[\hspace{\labelsep}--]{\quad\cmd{\FirstWordBox}}
+\setlength\itemsep{0pt}
+\item[\quad\cmd{\FirstWordBox}] first word on this page
+\item[\quad\cmd{\NextWordBox}] first word on next page
+\item[\quad\cmd{\LastWordBox}] last word on this page
+\end{labeling}
+%
+Use them in your header lines like: \verb+\usebox\LastWordBox+.
+
+Such labelling does not make sense when \cmd{\chapter} generates a page
+break, so the last page before a \cmd{\chapter} (or any \cmd{\clearpage}) gets
+a blank ``next word'', and the first page of the chapter gets a blank
+``first word''. The fwlwhead page style produces blank headers on
+float pages.
+
+Note that `words' are any unsplittable unit and may be things like:
+%
+\begin{itemize}
+\setlength\itemsep{0pt}
+\item two\textvisiblespace words (\texttt{two}%
+ \lower 2pt\hbox{\verb+~+}\texttt{words})
+ with unbreakable space between them
+\item \widevisiblespace Word (where \widevisiblespace\ represents a
+ paragraph indent)
+\item a whole displayed equation
+\item the first column of an aligned equation
+\item a list item label
+\item anomalously blank, if there are \cmd{\write}s or split footnotes etc.
+\item blank for the first word of the document (because of a \cmd{\write})
+\item partial words like `par-' or `-tial' due to hyphenation.
+\end{itemize}
+%
+In short, a wide range of irregularities will cause non-words to
+be captured, or nothing at all.
+
+
+\end{document}