summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-02-28 23:27:11 +0000
committerKarl Berry <karl@freefriends.org>2011-02-28 23:27:11 +0000
commita0b9fe01b11de01686c8e02891c57fff5f9a96f1 (patch)
treea81b62a46b6d981bdc9e2ca770829e54e0be8ac6
parentd026a98519637df25984ef5341b4f471608f35d0 (diff)
fwlw (28feb11)
git-svn-id: svn://tug.org/texlive/trunk@21548 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xMaster/texmf-dist/doc/latex/fwlw/README12
-rw-r--r--Master/texmf-dist/doc/latex/fwlw/fwlw.pdfbin152390 -> 40435 bytes
-rw-r--r--Master/texmf-dist/doc/latex/fwlw/fwlw.tex87
-rw-r--r--Master/texmf-dist/tex/latex/fwlw/fwlw.sty64
4 files changed, 93 insertions, 70 deletions
diff --git a/Master/texmf-dist/doc/latex/fwlw/README b/Master/texmf-dist/doc/latex/fwlw/README
new file mode 100755
index 00000000000..32201ac627c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fwlw/README
@@ -0,0 +1,12 @@
+F W L W . S T Y (First Word, Last Word)
+Donald Arseneau (1993, 1995)
+
+ The fwlw package provides a mechanism to determine the first and
+ last words on the current page, plus the first word on the *next*
+ page. These can be used in head-lines or foot-lines. The `words'
+ you see may not be real words, but any unbreakable object.
+
+ Copyright (C) 1993,1995 by Donald Arseneau
+ Vancouver, Canada, email asnd@triumf.ca
+ This software package may be freely used, transmitted, reproduced,
+ or modified provided that this notice is left intact.
diff --git a/Master/texmf-dist/doc/latex/fwlw/fwlw.pdf b/Master/texmf-dist/doc/latex/fwlw/fwlw.pdf
index 84d4c7ace4c..512e6d032b8 100644
--- a/Master/texmf-dist/doc/latex/fwlw/fwlw.pdf
+++ b/Master/texmf-dist/doc/latex/fwlw/fwlw.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/fwlw/fwlw.tex b/Master/texmf-dist/doc/latex/fwlw/fwlw.tex
index be27e0246a7..674562d086f 100644
--- a/Master/texmf-dist/doc/latex/fwlw/fwlw.tex
+++ b/Master/texmf-dist/doc/latex/fwlw/fwlw.tex
@@ -1,14 +1,7 @@
\documentclass[pagesize=auto]{scrartcl}
\usepackage{fixltx2e}
-\usepackage{etex}
-\usepackage{xspace}
-\usepackage{lmodern}
-\usepackage[T1]{fontenc}
-\usepackage{textcomp}
-\usepackage{booktabs}
-\usepackage{microtype}
-\usepackage[unicode=true]{hyperref}
+\setlength\parskip{3pt}
\newcommand*{\mail}[1]{\href{mailto:#1}{\texttt{#1}}}
\newcommand*{\pkg}[1]{\textsf{#1}}
@@ -22,13 +15,12 @@
\newcommand*{\meta}[1]{\textlangle\textsl{#1}\textrangle}
\newcommand*{\marg}[1]{\texttt{\{}\meta{#1}\texttt{\}}}
\newcommand*{\oarg}[1]{\texttt{[}\meta{#1}\texttt{]}}
-\newcommand*{\BibTeX}{Bib\kern-0.08em\TeX\@\xspace}
-\newcommand*{\BigTeX}{Big\kern-0.08em\TeX\@\xspace}
-
-\pdfstringdefDisableCommands{%
- \def\BibTeX{BibTeX\xspace}%
- \def\BigTeX{BigTeX\space}%
-}
+\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}
@@ -43,48 +35,53 @@
\maketitle
\noindent
-Modifications to \LaTeX\ output mechanism to determine the first and
+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. These can be used in head-lines or foot-lines. The `words'
-you see may not be real words, but any unbreakable object.
-
-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''. There is a problem when footnotes split: the ``next word''
-is blank.
-
-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\ldots
+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.
-The words are available in the box registers:
+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}--]{\cmd{\FirstWordBox}}
-\item[\cmd{\FirstWordBox}] first word on this page
-\item[\cmd{\NextWordBox}] first word on next page
-\item[\cmd{\LastWordBox}] last word on this page
+\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+\copy\LastWordBox+.
+Use them in your header lines like: \verb+\usebox\LastWordBox+.
-Note that `words' may be things like:
+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}
-\item \verb+two~words+
-\item \verb+[ ]Word+ (\verb+[ ]+ represents a parindent box)
+\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 partial words like \verb+par-+ or \verb+-tial+.
+\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.
-An entirely different approach is possible using \cmd{\mark} and \cmd{\obeyspaces},
-and would have different problems. The problems with catcode changes
-may be more or less serious for your particular application. You are
-welcome to write a package using that method. The best solution would
-involve \cmd{\mark} and an input filter program to
-`\verb+\w{tag} \w{each} \w{word}, \w{in} \w{some} \w{way}+.'
\end{document}
diff --git a/Master/texmf-dist/tex/latex/fwlw/fwlw.sty b/Master/texmf-dist/tex/latex/fwlw/fwlw.sty
index 17498f0bd51..10a4ee04a5c 100644
--- a/Master/texmf-dist/tex/latex/fwlw/fwlw.sty
+++ b/Master/texmf-dist/tex/latex/fwlw/fwlw.sty
@@ -2,59 +2,73 @@
%
% Donald Arseneau (1993, 1995)
%
-% Modifications to LaTeX output mechanism to determine the first and
+% The fwlw package provides a mechanism to determine the first and
% last words on the current page, plus the first word on the *next*
% page. These can be used in head-lines or foot-lines. The `words'
% you see may not be real words, but any unbreakable object.
%
-% Such labelling does not make sense when \chapter generates a page
-% break, so the last page before a \chapter (or any \clearpage) gets
-% a blank "next word", and the first page of the chapter gets a blank
-% "first word". There is a problem when footnotes split: the "next word"
-% is blank.
-%
% Two pagestyles are defined to print these words: \pagestyle{NextWordFoot}
% which helps you read ahead to the word on the next page; and \pagestyle
% {fwlwhead} which is like the headers in a lexicon. Or you can use the
-% words in your own page-style...
-% The words are available in the box registers:
-% \FirstWordBox - first word on this page
-% \NextWordBox - first word on next page
-% \LastWordBox - last word on this page
-% Use them in your header lines like: \copy\LastWordBox.
+% words in your own page-style. The words are made available in the box
+% registers:
+% \FirstWordBox - first word on this page
+% \NextWordBox - first word on next page
+% \LastWordBox - last word on this page
+% Use them in your header lines like: \usebox\LastWordBox.
+%
+% Such labelling does not make much sense when \chapter generates a page
+% break, so the last page before a \chapter (or any \clearpage) gets
+% a blank "next word", and the first page of the chapter gets a blank
+% "first word".
%
-% Note that `words' may be things like:
+% Note that `words' may unfortunately be things like:
% - two~words
% - [ ]Word ( [ ] represents a parindent box)
% - a whole displayed equation
% - the first column of an aligned equation
% - anomalously blank, if there are \writes or split footnotes etc.
-% - partial words like par- or -tial.
+% - partial words like par- or -tial due to hyphenation.
%
+% (Major digression...)
% An entirely different approach is possible using \mark and \obeyspaces,
% and would have different problems. The problems with catcode changes
-% may be more or less serious for your particular application. You are
-% welcome to write a package using that method. The best solution would
+% may be more or less serious for your particular application. (You are
+% invited to write a package using that method!) The best solution would
% involve \mark and an input filter program to
% `\w{tag} \w{each} \w{word}, \w{in} \w{some} \w{way}.'
-
+% TeX has no \everyword hook to insert such tagging.
+%
+% Copyright (C) 1993,1995 by Donald Arseneau
+% Vancouver, Canada, email asnd@triumf.ca
+% This software package may be freely used, transmitted, reproduced,
+% or modified provided that this notice is left intact.
+%
+% Declare a "unique" penalty value as flag
\mathchardef\LW@pen 12345
+
+% allocate box registers
\newbox\FirstWordBox \global\setbox\FirstWordBox\hbox{}
\newbox\NextWordBox \global\setbox\NextWordBox\hbox{}
\newbox\LastWordBox \global\setbox\LastWordBox\hbox{}
\newbox\LW@box \global\setbox\LW@box\hbox{}
\newbox\LW@saved
+% pagestyle fwlwhead: header line hsa first word and last word
\def\ps@fwlwhead{\let\@mkboth\@gobbletwo
- \def\@oddhead{\if@fcolmade\else \copy\FirstWordBox\hfil\copy\LastWordBox\fi}%
- \let\@evenhead\@oddhead % no word-heads on float pages.
+ \def\@oddhead{\if@fcolmade\else % no word-heads on float pages.
+ \usebox\FirstWordBox\hfil\usebox\LastWordBox\fi}%
+ \let\@evenhead\@oddhead
\let\@oddfoot\@empty\let\@evenfoot\@oddfoot
\let\chaptermark\@gobble\let\sectionmark\@gobble\let\subsectionmark\@gobble
}
+% pagestyle NextWordFoot: foot line has page number and next-page first word,
+% but only on odd pages
\def\ps@NextWordFoot{\let\@mkboth\@gobbletwo
\let\@oddhead\@empty\let\@evenhead\@oddhead
- \def\@oddfoot{\hfil\thepage\hfil\llap{\copy\NextWordBox}}\let\@evenfoot\@empty
+ \def\@oddfoot{\hfil\thepage\hfil\llap{\usebox\NextWordBox}}%
+ \let\@evenfoot\@empty
\let\chaptermark\@gobble\let\sectionmark\@gobble\let\subsectionmark\@gobble
}
@@ -62,10 +76,10 @@
% letting TeX continue with \vsize=0 to get a look at the next line.
% Values of \outputpenalty for \specialoutput ( -10001 to -19999 ) are
% simply run through the output routine.
-% \supereject and \clearpage give a blank "next word"
-% When called after making a stub-page the stub is returned to the vertical
-% list, the previous page is restored and shipped out normally, but
-% knowing what the next word will be.
+% \supereject and \clearpage give a blank "next word".
+% When called after making a stub-page the stub is returned to the
+% vertical list, the previous page is restored and shipped out normally,
+% but knowing what the next word will be.
\edef\FWLWnorm@L@output{\the\output}