% Roger Horne. 29 August 1990. % 7 New Square % Lincoln's Inn % London WC2A 3QS % Tel: 071 405 1266 % email rhorne@compulink.co.uk % % The following macros are extracted from my normal macro files % Probably large numbers of them are not needed. % The file is at present set at 10 point on a 11pt base % % NOTE that the manmac convention of | as meaning \ttverbatim, % ie *all* characters printed in \tt, is used % \font\sansit=cmssi10 %\font\tenu=cmu10 % % These are not the "official" versions of the logos % \def\at{{\sansit Arch\i\-\kern-.1em\TeX\/}\maybespace} \def\am{{\it ArMa\kern-.1em TuReS\/}\maybespace} \def\atmf{{\sansit Arc-}\MF\maybespace} % % \hyphenation{adop-ted edu-c-a-t-ional scale-able} % \catcode`\@=11 %\def\quid{{\it\$}} % The poundsign and size-changing macros % % % Other macros that may (or may not) be used % \def\bo{\def\on{\unskip\/\ {\rm on }}\begingroup\sl\frenchspacing} \def\ok{\unskip\/\endgroup\maybespace} \def\maybespace{% \futurelet\next\testforother} \def\testforother{% \noexpand is required to avoid \ref being expanded \if\noexpand\next[\let\next=\space % if [ add space \else\if\noexpand\next(\let\next=\space % if ( add space \else\ifcat\noexpand\next.\let\next=\empty % if . no space %\else\ifcat\noexpand\next\noexpand\\next=\empty % if \ no space % Don't use. It could cause problems if \space followed \ok or \se % It is not required for \ref \else\let\next=\space %\fi % relates to \ifcat\\ \fi\fi\fi\next}% Note that \ref still generates a space-then eats it \def\ref{\unskip\footnote} % Remove space from \se if necessary \def\uc-{\discretionary{\raise.25ex\hbox{-}}{}{\raise.25ex\hbox{-}}} % \catcode`\@=12 % % End of macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \centerline{\bf \TeX\ and the Archimedes} \smallskip \noindent The Acorn Archimedes is a 32-bit RISC Computer and as a result is fairly fast. Like a number of other machines produced by comparatively small manufacturers it suffered for a time from a lack of software, but things are changing and there are now two complete versions of \TeX\ available for it. The first of these is \at, produced by TooLs GmbH of Bonn. The second is \am produced by Graham Toal of London. While the former product is a commercial program the latter is public domain and so at first sight it might seem that there was no contest; no-one likes spending money unless it is absolutely essential. The choice is not, however, quite so simple since the two products vary in many ways. The first difference is one that results from the Archimedes' filing system, RISC~OS, which does not recognise file extensions and also uses the full stop character as a directory separator. This is not normally a limitation since the Archimedes uses the concept of file types to enable it to load files into the appropriate program, if necessary first loading the program itself; for example a {\tt dvi} file has the file type {\tt CE4} and the Archimedes can be set up to recognise a file of this type as being one that is loaded into a previewer. However it obviously gives rise to problems in connection with \TeX. \at solves the problem in the same way that Acorn does in relation to the C language, that is to say that it automatically turns the file-name round. In the case of C the file {\tt stdio.c} is actually stored as the file {\tt stdio} in the directory {\tt c}, or as {\tt c.stdio}. Similarly \at stores the file {\tt paper.tex} as {\tt tex.paper}, {\tt paper.dvi} as {\tt dvi.paper} and so on. In other words all {\tt tex} files are stored in the directory {\tt tex}, all {\tt dvi} files are stored in the directory {\tt dvi} and so on. The conversion is automatic and invisible to normal macro packages. This system has one disadvantage in relation to \TeX\ and that is that many macro packages produce large numbers of auxiliary files and \at will not create a new directory if the appropriate one does not exist. This is no problem if one tends to use a macro package which writes out three or four auxiliary files using the same extension each time but problems can arise in connection with packages such as John Lavagnino and Dominik Wujastyk's {\tt EDMAC} macros for producing critical editions which can, if pressed, write out an unlimited number of auxiliary files. The alternative solution which is adopted by \am is to store each file in its own directory so that {\tt paper.tex} and {\tt paper.dvi} are actually the files {\tt tex} and {\tt dvi} in the directory {\tt paper}. This system gets round the problem of auxiliary files (although RISC OS does impose a limit of 80 objects to a directory) but it has its own disadvantage in that directories take up a certain amount of space. It is also more difficult to ``clean up'' since instead of simply deleting the contents of the {\tt dvi} directory it is necessary to delete the {\tt dvi} file from each of a number of separate directories. So far as \TeX\ itself is concerned, there is not a lot of difference between the two programs at present. Each of them is a C version of \TeX\ and they both run at roughly the same speed, that is to say, fast. It is interesting to note, however, that the way in which \TeX\ is run can make a difference to its speed on the Archimedes. RISC OS permits a program such as \TeX\ to be run in three different ways. The first is from the command line prompt (which for \TeX ies is somewhat confusingly an asterix). The second is as a single-tasking task from the Archimedes Desktop (the Archimedes' WIMP system). The third is as a multi-tasking program from the Desktop. To \TeX\ |tex.tex|, that is to say, \bo \TeX\ the Program\ok, takes roughly 18 minutes when \TeX\ is called from the command line, about 24 minutes when single tasking under the Desktop and about 27 minutes when it is multi-tasking with one other small program -- a digital clock -- running at the same time. (These figures are for the \am version. Using \at from the command line produces a similar result and its single tasking version is likely to produce a comparable time; there is not as yet a multi-tasking version of \at although that will no doubt arrive shortly.) A Company called {\it Aleph1\/} produces a go faster board for the Archimedes based on Acorn's ARM3 chip; although I have not tried it, Graham tells me that it speeds up \TeX\ by a factor of two. % MALCOLM --- I am not a mathematician. Is the last sentence correct? % ie it takes half as long with an arm3. There is one difference between the two versions of \TeX\ and that is that while \at claims to have passed the {\tt TRIP} test, \am has not as yet taken it (which is why it does not have \TeX\ in its name). However the output of the two programs appears to me to be identical. There is likely to be a more significant difference between the two versions of \TeX\ in the near future. \at is about to be released using Version~3 of \TeX. Graham has said that he is no hurry to produce Version~3 for \am unless he is pushed hard, claiming that he is not convinced of the merits of this new Version. \at can be used on the Archimedes 310 with only one megabyte of memory and can, I understand, be run without a hard disc (although I have not tried to do this). As a result some compromises have had to be made with \TeX's parameters. For example, the main memory in Ini\TeX\ is only 20 kilobytes and so it may not be possible to produce format files from large macro packages. TooLs GmbH have, however, told me that they are happy to produce larger versions of \TeX\ for their customers on request for a nominal handling charge. \am is intended to run on a machine with more than one megabyte of memory and so these compromises have not had to be made (although I believe that it can be run on a smaller machine). Since the source code is provided a user who has access to Acorn's C compiler can modify \TeX's parameters in whatever way he wishes. Both \at and \am come with a screen previewer. These are, however, very \hbox{different}. The former is a `traditional' \TeX\ previewer, that is to say, it uses a low-resolution version of the Computer Modern fonts to produce its output. The resolution supplied with the program is 95\,dpi although the previewer can use any resolution if this is required provided that the appropriate fonts are available in the chosen resolution. (The choice of 95\,dpi was made because it permits the full width of an A4 page to be displayed across the screen.) If a font cannot be found because, for example, it is not available in the correct resolution, the previewer will try to use the same font at a different resolution; if it cannot find even this it will politely refuse to continue. Computer Modern fonts do seem to suffer when reproduced at low-resolution and I sometimes find on the \at previewer that the spacing between words looks wrong. I assume that this is caused by an unlucky combination of approximations. Slanted and italic letters also suffer badly from the low resolution although they remain perfectly readable. The \am previewer uses fonts that are based on the Computer Modern fonts but have been converted to Archimedes outline fonts. These are scaleable fonts and use anti-aliasing in order to improve their appearance on the screen. The result is astonishingly good, especially in the $640 \times 512$ multi-sync modes. The initial size chosen produces a width approximately equal to a sheet of A4 paper on the screen. However it is possible to magnify this by anything from |\magstephalf| to |\magstep5|. (These magnifications are in addition to any already used in the text). It is apparently intended that a future release will also permit a reduction in size so as to show a full page on a normal screen. (The \at previewer already does this.) There are disadvantages. The previewer is substantially slower than the \at version, although both are many times faster than anything I have seen on an IBM machine. (Its speed increases after a period of use since it stores fonts that it has already used in memory.) It can also use a considerable amount of memory, especially when displaying magnified fonts. I have managed to run out of memory on a four megabyte machine (although I did have to try quite hard to do it). But even a comparatively small file can use a couple of megabytes if it is displayed at |\magstep5|. Another disadvantage which the \at previewer does not suffer from is that at present the \am previewer is restricted to the standard Computer Modern, \AmSTeX\ and \LaTeX\ fonts; it is not possible to display any new fonts that have been produced using \MF\ (although I understand that this may change in a future release). If it cannot find a font the \am previewer will try to find the {\tt tfm} file for the missing font and will then leave an appropriate space. If even the {\tt tfm} file is missing it will crash; since the latter file would have been required by \TeX\ itself this is unlikely to happen often. Since it uses scaleable fonts it is not necessary for it to find a font at any particular size. If, for example, |paper.tex| uses |cmr10 at 13pt| the previewer will generate the font at that size itself. A feature added to the \am previewer comparatively recently is the ability to save a page as a {\tt !Draw} file or as a {\tt Sprite} which can then be read into the Archimedes' drawing and painting programs. This enables the text to be manipulated in various ways. However it may be that the most useful function of this is to permit the testing of |cmr| fonts at different magnifications without creating them using \MF. The files can be printed without the use of a |dvi| driver, although this is far from quick. The final stage in the \TeX\ process is printing the file. Again there is a difference between the two systems. The \at printer drivers are part of the previewer; it is not necessary to run a separate program to print your file after previewing it. Drivers are provided for most common matrix printers, such as those produced by Epson, NEC, Prism, Oki and Microline, and for the HP LaserJet. \am on the other hand uses an adaption of the Beebe drivers and at present is only available for the Apple Laser Writer and the HP LaserJet (although it is claimed that to adapt the implementation for use with any other printer supported by the Beebe programs would be very easy: the LaserJet version was not even tested on a LaserJet before being despatched to the first user of it). % Preview % Back/forward % More options % Memory size etc There are further differences between the two systems in the way that the drivers work. While the \at version sends its output direct to the printer, the \am version sends it to a file which is subsequently printed using an Acorn multi-tasking utility. As usual, both systems have advantages and disadvantages. With a short file it is nice to be able to print it immediately without having to go through the two-stage operation involved with \am. The method of printing used by the \at version however suffers from the problem that it is apparently difficult to download CM fonts to a LaserJet and it is accordingly necessary, at least on a machine with a small amount of memory, to process the file in several passes in order to print direct to the printer; if not enough passes are used the program crashes and it is necessary to start again. The appropriate setting of the parameters is, however, soon discovered and can be stored in a file which is loaded every time the program is run. Processing the file in this way does, however, take a long time and although the program is multi-tasking, it gets frustrating waiting for a long file to be printed. The \am driver will process the same file at a rate of more than a page a second and then print it comparatively quickly as a background task. Neither \at nor \am is supplied with a great deal of documentation, although not surprisingly the amount which comes with the former is substantially more that which is supplied with the latter. It would be essential for the user of either system to acquire \bo the \TeX book\ok. % conclusions If you have a one-megabyte Archimedes and want to run \TeX, or you have never used \TeX\ before, or you are not quite sure how your Archimedes works, or you need \TeX~3 soon, or you use non-standard fonts, splash out on the \at version. You will not be disappointed; I have used it to produce all my written work for the last nine months (although I have normally used Personal \TeX's PTI~HP on an IBM Compatible to print it on a LaserJet since I do not have my own printer). If, however, you want to be able to compile an unusual sized version of \TeX\ quickly (and know what you are doing), or you want the best previewer going, or you are skinny broke, get hold of \am. Alternatively, if you have plenty of disc space, do as I have done and have your cake and eat it; get them both. % Addresses \at is available from: {\obeylines TooLs GmbH Kessincher Str.~108 D\uc-5300 Bonn 1 Federal Republic of Germany email: {\tt tex@tools.uucp} \par} \noindent It costs \quid99 (`educational users' pay \quid69) plus \quid6 p.~\&~p.\ and VAT at the unusual rate of 14\%. \LaTeX\ and \BibTeX\ together cost a further \quid39 (\quid29 for educational users). A set of fonts for the screen previewer and one printer driver is included in the cost; fonts for other drivers are available at a nominal price. Alternatively generate your own using \atmf, which costs the same as \at (and is a very nice implementation of the program). \am is available from: {\obeylines Graham Toal 76 Clare Court Judd Street London WC1H 9QW email {\tt gtoal@ed.ac.uk} \par} \noindent Graham does not charge for his current release of \am but you must send him 25 {\it formatted\/} discs together with the return postage and be prepared to wait for him to have the time to copy them; he does this in his spare time and each set takes several hours to do. The distribution may soon be available from Aston. Since it is 15 megabytes this will be an expensive way of acquiring it if you are commercial user of {\sc janet} and have to pay for the connection. The distribution includes the source code for \TeX\ and the Beebe drivers and a full set of 300\,dpi fonts. \LaTeX\ and \BiBTeX\ are also included. Letters to Graham take some time to be answered; email produces a quicker result. \author{Roger Horne} \endinput