[comp.text.tex] \@ in TeX ?

nraoaoc@nmt.edu (Daniel Briggs) (08/11/90)

This may be a silly question, but is one that I have wondered about.  The
answer is not immediately obvious to me.  (And yes, I think that I've
RTFM.)  Simply put, LaTeX provides a simple control sequence to tell the
program that a given period after a capital letter actually ends a sentence,
and is not an abbreviation.  Lamport's example of this is

 The Romans wrote I + I = II\@.  Really!

I looked up the definition of \@ in LaTeX, and it turns out to be some
fairly obscure arcana.  It sets some interword penalty or other to 1000.
Not the sort of stuff that you would expect your average TeXnician to
employ.  My question is, how does a normal person deal with this problem
in plain TeX?  The problem of capital letters ending sentences does occur
often enough to be a problem for many folks.  Short of rewriting the
sentence, is there an easy equivalent to \@ ?  As usual, post or email
is fine with me.  Thanks!

-- 
This is a shared guest account, please send replies to
dbriggs@nrao.edu (Internet)
Dan Briggs / NRAO / P.O. Box O / Socorro, NM / 87801  (U.S. Snail)

eykhout@wn2.sci.kun.nl (Victor Eijkhout) (08/12/90)

nraoaoc@nmt.edu (Daniel Briggs) writes:

>LaTeX provides a simple control sequence to tell the
>program that a given period after a capital letter actually ends a sentence,
>and is not an abbreviation.  Lamport's example of this is

> The Romans wrote I + I = II\@.  Really!

>I looked up the definition of \@ in LaTeX, and it turns out to be some
>fairly obscure arcana.  It sets some interword penalty or other to 1000.
Nope. It sets the spacefactor, which is thousand times the
ratio by which the stretch of spaces should be magnified.

The trick is this (and it's in the TeX book!): the '.' will set the
spacefactor to 3000 (so spaces after . will stretch thrice as hard), 
but if the current space factor is <1000, TeX will
only set it to 1000. Now by inserting \@, you set the space factor
manually to 1000, so the subsequent period will increase the 
spacefactor to 3000. The reason this is necessary, is that all
capital letters have spacefactor 999, which is done precisely to
prevent double spacing after initials.

Now for the simple remedy: the space factor is also set to 1000
after boxes and rules, so you might write
        The romans wrote I + I = II\hbox{}. Really!

Victor.

>Not the sort of stuff that you would expect your average TeXnician to
>employ.  My question is, how does a normal person deal with this problem
>in plain TeX?  The problem of capital letters ending sentences does occur
>often enough to be a problem for many folks.  Short of rewriting the
>sentence, is there an easy equivalent to \@ ?  As usual, post or email
>is fine with me.  Thanks!

>-- 
>This is a shared guest account, please send replies to
>dbriggs@nrao.edu (Internet)
>Dan Briggs / NRAO / P.O. Box O / Socorro, NM / 87801  (U.S. Snail)

dhosek@sif.claremont.edu (Hosek, Donald A.) (08/12/90)

In article <2090@wn1.sci.kun.nl>, eykhout@wn2.sci.kun.nl (Victor Eijkhout) writes...
->nraoaoc@nmt.edu (Daniel Briggs) writes:

->>LaTeX provides a simple control sequence to tell the
->>program that a given period after a capital letter actually ends a sentence,
->>and is not an abbreviation.  Lamport's example of this is

->> The Romans wrote I + I = II\@.  Really!

->>I looked up the definition of \@ in LaTeX, and it turns out to be some
->>fairly obscure arcana.  It sets some interword penalty or other to 1000.
->Nope. It sets the spacefactor, which is thousand times the
->ratio by which the stretch of spaces should be magnified.

->The trick is this (and it's in the TeX book!): the '.' will set the
->spacefactor to 3000 (so spaces after . will stretch thrice as hard), 
->but if the current space factor is <1000, TeX will
->only set it to 1000. Now by inserting \@, you set the space factor
->manually to 1000, so the subsequent period will increase the 
->spacefactor to 3000. The reason this is necessary, is that all
->capital letters have spacefactor 999, which is done precisely to
->prevent double spacing after initials.

->Now for the simple remedy: the space factor is also set to 1000
->after boxes and rules, so you might write
->        The romans wrote I + I = II\hbox{}. Really!

Or even simpler, "The romans wrote I + I = II\null."

cf. _The TeXbook_, p. 311.

-dh


---
Don Hosek                       TeX, LaTeX, and Metafont support, consulting 
dhosek@ymir.claremont.edu       installation and production work. 
dhosek@ymir.bitnet              Free Estimates.
uunet!jarthur!ymir              Phone: 714-625-0147
                                finger dhosek@ymir.claremont.edu for more info