DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T U

⟦8599b9b43⟧ TextFile

    Length: 20272 (0x4f30)
    Types: TextFile
    Notes: Uncompressed file

Derivation

└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89
    └─⟦2fef30353⟧ »./tex82/TeXdoc/amstex/amsppt.doc.Z« 
        └─⟦this⟧ 

TextFile

AMSSPT.DOC

THIS IS THE DOCUMENTATION FOR AMSPPT.STY,
    THE "AMSPREPRINT STYLE" FILE FOR AMSTEX

1.  \pointsize@AmS is a flag giving the current point size, in case there are
any definitions that need to know this.  For example, the definitions of
\big@@AmS, etc., from amstex.tex might be defined in terms of \pointsize@AmS.
Actually, it would be
more convenient to give separate definitions of \big@@AmS within the
definition of \tenpoint and \eightpoint, rather than having \big@@AmS defined
in terms of  \pointsize@AmS. That way, if a new point size is added, it will
be obvious that a new definition of \big@@AmS should be added, and it
would be easier to do this than to add another case to the definition of
\big@@AmS. (\big@@AmS hasn't been defined differently for the two different
point sizes in the present style simply because I don't know what suitable
values would be; the best results would presumably be obtained if we had
an eightpoint extension font, which is what the AMS has for its journal
styles).
     Although at present \pointsize@AmS has no use, it is added in case
it might ever be needed.  Since it would be used with \if, its value
should be a single token, so we use "t" rather than "10".

2. \footnote will eventually be done by LaTeX, and all the style file will
have to define is the equivalent of the macro presently called
\makefootnote@AmS.  For the moment we add what should be equivalent to the
final LaTeX macros.  Since we also have a \footnotemark and \footnotetext
macro, mainly to take care of the cases where footnotes are buried deep
inside some other construction, so that the \footnotemark has to be explicitly
inserted at the proper point, and then the \footnotetext given as soon as
possible afterwards, we need a counter \footmarkcount@AmS to keep count
of what footnote mark we are at, and a counter \foottextcount@AmS to keep count
of what number we've set in a footnote text.  \footnotemark advances the
first counter and then sets this number as a superscript, \footnotetext
advances the second counter and sets this number as a superscript before the
text, and \footnote does both.  Since footnote numbering is begun anew
on each page in this style, the \output routine has to reset these counters
to 0 each time a page is output.

