9

This is the input:

$\left|-\infty\right|\showlists$
\end

This is the output:

\mathinner
.\left"26A30C
.\mathbin
..\fam2 ^^@
.\mathord
..\fam2 1
.\right"26A30C

It is not clear to what atoms correspond \left"26A30C and \right"26A30C. It cannot be Open and Close, because according to the table on p.170 of TeXbook Open cannot be followed by Bin (the table entry is *).

  • See also answer to exercise 19.7. – Igor Liferenko Aug 26 '19 at 8:08
7

You wrote,

[The status of \left|] cannot be Open ..., because according to the table on p.170 of TeXbook Open cannot be followed by Bin (the table entry is *)

This interpretation of the table on p. 170 of the TeXbook is not entirely correct. See, e.g., @egreg's [who else?!] follow-up comment to me below his answer to the question What's the right space to right the alignment of a right aligned align environment?.

The better way to interpret the meaning of * in the table on p. 170 of the TeXbook is this: If TeX encounters an "impossible combination" -- such as open followed by bin -- then the status of the bin atom is changed to ord.

Let's apply this to \left|-\infty\right|:

  • \left| has status mathopen.

  • - has status mathbin by default. However, because open/bin is an "impossible" combination, the status of - is changed to ord. Observe that the end result is exactly as it should be, since - is a unary operator, not a binary operator, in the formula at hand.

  • \infty has status ord. No problem either, since no extra space is inserted between - and \infty -- as is appropriate for a unary operator.

  • \right| has status mathclose; still no problem.

| improve this answer | |
6

If you modify your example into

\tracingonline=1 \showboxdepth=\maxdimen \showboxbreadth=\maxdimen

$\mathopen|-\infty\mathclose| \left|-\infty\right|\showlists$\showlists
\end

you get on the terminal

### math mode entered at line 3
\mathopen
.\fam2 j
\mathbin
.\fam2 ^^@
\mathord
.\fam2 1
\mathclose
.\fam2 j
\mathinner
.\left"26A30C
.\mathbin
..\fam2 ^^@
.\mathord
..\fam2 1
.\right"26A30C

which should answer your question: the “change” of the \mathbin atom happens later, when spaces are being inserted during the conversion of the math list to a horizontal list. Indeed, the second \showlists yields

### horizontal mode entered at line 3
\hbox(0.0+0.0)x20.0
\mathon
\tensy j
\tensy ^^@
\tensy 1
\tensy j
\glue(\thinmuskip) 1.66663
\hbox(7.5+2.5)x23.33339
.\hbox(7.5+2.5)x2.77779
..\tensy j
.\tensy ^^@
.\tensy 1
.\hbox(7.5+2.5)x2.77779
..\tensy j
\mathoff

Note that the ASCII code of j is "6A, so in all cases the same glyph is used to realize the vertical bar.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.