******************************************************************************* * * * TTTTTTT X X M M GGGGGG A Mostly Unofficial * * T X X MM MM G Publication for Users * * T EEEEEEE XXX M M M M A G GG Of the TeX Computer * * T E X X M M M A A G G Typesetting System. * * T EEEE X X M M M AAAAA GGGGGG * * E A A Volume 1, Number 8 * * EEEEEEE A A Distribution: 537 or so... * * * ******************************************************************************* November 14, 1987 Contents: \footnote............................................................1 Letters to the Editor................................................2 Left justified text within LaTeX's eqnarray environment..............3 sprite.sty: A LaTeX macro............................................4 Contents of Tugboat 8#3..............................................5 The Toolbox..........................................................6 __1 \footnote{Heaven, I'm in Heaven...} It's finally happened: this is the first issue of TeXMaG that I haven't written a single article for (unless you count this bit at the beginning). Other major accomplishments in this issue include a very amazing macro from Martin Costabel which allows simple raster-image characters to be drawn in LaTeX. Next time you need a schwa or fancy H or whatever, you can get something presentable without using Metafont. Also in this issue are the contents of the latest TUGboat, which for the first time are making it out before the actual TUGboat does (for those of you interested in joining/getting information about The TeX Users Group, an address is in the back of this issue). In other news, I'm told that some of the TeXMaG back issues are available on the PCTeX Bulletin Board. Dominik (whose last name I do not have) writes "What I did was this: I logged on to the BBS, which is a Fido system. Its phone number is (415) 388-1708, and the communications protocols are 300/1200 baud No parity, 8 bit data, 1 stop bit. Once into the board (after giving your name etc.) go to the Files section, area 4, which is called \fido\texhax. There you will find a couple of issues of TeXMaG (numbers 1 and 7 when I last looked)." If anybody knows how these got there or could get the others up on the bulletin board, I'd like to hear from you. G'day -Don Hosek Word of the Month: Antediluvian __2 *Letters to the Editor* Date: Tue, 20 Oct 87 From: SCHOEPF@DMZRZU71.BITNET Subject: Re: timelines in \TeX Hello Don, You have this problem with the comment after the "\end{timeline}" in LaTeX. Someone here recently had the same problem when he used \newenvironment, so I looked into the LaTeX code to see how Leslie Lamport does it. Here's what I found: > % If \end{foo} needs to ignore blanks after it, then \endfoo should > % globally set the @ignore switch true with \global\@ignoretrue. Rainer Schoepf Inst. f. Physik Univ. Mainz Staudinger Weg 7 D-6500 Mainz West Germany __3 *Left justified text within LaTeX's eqnarray environment* By Chris Carruthers Time and time again LaTeX users find that the the eqnarray environment is very useful but that a feature which is lacking is the ability to intersperse aligned equations with left-justified text. It turns out that there is a very easy way to do this: use the TeX \noalign primitive (as documented in the TeXbook). The following LaTeX sample gives an example of how this might be done. %%%----Pretend this is in typewriter type and that wasn't------------- \documentstyle{article} \begin{document} \begin{eqnarray} test &1 &2 \\ \noalign{\hbox{test}} test & 3 & 4 \end{eqnarray} \end{document} %%%----OK, stop pretending now---------------------------------------- Which produces results something like the following (given the limitations of ASCII text): test 1 2 (1) test test 3 4 (2) __4 *sprite.sty: A LaTeX Macro* By: Martin Costabel sprite.sty is a LaTeX macro that allows you to define in a quick and dirty way your own symbols. You just have to define the character as a dot pattern on your screen and enclose it by \sprite and \endsprite commands. Of course, I know, TeX is awfully professional and this primitive technique will not provide results as good as a MetaFont- designed character or even one drawn using device-dependent \special commands, but if you just need one special character or some cute little symbol and you don't have the time/brains/MacIntosh/ superuser-privilege/money-for-AmS-fonts/or-whatever-is-necessary for a professional solution, this might produce acceptable results. The following SPRITE.STY and SPRITEUSE.TEX files should explain themselves. Two words of caution are in order, however: Warning #1: Do not use many of these home-made characters on one page. Otherwise you will see the "TeX capacity exceeded" error message. In SPRITEUSE.TEX, my Atari ST on which I am doing most of my TeX work, finished the first page all right, but on the second one it stopped after the 'F'. Our VAX finished both pages. Warning #2: If you tend to believe that your favorite Laser printer can print every .dvi file, you may be in for a surprise. Some DVI-drivers are not very good in printing \vrule s (out of which these characters are composed). Even if it looks good on a screen previewer or on a dot matrix printer, your Laser printer may produce weird error messages or garbage without any error message. Our Canon LBP8 interpreted the \ScriptH as a command to print one horizontal bar and to screw up the rest of the page. The cheaper Kyocera printer did OK as long as there was only one of these symbols in one line. Otherwise it spread them over several lines. I wonder whether such an illegal behavior has been observed in other cases (LaTeX picture environment etc.) [[Editor's note: Our Apple Laserwriter driven by Nelson Beebe's DVIALW printed the file with no problems as did our QMS-800 driven by the Texas A&M DVILG8 (adapted from Tomas Rokicki's DVIGEN); DVItoVDU, on the other hand, seemed to add extra pixels to certain "sprites".]] SPRITE.STY is written using some of LaTeX's bookkeeping commands (like \newcommand) that could easily be replaced by plain TeX equivalents. It also uses two of LaTeX's internal LISP commands. If one steals these from LATEX.TEX, the translation to plain TeX would be very easy. Another comment: One cannot use the orthodox LaTeX \begin{sprite}..\end{sprite} style, because this hides all definitions made in between from outside use. %%%--Cut Here------------------------------------------------------ %%%%%%%%%%%%% SPRITE.STY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% LaTeX style option SPRITE.STY ( Martin Costabel 27-Oct-1987 ) %% Use: \documentstyle[...,sprite,...]{...} %\makeatletter %use this if you \input{sprite.sty} %% New command: %% %% \sprite{cmd}(lins,cols)[wdth,hght] pixels \endsprite %% %% Here: %% cmd is a command sequence which is afterwards the name of the new object. %% It is defined as \usebox{cmd@box}, so there is also a new box cmd@box. %% wdth and hght are the width and height of the new object. %% pixels is a sequence of lins lines, each of which starts with a `:'(colon), %% ends with a `|'(vertical bar), and contains cols pixels which are %% either a `.'(period, meaning a white pixel) or a `B'(capital B, meaning %% a black pixel). Blank spaces are ignored. %% \newlength{\@pxlwd} \newlength{\@rulewd} \newlength{\@pxlht} \catcode`.=\active \catcode`B=\active \catcode`:=\active \catcode`|=\active \def\sprite#1(#2,#3)[#4,#5]{ \edef\@sprbox{\expandafter\@cdr\string#1\@nil @box} \expandafter\newsavebox\csname\@sprbox\endcsname \edef#1{\expandafter\usebox\csname\@sprbox\endcsname} \expandafter\setbox\csname\@sprbox\endcsname =\hbox\bgroup \vbox\bgroup \catcode`.=\active\catcode`B=\active\catcode`:=\active\catcode`|=\active \@pxlwd=#4 \divide\@pxlwd by #3 \@rulewd=\@pxlwd \@pxlht=#5 \divide\@pxlht by #2 \def .{\hskip \@pxlwd \ignorespaces} \def B{\@ifnextchar B{\advance\@rulewd by \@pxlwd}{\vrule height \@pxlht width \@rulewd depth 0 pt \@rulewd=\@pxlwd}} \def :{\hbox\bgroup\vrule height \@pxlht width 0pt depth 0pt\ignorespaces} \def |{\vrule height \@pxlht width 0pt depth 0pt\egroup \prevdepth= -1000 pt} } \def\endsprite{\egroup\egroup} \catcode`.=12 \catcode`B=11 \catcode`:=12 \catcode`|=12\relax %\makeatother %use this if you \input{sprite.sty} %%%%%%%%%%% End of SPRITE.STY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%---Cut here-------------------------------------------------------- %%%%%%%%%%% SPRITEUSE.TEX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Example for the use of SPRITE.STY ( Martin Costabel 27-Oct-1987 ) \documentstyle[12pt,sprite]{article} \begin{document} \newsavebox{\CalH} \sbox{\CalH}{${\cal H}$} % Get the size of \cal H. \newcommand{\ScriptH}% Some fine-tuning of the {\raisebox{-0.5 pt}{\SH}\kern 1 pt}% positioning might be necessary \sprite{\SH}(33,65)[\wd\CalH, \ht\CalH] % The size will be the same % as for \cal H. % Resolution ca. 250x500 dpi :..........BBBBBBBB.............BBB..................BBBBBB....... | :........BBBB....BBB..........BBBBB..............BBBBBB...BBBB.... | :........BB.......BBB.......BBB.BBB............BBBBBB.......BBBB.. | :........BB.......BBB.....BBB..BBBB..........BBBBBB..........BBB.. | :........BB.......BBB....BB...BBBB.........BBBBBB............BBBB. | :........BB.......BBB...BB....BBBB.........BBBBB.............BBBB. | :..................BBBBBB.....BBB.........BBBBB..............BBBB. | :............................BBBB........BBBBBB..............BBBB. | :...........................BBBB.........BBBBB...............BBBB. | :...........................BBBB.........BBBBB...............BBB.. | :..........................BBBB.........BBBBB...............BBBB.. | :..........................BBBB.........BBBB...............BBBB... | :.........................BBBB.........BBBBB..............BBBB.... | :.........................BBBB.........BBBB..............BBBB..... | :........................BBBBB.........BBBB............BBBBB...... | :........................BBBB.........BBBB..........BBBBBB........ | :.......................BBBBB.........BBBB.....BBBBBBBB........... | :..........BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB................ | :.......BBBB...........BBBBB.........BBBB......................... | :.....BBBB.............BBBBB........BBBBB......................... | :....BBB...............BBBB.........BBBB.......................... | :...BB................BBBB.........BBBBB.......................... | :..BBB...............BBBBB.........BBBB........................... | :.BBB................BBBB..........BBBB........................... | :.BBB...............BBBB..........BBBB............................ | :BBB...............BBBBB..........BBBB..................B......... | :BBB..............BBBBB...........BBBB.................BB......... | :BBB.............BBBBB............BBBB................BBB......... | :BBB............BBBBB..............BBBB..............BBB.......... | :BBB...........BBBBB................BBBB...........BBBB........... | :.BBBB........BBBB...................BBBB........BBBB............. | :...BBB.....BBBB.......................BBBB....BBBBB.............. | :.....BBBBBBB.............................BBBBBBB................. | \endsprite \def\schwa{\FormOfSchwa\kern 1 pt} % Only necessary if \kern... is wanted \sprite{\FormOfSchwa}(16,24)[0.4 em, 1 ex] % Resolution ca. 200x340 dpi. :.......BBBBBBBBBB....... | :....BBBB........BBBB.... | :..BBB.............BBBB.. | :.BB.................BBB. | :.B...................BBB | :.....................BBB | :.....................BBB | :.....................BBB | :BBBBBBBBBBBBBBBBBBBBBBBB | :BBB..................BBB | :BBB..................BBB | :BBB.................BBB. | :.BBB...............BBB.. | :..BBBB...........BBBB... | :....BBBBB.....BBBBB..... | :.......BBBBBBBB......... | \endsprite % Now we can use it \section{Here is a script \protect\ScriptH :} % It is fragile! You can use it also in Formulas: $$ H \neq \ScriptH \neq {\cal H}$$ And we defined also some kind of Sch\schwa wa. \newpage \section{\TeX\ capacity exceeded?} If you have too many of these on one page, your \TeX\ might give up: A \ScriptH \\ B \schwa \\ C \ScriptH \ D \schwa \\ E \ScriptH \\ F \schwa \\ G \ScriptH \ etc. \end{document} %%%%%%%%%%%%%End of SPRITEUSE.TEX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%---And Cut here---------------------------------------------------- __5 *Contents of TUGboat 8#3* By Barbara Beeton This issue is at the printer now. It should be in the mail by the end of the month. Contents, TUGboat 8#3, November 1987 General Delivery Bart Childs From the President Rilla Thedford The Volunteer Tree Charles-Michel Marle Book publishing using TeX Laurie Mann TeX training, etc. -- A TUG meeting trip report Barbara Beeton From the Editor Software Bart Childs Proposed minimum standards for TeX distributions Thomas J. Reid TANGLE modification causes problems in Metafont and PK files Hyphenation exception log Fonts Doug Henderson Update: Metafont mode_def settings for TeX output devices Adrian F. Clark Halftone output from TeX Aarno Hohti Generating an APL font and Okko Kanerva Output Devices Don Hosek TeX output devices (with charts) Thomas J. Reid DVI driver considerations for high-volume printing systems Glenn L. Vanderburg \special issues and Thomas J. Reid Site Reports Graham Toal TeX information for users in the U.K. Malcolm Brown TeXhax Notes Joachim Lammarsch 6th Meeting of the ``TeX-Interessenten'' in Germany *Atari ST: Klaus Guntermann Atari ST site report *Data General: Bart Childs Data General site report Typesetting on PCs Mitch Pfeffer Running TeX on a 386-based computer: and Alan Hoenig Twice as fast as an AT Macros Christina Thiele What constitutes a well-documented macro? Donald E. Knuth Macros for Jill Thomas J. Reid Floating figures at the right, and some random text for testing LaTeX Ken Yap Contents of LaTeX style collection as of 15th September 1987 Jackie Damrau The LaTeX user's column Queries Peter Flynn Request for contributions to a new publication Jeffery Boes Reply: Printing out selected pages Stephen C. Lipp Title formatting macro wanted News & Announcements Calendar Exeter University: TeX88, 18-20 July 1988 Call for papers: TUG Annual Meeting, Montreal, 22-24 August 1988 __6 *The Toolbox* From Rainer Schoepf , we have some assorted macros for high energy physics texts. Rainer writes: In high energy physics there is a special notation consisting of a symbol (e.g. p) overprinted by a slash, pronounced: p-slash. \not p does this, of course, but it doesn't look as it should. After some experiments with slashes from different fonts we arrived at the following two solutions. The second of these does also vertical positioning. Therefore the first one looks better if there are several slashed symbols with different height and/or depth in a line. %%%--Cut Here--------------------------------------------------------- \def\slasha#1{\setbox0=\hbox{$#1$}#1\hskip-\wd0\hbox to\wd0{\hss\sl/\/\hss}} \def\slashb#1{\setbox0=\hbox{$#1$}#1\hskip-\wd0\dimen0=5pt\advance \dimen0 by-\ht0\advance\dimen0 by\dp0\lower0.5\dimen0\hbox to\wd0{\hss\sl/\/\hss}} % Four macros for Dirac's bracket notation of expectation values \def\bra#1{\left< #1\right|} \def\ket#1{\left| #1\right>} \def\bracket#1#2{\left<#1\mid #2\right>} \def\EV#1#2#3{\bra{#1}#2\ket{#3}} % And finally a macro for printing so-called `normal ordered' products % They are denoted by a colon on either side \normalord#1{\mathopen{:}#1\mathclose{:}} %---------------Cut here--------------------------------------------- My own contribution this month is a macro for what I believe is a European convention for indicating vectors requested by a visiting professor at Harvey Mudd College. The \undertilde macro puts a tilde under the character in its argument. This command should work with any math character, although the best results will be arrived at with letters and numbers. To use \undertilde with a non math-italic letter, you will need to include the typeface command in the argument to \undertilde, e.g., \undertilde{\rm B}. %---------------Cut here--------------------------------------------- \def\undertilde#1{\mathord{\vtop{\ialign{##\crcr $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern1.5pt\nointerlineskip} $\hfil\tilde{}\hfil$\crcr\noalign{\kern1.5pt}}}}} % That's it!-----Cut again-------------------------------------------- __7 TeXMaG is an electronic magazine published by the Harvey Mudd College Mathematics Department available free of charge to all interested parties reachable by electronic mail. It is published sporadicly, and the editor likes to think that its monthly so the readers humor him. Subscription requests should be sent to Don Hosek or send the following message to LISTSERV@BYUADMIN: SUBS TEXMAG-L Your_Full_Name. European subscribers may send the SUBS command to LISTSERV@DEARN, subscribers on CDNnet should send subscription requests to (being sure to mention that they wish to subscribe to TeXMaG), and JANET subscribers should send requests to be added to the list to Peter Abbott, . Back issues are available for anonymous FTP in the file BBD:TEXMAG.TXT on SCIENCE.UTAH.EDU. They may also be obtained from Don Hosek . Article submissions, contributions for the Toolbox, and letters to the editor are always welcome and should be sent to . Other publications of interest to TeX users are: TeXHAX. Arpanet mailing list for persons with questions, suggestions, etc.. about TeX, LaTeX, MetaFont and related programs. Submissions for this list should be sent to . BITNET users may subscribe by sending the following command (as an interactive message or as the first line of a mail message) to LISTSERV@TAMVM1: SUBS TEX-L your_full_name. The list is peer-linked to other listserves in the United States and Europe. Internet subscribers may subscribe by sending a request to . The TeX-L mailing list is a ``hybrid;'' i.e., it is both an ARPAnet redistribution, and a BITNET discussion list. Submissions for TeX-L (only --- they will _not_ be forwarded to TeXHAX) may be sent to TeX-L@TAMVM1. LISTSERV@TAMVM1 also has file archives that may be of interest to TeX users on BITNET, including the files from the SU-SCORE FTP directories and back issues of TeXHAX. For a list of files available, send the following command to LISTSERV@TAMVM1: GET TeX FILELIST. Unix-TeX. Arpanet mailing list specifically for users of TeX under the Unix operating system. Submissions for this list should be sent to . Requests to be added or deleted from the mailing list should be sent to . TUGBoat. A publication by the TeX Users Group. An excellant reference for TeX users. For more information about joining TUG and subscribing to TUGBoat send (real) mail to: TeX Users Group c/o American Mathematical Society P. O. Box 9506 Providence, RI 02940-9506, USA