3

I often see either \@plus and plus when specifying the stretchiness of a glue (skip). I can see that \@plus is the same command as plus from latex.ltx (the line \def\@plus{plus}).

But I don't see any plus identified as a tex primitive here nor do I see it described in plain.tex. So what it is? Where is it coming from?

Nukesub
  • 607

1 Answers1

5

plus is not a primitive itself it (along with minus) is part of the syntax of a glue (skip) length. Similar to the usage of pt or cm which similarly are keywords used in length syntax.

The TeXBook gives the list of such keywords in classical, unextended TeX as

Here is a complete list of TeX's keywords, in case you are wondering about the full set: at, bp, by, cc, cm, dd, depth, em, ex, fil, height, in, l, minus, mm, mu, pc, plus, pt, scaled, sp, spread, to, true, width. (See Appendix~I for references to the contexts in which each of these is recognized as a keyword.)

So it is defined in the web sources of tex-the-program, specifically the code that scans a glue specification:

@ @<Create a new glue specification whose width is |cur_val|...@>=
q:=new_spec(zero_glue); width(q):=cur_val;
if scan_keyword("plus") then
@.plus@>
  begin scan_dimen(mu,true,false);
  stretch(q):=cur_val; stretch_order(q):=cur_order;
  end;
if scan_keyword("minus") then
@.minus@>
  begin scan_dimen(mu,true,false);
  shrink(q):=cur_val; shrink_order(q):=cur_order;
  end;
cur_val:=q

David Carlisle
  • 757,742