On 17 May 2018 at 10:36, Hans Hagen <j.ha...@xs4all.nl> wrote: > On 5/16/2018 10:16 AM, David Carlisle wrote: >> >> The following plain tex example >> >> >> $\left( A \middle| \right)$ %OK >> >> >> >> $\Uleft( A \Umiddle class 2 | B \Uright)$ %OK >> >> >> $\Uleft( A \Umiddle class 2 | \Uright)$ %oops >> >> \bye >> >> produces >> >> >> ! This can't happen (mathspacing). >> l.10 $\Uleft( A \Umiddle class 2 | \Uright)$ >> %oops >> ! ==> Fatal error occurred, no output PDF file produced! >> >> >> >> I'd actually meant to have the A|B but the error message for my typo >> seemed a bit harsh! >> >> Having an empty math list to the right of a class 2 \Umiddle might be >> odd but shouldn't be an error I assume? > > it's a side effect of checking math spacing for noad pairs ... as we default > to zero for (traditionally unknown) combinations anyway, we can make that > check less stringent (so luatex 1.09+ will not abort) > > Hans
Thanks. I guessed as much. Actually that leads to another question which I don't think is quite clear from the manual. If you use class 2 (or 3) with any of \Uleft/right/middle at the start or end of a math list do they lose their mathbin/mathrel status and become \mathord, as a classic \mathbin{} does does? I'm guessing that the issue is that \Umiddle class 2 _doesn't_ lose its mathbin status at the end of the list and so put you (or me:-) in the previously impossible situation of a class 2 atom at the end of the mathlist? David David