summaryrefslogtreecommitdiff
path: root/info/laan/pwt/pwt.fmt
diff options
context:
space:
mode:
Diffstat (limited to 'info/laan/pwt/pwt.fmt')
-rw-r--r--info/laan/pwt/pwt.fmt1467
1 files changed, 1467 insertions, 0 deletions
diff --git a/info/laan/pwt/pwt.fmt b/info/laan/pwt/pwt.fmt
new file mode 100644
index 0000000000..df373a78e7
--- /dev/null
+++ b/info/laan/pwt/pwt.fmt
@@ -0,0 +1,1467 @@
+\input blue \loadindexmacros \report \hfuzz=15pt
+%\telephone{{\oldstyle31\thinspace{\rm(}0{\rm)}%
+% 594\thinspace62\thinspace1525}}
+
+\bluechapter Formats
+
+\beginsummary
+Next to the regular format BLUe's format contains the
+report and transparencies formats.
+The letter and concert format from the \TeX book have been
+reviewed and the goodies in there have been borrowed.
+The letter format makes use of the address.dat database.
+Treated are among other things
+how to use the formats,
+how to proof separate chapters of a report,
+how to create and update a set of transparencies,
+how to format letters, make address labels, and
+how to extend the databases by a format, tool, or address of your own.
+A table of main tags and a list of the Frequently Used Tags,
+for the letter, report and transparencies format, have been included.
+\endsummary
+
+Before delving into the details of the database approach,
+I'm happy to let you know that you can do without it, can fall
+back on the traditonal method of file inclusion, if for some reason
+or other you don't feel comfortable with databases.
+For example, if you like to make use of the transparencies macros from
+BLUe's format, copy the relevant part from fmt.dat into,
+say, trspar.tex. Then proceed as usual, for example as follows.
+\begincenterverbatim
+\input blue.tex
+\input trspar.tex
+<restofbluescript>
+!endcenterverbatim
+On the other hand those who like the database approach can peruse
+`BLUe's Format databases.'
+
+^^{database,\ fmt.dat}
+\bluehead Use of formats from fmt.dat database
+
+To use a format just start a script with\ftn{Inclusion of files etc.
+ is handled behind the scenes. Default the format is suited for an article.}
+\displaycenterline{|\input blue.tex \<formatname>|}
+The markup tags are upwards compatible, i.e.,
+the tags from the regular \bluetex{} are still there,
+but extended with extra tags.
+The coding of the tags from the default format
+have been adapted to the look-and-feel of |\<formatname>|,
+the design if I may say so.
+
+\bluesubhead Adding a format
+
+To ^{add\ a\ format} to the BLUe's format system the following has to be done.
+\bitem separate the storage-allocating
+ control sequences from the format,
+ i.e., treat \cs{newtoks} and the like separately
+\bitem add the allocation control sequences to \bluetex
+\bitem add the format with an `opening' and `closing' to fmt.dat
+\bitem add a load macro to \bluetex.
+\smallbreak
+In actual fact this comes down to the following. Add to fmt.dat
+\begincenterverbatim
+\tool\<yourformat>fmt%Opening
+<themacros>
+\endinput %Closing
+!endcenterverbatim
+and include in the kernel \bluetex{} the load macro and the storage allocations
+^^{entry\ for\ fmt.dat}
+\thisverbatim{\catcode`\|=12
+ \catcode`\!=12
+ \catcode`\~=0
+ }
+\begincenterverbatim
+%load macro
+\def\<yourformat>{\let\<yourformat>fmt=x
+\loadformat
+\let\<yourformat>fmt=\undefined
+}
+%storage allocations
+\new<type>\<name>
+%<type> is one of box count dimen fam insert language skip
+% muskip read toks write
+%et cetera
+~endcenterverbatim
+Note the difference between |\<yourformat>| and |\<yourformat>fmt|.
+Take care that |\<yourformat>fmt| remains undefined afterwards.
+Now and then I safeguarded formats from double loading.
+
+There are a few restrictions on the macros, as a consequence
+of the skipping mechanism used, via \TeX's argument processing.
+\bitem no outer defs, i.e., \cs{newtoks} and the like should
+ be declared in regular \bluetex
+\bitem no \cs{par}, use \cs{endgraf}, or |\csname par\endcsname|
+\bitem no blank lines, insert \%
+\smallbreak
+Remarks.
+The restriction with respect to your outer defs can be circumvented by
+\bitem define all macros non-outer, or
+\bitem use |\csname newtoks\endcsname\<tag>|, and the like, or
+\bitem extend \cs{unouterdefs} by your outer defs, i.e.,
+ include \cs{newtoks} and similars. When these are
+ part of the format or tool, multiple use
+ reallocates memory, and because \TeX{}
+ lacks a garbage collector this will cost extra
+ memory locations.
+\smallbreak
+
+\bluesubsubhead Check for data integrity
+
+After a format has been added one can check whether the file can be scanned by
+\TeX{} via making a table of contents as follows.
+\begincenterverbatim
+\input blue.tex
+\contentstoolsorfmt{fmt}
+\bye
+!endcenterverbatim
+This script produces no pages of output (that is OK).
+The file contentsfmt will be created though.
+
+\bluesubsubhead Verbatim listing of a format
+
+This problem is induced by my multi-file approach. Of course
+one can extract the format by an editor et cetera as alternative.
+
+\blueexample Verbatim listing of letter format
+
+\begincenterverbatim
+\input blue.tex \let\letterfmt=x
+\long\def\tool#1{\ifx#1\undefined\bgroup\unouterdefs\ea\gobbletool
+ \else\ea\toolverbatim\fi}
+%\def\toolverbatim{\thisverbatim{\baselineskip12pt plus2pt minus1pt
+% \lineskip1pt plus1pt minus1pt}\beginverbatim}
+\def\cgl{\endverbatim\endinput}
+\input fmt.dat \bye
+!endcenterverbatim
+
+\bluesubsubhead Conventions for entries fmt.dat
+
+come down to
+\bitem update the contents at the beginning of the file fmt.dat
+\bitem supply |\message{ ---<...> format, <date>, <owner>--- }| in the beginning
+\bitem take care of visual layout for print out
+\bitem provide additional comments which contain markup for line numbering
+\bitem add history of changes
+\bitem add a table of contents with line numbers.
+\smallbreak
+The layout is aimed at printing in two columns and starts in a new column.
+The selective line numbering is controlled by the following control sequences
+\item{}\cs{numvrb}, to start line numbering
+\item{}\cs{vrblin} = |<number>|, to adjust line counter, and
+\item{}\cs{nonum} to switch off line numbering.
+\smallbreak
+Do remember that the escape char is the semi-colon.
+
+\blueexample Template for an entry in fmt.dat
+
+\begincenterverbatim
+%end%%%%%<lastlinepreviousformat>%;newcol
+%
+%
+%begin%%%%%%%%%%%%%%%%%%%%%<....>%;numvrb
+\tool\<...>fmt
+\message{ ---<...> format, <date>,
+ <owner>--- }
+%<authorinformation>
+%<theformatproper>
+\endinput %;nonum
+%Contents
+%<item>...................<pagenumber(s)>
+%etc
+%History of changes
+%<date> <change>
+%etc
+%end%%%%%%%%%%%%%%%%%%%%%%%<....>%!!cgl;newcol
+!endcenterverbatim
+
+\bluehead Concert format
+
+Please open \TB{} on page {\oldstyle411}. What about this concert announcement?
+I never received such a leaflet when attending a concert. ^^{format,\ concert}
+The ones I got are prettier, so there is no use in copying this template.\ftn{I
+ have included the macros in the format \cs{concert} nevertheless,
+ for your convenience.}
+This is more or less in agreement with what
+Knuth states
+\beginquote\noindent
+\llap`Notice that the \cs{composition} and \cs{movements} and \cs{soloists}
+ macros do not include any special provision for vertical spacing; the
+ user is supposed to insert \cs{smallskip}, \cs{medskip}, and
+ \cs{bigskip} as desired. This was done deliberately, because different
+ concert programs seem to demand different spacing; no automatic scheme
+ actually works very well in practice, since musical literature is
+ so varied.'
+\endquote
+What can we learn from the format, especially the macros?
+Usually a lot. Here we go.
+\bitem The simple ^{size-switching macros} are nice, intelligible,
+ and compact, because we don't deal with math in this context.
+ The tags are just \cs{smalltype}, \cs{medtype}, and \cs{bigtype}.
+ A pedagogical stepping stone for size-switching macros in general.
+\bitem The ^|\tsaologo| is nice too. I have used it for
+ delineating parts in `Math into BLUes.' My variant is the macro
+ ^|\partlogo| with the text as argument. The latter is part of \bluetex.
+\bitem The ^|\soloists| macro deserves more general use. It shows
+ how to use \cs{halign} to {\sl center a block of text}. Moreover, it
+ can be recast into a two-part macro.
+ Note that \cs{centerline} has been used, but
+ the \cs{vbox} could have been replaced by math display markup with
+ the automatic insertion of \cs{displayskip} before and aft.
+ And why not get rid of the \cs{cr}? Natural input?
+ A matter of taste? I agree partly. The advantage
+ is the extra option possibility after the opening keyword. In this
+ case we can parameterize over the font to be used.
+\smallbreak
+
+\bluesubhead Centering a block
+
+The coding of \cs{soloists} can be combined with the coding of
+\cs{begindisplay}, \TB{} {\oldstyle421}, to yield a two-part macro for centering a block,
+with the flexibility to specify the font after \cs{begincenterblock}.
+Moreover, I incorporated the natural markup idea. No \cs{cr} has to be
+supplied by the user, \TeX{} will insert those.
+The macro is part of \bluetex. ^^|\begincenterblock|%^^|\endcenterblock|
+\begincenterverbatim
+\def\begincenterblock{\bgroup
+ \let\par\cr\obeylines\startcenterblock}
+{\obeylines\gdef\startcenterblock#1
+ {$$#1\vbox\bgroup\halign\bgroup&##\hfil\cr}}
+\def\endcenterblock{\egroup\egroup$$\egroup}
+!endcenterverbatim
+
+\blueexample The soloists macro; block centering
+
+\begindemo
+\begincenterblock\bf
+Ben Lee User, horn
+Peter Schickele, hardart
+\endcenterblock
+!yields
+\begincenterblock\bf
+Ben Lee User, horn
+Peter Schickele, hardart
+\endcenterblock
+\enddemo
+Remark. The disadvantage of this macro is that no
+ page break will occur within the vbox.
+% As usual there are advantages and disadvantages.
+
+\bluehead Letter format
+
+Please open \TB{} on page {\oldstyle403}, and you will see a marvel of natural markup.
+Only {\oldstyle5} tags are needed to mark up a letter.
+^^{format,\ letter}
+\begincenterverbatim
+\letterhead \address \body \closing \endletter
+!endcenterverbatim
+If this is such a great approach,
+how come that it has not been taken over?
+IMHO, with all respect, it was too difficult to customize.
+At the time \TeX ies were busy porting the system to the various
+platforms.
+Moreover, nowadays I would like to
+\bitem store addressees in a database, and use them from there
+^^{database,\ address.dat}
+\bitem have a simpler letterhead
+\bitem let ^|\headline| take care of the headers
+\bitem use fewer fonts, prevent suffering from fontitus
+\bitem use the known sender\Dash remember BLUe's format is yours,
+ it knows about your context
+\bitem use window envelopes
+\bitem introduce token variables for ^|\subject|, ^|\yourreference|,
+ and ^|\ourreference|
+\bitem make positioning of the address flexible in such a way
+ that it can move to adjust to your window envelope
+\bitem adapt \cs{makelabel}\ftn{I named it \cs{makelabels}.}
+ to work independenly with the address.dat database
+ (Handy for address labels for carbon copies among other things)
+\bitem substitute \cs{beginscript} for \cs{beginletter} and ditto for the
+ \cs{endscript}.\ftn{Well, \dots\thinspace I allowed \cs{beginletter}
+ as alias, ditto for \cs{endletter}.}
+^^|\makelabels|\smallbreak
+Because of the above, it is of no use to
+include the letter format literally from \TB.
+Furthermore, I simplified the approach a little, \smiley, to facilitate
+customization.
+The variant has been incorporated as \cs{letter} format in the fmt.dat
+database.
+
+Note. The \cs{footline} on the first page is free to contain business
+information like giro, Chamber of Commerce number and the like.
+BLUe's format contains a toks variable \cs{businessaccount} for that
+purpose. See NTG's letter format.
+
+\bluesubhead Use of the letter format
+
+In order to use this format the user has to customize his letter
+format and make sure address.dat is available.\ftn{Well,
+ the latter can be circumvented
+ if \cs{loadreference} is replaced by a def with
+ the name of the addressee, followed by
+ the affiliation of which each line is preceded by |\\|,
+ as replacement text.}
+^^{script,\ letter}
+\begincenterverbatim
+\input blue.tex \letter %Knows about logo, sender
+\subject{...}
+\yourreference{...} \ourreference{...}%just numbers
+\addresses{\<name>} %load list of address{es}
+\addressee{\<name>}
+\beginscript
+\dear
+....
+\sincerely %knows about you
+\cc ... %Optional set cc. ....
+\ps ... %Optional set P.S. ....
+\appendix{<appendixtitle>}
+<appendixmaterial>
+\endscript
+!endcenterverbatim
+The \cs{appendix} control sequence takes one argument.
+It starts a new page but continues numbering.
+%The material will be set after an \cs{item}.
+
+If the letter proper is stored in letter.tex, then the use looks even simpler.
+\begincenterverbatim
+\input blue.tex \letter %Knows about logo, sender
+\subject{...}
+\yourreference{...} \ourreference{...}%just numbers
+\letterto{\<name>...}
+!endcenterverbatim
+
+\blueexample A letter script; a letter to Don Knuth
+
+\beginverbatim
+\input blue.tex \letter %Preliminary initializations
+\subject{\TeX{} for BLU}
+\ourreference{22 1 95}
+\yourreference{\TB}
+\addresses{\knuthde}
+\addressee{\knuthde} %Initializes \addresseename \affiliationbox
+ %\thisscript{\notlastscript}
+\beginscript %\beginletter is an alias
+\dear
+First of all I'm much obliged to your works especially \TB.
+As you know roughly 10k organized users profit from your system
+in getting their work out. It is estimated that the number of
+{\sl unorganized\/} users is a tenfold.
+I like your Ben Lee User character very much,
+and hope he will benefit from my work towards understanding
+and using \TeX{} with confidence.
+\bigskip
+What puzzles me is that manmac has been neglected so much.
+Is it because a user's guide was lacking?
+Was \TeX{} too far ahead of its time?
+Too unusual?
+\bigskip
+I'm also puzzled about the neglectance of the letter format.
+Was it too difficult for \TeX ies to customize at the time?
+I mean, it is confusing to mix the line mode and the par mode.
+As you can see from the \cs{letter} format I included, as part of
+BLUe's format, I refrained from those and concentrated on
+customization.
+I also made use of a database of addresses, but that is
+a minor \TeX nical point, because the markup abstracts from
+that detail as it should. Just |\adressee\<name>|.
+\bigskip
+Whatever the reasons, I hope that my work will ease the use of manmac,
+or even better BLUe's format.
+The latter has manmac assimilated, and taken notice of
+experience gained since the release of manmac.
+\bigskip
+After this work on using \TeX{} I intend to write
+another booklet on \TeX{} macro writing, to emphasize two-part macros,
+because two-part macros are in the dark in the \TeX book.
+They are lacking in the chapter on macro writing\Dash except for \cs{beginbold}
+ and \cs{endbold}\Dash but have been used in manmac, and
+therefore are dealt with in Appendix~E.
+IHMO, with all respect, they deserve more attention.
+By that time, I hope to be familiar with `\TeX{} The Program' too.
+\bigskip
+In near future I'll direct myself to \MF, well META{\smc post},
+and pay attention to {\oldstyle2}.{\oldstyle5}-D applications.
+I have in mind to emulate the works of Naum Gabo, a sculptor,
+whose objects I like very much. The exciting thing in there is
+that I can emulate the work in {\oldstyle2}.{\oldstyle5}-D
+with only {\oldstyle1}-D information.
+The latter is quite obvious because he used regular surfaces.
+However, it is apparently me who arrived at the crossroads.
+\bigskip
+I would appreciate it very much if you would let me know
+that you have received this work, and of course,
+I welcome suggestions.
+\sincerely
+\ps When I entered `Het Nederlands Rekenmachine Genootschap,'
+ in {\oldstyle1967}, the first volume of the Art of Computer
+ Programming was given to me, because of my lucky membership
+ number, {\oldstyle1024}.
+ I really could not foresee at the time that my interest in your work
+ would take this turn
+\cc NTG
+\endscript
+!endverbatim
+\storedpageno\count0
+\storedheadline\headline
+\storedfootline\footline
+\newpage
+{\letter
+%Preliminary initializations
+\subject{\TeX{} for BLU}
+\ourreference{22 1 95}
+\yourreference{\TB}
+\addresses{\knuthde}
+\addressee{\knuthde} %Initializes \addresseename \affiliationbox
+ \thisscript{\notlastscript}
+\beginscript
+\dear
+First of all I'm much obliged to your works especially \TB.
+As you know roughly 10k organized users profit from your system
+in getting their work out. It is estimated that the number of
+{\sl unorganized\/} users is a tenfold.
+I like your Ben Lee User character very much,
+and hope he will benefit from my work towards understanding
+and using \TeX{} with confidence.
+\bigskip
+What puzzles me is that manmac has been neglected so much.
+Is it because a user's guide was lacking?
+Was \TeX{} too far ahead of its time?
+Too unusual?
+\bigskip
+I'm also puzzled about the neglectance of the letter format.
+Was it too difficult for \TeX ies to customize at the time?
+I mean, it is confusing to mix the line mode and the par mode.
+As you can see from the \cs{letter} format I included, as part of
+BLUe's format, I refrained from those and concentrated on
+customization.
+I also made use of a database of addresses, but that is
+a minor \TeX nical point, because the markup abstracts from
+that detail as it should. Just |\adressee\<name>|.
+\bigskip
+Whatever the reasons, I hope that my work will ease the use of manmac,
+or even better BLUe's format.
+The latter has manmac assimilated, and taken notice of
+experience gained since the release of manmac.
+\bigbreak
+After this work on using \TeX{} I intend to write
+another booklet on \TeX{} macro writing, to emphasize two-part macros,
+because two-part macros are in the dark in the \TeX book.
+They are lacking in the chapter on macro writing\Dash except for \cs{beginbold}
+and \cs{endbold}\Dash but have been used in manmac,
+and therefore are dealt with in Appendix~E.
+IHMO, with all respect, they deserve more attention.
+By that time, I hope to be familiar with `\TeX{} The Program' too.
+\bigskip
+In near future I'll direct myself to \MF, well META{\smc post},
+and pay attention to {\oldstyle2}.{\oldstyle5}-D applications.
+I have in mind to emulate the works of Naum Gabo, a sculptor,
+whose objects I like very much. The exciting thing in there is
+that I can emulate the work in {\oldstyle2}.{\oldstyle5}-D
+with only {\oldstyle1}-D information.
+The latter is quite obvious because he used regular surfaces.
+However, it is apparently me who arrived at the crossroads.
+\bigskip
+I would appreciate it very much if you would let me know
+that you have received this work, and of course,
+I welcome suggestions.
+\sincerely
+\ps When I entered `Het Nederlands Rekenmachine Genootschap,'
+ in {\oldstyle1967}, the first volume of the Art of Computer
+ Programming was given to me, because of my lucky membership
+ number, {\oldstyle1024}.
+ I really could not foresee at the time that my interest in your work
+ would take this turn
+\cc NTG
+\endscript
+\newpage}
+%Restore previous values
+\count0\storedpageno\advance\count0by3
+\headline\storedheadline
+\footline\storedfootline
+\onecol%Restore \vsize
+
+\bluesubsubhead Syntax entries address database
+
+The address.dat database contains addresses sorted on name.
+Each entry obeys the syntax, as shown by the following example.
+^^{entry\ for\ address.dat}
+\begincenterverbatim
+\lst\<name>{<salutationname>
+ %Each line preceded by \\
+ \\<fullname>
+ \\<affiliation>
+ \email{...}%optional
+ \phone{...}%Optional
+}
+!endcenterverbatim
+
+\blueexample Entry address.dat database
+
+\begincenterverbatim
+\lst\ntg{NTG
+\\Nederlandstalige \TeX{}
+ Gebruikersgroep
+\\Postbus 394
+\\1740 AJ Schagen
+\\The Netherlands
+\email{ntg@nic.surfnet.nl}
+\registeredbluetrue
+}
+!endcenterverbatim
+
+To ^{add\ an\ address} just adhere to the syntax, and include
+the new address in address.dat, in the right order.
+Note that it is also possible to introduce fields, which can be used in a query and
+otherwise don't hinder, like \cs{registeredbluetrue}. ^^{field of database}
+
+\bluesubsubhead Check for data integrity
+
+After an address has been added one can check
+whether the file can be scanned by
+\TeX{} via making a table of contents as follows.
+\begincenterverbatim
+\input blue.tex
+\contentsdatabase{address}
+\bye
+!endcenterverbatim
+This script produces no pages of output (that is OK).
+The file contentsaddress will be created though.
+If you have a file with addresses of your own, say abc.dat, provide also
+\cs{newwrite} \cs{tocabc}.
+
+\bluesubsubhead Multiple letters
+
+Erik Frambach asked me how to format ^{multiple letters}, with each letter
+personalized by incorporating the address.
+If we are talking of a few letters there is no problem at all.
+Store the letter in a file and repeat the formatting for each letter.
+
+Let us assume that we wish to address a list of addressees, and that these
+addressees are already in our database address.dat.
+
+The approach to solve this is to go through the list of adressees, via
+FIFO, and `process' each with the letter. ^^{fifo}
+\begincenterverbatim
+\input blue.tex \letter
+\subject{\TeX{} for BLU}
+\yourreference{\TB}
+\ourreference{1$\,$2$\,$95}
+\letterto{\knuthde\ntg}
+\bye
+!endcenterverbatim
+This scheme also works for one letter.
+Note that after Dear the salutation name is used,
+which gives a personal flavour.
+
+\bluesubsubhead And what about a letter to the complete address database?
+
+Logically, this is simple. Make a list of all the names of
+the database elements and supply this list to ^|\letterto|.
+We can let \TeX{} do all the work, by using ^|\lettertoall|
+as follows.
+\begincenterverbatim
+\input blue.tex \letter
+\subject{\TeX{} for BLU}
+\yourreference{\TB}
+\ourreference{1 2 95}
+\lettertoall
+\bye
+!endcenterverbatim
+An interesting application is that for example NTG can send a\Dash more or less
+personalized\Dash letter to all its members.
+
+\bluesubsubhead Address labels
+
+Especially for the case of carbon copies separate address labels are wanted.
+For that purpose I modified Knuth's \cs{makelabel} into
+^|\makelabels|. ^^|\makealllabels|
+\begincenterverbatim
+\input blue.tex \letter
+\makelabels{\knuthde\ntg}
+%and all address labels
+%can be obtained via
+\makealllabels
+\bye
+!endcenterverbatim
+If you prefer smaller address labels provide \cs{twocol}.
+
+\bluesubsubhead Searching the address.dat database by pattern
+
+^^{search\ of\ database}
+BLUe's format provides a \cs{search} macro with
+a search pattern as argument.
+The purpose is to search the database file provided in
+the toks variable \cs{searchfile},
+for this search pattern.
+The result of the search is a list of names, of which
+the replacement text contains the search pattern.
+This list of names is delivered in the toks var \cs{namelist},
+and for the time being they are also written to the log file.
+
+\blueexample Search for addresses from RUSSIA in the database address.dat
+
+In order to justify my use of the word
+database in relation to \TeX, I provided the search macro
+to browse the databases lit.dat and address.dat.
+Below the input and result have been given of the search of address.dat
+for the pattern RUSSIA. The result is contained in the toks variable
+\cs{namelst}. The names are also written to the log file
+to give you a check for whether the right names have been selected.
+
+\begindemo
+\input blue.tex
+\searchfile{address}
+\search{RUSSIA}
+\bye
+!yields
+\cs{lst}\cs{gorbunovai}
+\cs{lst}\cs{grinevaoa}
+\cs{lst}\cs{makhovayai}
+\enddemo
+
+This is handy for making address labels grouped per country.
+\begincenterverbatim
+\input blue.tex \letter
+\search{RUSSIA}
+\makesearchlabels
+\bye
+!endcenterverbatim
+^^|\makesearchlabels|
+^^|\makesearchletters|
+\exercise Do you see the extension for sending letters to all those people?
+\answer BLUe's format system contains the command \cs{makesearchletters}, similar
+ to \cs{makesearchlabels}.
+
+Remarks. A search pattern should not contain a period.
+ The search is case sensitive.
+
+\bluesubsubhead Sorting the address.dat database
+
+^^{sorting\ of\ database}
+With databases a convenient aspect while reporting is the possibility of sorting
+the database on secondary keys. Below I have included by example how this
+can be achieved.\ftn{In `Sorting in BLUe'
+ I have shown how address labels can be sorted all within \TeX.
+ At that time I had not yet incorporated the database idea within \TeX.}
+
+The idea is that the `list' of names of the database entries are
+sorted according to the criterion.
+Because blue.tex's sorting macros sort an array,
+the list is stored in an array.
+
+The major steps for typesetting the membership database sorted on
+(membership) number, are that the {\em names\/} of the database entries are
+\bitem stored in the array |\1, \2, ... , \<n>|
+\bitem redefined with the value of \cs{no} as replacement text
+\bitem sorted
+\bitem redefined with the database entry as replacement text, and
+\bitem typeset.
+\smallbreak
+
+\blueexample Sorting address.dat on number
+
+The sorting of address.dat on (membership) number can be achieved with blue.tex as follows.
+\beginverbatim
+\loadindexmacros %Contains sorting macros
+\def\lst#1#2{%Function: \def\<k>{#1} \def#1{<number>}, with
+ % \no{<number>} last item in each database entry
+ \advance\k1 \ea\def\csname\the\k\endcsname{#1}%
+ \ea\def\ea#1\gobbletono#2}
+\def\gobbletono#1\no{}
+\k0
+\input toy.dat %The test database
+\n\k %number of items
+No unsorted: \1, \2, \3, \4, \5, \6. %A snapshot
+
+\let\cmp\cmpn\sort
+Sorted on no value: \1, \2, \3, \4, \5, \6.
+
+\def\lst#1#2{\def#1{#2}}%Redefine names by their database entry
+\input toy.dat
+Database entries sorted on no value:
+%For typesetting we need
+\let\\\par \def\no{\\Number=} \def\phone{\\Phone: } \def\email{\\Email: }
+%Typeset entries with increasing membership number
+\smallskip\1\smallskip\2\smallskip\3\smallskip\4\smallskip\5\smallskip\6.
+\bye
+!endverbatim
+Each entry of the database is a triple \cs{lst}, |\<name>|, and a group,
+with the group structured as shown in the syntax of an entry of the
+(toy) membership database given below.
+\beginverbatim
+\lst\<name>{<forename>
+\\<full name>
+\\<address>
+\email{<address>}
+\phone{<number>}
+\no{<number>}
+}
+!endverbatim
+
+\bluesubhead Customization
+
+If there is one format which is candidate for customization this is the one.
+However, much information is already known by the system, like
+\cs{author}, \cs{address}, \cs{logo}, et cetera.
+Also addressees are known because of the address database.
+What is left is to position the address in the address window.
+BLUe's format provides the skip variables
+\cs{haoffset} and \cs{vaoffset}.
+These determine the shifts of the address within the window,
+horizontally or vertically, respectively.
+
+When you are not satisfied with the basic layout then the \cs{headline}
+and \cs{footline} have to be rewritten, because how the
+information is pasted up will be taken form these token variables.
+How to design your own letter format
+is beyond the scope of this user's guide.
+
+\bluesubsubhead And what about a letter on behalf?
+
+Suppose your letter has to be sent by fax and signed by a formal organization
+instead of yourself. How can we achieve this? A real-life example is a letter
+I sent to the ISF signed by the secretary of the NTG. The key to the solution is
+to know which variables to adjust. It is not that difficult to look for those
+in the fmt.dat file in the letter part. ^^{letter on behalf}
+Tht letter format comprises a {\oldstyle100} lines or so.
+Here they are anyway:
+ \cs{address},
+ \cs{netaddress},
+ \cs{businessaccount},
+ \cs{fullname} and
+ \cs{affiliationbox}.
+ (In general redefine also \cs{ntglogobox}.)
+The greetings is inserted explicitly.
+\beginverbatim
+\input blue.tex \letter %\fax{(202)342-2765}
+\subject{Request J. Soros travel grant}
+\ourreference{5}
+\yourreference{}
+%\addresses\isf\addressee\isf %Switched off, details exlicitly provided
+%To override defaults from BLUe.tex
+%address sender
+\address{Postbus {\oldstyle394}\\{\oldstyle1740}AJ Schagen\\The Netherlands}
+\netaddress{ntg@nic.surfnet.nl}
+\businessaccount{\vtop{\hbox{\strut KvK Groningen nr V{\oldstyle025936}}
+ \hbox{\strut GIRO {\oldstyle1306238}, NTG}}}
+%addressee
+\setbox\affiliationbox\hbox{International Science Foundation\\
+ Washington\\USA}
+\fullname{ISF} %Used in headline follow pages
+\beginscript %\beginletter is an alias
+L.S.,
+\bigskip
+The NTG ---Dutch language-oriented \TeX{} Users Group---
+is organizing the Euro\TeX{} {\oldstyle95} meeting,
+September {\oldstyle4}--{\oldstyle8}, at Arnhem.
+\bigskip
+Our plan is to facilitate participation from East and Mid European countries,
+i.e., from CSTUG, CyrTUG, GUST, and HunTUG, not on an individual basis
+but for some 50 members in total of those groups.
+\bigskip
+We are convinced that this project will stimulate scientific cooperation
+between East and West and hope that the ISF will also support this effort by
+a grant.
+\begingroup%local re-assignation
+\author{G.J.H. van Nes\smallskip
+ {\small secretary NTG}}
+\sincerely
+\endgroup
+\ps \TeX{} is the revolutionary computer-assisted typesetting system designed by D.E. Knuth.
+\cc CSTUG: Matematick\'y \'ustav UK, Sokolovsk\'a 83, CS-186 00 Prague,
+ CZECH Republic\\(The Czech \TeX{} Users Group. horakk@earn.cvut.cz)\\
+ CyrTUG: MIR publishers, 2 Pervy Rizhsky pereulok, Moscow 129820, RUSSIA\\
+ (The Cyrillic \TeX{} Users Group from CIS{}. cyrtug@mir.msk.su)\\
+ GUST: Institut Bada\'n Systemowych PAN, ul.~Newelska 6, 01-447, Warszawa,
+ POLAND\\(The Polish \TeX{} Users Group. tomasz@panda.bg.univ.gda.pl)\\
+ HunTUG: Institute of Mathematics and Informatics, Lajos Kossuth University
+ of Debrecen, H-4010 Debrecen, P.O.B. 12, HUNGARY\\
+ (The Hungary \TeX{} Users Group. ludens@tigris.klte.hu)\\
+\endscript
+!endverbatim
+
+Remark. Maybe I should make it possible to allow for multiple users, read senders
+of letters.
+
+\bluesubsubhead And what about enclosures?
+
+I was so preoccupied by letters completely processed by \TeX{} or its ilks,
+that I simply overlooked the wish to specify ^{enclosures} and include these fysically.
+Well, \dots no problem. Just define
+\beginverbatim
+\def\enclosures{\bigskip Enclosures: \small }
+!endverbatim
+and use this for example at the end\Dash just before \cs{endscript}\Dash as follows
+\beginverbatim
+\enclosures{Copy of bank payment}
+!endverbatim
+Creeping featurism? Let us put it positively:
+no unnecessary issues have been implemented, and
+when something is needed we can easily add it.
+
+
+\bluesubsubhead Your summary of main markup tags for letters
+
+The Frequently Used Tags, FUTs for short\Dash indeed a handful, as already indicated in
+ the template in the `Introduction'\Dash for personalizing.
+Use it as crib.
+
+\beginverbatim
+!bf
+Letter proper!tt
+\addresses{...}
+\addressee{...}
+\subject{...}
+\yourreference{...}
+\ourreference{...}%only digits
+\letterto{...}
+\lettertoall
+\vaoffset
+\haoffset
+!bf
+Copy Proper!tt
+\beginscript
+\endscript
+\dear
+\sincerely
+\cc
+\ps
+\appendix{...}
+!bf
+Address labels!tt
+\makelabels{...}
+\makealllabels
+\makesearchlabels
+!endverbatim
+
+
+\newpage
+\bluehead Report format
+
+A report is set in one-column, with per page a header and footer.
+The header is suppressed for the preliminary pages and
+for every first page of a chapter. ^^{format,\ report}
+The latter starts with a
+title and summary followed by the copy proper.
+The footer is suppressed for the preliminary pages, i.e.,
+these pages lack numbering, among other things.
+
+^^|\chapterhead|^^|\summary|
+^^|\begindemo|%^^|\enddemo|
+^^|\yields|
+^^|\displaycenterline|
+^^|\begincenterdisplay|%^^|\endcenterdisplay|
+Some new control sequences are
+\begincenterdisplay
+\cs{preface} &for a preface\cr
+\cs{chapterhead} &for chapter title\cr
+\cs{setupappendices} &for letters as numbers\cr
+\cs{pasteup...} &to paste up elements\cr
+\endcenterdisplay
+Next to the coding of the new control sequences several existing control
+sequences had to be recoded to comply with \cs{report}.
+The reimplementation of ^|\beginscript| was tedious work, because
+it takes care of the preliminary pages:
+the cover page,
+the inside cover page,
+the title page,
+the preface page, and
+the table of contents page.
+|\endscript| takes care of the back cover pages.
+
+The implementation of \cs{(chapter)head} was tough work because of the wish
+to process on the fly and to store the title.
+On second thoughts I realized the more
+modest wish to allow for math in the titles,
+especially to handle the circumflex appropriately.
+
+Next to the a priori and physical table of contents
+in the front matter of the report,
+a table of contents with page numbers attached dynamically,
+is generated on the fly and appended at the end of the
+typeset report.
+The latter supports `drafting,' much in the spirit of developing
+a program supported by literate programming tools.
+A ToC, a ToE, or the set of answers, are generated on
+the fly and can be called up via \cs{pasteuptoc}, \cs{pasteuptoe},
+respectively \cs{pasteupanswers}. The contents file can be edited and used
+for the static table of contents, finally.
+
+\bluesubhead Template
+
+The file for this report has all chapters included.
+However, while writing and proofing all chapters were kept
+in separate files.
+The latter structure, stripped from redundancies,
+has been included below as a template. ^^{script,\ report}
+
+If the preliminary matter is a little overwhelming, skip this section, and continue
+with `Proofing a single chapter.'
+
+\blueexample A report script; the outer markup for this report
+
+The template reads as follows.
+\thisverbatim{\catcode`\!=12
+ \catcode`\~=0 }
+\beginverbatim
+\input blue.tex %\loadindexmacros %When creating an index too
+\report
+ %Cover data
+\bluetitle Publishing with \TeX
+
+\bluesubtitle BLUe's Selection
+
+\bluepictures \bluemodelpic
+
+ %Inside cover data
+\bluekeywords Bibliography, \bluetex, ...
+
+\bibliographydata{ISBN: \dots\par ...}
+\beginacknowledgements
+First of all
+\displaycenterline{Don Knuth, Thank You!}
+...
+\rightline{I'm grateful to all of you.}
+\endacknowledgements
+ %Title page data (next to title&author)
+\beginabstract
+The use of \bluetex{} has been documented in a user's guide,
+...
+\endabstract
+ %Preface page data
+\beginpreface \vskip2\bigskipamount
+Dear User, \bigskip
+It occurred to me that my detailed studies
+...
+will be beneficial for new-and-old \AllTeX ies alike.
+ \bigskip
+\rightline{\the\author}
+\endpreface
+ %Contents Page data
+ %Because of \valign use, \contents{...}
+ %is not possible.
+\begincontents %\se is subentry descriptive tag
+Preface
+Table of contents
+Introduction
+\se BLUe's format
+...
+\se J: Table of Contents
+\endcontents
+\let\coverpic=\bluemodelpic %BLUe script proper
+\beginscript
+\input pwt.int %Introduction
+\input pwt.txt %Text
+%\endscript %For testing, to make script smaller
+\input pwt.mat %Mathematics
+\input pwt.tab %Tabular material
+\input pwt.grf %Pictures
+\input pwt.ref %References
+\input pwt.ind %Index creation
+\input pwt.cus %Customization
+\input pwt.aft %Afterthoughts
+%
+\setupappendices %From now on A, B, C,...
+\pasteupanswers %A: Answer to Exercises
+\input pwt.fmt %B: Formats
+\input pwt.tls %C: Tools
+\input pwt.sur %D: Backgrounds
+\pasteuptoe %E: Table of Examples
+\input pwt.tot %F: Table of tags
+\input pwt.his %G: History of changes
+\input pwt.obs %H: Obselete macros
+%\sortindex\pasteupindex %I: Index
+\pasteuptoc %J: Table of Contents
+\endscript
+~endverbatim
+
+\bluesubhead Proofing a single chapter
+
+^^{proofing single chapter}
+Chapters can be proofed separately, not only for their contents but also for what
+will come in
+the Answers to the Exercises,
+the List of Examples,
+the Index, and
+the Table of Contents.
+
+The markup where also
+a ^{mini-ToE},
+a ^{mini-index}, and
+a ^{mini-ToC} will be obtained,
+reads as follows.
+\beginverbatim
+\input blue.tex %\loadindexmacros
+\report
+\input <filewithchapter>
+ %\pasteupanswers
+ %\pasteuptoe
+ %\sortindex\pasteupindex
+ %\pasteuptoc
+\bye
+!endverbatim
+Perhaps the easiest way to get results is to forget about the preliminary
+matter to start with. The above script formats your chapter and why not
+begin with
+
+|\chapterhead{...}| right away, instead of |\input <filewithchapter>|?
+
+We can easily test a few chapters in a row as follows.
+Omit \cs{bye} and when \TeX{} prompts for an
+\cs{end} insert `i' for insert and after the insert prompt supply
+\cs{input} |<nextchapter>|.
+
+\bluesubhead Main tags for report format
+
+A table of main tags for \cs{report} has been included ^^{report format, main tags}
+to provide a survey of what outer tags\Dash and to what extent\Dash
+they have been implemented for the \cs{report} format.\ftn{More
+ control sequences and symbols are available,
+ especially for the lower level markup,
+ if not for the undocumented features of manmac,
+ and the wealth of plain \TeX.}
+The table also illustrates the naming convention of
+a root name with affixes.
+
+The header fields indicate,
+the prefixes pre-, post-, this-, every-, pasteup-, and
+the suffixes -font, -name and -box.
+The first column contains the various root names, with a marker
+to denote to what extent the minimal one-part macro
+has been implemented.
+
+\begingroup
+\def\first{\hfil\thispicture{\unitlength=6ex \xdim{1.4}\ydim{1}}%
+ \lower1.5ex\hbox\beginpicture%(1.4, 1)(0,-.1)
+ \put( 0.0, 0.0){\small \strut Root}%
+ \put( 1.4, 0.575){\llap{\small Affix}}%
+ \put( 1.4, 0.1){\line(-2, 1){1.4}}%
+\endpicture\lower3ex\null}
+\def\header{pre-\cs post-\cs this-\cs every- \cs pasteup-
+ \cs -font\cs -name
+ \cs -box}
+\def\btablecaption{Main tags for report scripts}
+
+\catcode`/=13
+\def/{\leavevmode\thinspace\hbox{%
+ \vrule\vtop{\vbox{\hrule\kern1pt\hbox{%
+ \vphantom{\tt e}\thinspace%{\tt#1}%
+ \thinspace}}\kern1pt\hrule}\vrule}%
+ \thinspace} % control sequence token
+\catcode`-13 \def-{$\neg$}
+\def\footer{\qquad\vtop{\small\rlap{- not implemented}
+ \rlap{${}^+$ implemented}
+ \rlap{/ implemented without processing on the fly}}}
+\def\rowstblst{
+{abstract\hfill\ \tiny+}
+{acknowledgements\hfill\ \tiny+}
+{btable \hfill\ \tiny/}
+{center \hfill\ \tiny+}
+{chapterhead \hfill\ \tiny+}
+{contents\hfill\ \tiny+}
+{(sub(sub))head\hfill\ \tiny+}
+{keywords\hfill\ \tiny+}
+{picture \hfill\ \tiny-}
+{pictures\hfill\ \tiny/}
+{preface \hfill\ \tiny+}
+{quote \hfill\ \tiny+}
+{references\hfill\ \tiny/}
+{script \hfill\ \tiny+}
+%{syntax\hfill\ \tiny-} %Although there, not so relevant for the table
+{summary \hfill\ \tiny+}
+{verbatim\hfill\ \tiny-}}
+\def\data{%
+ -\cs-\cs-\cs-\cs+\cs-\cs+\cs+\rs%abstract
+ +\cs+\cs+\cs-\cs+\cs-\cs+\cs+\rs%abstract
+ +\cs+\cs+\cs+\cs-\cs-\cs-\cs+\rs%btable
+ -\cs-\cs-\cs-\cs-\cs-\cs-\cs-\rs%center
+ +\cs+\cs+\cs+\cs-\cs+\cs-\cs-\rs%chapterhead
+ -\cs-\cs-\cs-\cs+\cs-\cs+\cs+\rs%contents
+ +\cs+\cs-\cs-\cs-\cs+\cs-\cs-\rs%head
+ -\cs-\cs-\cs-\cs+\cs-\cs+\cs+\rs%keywords
+ -\cs-\cs+\cs+\cs-\cs-\cs-\cs-\rs%picture
+ -\cs-\cs-\cs-\cs-\cs-\cs-\cs-\rs%pictures
+ +\cs+\cs-\cs-\cs-\cs+\cs-\cs-\rs%preface
+ -\cs-\cs-\cs-\cs-\cs-\cs-\cs-\rs%quote
+ +\cs+\cs+\cs+\cs+\cs-\cs+\cs+\rs%references
+ +\cs+\cs-\cs-\cs-\cs+\cs-\cs-\rs%summary
+ -\cs-\cs+\cs+\cs-\cs-\cs-\cs-\rs%script
+% -\cs-\cs-\cs-\cs-\cs-\cs-\cs-\rs%syntax
+ +\cs+\cs+\cs+\cs-\cs-\cs-\cs-%\rs%verbatim
+}
+$$\vbox{\nonruled\nonframed
+ \btable\data}$$
+\endgroup
+Remarks.
+\bitem ^|\title|, ^|\subtitle|, ^|\author| and the like, are token
+ variables and associated with the script
+\bitem ^|\pictures| and ^|\references| have been implemented in a
+ straightforward way,
+ because their use doesn't need processing on the fly.
+\smallbreak
+
+\bluesubsubhead Your summary of main markup tags for reports
+
+The Frequently Used Tags, FUTs\Dash indeed a handful, as already indicated in
+ the template in the `Introduction'\Dash
+for personalizing.
+
+
+\beginverbatim
+!bf
+Preliminary matter!tt
+\title{...}
+\subtitle{...}
+\keywords{...}
+\abstract{...}
+\contents{...}
+\issue{...}
+\acknowledgements{...}
+\references{...}
+\pictures{...}
+!bf
+Copy Proper!tt
+\beginscript
+\endscript
+\chapterhead{...}
+\summary{...}
+\head{ ...}
+\thissubhead{...}
+\subhead{...}
+\thissubsubhead{...}
+(the \this<headkind>{...} especially together with \runintrue)
+\subsubhead{...}
+!bf
+Inner level!tt
+\begindemo...<escapechar>yields...\enddemo
+\thisverbatim{...}
+\beginverbatim
+<escapechar>endverbatim
+(and in-line !vrt!thinspace...!thinspace!vrt)
+\beginquote
+\endquote
+\begindisplay
+\enddisplay
+(with & and \cr)
+\displaycenterline{...}
+\begincenterdisplay
+\endcenterdisplay
+(with & and \cr)
+\btable
+(with \data{...\cs...\rs...\cs...\rs...}
+ \header{...}
+ \footer{...}
+ \rowstblst{...}
+ \vruled{...} )
+\ref\<name>
+\crsref\<name>
+\ftn{...}
+\item{...}
+\itemitem{...}
+\aitem
+\Aitem
+\bitem
+\nitem
+\example{...}
+\thispicture{...}
+(with \unitlength=...)
+\cs{<tagname>}
+!bf
+Back matter!tt
+\setupappendices
+\pasteupanswers
+\pasteuptoe
+\pasteupreferences
+\sortindex\pasteupindex
+\pasteuptoc
+!endverbatim
+
+\bluesubhead Addition of a format to BLUe's format system
+
+\blueexample Addition of report format to the fmt.dat database
+
+The following has been added to fmt.dat. ^^{add\ a\ format}
+\begincenterverbatim
+\tool\reportfmt
+<themacros>
+\endinput
+!endcenterverbatim
+\bluetex{} has been extended with
+\thisverbatim{\catcode`\|=12
+ \catcode`\!=12
+ \catcode`\~=0 }
+\begincenterverbatim
+\def\report{\ifx\undefined\reportfmt\let\reportfmt=x\fi
+ \ifnum\reportloadcnt=0 \ea\loadformat\fi
+ \advance\reportloadcnt1 \let\reportfmt=\undefined}
+%Storage allocations for \report come next
+\newtoks\prefacename
+%et cetera
+~endcenterverbatim
+
+\newpage
+\bluehead Transparencies format
+
+BLUe's format transparencies have a centered flavour, with
+a header part which reflects the series, and the context.
+^^{format,\ transparencies}
+There is also room for a user logo to be printed in the header.
+
+Very error-prone is the line-by-line nature of a transparencies script.
+Beware!
+For example when providing a macro one should remember
+that each line end is special. Perhaps I should provide
+also \cs{disobeylines} to undo the \cs{obeylines}.
+
+\bluesubhead Template
+
+I like to start from an example, a template, which shows what
+has to be provided.
+
+^^{script,\ transparencies}
+\blueexample Transparencies script
+
+\thisverbatim{\catcode`\|=12 }
+\beginverbatim
+\input blue.tex \pictures\bluemodelpic
+\transparencies \vfuzz=15pt \everyverbatim{\emc}
+\hsize14cm
+\leftskiptrs.2\hsize \rightskiptrs.1\hszie
+
+\title{BLUe's Format}
+\subtitle{the best of both worlds}
+
+\contents{WAF?
+ Outer vs Inner markup
+ Template
+ Customization
+ Coding
+ Transparencies
+ Tags survey
+ Conclusions
+}
+
+\beginscript
+\head{WAF? } %Starts a new transparency, implicitly
+$$\thispicture{\xoffset{-1}}\bluemodelpic$$
+
+\head{Markup language} %Starts a new transparency, implicitly
+\bitem |\begin<tag>...\end<tag>| |\<tag>| \hfill defs
+\bitem |\this<tag>| |\every<tag>| \hfill token vars
+\bitem \cs{title} \dots \hfill token vars
+\bitem |\pre<tag>| |\post<tag>| \hfill token vars
+\bitem |\pasteup<tag>| \hfill defs
+\smallskip
+\vfill
+\loadxyz$$\xyz{Alias tags}{Options}{Place within context}$$
+\endscript
+!endverbatim
+
+The following pages contain the results.
+\cs{transparencies} has been used locally, and because of the nested use
+I inserted |\thisscript{\notlastscript}|. Note that \cs{pictures}
+has to be supplied before \cs{transparencies} because the latter
+turns \cs{obeylines} on.
+\newpage
+\subheadtitle{}
+\subsubheadtitle{}
+\storedpageno\count0
+{\pictures\bluemodelpic
+ \transparencies
+ \hsize14cm
+ \leftskiptrs.2\hsize\relax
+ \rightskiptrs.1\hsize\relax
+ \hfuzz30pt \vfuzz=15pt \everyverbatim{\emc}
+
+\title{BLUe's Format}
+\subtitle{the best of both worlds}
+
+\begincontents WAF?
+ Outer vs Inner markup
+ Template
+ Customization
+ Coding
+ Transparencies
+ Tags survey
+ Conclusions
+\endcontents
+
+\thisscript{\notlastscript}
+\beginscript
+\head{WAF? }
+$$\thispicture{\xoffset{-1}}\bluemodelpic$$
+
+\head{Markup language}
+\bitem |\begin<tag>...\end<tag> \<tag>| \hfill defs
+\bitem |\this<tag>| |\every<tag>| \hfill token vars
+\bitem \cs{title} \hfill token vars
+\bitem |\pre<tag>| |\post<tag>| \hfill token vars
+\bitem |\pasteup<tag>| \hfill defs
+\smallskip
+\vfill
+\loadxyz
+$$\vbox{\xyz{Alias tags}{Options}{Place within context}}$$
+\endscript
+%\nxttrs
+}%end transparencies intermezzo
+\count0\storedpageno\advance\count0 by3
+
+\def\bluehead#1\par{\head{#1}}
+\def\bluesubhead#1\par{\subhead{#1}}
+\def\bluesubsubhead#1\par{\subsubhead{#1}}
+%kludge, admitted. March adaptation in trs is not robust, alas.
+
+\bluesubhead Use your logo
+
+^|\logo| is a def, and invoked within \cs{line}.
+In order to have your logo, supply
+\begincenterverbatim
+\def\logo{\vbox to0pt{\vss
+... %Your logo
+}}
+!endcenterverbatim
+
+\bluesubhead Maintenance
+
+This section is in a certain sense artificial, ^^{maintenance transparencies}
+introduced by the automatisms which come with my choices for
+the `header' and `footer,' especially the context-dependent
+information in there.
+The following might be helpful for modifying or extending
+single transparencies.
+The idea is to follow the script
+setup and handle the \cs{header}, \cs{pagenumber} and
+\cs{identification} for the particular transparency.
+In the example below the task was to add a transparency
+in between.\ftn{Without automatically gathering of context
+ information the modifications are a trifle.}
+\begincenterverbatim
+\title{Literate Programming}
+\beginscript
+\head{Tools}
+\nxttrs
+\identification{feb94}
+\pagenumber{13a}
+\subhead{FWEB}
+LP tool by John Krommes
+\endscript
+!endcenterverbatim
+
+\bluesubhead Main tags for transparencies
+
+A table of main tags has been included ^^{transparencies format, main tags}
+to provide a survey of what outer tags\Dash and to what extent\Dash
+they have been implemented for the \cs{ transparencies} format.
+The table also illustrates the naming convention adopted
+via a root name with prefixes and suffixes.
+
+The header fields indicate,
+the prefixes pre-, post-, this-, every-, pasteup-, and
+the suffixes -font, -name and -box.
+The first column contains the various root names, with a marker
+to denote to what extent the minimal one-part macro
+has been implemented.
+
+\begingroup
+\def\first{\hfil\thispicture{\unitlength=6ex \xdim{1.4}\ydim{1}}%
+ \lower1.5ex\hbox\beginpicture%(1.4, 1)(0,-.1)
+ \put( 0.0, 0.0){\small \strut Root}%
+ \put( 1.4, 0.575){\llap{\small Affix}}%
+ \put( 1.4, 0.1){\line(-2, 1){1.4}}%
+\endpicture\lower3ex\null}
+\def\header{pre-\cs post-\cs this-\cs every- \cs pasteup-
+ \cs -font\cs -name%\cs -title
+ \cs -box}
+\def\btablecaption{Main tags for transparencies scripts}
+
+\catcode`/=13
+\def/{\leavevmode\thinspace\hbox{%
+ \vrule\vtop{\vbox{\hrule\kern1pt\hbox{%
+ \vphantom{\tt e}\thinspace%{\tt#1}%
+ \thinspace}}\kern1pt\hrule}\vrule}%
+ \thinspace} % control sequence token
+\catcode`-13 \def-{$\neg$}
+\def\footer{\qquad\vtop{\small\rlap{- not implemented}
+ \rlap{${}^+$ implemented}
+ \rlap{/ implemented without processing on the fly}}}
+\def\rowstblst{
+{btable \hfill\ \tiny/}
+{center \hfill\ \tiny+}
+{contents\hfill\ \tiny+}
+{(sub(sub))head \hfill\ \tiny+}
+{picture \hfill\ \tiny-}
+{pictures\hfill\ \tiny/}
+{quote \hfill\ \tiny+}
+{script \hfill\ \tiny+}
+%{syntax\hfill\ \tiny-} %Although there, not so relevant for the table
+{verbatim\hfill\ \tiny-}}
+\def\data{%
+ +\cs+\cs+\cs+\cs-\cs-\cs-\cs+\rs%btable
+ -\cs-\cs-\cs-\cs-\cs-\cs-\cs-\rs%center
+ -\cs-\cs-\cs-\cs+\cs-\cs+\cs+\rs%contents
+ +\cs+\cs-\cs-\cs-\cs+\cs-\cs-\rs%head
+ -\cs-\cs+\cs+\cs-\cs-\cs-\cs-\rs%picture
+ -\cs-\cs-\cs-\cs-\cs-\cs-\cs-\rs%pictures
+ -\cs-\cs-\cs-\cs-\cs-\cs-\cs-\rs%quote
+ -\cs-\cs+\cs+\cs-\cs-\cs-\cs-\rs%script
+% -\cs-\cs-\cs-\cs-\cs-\cs-\cs-\rs%syntax
+ +\cs+\cs+\cs+\cs-\cs-\cs-\cs-%\rs%verbatim
+}
+$$\vbox{\nonruled\nonframed
+ \btable\data}$$
+\endgroup
+Remarks.
+\bitem ^|\title|, ^|\subtitle|, ^|\author| and the like, are token
+ variables and associated with the script
+\bitem ^|\pictures| has been implemented in a straightforward way,
+ because it doesn't need processing on the fly.
+\smallbreak
+\newpage
+\bluesubsubhead Your summary of markup tags for transparencies
+
+\beginverbatim
+!bf
+Token vars!tt
+\address\author\crowner%Default, already personalized
+\every... %See default blue.tex
+\footline
+\headline
+\headtitle
+\identification
+\pagenumber
+\posthead
+\postsubhead
+\postsubsubhead
+\prehead
+\presubhead
+\presubsubhead
+\subheadtitle
+\subsubheadtitle
+\subtitle
+\this...%See blue.tex
+\title
+
+!bf
+Control sequences with root name!tt
+center %default
+contents
+head
+pictures
+script
+
+!bf
+Auxiliaries!tt
+\continue
+\nxttrs
+
+!bf
+Lower level!tt
+\bitem
+\beginverbatim
+<escape char>endverbatim
+!endverbatim
+For inner markup the macros from plain
+and those from \bluetex{} can be used.
+Load what you need before \cs{transparencies} because the latter turns
+\cs{obeylines} on.
+\displaycenterline{Do remember the line-by-line character of the script}
+\endinput