There are two added complications.  If any of these control sequences
are followed by [...], then ... is used, as typed, for the footnotemark,
rather than what would normally be set by the style.  So, for example,
\footnotemark uses \futurelet to get the next token and \footnotemark@AmS
to test if it is [; if so, it calls \footnotemark@@AmS, otherwise
\footnotemark@@@AmS.  \footnotemark@@AmS doesn't
change the footnote mark counter, of course.  \footnotetext is similar,
and so is \footnote itself, which has one additional complication: if the
counter for footnote marks isn't equal to the one for footnote texts, they
are set equal and a warning message is given.

3. We give explicit control sequences for changing the counters, rather than
asking the AmSTeX user to know about counters. \adjustfootnote  will sometimes
be needed in a style like this one, where footnote numbering begins anew
on each page, since a footnote may already have been set at the end of
a paragraph, while only the beginning of the paragraph actually ends up on
the page.  (Eventually, one hopes, LaTeX will correct such things automatically
in a second pass.)

Changing the counters could also be necessary, for example, when
footnote (1) occurs, and then a footnote
with the mark (1), (2), because the first footnote refers to the first and
second instances, while the second refers only to the second.  The
(1), (2) can be set by first doing \adjustfootnotemark{-1}, then \footnotemark
and then \footnote.

4. \topmatter doesn't really do anything---all the work is
done by \endtopmatter; all \topmatter does it set the \topmatter@AmS flag
so that \endtopmatter can issue a warning if \topmatter was deleted.
But once we are interfaced with LaTeX, \topmatter may become more important.

5. We want to severely discourage a \title that sticks out beyond the
margins! So if \title is Overfull, it will not be centered, but stick
out past the right margin.  If the user insists on having the title overfull,
but still wants it centered, then \overlong\title will provide this.
We do this by first setting the title with the shrink and stretch portion
of the \tabskip defined by a control sequence \filhss@AmS that is usually
plus 1000pt.  If the
user puts \overlong in front of the \title, then \filhss@AmS is instead
defined to be plus 1000pt minus 1000pt. (At the end of the macro
\filhss@AmS is redefined,  for use in \author, say.)

6. We will set even a blank title (with appropriate space before and after
it), so we start with \titlebox@AmS, normally set by \title, to be an
empty \vbox (see Note 19 for the reason for using a \vbox).

7. We use the syntax \title#1\endtitle instead of having \endtitle as
a separate control sequence (like \matrix...\endmatrix in amstex.tex),
despite the fact that this will produce an inconsistency with LaTeX. (If
some one types \begin{title}...\end{title} it won't work; what we will
have to do is to issue an error messge in case \begin{title} has been
typed, saying that \title is special and can't be used with LaTex syntax).
It would be easy to make \endtitle separate (see the definition of \heading),
but unfortuantely we can't do
this for \TITLE...\endTITLE (see Note 11) and most journal styles are
going to use \TITLE...\endTITLE instead of \title...\endtitle; in fact they
will usually simply redefine \title#1\endtitle to be \TITLE#1\endTITLE, so
that if the user has put \title...\endtitle in the paper, it will still
come out as \TITLE...\endTITLE.

7.1. The \ignorespaces is necessary if there are spaces after any \\; also
if a LaTeX user types \begin{title} and then a space.

8. We don't set an empty \author, so we need a flag to tell if \author was
used.

9. \uctext@AmS#1 uppercases only the things in #1 that do not appear between
$ signs.  This is needed for \TITLE...\endTITLE, which automatically upper
cases the title, because the title might have math in it.
In order to get this recursive thing to work we need to have
a final redefinition of \uppercase@@AmS at the end, as well as a final
${}$. But the latter would add some space if \mathsurround is non-zero,
so we make the formula the negative of the space that would be added.


10. \footnotes within \TITLE...\endTITLE are a special problem, because
they mustn't be uppercased either!  So we set \TITLE...\endTITLE twice,
first with \footnote meaning \sfootnote, which just puts the 1st footnote
text in a token list, and then defines  \Notei@AmS to be this list, puts the
2nd footnote in a token list, and then defines \Noteii@AmS to be this list,
etc; the counter \Notes@AmS is used to keep track of the number of these
\footnotes. Then we set it again, this time letting
\foonote mean \Sfootnote, which actually sets a footnote with \Note... as text.

11.  Since we need to  set things twice, we really need to have our hands
on the title input, so we have to use the syntax \TITLE...\endTITLE, rather
than having \TITLE and \endTITLE be separate macros.
\AUTHOR...\endAUTHOR has the same problems.

12. A few words are automatically set by the amsppt style: the word
ABSTRACT at the beginning of an abstract, the logo "Typeset by AmS-TeX",
"1980 Mathematics subject classifications" before the subject
classifications, "Keywords and phrases" before the keywords, and
"References" to head the bibliography.  This obviously causes problems
when papers are written in other languages!, so the style has been
made multilingual (although at the moment it recognizes only English
and German).  The counter \language@AmS tells AmS-TeX the language; 0 for
English, 1 for German, etc., as others are added.  Instead of giving the
actual words in the appropriate places we give control sequences to name
them, which are \ifcase's, with results depending on the value of
\language@AmS, which in turn is set by control sequences like \german.
As soon as some one tells me the right German I'll fill in the remaining
words for German.  Other languages will be added on request.  Of course,
one can easily make ones own changes right away.

13.  \address can be used several times, so we need the counter
\addresscount@AmS to keep track of how many times it was used; as with
\sfootnote, the various instances are named \address followed by a roman
numeral, followed by @AmS.

14.  Since the remaining things don't have multilines, they don't have
a concluding \end..., so we can just store the result, we don't have
to make boxes. (But I probably should make boxes for efficiency, especially
for \keyword and \subjclass, which don't get get till the end of the paper.)

15. \keywords and \subjclass are a little different; if they're not
mentioned, they just won't be set--see Note 21.

16. The \par at the end is important because when we set the \abstract we
will change \leftskip and \rightskip, and it won't do its thing on the
last paragraph unless it knows the paragraph has already ended.

17.  We allow for the possibility that some one (who understand TeX) will
want to put other things in the topmatter (e.g., a dedication); \pretitle,
which goes before the title, \preauthor, which goes before the author, etc.,
are now empty, but could be changed---whoever does it will have to add
explicit TeX instructions.

18.  This gets us to the very top of the page.

19.  We \unvbox the \titlebox@AmS, so that any \footnotes will be able
to migrate to the main vertical list (\footnotes in the \halign are OK,
but the \vbox ties them up).  If \titlebox@AmS is empty, it still
better be a \vbox!

20.  At the end we have to put as many addresses as were typed.
\addresscount@AmS contains this number, but we also need another counter
to count until we get to this value.

20.1. We change the space factor code of . back to 3000, since it
may have been  set to 1000 by the \Refs at the end of the paper. (We
wouldn't have to do this if we made boxes for \subjclass and \keywords.)

21. If \keywords@AmS or \subjclass@AmS are empty, they just don't get set.

22. We allow \overlong for headings also (see Note 5).

23. We save the current font, since we want to return to it, not necessarily
to roman, after \endproclaim (but this can probably be done better with
grouping).

24. Just proclaim without the punctuation (a period) added, so that the user
can add his own punctuation.

25. \finishproclaim is better syntax than \endproclaim, since
\foo...\endfoo is supposed to be for things that can have \\ in
them.  But we also allow \endproclaim as a synonym for \finishproclaim.

26. Since things like \proclaim, etc., do their spacing by looking
at \lastskip and changing it if it is < \smallskipamount (or
\medskipamount or \bigskipamount) we can, if we want, inhibit this action
simply by adding these penalties and \vskip's, since now \lastskip is
larger than either of these three. (But I can't see any real need for this.)

27. I decided that \conditions is a fairly special thing that
should not be treated like LaTeX constructions.  The labelling should
be supplied explicitly by the user, not by the format, because everyone
has his own way of doing it; moreover, automatic labelling is seldom
important, because \conditions are usually a small list which is referred
to infrequently.  Also, mathematicians frequently have "runin" conditions,
where the first condition starts on the current line, and then only
succeding conditions are set specially.  The switch \runin@AmS is used
to distinguish these two; \runin sets the switch to true.

28.  The use of \conditions is:  \conditions (a): Something\\
(b): Something else\\(c) : Final stuff.\endconditions
with \\ indicating a new condition, and : separating the label from
the condition.  So \\#1: ends the current paragraph, sets #1 properly
and then starts setting a hangindented paragraph.
To allow for runin things we begin by doing \firstcon@AmS, which first
does a small break, and then is just the same as \\ if \runin@AmS is
false; otherwise it sets things on the same line.

29.  \endconditions adds the final small break and resets \runin@AmS
to be false.

30. \refto sets only things before a , in boldface, so we have to
use \in@AmS to see if there is a , in #1.  If so it calls \refto@AmS.

31. We set \sfcode`.=1000 since almost all periods in the bibliography
will be from abbreviations.  \period can be used for an actual end of
sentence period.

32. A reference is to be specified by something like
\ref
\no...\by...\paper...\jour...\vol...\yr...\pages...
\endref

\no for number might be replaced by \key, for some other key; \by might
be replaced by \bysame.  When only one page is being referred to there is
\page instead of \pages. There is also \issue for a journal and there are
\book, \publ, \publadd for books, as well as \inbook when there is a \paper
that appears in a book, rather than in a journal. In addition there are
\paperinfo, \bookinfo and \finalinfo to put extra things after the paper,
book and all other stuff.

Any of these are optional, and the order is optional.  In order to do this,
we have to capture the information as follows.  \by, for example, means
\egroup \setbox\bybox@AmS=\hbox\bgroup; the \egroup ends the group begun
by something else (a \bgroup will also be contributed by \ref), and the
\bgroup will be ended by the \egroup from the next thing (an \egroup will
also be contributed by \endref).  So there is a box for each possible piece
of information, except that \page and \pages use the same box, as do
\book and \inbook, so there aren't separate boxes for them. Finally,
\by also has to set a flag \isby@AmS to tell us that \by has been used, etc.

33. At the beginning of each \ref we have to reset all the boxes to \null
and set all flags to F.
Instead of writing all this out, we have \refset@AmS to do it; for example,
\refset@AmS\no  defines \isno@AmS to be F and sets \nobox@AmS to be \null.

34. \ref will actually allow \\, for certain special constructions, so
\ref will do its thing in terms of \ref@AmS, which does all the resetting
and puts in a \bgroup.

35.1. The \bysamebox@AmS is special, because it is not set by
\bysame.  Instead it contains a rule of the same length as the previously set
\bybox@AmS, and is used only if \isbysame@AmS is T.  So to reset things
we just want to reset the flag.

35.2. There is no box for \toappear, since this just asks for an
appropriate "to appear" to be printed, so all we do is reset the flag.

35.3. Both \pages and \page use the same \pagesbox@AmS; the only difference
is that when \page is used "p. " gets printed before the (single) page
number with \page (for a book \pages gets "pp. " printed, but not for
a paper).  So all we do for \ispage is reset the flag.

35.4. Similarly, both \book and \inbook use \bookbox@AmS, but when \inbook
is used "in " gets printed before the name of the book.

36. The \ignorespaces is in case a LaTeX user types \begin{ref}, and also
for something after a \\.

37. When \ref...\endref has \\ in it, the references between the inital
one and the last one will be treated as follows: the number or key and author
won't be set and the final punctuation will be a semicolon . Thus, the initial
reference will be different because it will have the number or key, and the
last reference will be different because the final punctuation will be a
period.  So \ref begins the setting of the reference, defines the flag
\refi@AmS for an initial reference to be T, sets the flag \refl@AmS for
a final reference to be F and calls \ref@AmS (see Note 34). It we get to
\endref without an intervening \\, then \endref will supply the final
\egroup, set the flag \refl@AmS to T and call \endref@AmS, which
properly prints the information collected in the various boxes (using the
values of the flags \refi@AmS and \refl@AmS).  \ref also defines \\ to
do the same thing, except that \\ sets the flag \refi@AmS to
be F instead of setting the flag \refl@AmS to be T, and then calls
\ref@AmS again.

38. Now we have to specifically define \no, \by, etc.  Since the definitions
are all so close, we have \refdef@AmS to do it.  \refdef@AmS has two arguments;
#1 is just the control sequence being defined (\no, \by, etc.), while #2, if
not empty, is a font change, for boxes that get set in a different font.
For example, \refdef@AmS\paper\it becomes

    \egroup\gdef\ispaper@AmS{T}\setbox\paperbox@AmS=\hbox\bgroup\it}

39.1, 2, 3, 4. These special cases correlate with notes 35.1, 2, 3, 4;
for the case of \page and \inbook we save the information in the same boxes
\pagesbox@AmS and \bookbox@AmS; only a different flag is set.

40. The punctuation that goes after any box is determined only when it
is known what boxes come next, so it is put in as \prepunct@AmS when the
next box is put in.  In most cases \prepunct@AmS is a comma followed by
a space, so we have a special control sequence for defining \prepunct@AmS
to be this.

41. In most cases we add a box by first putting in \prepunct@AmS, unboxing
the box and unskipping (in case space was picked up in making the box),
so we have a special control sequence to do this.

42. \endref@AmS starts to put all the things together.  First we begin
by having no \prepunct@AmS.

43.1. Assuming that the reference hasn't come after a \\ we do the following:

43.2. For a reference without a \no, we just indent 10pt;

43.3. For a reference with a \no, we print the number followed by a period
and a space set flush right in a box of width 20pt;

43.4. And if the reference has a \key, we set the key (after the 10pt
indentation) followed by a space.

43.5. If there is an author we set the \bybox@AmS and define \prepunct
as usual.  We use \hbox{\unhcopy\bybox@AmS\unskip} to get rid of space
at the end, but we actually set this box, rather than keeping it unboxed,
so that its glue can't stretch or shrink.  This is so that we will know
the exact length in case we have to set a rule of the same length in the
next reference because it has a \bysame.

43.6. In fact, we also set \bysamebox@AmS to be this same box.
The next \ref will reset \bybox@AmS, but it won't reset \bysamebox@AmS,
so this will be around if needed.

43.7. If we did have \bysame then we set a rule to the width of the
box containing the previous author's name.

43.8. But we don't do any of this if the reference comes after \\, since
it has already been done.

44. If there is a paper we put it in, with whatever \prepunct@AmS
was (it is a comma followed by a space if there was an author or
a same-author rule and empty otherwise) and set new \prepunct@AmS to be
comma followed by space.

45. We add anything extra that was specified as \paperinfo.

46. If there was a journal, we set the \jourbox@AmS and:

46.1. If there was a volume we set it, preceeding by just a space;

46.2. If there was an issue we set it, preceeded by just a space;

46.3. If there was a year we set it in parentheses, preceeded by
just a space;

46.4. If \toappear was given we set "(to appear)", preceeded by just a space;

46.5. If there were pages, we set them preceeded by the \prepunct@AmS (by
now a comma followed by a space, presumably), but

46.6. If \page was given instead of \pages, we set the page, preceeded by
\prepunct@AmS and then "p. ";

46.7. But all this information is printed only if there is a journal!

47. Now if there is a book, we set the book in quotes.

48. If \inbook was given instead of \book, we set  "in " before
the title of the book in quotes.  We also reset the flag \isbook@AmS to be
T, so that the extra setting done in 52 will still be done.

49. We add in anything specified as \bookinfo.

50. We add the \publ.

51. We add the \publaddr.

52. Moreover, if we have a book, we now set some of the information
that would have been set before if it had been a paper:

52.1, 2, 3, 4.  All the same as for the journal, except \pages gets
"pp. " before it.

53. If there is \finalinfo we put in a period and then the final info.
Otherwise we put in a period if we're at the last referenece in the
group, but otherwise we put in a semicolon.
▶00◀▶00◀▶00◀