*******************************************************************************
* *
* 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}
\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