diff options
Diffstat (limited to 'info/digests/texline/no14')
28 files changed, 4263 insertions, 0 deletions
diff --git a/info/digests/texline/no14/14a b/info/digests/texline/no14/14a new file mode 100644 index 0000000000..a8a644e581 --- /dev/null +++ b/info/digests/texline/no14/14a @@ -0,0 +1,25 @@ +\input texline.head +\vskip0.5in +\begindoublecolumns +\input article %Peter Cameron +\bar\input offer +\bar\input contrary %David F Rogers +\bar\input c&t %Phil Taylor +\bar\input alison %Alison Black +\bar\input ewart +\bar\input victor %Victor Eijkhout +\bar\input components %Joachim Schrod +\bar\input gut +\bar\input 3.16 %Phil Taylor +\bar\input change +\bar\input frankie %Frank Mittelbach +\bar\input radio4 +\bar\input mathtime +\bar\input fonts +\bar +\hbox to\hsize{\hfil +\scaledPicture 12.7pc by 14pc (hatter scaled 1000)% +\hfil} + +\enddoublecolumns +\tracingstats1 diff --git a/info/digests/texline/no14/14b b/info/digests/texline/no14/14b new file mode 100644 index 0000000000..03825ce9b5 --- /dev/null +++ b/info/digests/texline/no14/14b @@ -0,0 +1,25 @@ +%\input texline +\pageno21 +\input ramek.tex +\bar\smallskip +\begindoublecolumns +\input portland +\bar\input sgml +\bar\input uktexug +\bar\input good_guys +\bar\input late +\bar\input toc +\bar +\enddoublecolumns +\vskip0pt plus1filll + +{\leftskip0pt plus 1fill +\rightskip0pt plus -1fill +\parfillskip0pt plus2fill +\noindent\strut \sf This edition of {\sl\TeXline} was made +possible by funding from \TeX cel AS, Gaustadall\'een~21, +0371~Oslo~3, Norway, suppliers of The Publisher in Europe. +Thanks Bruce, yet again. + +} +\end diff --git a/info/digests/texline/no14/3-16 b/info/digests/texline/no14/3-16 new file mode 100644 index 0000000000..2422e27c04 --- /dev/null +++ b/info/digests/texline/no14/3-16 @@ -0,0 +1,139 @@ +\def\stress#1{{\sl#1\/}} +\title{Book Review}\noindent +{\sl 3:16 Bible Texts Illuminated.} Donald E.~Knuth. A-R Editions, 1991. +ISBN 0-89579-252-4, 268p. +\smallskip +\noindent +Scholar, Mathematician, Computer Scientist, +Typographer -- these are probably the designations that come to mind in +conjunction with the name of Professor Donald E.~Knuth. But in {\sl 3.16\/}, his +most recent work, Don reveals an entirely different side to his nature -- he +is also a~Bible Class leader in Menlo Park, California, not far from Stanford +University, Palo Alto, where he teaches and conducts his research. + +When I~was given {\sl 3.16\/} (as a~gift, not to review -- that committment came +later!), I~confess to being a~little apprehensive: I~am neither a~practicing +Christian, nor have I~any particular interest in matters either religious or +historical, yet the subject matter of {\sl 3.16\/} -- an annotated quasi-random +sampling of biblical texts -- seemed intended for either Christians or +religio-historians; it~most certainly seemed uninspiring to an equestrian +computer typesetter. On opening the book, I~felt even less interested: Knuth +had chosen to set it~in Computer Modern, a~typeface which I~feel contributes +little to the \ae sthetics of the printed page. it~was, therefore, with some +foreboding that I~started to read {\sl 3.16\/}. + +And then a~miracle happened (no, I~wasn't converted to \LaTeX\ -- it~would take +more than Don Knuth to achieve either of those miracles) -- I~found that I~was +reading every word that Don had written, and thoroughly enjoying it. All of +a~sudden, a~subject which had totally failed to catch my interest at school +came to life under Knuth's guidance; the biblical characters, whose stories +I~had been forced to learn at school, and whose stories I~had as rapidly +forgotten, suddenly sprang to life for me; no longer dry-as-dust characters and +events, learned by rote to avoid some unspeakable punishment, these were real +people, living in real times, brought to life by Knuth's re-telling of their +stories. And the Computer Modern? What Computer Modern? Within three pages, +it~had fulfilled its r\^ole; it~had ceased to exist as a~typeface, and was +simply the medium through which Knuth was recounting some of the finest stories +ever told; no longer instrusive, no longer even noticed, it~had achieved the +goal of every typeface: it~had become simply a~part of the printed page. + +But to begin at the beginning. {\sl 3.16\/} is the printed culmination of +Don's efforts to lead a~Bible Study class in his home town of Menlo Park. +Don had participated in Bible Study classes for some fifteen years before he +felt confident enough to attempt to lead a~class of his own, and being the +scholar that he is, he put as much effort into preparing the material for his +new class as he would into preparing for any new academic venture. He +considered, and rejected, three possible approaches to bible study: (a)~the +systematic study of one book; (b)~the identification and discussion of +recurring themes; and (c),~`lectionaries' -- texts or themes which have +become associated with particular dates in the Christian calendar. Instead, +he selected as his approach the concept of quasi-random, or stratified, +sampling -- he would concentrate on just one verse from just one chapter in +every book of the bible. By taking one verse from every book, he ensured that +every biblical contributor was represented; and by taking the verses `at +random' from each book, he ensured that the sample was representative of the +bible as a~whole. But the verses were not truly selected at random; because +the book evolved from a~taught Bible Study class, Knuth needed to be able to +ensure that the verses for the whole course were predictable right from the +outset; that way, even if a~student missed a~class or more, he or she could +know which verse would be the subject of study when they next attended the +class, and could thus study the material ahead of time, so as to be +prepared. Knuth therefore decided that, each week, the \stress {same} verse +from the \stress {same} chapter would be studied; only the \stress {book} +would vary. (By `the same verse', and `the same chapter', I mean the verse +and chapter with the same \stress {number}; obviously the \stress {content} +of the chapter and verse changed with each book). As the chapter and verse +wre not truly selected at random, it~was also necessary to ensure that the +selected pair were reasonably representative of the book as a whole; if the +verse occurred too early in the book, the author might not really be under +way with the story; if it~occurred too late, there might be an embarrassing +number of books which simply didn't have such a~chapter/verse! There was one +final constraint: Knuth needed to be able to ensure that at least one +book/chapter/verse would yield a~text that would truly merit study; after +all, if chapters and verses are picked at random, there is a~distinct +possibility that a~significant proportion might be monumentally boring; even +the bible must have some flat bits in it, and a~random sample might +accidentally hit on rather too many of these. He therefore decided to select +the chapter/verse corresponding to one of the most well-known texts in the +bible: that of John 3:16 (`For God so loved the world, that he gave his only +begotten son, that whosoever believeth in him should be not +perish, but have everlasting life'). Thus the texts selected for study were +those from Chapter~3, verse~16, of each book in the bible. + +Unfortunately, not every book in the bible \stress {has} a~Chapter~3, and of +those that do, not all have a~verse~16; Knuth decided to simply ignore those +that have no Chapter~3, and those that have neither Chapter~3, verse~16 nor +Chapter~4; for the others (those that do not have a~Chapter~3, verse~16, but +which do have a~Chapter~4), Knuth chose simply to ignore the chapter boundary, +and to take the sixteenth verse starting at Chapter~3, verse~1. The omitted +books were Obadiah, Haggai, Titus, 2 John, 3 John and Jude; 59 books remained +to be studied. + +Knuth is known to all of us as a~scholar supreme; none the less, it~may come +as a surprise to many to discover that he was by no means willing simply to +accept the received wisdom of the King James translation of the bible; +instead, in preparing the material for {\sl 3.16\/}, he compared more than a~dozen of +the best available translations, and went back to the original Greek or +Hebrew whenever there was any doubt in his mind as to the best rendering of +any particular phrase. The results speak for themselves; although they may +seem strange to those of us weaned on King James (for example, he renders +John 3:16 as `Yes, God loved the world so much that he gave his only child, +so that all people with faith in him can escape destruction, and live +forever'), there is no doubt that they are accurate renderings of the +original. + +The book, as I~have already mentioned is typeset in Computer Modern. But +the typesetting is deliberately plain in order to provide the maximum +contrast with what must surely be the the most innovative element of the +design: every text is reproduced on a~full page in the most beautiful +calligraphy, hand lettered by 59 of the world's leading calligraphers. +Herman Zapf has produced the cover and illustrated John 3:16; the other books +have been illustrated by calligraphers from Anckers to Zig\'any, via +Billawala and Kindersley. The results are outstanding, and worthy of a~place +on any amateur calligrapher's wall (they are also available separately, on +a~full colour poster, lest anybody is tempted to buy and destroy a~copy of +the book simply for the calligraphy contained therein). Each text is treated +in exactly four pages (and I~mean \stress {exactly} four pages -- Knuth has +written the text so that not a~single page falls a~single line short); the +opening spread for each text consists of a~discussion of the book as a~whole +(verso), and the calligraphic illustration of the text (recto); the closing +spread consists of a~small, conventionally lettered, version of the text, +inset into the verso left margin, and a~two-page discussion of the text and +of the many issues and questions which it~raises. The discussions are as +erudite as the illustrations are beautiful; linguistics, theology, history, +geography: all are treated to the benefit of Knuth's considerable intellect, +and we, the readers, are the ultimate beneficiaries as he brings to life +events which took place up to three and a~half thousand years ago. + +Criticisms? Only two. The book should be available case bound; +Smythe-sewn binding doesn't do justice to a~work of this quality. And I'm +sorry to see that Don has stopped putting circumflexes on his \stress +{r\^ole}s\dots + +Afterthought: Almost as soon as I'd finished reading my copy, I~went out +and bought two more, for friends who I~knew would appreciate both the subject +matter and the treatment; if everyone who received a~copy did likewise, +we~could start the most successful and well-intentioned chain letter in the +world! +\author{\copyright Philip Taylor} + diff --git a/info/digests/texline/no14/alison.tex b/info/digests/texline/no14/alison.tex new file mode 100644 index 0000000000..3b838096cb --- /dev/null +++ b/info/digests/texline/no14/alison.tex @@ -0,0 +1,102 @@ +\title{Reply}{\rightskip0pt plus1fil\hyphenpenalty100 +Thank you for your generous review of my book {\sl Typefaces for +Desktop Publishing\/} in the last issue of the newsletter. I +hope it will not sound peevish if I take up the issue of +hyphenation which you mention in the review. I think its worth +raising because it is something about which people have very +definite views. Indeed witnesses may be able to tell of +differences of opinion between myself and Paul Stiff, who +designed the book, as we made individual decisions about +hyphenation while working on the make up of the pages (although +those who know us both may not be at all surprised at this). And +anyone who has been involved in editorial work will know that +hyphenation decisions can arouse great passion in the hearts of +authors, whose natural concern is that their words be displayed +in the best manner possible. + +That brings me to the first point. If you opt for hyphenation +(in either justified or unjustified text) its unwise to rely on +the hyphenation decisions made by your software. They will do as a +first pass, but you need to check the decisions against a +hyphenation dictionary, unless you have particularly good reason +to be confident in your software. In other words, you have to +override many of the software's decisions. Laborious, but +necessary. Certainly I would not trust the hyphenation decisions +of QuarkXPress, either in its previous or present version (just +as I would not rely on a spelling checker, without checking a +document myself). So any grouses about the hyphenation in my +book have to be addressed to me, and not to Quark. + +On to the bigger issue of whether or not to hyphenate +unjustified text. There are two preferences at work here, both +of which can be supported by arguments about enhancing the +readability of the text. But the preferences may also be founded +on what we have grown accustomed to, and what we find pleasing +aesthetically. Hyphenators will argue that using hyphenation to +maintain a relatively smooth, and predictable, right-hand margin +is likely to contribute to the efficiency of the saccadic +movements of the eye, that underlie reading. Smoothing the +right-hand margin seems especially important in narrow columns, +where the visual impact of varying line endings can be dramatic. +(Aesthetic sub-text: hyphenators like smooth right-hand margins, +and are not squeamish about breaking up words, within limits.) +Non-hyphenators will argue that hyphenation breaks up the +profiles of words, which are so vital to word perception in +reading, and so is likely to disrupt reading processes. +(Aesthetic sub-text: non-hyphenators just don't like breaking up +words.) + +The `truth' probably lies somewhere between the two: a smooth +right-hand margin helps, and a degree of hyphenation to bring +this about can be tolerated, but excessive disruption of words +through hyphenation can get in the way of efficient reading. + +Its always hard to pitch the results of readability testing +against preferences based on experience of one particular way of +working. Nevertheless, for the record, can I quote research by +Jim Hartley and Peter Burnhill (respectively, a psychologist and +a typographer)? In a pilot study, they found that hyphenation +at every line ending, within a single page text, slowed down +reading for eight out of ten people tested, compared to a single +page text with no hyphenation (none of us will be surprised at +this). They then tested reading speed and comprehension of text, +without hyphenation, and of text with hyphenation on roughly 33\% +of line endings, and found no significant difference between the +two conditions. None of the people tested noticed the difference +in hyphenation between the two texts they had read, until it was +pointed out to them. When they were shown the two texts side by +side, significantly more said they preferred the un-hyphenated +text to the hyphenated text (24 to 10, with a further 8 +expressing no preference). Just one of many cases in typographic +research when preference does not map on to performance (another +classic is the serif versus sans serif issue). + +As far as I know, no one has done eye-movement studies of the +effects of justification and hyphenation on reading. In fact I +think it might be impossible to prepare materials that would +allow you to isolate those variables, given the sensitivity of +eye movements to other factors that would co-vary with them. But +that's another story. +In sanguine mood (or maybe feeling more vulnerable than I will +admit), I checked a few sample pages of my book and found (phew) +that hyphenation is well within Hartley and Burnhill's 33\% +range. For the non-hyphenator, however, reading hyphenated text +can be like trying not to think of pink elephants once someone +has reminded you not to do so: if you find hyphenation irksome, +every instance will leap out of the page at you. + +Well, I have gone on at length. Someone who goes on at greater +length, and makes an engaging read, is Ronald McIntosh, in his +book Hyphenation. I recommend it to hyphenators and non-hyphenators alike. + +} + +{\frenchspacing\parindent0pt +\everypar{\hangindent1.5em\hangafter1} + + +J. Hartley, and P. Burnhill. Experiments with unjustified +text. Visible Language, 5(3), 1971. + +R. McIntosh. Hyphenation. Bradford: Bradford Computer +Hyphenation, 1990. diff --git a/info/digests/texline/no14/article.tex b/info/digests/texline/no14/article.tex new file mode 100644 index 0000000000..22e08f30c7 --- /dev/null +++ b/info/digests/texline/no14/article.tex @@ -0,0 +1,210 @@ + +\title{Notes on graphics in \TeX} +Getting pictures onto the printed page is a problematic process, +basically because the quality you can achieve depends so heavily on +the cost of the hardware at your disposal. This militates against +portability, and is one of the reasons why \TeX\ (the ultimately +portable DTP system) has trouble with graphics. What follows is +in no sense state-of-the-art graphics typesetting. It is simply an +account of how a \TeX\ {\it user}, having a variety of types of +picture and needing to transport files between different machines, +came up with some {\it ad hoc} solutions. Probably nobody else will +have exactly the same requirements as I had, but the opportunities +may have wider relevance. + +\section{Diagrams} +There is a deep structure underlying large areas of mathematics, and +manifesting itself in various ways, which is conventionally described +by diagrams called {\it Coxeter-Dynkin diagrams}. Most of these +consist of a number of nodes in a line, consecutive nodes joined by +single or double bonds. However, there are some diagrams which have a +three-way branch (one of the arms having length~1), such as $E_6$, +which looks like this: +$$\esix$$ +The straight-line diagrams can be drawn easily enough, using the +{\tt\char`\\circ} character for nodes and rules for the arcs joining them. +I found that some kerning was necessary. This had to be done by trial +and error, with the disadvantage that what looks right on the screen +may not do so on the laser printer (presumably a defect in the \dvi\ +drivers). Perhaps this could be improved by turning off the glue; but +I decided that what I had was good enough. + +Recently, geometers have begun using these and similar diagrams to +describe strange new geometries. It has become customary to attach +labels to both nodes and arcs; in the case of nodes, different labels +above and below carry different information. In Norbert Schwarz's {\sl +Introduction to \TeX\ }[2], I found a macro for optional arguments. +(There it is also used for superscripts and subscripts, though the +details of the printing are a bit different). Using it, I can print +diagrams like this one (a bit cluttered, for demonstration purposes): +$$\node^{\rm point}_s \darc \node^{\rm line}_t \arc +\node^{\rm quad}_q \stroke{L} \node^{\rm symp}_r$$ +Here, the superscripts and subscripts on the nodes are entered in the +standard \TeX\ manner: for example, the input for the above diagram is +\begintt +$$\node^{\rm point}_s \darc + \node^{\rm line}_t \arc + \node^{\rm quad}_q \stroke{L} + \node^{\rm symp}_r$$ +\endtt + +This also enables the production of the three-way branching diagrams +like $E_6$; just subscript a node with a little construction +consisting of a vertical line with a node at the end. + +It's not perfect. Better kerning, and the possibility of changing +the node character (e.g.\ to a filled or crossed circle) would be +desirable. + + + +\section{Figures} +Elementary geometry requires figures consisting of lines and circles +intersecting in various ways. Graph theory needs figures a bit like +the diagrams just discussed, but with much greater flexibility about +where the nodes are placed and the slopes of the lines. + +\LaTeX\ provides a {\tt picture} environment for drawing such +diagrams. It doesn't handle circles adequately (only very small sizes are +available), but accurate lines are drawn. The difficulty is the famous +restriction on the slopes of the lines. Any line which is not +horizontal or vertical must have rational slope with numerator and +denominator between 1 and 6 inclusive (possibly negative). Thus, just +48 slopes are allowed. + +For simple pictures, this is OK: draw the picture in rough, choose +slopes for the lines from the allowed set, and then work out where the +points must be, by elementary coordinate geometry. 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 more complicated figures, mathematical insight +or computational power may be required. For example, consider the +following ruled quadric. + + +$$\hbox{% +\setlength{\unitlength}{0.02mm} +\picture(1200,1800)(-600,-100) +\put(707,-141){\Line(0,1){1697}} +\put(-707,-141){\Line(0,1){1697}} +\put(-834,-110){\Line(1,6){282}} +\put(834,-110){\Line(-1,6){282}} +\put(-552,-167){\Line(-1,6){282}} +\put(552,-167){\Line(1,6){282}} +\put(-929,-74){\Line(1,3){558}} +\put(929,-74){\Line(-1,3){558}} +\put(-371,-186){\Line(-1,3){558}} +\put(371,-186){\Line(1,3){558}} +\put(-986,-33){\Line(1,2){822}} +\put(986,-33){\Line(-1,2){822}} +\put(-164,-197){\Line(-1,2){822}} +\put(164,-197){\Line(1,2){822}} +\put(69,-200){\Line(-2,3){1067}} +\put(-69,-200){\Line(2,3){1067}} +\put(-998,14){\Line(2,3){1067}} +\put(998,14){\Line(-2,3){1067}} +\put(1000,0){\Line(-5,6){1338}} +\put(-1000,0){\Line(5,6){1338}} +\put(338,-188){\Line(-5,6){1338}} +\put(-338,-188){\Line(5,6){1338}} +\put(924,-76){\Line(-1,1){1631}} +\put(-924,-76){\Line(1,1){1631}} +\put(707,-141){\Line(-1,1){1631}} +\put(-707,-141){\Line(1,1){1631}} +\endpicture}$$ + +The obvious way to draw this is to take two horizontal circles, one +above the other; take equally spaced points on one, and join them to +the points a fixed angle in front or behind on the other, and then +work out the plane projection in the usual way. With \LaTeX, it is +necessary to work out a formula for the angle which will give the +projected line a given slope, and solve it for various admissible +slopes. + +An added complication here is that my first serious use of this +mechanism was for a book [1] for which my co-author sent me his part +(by email) in \AmSTeX. Converting it to plain \TeX\ was straightforward, +but took time; I was not prepared to take the further step to +\LaTeX. Malcolm Clark had told me that it was easy enough to convert +the \LaTeX\ picture commands to plain \TeX; I couldn't find his +version in the Aston archive, so I took him at his word and did it +myself. Look at the book and judge the result! + +I learnt too late that \PiCTeX\ might have helped me here. But I +believe that simpler tools have their place. + +\section{Pictures} +Suppose you want to include in your document a picture not made up of +geometric elements. If you are a \PS\ programmer or a \dvi\ +wizard, anything is possible; but the result will not be portable. I +would like to be able to preview, print in draft on a 9-pin dot matrix +printer, and send the file over the network to the laser printer. + +My terminal and my machine at home are both Atari STs. The commonest +picture format for DTP on this machine, also used in the PC world, is +the dreaded {\tt.img}. After combing the public domain for information on +the {\tt.img} file format, I wrote a program to translate a {\tt.img} file into +\TeX\ input consisting of long sequences of boxes and rules. + +It doesn't work on all inputs (I've never met anyone who claims to +have a program which handles all {\tt.img} files!), but seems fine on mono +screen snapshots. The \TeX\ file is liable to be very big, so this is +only recommended for small images (logos, signatures, etc.) The result +is (of course) as portable as any plain \TeX\ input, and can be re-% +scaled by setting two pixel size parameters at the start of the file. +Here, for example, is an image probably familiar to all GEM-based +computer users. + +\input tiger +$$\tiger$$ + +{\frenchspacing +\def\item#1{\par\hangindent1.5em\hangafter1{\noindent +\hbox to 1.5em{#1\hfil}}} +\def\bibitem#1#2{\item{{#1}}{#2}} +\section{Bibliography} +\bibitem{1}{{\sc P J Cameron \& J H van Lint,} {\sl Designs, Graphs, Codes and their +Links}, London Math. Soc. Student Texts {\bf 22}, Cambridge Univ. Press, +1991.} +\bibitem{2}{{\sc Norbert Schwarz,} {\sl Introduction to \TeX}\ (transl. {\sc J Krieger}), +Addison-Wesley, 1990.} +\author{Peter Cameron}} + + +\endinput Cameron} +} + + +\endinput90.}} + +\author{Peter Cameron} +\endinputtle to be very big, so this is +only recommended for small images (logos, signatures, etc.) The result +is (of course) as portable as any plain \TeX\ input, and can be re-% +scaled by setting two pixel size parameters at the start of the file. +Here, for example, is an image probably familiar to all GEM-based +computer users. + +\input tiger + +$$\tiger$$ + +\medbreak + +\noindent{\sl References} +\frenchspacing + +1. P. J. Cameron \& J. H. van Lint, {\sl Designs, Graphs, Codes and their +Links}, London Math. Soc. Student Texts {\bf 22}, Cambridge Univ. Press, +1991. + +2. N. Schwarz, {\sl Introduction to \TeX}\ (transl. J. Krieger), +Addison-Wesley, 1990. + +\medskip + +\line{\hfill\sl Peter Cameron} + +\bye + + diff --git a/info/digests/texline/no14/c-t.tex b/info/digests/texline/no14/c-t.tex new file mode 100644 index 0000000000..28fbf78e0c --- /dev/null +++ b/info/digests/texline/no14/c-t.tex @@ -0,0 +1,30 @@ +\title{C\&T} +At a recent meeting of the UK \TeX\ Users +Group, a member asked if it was known whether volumes B \& +D of {\sl Computers \& Typesetting\/} had been re-printed +to take account of the changes involved in the +transcendental versions of \TeX\ and \MF. No-one was able +to give a definitive answer, so the oracle was consulted, +and after enormous effort, Barbara Beeton was finally able +to elicit the following information from the +publishers\dots + +\halign{#\hfil&\quad #\hfil&&\hfil#\cr +&&\multispan2{\hfil printing\hfil}\cr +ref no&volume \& title&\omit\hfil +no\hfil&\omit\hfil date\hfil\cr +\noalign{hardback} +13447&A The \TeX book&11th&\enspace June, 1991\cr +13437&B \TeX: The Program&4th&May, 1991\cr +13445&C The \MF book&4th&Sept, 1991\cr +13438&D \MF: &4th&Oct, 1991\cr +&\hfill The Program\cr +13446&E Computer Modern &3rd&Aug, 1987\cr +&\hfill Typefaces\cr +\noalign{softback} +13448&A The \TeX book&20th&May, 1991\cr +13444&D The \MF book&6th&Feb, 1991\cr} + +\noindent +Note that {\it all\/} printings are marked `with +corrections'. diff --git a/info/digests/texline/no14/change.tex b/info/digests/texline/no14/change.tex new file mode 100644 index 0000000000..fae4adb1ca --- /dev/null +++ b/info/digests/texline/no14/change.tex @@ -0,0 +1,39 @@ +\title{A few changes} +Each edition of \TeXline\ includes a few changes. There +are a couple of recent changes which require some +comment. + +The first change is an addition: the addition of +an ISSN -- \TeXline\ has become `official'. Apart from +anything else, this carries the implication that it will +last for at least a few more editions! + +The second change +is a bit more subtle. Both this and the last edition were +produced using \PS\ fonts. `So what?' you will say `\PS\ +is all around us, and after all everyone knows that \PS\ +fonts are better than that dreadful Computer Modern'. +Look again. The typeface has not changed. We are now +using Blue Sky's rendition of Computer Modern in \PS. I +am delighted with it (not least because I can now have any +Computer Modern font at some more convenient sizes). + +Two articles in this \Texline\ contain a copyright notice. +Up to now we have tended to avoid these trappings of +officialdom, but if authors wish to lay claim to their +intellectual property, they must be given that +opportunity. + +Another novelty has been the sponsorship received from +\TeX cel for both this and the last edition. The +willingness of \TeX cel to underwrite the costs of +\TeXline\ has been a source of great encouragement, +especially in these rather austere times. I would like to +continue this idea, but there are many competing claims +for money, not least the \LaTeX3 project. But if you are +looking for a worthy cause to which to dispense some +money, \TeXline\ would be happy to help you out. + +As ever, I am indebted to the large number +of individuals and organisations who help: for example, +Blue Sky often re-post \TeXline\ within the US, and \TeX diff --git a/info/digests/texline/no14/components.tex b/info/digests/texline/no14/components.tex new file mode 100644 index 0000000000..0f44047fb7 --- /dev/null +++ b/info/digests/texline/no14/components.tex @@ -0,0 +1,536 @@ + +{\font\sans cmss10 +\newcount\lines +\newcount\interval +\newdimen\splitlength +\interval\baselineskip +\divide\interval by 100 +\multiply \interval by 100 %95 +\def\corner#1#2 #3\par{\setbox1\vbox{\hsize60pt +\leftskip0pt plus 1fill\noindent\strut#1\break\strut}% +\lines\dp1 +\advance\lines by\ht1 +\divide\lines by\interval +\setbox0\vbox{\hangindent-60pt\hangafter-\lines#2 + \strut#3\strut}% +\splitlength\baselineskip +\multiply\splitlength by\lines +\setbox2\vsplit0 to\splitlength +\hbox spread 15pt{\strut\copy2\hss\raise6pt\copy1}% +\vskip-0.5em\unvbox0 +} +%\def\ftype#1{{\tt \marginpar{\uppercase{#1}}\uppercase{#1}\/}} +\def\ftype#1{{\tt\uppercase{#1}\/}} + +\overfullrule0pt +\def\ie{that is} +\def\eg{for example} +\def\ref{} +\let\label\ref +\def\Plain{{\tt plain} \TeX} +\def\MakeIndex{{\sans MakeIndex}} +\def\LOG{{\tt LOG\/}} +\def\INITeX{{\rm INI\TeX}} +\def\LAMSTeX{% + L\raise.42ex\hbox{$\scriptstyle\kern-.3em\cal A$}\kern-.2em + \lower.376ex\hbox{$\cal M$}\kern-.125em $\cal S$% + -\TeX + } +\def\FMT{{\tt FMT\/}} + +%========== etexkomp.tex =================================================== +% etexkomp.tex 25 Mar 91 +%------------------------------------------------------------ +% (c) 1990 by J.Schrod (TeXsys). + +% +% originally published in Die TeXnische Komoedie (DANTE e.V.) as: +% Die Komponenten von TeX +% +% ILaTeX with standard styles and +% style for reports about TeX + +% Changes made by Adrian Clark for publication in `Baskerville' +% and editorial remarks by Malcolm Clark +% incorporated. + + +% terms `output' and `driver' in english, used in picture `figtotal'. +\def\OutputInFigtotal{output} +\def\DriverInFigtotal{\DVI{} driver} + + + +\title{The Components of \TeX{}} +\TeX{} needs a great amount of supplementary components (files and +programs) whose meaning and interaction are often unknown. This +paper explains the components of the kernel system \TeX{} that are +visible for the \TeX{} user and their inter-relations. + + + + +\section{About this Report} +\TeX{} is a typesetting system which offers authors easy usage of +powerful typesetting features to produce printed matter which is the +state of the art of computer typesetting. This is, however, not done by the +\TeX{} program alone: a significant number of supplementary +programs and files together form the complete typesetting and +authoring system. Along with the programs that belong to \TeX{} +directly, there exist two other major programs which were built by {\sc +Donald Knuth} in connection with \TeX{} and must be included in an +explanation of the full system: \MF{}, for the generation of fonts, +and \WEB{}, a documentation and developing `language' for programming. +\TeX{} and \MF{} are written in \WEB{}. + +This text describes this `kernel' \TeX{} from a user's viewpoint: at +the end you should have an overview of the ingredients of the \TeX{} +system, and about the files and support programs that are essential +for you as a user. This will not, however, be an introduction to the +capabilities of \TeX{} or how you may run \TeX{} on your computer. + +I will use `corner' notes to identify the places where terms are +explained for the first time. Abbreviations for file types -- usually +identified by common suffixes or extensions -- are set in a monospace +type (`{\tt typewriter\/}'). Please note that these abbreviations are sometimes not +identical with the file extensions (see also +the table). + +This report is the start of a series that describes the subsystems +mentioned above and their respective components. In that series each +report will focus on one subsystem in a special point of view; it +should not result in gigantic descriptions which tell everything (and +then nothing). In my opinion the following reports will be of +interest: +\item{$\bullet$}the structure of a standard installation of \TeX{} +\item{$\bullet$}\DVI{} drivers and fonts +\item{$\bullet$}possibilities of graphics inclusion in \TeX{} documents +\item{$\bullet$}the components of \MF{} +\item{$\bullet$}the structure of a standard installation of \MF{} +\item{$\bullet$}\WEB{} systems -- the concept of Literate Programming +\item{$\bullet$}other (though not yet planned) themes of interest are +perhaps +\itemitem{$\triangleright$}differences between \TeX{} and DTP +systems +\itemitem{$\triangleright$}the way how \TeX{} works (there exists +some good books on this topic!) +\itemitem{$\triangleright$} the limits of +\TeX{} \itemitem{$\triangleright$}\TeX{} as a programming language + % + +\noindent The reports will be published in this sequence. + + + + +\section{What is \TeX{}?} +\corner{markup,\break optical markup, logical markup} +\strut \hskip-10pt\TeX{} is a typesetting system with great power for the +typesetting of formulae. Its basic principle is that structures in the +document are marked and transformed into typeset output. Providing such +information about the structure of a document is known as {\it +markup}. If the marks describe the look of the document, it is +called {\it optical markup}, while, if document structures are +marked, it is called {\it logical markup}. \TeX{} provides both +forms of markup, \ie{}, exact control of the layout of parts of the +document and their positioning as well as the markup of the structure +of formulae or document components. The logical markup is mapped to +the optical one by \TeX{} so that layout may serve for the +identification of structures by the reader. + Layout -- and book design in general -- do not represent useless +beauty. A good book design must first support the understanding of +the content to produce readable text. So it is {\it +\ae{}sthetic\/} in its best sense, since it connects form and contents +and builts a new quality. + +\corner{typesetting machine \TeX82, macro package} +The kernel of the \TeX{} typesetting system is the formatting program +\TeX82, which is often simply called +\TeX{}. This usage shall be adopted here whenever the difference +between the complete system and the formatter is unimportant or +obvious. \TeX82 is a big monolithic program which is published in the +book {\it \TeX{}: The Program\/} by {\sc Donald Knuth}. Its features +may be separated into two levels: +\item{1~} \TeX82 formats text, that is, it breaks it into paragraphs +(including automatic hyphenation) and produces page breaks. +\item{2~} It provides the programming language \TeX{} which +incorporates a macro +mechanism. This allows new commands to be built to support markup +at a higher level. {\sc Donald Knuth} presents an example in the +\TeX{}book: \Plain{}. A collection of macros which supports a special +task and has (hopefully) a common philosophy of usage is called a +{\it macro package}. + % + +\noindent High level features for optical markup, as represented by \Plain{}, +allow one to build additional levels leading to full logical markup. +At the moment, two macro packages for logical markup are widespread: +\AmSTeX{} and \LaTeX{}. Both systems are built on top of \Plain{} to +greater or lesser extents and the user can use the optical markup of +\Plain{} in addition to logical markup if desired. This results in +the effect that the author can use a mixture of structural +information and explicit layout information -- a situation with a +high potency of features that nevertheless can (and does) lead to a +lot of typographic nonsense! + +\corner{supplementary programs} +As \TeX82 was built only for typesetting texts and to allow the +realization of new markup structures, many features are lacking which are +required by authors. To provide features like the production of +an index or a bibliography or the inclusion of graphics, additional +programs have been written, which use +information from a \TeX82 formatting run, process them, and provide +them for the next \TeX82 run. Two supplementary programs are +in widespread use and available for many computer/operating system +combinations: \BibTeX{}, for the production of a bibliography from a +reference collection, and \MakeIndex{}, for the production of an index. + + +A special case of the processing of information provided by a \TeX{} +run is the production of a table of contents or the usage of cross +references in a text. For this only information about page numbers, +section numbers, etc., are needed. These are +provided by \TeX82 and can be processed by \TeX82 itself, so \TeX82 is +used as its own post processor in this situation. + +We have now seen that the \TeX{} typesetting system is +a collection of tools that consists of the typesetting `engine' \TeX82, +macro packages (maybe several that are based on others) and +supplementary programs, used together with these macro packages. +This relation is illustrated by Figure~1. + +\topinsert +\bgroup +\input figcomp +\egroup +\smallskip +\hbox to\pagewidth{\hfil Figure 1: The Components of \TeX{}\hfil} +% +\endinsert + + +\section{Formatting} +\corner{font} +\strut \hskip-10ptThe formatting process of \TeX{} needs information about the +dimensions of characters used for the paragraph breaking. A set +of characters is grouped in {\it fonts}. (But this is a +simplification as the notion `font' should be used for the +realization of a type in a fixed size for a specific output device.) +The dimensions of the characters of a font are called {\it font +metrics}. + + +The format in which the font metrics are used by \TeX{} was +defined by {\sc Donald Knuth} and is called \ftype{tfm} format +(`{\sl \TeX{} font metrics\/}'). In this format, every character is +descibed as a {\it box\/} with a height, a depth, and a width. +\TeX{} only needs these measurements, it is not interested in the shape +of the character. It is even possible that the character may extend +outside +the box, which may result in an overlap with other characters. +The character measures are specified in a device independent +dimension because \TeX{} processes its breaking algorithm +independent of any output device. + +\corner{hyphenation patterns} +During paragraph breaking, \TeX{} hyphenates +automatically, which can be done in a way almost independent of +language. For the adaption to different languages, {\it hyphenation +patterns\/} are needed to parametrize the hyphenation algorithm. + +\corner{\DVI{} driver} +The result of a \TeX{} formatting run is a +\ftype{DVI} document, in which the type and position on the page are +specified for each character to be output. The resolution that is used is +so small that every possible output device will have a coarser raster, so +that the positioning is effectively device independent. The \DVI{} document +specifies only types, not the fonts themselves, so that the name \DVI{} + (`{\sl device independent\/}') is accurate. (This name is a problem +because ``DVI'' is a trademark of Intel Corp.\ now, but the name \DVI{} for +\TeX{} output files pre-dates this.) To make the result of +the formatting run available, the \DVI{} file must be output by a +so-called \DVI{} driver on the desired output device.\looseness-1 + +If problems occur during the formatting, error messages or warnings +are output on the terminal. {\it Every\/} message that appears on the +terminal will also be written into a protocol file named \ftype{log} +file. In this \LOG{} file additional information may be placed that +would have been too verbose for the output to the terminal. If this +is the case, \TeX{} will tell the user so at the end of the +formatting run. The messages of \TeX{} are not built in the program, +they are stored in a (string) \ftype{pool} file. These messages must +be read in at the beginning of a run. + + + +\section{Macro Packages} +\corner{\Plain} +\strut \hskip-10ptThe basic macro package is \Plain, developed by {\sc +Donald Knuth} together with \TeX82. It parametrizes the \TeX82 typesetting +machine so that it can typeset English texts with the Computer Modern type +family. Additionally, \Plain{} provides optical markup features. +\Plain{} is available as one source file, {\tt plain.tex}. + +\corner{\AmSTeX{}, \LaTeX{}, Macro\TeX{}, \LAMSTeX{}} +All other macro packages known to the author are based on \Plain{}, +\ie{}, they contain the source file {\tt plain.tex\/} either +originally or with modifications of less important parts. Next to +\Plain{}, the most important (free) available macro packages are +\AmSTeX{} by {\sc Michael Spivak} and \LaTeX{} by {\sc Leslie +Lamport}. Other free macro packages are often of only local +importance (\eg{} Blue\TeX{}, TEXT1, or \TeX{}sis) or are used in +very special environments only (\eg{} {\tt texinfo\/} in the +GNU~project or {\tt webmac\/} for \WEB{}). Important commercial macro +packages are Macro\TeX{} by {\sc Amy Hendrickson} and +\LAMSTeX{}, also written by {\sc Michael Spivak}. + +\corner{styles} +These macro packages usually consist of a kernel that +provides additional markup primitives. With such primitives, +{\it document styles\/} can be built which realize logical +markup by a corresponding layout. This layout can often be varied by +{\it sub-styles\/} or {\it style options\/} which may also provide +additional markup. + +\corner{supplementary files} +The macro packages produce {\it supplementary files\/} which contain +information about the page breaks or the document markup. This +information may be used by support programs -- \eg{}, the +specification of a reference from a bibliography database or the +specification of an index entry with corresponding page number for the +construction of an index. A special case is the information about +cross references and headings for the building of a table of contents, +as this information can be gathered and reused by \TeX{} directly. + +\corner{\SliTeX{}, \LAMSTeX{}, Macro\TeX{}} +\SliTeX{} is a special component of \LaTeX{} for the preparation +of slides with overlays. In TUGBoat volume~10, no.~3 (1989) +\LAMSTeX{} was announced, which will provide the functionality of +\LaTeX{} within \AmSTeX{}. Macro\TeX{} is a toolbox of macro +``modules'' which may be used to realize new markup but, as it +became available only short time ago, it is not yet widespread. + +\corner{additional fonts} +For the usage of these (and other) macro packages, one must check +whether they need additional fonts which do not belong to the Computer +Modern type family. For \LaTeX{}, \eg{}, fonts with additional symbols +and with invisible characters (for the slide overlays) are needed, +while \AmSTeX{} needs several additional font sets with mathematical and +Cyrillic characters. + + + +\section{Support Programs} +\corner{\BibTeX{}, \MakeIndex{}} +\strut \hskip-10ptOnly two support programs will be discussed here: +\BibTeX{} by {\sc Oren Patashnik} for the preparation of bibliographies and +\MakeIndex{} by {\sc Pehong Chen} and {\sc Michael Harrison} for +the preparation of a sorted index. For both tasks exist other, +funcionally equivalent, support programs. But the abovementioned are +available on many operating systems, and have an `official' status +as {\sc Leslie Lamport} encourages their usage with +\LaTeX{} in his documentation, and TUG supports them for general +use.\looseness-1 + +There is no totally portable mechanism for the inclusion of general +graphics in \TeX{} documents, so that there are no machine independent +support programs available. + +\corner{cite keys, bibliography styles} +\BibTeX{} is used to handle references collected in \ftype{bib} +files. \TeX{} produces supplementary files which contain information +about the required references, and \BibTeX{} generates from them a +sorted bibliography in a \ftype{bbl} file which may be subsequently +used by \TeX{}. The kind of sorting and the type of cite keys are +defined by {\it bibliography styles\/}, specified in \ftype{bst} +files. The messages of a \BibTeX{} run are written to a \ftype{blg} +logfile. + +\corner{index style} +\MakeIndex{} reads an \ftype{idx} support file that contains the index +entries and the according page numbers, sorts these items, unifies +them and writes them as \TeX{} input in an \ftype{ind} file. The +formatting style may be specified by an {\it index style}. The +messages of a \MakeIndex{} run are written to a \ftype{ilg} file. + + + +\section{Performance Improvements} +Much of the work that \TeX82 has to do is the same for every +document: +% +\item{1~}All text has to be broken into lines. Text pieces in the same +language are hyphenated with the same hyphenation patterns. +\item{2~}The basic markup of the corresponding macro packages must be +available. +\item{3~}The required font metrics are much alike for many documents, as +the font set used usually does not differ that much. + +\noindent To improve \TeX{}'s performance, hyphenation, markup, and font +metrics descriptions are converted from an external representation +into an internal representation which can easily be used by \TeX82. +In cases (1) and~(2) the external representation is textual. +It is sensible to do this transformation only once, not for every +document. The internal representation is stored in a \ftype{fmt} file. +The storing is done with the \TeX{} command |\dump|, so that +\FMT{} files often are called `{\it dumped formats}'. A \FMT{} file +can be read at the beginning of a \TeX82 run and is thus available +for the processing of the actual text.\looseness1 + +\corner{\INITeX{}, production version} +As the creation of a \FMT{} file is done infrequently -- usually +for the update of a macro package -- the formatting of texts can be done +with a reduced version of the \TeX82 program that doesn't contain the +storage and the program parts for the transformation of the +hyphenation patterns and for the dumping. The complete version of +\TeX82 is needed in an initialization phase only and therefore called +\INITeX{}. Additional improvements of the performance can be +reached by the usage of production versions of \TeX82 from which +parts for statistical analysis and for debugging are stripped. + +\corner{Vir\TeX{}} +\TeX{} versions that have no dumped formats preloaded, have the +ability to load a dumped format (\ie{} a \FMT{} file), and have no +ability to dump a \FMT{} file (\ie{}, they are not \INITeX{}) are +often called Vir\TeX{}, which stands for {\it virgin \TeX{}}. + +\topinsert +\bgroup\input figtotal +\egroup +\smallskip +\hbox to\pagewidth{\hfil Figure 2: The Connection of Components and File Types\hfil} +%\smallskip +\endinsert + +\vfill +\noindent +\vbox\bgroup % halign, LaTeX is too inflexible!! +% +\tabskip=1em\baselineskip11pt +\catcode`\,=\active % Roman Komma, also in typewriter text! +\def,{{\rm \char`\,\relax \space}\ignorespaces} + +\let\par=\cr \obeylines% +\halign{\tt \hfil #\unskip\hfil & #\unskip\hfil & \tt #\unskip\hfil +% +\sc File & & \sc File suffix, +\sc Type & \hfil \sc Explanation & \sc extension, etc. +\noalign{\vskip 3pt}% +% +TEX & Text input & tex, ltx +DVI & \TeX82 output, + & \hfil formatted text & dvi +LOG & \TeX82 log file & log, lis, list +HYP & Hyphenation patterns & tex +TFM & Font metrics & tfm +POOL & String pool & pool, poo, pol +FMT & Format file & fmt +MAC & \TeX{} macro file & tex, doc +STY & \TeX{} style file & sty, tex, st, doc +AUX & Support files & aux, toc, lot, lof,\unskip + & & glo, tmp, tex +BIB & Reference collections & bib +BBL & References or + & \hfil bibliographies & bbl +BLG & \BibTeX{} log file & blg +BST & \BibTeX{} style file & bst +IDX & Unsorted index & idx +IND & Sorted index & ind +IST & Index markup + & \hfil specification & +ILG & \MakeIndex{} log file & ilg +\noalign{\vskip4pt}% +\multispan3{\hfil\strut Table 1: File Types\hfil} +}% +% +\egroup + +%\caption{File Types} +%\label{tab:filetypes} +%\end{center} +%\end{table} + +\section{Connections Between File Types and Components} +In the above sections, the components of the \TeX{} authoring system +were described, and the files that are read or written by these +components mentioned. The connections between them all is +demonstrated graphically in Figure~2. In this graphic, +file types are represented by rectangles, and programs by ovals. The +arrows mean `is read by' or `is produced by.' The abbreviations +of the file types are explained in the table, which +also lists the file identifications (suffixes or extensions) that +these files usually have (but note that other file identifications +are also in use). + + + + + +\section{Acknowledgements} +I would like to thank {\sc Christine Detig} who was so kind to +provide the English translation. {\sc Nelson Beebe} suggested +performing the translation. {\sc Klaus Guntermann} made +valuable comments on the first (German) version. {\sc Nico +Poppelier} contributed a new version of figure~2, better than my +original one. Republication and distribution of this article is +allowed under conditions analogous to the GNU General Public +License. Previous revisions of this paper appeared in `Die +\TeX{}nische Kom\"odie' and in `Baskerville.' \author{\copyright +Joachim Schrod} } + + + +\endinput + + +-- + +To LaTeX the article five files are needed: + + etexkomp.tex the real article + figkomp.tex a graphics with the relation of the components + figtotal.tex a graphics with all components and file types + texrep.sty the main style option, made for this article + names.sty is used by texrep.sty, definition of logos + +Please note that texrep.sty redefines ^. If you incorporate this +report in an other document you should either typeset it in a group +or you should have a look at texrep.sty and change the macros/the +article. + +Happy hours. + + Joachim + +--------------------------------------------------------------------------- +Detig Schrod TeXsys Email: xitijsch@ddathd21.bitnet +Joachim Schrod +Alexanderstr. 10 +D-6100 Darmstadt +Germany + +Joachim Schrod Email: xitijsch@ddathd21.bitnet +Computer Science Department +Technical University of Darmstadt, Germany + + + +\titlenote{ + \copyright{} Copyright 1990, 1991 by Joachim Schrod. + All rights reserved. + Republication and Distribution is allowed under conditions analogous + to the GNU General Public License. + Previous revisions of this paper appeared in `Die \TeX{}nische + Kom\"odie' and in `Baskerville.' + } +\titlenote{ + {\sl Actual address\/}: + Joachim Schrod, Detig$\,\cdot\,$Schrod \TeX{}sys, + Kranichweg 1, D-6074 R\"odermark, FR~Germany, + Email: {\tt xitijsch@ddathd21.bitnet} + } + +\maketitle + + + diff --git a/info/digests/texline/no14/contrary.tex b/info/digests/texline/no14/contrary.tex new file mode 100644 index 0000000000..393ecacf51 --- /dev/null +++ b/info/digests/texline/no14/contrary.tex @@ -0,0 +1,135 @@ +\hyphenation{Spivak}% +\title{\bf On Contrarian Views} +In a recent \TeXline\ Michael Spivak commented on the question of +extensions to \TeX\ (Ref.~1) and used a TUGboat article of mine +to illustrate his position (Ref.~2). Unfortunately, Dr~Spivak's +lack of scholarship and attention to detail necessitates both +comment and reply. + +Dr~Spivak uses Ref.~2 as an illustration of a suggested {\it +extension\/} to \TeX\ that makes `$\dots$ \TeX\ do things 100\% +automatically that should be done 95\% automatically.' In Ref.~2 I +issued a challenge to \TeX perts to develop a macro package for +automatic figure placement and gave specifications for the macro. +First, a macro is {\it not\/} an extension of \TeX\ in the sense that +is currently being discussed and about which Dr~Spivak is +complaining. Knuth, clearly provided for and intended that \TeX 's +capabilities be {\it expanded\/} using macros. Second, I am quite in +agreement with Dr~Spivak's 95/5\% automatic\slash manual rule as is +clearly indicated on p293 of Ref.~2 where in describing the Challenge +I said `The Challenge then is for the output macro gurus to write a +figure placement macro that incorporates items 1--3 above {\it (4 and +5 can be handled manually\/})'. Sounds to me like a request for a +95\%/5\% automatic\slash manual solution. + +In Ref.~2 I used {\it Procedural Elements for Computer Graphics} (Ref.~3) +to illustrate the complexity of the typesetting job required by a +typical science/engineering text. Dr~Spivak obtained this book and +agrees that it is typographically complex. Unfortunately, he failed +to examine both the copyright page and the preface. Both clearly +state that TYX Corporation (and not me) typeset the book using \TeX. +In fact, the book was typeset using a version of \TeX\ based on +\TeX80 and not \TeX82. It is true that I specified that \TeX\ be used +and acted as the production controller on the book. Further, an +examination of the copyright date on {\it Procedural Elements for +Computer Graphics} and the date of the TUGboat article as well as the +use of the word `Current' in the section head on page 292 of the +article indicates that {\it Procedural Elements for Computer +Graphics} was not the current book. If fact, {\it Procedural +Elements for Computer Graphics} was typeset in the 1983/84 time frame. + +The book that generated {\it A Page Make-up Challenge} is {\it +Mathematical Elements for Computer Graphics} (Ref.~4). This book +is even more typographically complex than {\it Procedural Elements +for Computer Graphics}. {\it Mathematical Elements for Computer +Graphics} was the first book that we personally typeset using \TeX. We +probably could not have picked a more typographically complex book to +cut our teeth on. Which, brings me to Dr~Spivak's complaint about +|\vfill\eject|. He suggests that it is {\it shameful\/} +that the article appeared without the editor pointing out that +|\vadjust\eject| should be used instead. Well, the paper was +edited, by Barbara Beeton. At that time, I sure would have +appreciated that information from Barbara or even Dr~Spivak since it +would have saved a bit of manual work. + +The |\vadjust| comment points out both one of the strengths of +\TeX\ and one of the serious weaknesses. \TeX's strength is that if +you are willing to regard \TeX\ as a typesetting {\it system} rather +than as a programming {\it language} and are willing to do a bit of +manual work, you can frequently find a solution to an immediate +problem. It may not be elegant, it might not even be efficient, but +it will work, get the job done, and allow you to meet the deadline. +The {\it shameful\/} weakness of \TeX\ is the index of {\sl the \TeX +book\/} compounded by Knuth's sometimes convoluted scattered writing +style. As an example, try looking up `page make-up' in the index. +Eventually, you are led to the second and third paragraphs from the +bottom on page~109. The third paragraph from the bottom suggests +that you use |\vfill\eject| and the second paragraph from the +bottom |\vadjust\eject|. {\it If} you don't already know +the answer, then |\vfill\eject| is the obvious first try with the +associated side effects and the iterative fix. We discovered +|\vadjust\eject| a few months after Ref.~2 appeared when I +sat down and reread the entire {\sl \TeX book\/}!!! Having now typeset +several books our page make-up skills are quite a bit better. Still, +manual work is required. Good automatic page make-up of +typographically complex books such as {\it Procedural Elements for +Computer Graphics} and {\it Mathematical Elements for Computer +Graphics} is several years in the future -- if ever. + +I am pleased to see that Dr~Spivak used the Challenge in Ref.~2 as a +starting point for his implemetation of an automatic figure placement macro +in \LamsTeX. Unfortunately, he totally ignores the fact that Joost +Zalmstra and I published an automatic figure placement macro called +|\figplace| in TUGboat in 1989 (Ref.~5). Further, we included +statistics on the efficiency of the algorithm. At that time roughly +85\% of the figures and tables in {\it Mathematical Elements for +Computer Graphics} were placed automatically using |\figplace|. +With additional experience and tweaking of the code roughly 95\% are +currently placed automatically. The remainder require manual work. +That's acceptable. + +It's also unfortunate that Dr~Spivak, as well as many others, choose +to embed macros of this nature in large packages such as \LamsTeX, +\AmSTeX, \LaTeX, etc. I would rather see them made available as +self-contained modules that can be easily incorporated into macro +packages designed to accomplish specific purposes. Such +self-contained modules are much needed by the \TeX\ community. + +Finally, because I am in basic agreement with Dr~Spivak, it is +unfortunate that he chose this particular article (Ref.~2) to +illustrate his position and thus necessitated this note. I agree that +{\it any\/} extension of \TeX\ should be very carefully considered in +the context of Knuth's purpose in developing \TeX\ i.e., to typeset +beautiful {\it books} not Time or Newsweek or the local newspaper. I +agree that good typesetting will {\it always} require a greater or +lesser degree of manual work depending on the desired quality of the +final product. I also agree that many of the called for {\it +extensions} of \TeX\ should be handled by manipulating the {\tt.dvi} +file with the output driver. + +What I would like to see is more flexible and modern {\it +implementations} of \TeX, for example, a dynamic virtual memory +implementation that automatically shows me the results of an editing +change. Considerable computer power is needed to do this but that's +either available or coming soon. For short documents I almost have +this by using three windows on a Silicon Graphics Iris workstation. +And no, I do not suggest a \wysiwyg\ system for \TeX. + +{\frenchspacing +\def\item#1{\par\hangindent1.5em\hangafter1{\noindent +\hbox to 1.5em{#1\hfil}}} +\def\bibitem#1#2{\item{{#1}}{#2}} +\section{Bibliography} +\bibitem{1}{{\sc Michael Spivak,} {A Contrarian View On \TeX\ +Extensions, \TeXline~13, September 1991.}} +\bibitem{2}{{\sc David F Rogers,} {A Page Make-up Challenge, +TUGboat, Vol.~9, No.~3., pp 292--293, 1989.}} +\bibitem{3}{{\sc David F Rogers,} {\it Procedural Elements for +Computer Graphics}, McGraw-Hill Book Co., New York, 1985.} +\bibitem{4}{{\sc David F Rogers \& J Alan Adams,} {\it +Math\-ematical Elements for Computer Graphics}, McGraw-Hill Book Co., +New York, 1990.} +\bibitem{5}{{\sc Joost Zalmstra \& David F Rogers,} {A Page +Make-up Macro, TUGboat, Vol.~10, No.~1, pp 73--81, 1989.}} +\author{David F Rogers}} + diff --git a/info/digests/texline/no14/ewart.tex b/info/digests/texline/no14/ewart.tex new file mode 100644 index 0000000000..19dfca05c7 --- /dev/null +++ b/info/digests/texline/no14/ewart.tex @@ -0,0 +1,11 @@ +\title{Moving} +Purchasers and users of the range of Personal \TeX\ Inc's +software will need to know that their UK distributor, +Uni\TeX\ has a new address. Contact +{\obeylines +Ewart North +Uni\TeX\ systems +7 Spring Mount +Harrogate HG1 2HX +tel: 0423 520902 +} diff --git a/info/digests/texline/no14/figcomp.tex b/info/digests/texline/no14/figcomp.tex new file mode 100644 index 0000000000..2360ee7f88 --- /dev/null +++ b/info/digests/texline/no14/figcomp.tex @@ -0,0 +1,72 @@ + +%\input l_pic +%\input l_frame +\unitlength=5mm +\newdimen\w % may be changed for DINA5 +\w=\fontdimen8\tenln %\@wholewidth % width of a rule +\let\k=\unitlength % a box (in German: Kasten) on my drawing-paper... +\let\LAMSTeX\LamsTeX +\def\Plain{{\tt Plain} \TeX} +\def\MakeIndex{{\sans MakeIndex}} +\catcode`@=11 % at signs are letters +\def\rule{\@ifnextchar[{\@rule}{\@rule[\z@]}} + +\def\@rule[#1]#2#3{\@tempdima#3\advance\@tempdima #1\leavevmode\hbox{\vrule + \@width#2 \@height\@tempdima \@depth-#1}} +\catcode`@=12 % at signs are no longer letters +% +%========== figkomp.tex ==================================================== +% figkomp.tex 01 Oct 90 +%------------------------------------------------------------ +% (c) 1990 by J.Schrod (TeXsys). + +% +% picture of the components of TeX (logical connection) +% + +% NOTE: BibTeX was made available for Plain TeX recently. So the +% graphic will be changed soon... + + +\picture(23,14)(0,0) + + +% TeX82 +\put( 3, 0){ \rule{\w}{3\k} } +\put( 3, 3){ \rule{24\k}{\w} } +\put(27, 0){ \rule{\w}{3\k} } +\put( 3, 0){ \makebox(24,3){\TeX82} } + +% Plain TeX +\put( 4, 3){ \framebox(22,3){\Plain} } + +% AmS-TeX +\put( 5, 6){ \rule{\w}{5\k} } +\put( 5,11){ \rule{5\k}{\w} } +\put(10, 6){ \rule{\w}{5\k} } +\put( 5, 6){ \makebox(5,3){\AmSTeX} } + +% LAmS-TeX +\put( 6, 9){ \dashbox{.5}(4,2){\LAMSTeX} } + +% LaTeX +\put(11, 6){ \framebox(6,5){\LaTeX} } + +% SliTeX +\put(11,11){ \framebox(4,3){\SliTeX} } + +% BibTeX +\put(14,11){ \rule{2\k}{\w} } +\put(15,14){ \rule{4\k}{\w} } +\put(19, 6){ \rule{\w}{8\k} } + +\put(15,11){ \makebox(4,3){\BibTeX} } + +% MakeIndex +\put(20, 6){ \framebox(5,8){\MakeIndex} } + +\endpicture + + + +\endinput diff --git a/info/digests/texline/no14/figtotal.tex b/info/digests/texline/no14/figtotal.tex new file mode 100644 index 0000000000..204a950d86 --- /dev/null +++ b/info/digests/texline/no14/figtotal.tex @@ -0,0 +1,181 @@ +%\input l_pic +%\input l_frame +%\let\Line\line +\def\DVI{{\tt DVI}} +\def\OutputInFigtotal{output} +\def\DriverInFigtotal{\DVI{} driver} + +%========== figtotal.tex =================================================== +% figtotal.tex 25 Mar 91 +%------------------------------------------------------------ +% (c) 1991 by J.Schrod (TeXsys). + +% +% Picture of the components and used file types of TeX (data flow) +% (thanks to Nico Poppelier who contributed this better structured version) +% +% LaTeX picture + + +% check if \OutputInFigtotal and \DriverInFigtotal is defined + +\ifx \OutputInFigtotal\undefined + \errhelp{It should be defined as the term `output' in the used language} + \errmessage{You must define \string\OutputInFigtotal} + \def\OutputInFigtotal{output} +\fi +\ifx \DriverInFigtotal\undefined + \errhelp{It should be defined as the term `driver' in the used language} + \errmessage{You must define \string\DriverInFigtotal} + \def\DriverInFigtotal{\DVI{} driver} +\fi + + + +\def\file#1{\framebox(3,2){\tt \uppercase{#1}}} +\def\prog(#1)#2{% + \oval(#1,2)% + \makebox(0,0){#2}% + } + + +% X and Y variables + +\newcount\X \newcount\Y % needed for \Program + +% macros for objects + +\def\File(#1,#2)#3{% + \put(#1,#2){\framebox(20,10){\tt\uppercase{#3}}}} +\def\CopyFile(#1,#2)#3{% + \put(#1,#2){\dashbox{2}(20,10){#3}}} +\def\Program(#1,#2)#3{% + \X=#1 \Y=#2 \advance\X by 15 \advance\Y by 5 + \put(\X,\Y){\oval(30,10)}% + \put(#1,#2){\makebox(30,10){#3}}} +\def\Device(#1,#2)#3{% + \put(#1,#2){\Line(1,2){5}} \put(#1,#2){\Line(1,0){25}} + \X=#1 \Y=#2 \advance\X by 30 \advance\Y by 10 + \put(\the\X,\the\Y){\Line(-1,-2){5}} \put(\the\X,\the\Y){\Line(-1,0){25}} + \put(#1,#2){\makebox(30,10){#3}}} + + +% don't ask me why it's 0.7mm, that's from Nico! -js + +\unitlength=0.7mm + + +\picture(260,160)(60,0) %40/80 +% +% this code provides a dotted grid that makes modification easier +% +%\multiput( 70, 0)(10,0){20}{% +% \vbox to 160\unitlength{% +% \leaders +% \vbox to 2.5\unitlength{% +% \vfill +% \hbox{\fivrm .}% +% \vfill +% }% +% \vfill +% }% +% } +%\multiput( 70, 0)(0,10){17}{% +% \hbox to 190\unitlength{% +% \leaders +% \hbox to 2.5\unitlength{% +% \hfill +% \hbox{\fivrm .}% +% \hfill +% }% +% \hfill +% }% +% } +% +% +% +% IniTeX block +% + \File( 75,145){tfm} \File(105,145){hyp} \File(135,145){mac} + \File(165,145){pool} +\multiput( 85,145)(30,0){4}{\Line(0,-1){5}} + \put( 85,140){\Line(1,0){90}} + \put(115,140){\vector(0,-1){5}} + \Program(100,125){\INITeX} + \put(115,125){\Line(0,-1){5}} + \put(100,120){\Line(1,0){30}} +\multiput(100,120)(30,0){2}{\vector(0,-1){5}} + \File( 90,105){log} + \File(120,105){fmt} \File(150,105){tex} + \File(180,105){sty} \File(210,105){mac} \File(240,105){tfm} +% +% +% TeX block +% +\multiput(130,105)(30,0){5}{\Line(0,-1){5}} + \put(130,100){\Line(1,0){120}} + \put(175,100){\vector(0,-1){5}} + \Program(160, 85){\TeX82} + \put(175, 85){\Line(0,-1){5}} + \put(130, 80){\Line(1,0){90}} +\multiput(130, 80)(30,0){4}{\vector(0,-1){5}} + \File(120, 65){dvi} \File(150, 65){log} + \File(180, 65){idx} \File(210, 65){aux} +% loop back to TeX + \put(230, 70){\Line(1,0){10}} + \put(240, 70){\vector(0,1){10}} + \put(240, 80){\Line(0,1){10}} +% +% +% BibTeX block +% + \File(195, 45){bib} \File(225, 45){bst} +\multiput(205, 45)(30,0){2}{\Line(0,-1){5}} + \put(205, 40){\Line(1,0){30}} + \put(220, 65){\vector(0,-1){30}} + \Program(205, 25){\BibTeX} + \put(220, 25){\Line(0,-1){5}} + \put(205, 20){\Line(1,0){30}} +\multiput(205, 20)(30,0){2}{\vector(0,-1){5}} + \File(195, 5){blg} \File(225, 5){bbl} +% loop back to TeX + \put(245, 10){\Line(1,0){10}} + \put(255, 10){\vector(0,1){10}} + \put(255, 20){\Line(0,1){70}} +% +% +% MakeIndex block +% + \File(150, 45){ist} + \put(190, 65){\Line(0,-1){20}} +\multiput(160, 45)(30,0){2}{\Line(0,-1){5}} + \put(160, 40){\Line(1,0){30}} + \put(175, 40){\vector(0,-1){5}} + \Program(160, 25){\MakeIndex} + \put(175, 25){\Line(0,-1){5}} + \put(145, 20){\Line(1,0){30}} +\multiput(145, 20)(30,0){2}{\vector(0,-1){5}} + \File(135, 5){ilg} \File(165, 5){ind} +% loop back to TeX + \put(175, 5){\Line(0,-1){5}} + \put(175, 0){\Line(1,0){85}} + \put(260, 0){\vector(0,1){10}} + \put(260, 10){\Line(0,1){80}} + \put(260, 90){\vector(-1,0){70}} +% +% +% device driver block +% + \File( 90, 65){fnt} +\multiput(100, 65)(30,0){2}{\Line(0,-1){25}} + \put(100, 40){\Line(1,0){30}} + \put(115, 40){\vector(0,-1){5}} + \Program(100, 25){\DriverInFigtotal} + \put(115, 25){\vector(0,-1){10}} + \Device(100, 5){\OutputInFigtotal} +% +% +\endpicture + + +\endinput diff --git a/info/digests/texline/no14/flow.def b/info/digests/texline/no14/flow.def new file mode 100644 index 0000000000..edd063f09c --- /dev/null +++ b/info/digests/texline/no14/flow.def @@ -0,0 +1,468 @@ +% April 12, 1991 +{\catcode`\|=0 |catcode`|\=12 |obeyspaces |let|m=|message +|m{ } +|m{ These macros may be used free of charge and without authorization } +|m{ for scientific work only. Written permission is required for any } +|m{ commercial use. If used in publications, citation similar to the } +|m{ following reference is required: } +|m{ } +|m{ Michael Ramek, } +|m{ ``Flow Charts With \TeX'', } +|m{ in } +|m{ \TeX line 13 (1991) ??-?? } +|m{ } +|m{ Questions and inquiries should be addressed to the author: } +|m{ } +|m{ Michael Ramek } +|m{ Institut f\"ur Physikalische und Theoretische Chemie, } +|m{ Technische Universit\"at Graz } +|m{ Rechbauerstra{\ss}e 12 } +|m{ A--8010 Graz } +|m{ Austria } +|m{ }|m{}} +% +% The following special characters are used in +% this macro package: +% +% backslash: \ +% left brace: { +% right brace: } +% dollar sign: $ +% percent sign: % +% number sign: # +\def\flowptonemm{.1mm}\def\flowzerofive{05}% +\def\flowten{10}\def\floweleven{11}\def\flowtwelve{12}% +\def\flowthirteen{13}\def\flowfifteen{15}\def\flowsixteen{16}% +\def\flowseventeen{17}\def\flownineteen{19}\def\flowtwenty{20}% +\def\flowfortyfour{44}\def\flowfiftyfive{55}\def\flowsixtysix{66}% +\def\flowsixtynine{69}\def\flowseventythree{73}% +\def\flowseventyfour{74}\def\flowseventyfive{75}% +\def\floweightytwo{82}\def\floweightyfour{84}\def\floweightyfive{85}% +\def\floweightysix{86}\def\flowninetytwo{92}\def\flowhalf{.5}% +\def\flowquarter{.25}\def\flowthreequarter{.\flowseventyfive}% +\def\flowchart#1{{\def\flowinhalt{#1}\dimendef\lindent180% +\countdef\chelp0\dimendef\rindent181\dimendef\fivemm\flowseventeen0% +\dimendef\textw183\dimendef\vpos1\floweightyfour\dimendef\pt189% +\dimendef\nullpt\flowseventeen9\dimendef\mvpos\flowseventeen1% +\dimendef\entrydist1\floweightyfive\dimendef\breite\floweleven% +\dimendef\laenge\flowtwelve\dimendef\hoehe\flowthirteen% +\dimendef\tiefe14\dimendef\anstieg\flowfifteen% +\dimendef\lvpos1\floweightysix\dimendef\texts1\floweightytwo% +\dimendef\rvpos187\dimendef\dhelp188\dimendef\hstroke\flowtwenty% +\countdef\mitte1\floweightyfour\countdef\decidelevel\flowtwenty0% +\countdef\ahelp\flowten0\countdef\bhelp\flowten1% +\countdef\ehelp\flowthirteen\pt1pt\nullpt0\pt% +\def\rlap##1{\hbox to\nullpt{##1\hss}}% +\def\llap##1{\hbox to\nullpt{\hss##1}}% +\count\flowseventeen1=5\loop\count\flowseventeen0=0\flowflowchart% +\ifdim\ht0>\vsize\advance\count\flowseventeen1-1\relax% +\ifnum\count\flowseventeen1>2\count\flowseventeen0=1\fi\fi\relax% +\ifnum\count\flowseventeen0=1\repeat\box0} +} +\def\flowflowchart{\setbox0\vbox{\lindent\flowquarter\hsize% +\rindent\lindent\fivemm\count\flowseventeen1truemm\texts\fivemm% +\textw.4\hsize\advance\textw-2\texts\mvpos\nullpt\vpos\nullpt% +\mitte0\decidelevel0\entrydist\fivemm\relax\flowinhalt% +\ifdim\mvpos>\nullpt\vskip-\vpos\vskip\mvpos\fi}% +} +\def\flowvrule#1#2#3{\vrule width#1 height#2 depth#3% +} +\def\flowbox#1{\hbox to\breite{#1}% +}% +\def\flowendmiddlepart{\advance\decidelevel-1% +\ifdim\vpos>\mvpos\mvpos\vpos\fi% +} +\def\flowleftpart{\advance\lindent-\flowquarter\hsize% +\advance\rindent\flowquarter\hsize\chelp2\flowten% +\ifnum\mitte=0\chelp\flowtwenty0\fi\advance\chelp\decidelevel% +\advance\mitte-1\vskip-\vpos\vskip\dimen\chelp\vpos\dimen\chelp% +\advance\chelp\flowtwenty\entrydist\dimen\chelp% +} +\def\flowendleftpart{\advance\lindent\flowquarter\hsize% +\advance\rindent-\flowquarter\hsize\advance\mitte1% +\lvpos\vpos\ifdim\vpos>\mvpos\mvpos\vpos\fi% +} +\def\flowrightpart{\advance\lindent\flowquarter\hsize% +\advance\rindent-\flowquarter\hsize\chelp2\flowten% +\ifnum\mitte=0\chelp\flowtwenty0\fi\advance\chelp\decidelevel% +\advance\mitte1\vskip-\vpos\vskip\dimen\chelp\vpos\dimen\chelp% +\advance\chelp\flowtwenty\entrydist\dimen\chelp% +} +\def\flowendrightpart{\advance\lindent-\flowquarter\hsize% +\advance\rindent\flowquarter\hsize\advance\mitte-1% +\rvpos\vpos\ifdim\vpos>\mvpos\mvpos\vpos\fi% +} +\def\flowcombine{\dhelp\rvpos\relax% +\ifdim\dhelp<\lvpos\dhelp\lvpos\fi\relax\advance\rvpos-\lvpos\relax% +\ifdim\rvpos<\nullpt\rvpos-\rvpos\fi% +\ifdim\vpos=\dhelp\vskip-\rvpos\advance\vpos-\rvpos\fi% +\ifdim\lvpos=\dhelp% +\flowline{\kern\flowhalf\hsize\flowvrule\pt\rvpos\nullpt}\else% +\flowline{\flowvrule\pt\rvpos\nullpt\kern\flowhalf\hsize}\fi% +\flowline{\flowvrule\pt\fivemm\nullpt\kern-\pt% +\kern\flowhalf\hsize\flowvrule\pt\fivemm\nullpt}% +\kern-2.64098\pt\hbox to\hsize{\hss\kern\lindent% +\flowvrule{\flowquarter\hsize}\pt\nullpt% +\setbox1\llap{$><$\hss}\lower1\flowhalf\pt\copy1% +\lower2\pt\box1% +\flowvrule{\flowquarter\hsize}\pt\nullpt\kern\rindent\hss}% +\nointerlineskip\kern-2.64098\pt\advance\vpos\pt\mvpos\nullpt% +} +\def\flowmark#1{\flowline{\flowvrule\pt\fivemm\nullpt}% +\dimen\flownineteen#1\vpos\count\flownineteen#1\mitte% +} +\def\flowleftconnect#1{\flowline{\flowvrule\pt\fivemm\nullpt}% +\flowline{\flowvrule{\flowquarter\hsize}\pt\nullpt% +\kern\flowquarter\hsize}\ifdim\vpos>\mvpos\mvpos\vpos\fi% +\advance\lindent-\flowquarter\hsize% +\flowconnect#1\advance\lindent\flowquarter\hsize% +} +\def\flowrightconnect#1{\flowline{\flowvrule\pt\fivemm\nullpt}% +\flowline{\kern\flowquarter\hsize% +\flowvrule{\flowquarter\hsize}\pt\nullpt}% +\ifdim\vpos>\mvpos\mvpos\vpos\fi% +\advance\lindent\flowquarter\hsize\flowconnect#1% +\advance\lindent-\flowquarter\hsize% +} +\def\flowconnect#1{\ifdim\vpos>\dimen\flownineteen#1\vskip-\vpos% +\vskip\dimen\flownineteen#1\kern-4.14098\pt% +\centerline{\advance\lindent\flowquarter\hsize% +\texts2\hsize\advance\texts-\count\flownineteen#1\hsize% +\divide\texts4\textw\hsize\advance\textw-\lindent% +\advance\textw-\texts\advance\vpos-\dimen\flownineteen#1% +\advance\vpos\flowhalf\pt\ifdim\textw>\nullpt\kern\lindent% +\flowvrule\pt\nullpt\vpos\kern-\pt% +\flowvrule\textw\pt\nullpt\setbox1\llap{$>$}% +\lower1\flowhalf\pt\copy1\lower2\pt\copy1\else% +\advance\lindent\textw\advance\texts\textw% +\kern\lindent\setbox1\rlap{$<$}% +\lower1\flowhalf\pt\copy1\lower2\pt\copy1% +\flowvrule{-\textw}\pt\nullpt\kern-\pt% +\flowvrule\pt\nullpt\vpos\fi\kern\texts}\else% +\centerline{\advance\lindent\flowquarter\hsize% +\texts2\hsize\advance\texts-\count\flownineteen#1\hsize% +\divide\texts4\textw\hsize\advance\textw-\lindent% +\advance\textw-\texts\advance\vpos-\dimen\flownineteen#1% +\advance\vpos-\flowhalf\pt\ifdim\textw>\nullpt\kern\lindent% +\flowvrule\pt{-\vpos}\nullpt\kern-\pt% +\flowvrule\textw\pt\nullpt\setbox1\llap{$>$}% +\lower1\flowhalf\pt\copy1\lower2\pt\copy1\else% +\advance\lindent\textw\advance\texts\textw\kern\lindent% +\setbox1\rlap{$<$}% +\lower1\flowhalf\pt\copy1\lower2\pt\copy1% +\flowvrule{-\textw}\pt\nullpt\kern-\pt% +\flowvrule\pt{-\vpos}\nullpt\fi\kern\texts}% +\vpos\dimen\flownineteen#1\advance\vpos3.14098\pt\fi\nointerlineskip% +} +\def\flowline#1{\setbox\flowtwenty\hbox to\hsize{\hss\kern\lindent#1% +\kern\rindent\hss}\advance\vpos\ht\flowtwenty% +\advance\vpos\dp\flowtwenty% +\box\flowtwenty\nointerlineskip\entrydist\fivemm% +} +\def\flowoutput#1{\flowline{\vbox{\flowanfang{#1}% +\ifdim\breite<1.6cm\breite1.6cm\fi\flowanfangv% +\flowbox{\hss\flowvrule\breite\pt\nullpt\hss}% +\flowbox{\flowvrule\pt\laenge{-\flowquarter cm}% +\hfill\box\floweleven\hfill\flowvrule\pt\laenge{3mm}}% +\kern-6mm\flowbox{\ehelp14\loop\advance\ehelp1\hoehe5cm% +\divide\hoehe\ehelp\anstieg\ehelp sp% +\multiply\anstieg-23\floweightysix\advance\anstieg1.9\pt% +\ifdim\anstieg<\pt\anstieg\pt\fi\tiefe-\hoehe\advance\tiefe\anstieg% +\flowvrule{\flowptonemm}\hoehe\tiefe\ifnum\ehelp<89\repeat% +\leaders\vrule height\hoehe depth\tiefe\hfill% +\flowvrule\pt\hoehe{3mm}\leaders\vrule height\hoehe depth\tiefe\hfill% +\loop\advance\ehelp-1\hoehe-5cm\divide\hoehe\ehelp% +\advance\hoehe.\floweleven24cm\anstieg\ehelp sp% +\multiply\anstieg-23\floweightysix\advance\anstieg1.9\pt% +\ifdim\anstieg<\pt\anstieg\pt\fi% +\tiefe-\hoehe\advance\tiefe\anstieg% +\flowvrule{\flowptonemm}\hoehe\tiefe\ifnum\ehelp>14\repeat}}}% +} +\def\flowanfang#1{\parindent\nullpt\setbox\flowtwelve\hbox{#1}% +\setbox\floweleven\hbox{\vbox{% +\ifdim\wd\flowtwelve<\textw\hsize\wd\flowtwelve% +\else\hsize\textw\fi\leftskip\nullpt plus.1\textw% +\rightskip\nullpt plus.1\textw\parfillskip\nullpt% +\hbadness\flowten000 #1\vskip\texts}}\offinterlineskip% +\breite\wd\floweleven\advance\breite2\texts\laenge\ht\floweleven% +\advance\laenge\dp\floweleven\advance\laenge\texts% +} +\def\flowanfangv{\flowbox{\hss\flowvrule\pt\entrydist\nullpt\hss}% +\kern-5\flowhalf\flowfiftyfive57\pt\flowbox{% +\hss\setbox\flowfifteen\hbox{$\vee$}% +\copy\flowfifteen\kern-\wd\flowfifteen\kern.4\pt\box\flowfifteen\hss}% +} +\def\flowcompute#1{\flowline{\vbox{\flowanfang{#1}\flowanfangv% +\flowbox{\hss\flowvrule\breite\pt\nullpt\hss}% +\flowbox{\flowvrule\pt\laenge\nullpt% +\hfill\box\floweleven\hfill\flowvrule\pt\laenge\nullpt}% +\flowbox{\hss\flowvrule\breite\pt\nullpt\hss}% +}}% +} +\def\flowinput#1{\flowline{\vbox{\flowanfang{#1}\flowanfangv% +\setbox\flowthirteen\hbox{\it/}\anstieg-\ht\flowthirteen% +\advance\anstieg-\dp\flowthirteen\flowbox{\copy\flowthirteen% +\kern-\wd\flowthirteen\kern.4\pt\copy\flowthirteen% +\advance\breite-\wd\flowthirteen\hoehe\ht\flowthirteen\tiefe\hoehe% +\advance\tiefe-\pt\hss\flowvrule\breite\hoehe{-\tiefe}}\kern\anstieg% +\advance\anstieg\laenge\flowbox{\flowvrule\pt\anstieg\nullpt% +\hfill\box\floweleven\hfill\flowvrule\pt\laenge\nullpt}% +\flowbox{\hss\flowvrule\breite\pt\nullpt\hss}% +}}% +} +\def\flowstart{\flowline{\vbox{\flowanfang~% +\hbox to1cm{\hss\flowvrule{1cm}\pt\nullpt\hss}\kern-\pt% +\hbox to1cm{\hss\hoehe\nullpt\loop\tiefe\hoehe\advance\tiefe-2\pt% +\flowvrule{\flowptonemm}\hoehe{-\tiefe}% +\advance\hoehe-.\flowseventeen321mm\relax% +\ifdim\hoehe>-8.\flowsixtysix mm\repeat\loop\tiefe\hoehe% +\advance\tiefe-2\pt\flowvrule{\flowptonemm}\hoehe{-\tiefe}% +\advance\hoehe.\flowseventeen321mm\ifdim\hoehe<\nullpt\repeat\hss}}}% +} +\def\flowend{\flowline{\vbox{\flowanfang~\flowanfangv% +\flowbox{\hss\hoehe\nullpt\loop\tiefe\hoehe\advance\tiefe-2\pt% +\flowvrule{\flowptonemm}\hoehe{-\tiefe}% +\advance\hoehe.\flowseventeen321mm\relax% +\ifdim\hoehe<8.\flowsixtysix mm\repeat\loop\tiefe\hoehe% +\advance\tiefe-2\pt\flowvrule{\flowptonemm}\hoehe{-\tiefe}% +\advance\hoehe-.\flowseventeen321mm\ifdim\hoehe>\nullpt\repeat\hss}% +\kern-\pt\flowbox{\hss\flowvrule{1cm}\pt\nullpt\hss}}}% +} +\def\flowisthereablank#1 #2;{\chelp0\if*#2\else\chelp1\fi% +} +\def\flowdecide#1#2#3#4{\chelp\flowtwenty0\ifnum\mitte=0\else% +\chelp2\flowten\fi\advance\chelp\decidelevel\dimen\chelp\vpos% +\advance\dimen\chelp\entrydist\flowline{\hstroke\flowhalf\hsize% +\vbox{\hsize\flowhalf\hsize\parindent\nullpt% +\flowisthereablank#4 *;\setbox1\hbox{#4}\setbox0\hbox{#4}% +\ifnum\chelp>0\setbox0\vbox{\dimen1.33\hsize% +\rightskip\nullpt plus1fil minus.2\dimen1\overfullrule\nullpt% +\leftskip\nullpt plus1fil minus.2\dimen1\hbadness\flowten000% +\parfillskip\nullpt\chelp\wd1\divide\chelp\dimen1\advance\chelp2% +\ahelp\flowten0\count2\chelp\advance\count2-1\divide\count2 2% +\dimen2\flowquarter\dimen1\ifnum\count2>0\divide\dimen2\count2\fi% +\count3\nullpt\loop\count4\count2\advance\count4-\count3% +\dimen\ahelp\count4\dimen2\bhelp\ahelp% +\advance\bhelp1\dimen\bhelp\dimen1\advance\dimen\bhelp-2\dimen\ahelp% +\ifdim\dimen\ahelp>\nullpt\advance\ahelp2\advance\count3 1% +\repeat\ifodd\chelp\advance\ahelp1\else\bhelp\ahelp\advance\ahelp2% +\dimen\ahelp\dimen\bhelp\advance\bhelp1\advance\ahelp1% +\dimen\ahelp\dimen\bhelp\fi\advance\ahelp1\advance\count3-1\loop% +\count4\count2\advance\count4-\count3% +\dimen\ahelp\count4\dimen2\bhelp\ahelp% +\advance\bhelp1\dimen\bhelp\dimen1\advance\dimen\bhelp-2\dimen\ahelp% +\ifnum\count3>0\advance\ahelp2\advance\count3-1\repeat% +\parshape=\chelp% +\dimen\flowten0\dimen\flowten1\dimen\flowten2\dimen\flowten3% +\dimen\flowten4\dimen1\flowzerofive\dimen\flowten6\dimen\flowten7% +\dimen\flowten8\dimen\flowten9\dimen\floweleven0\dimen\floweleven1% +\dimen\floweleven2\dimen\floweleven3\dimen\floweleven4% +\dimen\floweleven5\dimen\floweleven6\dimen\floweleven7% +\dimen\floweleven8\dimen\floweleven9\dimen1\flowtwenty% +\dimen\flowtwelve1\dimen\flowtwelve2\dimen\flowtwelve3% +\dimen\flowtwelve4\dimen\flowtwelve5\dimen\flowtwelve6% +\dimen\flowtwelve7\dimen\flowtwelve8\dimen\flowtwelve9% +\dimen\flowthirteen0\dimen\flowthirteen1\dimen\flowthirteen2% +\dimen\flowthirteen3\dimen\flowthirteen4\dimen\flowthirteen5% +\dimen\flowthirteen6\dimen\flowthirteen7% +\dimen\flowthirteen8\dimen\flowthirteen9% +\parindent\nullpt\hsize\dimen1 #4}\fi\relax\ifdim\ht0=\ht1% +\setbox0\vbox{\hsize\wd1\parindent\nullpt\relax #4}% +\fi\relax\setbox\floweleven\vbox{\box0\vskip\texts}\offinterlineskip% +\breite\wd\floweleven\advance\breite2\texts\laenge\ht\floweleven% +\advance\laenge\dp\floweleven\advance\laenge\texts% +\advance\breite2\texts\centerline{\vbox{\flowanfangv}}% +\setbox\flowthirteen\hbox{\hoehe\nullpt\loop\tiefe\hoehe% +\advance\tiefe-1.\flowfifteen47\pt% +\flowvrule{\flowptonemm}\hoehe{-\tiefe}% +\advance\hoehe.\flowzerofive77mm\relax% +\ifdim\hoehe<.2887\breite\repeat}\hoehe\ht\flowthirteen% +\setbox14\hbox{\loop\tiefe\hoehe\advance\tiefe-1.\flowfifteen47\pt% +\flowvrule{\flowptonemm}\hoehe{-\tiefe}% +\advance\hoehe-.\flowzerofive77mm% +\ifdim\hoehe>\nullpt\repeat}\setbox\flowfifteen\hbox{#1}% +\setbox\flowsixteen\hbox{#2}\anstieg\nullpt% +\ifdim\wd\flowfifteen>\nullpt\anstieg\pt\fi\dimen\flowsixteen\nullpt% +\ifdim\wd\flowsixteen>\nullpt\dimen\flowsixteen\pt\fi% +\advance\hstroke-\breite\hbox{\rlap{\kern\flowhalf\hstroke% +\llap{\raise3\pt\box\flowfifteen\kern3\pt}}% +\flowvrule{\flowhalf\hstroke}\nullpt\anstieg% +\flowbox{\hss\copy\flowthirteen\copy14\hss}% +\flowvrule{\flowhalf\hstroke}\nullpt{\dimen\flowsixteen}% +\rlap{\kern-\flowhalf\hstroke\kern3\pt\raise3\pt\box\flowsixteen}% +}\hoehe\ht\floweleven\advance\hoehe-\texts\kern-\flowhalf\hoehe% +\kern-\flowthreequarter\pt\centerline{\box\floweleven}% +\kern\flowthreequarter\pt\kern-\flowhalf\hoehe\kern-\texts% +\kern-1\flowhalf\pt\hbox{\kern\flowhalf\hstroke% +\flowbox{\hss\copy14\copy\flowthirteen\hss}\kern\flowhalf\hstroke}% +\centerline{\vbox to\fivemm{\vss\rlap{\kern3\pt #3}\vss}}% +\vskip-\fivemm}}\chelp\flowtwenty0\ifnum\mitte=0\else\chelp2\flowten\fi% +\relax\advance\chelp\decidelevel\advance\dimen\chelp\vpos% +\count1\chelp\advance\count1 \flowtwenty% +\dimen\count1\vpos\dimen\chelp\flowhalf\dimen\chelp% +\advance\dimen\count1-\dimen\chelp\advance\decidelevel1% +} +\def\flowkreis{% +\flowrule{3\floweightysix\flowfiftyfive6}% +{\flowseventeen\flowseventyfive29}% +\flowrule{425\floweleven0}{2506\flownineteen}% +\flowrule{459\flowsixtynine2}{3\flowzerofive627}% +\flowrule{49\floweleven40}{35\floweleven\flowfiftyfive}% +\flowrule{5\flowtwenty025}{39\flowzerofive34}% +\flowrule{546\flowseventyfive2}{4254\flowseventyfive}% +\flowrule{57\flowsixteen24}{45\flowsixtynine96}% +\flowrule{5948\flowseventyfour}{4\floweightyfive763}% +\flowrule{61\flowsixtysix\floweightyfive}{5\flowtwelve241}% +\flowrule{637\flowtwenty5}{5367\flowsixtynine}% +\flowrule{656\flowfiftyfive5}{\flowfiftyfive9603}% +\flowrule{6\flowseventyfour836}{580943}% +\flowrule{\flowsixtynine2\flowthirteen3}{600948}% +\flowrule{70\floweightyfive\flowseventeen}% +{6\flownineteen\flowseventyfour8}% +\flowrule{724\flowzerofive0}{63\flowseventyfour48}% +\flowrule{\flowseventythree8787}{654\flowthirteen9}% +\flowrule{\flowseventyfive27\flowseventyfour}{\flowsixtysix9896}% +\flowrule{7\flowsixtysix\flowzerofive2}% +{6\floweightyfour7\floweightytwo}% +\flowrule{77\floweightysix57}% +{\flowsixtynine88\flowfiftyfive}% +\flowrule{790622}{7\flowtwelve\flowsixteen2}% +\flowrule{80\flownineteen\flowseventyfive}{724\flowseventyfour5}% +\flowrule{8\flowtwelve\flowseventyfour1}% +{\flowseventythree\flowsixtysix41}% +\flowrule{\floweightytwo2945}{\flowseventyfour78\floweightyfour}% +\flowrule{832606}{\flowseventyfive\floweightyfive01}% +\flowrule{\floweightyfour1\flowseventyfour3}% +{76\floweightyfive\flowtwenty}% +\flowrule{\floweightyfive03\flowseventyfour}{777963}% +\flowrule{\floweightyfive\floweightyfive\flowtwelve}% +{7\floweightysix\floweightyfive1}% +\flowrule{8\flowsixtysix\flowseventeen3}{795\flowtwenty3}% +\flowrule{8\flowseventythree3\flowsixtynine}{803035}% +\flowrule{880\floweleven1}{8\flowten362}% +\flowrule{8\floweightysix4\flowten}{8\flowseventeen\flownineteen8}% +\flowrule{8\flowninetytwo2\flowseventyfour}% +{\floweightytwo3\flowfiftyfive6}% +\flowrule{8977\flowthirteen}{\floweightytwo9\flowfortyfour6}% +\flowrule{902\flowseventythree4}{834877}% +\flowrule{90\flowseventythree45}{839\floweightysix0}% +\flowrule{9\floweleven\flowfiftyfive0}% +{\floweightyfour\flowfortyfour02}% +\flowrule{9\flowfifteen357}{\floweightyfour\floweightyfive\flowten}% +\flowrule{9187\flowsixtynine}{\floweightyfive2\flownineteen0}% +\flowrule{\flowninetytwo\flowseventeen\flowninetytwo}% +{8\flowfiftyfive\flowfortyfour8}% +\flowrule{\flowninetytwo\flowfortyfour28}% +{\floweightyfive\floweightytwo88}% +\flowrule{\flowninetytwo\flowsixtysix\floweightytwo}% +{\floweightysix07\flowfifteen}% +\flowrule{\flowninetytwo8\flowfiftyfive6}% +{\floweightysix2\flowseventythree3}% +\flowrule{930\flowzerofive3}{\floweightysix43\flowfortyfour}% +\flowrule{93\floweleven\flowseventyfour}% +{\floweightysix\flowfiftyfive50}% +\flowrule{93\flownineteen\flowtwenty}{8\flowsixtysix353}% +\flowrule{932293}{8\flowsixtysix\flowseventyfive4}% +\flowrule{932293}{8\flowsixtysix\flowseventyfive4}% +\flowrule{93\flownineteen\flowtwenty}{8\flowsixtysix353}% +\flowrule{93\floweleven\flowseventyfour}% +{\floweightysix\flowfiftyfive50}% +\flowrule{930\flowzerofive3}{\floweightysix43\flowfortyfour}% +\flowrule{\flowninetytwo8\flowfiftyfive6}% +{\floweightysix2\flowseventythree3}% +\flowrule{\flowninetytwo\flowsixtysix\floweightytwo}% +{\floweightysix07\flowsixteen}% +\flowrule{\flowninetytwo\flowfortyfour28}% +{\floweightyfive\floweightytwo88}% +\flowrule{\flowninetytwo\flowseventeen\flowninetytwo}% +{8\flowfiftyfive\flowfortyfour8}% +\flowrule{9187\flowsixtynine}{\floweightyfive2\flownineteen0}% +\flowrule{9\flowfifteen357}{\floweightyfour\floweightyfive\flowten}% +\flowrule{9\floweleven\flowfiftyfive0}% +{\floweightyfour\flowfortyfour02}% +\flowrule{90\flowseventythree45}{839\floweightysix0}% +\flowrule{902\flowseventythree4}{834878}% +\flowrule{8977\flowthirteen}{\floweightytwo9\flowfortyfour6}% +\flowrule{8\flowninetytwo2\flowseventyfour}% +{\floweightytwo3\flowfiftyfive6}% +\flowrule{8\floweightysix4\flowten}{8\flowseventeen\flownineteen9}% +\flowrule{880\floweleven1}{8\flowten362}% +\flowrule{8\flowseventythree3\flowsixtynine}{803035}% +\flowrule{8\flowsixtysix1\flowseventyfour}{795\flowtwenty3}% +\flowrule{\floweightyfive\floweightyfive\flowthirteen}% +{7\floweightysix\floweightyfive2}% +\flowrule{\floweightyfive03\flowseventyfour}{777963}% +\flowrule{\floweightyfour1\flowseventyfour4}% +{76\floweightyfive\flowtwenty}% +\flowrule{832606}{\flowseventyfive\floweightyfive02}% +\flowrule{\floweightytwo2945}{\flowseventyfour78\floweightyfour}% +\flowrule{8\flowtwelve\flowseventyfour2}% +{\flowseventythree\flowsixtysix41}% +\flowrule{80\flownineteen\flowseventyfive}{724\flowseventyfour5}% +\flowrule{790622}{7\flowtwelve\flowsixteen2}% +\flowrule{77\floweightysix58}{\flowsixtynine88\flowfiftyfive}% +\flowrule{7\flowsixtysix\flowzerofive2}{6\floweightyfour783}% +\flowrule{\flowseventyfive27\flowseventyfive}{\flowsixtysix9896}% +\flowrule{\flowseventythree8788}{654140}% +\flowrule{724\flowzerofive1}{63\flowseventyfour49}% +\flowrule{70\floweightyfive\flowseventeen}% +{6\flownineteen\flowseventyfour8}% +\flowrule{\flowsixtynine2\flowthirteen3}{600949}% +\flowrule{6\flowseventyfour837}{5809\flowfortyfour}% +\flowrule{656\flowfiftyfive6}{\flowfiftyfive9604}% +\flowrule{637\flowtwenty6}{536770}% +\flowrule{61\flowsixtysix\floweightyfive}{5\flowtwelve242}% +\flowrule{5948\flowseventyfour}{4\floweightyfive764}% +\flowrule{57\flowsixteen25}{45\flowsixtynine97}% +\flowrule{546\flowseventyfive3}{425476}% +\flowrule{5\flowtwenty026}{39\flowzerofive36}% +\flowrule{49\floweleven41}{35\floweleven57}% +\flowrule{459\flowsixtynine3}{3\flowzerofive628}% +\flowrule{425\floweleven1}{250621}% +\flowrule{3\floweightysix\flowfiftyfive7}% +{\flowseventeen\flowseventyfive32}% +} +\def\flowendcircle#1{\flowline{\vbox{\flowanfang~\flowanfangv% +\flowflowcircle{#1}}}% +} +\def\flowstartcircle#1{\flowline{\vbox{\flowanfang~% +\flowflowcircle{#1}% +}}% +} +\def\flowflowcircle#1{\flowbox{\hss% +\def\flowrule##1{\flowvrule{\flowptonemm}{##1sp}{##1sp}}% +\flowrule{\flowthirteen\flowfifteen23}\flowrule{22\flowsixtysix56}% +\flowrule{29\floweleven23}\flowrule{342\flowsixtynine0}% +\def\flowrule##1##2{\flowvrule{\flowptonemm}{##1sp}{-##2sp}}% +\flowkreis% +\def\flowrule##1{\flowvrule{\flowptonemm}{##1sp}{##1sp}}% +\flowrule{342\flowsixtynine2}\flowrule{29\floweleven25}% +\flowrule{22\flowsixtysix59}\flowrule{\flowthirteen\flowfifteen27}% +\kern-.96cm% +\def\flowrule##1##2{\flowvrule{\flowptonemm}{-##2sp}{##1sp}}% +\flowkreis\kern-.46cm\setbox0\llap{#1\hss}% +\lower\flowhalf\ht0\copy0\kern5mm\hss}% +} +\def\flowchartsnomOre{\def\flowchart{}\def\flowendmiddlepart{}% +\def\flowleftpart{}\def\flowendleftpart{}\def\flowrightpart{}% +\def\flowendrightpart{}\def\flowcombine{}\def\flowmark{}% +\def\flowleftconnect{}\def\flowrightconnect{}\def\flowvrule{}% +\def\flowconnect{}\def\flowline{}\def\flowoutput{}\def\flowrule{}% +\def\flowanfang{}\def\flowanfangv{}\def\flowcompute{}% +\def\flowinput{}\def\flowbox{}\def\flowstart{}\def\flowend{}% +\def\flowisthereablank{}\def\flowdecide{}\def\flowkreis{}% +\def\flowendcircle{}\def\flowstartcircle{}\def\flowflowcircle{}% +\def\flowptonemm{}\def\flowzerofive{}\def\flowten{}\def\floweleven{}% +\def\flowtwelve{}\def\flowthirteen{}\def\flowfifteen{}% +\def\flowsixteen{}\def\flowseventeen{}\def\flownineteen{}% +\def\flowtwenty{}\def\flowfortyfour{}\def\flowfiftyfive{}% +\def\flowsixtysix{}\def\flowsixtynine{}\def\flowseventythree{}% +\def\flowseventyfour{}\def\flowseventyfive{}\def\floweightytwo{}% +\def\floweightyfour{}\def\floweightyfive{}\def\floweightysix{}% +\def\flowninetytwo{}\def\flowhalf{}\def\flowquarter{}% +\def\flowthreequarter{}% +} +\def\nomoreflowcharts{\flowchartsnomOre\def\flowchartsnomOre{}% +} +\endinput +------------------------------ End of body part 2 diff --git a/info/digests/texline/no14/flow.fg1 b/info/digests/texline/no14/flow.fg1 new file mode 100644 index 0000000000..46ff5a6868 --- /dev/null +++ b/info/digests/texline/no14/flow.fg1 @@ -0,0 +1,9 @@ +%flow.fg1 +\flowchart{\flowstart\flowinput{$a,b,c$} +\flowcompute{$d={b^2-4ac}$} +\flowcompute{$\displaystyle +x_1={b+\sqrt d\over-2a\strut}$ +% \strut inhibits touching of the two +% formulae in a vertical arrangement +$\displaystyle x_2={b-\sqrt d\over-2a}$} +\flowoutput{$x_1,x_2$}\flowend} diff --git a/info/digests/texline/no14/flow.fg2 b/info/digests/texline/no14/flow.fg2 new file mode 100644 index 0000000000..c9bd9744c5 --- /dev/null +++ b/info/digests/texline/no14/flow.fg2 @@ -0,0 +1,9 @@ +%flow.fg2: +\flowchart{\flowstart\flowinput{$x$} +\flowdecide{Y}{N}{}{$x<0$} +\flowendmiddlepart +\flowleftpart\flowcompute{$|x|=-x$} +\flowendleftpart +\flowrightpart\flowcompute{$|x|=x$} +\flowendrightpart\flowcombine +\flowoutput{$|x|$}\flowend} diff --git a/info/digests/texline/no14/flow.fg3 b/info/digests/texline/no14/flow.fg3 new file mode 100644 index 0000000000..51b4135afd --- /dev/null +++ b/info/digests/texline/no14/flow.fg3 @@ -0,0 +1,18 @@ +%flow.fg3: +\centerline{\hsize=1.7\hsize +\flowchart{\def\b{$\backslash$} +\flowdecide N{}Y{Study this chart?}%%%%%%% +\flowcompute{This is \b flowcompute.} % +\flowmark7 % +\flowinput{There's also a \b flowinput} % +\flowoutput{\dots\ and a \b flowoutput.} % +\flowdecide{}YN{Repeat the I/O part?}%% % +\flowmark1 % % +\flowendmiddlepart%%%%%%%%%%%%%%%%%%%%% % +\flowrightpart % +\flowconnect7 % +\flowendrightpart % +\flowendmiddlepart%%%%%%%%%%%%%%%%%%%%%%%% +\flowleftpart +\flowconnect1 +\flowendleftpart}} diff --git a/info/digests/texline/no14/flow.fg4 b/info/digests/texline/no14/flow.fg4 new file mode 100644 index 0000000000..79fa5a8aa5 --- /dev/null +++ b/info/digests/texline/no14/flow.fg4 @@ -0,0 +1,26 @@ +%flow fg4: +\flowchart{\flowstart\flowmark0 +\flowcompute{$F=1$}\flowmark1 +\flowinput{$\quad n\quad$} +\flowdecide{}{no}{yes}{$n$ integer} +\flowdecide{$<$}{$=$}{$>$}{$n$ : 0} +\flowcompute{$i=0$}\flowmark2 +\flowcompute{$i=i+1;$ $F=F\times i$} +\flowdecide{yes}{}{no}{$i<n$}\flowmark3 +\flowdecide{no}{yes}{}{$F<0$} +\flowendmiddlepart +\flowleftpart\flowoutput{$F$} +\flowdecide{no}{yes}{}{quit?} +\flowendmiddlepart\flowrightpart +\flowend\flowendrightpart +\flowleftpart\flowconnect0\flowendleftpart +\flowendleftpart\flowrightpart +\flowoutput{Error message} +\flowrightconnect0\flowendrightpart +\flowendmiddlepart +\flowleftpart\flowconnect2\flowendleftpart +\flowendmiddlepart\flowrightpart +\flowconnect3\flowendrightpart +\flowleftpart\flowconnect1\flowendleftpart +\flowendmiddlepart\flowrightpart +\flowconnect1\flowendrightpart} diff --git a/info/digests/texline/no14/flow.fg5 b/info/digests/texline/no14/flow.fg5 new file mode 100644 index 0000000000..4d81eab9b4 --- /dev/null +++ b/info/digests/texline/no14/flow.fg5 @@ -0,0 +1,21 @@ +%flow.fg5: +\centerline{\kern.2\hsize \hsize=.87\hsize +\flowchart{\flowstartcircle1 +\flowdecide NY{}{skip?}\flowendmiddlepart +\flowleftpart\flowdecide Y{}N{last atom?} +\flowmark0\flowmark0\flowmark0\flowmark0 +\flowdecide{}YN{first coordinate?} +\flowmark0\flowmark0\flowendmiddlepart +\flowrightpart\flowdecide~~{}{case 1 or 2?} +\flowendmiddlepart\flowrightpart +\flowcompute{case 2}\flowendrightpart +\flowleftpart\flowcompute{case 1} +\flowendleftpart\flowcombine +\flowcompute{cases 1 \& 2} +\flowendcircle4\flowendrightpart +\flowendmiddlepart +\flowleftpart\flowcompute{cleanup} +\flowendcircle3\flowendleftpart +\flowendleftpart +\flowrightpart\flowcompute{restore} +\flowendcircle2\flowendrightpart}} diff --git a/info/digests/texline/no14/flowchart.tex b/info/digests/texline/no14/flowchart.tex new file mode 100644 index 0000000000..df17c850f4 --- /dev/null +++ b/info/digests/texline/no14/flowchart.tex @@ -0,0 +1,425 @@ +% malcolm, +% please note that the placement of most figures has to be +% optimized manually! furthermore, the standard \vsize is +% assumed for one or two figures. +% good luck! +% + +\input texline +\pageno6 +\input flow.def +\begingroup +\let\Alisttt\tt +\let\Alistrm\rm +\def\uncatcodespecials{\def\do##1{\catcode`##1=12 }\dospecials} +\def\listing#1{\par\begingroup\setupverbatim\input#1 \endgroup} +\def\setupverbatim{ + \Alisttt\lineskip=1truept + \lineskiplimit=1truept\topskip=0pt + \def\par{\leavevmode\egroup\box0\endgraf} + \obeylines \uncatcodespecials \obeyspaces + \catcode`\`=\active \catcode`\^^I=\active + \everypar{\startbox}} +\newdimen\w \setbox0=\hbox{\Alisttt\space} \w=8\wd0 +\def\startbox{\setbox0=\hbox\bgroup} +{\catcode`\^^I=\active + \gdef^^I{\leavevmode\egroup + \dimen0=\wd0 + \divide\dimen0 by\w + \multiply\dimen0 by\w + \advance\dimen0 by\w + \wd0=\dimen0 \box0 \startbox}} +{\obeyspaces\global\let =\ } +{\catcode`\`=\active \gdef`{\relax\lq}} + +\begindoublecolumns + + +\fontdimen16\tensy=2.7pt +\fontdimen17\tensy=2.7pt +\fontdimen3\tenbf=4pt +\fontdimen3\tenrm=4pt + +\parskip0pt + + + +\hyphenation{Theo-re-ti-sche end-insert flow-chart flow-left-con-nect} +\hyphenation{flow-right-con-nect} + +\tracingstats=2 + + +{\vfuzz10pt +\title{\bf Flow charts with \TeX} +\section{Introduction and connection to plain \TeX} +The purpose of this contribution is to describe usage and +limitations of the macro |\flowchart| and a set of secondary +macros, which allow an easy generation of flow charts (of limited +complexity) within \TeX. The macros themselves will be described +in detail elsewhere; they are available from the Aston \TeX\ server +or directly from the author. + +The macros are designed to work in the plain +\TeX\ environment. No additional font tables are required; +instead, the printer driver, which converts the \dvi\ file into the +actual print file, {\it must\/} be able to handle rules correctly. + +The command |\flowchart| generates a |vbox|. Although the typical use of this +|vbox| will be in combination with |\topinsert| and |\endinsert|, +it may be used in any other box operation. The macros are quite +economical: |\flowchart| requires 4393 words of \TeX's memory for +macro definition; most of this memory can be released by the command +|\nomoreflowcharts|. + +The secondary macros mentioned before are intended to be used as +commands inside the argument of |\flowchart|. In most cases an +outside use will cause \TeX\ to interrupt and complain about some +undefined control sequence. If, by chance, all those control +sequences are also defined outside of |\flowchart|, an {\it +outside\/} use of the flow chart commands will cause severe +problemss by changing registers, dimensions, and boxes. By +exploiting the grouping effect of boxes in \TeX, the outside +definitions of all control sequences will be restored upon +completion of |\flowchart|. Some additional macros are used by the +secondary macros; with the exception of |\nomoreflowcharts|, the +names of all of these macros are prefixed with `{\tt +flow}'.\looseness1 + +\section{Start and stop} +The commands |\flowstart| and |\flowend| are available for use +within the argument of |\flowchart| to mark the begin and the end. +In detail, |\flowchart{\flowstart}| yields +$$\flowchart{\flowstart}$$ +and |\flowchart{\flowend}| gives +$$\hphantom.\kern1cm +\hbox to0cm{\hss\flowchart{\flowend}\hss}\kern1cm.$$ + +Basically |\flowchart| arranges the individual entries vertically +and centered without an |\interlineskip| to form a linear stream +of operations; thus |\flowchart{\flowstart\flowend}| produces +$$\hphantom.\kern1cm +\hbox to0cm{\hss\flowchart{\flowstart\flowend}\hss}\kern1cm.$$ + +The related commands |\flowstartcircle| and |\flowendcircle|, +produce circles instead of triangles to mark points of +continuation. Both require one argument, which +is placed in the centre of the circle. Since one token (digit +or letter) is sufficient to distinguish different points of +continuation, the size of the circle is independent of the length +of the argument. Continuing the previous examples, +|\flowchart{\flowstartcircle1}| and +|\flowchart{\flowendcircle{\it The End}}| result in +$$\hphantom.\kern1cm +\hbox to0cm{\hss\flowchart{\flowstartcircle1}\hss} +\hbox to3cm{\hfill and\hfill} +\hbox to0cm{\hss\flowchart{\flowendcircle{\it The End}}\hss}\kern1cm +\hbox{.}$$\looseness-1 + +\section{Basic operations} +Three commands are available to insert symbols for basic +operations: |\flowcompute|, |\flowinput|, and |\flowoutput|. Each +command requires one argument, which must consist of +`horizontal material'. The argument will be placed in a |hbox|, +or, if the width of this |hbox| would exceed |0.4\hsize|, it will +be typeset by \TeX\ as a paragraph with a maximum width of +|0.4\hsize|. This |hbox| (or paragraph) will be surrounded by a +properly shaped symbol and placed as the next item in the flow +chart. To make the text inside the flow chart symbols look nice, it is +processed with stretchable |\leftskip| and |\rightskip| and zero +|\parfillskip|. (If this produces unwanted effects, alternate values +for the named parameters may be specified as part of the +argument.) An example is shown in %\nextabb, +Figure~1, demonstrating that the symbols grow with the amount of text +given.\looseness-1 + +\section{Decisions} +% +Decisions are certainly the most important elements of flow +charts; within the argument of |\flowchart|, decisions are +generated with the command |\flowdecide| which requires +four arguments illustrated by the example +|\flowchart{\flowdecide{A}{B}{C}{D}}|: \hskip0pt plus1em\relax +which produces the display +$$\hphantom.\kern1in\hbox to0cm{% +\hss\flowchart{\flowdecide{A}{B}{C}{D}}\hss}\kern1in.$$ +} +\enddoublecolumns +\eject +\begindoublecolumns + + + +{ +\input flow.fg1 +\medskip\noindent +Figure 1: The flow chart of the solution of the quadratic equation +$ax^2+bx+c=0$ was generated via +\smallskip\begingroup\parindent0pt +\listing{flow.fg1} +\endgroup +\medskip +\hrule} + +\medskip + +\noindent The first two arguments must be non-empty +in order to generate the horizontal strokes: +|\flowchart{\flowdecide{}{B}{C}{D}}| +yields +$$\flowchart{\flowdecide{}{B}{C}{D}}$$ +\medskip\noindent +and |\flowchart{\flowdecide{~}{}{}{D}}| +gives +$$\hphantom.\kern2cm\hbox to0cm{% +\hss\flowchart{\flowdecide{~}{}{}{D}}\hss}\kern2cm.$$ + +\fontdimen4\tentt=3pt +The rhombic shape generated by |\flowdecide| grows with the amount +of text passed as the fourth argument, and the text will be +typeset as a properly shaped paragraph as shown below. The rhombic +shape, however, cannot exceed a maximum horizontal size of +|0.33\hsize|${}+{}$|1truecm|; +the text therefore has to be cautiously limited +to fit into the decision symbol. +\vadjust{$$\centerline{\hsize=2.75\hsize \flowchart{ +\flowdecide{}{}{}{\dots\ +and the text will be typeset as a properly shaped paragraph.}}}$$}% +(This is especially important for small values of |\hsize| +like the one used in this double column style. The above display +was generated with an enlarged |\hsize| value using the +input\hfil\break +|$$\centerline{\hsize=2.75\hsize|\hfil\break +|\flowchart{\flowdecide{}{}{}{...}}}$$|.) + +The decision branches the flow chart in a maximum of three parts, +which will be named `left', `middle', and `right' in the +following. +$$\flowchart{\flowdecide~~~~ +\flowcompute{middle}\flowendmiddlepart +\flowleftpart +\flowcompute{left}\flowendleftpart +\flowrightpart +\flowcompute{right}\flowendrightpart}$$ + +All items following |\flowdecide| will be placed below the +decision symbol to form the middle part until the command +|\flowendmiddlepart| is encountered. After this, the commands +|\flowleftpart|, |\flowendleftpart|, |\flowrightpart|, and +|\flowendrightpart| are available to commence and terminate the +left and the right part after the decision. Left and right part +may be specified in arbitrary sequence, except in case of +connections between these parts (see next section). + +If the arguments to the basic operations in the various parts are +not restricted to such short words as in the display above, the +left or right part will interfere with a middle part, since the +horizontal strokes of the decision symbol will extend |0.25\hsize| +left and right from the current stream of operations. Therefore +the use of either a left and a right part without a middle part is +recommended, or the use of a middle part in combination with +backward or forward jumps in the side parts. + +\enddoublecolumns +\eject +\begindoublecolumns + +Left and right parts may be recombined by using the command +|\flowcombine| after |\flowleftpart| and |\flowrightpart|, as +shown in Figure 2. + + +\bigskip\hrule\medskip +\input flow.fg1 +\medskip +{\catcode`\|=12 +\input flow.fg2 +\medskip\noindent +Figure 2: This flow chart was generated by the input +\smallskip\begingroup\parindent0pt +\listing{flow.fg2} +\endgroup +\bigskip +\hrule} + +\medskip + +Additional |\flowdecide| commands may follow in any of the parts; +in such cases the commands |\flowdecide| and |\flowendmiddlepart|, +as well as |\flowleftpart| and |\flowendleftpart| (and +|\flowrightpart| and |\flowendrightpart|) act as opening and +closing operations (like brackets in mathematical equations). +Figures~3--5 make use of this feature. + + +\section{Jumps} +The jump definitions are the most tricky part of |\flowchart|, +designed to make things as simple as possible for the user. Jumps +are defined with the command |\flowmark| and one of the commands +|\flowleftconnect|, |\flowrightconnect|, and |\flowconnect|. Each +of these commands requires one of the ten digits as its argument. + +The command |\flowmark|$n$ adds a vertical stroke to the last flow +chart entry and marks its end as position~$n$ ($0\le n\le9$). +Positions may be marked in any order, as long as they are defined +before they are used. + +The command |\flowrightconnect|$n$ or +|\flowleftconnect|\kern0pt$n$ is used {\rm after\/} one of the +{\it basic operations\/} to produce an arrow pointing to position +$n$. As indicated by the command name, the arrow will be drawn to +the left or to the right of the current main stream. For example, +the input +|\flowchart{\flowstart \flowmark1 \flowcompute~ +\flowrightconnect1}| +will produce + +\centerline{$\hphantom.$\kern3cm\hbox to0cm{\hss +\flowchart{\flowstart \flowmark1 \flowcompute~ +\flowrightconnect1}\hss}\kern3cm.} +\vskip\belowdisplayskip +The command |\flowconnect| is to be used in the left or the right +part after a {\it decision\/} only. If given, it must be the only +command in this specific part. |\flowconnect|$n$ will also result +in an arrow pointing to position $n$. Although the use of +|\flowconnect| appears to be rather simple, the definition of flow +charts with several decisions and jumps may require some planning. +Figure~3 gives a simple example, Figures~4 and~5 show more complicated +flow charts. + +Figure~5 also shows that repetitive |\flowmark| commands +can be used to elongate vertical strokes. This may help to avoid +overlapping entries in those cases in which a combination of a +middle part and a left or right part after a decision cannot be +avoided.\looseness-1 + +\section{Size adjustment} +In some cases it will be necessary to change the {\it +horizontal\/} size of the charts generated by |\flowchart|, +because the macros work expecting a certain maximum width: +this maximum width is reached by a decision followed by a left and +a right part, both of which contain additional decisions. +Figure~5 presents an example of the assumed maximum width.\looseness-1 + +Flow charts without left or right parts (or with only jumps as +left or right part) will therefore be limited to |0.5\hsize| and +may benefit from an enlarged |\hsize| value (demonstrated in +Figure~3). The opposite is true where the left +(or right) part after a decision which itself is placed in the +left (or right) part after a previous decision contains +operations other than a jump: these will require careful reduction of +|\hsize| and proper |\kern|ing ({\it cf.{}} +Figure~5).\looseness-1 + + +{\vfill\hrule\medskip +\input flow.fg1 +} +\goodbreak +{\input flow.fg3 +\noindent +Figure~3: This flow chart was generated by the following input, in +which the matching commands |\flowdecide| and |\flowendmiddlepart| +are connected by percent signs. +\smallskip +\parindent0pt +\listing{flow.fg3} +\medskip\hrule} + +\eject + + + +{\input flow.fg4 +\goodbreak +\parindent0pt\frenchspacing +Figure~4: This flow chart was generated by the input +\smallskip\listing{flow.fg4} +\bigskip\hrule}% + +\bigskip +Such changes of |\hsize| have to be made outside of |\flowchart|, +since a number of internal dimensions are derived from |\hsize| +before the argument of |\flowchart| is processed. The best way +certainly is to make use of \TeX's rules and limit the range of +the altered |\hsize| value to a surrounding group. +The following plain \TeX\ commands, which are of interest in +combination with |\flowchart|, do this automatically: +|\centerline|, |\topinsert|\dots\hskip0pt|\endinsert|, +|\midinsert|\dots\hskip0pt|\endinsert|, +and |\pageinsert|\dots\hskip0pt|\endinsert|. + +The {\it vertical\/} dimension of the |\flowchart| output is +adjusted automatically using the following procedure. At first, +|5truemm| are used for two distances: the white space between the +text in the basic operation boxes and the surrounding box symbols, +and the distance between individual flow chart entries. If the +height of the |vbox| generated this way exceeds |\vsize|, the +chart is re-generated using distances of |4truemm| and eventually +once more with |3truemm|. +(Figure~4 exhibits an example of such a reduced size: the initial +interentry distance of |5truemm| gave a box height of |676.3pt|; +reduction to |4truemm| diminished the box height to |577.7pt|, +which is the size actually used in Figure~4.) + +\eject + + + +{\input flow.fg5 +\bigskip +\noindent +Figure~5: This flow chart shows a sequence of decisions used in a +special variant of quantum chemical MO calculations. If processed +normally, this chart would extend too far to the left. The input used +to generate the chart, which is reproduced below, takes care of this by +a |\kern|ing, which compensates the left half of the `cleanup'-box +(with a maximum width of |0.2\hsize|), and the subsequent definition of +a new |\hsize| value. This new value was calculated from the width of +the `skip'-box (which, including both strokes, is |0.5\hsize|), +the width of the left half of the `last atom'-box (which, +including the stroke, is |0.25\hsize|), the width of the left and +the right half of the `cleanup'- and the `restore'-box (which +both have a maximum value of |0.2\hsize|). This gives a maximum +total width of |1.15\hsize|, hence |\hsize| was scaled by +$1 / 1.15 = 0.86956\ldots\,.$} +\goodbreak + + +{\parindent0pt\frenchspacing +\listing{flow.fg5} +\medskip\hrule} + +\section{Acknowledgement} +The author is grateful to the students Michaela Flock and Ulrike +Seebacher for testing the macro package in the course of writing +up their diploma works. +\author{Michael Ramek} + +\enddoublecolumns +\endgroup +\endinput + + +\bigskip + +\smallskip +Institut f\"ur Physikalische und Theoretische Chemie, +Technische Universit\"at Graz, \hbox{A--8010} Graz, Austria} + + +\endinput +\def\kap#1 {\advance\kapno1\goodbreak% +\vskip 3\bigskipamount\vbox{\bf \setbox0\hbox{\the\kapno. }% +\parindent\wd0\item{\the\kapno.}#1\bigskip}\nobreak\noindent} + +\newcount\abbno\abbno0 +\def\abb{\global\advance\abbno1\noindent Fig.~\the\abbno\thinspace: } +\def\thisabb{Fig.~\the\abbno} +\def\nextabb{{\advance\abbno1Fig.~\the\abbno}} +\def\nextnextabb{{\advance\abbno2Fig.~\the\abbno}} +\def\nextnextnextabb{{\advance\abbno3Fig.~\the\abbno}} +\def\nextthreeabb{{\advance\abbno1Figs.~\the\abbno% + \advance\abbno2--\the\abbno}} +\def\nexttwoabb{{\advance\abbno1Figs.~\the\abbno\advance\abbno1\ % + and \the\abbno}} diff --git a/info/digests/texline/no14/fonts.tex b/info/digests/texline/no14/fonts.tex new file mode 100644 index 0000000000..1f31bb9740 --- /dev/null +++ b/info/digests/texline/no14/fonts.tex @@ -0,0 +1,301 @@ +\title{BCS ep group meetings} +The next meeting of the BCS ep group +is at the School of Oriental and African Studies (SOAS) in +London on Wednesday 1st~April and will be +concerned with `Text Management and +Indexing', or `how to help the reader find what +s/he wants'. Topics to be covered will include: +`The way in' to documents; aspects of indexing +and indexing software; databases, both text +and relational; various case studies. + +The next two planned meetings will be on +Thursday 4th June, again at SOAS, when the +topic will be `Input and Output Devices', and +Tuesday 2nd September at Nottingham. The +latter meeting is at the invitation of Professor +David Brailsford and his Electronic +Publishing Research Group and will centre on +the work they are doing. This is mainly in the +area of document structure. It is planned that, +as well as speakers from Nottingham, there +will be other speakers on this topic. + +For more details, contact + +{\parindent10pt\obeylines +David Penfold +BCS ep Office +30 Edgerton Road +Huddersfield HD3 3AD +tel: 0484 519462} + + +\bar +\title{Typefaces Meeting} +The BCS Electronic Publishing group held a +meeting on 15th October 1991 at +the St Bride Foundation Institute (just +off Fleet Street), a suitable +venue in view of its historical relevance to +printing (unfortunately, not so suitable +acoustically, with much of the audience +finding it difficult to hear all the speakers, +having to deal with poor sound dispersion, +echoes, and street sounds!). + +Alison Black, who is freelance consultant on +information design, and Paul Stiff of Reading +University (hence, Stiff\&Black) began, with a talk entitled `Cut the +Hype about Type'. They looked at a number +of `received wisdoms', especially those foisted +on us by manufacturers, and compared these +with the customers' requirements. For +example, there is the `democratic fallacy' -- +everyone will be able to have typefaces to suit +their personal needs. But the problem is +not enough fonts, but not enough users who +know how to use those that are already +available. The manufacturers are not so much +responding to demand but creating it, to +produce a world of type-fanciers and type-% +addicts who will need more and more fonts to +satisfy their cravings! + +James Mosley (St Bride Printing Library) +took us on what he called 'a brief canter +through history', tracing the development of +the Bodoni typeface and the historical +influences that have a bearing on modern text +design, including the thick\slash thin stresses that +arose from using reeds, quills and brushes, +and the pure geometry of styles on wax. +Bodoni is characterised by very pronounced +thicks and thins, which required exceptional +press work to reproduce well in letterpress; +offset litho helped to refine them even further. + +Mary Dyson (Reading University) updated us +on the {\sc didot} (Digitising and Designing for +Type) project. This multinational European +project has been going for just over a year and +has another two to run. Its main activity for +the next two years is to design, implement and +evaluate a curriculum for digital typography. +It will also organise +seminars, workshops and summer schools for +typographers\slash graphic artists and computer +specialists, trying to bring these two fields +together. The computer specialists tend to see +`digital typography' in terms of type design, +font acquisition, font manipulation and +rendering, whereas the typographers tend to +be interested in the broader context of letter +spacing, word spacing, leading, line length, +type area, page margins. Bringing them +together allows useful exploration of such +issues as image processing, printing and +display technology, character recognition, +curve-fitting techniques, cultural and artistic +tradition, visual perception, {\sc cad}, and +knowledge-based systems. To date, {\sc didot} +seminars have been more successful in +attracting designers, but later meetings have +been better balanced. + +Probably the most controversial presenation +was given by Lyn Woosey of Adobe. She +gamely introduced us to Multiple Mastering +(MM) which is an extension to Adobe's Type~1 +font format. Instead of using hints and +encryptions to cope with the problems of +scaling one master outline font, MM gives you +different masters for different sizes. This +doesn't mean you'll have to buy a master for +every conceivable point size because MM +allows interpolation between master designs. +That is, if you buy a 6\,pt master and a 12\,pt +master but you want 8\,pt, MM will be able to +produce this by `intelligent interpolation'. But +interpolation doesn't stop there -- you can +interpolate between roman and italic, +condensed and expanded, even serif and san-% +serif if the font is available in both varieties -- +you name a set of typographic variables and +you can interpolate to your heart's content, at +least in principle. Now, it seems only fair to +point out that this horrified the audience +rather than gratified them. Remembering +Alison Black and Paul Stiff's strictures earlier +in the day, we had visions of font anarchy. +However, it looks likely that Adobe will not +give its customers a completely free hand. +Some practical examples of the uses of MM +were given, for example, fitting type to measure, +equalising columns of text translated into +various languages, simulating character +widths when there is a need to print from a +printer not loaded vith the right typeface. +However, the examples tended to be seen as +either solvable by other means, of limited +application, or trivial. The first multiple +masters should be available early 1992. + +Following lunch, Peter Rosenfeld spoke about +Font Technology and Intelligent Font Scaling. +Peter works for URW, a German company +who produce type tools such as Ikarus +(designing typefaces), Linus (autotracing) and +Nimbus (intelligent font scaling). They +digitise about 200 new typefaces a year. Most +of this is hand-digitised (using a digitising +tablet) rather than scanned, and most designs +are created manually rather than designed on +screen. (Screens are not accurate enough, and +a design takes longer, especially if corrections +are required.) + +The day ended with Glenn Jones giving a +fascinating account of the effect of desktop +publishing on his +company (GBM), an advertising typesetting +house in Manchester. This used to be a +Berthold house, and resisted moving to +Macintoshes initially because of the lower +quality. However, Macintoshes allowed access +to a much wider type library and the ability to +create one's own type, which is very important +in this market. Berthold were dragging their +feet, so the plunge to Macs was made. Two +years ago, there were ten advertising +typesetters in Manchester, all Berthold; now +there are two, both using Macs. Their work +has diversified, so that in addition to +typesetting, they now also offer bureau work +and font digitisation. They are very pleased to +find that, as the requirement for trade +typesetting has declined (with the recession +hitting advertising badly, and many companies +now producing their own adverts), they have +found a future that builds upon their previous +experience. + +The formal part of the meeting ended with a +lively question-and-answer session, following +which all attendees were kindly invited by +James Mosley to take a look around the +Printing Library -- a wonderful opportuniy to +see some mediaeval digitisation, interpolated +on the fly!\author{Cliff Morgan} + +\bar\title{Update on Didot} +With the {\sc didot} (Digitising and Designing of +Type) project now in its second year, it must +be time to look at some of the past +activities. + +We should remind ourselves of the +aims of this three year, {\sc comett ii} project. +These are to: +\bitem design, implement and evaluate a +curriculum for digital typography, +\bitem organise seminars\slash workshops for +typographers\slash graphic artists and +computer specialists; +\bitem publish and distribute information. + +The main activities to date have been: + 1990,18th--19th September, Introduction to +\PS, held in Lausanne; 23 October, +Presentation of {\sc didot} project, also in +Lausanne; 4 December, Fonts, in Paris. +1991: 28th February--1st March, Type design: +radition and innovation, held in Reading; +23rd--28th September, First European Summer +School in Digital Typography, in Lausanne, +yet again. + +In more detail, the 1991 activities started off +with a seminar\slash workshop at Reading University. +We worked together with our partners at +Basel, Sch\"ule f\"ur Gestaltung, and with the UK +Associate of URW to put on this +seminar\slash workshop. The main purpose of this +workshop was to explore ways of introducing +people to some of the issues surrounding +letterform design. + +Workshop activities ranged from exercises in +producing letterforms by making marks on +paper, to demonstrations of type production +methods. The traditional methods of punch +cutting, matrix making and type casting were +contrasted with computer-based methods, +IkarusM. + +Seminars dealt with the concept of a +workshop, in conjunction with workshop +activities. There were also lectures which gave +us an insight into the major influences on the +development of the letterform, and a view of +what digital techniques have done to the +relationship between designer, production +method and final result. + +We were hoping to meet designers, educators, +and computer scientists, but the 30 +participants were mostly from backgrounds of +type design or production, and education. +Despite this bias, the meeting did bring +together an unlikely mix of people, and an +unusual juxtaposition of old and new +technologies. The problem with mixing +people in this way is that we don't know how +to talk to each other. The language of the +seminars was not the normal language of +computer scientists. But, we hope that {\sc didot} +and more of these meetings will break down +these barriers. + +The next activity, the Lausanne Summer School was a larger +scale affair, lasting a week, with about fifty +participants. Activities spanned technical +talks, talks combined with workshops, +computer-aided type design workshops, and +lectures on relaed issues. If we chose to be +technical in the mornings, we learned about +font metrics, rasterisation grid fitting +techniques, splines, autohinting, font +descriptions, autotracing, and type forms for +grey scale. If we preferred getting our hands +on mice and keyboards, we were given +opportunities with workshops on +Fontographer, {\sc Typo}, Ikarus, the design of +grey level fonts, or grappling with complexity +in font design. + +Because of the choice provided in the +programme, a sense of frustration did develop +amongst those people who wished to do all +things. But a very positive aspect of the week +was the flexible organisation. In response to +demand, we were offered mini workshops to +enable us to sample virtually all the systems. +The only difficulty remaining was to decide +whether to wear a technical hat or a design +hat. Don't we wear the one that we know fits +us well, so that we don't have to struggle in the +wind? Yes, there we were in our niches, +confirming the need for the {\sc didot} project. + + +If you would like to be added to the database +of those interested in the project, you can +contact Jacques Andr\'e directly (project +coordinator) or I will pass on your details: +Jacques Andr\'e (email: {\tt jandre@irisa.fr}). +\author{Mary Dyson} + + + +\endinput diff --git a/info/digests/texline/no14/frankie.tex b/info/digests/texline/no14/frankie.tex new file mode 100644 index 0000000000..8f192a17d0 --- /dev/null +++ b/info/digests/texline/no14/frankie.tex @@ -0,0 +1,417 @@ +\font\sfviii cmss10 at8pt +\def\LaTeXsf{{\sf L\kern-.36em\raise.35ex\hbox{\sfviii A}\kern-.15em + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} + + +\title{\LaTeXbf2.09$\rightarrow$\LaTeXbf3} +Asked to speak about \LaTeX2.09$\rightarrow$\LaTeX3 I will +try to give a you a picture of the history, the current +state, and the future of the \LaTeX3 project. + +\section{Historical Remarks} +Whenever the future is somewhat unpredictable it +seems wise to take a look into history -- to find out +what has already been achieved and what remains to be +tackled. + +From the history of the \LaTeX3 project we +will first take a look at the growing bulk of syntax +descriptions and (partial) implementations that are +the results of three years' work. + +\setbox0\vbox{\sf +\halign{\vrule~#~\hfil&\strut#\hfil~\vrule\cr +\noalign{\hrule} +\multispan2{\vrule\strut\hfil Milestones:\hfil\vrule }\cr +\multispan2{\vrule\strut\hfil Syntax and implementation\hfil\vrule}\cr +\noalign{\hrule} +1988&Some bug fixes send to Dr Lamport\cr +&Four page sketch of NFSS\cr +&\hfill(New Font Selection Scheme)\cr +1989&First implementation of NFSS\cr +1990&New tabular implementation by D Duchier\cr +&First attribute prototype (thrown +away)\cr +&First kernel prototype\cr +&First recovery/help prototype\cr +1991&Second kernel prototype\cr +&Sketches for style designer interface\cr +&Second description of the attribute +concept\cr +&Extended description of the help +facility\cr +&Syntax for extended NFSS\cr +&Third kernel prototype\cr +&Release of \LaTeXsf2.09 international with\cr +&\hfill NFSS support\cr +\noalign{\hrule}}} + +\smallskip +\hbox to\hsize{\hfil\copy0\hfil} +\smallskip +The \LaTeX3 project was initiated at the Stanford +annual meeting in 1989. But the first vague plans were +already formulated in 1988 when Rainer Sch\"opf and +I, after sending several pages of bug fixes for \LaTeX2.09 +to Leslie Lamport, received a positive answer. + +Given the original goals for a reimplementation +described in the Stanford paper, nearly everything +seems to have been achieved. +\bitem NFSS provides a far more general font +selection. The extended syntax +also provides for font scaling (a prototype +implementation has been completed). +\bitem The mathematical capabilities +of \LaTeX\ have reached the standard +of \AmSTeX\ with {\tt amstex.sty}. +\bitem Tabular processing has reached very high +quality with the new tabular implementation by +Denys Duchier (superceding {\tt array.sty}) +and valuable suggestions by several others. +\bitem The new help/recovery concepts give a safe +and easy-to-learn environment +for novice users. +\bitem The partially finished concept for +specifying attributes to environments and +functions, provides a more flexible input language. This +also allows easy conversion from SGML to \LaTeX3 DTDs. + +How did this happen? + +\setbox0\vbox{\sf\halign{\vrule~#~\hfil&#~\strut\hfil\vrule\cr +\noalign{\hrule} +\multispan2{\vrule\strut\hfil Milestones:\hfil\vrule}\cr +\multispan2{\vrule\strut\hfil Meetings, Workshops and +Correspondence\hfil\vrule}\cr +\noalign{\hrule} +1988&Non-flame answer from Dr. Lamport\cr +1989&Talk in Stanford\cr +&Meetings with Leslie in Stanford\cr +&Talks in Karlsruhe\cr +1990&Mega-bytes of email correspondence\cr +&Working week in Mainz with Leslie\cr +&Talk in Cork\cr +1991&More mega-bytes of email correspondence\cr +&Workshop in London\cr +&Meeting with Leslie and Chris Rowley\cr +&\hfill in London\cr +&Workshop in Dedham\cr +&Working week in Providence with\cr +&\hfill Chris and Michael Downes\cr +&Working week in Mainz with Chris\cr +\noalign{\hrule}}} + +\smallskip +\hbox to\hsize{\hfil\copy0\hfil} +\smallskip +All this work has been carried out in the free time +of several individuals and involves, as you can see, +some enthusiasm to keep the project alive. So far, +more than thirty people have contributed in one +way or the other. + +One of the major problems is to bring people +together to discuss the open questions and find new +solutions. This must also involve people outside the +project since we need the opinion and experience +of typesetters, publishers, etc.\ to eliminate the flaws +in the system and find new and better +solutions.\looseness-1 + +In this regard both the London and the Dedham +workshops have been a great success but further +workshops of this kind are definitely necessary to +provide \LaTeX3 with a suitable designer interface. + +So why is it that we feel that this project is still +at its beginning? Because we have learned that our +original goals have not yet touched the real problems as +we now see them. + +\section{Change of focus} +We now feel that one does not gain much by providing +further specialized style files to solve this +or that special problem. Instead, we think that +the major effort in the future has to go into the +design of a suitable style interface to allow easy +implementation of various layouts. (Easy, of course, +is relative: easy compared to the complexity of the +task.) + +This change of focus implies: +\bitem The development of a new internal language +that is more suited to +express visual components of the layout process. +\bitem The development of high-level generic functions +that allow expression of most +commonly used layout components in an easy way. +\bitem The development of a model for specifying +and modifying parameters that influence +the layout. + +Since the syntax for this internal language is +still changing on a daily basis and generic functions +mostly depend on it, I like to concentrate here on +the model for parameter setting. + +\medskip +{\offinterlineskip +\halign to\hsize{\sl#\hfil\tabskip0pt plus1fil + &\tabskip0pt\vrule\quad\hfil\it#% + &\quad\sf#\enspace\hfil\strut\vrule\cr +&\multispan2{\hrulefill}\cr +&i&document context\cr +&ii§ion context\cr +Context&iii&heading context\cr +&iv&title context\cr +&v&number context\cr +&\multispan2{\hrulefill}\cr +}} +\smallskip + +\noindent The `context' concept encapsulates our main idea for +maintaining parameters in the \LaTeX3 system. + +On every point in the document we are in +some context that is given by the the nesting and +sequencing of entities processed so far. + +The major idea of the new system is to allow +the specification of parameters within such contexts +in a very general way. For example, it is possible +to redefine the behavior of lists within footnotes +by specifying the values of list-parameters in the +context of `footnotes' differently from those applied +in the context of, say `floats'. + +Parameter is meant in a very general way, +for example, the code that some entity runs is internally a +parameter, so that via this concept different generic +functions can be run in different contexts. +\smallskip +\setbox0\vbox{\sf\hsize0.9\hsize +\hbox to\hsize{\hfil The concept of a context\strut\hfil} +\hbox to\hsize{\hfil Some observations\hfil} +\bitem The nesting of entities forms the major component +for describing layout via contexts. +\bitem The specification of layout by a sequence +of contexts is important. +\bitem The context of some entity in a document is +not simply given by nesting and sequencing +of surrounding entities. +\bitem The context of some entity has a logical and +a visual component. The visual component +depends on the formatting of other entities.\strut} + +\smallskip +\hbox to\hsize{\sf \hfil\vbox{\halign{\vrule\enspace#\enspace\vrule\cr +\noalign{\hrule} +\copy0\cr +\noalign{\hrule}}}\hfil} +\smallskip + +As a further example, the layout attributes for a +table entity in a float may be different than for +tables in the main text. + +Sequencing is, for example, important in +heading$\rightarrow$heading situations where intermediate +spacing and penalties change if headings follow +directly after each other, in list$\rightarrow$text/par situations +and many other places. + +Take, for example, the situation of some +footnote or float that appears in a list and itself +contains a list. Because of an improper handling +of contexts in the current \LaTeX\ the inner list is +typeset as a second level list. In other words an +entity must be able to (partially) forget about +its context, or more generally must be able to +manipulate its context. + +The fourth point is of a theoretical nature. All of +the currently available formatters format document +entities in a predetermined visual context, that is, they +assume that the visual context can be determined +by the logical nesting and sequencing of entities. To +a certain extent \TeX\ is an exception as it applies +dynamic programming to the process of paragraph +formatting which involve recomputation of contexts +for ligatures etc. +As an example for the wrong visual context +consider a hyphen at the end of a page, that is +avoided by \TeX\ by moving the line instead of +recomputing the paragraph. + +\setbox0\vbox{\sf +\hsize0.9\hsize +\hbox to \hsize{\hfil The concept of a context\strut\hfil} +\hbox to \hsize{\hfil Some problems\hfil} +\bitem The user input is not at normalized +document -- it may contain hidden entities +inside of user-defined shorthands that can +not be prescanned easily. +\bitem The specification of contexts by sequencing +is important but partially restricted by the +underlying \TeX\ engine. +\bitem Taking the visual component of contexts +into account requires the use of a multi-pass +system.\strut} + +\smallskip +\hbox to\hsize{\hfil\vbox{\halign{\vrule\enspace#\enspace\vrule\cr +\noalign{\hrule} +\copy0\cr +\noalign{\hrule}}}\hfil} +\smallskip + +The problem here is that we do not deal with +normalized documents (where every entity is fully +tagged) and therefore can not scan for further begin +or end tags before we start typesetting. This means +that certain decisions have to be taken without +knowing what follows. The only solutions to this +problem are +\bitem dissallow the use of user defined shorthands + +\bitem the use of a two-pass system that normalize +the document in the first pass + +\bitem the use of a multi-pass system that use +sequencing information from the last run. + +None of the solutions seem to be feasible for a +system that uses \TeX\ as the input language but +should be explored further. + +Deferring the typesetting process is generally +possible in \TeX's vertical mode where we can wait +for the next |\everypar| to regain control. + +But \TeX\ has no built in mechanism to detect +whether plain character material after a given +point is about to be contributed to some horizontal +list. Only after material has been contributed to +the horizontal list can one deduce this fact by +`dirty tricks' with special kerns. But this can be +used only for interrupting a context sequence -- +the contributed material can not be manipulated +further. + +This will draw the boundary (beside processing +time) between the ideal model and the real world. +So let us now turn to the question of how this +context-model is placed within the \LaTeX\ system. + +\section{The Structure of the \LaTeXsl3 System} +There are many interwoven structures of the +\LaTeX3 system that are worth talking about. In +the following I will show how the results already achieved +and the ideas about contexts fit together in +an extensible modular system. + +The \LaTeX3 system will consist of a kernel +system that provides the basic data structures such +as lists, stacks, etc.\ to program higher modules. It +will also contain arithmetic functions for integers +and dimensions, for example, it will be possible to express +relationships between individual parameters by +specifying assignments that contain expressions. +\smallskip + +{\hrule +\sf\centerline{\strut The Structure of the \LaTeXsf3 System} +\centerline{System} +\smallskip +{\font\sfbig cmss17\sf +\input l_pic +\input l_frame +\unitlength4mm +\picture(16,12)(-0.5,0) + +\put(0,9){\framebox(4,3){\shortstack[l]{Help\\system}}} +\put(6,9){\framebox(4,3){\shortstack[l]{Generic-\\functions}}} +\put(12,9){\framebox(4,3){\shortstack[l]{Style-\\designer\\language}}} + +\put(2,4){\framebox(6,4){\shortstack[l]{\sfbig Kernel\\\sfbig system}}} +\put(10,4.5){\framebox(6,3){\shortstack[l]{Parameter\\database}}} + +\put(0,0){\dashbox(4,3){}} +\put(6,0){\dashbox(4,3){}} +\put(12,0){\dashbox(4,3){}} + +\endpicture} +\smallskip +\hrule} +\smallskip +On top of the kernel are built manipulation functions for the +parameter database and generic functions. +They form the platform for the style designer +language. + +One important component of the system will +be an interactive help system that allows extensive +help texts as well as the possibility to define system +reaction depending on user action. Help messages +and such additional error-correcting code will be +held in external files that are read in when an +error is detected by the system. In this way an +elaborate help and error correcting mechanism +will be available while keeping the \LaTeX3 kernel +compact. + +We distinguish between document styles that +are written in the style designer language (and +will probably contain nearly no \TeX\ code in the +traditional sense) and additional modules that +provide entities for specialized documents. This will +include, for example, higher math and we hope that +we can provide a programming interface with the new kernel, +one that makes the development of further +modules a possible task. + +Let me close with this quotation from some +unknown novice of \LaTeX.\smallskip + +\setbox0\vbox{\hsize0.9\hsize\sf\narrower\noindent +\strut Dear Sir, + +\noindent +I have successfully installed \LaTeXsf\ from the +distribution -- the file {\tt sample} has just been printed. +However, somewhere in the {\tt readme} files +a similar program called \TeX\ is mentioned. +Could you please explain to me how to install +this program?\dots\smallskip} + +\hbox to\hsize{\sf \hfil\vbox{\halign{\vrule\enspace#\enspace\vrule\cr +\noalign{\hrule} +\copy0\cr +\noalign{\hrule}}}\hfil} + +\noindent +At first this might sound funny, but this extreme is +not so far from reality. + +\bitem Today, there are not many users who have a +deep understanding of the underlying +system structure. + +\bitem Today, the majority of users use \LaTeX\ +only. They usually have no knowledge of +the \TeX book. This class of users can be +nicely classified as `has heard of {\sl macros}, +but has never seen one'. + +\TeX\ and \LaTeX\ as its major front-end has +to compete with the so called Desktop Publishing +systems. To keep them alive we have to bridge +the gap between the `implementor\slash wizard' type +of user of the '80s and the new type who uses +the system just as one tool out of many, without +understanding its internals. + +With the \LaTeX3 project we hope to achieve +this goal -- as far as the front end is concerned. +\author{Frank Mittelbach} diff --git a/info/digests/texline/no14/good-guys.tex b/info/digests/texline/no14/good-guys.tex new file mode 100644 index 0000000000..25c081539b --- /dev/null +++ b/info/digests/texline/no14/good-guys.tex @@ -0,0 +1,90 @@ +\title{Good Guys} +{\obeylines\parindent0pt\parskip0pt +\vbox{Peter Abbott +Computing Services +University of Aston, Aston Triangle +Birmingham, B4 7ET, UK +{\tt pabbott@uk.ac.aston}} +\medskip\goodbreak +\vbox{Alison Black +7 The Ridgeway +Caversham +Reading RG4 8NX, UK} +\medskip\goodbreak +\vbox{Peter Cameron +School of Mathematical Sciences +Queen Mary \& Westfield College +Mile End Road +London E1 4NS, UK +{\tt pjc@uk.ac.qmw.maths}} +\medskip\goodbreak +\vbox{Mary Dyson +Department of Typography \& +\quad Graphic Communication +University of Reading +PO Box 239 +Reading RG6 2AU, UK +{\tt ltsdyson@uk.ac.reading.susssys1}} +\medskip\goodbreak +\vbox{Victor Eijkhout +Dept of Computer Science +107 Ayers Hall +University of Tennessee at Knoxville +Knoxville, TN 37996-1301, USA +{\tt eijkhout@cs.utk.edu}} +\medskip\goodbreak +\vbox{Doug Henderson +Blue Sky Research +534 SW Third Avenue +Portland, Oregon 97204, USA +{\tt dlatex@earn.ucbcmsa}} +\medskip\goodbreak +\vbox{Mimi Jett +ETP Services Co +2906 NE Glisan +Portland, Oregon 97232, USA +{\tt mimi@etp.com}} +\medskip\goodbreak +\vbox{Frank Mittelbach +EDS +Eisenstra\ss e 56 N15 +D6090 R\"usselheim, Germany +{\tt mittelbach@de.uni-mainz.zdv.mzdmza}} +\medskip\goodbreak +\vbox{Cliff Morgan +John Wiley \& Sons +Baffins Lane +Chichester +West Sussex PO19 1UD, UK +0243 779777} +\medskip\goodbreak +\vbox{Michael Ramek +Institut f\"ur Physikalische +\quad und Theoretische Chemie +Technische Universit\"at Graz +\hbox{A--8010} Graz, Austria +{\tt ramek@at.ada.tu-graz.kop}} +\medskip\goodbreak +\vbox{David F Rogers +Department of the Navy +United States Military Academy +Annapolis +Maryland 21402-5000, USA +{\tt dfr@usna.navy.mil}} +\medskip\goodbreak +\vbox{Joachim Schrod +Detig$\,\cdot\,$Schrod \TeX{}sys +Kranichweg 1 +D-6074 R\"odermark, Germany +{\tt xitijsch@ddathd21.bitnet}} +\medskip\goodbreak +\vbox{Philip Taylor +Computer Centre, RHBNC +Egham Hill, Egham +Surrey TW20 0EX, UK +{\tt p.taylor@uk.ac.rhbnc.vax}\strut} +} + + + +\endinput diff --git a/info/digests/texline/no14/goodguys.tex b/info/digests/texline/no14/goodguys.tex new file mode 100644 index 0000000000..25c081539b --- /dev/null +++ b/info/digests/texline/no14/goodguys.tex @@ -0,0 +1,90 @@ +\title{Good Guys} +{\obeylines\parindent0pt\parskip0pt +\vbox{Peter Abbott +Computing Services +University of Aston, Aston Triangle +Birmingham, B4 7ET, UK +{\tt pabbott@uk.ac.aston}} +\medskip\goodbreak +\vbox{Alison Black +7 The Ridgeway +Caversham +Reading RG4 8NX, UK} +\medskip\goodbreak +\vbox{Peter Cameron +School of Mathematical Sciences +Queen Mary \& Westfield College +Mile End Road +London E1 4NS, UK +{\tt pjc@uk.ac.qmw.maths}} +\medskip\goodbreak +\vbox{Mary Dyson +Department of Typography \& +\quad Graphic Communication +University of Reading +PO Box 239 +Reading RG6 2AU, UK +{\tt ltsdyson@uk.ac.reading.susssys1}} +\medskip\goodbreak +\vbox{Victor Eijkhout +Dept of Computer Science +107 Ayers Hall +University of Tennessee at Knoxville +Knoxville, TN 37996-1301, USA +{\tt eijkhout@cs.utk.edu}} +\medskip\goodbreak +\vbox{Doug Henderson +Blue Sky Research +534 SW Third Avenue +Portland, Oregon 97204, USA +{\tt dlatex@earn.ucbcmsa}} +\medskip\goodbreak +\vbox{Mimi Jett +ETP Services Co +2906 NE Glisan +Portland, Oregon 97232, USA +{\tt mimi@etp.com}} +\medskip\goodbreak +\vbox{Frank Mittelbach +EDS +Eisenstra\ss e 56 N15 +D6090 R\"usselheim, Germany +{\tt mittelbach@de.uni-mainz.zdv.mzdmza}} +\medskip\goodbreak +\vbox{Cliff Morgan +John Wiley \& Sons +Baffins Lane +Chichester +West Sussex PO19 1UD, UK +0243 779777} +\medskip\goodbreak +\vbox{Michael Ramek +Institut f\"ur Physikalische +\quad und Theoretische Chemie +Technische Universit\"at Graz +\hbox{A--8010} Graz, Austria +{\tt ramek@at.ada.tu-graz.kop}} +\medskip\goodbreak +\vbox{David F Rogers +Department of the Navy +United States Military Academy +Annapolis +Maryland 21402-5000, USA +{\tt dfr@usna.navy.mil}} +\medskip\goodbreak +\vbox{Joachim Schrod +Detig$\,\cdot\,$Schrod \TeX{}sys +Kranichweg 1 +D-6074 R\"odermark, Germany +{\tt xitijsch@ddathd21.bitnet}} +\medskip\goodbreak +\vbox{Philip Taylor +Computer Centre, RHBNC +Egham Hill, Egham +Surrey TW20 0EX, UK +{\tt p.taylor@uk.ac.rhbnc.vax}\strut} +} + + + +\endinput diff --git a/info/digests/texline/no14/gut.tex b/info/digests/texline/no14/gut.tex new file mode 100644 index 0000000000..c7b9d62dd6 --- /dev/null +++ b/info/digests/texline/no14/gut.tex @@ -0,0 +1,276 @@ +\def\gut#1:#2:#3*#4.{\smallskip\noindent {\it #1\/}: #2, pp.#4: +#3\smallskip} +\catcode`\<=\active +\def<{% +\ifmmode\ll\else\leavevmode\raise1pt\hbox{$\scriptscriptstyle\ll$}\fi} +\catcode`\>=\active +\def>{% +\ifmmode\gg\else\leavevmode\raise1pt\hbox{$\scriptscriptstyle\gg$}\fi} + +\centerline{\bf Cahiers GUTenberg} +\centerline{\bf Summaries from Number 9, July 1991:} +\gut Polices, \TeX\ et Cie: Alain Cousquer \& \'Eric +Picheral: The purpose of this paper is to introduce the +principles of the handling of the fonts in \TeX\ together +with their usage, and the pattern of the fonts which is +more straightforward than in \PS. We also explain the +complex mechanisms of selection which do not usually +appear, and finally we present virtual fonts as well as +various files used with \TeX.*3--31. + +\gut Lucida, une fonte compl\`ete pour \LaTeXsl, et son +installation: Philippe Louarn: This paper presents an +experimentation of using the font Lucida and its math +extension inside \LaTeX\ documents. We explain our +choice, and we show benefits, and also disadvanages, of +this choice. The last part of the paper is a brief +summary ofthe installation procedure.*32--40. + +\gut The Economist polit ses polices: Olivier Nicole +(translator): In its issue dated May 25th, The Economist +devoted a full spread to the reasons behind its change of +type face. The British economic weekly magazine's effort +at giving full information on a `face lift' that may go +unnoticed by most readers illustrates a trend which is +about to revolutionize the publishing trades.*41--48. + +\gut Grif et l'\'edition de documents structur\'es: +nouveaux d\'eveloppements: Vincent Quint, Ir\`ene +Vatton, Jacques Andr\'e \& H\'el\`ene Richy: Grif is an +interactive system for the production and viewing of +structured documents. It allows manipulation of complex +documents containing mathematical formulas, tables, +schemas, etc., placing the stress on the logical +organisation of the documents. This article presents the +pricipal characteristics of the system in its present +state and highlights the line of its future +development.*49--65. + +\gut Typographie du jeu d'\'echecs: Henry Thomas: +Presents different solutions for typesetting chess, in +\LaTeX, \PS, and Macintosh specific applications.*66--73. + +\gut Star-\TeX: Andr\'e Heck: \TeX\ and \LaTeX\ have been +used from the beginning and are still extensively used by +astronomers and space scientists around the world for +their mail, for writing papers, for putting together +newsletters, proceedings, reports, books and so on. Some +publishers have also set up their own sets of macros for +journals and\slash or book series. It seems however that +there is a tendency to pull out of \TeX\ and go towards +more user friendly systems.*75--78. + +\gut Quand \TeX\ rencontre Mozart\dots: Yannis +Haralambous: A report of the \Dante\ meeting held in +Vienna on 20th--22nd February 1991.*79--81. + +\gut L'association\dots\ fait la force: Bernard Gaulle: +The recent events in the {\La}\TeX\ world like the work +on fonts with 256 characters or the first book published +by \GUTenberg\ or lastly the preparation of the 6th +European \TeX\ Conference, demonstrate the usefuleness +and the benefit of the association of people working in a +team. This article ends with a call for +volunteers.*83--85. + +\medskip +\centerline{\bf Summaries from Number 10--11,} +\centerline{\bf September 1991:} \smallskip +\gut Russian \TeX: Basil Malyshev, Alaxander Samarin \& +Dimitri Vulis: This article presents the \TeX\ extension +for processing the russian texts. Russian \TeX\ is based +on version 3.0 and virtual fonts. The different coding +schemes for russian characters are allowed.*1--6. + + +\gut \TeX niques in Siberia: Theo Jurriens: This article +summarizes the problems of giving a \LaTeX\ course in +Siberia. It concludes with an overview concerning the +future of \TeX\ inside the USSR.*7--13. + + +\gut \TeX\ and Africa: J\"org Knappen: At the present +time, \TeX\ is not usable for typesetting many african +languages. They use special letters which do not occur in +the standard fonts (and are not included in the +ec-scheme). The letters used in the major languages of +africa can be put into {\it one} font. A font encoding +scheme (fc) and some \MF\ code is prepared. There is some +work in progress on hausa \TeX.*15--24. + + +\gut Vers une version arabis\'ee de \TeX: Oussama +Boughaba, Seifeddine Boutalbi \& Michel Fanton: This +paper presents the state of development of an arabicized +version of \TeX.*25--44. + +\gut \TeX\ integrated shell for IBM pc: Basil Malyshev \& +Alexander Samarin: This article presents the \TeX\ +Integerated Shell (TIS) -- special environment for \TeX\ +on IBM pc to conceal some problems from an ordinary user. +TIS contains the screen interface for different actions +during \TeX ing. It can be configured to satisfy the +user's requirements and hardwre and software conditions. +It downloads only the files to be used, in particular, +pixel font files are required for a given \dvi\ +file.*45--55. + +\gut Automatic generation of virtual fonts with accented +letters of \TeX: Ji\v r\'\i\ Zlatu\v ska: This paper +presents an approach towards deriving fonts with accented +letters for European languages using virtual fonts as an +alternative to the development of genuine new fonts in +the \MF. The {\tt accents} processor is presented as a +tool for mechanization of the process by enabling +automatic generation of accented font layout and the +virtual font definition from the \tfm\ file of the source +font in the \TeX\ text encoding, and from an auxiliary +input containing corrections of accent placement for +specific characters.*57--68. + + + +\gut Scholar\TeX: Yannis Haralambous: Scholar\TeX\ is a software package +consisting of fonts, \TeX-executables, and a detailed +manual with examples and exercises. Scholar\TeX\ allows +easy and efficient use of \TeX\ for typesetting in +Arabic, Persian, Ottoman, Pashto, Urdu, Hebrew, Yiddish, +Estrangelo, Armenian, Greek, Latin, Fraktur, Schabacher, +Anglo-Saxon: others are planned.*69--70. + + + +\gut Babel, a multilingual style-option system: \hskip-4ptJohannes +Braams: The babel system of style options attempts to +adapt (\La)\TeX\ to a multi-lingual environment.*71--2. + +\gut \TeX\char'72\ les limites du multingualisme: Michel Fanton: +This paper describes the specific features of arabic +typesetting and gives an account ofthe price to pay in +developing an arabicized version of \TeX.*73--79. + +\gut An international version of makeindex: Joachim +Schrod: makeindex\ is a powerful and portable index +processor which may be used with several formatters. But +it is only usable for English texts; non-English texts, +especially with non-Latin alphabets, like Russian, +Arabic, or Chinese, may bot be easily worked on. The +tagging of index entries is often tedious and +error-prone. If a markup is used with the index key, an +explicit sort key must be given. A new version of +\makeindex\ is presented which allows the automatic +creation of sort keys from index keys by user specific +mappings. Furthermore it needs less main memory than the +former one, and may now be used for large indexes even on +small computers.*81--90. + +\gut Conversion of Microsoft Word into \LaTeXsl: Paul +Bacsich, Ethel Hayes, Paul Lefrere \& Geoff Yarwood: We +describe a program which converts Microsoft Rich Text +Format files into standard \LaTeX. This program converts +glyphs, character attributes, style information, fonts, +lists and tables to their `equivalents' (if any) to +\LaTeX. The latest version of the program also converts +mathematical mark-up on Word Formula Mode to the \LaTeX\ +equivalents.*91. + +\gut AsTeX: an integerated and customizable multiwindow +environment for scientific research: Michael Lavaud: +As\TeX\ is a program that runs on a pc under the control +of Framework 3, and trabsforms it into an integrated and +customizable multiwindow environment for scientific +research, as comfortable to use as the one of a +workstation. It includes a hypertext-like file manager +which allows classificationa nd archiving of all teh +files related to the current document by means of a +hierarchy of explicit titles. It also has an interface +with a local or remote Fortran compiler, allowing +numerical computations from a \LaTeX\ document. Similarly +there is an interface to the computer algabra program +Maple.*93--116. + +\gut Tailored database publishing with \TeX: Steen Larsen +\& Arne Flemming Jensen: \TeX\ is well suited to produce +inventories such as bibliographies or dictionaries. Such +publications are characterized by a large number of +entries, a high uniformity of structure, typographical +variation, and high demands on line and page breaking. +Sorting of entries and compiling of indices will often be +necessary. The paper presents an approach chosenwhen +establishing a tailored \TeX-based database publishing +system for the bibliography Nordic Archaeological +Abstracts. The solution was implemented by combining +theree different systems: an interface management system, +a database management system, and \TeX. The system is +described and compared to the previous editor-based +production, and future possibilities are briefly +sketched.*117--134. + + +\gut Drawing tree structures with GWEZ: Bernard Leguy: +GWEZ is a set of macros able to build tree structures and +to draw them; these macros are written with \TeX; they +use only plain \TeX\ commands and fonts and can be used +as well with \LaTeX.*135--146. + +\gut Math into BLUes\char'72\ Sing your song: Kees van der Laan: +\TeX ing mathscripts is not simply typing. Math has to be +translated into \TeX\ commands. First the motivation for +this work is given. Next traditional math page make-up is +summarized along with the macroscopic math \TeX\ +commands. After answering `Why is \TeX ing mathscripts +difficult?' an anthology of \TeX\ falls and their +antidotes is discussed. At the end suggestions are given +in order to lessen the difficulties.*147--170. + +\gut Organizing a large collection of stylefiles: +Angelika Binding: Springer Verlag has to maintain a large collection of +macro packages for different layouts, for which there are versions both +for plain \TeX\ and \LaTeX\ and for different sets of fonts. We +therefore designed a concept of modularising these packages and have +implemented mechanisms to creat format files loading our individual set +of fonts without changing the syandard format files |plain| and +|lplain|.*171--184. + + +\gut Typesetting SGML documents using \TeX: Andrew E Dobrowolski: +Since its publication as an international standard in 1986, the Standard +Generlaized Markup Language (\sgml) has become the preferred document +markup standard within many industries. The users have devekloped their +own document type definitions (DTDs) which define the elements (tag +sets) for their documents. However, if \sgml\ is to become a universally +accepted standard of document interchange then a standard way to specify +formatted output and a means of producing that output will be needed. +\TeX\ can be used as the formatting engine to implement FOSI-based +(Formatted Output Specification Instance) formatting, as required by the +CALS (Computer-aided Acquisition and Logistic Support) initiative which +selected \sgml\ as the text interchange standard, and FOSI as the means +of formatted output specification exchange. Without extending +\TeX\ not every FOSI formatting request can be fulfilled. +Converesely, certain \TeX\ capabilities cannot be formulated in terms of +FOSI characteristics. However, a FOSI/\TeX\ based formatting system +would be a major advance towards fulfilling the document interchange +needs of a growing community of \sgml\ users.*185--196. + +\gut Vers la construction de macros de mise en coleur +pour \TeX: Christophe C\'erin: Presents a step-by-step approach to +putting colour in \TeX\ documents.*197--206. + +\gut Wysiwyg-\TeX-editors on the basis of object-oriented +system technology: Bernd Schmid: Describes the motivation behind the +development of a \wysiwyg-editor which is based on an object-oriented +programming methodology and \TeX.*208. + + +\gut Lucida, une fonte compl\`ete pour \LaTeXsl\ et son +installation: Philippe Louarn: Presents an experiment in using the +Lucida fonts including the maths and extension fonts, in \LaTeX\ +documents. We explain the benefits and disadvantages of this choice. We +also include a short summary of installation procedures.*208. + +\gut Composition des formules chimiques en \TeX: Maurice +Laugier: Formatting chemical formulae with \TeX\ needs some special +macros to describe links and ramifications. Here are presented some +macros to format equations.*209--221. + + diff --git a/info/digests/texline/no14/late.tex b/info/digests/texline/no14/late.tex new file mode 100644 index 0000000000..99c3a5e697 --- /dev/null +++ b/info/digests/texline/no14/late.tex @@ -0,0 +1,26 @@ +\def\BV{{\fib Baskerville}} +\title{Late News} +\bitem\TUGboat, volume 12, numbers 3 and 4 +should have been mailed by the time you read +this. The astute will note that the two issues are the +conference proceedings for the Dedham meeting. Originally +it had been hoped to produce a single conference +proceedings issue, and a `normal' issue. The extent of the +financial crisis facing TUG was evident in the autumn of +last year, and reluctantly it was decided to take this +expedient. One effect is a backlog of articles intended +for `normal' \TUGboat\ issues. + +\bitem{\sl\TeX\ \& TUG News}: the +issue planned for late 1991 was cancelled outright, +despite the essential nature of some of the articles -- +for example, some explanation about the solicitations in +the TUG dues renewal for funds for \LaTeX3 and {\tt +texhax}! {\sl TTN\/} should be in your hands about +now.\looseness-1 + +\bitem\BV, the near-legendary uk\TeX ug `annals' is +reputedly nearing publication too. The problem was less one +of cash or copy, but of finding someone prepared to fill +Adrian (no relation) Clark's editorial and production +shoes. Phil Taylor is producing this second edition. diff --git a/info/digests/texline/no14/mathtime.tex b/info/digests/texline/no14/mathtime.tex new file mode 100644 index 0000000000..ff00ded07b --- /dev/null +++ b/info/digests/texline/no14/mathtime.tex @@ -0,0 +1,22 @@ +\title{MathT\i me} +One of the great deficiencies of Adobe's Times Roman has +been its sparse support of maths. Mike Spivak, known for +his love of \TeX\ and loathing of Computer Modern, has +made good this deficiency with the release of MathT\i me, +a font family consisting of three downloadable hinted \PS\ +fonts, designed for use with Times Roman. He is now +providing a package which comprises the fonts, their +{\tfm} files and a macro package for using the fonts with +\TeX. There is also a manual explaining installation and +use. What do you need? A minimum of \TeX3, a \PS\ driver +and a \PS\ printer. At present the fonts are available in +`standard' form which may be used on pcs and other +systems, and for use with \OzTeX. The whole package is +\$135, with a suitable hefty discount for educational +users. Contact {\obeylines +\TeX plorators +3701 W Alabama +Suite 450-273 +Houston TX 77027 +USA +} diff --git a/info/digests/texline/no14/offer.tex b/info/digests/texline/no14/offer.tex new file mode 100644 index 0000000000..f7dc20c741 --- /dev/null +++ b/info/digests/texline/no14/offer.tex @@ -0,0 +1,35 @@ +\title{Archivist offers the best!} +The highly coveted and practical Aston Archivists +t-shirts and sweat shirts are again available. These +garments represent tremendous value, are suitably +fashionable and chic, {\sl and\/} give you the opportunity +to promote the Archive. You may now bask in the warmth of a +magnificent blend of altruism and self-preservation! The +t-shirts are available in `medium blue', and the +sweatshirts in `terracotta'. Since all the archivists are +suitably large (except one or two extremely wimpy ones), +only one size, XL, is available. By standardising on +colour and size, the price has been constrained to a +minimal \quid5 for the t-shirts and \quid10 for the +sweatshirts. Post and packing have to be added to this: +\smallskip +\centerline{\vbox{\halign{#\quad\hfil&&\hfil\quid#\quad\cr +\it p\&p&\omit&\multispan2{\hfil elsewhere\hfil}\cr +&\omit\hfil UK\quad&\omit\hfil surface\quad&\omit\hfil +air\quad\cr +t-shirts&1.00&2.00&4.00\cr +sweatshirts&2.00&3.50&6.00\cr}}} + +\noindent To obtain one (or more) of these excellent +garments, send a sterling cheque to + +{\obeylines +Chris Rowley +1 Regency Lawn +Croftdown Road +London NW5 1HF +UK +} + +\noindent together with your own name and address. If +demand is great enough, other colours and sizes may diff --git a/info/digests/texline/no14/picture.tex b/info/digests/texline/no14/picture.tex new file mode 100644 index 0000000000..4832b80a3b --- /dev/null +++ b/info/digests/texline/no14/picture.tex @@ -0,0 +1,525 @@ +% ******************************** +% * PICTURE MACROS * +% ******************************** +% +% This file contains the \LaTeX picture commands, adapted for use in +% plain \TeX. +% +% Hacked by Peter Cameron, 70 Godstow Road, Wolvercote, Oxford OX2 8NY, +% U.K., on 26 April 1990. (If you report problems to me, I will try +% to help; but I'm no expert, so nothing is guaranteed.) +% +% This file may be freely distributed, but no warranty of any kind, +% explicit or implicit, is given as to its performance. +% +% \unitlength = value of dimension argument; set with \setlength +% +% enclose pictures with \picture and \endpicture +% +% The \LaTeX commands \put, \multiput, \circle, \oval, \thinlines, +% \thicklines, \vector, and the frame and box commands, all work +% as in the \LaTeX book. (I hope!) +% +% NOTE WELL: the \LaTeX command \line has been replaced by \Line +% to avoid conflict with plain \TeX's very different use of \line. +% +% If converting a \LaTeX file, change \line to \Line everywhere, and +% change \begin{picture} to \picture, \end{picture} to \endpicture. +% +% For program documentation, see LATEX.TEX! +% +% FONTS +% ******* +% You need these, in whatever sizes you scale your document to. + +\font\tenln=line10 +\font\tenlnw=linew10 +\font\tencirc=circle10 +\font\tencircw=circlew10 + +% CONTROL MACROS FROM LATEX.TEX +% ******************************* + +\catcode`\@=11 + +\newdimen\@wholewidth +\newdimen\@halfwidth +\newdimen\unitlength \unitlength =1pt +\newbox\@picbox +\newdimen\@picht + +\newwrite\@unused +\newcount\@tempcnta +\newcount\@tempcntb +\newif\if@tempswa\@tempswatrue + +\newdimen\@tempdima +\newdimen\@tempdimb + +\newbox\@tempboxa + +\newskip\@flushglue \@flushglue = 0pt plus 1fil +\newskip\@tempskipa +\newskip\@tempskipb +\newtoks\@temptokena + +\def\setlength#1#2{#1#2\relax} + +\def\@height{height} +\def\@depth{depth} +\def\@width{width} + +\def\@ifnextchar#1#2#3{\let\@tempe #1\def\@tempa{#2}\def\@tempb{#3}\futurelet + \@tempc\@ifnch} +\def\@ifnch{\ifx \@tempc \@sptoken \let\@tempd\@xifnch + \else \ifx \@tempc \@tempe\let\@tempd\@tempa\else\let\@tempd\@tempb\fi + \fi \@tempd} + +\def\@whilenoop#1{} +\def\@whilenum#1\do #2{\ifnum #1\relax #2\relax\@iwhilenum{#1\relax + #2\relax}\fi} +\def\@iwhilenum#1{\ifnum #1\let\@nextwhile=\@iwhilenum + \else\let\@nextwhile=\@whilenoop\fi\@nextwhile{#1}} + +\def\@whiledim#1\do #2{\ifdim #1\relax#2\@iwhiledim{#1\relax#2}\fi} +\def\@iwhiledim#1{\ifdim #1\let\@nextwhile=\@iwhiledim + \else\let\@nextwhile=\@whilenoop\fi\@nextwhile{#1}} + +\def\@whileswnoop#1\fi{} +\def\@whilesw#1\fi#2{#1#2\@iwhilesw{#1#2}\fi\fi} +\def\@iwhilesw#1\fi{#1\let\@nextwhile=\@iwhilesw + \else\let\@nextwhile=\@whileswnoop\fi\@nextwhile{#1}\fi} + +\def\@nnil{\@nil} +\def\@empty{} +\def\@fornoop#1\@@#2#3{} + +\def\@for#1:=#2\do#3{\edef\@fortmp{#2}\ifx\@fortmp\@empty \else + \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi} + +\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else + #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi} + +\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil + \let\@nextwhile=\@fornoop \else + #4\relax\let\@nextwhile=\@iforloop\fi\@nextwhile#2\@@#3{#4}} + +\def\@tfor#1:=#2\do#3{\xdef\@fortmp{#2}\ifx\@fortmp\@empty \else + \@tforloop#2\@nil\@nil\@@#1{#3}\fi} +\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil + \let\@nextwhile=\@fornoop \else + #4\relax\let\@nextwhile=\@tforloop\fi\@nextwhile#2\@@#3{#4}} + +\def\@ifstar#1#2{\@ifnextchar *{\def\@tempa*{#1}\@tempa}{#2}} + +% PICTURE MACROS +% **************** +% +% Put and Multiput +% ------------------ + +\def\picture(#1,#2){\@ifnextchar({\@picture(#1,#2)}{\@picture(#1,#2)(0,0)}} + +\def\@picture(#1,#2)(#3,#4){\@picht #2\unitlength +\setbox\@picbox\hbox to #1\unitlength\bgroup +\hskip -#3\unitlength \lower #4\unitlength \hbox\bgroup\ignorespaces} + +\def\endpicture{\egroup\hss\egroup\ht\@picbox\@picht +\dp\@picbox\z@\leavevmode\box\@picbox} + +% In the definitions of \put and \multiput, \hskip was replaced by \kern +% just in case arg #3 = ``plus''. (Bug detected by Don Knuth. +% changed 20 Jul 87). +% +\long\def\put(#1,#2)#3{\@killglue\raise#2\unitlength\hbox to \z@{\kern +#1\unitlength #3\hss}\ignorespaces} + +\long\def\multiput(#1,#2)(#3,#4)#5#6{\@killglue\@multicnt=#5\relax +\@xdim=#1\unitlength +\@ydim=#2\unitlength +\@whilenum \@multicnt > 0\do +{\raise\@ydim\hbox to \z@{\kern +\@xdim #6\hss}\advance\@multicnt \m@ne\advance\@xdim +#3\unitlength\advance\@ydim #4\unitlength}\ignorespaces} + +\def\@killglue{\unskip\@whiledim \lastskip >\z@\do{\unskip}} + +\def\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc + \@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth} +\def\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw + \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth} + +\def\linethickness#1{\@wholewidth #1\relax \@halfwidth .5\@wholewidth} + +\def\shortstack{\@ifnextchar[{\@shortstack}{\@shortstack[c]}} + +\def\@shortstack[#1]{\leavevmode +\vbox\bgroup\baselineskip-1pt\lineskip 3pt\let\mb@l\hss +\let\mb@r\hss \expandafter\let\csname mb@#1\endcsname\relax +\let\\\@stackcr\@ishortstack} + +\def\@ishortstack#1{\halign{\mb@l ##\unskip\mb@r\cr #1\crcr}\egroup} + + +\def\@stackcr{\@ifstar{\@ixstackcr}{\@ixstackcr}} +\def\@ixstackcr{\@ifnextchar[{\@istackcr}{\cr\ignorespaces}} + +\def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces} + +% Lines +% ------- + +\newif\if@negarg + +\def\Line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax +\@linelen=#3\unitlength +\ifnum\@xarg =0 \@vline + \else \ifnum\@yarg =0 \@hline \else \@sline\fi +\fi} + +\def\@sline{\ifnum\@xarg< 0 \@negargtrue \@xarg -\@xarg \@yyarg -\@yarg + \else \@negargfalse \@yyarg \@yarg \fi +\ifnum \@yyarg >0 \@tempcnta\@yyarg \else \@tempcnta -\@yyarg \fi +\ifnum\@tempcnta>6 \@badlinearg\@tempcnta0 \fi +\ifnum\@xarg>6 \@badlinearg\@xarg 1 \fi +\setbox\@linechar\hbox{\@linefnt\@getlinechar(\@xarg,\@yyarg)}% +\ifnum \@yarg >0 \let\@upordown\raise \@clnht\z@ + \else\let\@upordown\lower \@clnht \ht\@linechar\fi +\@clnwd=\wd\@linechar +\if@negarg \hskip -\wd\@linechar \def\@tempa{\hskip -2\wd\@linechar}\else + \let\@tempa\relax \fi +\@whiledim \@clnwd <\@linelen \do + {\@upordown\@clnht\copy\@linechar + \@tempa + \advance\@clnht \ht\@linechar + \advance\@clnwd \wd\@linechar}% +\advance\@clnht -\ht\@linechar +\advance\@clnwd -\wd\@linechar +\@tempdima\@linelen\advance\@tempdima -\@clnwd +\@tempdimb\@tempdima\advance\@tempdimb -\wd\@linechar +\if@negarg \hskip -\@tempdimb \else \hskip \@tempdimb \fi +\multiply\@tempdima \@m +\@tempcnta \@tempdima \@tempdima \wd\@linechar \divide\@tempcnta \@tempdima +\@tempdima \ht\@linechar \multiply\@tempdima \@tempcnta +\divide\@tempdima \@m +\advance\@clnht \@tempdima +\ifdim \@linelen <\wd\@linechar + \hskip \wd\@linechar + \else\@upordown\@clnht\copy\@linechar\fi} + +\def\@hline{\ifnum \@xarg <0 \hskip -\@linelen \fi +\vrule \@height \@halfwidth \@depth \@halfwidth \@width \@linelen +\ifnum \@xarg <0 \hskip -\@linelen \fi} + +\def\@getlinechar(#1,#2){\@tempcnta#1\relax\multiply\@tempcnta 8 +\advance\@tempcnta -9 \ifnum #2>0 \advance\@tempcnta #2\relax\else +\advance\@tempcnta -#2\relax\advance\@tempcnta 64 \fi +\char\@tempcnta} + +\def\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax +\@tempcnta \ifnum\@xarg<0 -\@xarg\else\@xarg\fi +\ifnum\@tempcnta<5\relax +\@linelen=#3\unitlength +\ifnum\@xarg =0 \@vvector + \else \ifnum\@yarg =0 \@hvector \else \@svector\fi +\fi +\else\@badlinearg\fi} + +\def\@hvector{\@hline\hbox to 0pt{\@linefnt +\ifnum \@xarg <0 \@getlarrow(1,0)\hss\else + \hss\@getrarrow(1,0)\fi}} + +\def\@vvector{\ifnum \@yarg <0 \@downvector \else \@upvector \fi} + +\def\@svector{\@sline +\@tempcnta\@yarg \ifnum\@tempcnta <0 \@tempcnta=-\@tempcnta\fi +\ifnum\@tempcnta <5 + \hskip -\wd\@linechar + \@upordown\@clnht \hbox{\@linefnt \if@negarg + \@getlarrow(\@xarg,\@yyarg) \else \@getrarrow(\@xarg,\@yyarg) \fi}% +\else\@badlinearg\fi} + +\def\@getlarrow(#1,#2){\ifnum #2 =\z@ \@tempcnta='33\else +\@tempcnta=#1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta +-9 \@tempcntb=#2\relax\multiply\@tempcntb \tw@ +\ifnum \@tempcntb >0 \advance\@tempcnta \@tempcntb\relax +\else\advance\@tempcnta -\@tempcntb\advance\@tempcnta 64 +\fi\fi\char\@tempcnta} + +\def\@getrarrow(#1,#2){\@tempcntb=#2\relax +\ifnum\@tempcntb < 0 \@tempcntb=-\@tempcntb\relax\fi +\ifcase \@tempcntb\relax \@tempcnta='55 \or +\ifnum #1<3 \@tempcnta=#1\relax\multiply\@tempcnta +24 \advance\@tempcnta -6 \else \ifnum #1=3 \@tempcnta=49 +\else\@tempcnta=58 \fi\fi\or +\ifnum #1<3 \@tempcnta=#1\relax\multiply\@tempcnta +24 \advance\@tempcnta -3 \else \@tempcnta=51\fi\or +\@tempcnta=#1\relax\multiply\@tempcnta +\sixt@@n \advance\@tempcnta -\tw@ \else +\@tempcnta=#1\relax\multiply\@tempcnta +\sixt@@n \advance\@tempcnta 7 \fi\ifnum #2<0 \advance\@tempcnta 64 \fi +\char\@tempcnta} + +\def\@vline{\ifnum \@yarg <0 \@downline \else \@upline\fi} + +\def\@upline{\hbox to \z@{\hskip -\@halfwidth \vrule \@width \@wholewidth + \@height \@linelen \@depth \z@\hss}} + +\def\@downline{\hbox to \z@{\hskip -\@halfwidth \vrule \@width \@wholewidth + \@height \z@ \@depth \@linelen \hss}} + +\def\@upvector{\@upline\setbox\@tempboxa\hbox{\@linefnt\char'66}\raise + \@linelen \hbox to\z@{\lower \ht\@tempboxa\box\@tempboxa\hss}} + +\def\@downvector{\@downline\lower \@linelen + \hbox to \z@{\@linefnt\char'77\hss}} + +% Frames and boxes +% ------------------ + +\def\makebox{\@ifnextchar ({\@makepicbox}{\@ifnextchar + [{\@makebox}{\mbox}}} + +\def\mbox#1{\leavevmode\hbox{#1}} + +\def\@makebox[#1]{\leavevmode\@ifnextchar [{\@imakebox[#1]}{\@imakebox[#1][x]}} + +\long\def\@imakebox[#1][#2]#3{\hbox to#1{\let\mb@l\hss +\let\mb@r\hss \expandafter\let\csname mb@#2\endcsname\relax +\mb@l #3\mb@r}} + +\def\@makepicbox(#1,#2){\leavevmode\@ifnextchar + [{\@imakepicbox(#1,#2)}{\@imakepicbox(#1,#2)[]}} + +\long\def\@imakepicbox(#1,#2)[#3]#4{\vbox to#2\unitlength + {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss + \let\mb@t\vss + \@tfor\@tempa :=#3\do{\expandafter\let + \csname mb@\@tempa\endcsname\relax}% +\mb@t\hbox to #1\unitlength{\mb@l #4\mb@r}\mb@b}} + +\def\savebox#1{\@ifnextchar ({\@savepicbox#1}{\@ifnextchar + [{\@savebox#1}{\sbox#1}}} + +\def\sbox#1#2{\setbox#1\hbox{#2}} + +\def\@savebox#1[#2]{\@ifnextchar [{\@isavebox#1[#2]}{\@isavebox#1[#2][x]}} + +\long\def\@isavebox#1[#2][#3]#4{\setbox#1 \hbox{\@imakebox[#2][#3]{#4}}} + +\def\@savepicbox#1(#2,#3){\@ifnextchar + [{\@isavepicbox#1(#2,#3)}{\@isavepicbox#1(#2,#3)[]}} + +\long\def\@isavepicbox#1(#2,#3)[#4]#5{\setbox#1 \hbox{\@imakepicbox + (#2,#3)[#4]{#5}}} + +\def\usebox#1{\leavevmode\copy #1\relax} + +%% The following definition of \frame was written by Pavel Curtis +%% (Extra space removed 14 Jan 88) +\long\def\frame#1{\leavevmode + \hbox{\hskip-\@wholewidth + \vbox{\vskip-\@wholewidth + \hrule \@height\@wholewidth + \hbox{\vrule \@width\@wholewidth #1\vrule \@width\@wholewidth}\hrule + \@height \@wholewidth\vskip -\@halfwidth}\hskip-\@wholewidth}} + +\newdimen\fboxrule +\newdimen\fboxsep + +\long\def\fbox#1{\leavevmode\setbox\@tempboxa\hbox{#1}\@tempdima\fboxrule + \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa + \hbox{\lower \@tempdima\hbox + {\vbox{\hrule \@height \fboxrule + \hbox{\vrule \@width \fboxrule \hskip\fboxsep + \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}\hskip + \fboxsep\vrule \@width \fboxrule} + \hrule \@height \fboxrule}}}} + +\def\framebox{\@ifnextchar ({\@framepicbox}{\@ifnextchar + [{\@framebox}{\fbox}}} + +\def\@framebox[#1]{\@ifnextchar [{\@iframebox[#1]}{\@iframebox[#1][x]}} + +\long\def\@iframebox[#1][#2]#3{\leavevmode + \savebox\@tempboxa[#1][#2]{\kern\fboxsep #3\kern\fboxsep}\@tempdima\fboxrule + \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa + \hbox{\lower \@tempdima\hbox + {\vbox{\hrule \@height \fboxrule + \hbox{\vrule \@width \fboxrule \hskip-\fboxrule + \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}\hskip + -\fboxrule\vrule \@width \fboxrule} + \hrule \@height \fboxrule}}}} + +\def\@framepicbox(#1,#2){\@ifnextchar + [{\@iframepicbox(#1,#2)}{\@iframepicbox(#1,#2)[]}} + +\long\def\@iframepicbox(#1,#2)[#3]#4{\frame{\@imakepicbox(#1,#2)[#3]{#4}}} + +\def\parbox{\@ifnextchar [{\@iparbox}{\@iparbox[c]}} + +\long\def\@iparbox[#1]#2#3{\leavevmode \@pboxswfalse + \if #1b\vbox + \else \if #1t\vtop + \else \ifmmode \vcenter + \else \@pboxswtrue $\vcenter + \fi + \fi + \fi{\hsize #2\@parboxrestore #3}\if@pboxsw $\fi} + +\def\dashbox#1(#2,#3){\leavevmode\hbox to \z@{\baselineskip \z@% +\lineskip \z@% +\@dashdim=#2\unitlength% +\@dashcnt=\@dashdim \advance\@dashcnt 200 +\@dashdim=#1\unitlength\divide\@dashcnt \@dashdim +\ifodd\@dashcnt\@dashdim=\z@% +\advance\@dashcnt \@ne \divide\@dashcnt \tw@ +\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@ +\advance\@dashcnt \m@ne +\setbox\@dashbox=\hbox{\vrule \@height \@halfwidth \@depth \@halfwidth +\@width \@dashdim}\put(0,0){\copy\@dashbox}% +\put(0,#3){\copy\@dashbox}% +\put(#2,0){\hskip-\@dashdim\copy\@dashbox}% +\put(#2,#3){\hskip-\@dashdim\box\@dashbox}% +\multiply\@dashdim 3 +\fi +\setbox\@dashbox=\hbox{\vrule \@height \@halfwidth \@depth \@halfwidth +\@width #1\unitlength\hskip #1\unitlength}\@tempcnta=0 +\put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt +\do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta=0 +\put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt +\do{\copy\@dashbox\advance\@tempcnta \@ne }}% +\@dashdim=#3\unitlength% +\@dashcnt=\@dashdim \advance\@dashcnt 200 +\@dashdim=#1\unitlength\divide\@dashcnt \@dashdim +\ifodd\@dashcnt \@dashdim=\z@% +\advance\@dashcnt \@ne \divide\@dashcnt \tw@ +\else +\divide\@dashdim \tw@ \divide\@dashcnt \tw@ +\advance\@dashcnt \m@ne +\setbox\@dashbox\hbox{\hskip -\@halfwidth +\vrule \@width \@wholewidth +\@height \@dashdim}\put(0,0){\copy\@dashbox}% +\put(#2,0){\copy\@dashbox}% +\put(0,#3){\lower\@dashdim\copy\@dashbox}% +\put(#2,#3){\lower\@dashdim\copy\@dashbox}% +\multiply\@dashdim 3 +\fi +\setbox\@dashbox\hbox{\vrule \@width \@wholewidth +\@height #1\unitlength}\@tempcnta0 +\put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta < \@dashcnt +\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }% +\vskip\@dashdim}}\@tempcnta0 +\put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta< \@dashcnt +\relax\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }% +\vskip\@dashdim}}}\@makepicbox(#2,#3)} + +% Circles and ovals +% ------------------- + +\newif\if@ovt +\newif\if@ovb +\newif\if@ovl +\newif\if@ovr +\newdimen\@ovxx +\newdimen\@ovyy +\newdimen\@ovdx +\newdimen\@ovdy +\newdimen\@ovro +\newdimen\@ovri + +%% \advance\@tempdima 2pt\relax added 1 Nov 88 to fix bug in which +%% size of drawn circle not monotonic function of argument of \circle, +%% caused by different rounding for dimensions of large and small circles. +% +\def\@getcirc#1{\@tempdima #1\relax \advance\@tempdima 2pt\relax + \@tempcnta\@tempdima + \@tempdima 4pt\relax \divide\@tempcnta\@tempdima + \ifnum \@tempcnta > 10\relax \@tempcnta 10\relax\fi + \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne + \else \@warning{Oval too small}\fi + \multiply\@tempcnta 4\relax + \setbox \@tempboxa \hbox{\@circlefnt + \char \@tempcnta}\@tempdima \wd \@tempboxa} + +\def\@put#1#2#3{\raise #2\hbox to \z@{\hskip #1#3\hss}} + +\def\oval(#1,#2){\@ifnextchar[{\@oval(#1,#2)}{\@oval(#1,#2)[]}} + +\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen + \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue + \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx + #1\unitlength \@ovyy #2\unitlength + \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi + \@getcirc \@tempdimb + \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa + \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@ + \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@ + \@circlefnt \setbox\@tempboxa + \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi + \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi + \if@ovt \@ovhorz \kern -\@ovxx \fi + \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro + \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@ + \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}% + \endgroup} + +\def\@ovvert#1#2{\vbox to \@ovyy{% + \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb by #1\relax + \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip + \else \kern \@ovri \kern \@ovdy \fi + \leaders\vrule width \@wholewidth\vfil \nointerlineskip + \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb by #2\relax + \hbox{\char \@tempcntb}% + \else \kern \@ovdy \kern \@ovro \fi}} + +\def\@ovhorz{\hbox to \@ovxx{\kern \@ovro + \if@ovr \else \kern \@ovdx \fi + \leaders \hrule height \@wholewidth \hfil + \if@ovl \else \kern \@ovdx \fi + \kern \@ovri}} + +\def\circle{\@ifstar{\@dot}{\@circle}} +\def\@circle#1{\begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength + \ifdim \@tempdimb >15.5pt\relax \@getcirc\@tempdimb + \@ovro\ht\@tempboxa + \setbox\@tempboxa\hbox{\@circlefnt + \advance\@tempcnta\tw@ \char \@tempcnta + \advance\@tempcnta\m@ne \char \@tempcnta \kern -2\@tempdima + \advance\@tempcnta\tw@ + \raise \@tempdima \hbox{\char\@tempcnta}\raise \@tempdima + \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@ + \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}% + \else \@circ\@tempdimb{96}\fi\endgroup} + +\def\@dot#1{\@tempdimb #1\unitlength \@circ\@tempdimb{112}} + +\def\@circ#1#2{\@tempdima #1\relax \advance\@tempdima .5pt\relax + \@tempcnta\@tempdima \@tempdima 1pt\relax + \divide\@tempcnta\@tempdima + \ifnum\@tempcnta > 15\relax \@tempcnta 15\relax \fi + \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne\fi + \advance\@tempcnta #2\relax + \@circlefnt \char\@tempcnta} + + +% INITIALIZATION +% **************** + +\thinlines + +\newcount\@xarg +\newcount\@yarg +\newcount\@yyarg +\newcount\@multicnt +\newdimen\@xdim +\newdimen\@ydim +\newbox\@linechar +\newdimen\@linelen +\newdimen\@clnwd +\newdimen\@clnht +\newdimen\@dashdim +\newbox\@dashbox +\newcount\@dashcnt + +\catcode`\@=12 |