|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T U
Length: 20272 (0x4f30) Types: TextFile Notes: Uncompressed file
└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89 └─⟦2fef30353⟧ »./tex82/TeXdoc/amstex/amsppt.doc.Z« └─⟦this⟧
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◀