From a0b9fe01b11de01686c8e02891c57fff5f9a96f1 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 28 Feb 2011 23:27:11 +0000 Subject: fwlw (28feb11) git-svn-id: svn://tug.org/texlive/trunk@21548 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/fwlw/README | 12 +++++ Master/texmf-dist/doc/latex/fwlw/fwlw.pdf | Bin 152390 -> 40435 bytes Master/texmf-dist/doc/latex/fwlw/fwlw.tex | 87 +++++++++++++++--------------- Master/texmf-dist/tex/latex/fwlw/fwlw.sty | 64 +++++++++++++--------- 4 files changed, 93 insertions(+), 70 deletions(-) create mode 100755 Master/texmf-dist/doc/latex/fwlw/README (limited to 'Master/texmf-dist') 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 Binary files a/Master/texmf-dist/doc/latex/fwlw/fwlw.pdf and b/Master/texmf-dist/doc/latex/fwlw/fwlw.pdf 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} -- cgit v1.2.3