diff options
Diffstat (limited to 'obsolete/info/whatstex/wots.tex')
-rw-r--r-- | obsolete/info/whatstex/wots.tex | 2956 |
1 files changed, 2956 insertions, 0 deletions
diff --git a/obsolete/info/whatstex/wots.tex b/obsolete/info/whatstex/wots.tex new file mode 100644 index 0000000000..d342f0f638 --- /dev/null +++ b/obsolete/info/whatstex/wots.tex @@ -0,0 +1,2956 @@ +%What is TeX and METAfont all about? C.G van der Laan, cgl@risc1.rug.nl +\documentstyle[bezier]{article} %Version 1.1 Jan 94 +\def\Dash{---} +\def\dash{--} +\def\address#1{#1}\def\netaddress#1{}\def\network#1{} + +%Needed files: abr.tex, btable.tex, ds.pic, icon.tex, lit.dat, lit.sel, +% lus.pic, math.tex, pic.pic (tugboat.sty/cmn) +%In final version all these files have been included, however. +%\input{abr.tex} %Abbreviations from TUGboat.cmn +%\input{icon.tex} %Icon macros +%\input{manmac.cgl}%Some boxing macros from manmac +%Input at the appropriate place +% ds.pic , picture inspired by David Salomon +% lus.pic , picture from lustrum paper +% pic.pic , picture from Furuta +%Input along the way (within \begingroup ... \endgroup) +% btable.tex, bordered tabl macro (redefines \multispan!!!) +% math.tex , multipositioning of \eqalign (redefines centering needed) +% lit.dat , literature database (at the end) +% lit.sel , literature reference names pointing to the database. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcount\TestCount +\def\smc{\tensmc} +\def\SMC{\ninerm} +\font\tensmc=cmcsc10 +% +% ***** abbreviations and logos ***** +% + +\def\AllTeX{(\La)\TeX} + +\def\AMS{American Mathematical Society} + +\def\AmS{{\the\textfont2 A}\kern-.1667em\lower.5ex\hbox + {\the\textfont2 M}\kern-.125em{\the\textfont2 S}} +\def\AmSTeX{\AmS-\TeX} + +\def\aw{A\kern.1em-W} +\def\AW{Addison\kern.1em-\penalty\z@\hskip\z@skip Wesley} + +\def\BibTeX{{\rm B\kern-.05em{\smc i\kern-.025emb}\kern-.08em\TeX}} + +\def\CandT{{\sl Computers \& Typesetting}} + +\def\DVItoVDU{DVIto\kern-.12em VDU} + +\def\ISBN{{\SMC ISBN} } + +% Japanese TeX +\def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}} + +\def\JoT{{\sl The Joy of \TeX}} + +\def\LAMSTeX{L\raise.42ex\hbox{\kern-.3em\the\scriptfont2 A}% + \kern-.2em\lower.376ex\hbox{\the\textfont2 M}\kern-.125em + {\the\textfont2 S}-\TeX} + +% note -- \LaTeX definition is from LATEX.TEX 2.09 of 7 Jan 86, +% adapted for additional flexibility in TUGboat +%\def\LaTeX{\TestCount=\the\fam \leavevmode L\raise.42ex +% \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}\kern-.15em\TeX} +% note -- broken in two parts, to permit separate use of La, +% as in (La)TeX +\def\La{\TestCount=\the\fam \leavevmode L\raise.42ex + \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}} +\def\LaTeX{\La\kern-.15em\TeX} + +% for Robert McGaffey +\def\Mc{\setbox\TestBox=\hbox{M}M\vbox to\ht\TestBox{\hbox{c}\vfil}} + +\font\manual=logo10 % font used for the METAFONT logo, etc. +\def\MF{{\manual META}\-{\manual FONT}} +\def\mf{{\smc Metafont}} +\def\MFB{{\sl The \slMF book}} + +% multilingual (INRS) TeX +\def\mtex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX} + +\def\pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}MF} +\def\PCTeX{PC\thinspace\TeX} +\def\pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}\TeX} + +\def\Pas{Pascal} + +\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC} +\def\PiCTeX{\PiC\kern-.11em\TeX} + +\def\plain{{\tt plain}} + +\def\POBox{P.\thinspace O.~Box } +\def\POBoxTUG{\POBox\unskip~9506, Providence, RI~02940} + +\def\PS{{Post\-Script}} + +\def\SC{Steering Committee} + +\def\SGML{{\SMC SGML}} + +\def\SliTeX{{\rm S\kern-.06em{\smc l\kern-.035emi}\kern-.06em\TeX}} + +\def\slMF{\MF} +% Use \font\manualsl=logosl10 instead, if it's available, +% for \def\slMF{{\manualsl META}\-{\manualsl FONT}} + +% Atari ST (Klaus Guntermann) +\def\stTeX{{\smc st\rm\kern-0.13em\TeX}} + +\def\TANGLE{{\tt TANGLE}} + +\def\TB{{\sl The \TeX book}} +\def\TP{{\sl \TeX\/}: {\sl The Program\/}} + +\def\TeX{T\hbox{\kern-.1667em\lower.424ex\hbox{E}\kern-.125emX}} + +\def\TeXhax{\TeX hax} + +% Don Hosek +\def\TeXMaG{\TeX M\kern-.1667em\lower.5ex\hbox{A}\kern-.2267emG} + +%\def\TeXtures{\TestCount=\the\fam +% \TeX\-\hbox{$\fam\TestCount\scriptstyle TURES$}} +\def\TeXtures{{\it Textures}} +\let\Textures=\TeXtures + +\def\TeXXeT{\TeX--X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT} + +\def\ttn{{\sl TTN}} +\def\TTN{{\sl \TeX{} and TUG NEWS}} + +\def\tubfont{\sl} % redefined in other situations +\def\TUB{{\tubfont TUGboat\/}} + +\def\TUG{\TeX\ \UG} + +\def\UG{Users Group} + +\def\UNIX{{\SMC UNIX}} + +\def\VAX{\leavevmode\hbox{V\kern-.12em A\kern-.1em X}} +\def\VorTeX{V\kern-2.7pt\lower.5ex\hbox{O\kern-1.4pt R}\kern-2.6pt\TeX} + +\def\XeT{\leavevmode\hbox{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT}} + +\def\WEB{{\tt WEB}} +\def\WEAVE{{\tt WEAVE}} +%******************************************************************** +\def\icmat#1#2{%ICon MATrix(rectangular) +%#1 is ht of icon matrix, e.g. 4 +%#2 is wd of icon matrix, e.g. 2 +\vbox to#1\unitlength{\hrule + \hbox to#2\unitlength{\vrule + height#1\unitlength\hfil\vrule}% + \hrule}% +}%end icmat +% +\def\icurt#1#2{%IConUpperRightTriangle +%#1 is ht of icon matrix, with UT +%the upper triangular part, e.g. 4 +%#2 is wd of icon (upper triangular) +%matrix, e.g. 2 +\vbox to #1\unitlength{\hrule + \hbox{\picture(#2,#2)% + \put(0,#2){\line(1,-1){#2}}% + \endpicture\vrule}% + \vfil}% +}%end icurt +% +\def\icllt#1#2{%IConLowerLeftTriangle +%#1 is ht of icon matrix, with LT +%the lower triangular part, e.g. 4 +%#2 is wd of icon (lower triangular) +%matrix, e.g. 2 +\vbox to #1\unitlength{\vfil + \hbox{\vrule\picture(#2,#1)% + \put(0,#2){\line(1,-1){#2}}% + \endpicture}% + \hrule}% +}%end icllt +% +\def\icuh#1#2#3{%IConUpperHessenberg +%#1 is size of icon matrix, with UH +% the upper Hessenberg part, e.g. 4 +%#2 is wd of icon (upper Hesenberg) +% matrix, e.g. 1 +%#3 is size Lower Left triangular part, +% #1-#2 (for simplicity the latter is added, +% could have been calculated, perhaps some +% inconsistency test could be incorporated) +\vbox to #1\unitlength{\offinterlineskip + \hrule + \hbox to#1\unitlength{\vrule height% + #2\unitlength depth0pt\relax + \hfil\vrule}% + \hbox to#1\unitlength{\picture(#3,#3)% + \put(0,#3){\line(1,-1){#3}}\endpicture + \hfil\vrule}% + \hbox to#1\unitlength{\hfil\vrule + width#2\unitlength height.2pt\relax}% + }% +}%end icuh +% +\def\hidehrule#1#2{\kern-#1\hrule + height#1 depth#2 \kern-#2 } +\def\hidevrule#1#2{\kern-#1{\dimen0=#1 + \advance\dimen0 by#2\vrule width\dimen0}% + \kern-#2 } +% \makeblankbox puts rules at the edges of +% a blank box whose dimensions are those +% of \box0 (assuming nonnegative wd,ht,dp) +% #1 is rule thickness outside, +% #2 is rule thickness inside +\def\makeblankbox#1#2{\hbox{\lower\dp0 + \vbox{\hidehrule{#1}{#2}% + \kern-#1% overlap the rules at the corners + \hbox to\wd0{\hidevrule{#1}{#2}% + \raise\ht0\vbox to #1{}% set the vrule height + \lower\dp0\vtop to #1{}% set the vrule depth + \hfil\hidevrule{#2}{#1}}% + \kern-#1\hidehrule{#2}{#1}}}} +\def\maketypebox{\makeblankbox{0pt}{1pt}} +\def\makelightbox{\makeblankbox{.2pt}{.2pt}} +\def\<#1>{$\langle#1\rangle$} +\def\cs#1{{\tt\char92#1}} +% +\def\mm{{\tt manmac}} +\def\mmt{{\tt manmac.sty}} +%For abstracting and customizing +%\def\head*#1*{\chapter*{#1}} +%\def\subhead*#1*{\section*{#1}} +%\def\subsubhead*#1*{\subsection*{#1}} +%\def\ftn#1{\footnote{#1}} +\let\ea=\expandafter \let\ag=\aftergroup \let\nx=\noexpand +%Customize footer +\def\pfoottext{NLUUG meeting Fall '93} +% +\begin{document} + +\title{What is \TeX{} and METAfont all about?} +%\thanks{Paper to be presented at NLUUG meeting of 2 November, 1993.} +\author{Kees van der Laan} +\address{Hunzeweg 57, 9893 PB\\ + Garnwerd, Groningen (NL)\\ + +31 5941 1525} +\netaddress[\network{Internet}]{cgl@risc1.rug.nl} +\overfullrule0pt +%\begin{abstract} +%A survey of +% \TeX, +% its flavours, and +% its twin sister \MF{}, +%within the context of Electronic Publishing, +%is given. +%\end{abstract} +\maketitle +%\paragraph*{Keywords:}{\small \AmSTeX, +%education, electronic publishing, (La)\TeX, METAfont, (encapsulated) \PS, +% SGML, hypertext.} +\section*{Contents}% +\begingroup\small +Introduction\\ +-- \TeX{} etc.{} tools\\ +-- Importance\\ +-- \TeX's flavours, drivers, and fonts\\ +-- Descriptive mark-up\\ +-- \TeX{} its author, users, and publishers\\ +-- \TeX\ and other EP tools\\ +-- Trends\\ +-- Examples: generic format, and\\ +\phantom{--} in the small math, tables, and graphics\\ +-- Front \& back matter \\ +-- Guidelines for choosing\\ +Acknowledgements, Conclusions, References. +\endgroup +\section*{Introduction} +This work about computer-assisted typesetting by \AllTeX{} and \MF{} +in context, is aimed at a broad audience. +Novice users \`a la +BLU\footnote{BLU is Knuth's nickname for the innocent user, the so-called + Ben Lee User of the \TeX book fame, with BLUe its cousin, adopted by me. + Nowadays we would say Beginning \LaTeX\ User.} +who like to become informed what it is all about, +advanced \LaTeX\ users who hardly have heard of \mm, +and mathematicians and publishers who will find the offerings +of the \AMS{} interesting. + +There have been published many notes, articles and books about \TeX. +Advanced ones exploring \TeX's limits, and also contributions at +the survey and introductory level. +The latter deal with +the macroscopic mark-up features as well as +the microscopics of automatic kerning, + for example with A and V in AV, +the automatic handling of ligatures, +the automatic justification and hyphenation +supported by hyphenation tables, and the formatting of +math, tables and graphics. +They also boast of the quality which can be +obtained when formatting the typographic teasers: +math, tables and graphics. + +In the \TeX niques series we have the +tutorials: +A gentle introduction to \TeX, by Michael Doob, and +First grade \TeX, by Arthur Samuel. +For \LaTeX\ there is: An introduction to \LaTeX, by Michael Urban, +and---for the Dutch speaking community---Publiceren met \LaTeX, by +de Bruin. +Also noteworthy is Hoenig's \TeX\ for new users, and +the introduction chapter in Salomon's courseware Insights and Hindsights. +For \MF{} see Henderson's An introduction to \MF{}, +Tobin's \MF{} for beginners, and Knuth's +introductory article on the issue in TUGboat. +A survey with respect to EP tools (Electronic Publishing) is +Document Formatting Systems: +Survey, Concepts and Issues, by Furuta and co-authors. + +For trying it out and working with it, the user groups +distribute PD versions of (La)\TeX{} as well as +integrated working environments for PCs, +with all kinds of bells-and-whistles added. +Ubiquitous is Mattes' PD em\TeX, and the working environments + As\TeX{} (apart from Framework it is + in the Public Domain), next to the Dutch 4\TeX{} (which is shareware). + +This paper relates \TeX{} and \MF{} to EP, +SGML and the like, as a helicopter view, and accounts for the many +activities of its users. +At the end an annotated bibliography has been supplied. + +\paragraph*{Conventions and notations.} +I adhered to the historical development of \TeX\ et cetera, +and did not order the tools with respect to perceived importance. +The latter is a matter of taste and definitely time-dependent. + +The Contents list is not a one-to-one mapping of the section titles. +It is used to stress the main items and their treatment within a logical +hierarchy. +I clustered some section titles and subsection titles, whenever +convenient, to enhance readability. +The aim was to convey the contents and not so much the form, +to paraphrase Marvin Minsky. + +Because it is a `helicopter' view I need to refer to other work. +This has been done a little loose via the name of the +(first) author and the title, or keywords form the title. +The reader can easily spot from the supplied list of references +which work is hinted at. +Just start by the author name and look for the matching title. +I also did not bother about traditions which require that book titles are set +in italics or so. In my opinion to find out whether it is a book, a report or +a journal article follows easily from the ISBN number if provided, +respectively the journal name. +Hereby I assume that readers are familiar with some +journal names, for example TUGboat, the journal of the \TeX\ Users Group. + +For common words in the \TeX\ arcana\Dash like \TeX, \LaTeX, +\AMS, et cetera\Dash I adopted the TUGboat +typesetting conventions by using their macros for formatting these names. +File names are set in the \cs{tt} font. + +\section{\TeX{} etc.{} tools} +First of all \TeX\ etc.\ has been around for some fifteen years, +and many of its users have contributed to the components +and to the porting to many platforms, +with the result that it is +not easy to really survey the whole complex. + +Going back to the roots we can say that +\TeX\ is a program for formatting documents, +born as a twin with its sister \MF, for creating fonts. +\TeX\ and \MF{} have been designed to facilitate the +high-quality computer-assisted production of books. +A more modern way of talking is that \TeX\ is +a mark-up language with \MF{} the accompanying +tool for designing the needed graphics, starting with the fonts. + +A nice survey of the most important components and files when working with +\TeX\ is supplied by the accompanying diagram,\footnote{Inspired by + Salomon's diagram as supplied in his courseware: Insights and Hindsights.} +which illustrates the two main fields: font design and typesetting, with +the relations between the components and files, all in one, and abstracting +from details. + +\noindent +%Version Aug 93 cgl@risc1.rug.nl +\begingroup%Basically Salomon's diagram +%\Large\setlength{\unitlength}{3ex} + \setlength{\unitlength}{3.8ex} +\begin{picture}(14,16)(-.5, -3) +%1st column +\put(1, 0){\line(0, 1){1.5}} +\put(1, 2){\oval(2, 1)} +\put(1, 2){\makebox(0, 0){.pk}} +\put(1, 4){\vector(0, -1){1.5}} +\put(-.5, 4){\framebox(3, 1){METAfont}} +\put(1, 6.5){\vector(0, -1){1.5}} +\put(1, 7){\oval(2, 1)} +\put(1, 7){\makebox(0, 0){.mf}} +%second column +\put(7.5, -.5){\framebox(2, 1){driver}} +\put(9.6, .6){\line(-1, 0){.5}} +\put(9.6, .6){\line( 0, -1){.5}} +\put(9.7, .7){\line(-1, 0){.5}} +\put(9.7, .7){\line( 0, -1){.5}} +\put(8.5, 1.25){\vector(0, -1){.75}} +\put(8.5, 2){\oval(2, 1)} +\put(8.5, 2){\makebox(0, 0){.dvi}} +\put(8.5, 4){\vector(0, -1){1.5}} +\put(7.5, 4){\framebox(2, 1){\TeX}} +%Manmac +\put(9.75, 5.25){\line(-1, 0){1.25}} +\put(9.75, 5.25){\line( 0, -1){.5}} +\put(9.75, 4.75){\line(-1, 0){.25}} +\put(9.8, 4.75){{\tiny manmac}} +%LaTeX +\put(10, 5.5){\line(-1, 0){1.25}} +\put(10, 5.5){\line( 0, -1){.5}} +\put(10, 5){\line(-1, 0){.25}} +\put(8.75, 5.5){\line( 0, -1){.25}} +\put(10.1, 5){{\tiny \LaTeX}} +\put(10.25, 5.75){\line(-1, 0){1.25}} +\put(10.25, 5.75){\line( 0, -1){.5}} +\put(10.25, 5.25){\line(-1, 0){.25}} +\put(9, 5.75){\line( 0, -1){.25}} +\put(10.35, 5.35){{\tiny AMS-(La)\TeX}} +% +\put(10.35, 5.85){\hbox{.}\kern.1ex +\raise.5ex\hbox{.}\kern.1ex\raise1ex\hbox{.}} +% +\put(8.5, 6.5){\vector(0, -1){1.5}} +\put(8.5, 7){\oval(2, 1)} +\put(8.5, 7){\makebox(0, 0){.tex}} +% +\multiput(8.5, 9)(0, -.415){3}{\line(0, -1){.25}} +\put(8.5, 8.7){\vector(0, 1){.3}} +\put(8.5, 7.8){\vector(0, -1){.3}} +\put(7.5, 9){\framebox(2, 1){editor}} +%Spelling checker +\put(9.75, 10.25){\line(-1, 0){1.25}} +\put(9.75, 10.25){\line( 0, -1){.5}} +\put(9.75, 9.75){\line(-1, 0){.25}} +\put(9.85, 9.75){{\tiny spell}} +%Style checker +\put(10, 10.5){\line(-1, 0){1.25}} +\put(10, 10.5){\line( 0, -1){.5}} +\put(10, 10){\line(-1, 0){.25}} +\put(8.75, 10.5){\line( 0, -1){.25}} +\put(10.1, 10){{\tiny style}} +% +\put(10.1, 10.6){\hbox{.}\kern.1ex +\raise.5ex\hbox{.}\kern.1ex\raise1ex\hbox{.}} +% +\put(8.5, 11.5){\vector(0, -1){1.5}} +\put(8.5, 12){\oval(2, 1)} +\put(8.5, 12){\makebox(0, 0){copy}} +%basis +\put(1, 0){\vector(1, 0){6.5}} +\put(9.5, 0){\vector(1, 0){1.5}} +\put(11, -.75){\framebox(2, 1.5){}} +\put(11.25, -.4){\shortstack{\small printer\\\small screen}} +%middle +\multiput(5, 5.25)(0, 1){3}{\line(0,1){.5}} +\multiput(5, .25)(0, 1){4}{\line(0,1){.5}} +\multiput(5, -1.75)(0, 1.3){2}{\line(0,1){.2}} +% +\put(3.5, -1.250){\dashbox{.25}(3, .5){{\tiny \PS}}} +\multiput(6.5, -1)(.45, 0){4}{\line(1,0){.25}} +\put(8.5, -1){\line( -1, 0){.2}} +% +\put(8.5, -1){\vector(0, 1){.5}} +\put(2.5, 4.5){\vector(1, 0){1.5}} +\put(5, 4.5){\oval(2, 1)} +\put(5, 4.5){\makebox(0, 0){.tfm}} +\put(6, 4.5){\vector(1, 0){1.5}} +\put(9.5, 4.5){\vector(1, 0){1.5}} +\put(12, 4.5){\oval(2, 1)} +\put(12, 4.5){\makebox(0, 0){.log}} +%base line +\put(.51,-1.75){\vector(-1, 0){1}} +\put(2.25, -1.75){\makebox(0, 0){Fonts}} +\put(3.9,-1.75){\vector( 1, 0){1}} +\put(6.1,-1.75){\vector(-1, 0){1}} +\put(9, -1.75){\makebox(0, 0){Typesetting}} +\put(11.9,-1.75){\vector(1, 0){1}} +\end{picture} +\endgroup + +\noindent That is +\begin{itemize} +\item the flow from copy to printed results +\item where the editor and its associated tools come in +\item the location of \TeX\Dash its flavours, and add-ons\Dash at the heart +\item what is used from \MF{} and where +\item the printer independence via various drivers +\item at what level \PS{} can be included. +\end{itemize} +The important files are indicated by their extensions and are +depicted within ovals. What holds for creating the \verb|.tex| file +holds also for the \verb|.mf| file.\footnote{Not mentioned are vir\TeX\ + and ini\TeX. Erik-Jan Vens communicated the following functionalities + on the TeX-nl network: `Ini\TeX\ allows preparing and fast loading + of {\tt .fmt} files. Vir\TeX\ is a program that can accept fast + your macros and then do the typesetting job proper.'} + +\subsection{Working environments.} +The needed tools are nowadays embedded in +computer-assisted (scientific) working environments. +At first sight this seems trivial, but it is really handy that the tools +are integrated, also with non-formatting applications per se, such +as email, database applications and the old running of C or FORTRAN programs. +A model of thinking is that, for example, a thesis is prepared and all +the simulations and calculations are done as a side-step of the main work: +publishing! That is document preparation, formatting, typesetting, and +dissemination. +The graphics-oriented PCs like Macintosh and Atari paved the way. +Nowadays the 486-based PCs with their (graphics) window facilities allow +this way of working too. + +\subsection{Installation.} +The products are usually accompanied by their installation documentation. +Famous, and top class, are the AMS installation Guides. +With the PD PC versions the idea is to supply turn-key scripts so that +the installation goes automatically. +>From those distributed by the TUG/LUGs the only nice one +I have seen is the GUTenberg PD PC set and installation guide, +prepared by Lavaud. Installation of the working environments is more +complicated, because of the many components. + +\subsection{Lifetime.} +The kernel \TeX\ and \MF{} +programs have been designed with flexibility and portability in mind. +Knuth envisioned that the two could be used a hundred years from now, +just as we do today, with the same +input and results!\footnote{Or better.} +In order to make this possible Knuth +\begin{itemize} +\item invented the \WEB{} literate programming way of working +\item documented the programs (open system) well +\item worked hard on making the systems error free +\item delivered the twins into the public domain, and +\item froze the kernels. +\end{itemize} +Because of these goodies the user community could port the systems +to any conceivable platform, and add layers on top +to adjust for users' wishes and demands. All-in-all one can say +that the twins are portable in place and time, are powerful, useful, +and will serve a lifetime. + +The working environments suffer from a much shorter lifetime. +Read: need continuous maintenance and that is something, especially in +a volunteer-based world. +It is always +a matter of the right balance: how fast do I need to do the day-to-day +work and how often do I wish to upgrade the working environment. + +\section{Importance} +>From the computer science point of view +\TeX\ and \MF{} are big research achievements +in how software engineering should be done, +if not for the literate programming way of software design and creation. +Top-class algorithms for line-breaking, hyphenation and page make-up +have been incorporated. +It is designed to be device-independent. +That Knuth succeeded so well in his basic research can be witnessed +by the many publications which +have been built upon his Computer and Typesetting works, +and the many honorary degrees he has received. + +>From the users' point of view \TeX\ etc.\ +is relevant because of the quality which +can be obtained when used as a formatter. +\TeX\ is an open and freely available system. +It has been frozen, and delivered into the public domain to serve +for a lifetime. +That Knuth succeeded here so well can be distilled from the many organized +users of \AllTeX\ world-wide, and perhaps the tenfold more who +just use the systems. + +Its weakness is that \TeX\ proper does {\em not\/} have easy user guides. +This weakness has been compensated for by efforts like \LaTeX, +\AmSTeX/\LaTeX, and the styles from publishing houses and their user and +installation guides. +%\begin{quote} +Perhaps an unexpected side-effect of \TeX\ is that it is so heavily used +with alphabets different from Latin, and even with scripts +which run from right to left (Hebrew) or scripts which run vertically +(Japanese), not to mention specific hyphenation patterns. +%\end{quote} +That \TeX\ allows for these usages might give an idea of its power. + +>From the publishers' point of view \TeX\ has the potential of being used +for producing complex scientific documents cost-effectively. +This is the current practice of the \AMS, +and the American Physical Society, APS for short. +They supply authors with +\begin{itemize} +\item user and installation guides +\item fonts +\item style files +\item templates, and +\item support, in general. +\end{itemize} + +\paragraph*{The advantages}can be summarized as +\begin{itemize} +\item high-quality craftsman tool +\item lingua franca for exchange of typographically complex documents +\item stability (\TeX{} kernel has been frozen) +\item open system +\item available for nearly all platforms +\item in the public domain +\item portable, flexible, extensible, \ldots +\item 7.5--10k organized users world-wide +\item cost-effective production tool. +\end{itemize} + +\paragraph*{Disadvantages}are there any? +Of course there are. But it is questionable +whether one should talk about disadvantages. +Perhaps one should talk more in terms of incompleteness. +\begin{quote} +What is felt like an omission can be added, +because it is an extensible system. +\end{quote} +I for one miss that \mmt---Knuth's macros for formatting his books---doesn't +take a user guide, nor does plain \TeX. +Of course there is the \TeX book---the bible for the \TeX ies---but that does +{\em not\/} hide the details---it is all there, for the beginner as +well as for the advanced macro writer---which is confusing +and simply too much for a novice. In summary +\begin{itemize} +\item \AllTeX\ is not + WYSIWYG-like\footnote{Usually commercial.} +\item unusual macro language\footnote{It is always a matter of education, + and after that the {\em un\/}usual issues metamorphose into paradigms.} +\item complex: $\approx$ 1k commands, parameters, \ldots\footnote{Abstraction, + subsetting and user guides\Dash like those of \AmSTeX\Dash are needed. + Tools which concentrate on the publishing goal and not so much on + understanding and learning the formatting language per se.} +\end{itemize} +So its incompleteness is a challenge to all of us, to fill it up. + +It is true, however, that professionals have found some niches which deserve +further research and development. Surveys on these items are provided in +the E-\TeX\ paper by Mittelbach, and the New Typesetting System efforts +initiated by the German-speaking users group DANTE. +Also noteworthy is the effort to improve +\LaTeX\ via the so-called \LaTeX3 (better known as lxiii) project. + +One can also argue that delving into these details is sub-optimization, +concentrating too much on the mapping onto paper. Bigger issues are +related to the multi-media aspects, let us say to represent information +in a flexible way such that it can be processed by various technologies, +into forms suited for various users, their circumstances and their +tastes, limited only by their senses. +I like to call this {\em real\/} applied information technology: +information to be accessed by the masses. + +\section{\TeX's flavours} +\TeX\ has gotten its children already, like \mm, \LaTeX, and +\AmSTeX/\LaTeX, to name but a few. +As usual with children they live their own lives. +For \TeX\ this means that they have the confusing +side-effect of not being completely compatible. +In spite of this incompatibility reality has it that authors and publishers +make their choice---\TeX-based, or \LaTeX-oriented---and therefore +the incompatibilities don't hinder most of us. + +\paragraph*{\mmt} is a set of macros +written and used by Knuth to format his magnum opus: +The Art of Computer Programming, +his Computers and Typesetting series, +and so on. For an account see my Manmac BLUes. + +\paragraph*{\LaTeX}stresses the higher-level approach of descriptive mark-up +and hides the formatting details as much as possible from an author. +Because of the rigorous way this has been implemented, +it is hard to customize the prefab styles. + +Leslie Lamport's manual, \LaTeX, A Document Preparation System, +exhibits the functionalities +\begin{itemize} +\item prefab styles: article, book, letter, report, slides +\item automatic (symbolic) numbering and cross-referencing +\item multi-column formatting, with its embedded 1-column occasionally + for tables and figures +\item automatic generation of ToC, LoT, LoF +\item picture environment +\item bibliography environment. +\end{itemize} + +\paragraph*{\AmSTeX/\LaTeX}are the tools of the +pace-setting American Mathematical Society. This publisher adopted +and supported the \TeX\ development from the beginning. (See below +under \TeX\ and its publishers.) + +\paragraph*{\LAMSTeX} reimplemented in a flexible way + the descriptive \LaTeX\ approach, next to + a general automatic numbering and symbolic referencing scheme, + advanced table macros, and + sophisticated commutative diagram macros. + See my review of Spivak's \oe uvre + for more details about the Joy of \TeX\ and \LAMSTeX---The Synthesis. + +\paragraph*{In summary} +\begin{itemize} +\item \mmt, Knuth's format +\item \LaTeX, descriptive mark-up, and user's guide +\item \AmSTeX/\LaTeX\ styles and fonts, with support +\item \LAMSTeX +\item TUGboat styles +\item PD software and working environments +\end{itemize} + +\section{\TeX's drivers} +Normally the drivers come with your \TeX\ when you buy it. +With the PD versions, users have to be aware of the PD available drivers, +for the various PCs and printers, +unless your user group provides you with an +integrated working environment which contains all. +For a survey of the available `Output device +drivers' see Hosek's paper in TUG's resource directory. +He details drivers for +\begin{itemize} +\item laser xerographic and electron-erosion printers +\item impact printers and miscellaneous output devices +\item phototypesetters +\item screen previewers +\end{itemize} +\noindent and ends up with supplier information. +Joachim Schrod reported in TUGboat 13, 1, +(early 1992) from the TUG DVI driver standards committee. + +Well-known is the PD Beebe driver family. em\TeX\ comes with some +drivers for dot matrix printers and the HP LaserJets. + +At the TUG '92 meeting the attendees were surprised by Raman's paper +`An audio view of (La)\TeX\ documents.' It has all to do with +representing the contents of a publication for the blind. + +With respect to \PS\ the \verb|dvitops| driver is important. Formerly, +I also used \verb|dvitodvi| in order to print out selected pages. +Now I use \mm's facility to do that which is essential +simpler for that purpose because it ships out only the required pages. + +\section{\TeX{} and fonts} +>From the beginning Knuth provided \TeX\ with the computer modern family of +fonts. These fonts can be generated, and varied via \MF, +by adjusting some parameters. +Since the introduction of the virtual font concept, in revision '89 +better known as \TeX{} version 3, +many industrial fonts can be used as well. +Via this mechanism, font elements can be combined at the driver level. +The need for handling in a flexible way the positioning of diacritical marks +was the incentive for adding the virtual font concept, to make it +feasible to handle languages with their own special placements of +diacritical marks without the need to +regenerate complete new fonts. +The other way is to generate complete font tables for every language, +which is a perfectly acceptible way of doing it, +but will entail many font tables and +of larger size.\footnote{Reality has it that the \TeX\ community standardized + on the 256-character DC font tables, to allow for some special characteres, + like the use of the ij in Dutch. See Haralambous' paper in TTN 1, 4. + An entirely different approach is needed for the Japanese ideograms, + that is symbols representing things or ideas. At present there are some + 6,353 kanji characters available on various types of computers known + as JIS level 1 or 2 (Japanese Industrial Standard is akin to ASCII.) +} + +However, since \TeX\ is used for more and more applications +the need for more fonts\Dash different shapes, sizes and so on\Dash +has emerged. +Using standard bitmap technology much computer memory is needed. +Reality has it that scaling fonts linearly does not yield +pleasing results. +To compensate for this the intelligent scalable fonts technology emerged% +---near-linear and intelligent, that is with some enhancements---% +as opposed to the classical memory-consuming bitmap fonts, extended by +the linear scaling as such. + +Also the mark-up for fonts has gotten a new dimension: the linear space of +available fonts is seen as a 4-dimensional space governed by the coordinates +family, serie, shape, and size. The approach goes with the buzzword NFSS, +New Font Selection Scheme (See Goossens, Mittlebach and Samarin). + +\paragraph*{Which fonts can be used with \TeX?} +The following classes of {\em text\/} fonts can be used with \TeX +\begin{itemize} +\item CM, the native Computer Modern +\item 14,000 fonts in industry standard Adobe type 1 +\item several hundreds in formats such as TrueType. +\end{itemize} +(Very) few fonts can be used with math, +because of the specialities of the +font characteristics \TeX\ assumes. +However, the following fonts can be used with math +\begin{itemize} +\item CM math, the native Computer Modern +\item lucida math +\item lucida newmath +\item mathtimes. +\end{itemize} +For more details see Horn's Scalable outline fonts paper, and for Japanese +Fujiura in TTN 1, 2. + +\section{Descriptive mark-up} +Since the start of computer-assisted typography attention has been paid +to abstraction from details, to the principle of the +{\em separation of concerns}. + +Leading in this area is the SGML approach.\footnote{The relation + between SGML and \TeX\ will be discussed later.} +It is argued that +\begin{quote} +authors should concentrate on the contents\Dash and inherently on the +structure\Dash of their documents, leaving the details for formatting +to the publisher. +\end{quote} + +\paragraph*{Example:}(Call for papers, Furuta) +\begingroup\small\begin{verbatim} +\input cfp.tex%contains format and macros +%next copy proper +The aim of this paper... + +Paper are solicited on ... +\lstitm Picture editing +\lstitm Text processing +\lstitm Algorithms and software... + +Detailed abstracts should not ... + +Duration of presentation... +\bye +\end{verbatim}\endgroup +The above example is a mixture of natural input, where blank lines +have an intuitive but context-dependent meaning, and of +handling trivia automatically behind the scenes. +An example of a default is the heading. + +For this format the heading is always the same, +so there is no need for a user to provide it each time the format +is used. It comes along with the format. +So do the fonts used and the shortcuts +like \verb|\def\lstitm{\item{--} }|. + +My approach looks simpler than Furuta's\Dash in that paper all the low-level + formatting details were there\Dash +because I applied the principle of the separation of concerns +and abstracted from the low-level formatting details. +The point I'd like to make is that it is possible to hide +formatting details, to account for these separately and at a lower level. +I like to call this approach generic, because the mark-up is customized +at a lower level to the suited tool. + +\section{\TeX\ and its author} +Don Knuth started the design of \TeX\ in 1978. +The first major revison dates back to 1982. +The final version is dated 1989, and called \TeX\ version $\pi$.\footnote{% + Essentially version 3, but because reality has it that even Knuth + `makes errors' he allows for adjusted versions denoted by the decimals of + $\pi$: 3.1, 3.14, 3.141, et cetera.} +It is all a side-step(!) of his magnus opus: The Art of Computer Programming, +of which three volumes have appeared of the envisioned seven. +Because of the rapid development in computer science volume four consists of +three books already. + +In designing and developing \TeX, +Knuth adhered to several software engineering paradigms like: +portability, flexibility, robustness, and not to +forget correctness and documentation.\footnote{The software crises of the + seventies suffered much from inadequate documentation.} +In order to do this gracefully +he coined the words {\em literate programming}, +and provided en-passant tools for practical use! +In fact \TeX\ can be seen as +a real-life and significant example of literate programming. + +In designing \TeX\ he adopted and developed the following +\begin{itemize} +\item boxes, glue and penalties as building blocks +\item paragraph-wise searching for line-breaks +\item page mapping via the OTR,\footnote{A buzzword to denote the + output routine which performs this task.} + optimizing for least penalties +\item device-independent output, to be printed, typeset, or viewed, + by independent driver programs +\item virtual fonts. +\end{itemize} +\noindent \TeX\ was developed as a side-step. \MF{} can be seen as +an off-off-spring. + +\section{\TeX{} and its users} +It is unknown how many people use \AllTeX, and for what purposes. +We know, however, that it is used all over the world, to typset +\begin{itemize} +\item scientific documents, exchange + and publish such documents\footnote{For an impression of + published books formatted via \TeX\ see Beebe's bibliography + in the TUG resource directory.} +\item documents which require special fonts and layout + conventions, like Japanese, Arabic, Hebrew and so on +\item transparencies and slides +\item material associated with a + hobby (bridge, chess, crosswords, go, music, and add yours). +\end{itemize} +\noindent A great virtue of the users' action is +\begin{itemize} +\item the porting to various platforms +\item to provide macros, fonts and formats +\item to maintain \LaTeX +\item to ponder about and develop New Typsetting Systems +\item to develop and maintain integrated working environments. +\end{itemize} + +\paragraph*{The user groups.}We also know that many users have +organized themselves into user groups, +to start with the original \TeX\ Users Group (TUG), +and more recently into so-called LUGs---language-oriented +local user groups. +The Dutchies are organized since 1988 as the NTG, +Nederlandstalige \TeX\ Gebruikersgroep, that is Dutch language-oriented +\TeX\ Users' Group. We enjoy some 225 members of whom are 30 institutions. +\\ +World-wide some 7.5--10k users are organized. +\\ +The benefits of being organized, apart from those which come +from cooperation and sharing in general, are +\begin{itemize} +\item meetings +\item TUGboat, newsletter, casu quo bulletins, `specials' +\item resource directory (information about the (La)\TeX\ working environments + of members, their addresses and similar things) +\item TUGboat styles +\item assistance\\ + -- archives\\ + -- BBS (Bulletin Board Services) \\ + -- digests \\ + -- FAQs (Frequently Asked QuestionS) +\item courses +\item PD sets (Public Domain) +\item distributing point books (tutorials), software. +\end{itemize} +\noindent +Moreover, the user groups stimulate and support research and development, +such as the projects: \TeX HaX, \BibTeX, +and more recently \LaTeX3, and NTS. +>From the social side we have the TUG bursary fund, +to grant attendence for a TUG meeting for those TUG members who can't +afford it, next to the Knuth Scholarship award. The latter is a competition +which rewards the winner with attending a meeting for free. + +\paragraph*{Some addresses?} +\begin{quote} +TUG: Balboa Building, Room 307, 735 State Street, Santa Barbara, Ca 93101, USA, + {\tt tug@tug.org}\\[1ex] +NTG: Postbus 394, 1740 AJ Schagen, {\tt ntg@nic.surfnet.nl}. +\end{quote} +For other addresses consult the resource directory of TUG, or +your friendly NTG around the corner. + +\subsection{Add-ons}have been provided by the user communities. +They have also supplied mutual support, and have provided logistic facilities. +The latter is not restricted to \AllTeX\ proper. +It is about the general use of the electronic networks +\begin{itemize} +\item exchange via e-mail +\item electronic digests and list servers +\item the file servers, which store all the macro and style files. +\end{itemize} +Really, very nice goodies! The proper add-ons concern +\begin{itemize} +\item porting the complex to every system, especially the affordable + and widespread PCs +\item macro and style files\footnote{A survey of what is provided is contained + in the so-called Jones' index, and Beebe's TUGlib.} +\item extra fonts, casu quo font couplings via virtual font scripts +\item WYSIWYG user interfaces (commercial) +\item \TeX-based PD/shareware working environments +\item language-specific issues (hyphenation patterns, reserved words, \ldots) +\item drivers for new printers +\item \PS{} etc.{} inclusion at the dvi level. +\end{itemize} +And the end is not yet in sight. + + +\section{\TeX{} and the publishers} +The importance of the \AMS{} effort is that the AMS is leading in how (La)\TeX\ +can be used cost-effectively as a +high-quality tool in a production environment: +publishers cooperating with authors. + +As I understand it the American Physical Society is following +the AMS approach. + +At the TUG '91 meeting at Boston, it was estimated that commercial publishers +handle some 5 to 10\% of their (scientific) production via (La)\TeX. + +And in the CIS---Commonwealth of Independent States, the former Russia---MIR +has adopted the AMS approach as well. +And then there is the Ukraine group to be founded officially this fall, +and undoubtedly more to follow. +% +\paragraph*{The \AMS}do their +complete production via \TeX: $\approx$100,000 pages/year, + and provide authors with +\begin{itemize} +\item (generic) styles +\item macros, and fonts +\item user guides +\item support (keyboarding, mark-up, fine-tuning). +\end{itemize} +The approach can be depicted by the following scheme +$$\hbox{\vbox{\lineskip.5\lineskip +\hbox to15ex{\hss author(\TeX)\hss} +\hbox to15ex{\hss$\downarrow$\hss} +\hbox to15ex{\hss\tt amsppt.sty\hss} +\hbox to15ex{\hss$\downarrow$\hss} +\hbox to15ex{\hss\tt amstex.tex\hss} +\hbox to15ex{\hss$\downarrow$\hss} +\hbox to15ex{\hss\TeX\hss} +}\qquad\qquad\qquad\qquad\vbox{\lineskip.5\lineskip +\hbox to15ex{\hss author(\LaTeX)\hss} +\hbox to15ex{\hss$\downarrow$\hss} +\hbox to15ex{\hss\tt amsart.sty\hss} +\hbox to15ex{\hss$\downarrow$\hss} +\hbox to15ex{\hss\llap{{\tt amstex.sty}$\,% +\rightarrow\;$}\LaTeX\hss} +\hbox to15ex{\hss$\downarrow$\hss} +\hbox to15ex{\hss\TeX\hss} +}}$$ +They also supply fonts: Euler, Fraktur, \ldots + +For more details +consult the AMS sources or see my AMS BLUes paper on the issue. + +\paragraph*{The American Physical Society}handle some 20\% +of their production via \LaTeX. They cooperate with The Optical +Society of America and the American Institute of Physics. +Their style is called REV\TeX. + +\paragraph*{MIR}publishers Moscow---the driving force +behind CyrTUG, the Cyrillic language-oriented \TeX\ +users group\footnote{See also `News about CyrTUG and Russian \TeX\ Users' + in TTN 2, 1.}---translated Spivak's The Joy of \TeX\ +into Russian among others. +I would not be surprised to hear that they do the +production of their scientific documents with \TeX\ too, completely. +They have the knowledge and \TeX nology. And \TeX- and \MF-based +technology does not require much hard currency for investment. + +\paragraph*{JTUG?}And what is going on in Japan? +The JTUG has at least .5k members.\footnote{See also `Update of \TeX\ in Japan' + TTN 1, 2.} They have translated among others the \TeX book and the + \LaTeX\ manual into Japanese. +Some years ago I received a Japanese newspaper set by J\TeX! + +\section{\TeX\ and other EP tools} +Furuta gives a good account of the history and early tools +in relation with computer-assisted typesetting. However, since the appearance +of that paper +\begin{itemize} +\item the laser printer technology has taken off +\item many computer-based fonts have emerged +\item thinking in structures has gotten more interest (SGML) +\item the DTP (Desktop Publishing) credo has come into existence, and +\item hardware prices have continued to spiral down. +\end{itemize} +Everybody can afford a PC, a laser(jet) printer, and some software (especially +Word{\em whatever\/} or the PD \AllTeX). % and publish (or perish). ;-))) + +\subsection{\TeX\ and intelligent editors.} +Keyboarding compuscripts in (La)\TeX\ can be assisted by editors which +are (La)\TeX\ intelligent, and next, to use templates as `fill-in' forms. +An example is Beebe's \LaTeX-intelligent emacs. +This approach can prevent errors like the level 1 or so endings, or +non-matching braces and the like. +At this level we can also make use of spelling checkers and style +assistants. + +\subsection{Word{\it whatever\/} and \TeX?} +It is true that Word-you-name-it, has made the use of computers more popular. +They replaced the typewriters, don't forget that. And of course that was a +step forward. These are the tools the masses are using because of the +sufficient and improved quality which can be obtained. +This must be seen in context of course: most of the publications +are just in-house reports, memos and the like. + +\begin{quote} +For high-quality typesetting a \TeX-like tool, +high-resolution fonts and ipso facto printer, or viewer, +are needed. +\end{quote} +\noindent +Because wordprocessors are so widespread and heavily used, it can be +anticipated that users start from there and +need \TeX's formatting capabilities now and then. +For that group there exist conversion software: +the public domain DRILCON +and the commercial K-Talk. +Simpler, and better when it concerns complex structured copy, +is to +\begin{quote} +output in ASCII from Word{\it whatever\/} +and insert \AllTeX\ mark-up. +\end{quote} +\noindent And, of course, the wordprocessor can always be used as an editor +for \TeX, with taking advantage of the integrated spelling checker. + +\subsection{Troff or \TeX?} +Troff preceded \TeX. It comes with UNIX. +Both have been in use for the last decade. +To begin with Knuth built upon troff, scribe and similar tools. +On the other hand the troff add-ons have learned from \TeX. +So there has been mutual influence. + +With respect to the functionality the tools are comparable. Both aim at +computer-assisted typography. But there is also a world of difference. +Basically the difference is that troff is a program which can be +extended by independent preprocessors, and \TeX\ is an extensible +language itself, with plain \TeX---the kernel program---device independent, +that is the mapping on the media has to be done by independent drivers. +That the latter was not in troff +can be discerned from the subsequent nroff\Dash with accompanying neqn\Dash +and finally, di-roff, device-independent roff. +Furthermore, remember that \TeX\ is just one of the twins. + +Rumour has it that interest in troff weakened because +the early PCs did not come with UNIX, and that +the kernel has remained undocumented (Its author Ossanna +died in an accident.) +The following table is supplied to indicate roughly the differences. + +\begingroup\tiny +%\input{btable.tex} +%C.G. van der Laan, Hunzeweg 57, 9893PB, Garnwerd. Holland. 05941-1525. +%btable.tex version 1, 17/7/92 author: cgl@risc1.rug.nl +\newbox\tbl\let\ea=\expandafter +%Cell vertical size, row height and depth (separation implicit), +\newdimen\cvsize\newdimen\tsht\newdimen\tsdp\newdimen\tvsize\newdimen\thsize +%Parameter setting macros: Rules +\def\hruled{\def\lineglue{\hrulefill}\def\colsep{} \def\rowsep{\hrule} + \let\rowstbsep=\colsep\let\headersep=\rowsep} +\def\vruled{\def\lineglue{\hfil} \def\colsep{\vrule}\def\rowsep{} + \let\rowstbsep=\colsep\let\headersep=\hrule} +\def\ruled {\def\lineglue{\hrulefill}\def\colsep{\vrule}\def\rowsep{\hrule} + \let\rowstbsep=\colsep\let\headersep=\rowsep} +\def\nonruled{\def\lineglue{\hfil} \def\colsep{} \def\rowsep{} + \def\rowstbsep{\vrule}\def\headersep{\hrule}} +\def\dotruled{\def\lineglue{\dotfill}\def\rowsep{\hbox to\thsize{\dotfill}} +\def\colsep{\lower1.5\tsdp\vbox to\cvsize{% +\leaders\hbox to0pt{\vrule height2pt depth2pt width0pt\hss.\hss}\vfil}} +\let\rowstbsep=\colsep\let\headersep=\rowsep} +%Parameter setting macros: Controling positioning +\def\ctr{\def\lft{\hfil}\def\rgt{\hfil}}%Centered +\def\fll{\def\lft{} \def\rgt{\hfil}}%Flushed left +\def\flr{\def\lft{\hfil}\def\rgt{}} %Flushed right +%Parameter setting macros: Framing +\def\framed{\let\frameit=\boxit} +\def\nonframed{\def\frameit##1{##1}} +\def\dotframed{\let\frameit=\dotboxit} +% +\def\btable#1{\vbox{\let\rsl=\rowstblst%Copy +\ifx\empty\template\ifx\empty\rowstblst + \def\template{\colsepsurround\lft####\rgt&&\lft####\rgt\cr} + \else\def\template{\colsepsurround####\hfil&&\lft####\rgt\cr}\fi + \fi +\tsht=.775\cvsize\tsdp=.225\cvsize +\def\tstrut{\vrule height\tsht depth\tsdp width0pt} +%Logical mark up of column and row separators, via use of +\def\cs{&\colsepsurround\colsep\colsepsurround&} +\def\prs{&\colsepsurround\lineglue&} \def\srp{&\lineglue\colsepsurround&} +\def\rs{\colsepsurround\tstrut\cr + \ifx\empty\rowsep\else\noalign{\rowsep}\fi + \ifx\empty\rowstblst\else\ea\nxtrs\fi} +\def\grs{\colsepsurround\tstrut\cr\ghostrow} +\def\rss{&\colsepsurround\rowstbsep\colsepsurround&} +\def\hs{\colsepsurround\tstrut\cr + \ifx\empty\headersep\else\noalign{\headersep}\fi + \ifx\empty\rowstblst\else\ea\nxtrs\fi} +\preinsert +\setbox\tbl=\vbox{\tabskip=0pt\relax\offinterlineskip +\halign{\span\template\ifx\empty\first\ifx\empty\rowstblst\else +\ifx\empty\header\else\ea\rss\fi\fi\else\first\ea\rss\fi +\ifx\empty\header\ifx\empty\first\if\empty\rsl\else\ea\nxtrs\fi + \else\ea\hs\fi +\else\header\ea\hs\fi +#1\colsepsurround\tstrut\crcr} } %end \setbox +\postinsert +\ifx\caption\empty\else\hbox to\thsize{\strut\hfil\caption\hss}\captionsep\fi +\frameit{\copy\tbl} +\ifx\footer\empty\else\footersep\hbox{\vtop{\noindent\hsize=\thsize% +\footer}}\fi }} %end \btable +%Defaults +\cvsize=4ex\tsht=.775\cvsize\tsdp=.225\cvsize\def\colsepsurround{\kern.5em} +\def\caption{}\def\first{}\def\header{}\def\rowstblst{}\def\footer{}\def\data{} +\def\captionsep{\medskip} \def\headersep{\hrule} +\def\footersep{\smallskip} \def\rowstbsep{\vrule} +\def\preinsert{} +\def\postinsert{\global\thsize=\wd\tbl + \global\tvsize=\ht\tbl\global\advance\tvsize by\dp\tbl} +\ctr\nonruled\nonframed\def\template{}\def\ghostrow{} %end Defaults +%Auxiliaries +\def\boxit#1{\vbox{\hrule\hbox{\vrule\vbox{#1}\vrule}\hrule}} +\def\dotboxit#1{\vbox{\offinterlineskip\hbox to\thsize{\dotfill}% +\hbox{\lower\tsdp\vbox to\tvsize{% +\leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss}\vfil}% +\vbox{#1}\lower\tsdp\vbox to\tvsize{% +\leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss}\vfil}}% +\hbox to\thsize{\dotfill}}} +%And to account for logical columns with \multispan +\def\spicspan{\span\omit} +\def\multispan#1{\omit\mscount=#1\multiply\mscount by2 \advance\mscount by-1 +\loop\ifnum\mscount>1 \spicspan\advance\mscount by-1 \repeat} +%To process FIFO, an improved version is available +\def\bfifo#1{\ifx\efifo#1\else\def\nxt{\process#1\bfifo}\ea\nxt\fi} +\def\process#1{\hbox to0pt{\hss#1\hss}\kern.5ex} +%To handle the row stub list: \rsl +\def\nxtrs{\ifx\empty\rsl%\let\nxtel=\relax +\else\def\nxtel{\ea\nrs\rsl\srn}\ea\nxtel\fi}%next Row Stub +\def\nrs#1#2\srn{\gdef\rsl{#2}#1\rss} %end btable.tex +%%%%btable end%%%% +% +\def\data{%Costs\cs +PD \cs licensed via UNIX\rs +%Availability\cs +all platforms \cs under UNIX \rs +%Documentation\cs +\TeX book (also on-line)\cs On-line manual \rs +%Fonts \cs +METAfont's CM, virtual fonts \cs ?\rs +%Design \cs +open system \cs kernel undocumented\rs +%Printers \cs +device independent \cs di-roff approach\rs +%Flexibility \cs +complete \cs ?\rs +%Extensibility \cs +macros \cs preprocessors\rs +%Mark-up\cs +formats and styles\cs ms macros\rs +%Coding \cs +uniform in \WEB{} \cs C\rs +%Future \cs +kernel frozen, users augment \cs frozen\rs +%Acceptance \cs +users, AMS, APS, \ldots \cs users, ?\rs +} +\def\header{\AllTeX\cs T/Di-roff} +\def\rowstblst{{% +Costs}{% +Availability}{% +Documentation}{% +Fonts }{% +Design }{% +Printers }{% +Flexibility }{% +Extensibility }{% +Mark-up }{% +Coding }{% +Future }{{% +Acceptance }}} +$$\fll\btable\data$$ +\endgroup + +\subsection{SGML and \TeX?} +SGML stands for Standardized Generalized Mark-up Language. +It is an effort to formalize mark-up, and is defined as a meta-language +to define the mark-up language of each publication series into +so-called Document Type Definitions, DTDs for short. + +SGML is part of a huge standardization effort supported by the +US military via the CALS initiative. Other components are: FOSI---Formatted +Output Specification Instance\footnote{See Dobrowolski's paper.}---and +DSSSL.\footnote{See Bryan's paper.} +It is not so much a question of +\begin{quote}\TeX\ {\em or\/} SGML, +but more \TeX\ {\em and\/} SGML. +\end{quote} +\noindent +\TeX\ formats can learn a lot from the SGML approach and on the other hand +SGML needs a formatter when it is used to print documents. +This cooperative approach is known as +\begin{quote} +SGML the front-end, +\AllTeX\ the back-end. +\end{quote} +\noindent A diagram about the SGML-\TeX\ relation is +supplied in the accompanying picture. + +\newcount\leg +\begin{figure}[hbt] +\begin{center} +\begingroup\small +\setlength{\unitlength}{2.5ex} +\begin{picture}(20,23)(-10, 0) +\put(-7,\the\leg){\framebox(4,2){(La)\TeX}} +\put(-2,\the\leg){\framebox(4,2){TROFF}} +\put(3,\the\leg){\framebox(4,2){\ldots}} +\advance \leg by 4 +%hark +\put(-5,\the\leg){\vector(0,-1){1.75}} +\put(0,\the\leg){\vector(0,-1){1.75}} +\put(5,\the\leg){\vector(0,-1){1.75}} +\put(-5,\the\leg){\vector(1,0){5}} %backarrow +\put( 0,\the\leg){\line(1,0){5}} +%converters +\put(5.5,\the\leg){\vtop to 0pt{\hbox{Specific} + \hbox{format file}\vss + } + } +\put(0,\the\leg){\vector(0, 1){1}} %backarrow +\advance \leg by 1 +\put(-4,\the\leg){\framebox(8,2){% + \shortstack[c]{%\footnotesize + Generic markup\ \\ + %\footnotesize + $\Rightarrow$\ procedural} } + } +\advance \leg by 2 +\put(4.2,\the\leg.2){\line(0, -1){1}} +\put(4.2,\the\leg.2){\line(-1, 0){1}} +\put(4.4,\the\leg.4){\line(0, -1){1}} +\put(4.4,\the\leg.4){\line(-1, 0){1}} +\put(4.6,\the\leg.2){{\tiny Formats}} +% +\advance \leg by 1 +\put(0,\the\leg.5){\vector(0,-1){1.5}} +\put(0,\the\leg.5){\vector(0, 1){0}} %backarrow head +%applications +\advance \leg by 1 +\put(-10,\the\leg){\makebox(0,0){Exchange}} +\put(-5,\the\leg){\makebox(0,0){Storage}} +\put(0,\the\leg){\makebox(0,0){Publication}} +\put(5,\the\leg){\makebox(0,0){Database}} +\put(10,\the\leg){\makebox(0,0){\vtop to 0pt{\hbox{(Text-)} + \hbox{analysis}\vss} + } + } +%hark +\advance \leg by 2 +\put(0,\the\leg){\vector(0,-1){1.25}} +\put(-5,\the\leg){\vector(0,-1){1.25}} +\put(-10,\the\leg){\vector(0,-1){1.25}} +\put(5,\the\leg){\vector(0,-1){1.25}} +\put(10,\the\leg){\vector(0,-1){1.25}} +\put(-10.5,\the\leg){\line(1,0){21}} +\put(11.25,\the\leg){\makebox(0,0){\dots}} +\put(-11.25,\the\leg){\makebox(0,0){\dots}} +\advance \leg by 2 +\put(0,\the\leg){\line(0,-1){2}} +\put(0,\the\leg){\vector(0,1){0}} %back (up) arrow head +\put(-7.5,\the\leg){\framebox(15,1){Complete, correct SGML +document}} +\advance \leg by 2 +\put(.5,\the\leg.25){Parser} +\advance \leg by 2 +\put(0,\the\leg){\vector(0,-1){3}} +%\advance \leg by 1 +\put(-7.5,\the\leg){\framebox(15,3){ + \shortstack[l]{\verb=<!=SGML - -declaration - -\verb=>=\\ + \verb=<!=DOCTYPE - - declaration - -\verb=>=\\ + \verb=<!= - - Markup copy - -\verb=>= } + } + } +\advance \leg by 3 +%\corners +\put(7.7,\the\leg.2){\line(0,-1){2}} +\put(7.7,\the\leg.2){\line(-1,0){2}} +\put(7.9,\the\leg.4){\line(0,-1){2}} +\put(7.9,\the\leg.4){\line(-1,0){2}} +\put(8.1,\the\leg.2){{\tiny DTDs}} +% +\advance \leg by 1 +\put(.5,\the\leg){Editor} +\advance \leg by 1 +\put(0,\the\leg.5){\vector(0,-1){2.5}} +\advance \leg by 1 +\put(0,\the\leg){\framebox(0,0){\strut ``Copy''}} +\end{picture} +\endgroup% \small/\Large +\end{center} +%\caption{Relation SGML and (La)\TeX} +\end{figure} +% +\subsection{SGML and Hypermedia?} The following has been contributed +by Gerard van Nes (from SGML FAQs and +Personal Computer Word, March 1992) +\begin{quote} +`HyTime---Hypermedia/Time-based Structuring Language (ISO/IEC 10744). +HyTime is a standard neutral markup language for representing hypertext, +multimedia, hypermedia and time- and space-based documents in terms of their +logical structure. Its purpose is to make hyperdocuments interoperable +and maintainable over the long term. HyTime can be used to represent +documents containing any combination of digital notations. HyTime is +parsable as Standard Generalized Markup Language. +HyTime was accepted as a full International Standard in spring 1992. + +SGML's hypermedia capabilities have been beefed up in the SGML standard +extension HyTime. Although it started out in life as a specific set of +standards for representing music, it was soon realised that these could +be generalised for multimedia. HyTime provides +\begin{itemize} +\item SGML itself +\item Extended Hyperdocument management facilities, including support for + various types of hyperlink +\item A Coordinate Addressing Facility which positions and synchronises + on-screen events. This allows authors to specify how hypermedia + documents are to be rendered +\item Better version-control of comments and activity-tracking policy support. +\end{itemize} +HyTime has been adapted as the basis for hyperlinking in the US +Department of Defense's Interactive Electronic Technical Manual project. +HyTime is an extension of SGML, providing a set of syntactic constructs: +it doesn't specify a processing system.' +\end{quote} +\noindent Sounds very promising! + + +\subsection{\TeX\ within the context of EP.} +When we think about Electronic Publishing we can't avoid being +aware of the life-cycle of publications. +This obeys the biological invariant: produce, consume and reuse. +\subsection*{Life-cycle: producing.} +The production process has all to do with the dimensions + +\begingroup +\setlength{\unitlength}{1ex} +\begin{picture}(18,15)(2, -1) +\put(5,5){\vector(1,0){5}} +\put(5,5){\vector(0,1){5}} +\put(5,5){\vector(-1,-2){2.5}} +%Text +\put(11,5){Place} +\put(6,10){Representation} +\put(4,0){Time} +\end{picture} +\endgroup + +\noindent and with the characteristics +\begin{itemize} +\item representation of the contents, that is the typesetting proper aspects +\item logistics, that is distribution and selling points---the place dimension +\item reuse, that is the time aspect, when + (parts of) document are reused. +\end{itemize} +The flow can be depicted via + +$$\vbox{\halign{&\enspace\hfil#\hfil\cr +Produce&$\rightarrow$&Distribute&$\rightarrow$&Consume\cr +$\uparrow$&&$\uparrow$&&$\downarrow$\cr +reuse&$\leftarrow$&retrieve&$\leftarrow$&store\cr}}$$ + +\noindent +The big features are the unambiguous mark-up of copy via \AllTeX\ +and the lifetime of the \TeX\ kernel. Therefore storing documents +formatted by \TeX, leaves the reuse aspect open. Reality has it that +documents formatted via \TeX\ are easily redistributed via the electronic +networks, because it is all in ASCII, and \TeX\ is everywhere, so are its +drivers. + +My day-to-day reuse is transforming reports into articles and these +into transparencies. +In this work it is the other way round I'm recollecting elements I have set +earlier. Similarly with the book I'm working on Publishing with \TeX. +Actually my first work in the document preparation area, +in the early eighties, was called `Van rapport naar tranparant.' +% +\subsection*{Life-cycle: consuming.} +\TeX's drivers have not paid attention to other representations as yet, +although an exception is a driver for the blind. +Difficulties in formatting languages different from English have been +exercised in recent years. Undoubtedly research will be devoted +to the aspects hinted at in the diagram given below with the dimensions + +\begingroup +\hbox{\setlength{\unitlength}{1ex} +\begin{picture}(18,14)(2, -1) +\put(5,5){\vector(1,0){5}} +\put(5,5){\vector(0,1){5}} +\put(5,5){\vector(2,-1){5}} +\put(5,5){\vector(-1,-2){2.5}} +%Text +\put(11,5){Level} +\put(11,2.5){Media} +\put(6,10){Senses} +\put(4,0){Language} +\end{picture}%\quad +\vbox to3.5\baselineskip{\halign{#\hfil:&\enspace#\hfil\cr +Senses& eyes, ears, tactile\cr +Level&abridged, full, \ldots\cr +Language&English, Dutch, \ldots\cr} +\vss}}% +\endgroup + +\noindent and with the characteristics +\begin{itemize} +\item choice of consumer language independent of the submitted language, + that is automatic translation +\item choice of representation, that is for example voice + output from written submission. +\end{itemize} +\noindent +Of course the above aspects will +keep research busy for some time to come. +This is the direction multi-media development will go. + +\section{Trends} +Adobe has been the trendsetter of the last decade with respect to new +EP technologies. Recently, I heard about their +PDF---Portable Document Format---which is at the heart of their +Acrobat. Very promising, if not for the tools which come along +with this product. + +I believe that the multi-media information technology will take off in +the next century. +Much is known under the buzzword hypertext. +See the special issue of the Communications of the ACM for +an introductory survey. +As a \TeX ie it is fun to ponder about what niche +there will be for \TeX. At the various TUG meetings people are concerned +about the future of \TeX\ and share their doubts and optimisms. +>From that the following anthology +\begin{itemize} +\item \LaTeX\ is the future, forget about \TeX +\item make \AllTeX\ available on low-cost machines +\item embed \TeX\ etc. in working environments +\item improve \TeX, in short keep it alive +\item provide WYSIWYG user interfaces +\item increase the number of (organized) \AllTeX\ users +\item get \AllTeX\ accepted by publishers (formats, support, fonts, + and the like) +\item get \AllTeX\ accepted by other communities: SGML, + scientific societies +\item provide user guides and templates +\item education is paramount +\item keep it simple and small is beautiful. +\end{itemize} +\noindent and so on. +\paragraph*{Prophecy.} +The demand on IT will be that +\begin{quote} +people can access cost-effectively, and easily, +from their homes the information they need in a representation they wish. +\end{quote} +I envision that the following technologies will influence each other +in realizing the stated prophecy +\begin{itemize} +\item \TeX's role? Embedded in a Hypertext approach? +\item Increased self-publishing +\item Electronic Production \& Consumption \\ + + Photography\\ + + CD\\ + + TV/Radio, video\\ + + PC \\ + + Phone, fax, email \\ + + Holography \\ + + \ldots +\item Involvement of linguists and behaviourists +\end{itemize} +\noindent with the functionalities +\begin{itemize} +\item Various inputs (o.a. voice, photography, \ldots) +\item Diverse outputs +(language, level, media and representation,\ldots) +\end{itemize} +Some years ago I day-dreamed about holographic-based true 3-D `displays,' +as a generalization of computer-assisted interactive TV. +Science-fiction? Wait and see, or better hang on and make it happen! + +\section{Examples} +With a publication we have two main issues: macroscopic and microscopic. +With the first I mean the aspects which govern the total outer level of +a publication, let us say to look upon it as a tree consisting of +\begin{itemize} +\item front matter (front pages (title etc.), publication characteristics, + foreword, table of contents and the like) +\item copy proper (the chapters and their substructures), + and +\item back matter (appendixes with references, index, and other special + items). +\end{itemize} +\noindent These macroscopic aspects are accounted for in so-called formats or +style files. + +The microscopic aspects deal with formatting in the small within paragraphs, +the complex mark-up of math, tables and graphics. + + +Another basic way to look at the matter is that it has all to do with +\begin{quote} +positioning of typographical elements on pages. +\end{quote} +\noindent The following examples, +biased by my own (scientific) needs, are in the main about +\begin{itemize} +\item formats, generic and special +\end{itemize} +\noindent and deal in the small with +\begin{itemize} +\item special texts like programs +\item (displayed) math (formulae, matrices, \ldots) +\item tables +\item graphics +\item bibliographies, and +\item indexes. +\end{itemize} +\noindent So nothing in here about the use of \TeX\ for +non-Latin languages and the design and generation of the needed fonts, +simply because I don't speak them. +I also refrained from including examples about the hobby use---games---% +without a serious reason. +See NTG's PR set for the latter. +See the works of Haralambous with respect to non-Latin languages, and +the work of Horak for (math) \MF{} examples. + +\subsection{Examples: formats.} +In this section some detailed formatting examples are provided. + +I will consider \LaTeX\ as formatter for a rudimentary +house-style, followed by a generic approach customized to \mm{} and \LaTeX's +report style. + +\paragraph*{House-style.} +\LaTeX\ is heavily used for this {\em as-is} +\begingroup\small\begin{verbatim} +\documentstyle[options]{house} +%preamble +\begin{document} +%front matter +\title{...} +... +\begin{abstract} +... +\end{abstract} +\tableofcontents +\listoffigures +\listoftables +%copy proper +%\section, \subsection structuring with +%paragraphs with (displayed) math, tables +%and graphics. +%back matter +\begin{thebibliography}{xxx} +\bibitem{dek84} Knuth, D.E (1984):... +... +\end{thebibliography} +%Index material (\makeindex tool) +\end{document} +\end{verbatim}\endgroup +Options are, for example, +the number of columns,\footnote{It is not true in general that switching from + 1-column into 2-column format can be done without altering the mark-up + of displayed math, tables or figures. + At least one must change locally back into + 1-column format, or one has to scale the document element into smaller + size as was done in this paper.} +the size of the used fonts, +the paper size, and the like. + +As style files there are next to report, +the styles book, article, letter, and so on.\footnote{\LaTeX's \SliTeX\ +is a bit different. One can't simply switch from report into slides.} + + +\paragraph*{Generic mark-up.} +Many users start nowadays via \LaTeX. Sooner or later the demand for +a generic approach pops up. +Then the user wishes to +abstract from the concrete formatter and +use some higher-level mark-up for the global structuring commands, customizable +to a concrete formatter of choice.\footnote{This sounds like SGML, but without + its generality and its overhead. I like to call this `SGML on your mind + and \TeX\ in your hands.'} + +The idea is that the {\em user\/} mark-up at the outer level is +as independent as possible from the concrete formatter. +\begin{quote} +A generic approach is needed because of +the variety of environments we live in +and because of their rapid change. +\end{quote} +For the generic approach to become realistic, and to handle it gracefully, +I assume that +\begin{itemize} +\item the opening part is available for the various formats as + templates +\item the copy proper uses as structuring commands \verb|\head| and + the like +\item for the detailed formatting plain \TeX\ is used, + so that this can be used in + \AllTeX\ (math, tables, and graphics) +\item for the end matter a generic approach for the bibliography---see + my BLUe's Bibliography paper---is used +\item for index preparation a non-specific tool is used. +\end{itemize} +With the above a generic approach for a house-style is +\begingroup\small\begin{verbatim} +%Front matter +\opening%To be replaced by template +%Copy proper +% Structured via \head{...} and the like +% with detailed plain mark-up: math, tables, +% line diagrams,... +%Back matter + \bibliography + \index +\closing +\end{verbatim}\endgroup +\vskip1ex +\noindent Customization to \mm.\\ +\mm{} is flexible, and alas too much overlooked, +because it lacks a user guide. +Customization of the generic approach to manmac +goes along the following lines to give you an +impression. (Not tested!) +\begingroup\small\begin{verbatim} + \input manmac + \input manmac.cus%manmac customization + \input man.tem %manmac template + \input toc %table of contents + \input cover %see my manmac blues + %Copy proper + %Back matter + \closing +\end{verbatim}\endgroup +\noindent with in \verb|manmac.cus| +\begingroup\small\begin{verbatim} + %Customization of manmac + %Redefine \beginchapter also non-outer + \def\beginchapter#1 #2#3.#4\par{% + \def\hl{\gdef\hl{\issue\hfil\it\rhead}} + \headline{\hl} + \def\\{ }\xdef\rhead{#4} + {\let\\\cr\halign{\line{\titlefont + \hfil##\hfil}\\#1 #2#3 #4\unskip\\}} + \bigskip\tenpoint\noindent\ignorespaces} + \def\endchapter{\vfill\eject} + % + \newcnt\chpcnt \newcnt\seccnt + \def\head#1{\endchapter\beginchapter + \advance\chpcnt1 \seccnt0 + {} {}\the\chpcnt. #1\endgraf} + \def\subhead#1{\beginsection\advance\seccnt1 + \the\seccnt. #1\endgraf} + \def\bibliography{\beginchapter Bibliography + {}{}.{}\endgraf} + \def\closing{\bye} +\end{verbatim}\endgroup +\noindent and with in \verb|manmac.tem| +\begingroup\small\begin{verbatim} +\def\opening{ + \def\issue{% + MAPS Special 93.x %issue + }\def\title{% + MAPS Special Template %title + }\def\abstract{% + A template for MAPS Special is provided. + }\def\keywords{% + manmac, MAPS, NTG %keywords + } +} +\end{verbatim}\endgroup +\noindent In my Manmac BLUes paper I have worked out a prototype, directed +to customization of \mm. +\begin{quote} +Actually there it was the other way round: +I started from Manmac formatting and abstracted +into independent structures. +\end{quote} +In Manmac BLUes I also worked out \verb|cover|. +Too much detail here. +\vskip1ex +\noindent Customization to \LaTeX.\\ +The `title part'-template is inserted instead of \verb|\opening|, +edited to suit the publication at hand. +In \verb|latex.cus| the macros are supplied to customize the generic +mark-up to \LaTeX. +\begingroup\small\begin{verbatim} +%Begin LaTeX report \opening template +\documentstyle{report} +\input{latex.cus} +\begin{document} +\begin{title}...\end{title} +... +%end LaTeX \opening template +%Copy proper +... +%Back matter +\bibliography +\closing +\end{verbatim}\endgroup +\noindent with in \verb|latex.cus| +\begingroup\small\begin{verbatim} +\def\head#1{\chapter{#1}} +\def\subhead#1{\section{#}} +\def\bibliography{\appendix + \section*{Bibliography} + \input{lit.dat} + %\input{lit.tex} + \frenchspacing + \def\ls#1{\nul\\#1}%simple + \input{lit.sel} +} +\def\closing{\end{document}} +\end{verbatim}\endgroup +\noindent +The above ideas came to mind when working on this paper. +They deserve development, because it has all to do with the +\begin{quote} +user$\leftrightarrow$environment interaction, +\end{quote} +which has always been important. + +\paragraph*{Special texts}are computer programs. +First we like that these +reflect the structure and different quantities (constants, variables, +reserved words, comments etc.) of the program. Second we like that the +programs remain correct while formatting them (meaning: humans hands-off!). +These kind of texts come at two levels +\begin{itemize} +\item the small examples (less than a dozen of lines or so) + which are part of courseware, and +\item the documentation (and listings) of real-life programs. +\end{itemize} +Current practice is that for the first it does not really matter what you use. +For a survey see the compilation of Van Oostrum. +For the second Knuth developed \WEB, which stimulates a programmer to +design and {\em document\/} his program from the beginning, by rewarding him +with pretty-\TeX\ printing of it all via \TANGLE. Actually the hierarchical +way of working has been replaced by a relational approach, with the +documentation related to the various items of a program. +For a survey see Knuth's literal programming article of 1984. + +\subsection{Examples: math.} +The \TeX book has devoted at least 4 chapters to math mark-up: +typing math formula, +more about math, +fine points of math typing, and +displayed equations. + +See also my Math into BLUes paper for % an anthology of pitfalls. +a survey and how to cope with situations which go wrong---not so much that +\TeX\ complains, but the results are different +from what we expected---by innocent mark-up. + +\paragraph*{Displayed math}via (plain) \TeX. +A display is marked up by \$\$ at the beginning and the end. +Within a display the following is generally used +\begin{itemize} +\item just math mark-up +\item \verb|\displaylines|, for multi-liners +\item \verb|\(l)eqalign|, for aligned formulas\footnote{(l) denotes that + the numbering appears at the left instead of the default right.} +\item \verb|\(l)eqalignno|, similar to the above, but numbering per line. +\end{itemize} +For numbering there is the primitive \verb|\eqno|. +\vskip1ex\noindent +>From a user point of view the following are representative structures +\begingroup%local +%From plain; in LaTeX context the defs below should be grouped +\newskip\centering \centering=0pt plus 1000pt minus 1000pt +\catcode`\@=11 +\newdimen\netdpw +%The next is necessary because LaTeX redefined it!!!!!; +%\equalign with numbering went wrong! +% +\def\eqalign#1{%Changed TB361: dynamic number of alignment positions +%\, Had to be removed for two-column output, see TB189 (top) +\vcenter{\openup1\jot\m@th + \ialign{\strut\hfil$\displaystyle{##}$&& %Change is extra & + $\displaystyle{{}##}$\hfil\crcr + #1\crcr}}\,} +\def\eqalignno#1{\displ@y \tabskip=\centering + \halign to \displaywidth{\hfil$\displaystyle{##}$\tabskip=0pt + &$\displaystyle{{}##}$\hfil\tabskip=\centering + &\llap{$##$}\tabskip=0pt\crcr + #1\crcr}} +\def\leqalignno#1{\displ@y \tabskip=\centering + \halign to \displaywidth{\hfil$\displaystyle{##}$\tabskip=0pt + &$\displaystyle{{}##}$\hfil\tabskip=\centering + &\kern-\displaywidth\rlap{$##$}\tabskip=\displaywidth\crcr + #1\crcr}} +\def\midinsert{\bgroup\smallskip} +\def\endinsert{\smallskip\egroup} +\catcode`\@=12 + +%Display math examples for Mededelingen van het Wiskundig Genootschap, +%13/4/92, cgl@rug.nl +\def\com#1{{\tt\char92#1}} +% +%Essential ways of formula numbering num.tex +\begin{itemize} +\item Labeled 1-line +$$\sin2x=2\sin x\, \cos x + \eqno(\hbox{TB186})$$ +\item Three lines, second flushed right +(relevant for 2-column printing) +$$\displaylines{F(z)= +a_0+{a_1\over z}+{a_2\over z^2}+\cdots + +{a_{n-1}\over z^{n-1}}+R_n(z),\cr + \hfill n=1,2,\dots\,,\cr +\hfill F(z)\sim\sum_{n=0}^\infty a_nz^{-n}, + \quad z\to\infty\qquad\qquad\hfill + \llap{(TB ex19.16)}\cr}$$ +\item Two lines aligned, with middle labeling +$$\eqalign{\cos2x&=2\cos^2x-1\cr + &=\cos^2x-\sin^2x\cr} + \eqno(\hbox{TB193})$$ +\item Two lignes aligned, with labeling per line +$$\eqalignno{ +\cosh2x&=2\cosh^2x-1&(\hbox{TB192})\cr + &=\cosh^2x+\sinh^2x\cr}$$ +\end{itemize} +\noindent obtained via +\begingroup\small\begin{verbatim} +\begin{itemize} +\item Labeled 1-line +$$\sin2x=2\sin x\, \cos x + \eqno(\hbox{TB186})$$ +\item Three lines, second flushed right +(relevant for 2-column printing) +$$\displaylines{F(z)= +a_0+{a_1\over z}+{a_2\over z^2}+\cdots + +{a_{n-1}\over z^{n-1}}+R_n(z),\cr + \hfill n=1,2,\dots\,,\cr +\hfill F(z)\sim\sum_{n=0}^\infty a_nz^{-n}, + \quad z\to\infty\qquad\qquad\hfill + \llap{(TB ex19.16)}\cr}$$ +\item Two lines aligned, + with middle labeling +$$\eqalign{\cos2x&=2\cos^2x-1\cr + &=\cos^2x-\sin^2x\cr} + \eqno(\hbox{TB193})$$ +\item Two lignes aligned, + with labeling per line +$$\eqalignno{ +\cosh2x&=2\cosh^2x-1&(\hbox{TB192})\cr + &=\cosh^2x+\sinh^2x\cr}$$ +\end{itemize} +\end{verbatim}\endgroup + +\paragraph*{Matrices}via (plain) \TeX. +The examples show paradoxically that for practical use +we not only need \cs{matrix}, but +\begin{itemize} +\item \verb|\atop|, to stack elements on top of each other +\item \verb|\bordermatrix|, for bordered matrices, and this embedded within + \verb|\displaylines| +\item \verb|\halign|, to handle partitioning, and +\item some macros tailored to our situations, like the icon set. +\end{itemize} +%Samples for TeXing matrices for Mededelingen Wiskundig Genootschap%cgl@rug.nl +\noindent Examples +\begin{itemize} +\item {Hypergeometric function} +$$M_n(z)={}_{n+1}F_n\biggl({k+a_0, + \atop\phantom{kc_1}} + {k+a_1,\dots,k+a_n + \atop k+c_1,\dots,k+c_n};z\biggr)$$ +via +\begingroup\small\begin{verbatim} +$$M_n(z)={}_{n+1}F_n\biggl({k+a_0, + \atop\phantom{kc_1}} + {k+a_1,\dots,k+a_n + \atop k+c_1,\dots,k+c_n};z\biggr)$$ +\end{verbatim}\endgroup + +\item {Some matrix icons}, Wilkinson (1965) +%LaTeX use of linefonts for diag lines +\setlength{\unitlength}{1ex} +$$\icmat44\kern\unitlength\icllt44= + \icllt44\icuh413\qquad AL=LH$$ +$$\icmat63=\icmat63 +\kern\unitlength\icurt63\qquad A=QR$$ +%rectangular matrix\hfill$\icmat64$\\ +%lower left triangular matrix\hfill $\icllt44$\\ +%upper right triangular matrix \hfill$\icurt44$\\ +%upper Hessenberg f form \hfill $\icuh413$ +via +\begingroup\small\begin{verbatim} +$$\icmat44\kern\unitlength\icllt44= + \icllt44\icuh413\qquad AL=LH$$ +$$\icmat63=\icmat63 +\kern\unitlength\icurt63\qquad A=QR$$ +\end{verbatim}\endgroup + +\noindent See for the matrix icon macros my paper on the issue. +% +\item {Matrix reductions}, +Wilkinson(1965, p357) %---i.e.\ Math `hyphenation' +$$\displaylines{\indent +\bordermatrix{& &\rm A & \cr + &\times&\times&\times\cr + &\times&\times&\times\cr + &\times&\times&\times\cr} +\bordermatrix{& &\rm N & \cr + &1& & \cr + &0&1 & \cr + &0&\times&1\cr}\hfill\cr +\hfill= +\bordermatrix{& &\rm N & \cr + &1& & \cr + &0&1 & \cr + &0&\times&1\cr} +\bordermatrix{& &\rm H & \cr + &\times&\times&\times\cr + &\times&\times&\times\cr + &0 &\times&\times\cr} +}$$ +via +\begingroup\small\begin{verbatim} +$$\displaylines{\indent +\bordermatrix{& &\rm A & \cr + &\times&\times&\times\cr + &\times&\times&\times\cr + &\times&\times&\times\cr} +\bordermatrix{& &\rm N & \cr + &1& & \cr + &0&1 & \cr + &0&\times&1\cr}\hfill\cr +\hfill= +\bordermatrix{& &\rm N & \cr + &1& & \cr + &0&1 & \cr + &0&\times&1\cr} +\bordermatrix{& &\rm H & \cr + &\times&\times&\times\cr + &\times&\times&\times\cr + &0 &\times&\times\cr} +}$$ +\end{verbatim}\endgroup% +\item {Partitioning}, +Wilkinson(1965, p291) +$$P_r=\left(\vcenter{ + \offinterlineskip\tabskip0pt + \halign{ + \vrule height3ex depth1ex width 0pt + \hfil$\enspace#\enspace$\hfil + \vrule width.1pt\relax + &\hfil$\enspace#\enspace$\hfil\cr + I_{n-r}&0\cr + \noalign{\hrule height.1pt\relax} + 0 &I-2v_rv_r^T\cr} + }\right) $$ +via +\begingroup\small\begin{verbatim} +$$P_r=\left(\vcenter{ + \offinterlineskip\tabskip0pt + \halign{ + \vrule height3ex depth1ex width 0pt + \hfil$\enspace#\enspace$\hfil + \vrule width.1pt\relax + &\hfil$\enspace#\enspace$\hfil\cr + I_{n-r}&0\cr + \noalign{\hrule height.1pt\relax} + 0 &I-2v_rv_r^T\cr} + }\right) $$ +\end{verbatim}\endgroup +\end{itemize} +\endgroup + +\begingroup\noindent +Next some examples without the mark-up, just the +results, because they are real teasers. +\begin{itemize} +\item Braces and Matrices, Wilkinson(1965, p199) +$$\vcenter{ + \hbox{${\scriptstyle\phantom{n{-}}p} + \left\{\vrule height4.5ex width0pt + depth 0pt\right.$}\vglue3ex\relax + \hbox{${\scriptstyle n{-}p} + \left\{\vrule height3.0ex width0pt + depth 0pt\right.\kern2pt$} + \vglue.5ex\relax + } +\bordermatrix{&\multispan4{\hfil +$\overbrace{\vrule height0pt width10.5ex + depth0pt}^p$}\hfil + &\multispan3{\enspace\hfil +$\overbrace{\vrule height0pt width7.5ex + depth0pt}^{n-p}$}\hfil\cr +&\times&\times&\times&\times&\times& + \times&\times\cr +&0 &\times&\times&\times&\times& + \times&\times\cr +&0 &0 &\times&\times&\times& + \times&\times\cr +&0 &0 &0 &\times&\times& + \times&\times\cr +&0 &0 &0 &0 &\times& + \times&\times\cr +&0 &0 &0 &0 &\times& + \times&\times\cr +&0 &0 &0 &0 &\times& + \times&\times\cr +}$$ +\item +Matrices, braces, (dotted) partitioning +and icons; space efficient variant +%The simplest way is to make the 22-element +%separate, and measure the sizes. +%Subsequently one easily couples these +%sizes to the sizes of the braces. +%Hard things: automatic coupling, +%vertical dotted lines. +% +\def\vdts{\vbox{\baselineskip4pt + \lineskiplimit0pt + \vglue2pt\hbox{.}\hbox{.}\hbox{.}}}% +$$ +\vcenter{\offinterlineskip%No interline +% space in between parts +\halign{\hfil$#$&\hfil$#$\hfil\cr%2-column +%first row with braces, element 11 empty +{}&\hfil\enspace\mathop{\hbox to.9cm% + {\downbracefill}}\limits^{\vbox{\hbox{ + $\scriptstyle p$}\kern2pt}} + \enspace\hfil\mathop{\hbox to.6cm% + {\downbracefill}}\limits^{\vbox{\hbox to + 0pt{\hss$\scriptstyle n-p$\hss}\kern2pt}}% + \enspace\hfil\cr % end first row +%Separation between first (border) row and +%rest +\noalign{\vglue1ex} +%first column with braces +\vcenter{\vfil + \hbox{${\scriptstyle p}\left\{\vbox + to.8cm{}\right.$}\vfil\vglue2ex\vfil + \hbox{\llap{$\scriptstyle n{-}$}% + ${\scriptstyle p}\left\{\vbox to.5cm{} + \right.$}\vfil} +&%22-element is the matrix proper +\left(\vcenter{\offinterlineskip +\halign{\hfil$#$\hfil&\hfil$#$\hfil& +\hfil$#$\hfil&\hfil$#$\hfil +\tabskip=.5\tabskip&\vdts#& +\tabskip=2\tabskip +\hfil$#$\hfil&\hfil$#$\hfil& +\hfil$#$\hfil\cr%end template +\times&\times&\times&\times&&\times& + \times&\times\cr +0 &\times&\times&\times&&\times& + \times&\times\cr +0 &0 &\times&\times&&\times& + \times&\times\cr +0 &0 &0 &\times&&\times& + \times&\times\cr +\noalign{\vglue1ex} +\multispan8\dotfill\cr +0 &0 &0 &0 &&\times& + \times&\times\cr +0 &0 &0 &0 &&\times& + \times&\times\cr +0 &0 &0 &0 &&\times& +\times&\times\cr}%end halign (22) +}%end vcenter +\right)\cr %end 22-element +%Separation between last (border) row +%and rest +\noalign{\vglue1ex} +{}&\hfil\enspace\mathop{\hbox to.9cm{% + \upbracefill}}\limits_{\vbox{\kern2pt + \icurt42}} + \enspace\hfil + \mathop{\hbox to.6cm{% + \upbracefill}}\limits_{\vbox{\kern2pt + \icmat4{1.5}}}\enspace\hfil% +\cr % end last row +}%end halign +}%end vbox +$$ +\item Other interesting two-dimensional +structures are commutative diagrams. Consult for those Spivak's +\LAMSTeX.\footnote{Within the graphics section I + have supplied a simple example, however.} + +\noindent Interestingly enough, simple commutative diagrams are done by +\verb|\matrix|, while I would expect some graphic commands. +\end{itemize} +\endgroup + +\subsection{Examples: tables.} +For (full) rectangular tables \verb|\halign| or \verb|\valign| is generally +used, when they fit on the page. +Because of determining automatically the page breaks it might happen that +the page builder would like to split a table. Generally this is bad +typography, because we like to maintain the summary character of a table +all on one page.\footnote{When the latter is not important, for example for + tables of values which goes on for pages, we can modify + the row separator into a separator which allows line breaks. + For tables which don't fit on a page + there are special macros, like {\tt supertabular.sty}.} +A table smaller than the page should fit and in order to let that happen +we generally allow tables to float, that is they may be shifted around +a bit by the page builder. +For a survey on the issue see my Table Diversions paper, which also contains +a macro for handling bordered tables---the {\tt btable} macro (some 80 lines), +and used in this work (see later). + + Another important class of tables are the so-called trees. One can argue +whether they are tables or belong to graphics. Br\"uggeman-Klein has provided +a package called Tree\TeX. The user-interface looks good, +although I have not had any personal experience with it myself yet. + +\paragraph*{Simple tables}via (plain) \TeX. +When I read Furuta a decade ago, I was impressed by the ease of mark-up +for tables via the tbl preprocessor of troff.\footnote{Because of + that I was in favour of troff and its preprocessors. + Happily a math professor stressed the importance of \TeX, and because + UNIX was not widely available at the University, I entered \TeX-land.} +Below I'll show that a similar functionality---and some more, I also + abstracted from the kinds of rules, and the positioning of the elements---% +is provided with respect to tables +by my btable macro for the class of bordered tables, +where the (possibly complicated) headers are treated separately +and independently from the (proper) table data, and the rowstub list. + +\begingroup +%\input{btable.tex} +%btable.tex version 1, 15/7/92 author: cgl@rug.nl +%Table Diversions is Published in EuroTeX92 proceedings, and MAPS92.2 +%The article discusses typsetting tables via plain, surveys related work, +%introduces btable.tex, and provides a discipline for typesetting cell-blocks. +%Example of use (from the article) +%\def\data{2\cs7\cs6\rs +% 9\cs5\cs1\rs +% 4\cs3\cs8} +%\ruled\framed\btable\data +%Below is the btable macro listed +\newbox\tbl\let\ea=\expandafter +%Cell vertical size, row height and depth (separation implicit), +\newdimen\cvsize\newdimen\tsht\newdimen\tsdp\newdimen\tvsize\newdimen\thsize +%Parameter setting macros: Rules +\def\hruled{\def\lineglue{\hrulefill}\def\colsep{} \def\rowsep{\hrule} + \let\rowstbsep=\colsep\let\headersep=\rowsep} +\def\vruled{\def\lineglue{\hfil} \def\colsep{\vrule}\def\rowsep{} + \let\rowstbsep=\colsep\let\headersep=\hrule} +\def\ruled {\def\lineglue{\hrulefill}\def\colsep{\vrule}\def\rowsep{\hrule} + \let\rowstbsep=\colsep\let\headersep=\rowsep} +\def\nonruled{\def\lineglue{\hfil} \def\colsep{} \def\rowsep{} + \def\rowstbsep{\vrule}\def\headersep{\hrule}} +\def\dotruled{\def\lineglue{\dotfill}\def\rowsep{\hbox to\thsize{\dotfill}} +\def\colsep{\lower1.5\tsdp\vbox to\cvsize{% +\leaders\hbox to0pt{\vrule height2pt depth2pt width0pt\hss.\hss}\vfil}} +\let\rowstbsep=\colsep\let\headersep=\rowsep} +%Parameter setting macros: Controling positioning +\def\ctr{\def\lft{\hfil}\def\rgt{\hfil}}%Centered +\def\fll{\def\lft{} \def\rgt{\hfil}}%Flushed left +\def\flr{\def\lft{\hfil}\def\rgt{}} %Flushed right +%Parameter setting macros: Framing +\def\framed{\let\frameit=\boxit} +\def\nonframed{\def\frameit##1{##1}} +\def\dotframed{\let\frameit=\dotboxit} +% +\def\btable#1{\vbox{\let\rsl=\rowstblst%Copy +\ifx\empty\template\ifx\empty\rowstblst + \def\template{\colsepsurround\lft####\rgt&&\lft####\rgt\cr} + \else\def\template{\colsepsurround####\hfil&&\lft####\rgt\cr}\fi + \fi +\tsht=.775\cvsize\tsdp=.225\cvsize +\def\tstrut{\vrule height\tsht depth\tsdp width0pt} +%Logical mark up of column and row separators, via use of +\def\cs{&\colsepsurround\colsep\colsepsurround&} +\def\prs{&\colsepsurround\lineglue&} +\def\srp{&\lineglue\colsepsurround&} +\def\rs{\colsepsurround\tstrut\cr + \ifx\empty\rowsep\else\noalign{\rowsep}\fi + \ifx\empty\rowstblst\else\ea\nxtrs\fi} +\def\rss{&\colsepsurround\rowstbsep\colsepsurround&} +\def\hs{\colsepsurround\tstrut\cr + \ifx\empty\headersep\else\noalign{\headersep}\fi + \ifx\empty\rowstblst\else\ea\nxtrs\fi} +\preinsert +\setbox\tbl=\vbox{\tabskip=0pt\relax\offinterlineskip +\halign{\span\template\ifx\empty\first\ifx\empty\rowstblst\else +\ifx\empty\header\else\ea\rss\fi\fi\else\first\ea\rss\fi +\ifx\empty\header\ifx\empty\first\if\empty\rsl\else\ea\nxtrs\fi + \else\ea\hs\fi +\else\header\ea\hs\fi +#1\colsepsurround\tstrut\crcr} }%end setbox +\postinsert +\ifx\caption\empty\else\hbox to\thsize{\strut\hfil\caption\hss}\captionsep\fi +\frameit{\copy\tbl} +\ifx\footer\empty\else\footersep\hbox{\vtop{\noindent\hsize=\thsize% +\footer}}\fi }} +%Defaults +\cvsize=4ex\tsht=.775\cvsize\tsdp=.225\cvsize\def\colsepsurround{\kern.5em} +\ctr\nonruled +\def\caption{}\def\first{}\def\header{}\def\rowstblst{}\def\footer{}\def\data{} +\def\captionsep{\medskip} \def\headersep{\hrule} +\def\footersep{\smallskip} \def\rowstbsep{\vrule} +\def\preinsert{} +\def\postinsert{\global\thsize=\wd\tbl + \global\tvsize=\ht\tbl\global\advance\tvsize by\dp\tbl} +\ctr\nonruled\nonframed\def\template{} %end Defaults +%Auxiliaries +\def\boxit#1{\vbox{\hrule\hbox{\vrule\vbox{#1}\vrule}\hrule}} +\def\dotboxit#1{\vbox{\offinterlineskip\hbox to\thsize{\dotfill}% +\hbox{\lower\tsdp\vbox to\tvsize{% +\leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss}\vfil}% +\vbox{#1}\lower\tsdp\vbox to\tvsize{% +\leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss}\vfil}}% +\hbox to\thsize{\dotfill}}} +%And to account for logical columns with \multispan +\def\spicspan{\span\omit} +\def\multispan#1{\omit\mscount=#1\multiply\mscount by2 \advance\mscount by-1 +\loop\ifnum\mscount>1 \spicspan\advance\mscount by-1 \repeat} +%To process FIFO +\def\bfifo#1{\ifx\efifo#1\let\nxt=\relax\else\def\nxt{\process#1\bfifo}% + \fi\nxt}%end \bfifo +\def\process#1{\hbox to0pt{\hss#1\hss}\kern.5ex} +%To handle row stub list +\def\nxtrs{\ifx\empty\rsl%\let\nxtel=\relax +\else\def\nxtel{\ea\nrs\rsl\srn}\ea\nxtel\fi}%next Row Stub +\def\nrs#1#2\srn{\gdef\rsl{#2}#1\rss} %end btable.tex +% +\def\data{11\cs12\rs21\cs22} +\begin{itemize} +\item just framed data + $$\vcenter{\framed\btable\data}$$ +\item add header and rowstubs + \def\header{\multispan2\hfill + Header\hfill} + \def\rowstblst{{$1^{st}$ row}% + {{$2^{nd}$ row}}} + $$\vcenter{\btable\data}$$ +\item add caption and footer, + vary via dotted lines + \def\caption{Caption}\def\footer{Footer} + $$\vcenter{\dotruled\btable\data}$$ +\item vary with ruled and framed + $$\vcenter{\ruled\framed\btable\data}$$ +\end{itemize} +via +\begingroup\small\begin{verbatim} +\def\data{11\cs12\rs21\cs22} +\begin{itemize} +\item just framed data + $$\vcenter{\framed\btable\data}$$ +\item add header and rowstubs + \def\header{\multispan2\hfill + Header\hfill} + \def\rowstblst{{$1^{st}$ row}% + {{$2^{nd}$ row}}} + $$\vcenter{\btable\data}$$ +\item add caption and footer, + vary via dotted lines + \def\caption{Caption}\def\footer{Footer} + $$\vcenter{\dotruled\btable\data}$$ +\item vary with ruled and framed + $$\vcenter{\ruled\framed\btable\data}$$ +\end{itemize} +\end{verbatim}\endgroup + +\paragraph*{Real-life.} AT\&T's example +from the tbl (troff) documentation, also supplied in \TeX book p.247 +\begingroup +%\cite{lesk79} +\def\caption{AT\&T Common Stock} +\def\header{Year\cs Price\cs Dividend} +\catcode`?=\active \def?{\kern1.1ex} +\def\data{1971\cs41--54\cs\llap{\$}2.60\rs + 2\cs41--54\cs 2.70\rs + 3\cs46--55\cs 2.87\rs + 4\cs40--53\cs 3.24\rs + 5\cs45--52\cs 3.40\rs + 6\cs51--59\cs ?.95\rlap*} +\def\footer{* (first quarter only)} +$$\vcenter{\vbox{\small + \framed\ruled\btable\data}}$$ +The above is obtained via \verb|\btable| as follows +\endgroup +% +\begingroup\small\begin{verbatim} +\def\caption{AT\&T Common Stock} +\def\header{Year\cs Price\cs Dividend} +\catcode`?=\active \def?{\kern1.1ex} +\def\data{1971\cs41--54\cs\llap{\$}2.60\rs + 2\cs41--54\cs 2.70\rs + 3\cs46--55\cs 2.87\rs + 4\cs40--53\cs 3.24\rs + 5\cs45--52\cs 3.40\rs + 6\cs51--59\cs ?.95\rlap*} +\def\footer{* (first quarter only)} +$$\vcenter{\vbox{\small + \framed\ruled\btable\data}}$$ +\end{verbatim} +\endgroup +\endgroup +\subsection{Examples: graphics.} +The portable way is via \mmt, \LaTeX's picture environment, +or PiC\TeX. +For a survey see Clark's Portable Graphics in \TeX\ paper. +\TeX tures on the Macintosh by Blue Sky Research is famous for its +(non-portable) pic{\em tures\/} with \TeX. For inclusion of +photographs and in general halftones, see the work of Sowa.\footnote{On the + Mac one can easily incorporate photos after they + having been put onto CD in digitized form. Kodak provides the latter + service.} +For drawing on the screen and get (La)\TeX\ code out see GNUplot +or \TeX CAD, for example. + +Many disciplines make use of +special graphic diagrams. In this paper for example I won't +provide examples of +trees, +(math) graphs in general, +(advanced) commutative diagrams, +nor Feynmann diagrams, +to name but a few classes known to me. +\begin{itemize} +\item simple line diagrams via \mmt +\begingroup +\def\strut{\vrule height2.5ex depth1ex width0pt} +\def\fbox#1{\setbox0\hbox{\strut + $\;$#1$\,$}\leavevmode\rlap{\copy0}% + \makelightbox} +\def\element#1{\hbox to15ex{\hss#1\hss}} +\def\vconnector{\element{\strut\vrule}} +$$\hbox{\vbox{% +\element{\fbox{amsppt.sty}} +\vconnector +\element{\fbox{amstex.tex}} +\vconnector +\element{\fbox{\TeX}}} +\qquad\qquad\qquad +\vbox{% +\element{\fbox{amsart.sty}} +\vconnector +\element{\llap{\fbox{amstex.sty}---}% + \fbox{\LaTeX}} +\vconnector +\element{\fbox{\TeX}}} +}$$ +\endgroup +\noindent via +\begingroup\small\begin{verbatim} +$$\hbox{\vbox{% +\element{\fbox{amsppt.sty}} +\vconnector +\element{\fbox{amstex.tex}} +\vconnector +\element{\fbox{\TeX}} +}\qquad\qquad\qquad\vbox{% +\element{\fbox{amsart.sty}} +\vconnector +\element{\llap{\fbox{amstex.sty}---} + \fbox{\LaTeX}} +\vconnector +\element{\fbox{\TeX}} +}}$$ +\end{verbatim}\endgroup + +\noindent with the auxiliaries +\begingroup\small\begin{verbatim} +\def\strut{\vrule height2.5ex depth1ex + width0pt} +\def\fbox#1{\setbox0\hbox{\strut + $\;$#1$\,$}\leavevmode\rlap{\copy0}% + \makelightbox} +\def\element#1{\hbox to15ex{\hss#1\hss}} +\def\vconnector{\element{\strut\vrule}} . +\end{verbatim}\endgroup +\item flow chart borrowed from Furuta, via \LaTeX + +\noindent +%\input{pic.pic} +\begingroup\small +\setlength{\unitlength}{4ex} +\begin{picture}(14,4)(0,-1) +\put(1, 1){\oval(2, 1)} +\put(1, 1){\makebox(0, 0){Start}} +\put(2, 1){\vector(1, 0){1.5}} +\put(3.5,.25){\framebox(2,1.5){\shortstack + {\tiny Edit\\\tiny Document}}} +\put(5.5, 1){\vector(1, 0){1.5}} +\put(7,.25){\framebox(2,1.5){\shortstack + {\tiny Format\\\tiny Document}}} +\put(9, 1){\vector(1, 0){1.5}} +\put(11.5, 1){\oval(2, 1)} +\put(11.5, 1){\makebox(0, 0){End}} +\bezier{75}(4.5,.25)(6.25,-1)(8,.25) +\put(4.5,.25){\vector(-2, 1){0}} +\bezier{150}(4.5,1.75)(8,4)(11.5,1.5) +\put(11.5,1.5){\vector(2,-1){0}} +\end{picture} +\endgroup + +\par\noindent +via +\begingroup\small\begin{verbatim} +\setlength{\unitlength}{4ex} +\begin{picture}(14,4)(0,-1) +\put(1, 1){\oval(2, 1)} +\put(1, 1){\makebox(0, 0){Start}} +\put(2, 1){\vector(1, 0){1.5}} +\put(3.5,.25){\framebox(2,1.5){\shortstack + {\tiny Edit\\\tiny Document}}} +\put(5.5, 1){\vector(1, 0){1.5}} +\put(7,.25){\framebox(2,1.5){\shortstack + {\tiny Format\\\tiny Document}}} +\put(9, 1){\vector(1, 0){1.5}} +\put(11.5, 1){\oval(2, 1)} +\put(11.5, 1){\makebox(0, 0){End}} +\bezier{75}(4.5,.25)(6.25,-1)(8,.25) +\put(4.5,.25){\vector(-2, 1){0}} +\bezier{150}(4.5,1.75)(8,4)(11.5,1.5) +\put(11.5,1.5){\vector(2,-1){0}} +\end{picture} +\end{verbatim}\endgroup +\par\noindent +Although the specification is +not as easy as via the pic preprocessor, +it is not difficult when we +start from a template, like the one above. +Cumbersome is the treatment of the arrow heads, but these can be hidden. +\item a pie-chart via \LaTeX + +%\input{lus.pic} +\setlength{\unitlength}{6ex} +\begin{picture}(6, 5)(-3, -2) +%1st quadrant +%\bezier{100}(2, 0)(2, .54)(1.79, .89) + % 0 - `30' 2:1-lijn +\bezier{60}(1.79, .89)(1.46, 1.46)(1, 1.73) + % `30' - 60 +\bezier{60}(1, 1.73)(.54, 2)(0, 2) + % 60 - 90 +%2nd quadrant +\bezier{60}(0, 2)(-.54, 2)(-1, 1.73) + % 90 - 120 +\bezier{60}(-1,1.73)(-1.46,1.46)(-1.73,1) + %120 - 150 +\bezier{60}(-1.73, 1)(-2, .54)(-2, 0) + %150 - 180 +%3rd quadrant +\bezier{60}(-2, 0)(-2, -.54)(-1.73, -1) + %180 - 210 +\bezier{60}(-1.73,-1)(-1.46,-1.46)(-1,-1.73) + %210 -240 +\bezier{60}(-1, -1.73)(-.54, -2)(0, -2) + %240 - 270 +%4th quadrant +\bezier{60}(0, -2)(.54, -2)(1, -1.73) + %270 - 300 +\bezier{60}(1,-1.73)(1.46,-1.46)(1.73,-1) + %300 - 330 +\bezier{60}(1.73, -1)(2, -.54)(2, 0) + %330 - 360 +%division lines +\put(0, 0){\line(1, 0){2}} +\put(0, 0){\line(2, 1){1.79}} + %1.79 = 2 cos arctg .5 +%\put(0, 0){\line(-2, 1){1.79}} +\bezier{75}(0, 0)(-.81, .59)(-1.61, 1.18) + %-.81 = cos 144; .59 = sin 144 +%\put(0, 0){\line(-1, -2){.89}} + % .89 = 2 sin arctg .5 +\bezier{75}(0, 0)(-.59, -.81)(-1.18, -1.62) + %-.59 = cos -126; -.81 = sin -126 +%piece +\bezier{60}(2.5, 0.1)(2.5, .64)(2.29, .99) + % shift .5, .1 +\put(0.5, 0.1){\line(1, 0){2}} +\put(0.5, 0.1){\line(2, 1){1.79}} +%Candles: +\bezier{20}(0,1.31)(-.15,1.45)(0,1.61) +\bezier{20}(0,1.31)(.175,1.45)(0,1.61) +\put(-.1,.1){\line(0,1){1.2}} +\put(.1,.05){\line(0,1){.95}} +\put(.1,1){\line(-2,3){.2}} +%left +\bezier{20}(-.25,1.46)(-.40,1.6)(-.25,1.76) +\bezier{20}(-.25,1.46)(-.075,1.6)(-.25,1.76) +\put(-.35,.25){\line(0,1){1.2}} +\put(-.15,.2){\line(0,1){.95}} +\put(-.15,1.15){\line(-2,3){.2}} +%right +\bezier{20}(.25,1.46)(.40,1.6)(.25,1.76) +\bezier{20}(.25,1.46)(.075,1.6)(.25,1.76) +\put(.35,.25){\line(0,1){1.2}} +\put(.15,.2){\line(0,1){.95}} +\put(.15,1.15){\line(2,3){.2}} +%leftleft +\bezier{20}(-.5,1.61)(-.65,1.75)(-.5,1.91) +\bezier{20}(-.5,1.61)(-.325,1.75)(-.5,1.91) +\put(-.6,.4){\line(0,1){1.2}} +\put(-.4,.35){\line(0,1){.95}} +\put(-.4,1.3){\line(-2,3){.2}} +%rightright +\bezier{20}(.5,1.61)(.65,1.75)(.5,1.91) +\bezier{20}(.5,1.61)(.325,1.75)(.5,1.91) +\put(.6,.4){\line(0,1){1.2}} +\put(.4,.35){\line(0,1){.95}} +\put(.4,1.3){\line(2,3){.2}} +%texts +\put(-1, -.1){\makebox(0, 0){\strut Happy}} +\put(.5, -1){\makebox(0, 0){\strut Birthday}} +\put(1.9, .35){\makebox(0, 0){\strut NTG}} +\end{picture} + +\par\noindent via +\begingroup\small +%\begingroup\small +\begin{verbatim} +\setlength{\unitlength}{6ex} +\begin{picture}(6, 5)(-3, -2) +%1st quadrant +%\bezier{100}(2, 0)(2, .54)(1.79, .89) + % 0 - `30' 2:1-line +\bezier{60}(1.79, .89)(1.46, 1.46)(1, 1.73) + % `30' - 60 +\bezier{60}(1, 1.73)(.54, 2)(0, 2) + % 60 - 90 +%2nd quadrant +\bezier{60}(0, 2)(-.54, 2)(-1, 1.73) + % 90 - 120 +\bezier{60}(-1,1.73)(-1.46,1.46)(-1.73,1) + %120 - 150 +\bezier{60}(-1.73, 1)(-2, .54)(-2, 0) + %150 - 180 +%3rd quadrant +\bezier{60}(-2, 0)(-2, -.54)(-1.73, -1) + %180 - 210 +\bezier{60}(-1.73,-1)(-1.46,-1.46)(-1,-1.73) + %210 -240 +\bezier{60}(-1, -1.73)(-.54, -2)(0, -2) + %240 - 270 +%4th quadrant +\bezier{60}(0, -2)(.54, -2)(1, -1.73) + %270 - 300 +\bezier{60}(1,-1.73)(1.46,-1.46)(1.73,-1) + %300 - 330 +\bezier{60}(1.73, -1)(2, -.54)(2, 0) + %330 - 360 +%division lines +\put(0, 0){\line(1, 0){2}} +\put(0, 0){\line(2, 1){1.79}} + %1.79 = 2 cos arctg .5 +%\put(0, 0){\line(-2, 1){1.79}} +\bezier{75}(0, 0)(-.81, .59)(-1.61, 1.18) + %-.81 = cos 144; .59 = sin 144 +%\put(0, 0){\line(-1, -2){.89}} + % .89 = 2 sin arctg .5 +\bezier{75}(0, 0)(-.59, -.81)(-1.18, -1.62) + %-.59 = cos -126; -.81 = sin -126 +%piece +\bezier{60}(2.5, 0.1)(2.5, .64)(2.29, .99) + % shift .5, .1 +\put(0.5, 0.1){\line(1, 0){2}} +\put(0.5, 0.1){\line(2, 1){1.79}} +%Candles: +\bezier{20}(0,1.31)(-.15,1.45)(0,1.61) +\bezier{20}(0,1.31)(.175,1.45)(0,1.61) +\put(-.1,.1){\line(0,1){1.2}} +\put(.1,.05){\line(0,1){.95}} +\put(.1,1){\line(-2,3){.2}} +%left +\bezier{20}(-.25,1.46)(-.40,1.6)(-.25,1.76) +\bezier{20}(-.25,1.46)(-.075,1.6)(-.25,1.76) +\put(-.35,.25){\line(0,1){1.2}} +\put(-.15,.2){\line(0,1){.95}} +\put(-.15,1.15){\line(-2,3){.2}} +%right +\bezier{20}(.25,1.46)(.40,1.6)(.25,1.76) +\bezier{20}(.25,1.46)(.075,1.6)(.25,1.76) +\put(.35,.25){\line(0,1){1.2}} +\put(.15,.2){\line(0,1){.95}} +\put(.15,1.15){\line(2,3){.2}} +%leftleft +\bezier{20}(-.5,1.61)(-.65,1.75)(-.5,1.91) +\bezier{20}(-.5,1.61)(-.325,1.75)(-.5,1.91) +\put(-.6,.4){\line(0,1){1.2}} +\put(-.4,.35){\line(0,1){.95}} +\put(-.4,1.3){\line(-2,3){.2}} +%rightright +\bezier{20}(.5,1.61)(.65,1.75)(.5,1.91) +\bezier{20}(.5,1.61)(.325,1.75)(.5,1.91) +\put(.6,.4){\line(0,1){1.2}} +\put(.4,.35){\line(0,1){.95}} +\put(.4,1.3){\line(2,3){.2}} +%texts +\put(-1, -.1){\makebox(0, 0){\strut Happy}} +\put(.5, -1){\makebox(0, 0){\strut Birthday}} +\put(1.9, .35){\makebox(0, 0){\strut NTG}} +\end{picture} +\end{verbatim}\endgroup +\noindent +The above use of the bezier splines makes the +creation of scaling invariant circles +easier than the approach by Ramek in the proceedings of +\TeX eter '88. + +\item commutative diagrams (\LAMSTeX, \ldots). As a simple example +the calculation flow of the autocorrelation +function, +$a_f$, inspired by the \TeX Book ex18.46, p.358. +${\cal F}$ denotes the Fourier transform and +${\cal F}\strut^{-}$ the inverse Fourier transform +\vskip1ex +% +\def\lllongrightarrow{\relbar\joinrel% + \relbar\joinrel\relbar\joinrel% + \relbar\joinrel\rightarrow} +\def\llongrightarrow{\relbar\joinrel% + \relbar\joinrel\rightarrow} +\def\normalbaselines{% + \baselineskip20pt + \lineskip3pt + \lineskiplimit3pt} +\def\mapright#1{\smash{\mathop{ + \llongrightarrow}\limits^{#1}}} +\def\lmapright#1{\smash{\mathop{ + \lllongrightarrow}\limits^{#1}}} +\def\mapdown#1{\Big\downarrow + \rlap{$\vcenter{\hbox{$#1$}}$}} +\def\mapup#1{\Big\uparrow + \rlap{$\vcenter{\hbox{$#1$}}$}} +$$%Diagram +\matrix{f&\lmapright\otimes&a_f\cr + \mapdown{{\cal F}}&&\mapup{% + {\cal F}\strut^{-}}\cr + \hbox to 0pt{\hss${\cal F}(f)$\hss} + &\mapright\times\hfil& + \hbox to 0pt{\hss$\bigl({\cal F}(f) + \bigr)^2$\hss}\cr} +\qquad$$%a little to the left +via +\begingroup\small\begin{verbatim} +$$\matrix{f&\lmapright\otimes&a_f\cr + \mapdown{{\cal F}}&&\mapup{% + {\cal F}\strut^{-}}\cr + \hbox to 0pt{\hss${\cal F}(f)$\hss} + &\mapright\times\hfil& + \hbox to 0pt{\hss$\bigl({\cal F}(f) + \bigr)^2$\hss}\cr}$$ +\end{verbatim}\endgroup +\noindent with auxiliaries +\begingroup\small\begin{verbatim} +\def\lllongrightarrow{\relbar\joinrel% + \relbar\joinrel\relbar\joinrel% + \relbar\joinrel\rightarrow} +\def\llongrightarrow{\relbar\joinrel% + \relbar\joinrel\rightarrow} +\def\normalbaselines{% + \baselineskip20pt + \lineskip3pt + \lineskiplimit3pt} +\def\mapright#1{\smash{\mathop{ + \llongrightarrow}\limits^{#1}}} +\def\lmapright#1{\smash{\mathop{ + \lllongrightarrow}\limits^{#1}}} +\def\mapdown#1{\Big\downarrow + \rlap{$\vcenter{\hbox{$#1$}}$}} +\def\mapup#1{\Big\uparrow + \rlap{$\vcenter{\hbox{$#1$}}$}} +\end{verbatim}\endgroup + +\item \MF{} coupled to \TeX. Leading in this area is the work of Hoenig, for +example see his `When \TeX\ and \MF{} work together.' +He has worked out the printing along curved lines, +and the typesetting of paragraphs which flow around +arbitrary shapes! +Very powerul, but not simple to use for the moment. +It looks like going back to the roots, +because Knuth's first version of the `\TeX book' contained it all: +`\TeX\ and \MF{}, New directions in typesetting.' + +\item (encapsulated) \PS. Knuth left some niches for handling these + kinds of things via the \cs{special} command. A very nice survey of + the possibilities which can be obtained when incorporating \PS{} is + given in Goossens' `\PS{} en \LaTeX,' which is also a chapter in + the \LaTeX-companion. A survey of the various user approaches has been + compiled by Anita Hoover. +\item Screen drawings. An example is GNUplot. Cameron in \TeX line + characterized these kind of systems as +\begin{quote} + `\ldots There are a couple of programs available which take all the + calculation out: you draw your picture using the mouse, and it is + automagically compiled into \LaTeX\ source. But for complicated + figures, mathematical insight or computational power may be required.' +\end{quote} + An example of figures that require math insight are Hoenig's `Fractal + images with \TeX.' + We can add to that the reuse aspect, which is hindered by the drawing + approach, and the unreadable nature of machine-generated code. + But certainly these tools have their niche in the spectrum of tools for EP. +\end{itemize} + +\section{Front matter} +Much attention is paid to front matter: +cover, +publication characteristics (source, ISBN or other classification), +title etc., +abstract, +keywords, +table of contents and the like if not considered as an appendix, +foreword. +Basically the style or format can handle these easily. +Because of the eye-catching need of a cover a designer +is generally involved and the cover, especially +the graphics, typeset by different means. +The page with publication characteristics can be left to +the copy editor. +For the others just obey the mark-up characteristics, as demanded +by the style file. +\section{Back matter} +As back matter we have the various appendices. Two kinds are +noteworthy: the list of references and the index. Both are +complicated because of the {\em cross-referencing on the fly.} +\paragraph*{Bibliography creation.}% +With a publication we have the problem of +handling a list of references, +to extract them from our literature database, +and to format them appropriately. +We also like to cross-reference them to the list of references, +such that it is adaptable to different journal traditions, +with respect to formatting of citations. +There are tools available to do that, for example +\LaTeX's \BibTeX\ with its {\tt thebibliography} environment, and +\AmSTeX's \cs{ref} and \cs{endref} structures. +I designed my own `little language +within \TeX' to handle that all in a one-pass job within \AllTeX. +To get the flavour, the bibliography at the end of this paper +has been prepared via +\begingroup\small\begin{verbatim} +\section*{References} +\input{lit.dat}%database file + \def\tubissue#1(#2){{\sl TUGboat\/} + {\bf#1} (#2)} + \def\ls#1{\ea\bibentry#1\endgraf} +\input{lit.sel}%file with names +\end{verbatim}\endgroup +See my BLUe's Bibliography paper +for more details, and my solution of the cross-referencing in a one-pass job. + +\paragraph*{Index preparation.} +This is complicated because of the dynamic allocation of page numbers +and inclusion of these in the index. It is also an art to provide the +right entries. Generally (external) sorting needs to be done too, +next to the formatting. A complicated job. +\begin{quote}\TeX nically + there is the tool Makeindex, to cooperate with (La)\TeX. +\end{quote} +Knuth provided a mark-up mechanism for extracting +the index entries and let the OTR add the page numbers. +These items are writen on a file +for further processing, like sorting, and adding comments and the like. +I consider that very powerful, but it is not completely automatic. +The user, or publisher, has to account for the finishing touch, for the +moment. For a survey of the intricacies which come along +when writing automatic index generators, see +the report of Chen and Harrison about developing Makeindex. + +I have exercised index preparation \`a la Knuth in my Sorting in BLUe paper. +Although the approach of doing it all within \TeX\ looks promising, +it still needs some polishing for BLU to become useful. + +\section{Guidelines for Choosing} +Given the above-mentioned variety of tools %and your personal circumstances +the following questions can be useful +\begin{quote} +What facilities does your publisher provide?\\ +What is the document like? \\ +What tools are already in use? \\ +Whom is it aimed at? \\ +How many authors are involved? \\ +%(many authors many publications?), \\ +Is (partial, e.g.\ bibliographical) reuse also envisaged?\\ +Is future use, different from formatting, in sight? +\end{quote} +\noindent +First, contact your publisher and agree upon the tools to be used.\\ +Next best, when you are on your own, consider +\begin{description} +\item[]No structure \hfill it does not matter \\%what will be used + (For right-to-left etc.\hfill \TeXXeT) +\item[]Scientific papers \hfill \AllTeX%can best be used +\item[]Reuse \hfill \AllTeX, SGML? %can best be used +\item[]Various authors\hfill \AllTeX, SGML? % as a uniform language +%\TeX\ which is {\em de facto\/} in use for that purpose +\item[]Future (nonformatting) use\hfill \AllTeX, SGML? +\end{description} +A user sufficiently fluent in di-roff would like me to +substitute x-roff for \TeX\ in the table above. Be my guest, I don't +have experience with x-roff. + +\section*{Acknowledgements} +This paper has been processed via \LaTeX\ because I needed the +functionality of the picture environment. The standard formatting of +the peculiar \TeX-related names have been borrowed from \verb|tugboat.cmn|. +I used the \verb|ltugproc.sty|---style for +TUG proceedings---because of the nice way the front matter +is typeset. + +I like to thank Christina Thiele for polishing my English +and pointing to the right use of fonts for established names.\footnote{Although + this has its difficulties simply using \cs{MF} for example goes wrong + when we vary size.} +Gerard van Nes blew his horn once again. Thank you! + +\section*{Conclusions} +For high-quality computer-assisted typography \TeX{} etc.{} is +a flexible and excellent craftsman-like tool, +with the following characteristics +\begin{itemize} +\item \TeX\ is in the PD, available for all platforms +\item flavours of \TeX\ have been added +to facilitate its use, next to macro toolboxes +\item formats and style files have been added to facilitate the publication +process +\item \TeX\ can be used with many fonts, and takes its own font generation tool +\item drivers, WSYIWYG interfaces are commercially available +\item working environments are provided by user groups +\item lingua franca for scientific email communication +\item publishing houses accept compuscripts marked up by (La)\TeX +\item users maintain digests, discussion lists and file servers +\item some 10k organized users, with many books published via \AllTeX. +\end{itemize} +\noindent +Once mastered \TeX\ is a nice basic tool. +However, the way to error-less mark-up is hard and haunting, unless, +supported (by a publisher) with +generic styles, +user's guides, and +templates. +Using \LaTeX\ {\em as-is\/} and +supported by publishers is much simpler +than learning \TeX\ per se. + +The \TeX\ arcana is complex. +(Professional) Education is paramount! +The twins \TeX-\MF{} will serve for a lifetime. +And above all let us keep it simple! +\section*{References} +\begin{thebibliography}{xxxxx} +\input{lit.dat} +%\input{lit.lat} + \def\tubissue#1(#2){{\sl TUGboat\/} {\bf#1} (#2)} + \def\ls#1{\ea\bibitem{}#1\endgraf} +\input{lit.sel} +\end{thebibliography} + +\end{document} + + + + + + + + + |